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

I2C SDA Ack half voltage

Hello,

Im using a NRF52840 custom made board and im having some issue with the I2C communication. There are 3 units on the I2C line, the MCU and two sensors, the diagram illustrates the setup:



My problem is that during startup when communication starts with AS3935 the SDA line goes bad. Every Ack bit from the sensor becomes half the voltage for some unknown reason. A screen capture from a oscilloscope shows the problem, see below:

Every ninth bit results in 1.5V when VDD voltage actually is 3.0V. 

When searching for this specific problem i have found that this problem can be related to the configuration of the I2C pins. More specific that they are not configured as Open-drain.

I am using the Zephyr stack and have dived deep down and found that the configuration of the SDA pin is : 

#define TWIM_PIN_INIT(_pinnrf_gpio_cfg((_pin),                     
                                         NRF_GPIO_PIN_DIR_INPUT,     
                                         NRF_GPIO_PIN_INPUT_CONNECT, 
                                         NRF_GPIO_PIN_PULLUP,        
                                         NRF_GPIO_PIN_S0D1,          
                                         NRF_GPIO_PIN_NOSENSE)
Does this configuration of the SDA pin results in open-drain?
Have anyone else experienced this problem and if so, what was causing the problem?

The addresses for the sensors are correct and I have tried different pull ups with same result. The internal pull-up (13k) are used and accounted for.

Related