¿Tengo que usar un chip MAX232?

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 recomienda que use un chip MAX232. ¿Cuál es el propósito de este chip y realmente necesito usarlo?

Pregunto esto porque en un proyecto que estoy haciendo, hay una gran restricción de tamaño y el chip puede ocupar un espacio valioso.

Respuestas (4)

Si necesita conectar el AVR a la computadora usando el puerto serial y un cable serial DB9-DB9 "estándar", sí, necesita usar un transceptor RS232 en el circuito. El UART del AVR emite señales de 0-5V. La especificación RS232 es una señalización de +/- 15 V, 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 (más algunos condensadores 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 "controladores 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 transceptor de este tipo incrustado en la carcasa DB9 si tiene limitaciones de espacio 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 hacer que parezca un puerto COM a través de USB a la computadora, pero está buscando más de $ 15 por ese cable .

Oye, si conecté el chip MAX232, todavía sería un puerto COM pero en serie, ¿verdad? Estaba pensando en usar un FTDI pero donde vivo no está disponible fácilmente.
@Rick, sí, seguiría siendo un puerto COM, muy probablemente COM1 o COM2
@Rick también una palabra de precaución: tenga cuidado de obtener los pines 2+3 (rx+tx) al revés :)
Entonces, ¿el MAX232 simplemente proporciona lo que RS232 necesita en serie mientras que un chip FTDI proporciona capacidades USB/UART? Supongo que estoy confundido sobre lo que FTDI trae a la mesa ... er ... cable. jajaja
@cbmeeks FTDI convierte/transcodifica un dispositivo USB CDC a una interfaz UART. MAX232 es (más o menos) como una traducción de interfaz eléctrica directa, lo que quiere decir que RS232 y UART son bastante similares en cuanto a protocolo. Eso no es así para USB CDC y UART. USB y RS232 tienen poco que ver entre sí.

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 +3 V y +30 V para un 0 lógico, la impedancia de entrada es de alrededor de 3k y la impedancia de salida debe ser de 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, podría utilizar una de las líneas de protocolo de enlace del DTE (PC o similar) para suministrar el voltaje negativo y usar un cambiador de nivel de transistor simple 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 tal manera que sus líneas de negociación estén 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 así como un dispositivo MAX232. Si bien estos cumplen totalmente con la especificación, también amplían las cosas para que los niveles de entrada sean básicamente de +2,8 a +30 para un '0' lógico, de +1,4 a -30 V para un cero lógico (de la memoria), en otras palabras, los receptores. en realidad incluyen niveles de señal TTL. Entonces, simplemente 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 sea 100% compatible, pero encontrará que esto funciona la mayoría de las veces.

Todavía necesita invertir las señales UART (a menos que esté golpeando los pines usted mismo), dos inversores deberían ser más pequeños que el circuito asociado MAX232 plus, pero probablemente no mucho.

No sé sobre ATmega, pero muchos PIC UART pueden invertir la salida. Lea la hoja de datos.
En realidad, es un máximo de +25 V, siendo +15 V un límite típico .

Como dijo vicatcu, necesita algo para traducir los niveles de señal de la mcu a algo que espera el puerto serie de la PC. No tiene que usar un MAX232 o similar: Sparkfun tiene algo que funcionaría.

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