We are trying to solve a problem which means we are unable to communicate over I2C on our Xavier NX/Nano based carrier board design. Upon I2C Bus Analysis, we have found there is a difference between I2C Logic Levels on Nano SOM and Xavier SOM.
Test conditions:
Custom Carrier Boards are the same.
I2C transactions are monitored through Oscilloscope. These transactions are conducted over I2C2_SCL/SDA - Pin 232 and 234.
Resistance between 1.8V and I2C2_DAT/CLK pins are same = 1.3kohm after connecting any of the SOMs - Xavier SOM and Nano SOM
We notice that I2C signals on Xavier SOM + Custom Carrier Board setup are not pulled fully down.
This introduces some problems with our devices as it leaves the devices confused about the state. Below is an example of how the I2C bus is then left hanging in inappropriate state -
We don’t see this problem on Nano SOM + Custom Carrier Board setup. I2C Transactions are normal, and without any errors. There is almost no difference in pull up resistors in Xavier SOM and Nano SOM and no changes on our carrier board setup.
Any suggestions about how to resolve this or what could cause this issue are greatly appreciated.
The module i2c already have pull up, there is no need pull up on carrier board.
Would you please show the block diagram of devices on I2C2 bus?
Is there i2c device was not power well?
voltages around 0.7V. We’ve found that the camera board we are using has ~1.3K pullups. Presumably the Nano SOM can handle this but the Xavier NX SOM cannot.
We’ve noticed the Xavier NX Datasheet Electrical Characteristics details the VoL and IoL for I2C-0 and 1 but not I2C2. What should we expect for these values?
If there were a 1.3K pullup on the camera module board this would be 1.38mA IoL into the SOM if the SOM were able to drive I2C to 0V, which I expect would mean a maximum of 0.3xVDD and 0.54V. However we are measuring VoL around 0.7V in this scenario.
Does the IoL reference include the current inside the SOM due to the internal pullup? Even in that case I would expect 1.8-0.7=1.1V drop across equivalent of 2.2K and 1.3K parallel resistance (817 ohms) which would mean 1.3mA IoL.
It seems the spec doesn’t match what we are measuring or perhaps I’m misunderstanding something about what it’s specifying.
Do you have the camera module board schematic to confirm the pull up source ?
Unfortunately no
is it able to remove the pull up.
We are checking with the manufacturer about this, thanks for the suggestion.
Even after removing the pullup resistor on the sensor module we weren’t able to get the part to pull down low enough to meet LVTTL specs. We have decided to switch to using the 3.3V I2C channel instead and a level translator as a workaround for this.
After some experimentation, we have found that if you are sinking about 1 mA of current through the I2C pins, the I2C Output Voltage Low comes around 0.52V, on the edge of LVTTL spec of about 0.54V. Sinking more than 1 mA of current throws the I2C Voltage Levels out of the spec and can cause some errors.