thingy 91x i2c bus faulting with multiple devices

Hello Team,

i am trying to read multiple mcp9600 on the nrf9151 on my thingy 91x. I connected 3 of the mcp9600 to my stemma QT connector and it all works fine.

However, when i connect a fourth mcp9600 to my i2c bus, the signal on my SDA line completely breaks. (see picture) Yellow is the SDA line at 3V3 behind the level shifter, and purple is SDA at 1V8 before the level shifter.

Interestingly, the same thing happens, when i add any kind of other device to the bus, or simply another 5k pullup resistor to the SDA line.

This is, how it looks like, when working.

this is my overlay file:

7673.thingy91x_nrf9151_ns.overlay

So far i have tried a different thingy 91x, different MCP9600, different Connectors.

The whole setup works an a nRF5340 DK, but not on the thingy. The adresses of the i2c devices are also not the problem.

I would very much appreciate the help.

Best regards,

Constantin

Parents
  • Thanks for the details, Constantine. I think that this is the behavior of Thingy91x built-in MOSFET I2C level shifter which only works reliably when the pull-ups on each side are kept weak (typically 10 kohm) and the total bus capacitance stays under ~400 pF. By removing the extra pull-ups on your MCP9600 breakouts (so that you only have one 10 kohm on 3.3 V and one on 1.8 V) and keeping the four sensors wired closely (or else splitting them over two busses), the SDA line springs back to life. Alternatively you can re-engineer to a dedicated translator (PCA9306) if you need heavier pull-ups or longer runs.

Reply
  • Thanks for the details, Constantine. I think that this is the behavior of Thingy91x built-in MOSFET I2C level shifter which only works reliably when the pull-ups on each side are kept weak (typically 10 kohm) and the total bus capacitance stays under ~400 pF. By removing the extra pull-ups on your MCP9600 breakouts (so that you only have one 10 kohm on 3.3 V and one on 1.8 V) and keeping the four sensors wired closely (or else splitting them over two busses), the SDA line springs back to life. Alternatively you can re-engineer to a dedicated translator (PCA9306) if you need heavier pull-ups or longer runs.

Children
Related