DS1302是一顆RTC IC, 可以提供以下功能
1. 含閏年補償的日曆, 最多可到2100年。不提供日光節約時間。
2. 24/12小時制的時間
3. 斷電的情況下, 可取用備用電池的電力維持計時與內部RAM的資料
4. 上電的情況下, 可替備用電池涓流充電(Trickle charge)
5. 提供31個8bit的RAM可供使用, 可以用來記錄一些系統上的設定檔之類的資訊
6. 提供爆發模式一次大量寫或讀暫存器
需注意的地方
1. 振盪器為32.768KHz, 若頻率不準, 會影響計時功能。關於晶振的選擇, 擺放, 補償電容等資訊, 須參考Application Note 58。
2. IO介面為獨自的3線式介面, 不是SPI也不是I2C。
- 寫操作時,暫存器部及資料部皆為上緣觸發。
- 讀操作時, 暫存器部是上緣觸觸發, 但資料部為下緣觸發。
3. 寫操作前須先清除WP bit, 上電後的WP行為未定義, 所以須在程式初始部明確寫入1以防誤寫資料。我就因為忘了處理WP而浪費2天的睡眠時間。
4.上電後的CH bit也未定義, 所以一樣要在程式初始部明確根據需求寫入1或0, 此bit清除後時鐘就會開始走動。
5. 備用電源從2V - 5.5V皆可, 千萬別為一次性電池充電, 否則會發生什麼事不知道。可用鋰電或鎳氫當備用電源, 本錢粗的話, 也能用鋰鐵或金電容。充電時要搭配TC暫存器的設定, 用來決定充電的電壓與電流。
6. 電路設計上沒有備用電源的話, 把Vcc1 (PIN8)接地, 這樣的話, Vcc2永遠比Vcc1大, DS1302就永遠從Vcc2抽取電力。