AVR enviando mensaje a través de UART

1

Quiero enviar un char a través de Atmega2560 al coordinador xbee (modo AT), y el enrutador (que está conectado a la computadora) debe recibir ese char. Puedo recibir mensajes correctamente
desde enrutador - > coordinador - > atmega . Lo que significa que la función de recepción de UART funciona correctamente. Pero cuando intento enviar de esa manera atmega - > coordinador - > enrutador , en el enrutador sigo recibiendo mensajes como ese 01 02 03 04 ... 0D... y así sucesivamente.

iniciación de UART:

void uart_init(int baud_rate){
    UBRR0H = 0x00;
    UBRR0L = baud_rate;                                 //103

    /*Enabling Tx and Rx*/
    UCSR0B = (1<<TXEN0);
    UCSR0B = (1<<RXEN0);

    /*Setting stop 8 bits and non-parity*/
    UCSR0C = (1<<USBS0|3<<UCSZ00);
}

Aquí está mi código para enviar mensajes a través de UART:

void uart_send(byte data){
    while (!(UCSR0A & (1<<UDRE0)))
    {}
    UDR0 = data;
}

Estoy enviando mensajes desde el bucle principal. Los datos a enviar son '0x73'. Im usando sparkfun explorer para enrutador, ambos de ellos son xbee series 1. La fórmula para baud_rate es (F_CPU / (BAUD * 16) - 1). He intentado reemplazar el enrutador con el coordinador, pero nada cambia.

Lo que pasa es que incluso cuando estoy desconectando este xbee del microcontrolador, sigue enviando hexademicals de 0x01 a 0xff. Así que quiero saber, qué causa estos problemas.

    
pregunta DaurenD

1 respuesta

1

Tuve el mismo problema al usar un módulo XBee-PRO XSC con una de las placas Sparkfun y la respuesta que recibí del soporte técnico de Digi fue:

  

A partir de los sonidos del mismo, tiene las radios en lo que llamamos el modo Pitch. Esto ocurre cuando el Pin 6 se mantiene bajo durante el inicio o por largos períodos de tiempo. Intente desconectar el Pin 6 y luego apague y vuelva a encender. Debería ver cómo desaparece el problema.

Si observa el Esquema del Explorador de XBee verá el pin 6 está conectado a un LED RSSI porque ese pin se utiliza como un indicador RSSI en algunos otros módulos. Para la nueva revisión de la placa, verá que hay un puente SJ1 que puede cortar para desconectar esa línea que debería resolver el problema. Tenía una placa anterior sin ese puente, así que en lugar de eso eliminé R7 para el mismo efecto.

    
respondido por el PeterJ

Lea otras preguntas en las etiquetas