W01 module SDA stays low
We have trouble with i2c bus on a custom W01 board.
We have created a custom board with the w01 module that only has one i2c device, the accelerometer (same one used in pysense). This board does not have any other device connected to the i2c bus.
When the board is powered, P9 (SDA) goes low and P10(SCL) goes high. When we configure, the i2c with the following command,
i2c=I2C(0, mode=I2C.MASTER, pins=('P9','P10'))
i2c scan returns the address from [8, 9, ... , 119] . The SDA always stays low at 0.7v .
Is there anything obvious we are missing here ? or do you have any suggestions on how to debug this issue ?
@rsmanik Especially Vdd at Vdd_IO is required for the communication interface.
We recommend external pull-ups, for example the PyTrack has 10K resistors.
The internal pull-ups tend to be too weak.
We are using the default i2c pins P9 and P10, so have no external pull-up resistors. We are planning to test with external pull-up resistors today.
Thanks for pointing out the other discrepancies I have to look into those further.
@rsmanik I'm a little bit shy to ask a simple question, but did you add pull-up resistors to SDA and SCL?
Edit: Looking at the data sheet, you should also tie Pin 3 (lowest bit of the I2C address) to a fixed level.
Edit2: I'm wondering why Vdd_IO is not connected in the diagram. According to the data sheet, it must be.