Estoy usando un UART para comunicarme con RS232 en un módulo bluetooth Roving Networks RN-42 SM. Tengo el transmisor y el receptor conectados a un analizador lógico.
El problema que tengo es que cuando conecto el TX de mi uC a las redes Roving RS232 RX, el analizador lógico muestra que la línea TX del TX es 0'd. Cuando desconecto el RX del módulo de redes itinerantes, nuevamente comienza a transferir datos.
Las imágenes incluidas en los enlaces a continuación.
Aquí está mi código de transmisión:
while(1)
{
PORTC ^= 0xFF;
transmitStr((unsigned char *)CMDMODE);
_delay_ms(1000);
}
RS-232 y las señales UART de nivel lógico del microcontrolador no son lo mismo. Generalmente, las señales de nivel lógico se invierten por una razón. El nivel de inactividad de la línea de nivel lógico suele ser alto. Los niveles de voltaje también son considerablemente diferentes. Las señales de nivel lógico están, por supuesto, en niveles lógicos normales, que suelen ser 0-3,3 V o 0-5 V. RS-232 está por debajo de -5 V para línea inactiva (espacio) y por encima de +5 V para activo (marca).
Este es un problema común, por lo que hay chips que hacen esta conversión por usted. Busque "MAX232" y encontrará muchas variantes de diferentes fabricantes para chips de conversión de lógica a RS-232.
chris stratton
edwin
chris stratton
edwin