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.
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 .
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.
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.
Rick_2047
vicatcu
vicatcu
cbmeeks
vicatcu