Ya no tienes que indagar más por internet porque llegaste al lugar perfecto, contamos con la respuesta que deseas pero sin liarte.
Solución:
UART = Receptor/Transmisor Asíncrono Universal. Es el chip básico (o función virtual en un microcontrolador) que codifica los bits de datos en serie en un formato estándar con un bit de inicio, bit(s) de parada, velocidad, etc. Pero “UART” es solo PARTE de lo que “RS- 232” es.
RS-232 agrega los valores de voltaje heredados a los valores binarios (0/1 o alto/bajo, o “marca” y “espacio” en conversación RS-232). Un UART TTL emitirá (e ingresará) solo niveles TTL, esencialmente 0 bit = 0V y 1 bit = 5V. Y muchos dispositivos modernos (Arduino, et.al.) simplemente usan niveles de voltaje TTL para la comunicación en serie. Pero la definición “adecuada” de RS-232 usó voltajes BIPOLARES y MÁS ALTOS para definir cero y uno. Específicamente:
- 0 bit = “espacio” = +3V ~ +15V
- 1 bit = “marca” = -15V ~ -3V
Esos voltajes se remontan a los viejos días electromecánicos de las máquinas de teletipo, que eran una monstruosidad milagrosa de maravilla mecánica. Y esos voltajes bastante altos eran necesarios para controlar las brocas electromecánicas.
Pero en la actualidad, el antiguo protocolo RS-232 sigue siendo un estándar útil, pero esos viejos voltajes bipolares altos son cosa del pasado. Y parece bastante probable que esté creciendo una nueva generación que nunca recordará nada sobre esos niveles de voltaje antiguos y pensará que RS-232 es un antiguo protocolo heredado de 5V. Especialmente cuando los voltajes de alimentación migran hacia niveles lógicos de 3,3 V.
Ref: https://en.wikipedia.org/wiki/RS-232#Voltage_levels
El puerto de tu USB<->El convertidor RS-232 emitirá algo así como +/-9V y puede aceptar +/-25V o cortocircuito sin daño.
El UART en su MCU usa nivel lógico (0V/3.3V o 0V/5V típicamente). Aplicar menos de 0 V o más de Vcc puede destruir el chip MCU.
También el los niveles lógicos están invertidos entre los dos tipos (exceptuando una opción en muy pocas MCU).
Para invertir y convertir bidireccionalmente entre los niveles de UART y los niveles de RS-232, normalmente se usaría un chip como el MAX232 (para lógica de 5 V). El MAX232 también genera sus propios suministros de +/-9 V a partir de un solo suministro de +5 V utilizando un duplicador de voltaje de bomba de carga.
TL;RD:
No, no puede usar el cable USB-RS-232 (también conocido como USB-serie) para conectar los dos. Hay convertidores seriales USB-TTL disponibles a bajo precio. Hay algunos problemas con los chinos más baratos en lo que respecta a la operación de 3.3V, asegúrese de investigar un poco. Adafruit vende tales dispositivos por $10. Creo que también puede encontrarlos en Digikey y otras fuentes.
Dado que la interfaz de hardware no está definida por ningún estándar en el extremo de la MCU, generalmente se suministran con cables voladores no comprometidos con terminales hembra para acoplarse con pines cuadrados de 0,025″ como los que encontraría en un encabezado de paso de 0,1″. Compré media docena de dispositivos similares para mi programador de firmware y los ha estado usando para hablar con varias placas de desarrollo.
Siempre necesito comunicarme con el puerto TTL UART en la MCU con una computadora. Cuando hablé de eso, la gente siempre se refiere al puerto UART como un puerto RS-232. ¿Son correctas? Si no, ¿cuál es la diferencia entre ellos?
Leyendo entre líneas, puede estar hablando del caso en el que tiene una placa con una MCU a la que se puede acceder (descargar código, depurar, etc.) a través del puerto USB de su computadora. Es bastante común ahora operar de esa manera.
Si es así, es probable que su sistema operativo esté configurando un puerto “RS-232 virtual” para su dispositivo. Esto no es en realidad un puerto RS-232, en absoluto. En cambio, es un software que se ejecuta como un controlador en su sistema operativo que emula los detalles de un controlador de “puerto serie” de estilo antiguo. Este software se comunica con una MCU separada (una que es además en la placa con su MCU) a través de un chip convertidor de USB a serie (también hay varios fabricantes para ellos). La MCU separada es lo que realmente está conectado a los pines del puerto UART de su MCU. Probablemente, también esté conectado a los pines JTAG de su MCU, para que pueda realizarse la depuración. Hay software adicional en esta MCU separada que maneja los detalles de la depuración Y las comunicaciones UART con el sistema operativo de su computadora.
Asi que. Sí. Las personas se refieren a eso como un puerto RS-232, cuando piensan en esto desde el punto de vista de cómo el sistema operativo + el software del controlador hacen que funcione. Aparecer a un programa de aplicación que se ejecuta en ese sistema operativo. Luego podría usar cualquier aplicación estándar que sepa cómo abrir un puerto RS-232 usando las llamadas de función estándar que el sistema operativo proporciona para ese propósito y funcionaría bien. Entonces es un puerto RS-232 desde el punto de vista de ese programa de aplicación.
Pero en realidad, no lo es.
Por separado, un UART es un “receptor/transmisor asíncrono universal” y tradicionalmente se hace referencia a un chip IC o a un bloque funcional en una MCU. De cualquier manera, generalmente era hardware diseñado para hacerlo fácil para el software que escribe para manejar el protocolo serial asíncrono utilizado (bit de inicio, bits de datos y uno o más bits de parada). Es posible romper el protocolo, pero es un verdadero dolor y la alta velocidad se vuelve más o menos inalcanzable entonces .
También verá USART (receptor/transmisor síncrono/asincrónico universal) en algunas MCU. Simplemente significa que pueden hacer más que un UART, pero que también incluyen las capacidades de UART.
RS-232 es un conjunto de especificaciones sobre voltajes, carga, etc. También especifica un montón de detalles de señalización, que cubren bastantes líneas de señal disponibles diferentes. Pero es mejor ver RS-232 como una especificación electrónica que define rangos de voltaje para Marcos y espaciomárgenes de ruido, detalles de carga del receptor permitidos y varios otros detalles involucrados en la traducción entre rangos de señales analógicas y digitales discretas y no tanto sobre algún protocolo serial de UART específico.
Solo lo remitiré a las páginas Wiki para obtener detalles (que debería haber leído antes de preguntar aquí, creo). Estos son: RS-232 y UART. No tengo ningún deseo real de duplicar ese trabajo.
Eres capaz de añadir valor a nuestro contenido informacional tributando tu veteranía en los comentarios.