I am using pin number 27 and 28 on Jetson Nano and cannot read data via i2c. I have checked that the device I am connecting is working on Arduino and the data is okay.
I have tried to use smbus and busio (busio actually found the device on 0x2d) but then this error always comes:
Traceback (most recent call last):
File "sm.py", line 11, in <module>
bearing = bearing255()
File "sm.py", line 7, in bearing255
bear = bus.read_byte_data(address,5)
IOError: [Errno 110] Connection timed out
This is my code:
import smbus
bus = smbus.SMBus(0)
address = 0x2d
while True:
bear = bus.read_byte_data(address, 5)
print bear
Also, when I type
sudo i2cdetect -y -r 0
I can see the device at 0x2d but when I type that command again, it gets stuck at that address and I have to reset the connected device.
We found the problem, Jetson cannot read more than 1 byte via i2c whereas we were sending 5 bytes. I am quite surprised that I did not find information about that.
STM32 (the device) outputs 5 bytes at a time. When I try to read 5 bytes, Jetson reads 1 byte and then crashes. If I output 1 byte at a time, Jetson reads it without a problem.
Also, put a 'scope or logic analyzer on the bus and look what’s happening. The SMBus has a 35 milliseconds timeout, so if you use the SMBus module to read an I2C device that uses clock stretching, that may cause a problem.
Hi,I’m tring to create a connection between Jetson Nano and ICN6211 chip by i2c.When I was using i2c-
tools to see the address of the ICN6211 by running “sudo i2cdetect -y 2” command,it scans all different
addresses and when it gets to the slave address,it cannot be writed or read.
I have pull-up resistors on SDA and SCl,but it didn’help.
I guess Jetson I2C device load error,but I don’t konw what happens that it’s not able to detect the slave