I got following error if I use direct I2C kernel access on Odroid-X2:
kaklik@toutatis:~/svn/Host_controller$ ./setSi570.py 1 100
DEBUG:pymlab.sensors:Writing byte 1 to address 0x72!
INFO:pymlab.sensors.iic:Loading HID driver...
INFO:pymlab.sensors.iic:Initiating HID driver...
INFO:pymlab.sensors.iic:HID device does not exist, we will try SMBus directly...
INFO:pymlab.sensors.iic:Loading SMBus driver...
DEBUG:pymlab.sensors:Writing byte 2 to address 0x72!
DEBUG:pymlab.sensors:Writing byte 4 to address 0x72!
DEBUG:pymlab.sensors:Writing byte 8 to address 0x72!
DEBUG:pymlab.sensors:Writing byte 16 to address 0x72!
DEBUG:pymlab.sensors:Writing byte 32 to address 0x72!
DEBUG:pymlab.sensors:Writing byte 64 to address 0x72!
DEBUG:pymlab.sensors:Writing byte 128 to address 0x72!
DEBUG:pymlab.sensors:Writing byte 255 to address 0x72!
Frequency will be set to 100 MHz.
DEBUG:pymlab.sensors.i2chub:Routing multiplexer to SimpleBus(address = None)
DEBUG:pymlab.sensors:Writing byte 128 to address 0x72!
DEBUG:pymlab.sensors:Reading byte from register 0x87 at bus address 0x55
DEBUG:pymlab.sensors:Writing byte data 128 to register 0x87 to address 0x55
Traceback (most recent call last):
File "./setSi570.py", line 51, in
fgen.reset() # Reset Si570 to 10 MHz
File "/usr/local/lib/python2.7/dist-packages/pymlab-0.2-py2.7.egg/pymlab/sensors/clkgen.py", line 84, in reset
self.bus.write_byte_data(self.address, self.R_RFMC, reg)
File "/usr/local/lib/python2.7/dist-packages/pymlab-0.2-py2.7.egg/pymlab/sensors/init.py", line 215, in write_byte_data
return self.driver.write_byte_data(address, register, value)
File "/usr/local/lib/python2.7/dist-packages/pymlab-0.2-py2.7.egg/pymlab/sensors/iic.py", line 52, in write_byte_data
return self.smbus.write_byte_data(address, register, value)
IOError: [Errno 111] Connection refused
It is probably due to wrong timing during Si570 reset. I2C in Odroid-X2 uses 216 kHz clocking frequency.
Everything working correctly with USBI2C01A module.
I got following error if I use direct I2C kernel access on Odroid-X2:
kaklik@toutatis:~/svn/Host_controller$ ./setSi570.py 1 100 DEBUG:pymlab.sensors:Writing byte 1 to address 0x72! INFO:pymlab.sensors.iic:Loading HID driver... INFO:pymlab.sensors.iic:Initiating HID driver... INFO:pymlab.sensors.iic:HID device does not exist, we will try SMBus directly... INFO:pymlab.sensors.iic:Loading SMBus driver... DEBUG:pymlab.sensors:Writing byte 2 to address 0x72! DEBUG:pymlab.sensors:Writing byte 4 to address 0x72! DEBUG:pymlab.sensors:Writing byte 8 to address 0x72! DEBUG:pymlab.sensors:Writing byte 16 to address 0x72! DEBUG:pymlab.sensors:Writing byte 32 to address 0x72! DEBUG:pymlab.sensors:Writing byte 64 to address 0x72! DEBUG:pymlab.sensors:Writing byte 128 to address 0x72! DEBUG:pymlab.sensors:Writing byte 255 to address 0x72! Frequency will be set to 100 MHz. DEBUG:pymlab.sensors.i2chub:Routing multiplexer to SimpleBus(address = None) DEBUG:pymlab.sensors:Writing byte 128 to address 0x72! DEBUG:pymlab.sensors:Reading byte from register 0x87 at bus address 0x55 DEBUG:pymlab.sensors:Writing byte data 128 to register 0x87 to address 0x55 Traceback (most recent call last): File "./setSi570.py", line 51, in
fgen.reset() # Reset Si570 to 10 MHz
File "/usr/local/lib/python2.7/dist-packages/pymlab-0.2-py2.7.egg/pymlab/sensors/clkgen.py", line 84, in reset
self.bus.write_byte_data(self.address, self.R_RFMC, reg)
File "/usr/local/lib/python2.7/dist-packages/pymlab-0.2-py2.7.egg/pymlab/sensors/init.py", line 215, in write_byte_data
return self.driver.write_byte_data(address, register, value)
File "/usr/local/lib/python2.7/dist-packages/pymlab-0.2-py2.7.egg/pymlab/sensors/iic.py", line 52, in write_byte_data
return self.smbus.write_byte_data(address, register, value)
IOError: [Errno 111] Connection refused
It is probably due to wrong timing during Si570 reset. I2C in Odroid-X2 uses 216 kHz clocking frequency. Everything working correctly with USBI2C01A module.