I'm interfacing an XBee PRO 900 HP with a Beaglebone Black using UART5 on the BB. I'm using the 5v interface board from Adafruit (XBee Adapter kit - v1.1)
I'm have been having intermittent problems with the Beaglebone not being able to communicate with the XBee - it's not working more often than working - but it works sometimes nonetheless - and when it's working it will continue to work. But if I power the XBee off and on again, it will stop working.
I have checked baud, databits, stop bits and all other settings - I'm confident they are all right.
I found today, that if I power on the XBee without connecting it to the UART on the Beaglebone, then plug the Beaglebone in after the XBee has powered on, it works perfectly. But if I power the XBee on while the UART on the Beaglebone is connected, it usually won't work.
I did a logic and voltage trace of this behavior and found that when the UART is not connected before the XBee boots, the XBee TX pin sits at 3.2v and RX at 0 - which is what you would expect. Once I then connect the UART on the Beaglebone, the TX voltage stays at 3.2v.
But when I power on the XBee with the UART connected to the Beaglebone, the TX voltage only rises to 1v and stays there and no communications takes place. The Xbee still works though, as I can send AT commands via another XBee - I just can't communicate with it via the UART.
I've connected multiple XBees for testing - all exhibit the same behavior. I've also tried the XBee's with my computer using FTDI cable, and I don't get this issue. It just seems to appear only when I connect the Beaglebone UART to the XBee before powering on the XBee. I've also tried the XBee on different UARTs on the Beaglebone - all the same behavior.
I'm stumped as to what could be causing this behavior! Any ideas?
This is a view of the TX/RX logic (LGC) and voltage (ALG) of both the XBee TX/RX pins and the Adafruit 5v adapter TX/RX pins connected to the Beaglebone.
This trace is with the XBee powering on while the UART is connected:
This trace is with the XBee powering on without the UART connected, and then connecting the UART: