Feature
- Data/Time以Packed BCD方式工作。
- 2 Alarm (w INT)
- Pulse Interrupt
- 先送第一個byte : 1101代表對CCR動作,接著的111是這個device的address(故定),最後一個bit代表這次command是要做read/Write。
- 接著兩個byte是access的目標address。
- 最後是一個byte的data
起始Address : 0x3F
寫入動作
- 寫入0x02到status register,set WEL bit (Write Enable Latch),預防在寫入時資料被update。
- 寫入0x06到status register,set WEL和RWEL (register write enable latch)。
- 寫入1到8 bytes的資料到register中,設定clock, alarm, control data。這個動作需要10ms來完成。寫完後,RWEL bit會被reset。
- 寫入0x00到status register,reset WEL和RWEL。
- 在以上任step間進行read動作不會有影響。
因為只有write command時有指定register address的動作,所以利用write command還設定target register address但是不寫入資料
- 送出I2C Start
- 送出device id, R/W bit =1
- 送出target register address ( 2 byte)
- 不送data,改送另一個I2C Start或是I2C Stop
- 先對要讀取的register作一次dummy write動作,送出要讀的address,但是在送出data之前就stop。
- 接著作讀取動作(R/W bit=1)。就可以對該位址進行讀取
- Sequencial可以由Random Read開始或是由目前address所指位置開始。一個一個address的讀。
- I2C在每一個byte後都會有一個ack clk,在read command時,ack command由master控制,Master在讀完一個byte後,如果還要讀下一個byte,就在ack 送Low,如果不要下一個byte資料,就在ack 送high。
- 資料收完後,送stop command。
沒有留言:
張貼留言