I2C1 peripheral is in chapter 13. http://www.mouser.com/ds/2/302/UM10732-315822.pdf
NXP PCAL6416A I2C 16-bit I/O Expander is Slave. https://www.nxp.com/docs/en/data-sheet/PCAL6416A.pdf.
but bit 2 is logic 0. The input pin connected to bit 2 is pulled up to 3.3V but it's logic 0 on I2C data bus. Why?
Expected 1 1 1 1 1 1 1 1
One board 1 1 1 1 1 1 1 1
Another board 1 1 1 1 1 0 1 1
Then, master send command byte 0x00(read byte from Input port 0).
Master sends start bit, followed by slave address, followed by read bit(logic 1). Slave sends ACK.
On one board, slave send 0xFF as expected. On other board, slave sends 0xFB, not expected. Master follow with a NAK. Slave pulls data bus low before the stop
condition? Why slave pulls data bus low?
INT pin(active low) is floating.
b = mIOExtender.PuPdEnablePort0(0x02);
b = mIOExtender.PuPdEnablePort1(0x70);
b = mIOExtender.PuPdSelectPort0(0xFF);
b = mIOExtender.PuPdSelectPort1(0xFF);
Hi,
In my opinion this is a harward issue, please add pull-up external resistors and check the signals with an oscilloscope.
Regards
Soledad