i'm having trouble getting a reliable connection going between a Beaglebone Black & a 16x2 RGB LCD pi plate. I've gotten the Adafruit_CharPlate/LCDTest.py code to work with it once, so the software tool chain is working. I think it's a signaling problem, but I'm not sure what to try next.
Looking at the design of the RGB LCD pi-plate, it has no level shifters. i2c pulls the bus lines down to signal, so I can see how the 5V RGB LCD plate could work with a 3.3V bus in some situations.
I made the perhaps erroneous assumption that the RaspPi & the BBB had a similar hardware implementation of their 3.3V i2c bus. The look similar, and both hav 5.5k pull-ups already on board. In theory they should work, and in fact, I've seen it work, but only for a few seconds.
I thought maybe I had a loose wire, but I can watch the SDA SCL lines at the MCP23017 and at the BBB and they look comparable. The rise times don't seem particularly sharp, but they look the same coming off the BBB with nothing connected.
I use "i2cdetect -y -r 1" to poll the bus, and I see the usual output:
Code: Select all
root@beaglebone:~# i2cdetect -r -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- UU UU UU UU -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
Any idea what I should try next? Why is there no level shifter in the Pi-Plate which runs at 5V and is designed for a 3.3V i2c interface?
Thanks,
mikest