05-11-2017, 02:13 PM
I want to use i2c-0 as well as i2c-1 in my project. i2c-0 connects to the TP port for use with the touchpanel by default. On the baseboard are 2k pullups between the TWI0-{SCK,SDA} pins and VCC-CTP.
I found that with with the pull-ups installed (R96 and R97), external pull-ups to 3v3 just create a voltage divider and the TWI0 pins don't go high enough for the A64 to detect the i2c bus is idle. (I first tried removing the ferrite bead, FB3, attempting to sever the connection to VCC-CTP, but that didn't make a difference.) I suspect the problem is that VCC-CTP isn't enabled and is instead acting as a strong pull-down.
So here's what I did to make TWI0 functional from Linux on SO-Pine + Baseboard; I think the same should work on standard Pine64.
I found that with with the pull-ups installed (R96 and R97), external pull-ups to 3v3 just create a voltage divider and the TWI0 pins don't go high enough for the A64 to detect the i2c bus is idle. (I first tried removing the ferrite bead, FB3, attempting to sever the connection to VCC-CTP, but that didn't make a difference.) I suspect the problem is that VCC-CTP isn't enabled and is instead acting as a strong pull-down.
So here's what I did to make TWI0 functional from Linux on SO-Pine + Baseboard; I think the same should work on standard Pine64.
- De-solder R96, R97, and FB3.
- Solder wires to the center 2 test points on the group of 6 directly behind the TP connector on the bottom of the board
- Connect your wires to external pullup resistors to 3v3. I used Pin 0 on the Pi2 bus for 3v3.