¿Tengo que usar un chip MAX232?

6

Estoy tratando de conectar mis chips ATmega a la computadora usando una interfaz serial. He leído que esto se puede hacer directamente conectando el pin apropiado entre los chips y el pin serial. Pero se aconseja que use un chip MAX232. ¿Cuál es el propósito de este chip y realmente necesito usarlo?

Pido esto porque en un proyecto que estoy realizando, hay una gran restricción de tamaño y el chip podría ocupar un espacio valioso.

    
pregunta Rick_2047

4 respuestas

12

Si necesita conectar el AVR a la computadora mediante el puerto serie y un cable serie "estándar" DB9-DB9, sí, debe usar un transceptor RS232 en el circuito. Las salidas UART del AVR de 0-5V de señalización. La especificación RS232 es una señalización de +/- 15V, y creo que también está "invertida" en comparación con la señalización UART. No tiene que usar específicamente el MAX232, pero sí tiene que usar un transceptor RS232. Estos chips (además de algunos capacitores externos) manejan las conversiones de nivel de voltaje (a través del bombeo de carga) en cualquier dirección, así como la inversión de la señal, y actúan como "conductores de línea" que conducen longitudes de cable más largas permitidas por el estándar RS232.

Alternativamente, puede usar un cable que incluya un circuito de transceptor integrado en el shell DB9 si tiene espacio limitado en su placa. Otra alternativa más que involucra un cable es usar un cable que incluya un chip FTDI FT232, que tiene la ventaja de que se ve como un puerto COM a través de USB a la computadora, pero está buscando más de $ 15 para ese cable .

    
respondido por el vicatcu
5

La especificación RS232 requiere un voltaje de señal de entre -3 y -30 V para un '1' lógico, y un voltaje de señal de entre + 3V y + 30V para un 0 lógico, la impedancia de entrada es de aproximadamente 3k y la impedancia de salida debe ser alrededor de 300 ohmios.

Si va a implementar una interfaz totalmente compatible, entonces sí, necesitará algo como el MAX232, o una alternativa, como el MAX3221 que viene en un paquete TSSOP bastante pequeño.

Alternativamente, puede utilizar una de las líneas de intercambio de manos del DTE (PC o similar) para suministrar el voltaje negativo y usar un simple cambiador de nivel de transistor para manejar la inversión de la señal (desde la MCU) y el cambio de nivel. Sin embargo, esto requiere que el DTE esté configurado de modo que sus líneas de intercambio se encuentren en un estado adecuado.

Otra opción es aprovechar el hecho de que la mayoría de los equipos en estos días implementan RS232 usando algo como un dispositivo MAX232. Si bien son totalmente compatibles con la especificación, también extienden las cosas de modo que los niveles de entrada son básicamente de +2.8 a +30 para un '0' lógico, de +1.4 a -30V para un cero lógico (desde la memoria); en otras palabras, los receptores En realidad incluyen niveles de señal TTL. Por lo tanto, solo puede invertir la señal en los pines UART y pasarla directamente al dispositivo DTE. Esta técnica se utiliza en bastantes dispositivos, incluidos muchos GPS de mano. No estoy diciendo que seas 100% compatible, pero encontrarás que esto funciona más a menudo que no.

Aún necesita invertir las señales UART (a menos que usted mismo esté golpeando los pines), dos inversores deben ser más pequeños que el MAX232 más los circuitos asociados, pero probablemente no mucho.

    
respondido por el timrorr
0

No soy un experto en AVR, pero creo que hay una biblioteca 'bitbanging' de usb para usarla como dispositivo usb. Es posible que pueda usar eso para emular un puerto serie.

    
respondido por el Erik
0

Como dijo Vicatcu, necesitas algo para traducir los niveles de señal del mcu a algo que el puerto serial de la PC espera. No tiene que usar un MAX232 o similar, Sparkfun tiene algo que podría funcionar.

    
respondido por el Dave

Lea otras preguntas en las etiquetas