I am using DT6 custom board from Variscite . This board is connect with DART MX6 board. DT6 in below link
http://www.variscite.com/products/single-board-computers/dt6customboard
I need to handle the RTC hardware on DT6 board by Python. This RTC named ISL12057. I google some info and I understand as follows.
- ISL12057 is same as DS1307. There is a library of Python for DS1307 as link
http://www.switchdoc.com/2014/07/python-driver-ds1307-real-time-clock
I try this Python library, but I do not understand this library well. So I have some questions as below. Could you answer them? I appreciate your support.
- As I list in
/dev/
, it hasi2c-0
,i2c-1
,i2c-2
. I do not know which I2C that connect to my RTC. I tried 3 of them bysmbus.SMBus(0)
,smbus.SMBus(1)
,smbus.SMBus(2)
, there are 2 kinds of error.
1.1 IOError: [Errno 16] Device or resource busy
1.2 IOError: [Errno 5] Input/output error
So, firstly, how can I solve 1.1
or 1.2
to talk with my RTC?
-
I have no experience with Python that can talk with RTC hardware. So, if my usage of DS1307 library for my ISL12057 is not correct, could you tell me another way?
-
ISL12057 has an interrupt function at each second or each minute. In Python, can we detect that interrupt when it is asserted?
Best Answer
It seems that there is no answer for this question. Fortunately, I have solved my problem so far. I will share the answer here.
1. Error
- For 1.1 IOError: [Errno 16]: The RTC (I2C slave) is connected to I2C bus (Master side). But there is a driver is controlling the RTC, so the Python can not talk with that RTC. That's why its error is "Device or resource busy".
Solve 1.1: Remove driver controlling RTC
- For 1.2 IOError: [Errno 5] : No I2C slave is connected to I2C bus (Master side).
2. DS1307 library can be used for ISL12057.
3. Connect RTC interrupt port to a GPIO port on DART board and use polling mechanism of Python to detect interrupt via GPIO port.