This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Can't find twi / i2c MS5611 device with nRF52840

I am trying to connect the MS5611 (https://www.te.com/usa-en/product-CAT-BLPS0036.html) using the GY-63 Sensor Module to the nRF52840 with the nRF5_SDK_15.3.0_59ac345 SDK.

I use the nRF5 SDK twi_scanner example to scan the twi / i2c devices. 

  • Scan on the nRF52840 with the single MS5611 device > no device found
  • Scan on the nRF52840 with MS5611 and a MPU9250/6500 > MPU9250 device found, MS5611 not found
  • Scan on the Adafruit Trinket M0 with the MS5611  > MS5611 device found on 0x77

My conclusion with these test are that the nRF52840 twi works and the MS5611 module works as well, but not together.

I compared the Arduino (top) and nRF52840 (bottom) communication and was surprised to see that the clock for the nrf5 was a bit odd, any additional tests that could be done to get the MS5611 working?

Any suggestions much appreciated!

Logic Analyzer

Parents
  • Below the full view of the nRF52840 communication including analog signal. And yes, there are 4.7k pull ups on the board. 

  • Hi 

    Thanks for sharing the analog plot. Based on that it doesn't appear to be a signaling problem, the sensor simply doesn't ack the command for some reason. 

    Have you made sure that the CSB pin is the same in both cases, to satisfy the requirement from the sensor datasheet that the MS5611-01BA address is 111011Cx, where C is the complementary value of the pin CSB?

    The working example based on the Adafruit Trinket is issuing a write command, while the non working example with the nRF52840 is issuing a read command. Can you try a write command on the the nRF52840 also and see if it still doesn't work?

    Best regards
    Torbjørn

Reply
  • Hi 

    Thanks for sharing the analog plot. Based on that it doesn't appear to be a signaling problem, the sensor simply doesn't ack the command for some reason. 

    Have you made sure that the CSB pin is the same in both cases, to satisfy the requirement from the sensor datasheet that the MS5611-01BA address is 111011Cx, where C is the complementary value of the pin CSB?

    The working example based on the Adafruit Trinket is issuing a write command, while the non working example with the nRF52840 is issuing a read command. Can you try a write command on the the nRF52840 also and see if it still doesn't work?

    Best regards
    Torbjørn

Children
No Data
Related