Problemas de comunicación UART

1

Estoy usando un UART para comunicarme con RS232 en un módulo bluetooth RN-42 SM de Roving Networks. 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 Roving networks 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, una vez más 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);

}

Sin conexión a TX

ConexiónaTX

    
pregunta Edwin

1 respuesta

2

Las señales UART de nivel lógico RS-232 y microcontrolador no son lo mismo. En general, las señales de nivel lógico se invierten para una cosa. 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 generalmente son 0-3.3V o 0-5V. RS-232 está por debajo de -5 V para la línea inactiva (espacio) y por encima de +5 V para activa (marca).

Este es un problema común, por lo que hay chips que hacen esta conversión por ti. Busque "MAX232" y encontrará muchas variantes de diferentes fabricantes para la lógica de los chips de conversión RS-232.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas