使用F2812調(diào)試DS1302實時時鐘芯片經(jīng)驗
最近在調(diào)試DS1302忙一天終于搞定,特此寫點心得共享下希望各位少走彎路,最重要的是要保住芯片手冊,基本上軟件上需要注意的問題芯片手冊都能發(fā)現(xiàn)。
1. 在上電時,RST 必須為邏輯0 直至Vcc>2.0V。同時SCLK 在RST 驅(qū)動至邏輯1 狀態(tài)時必須為邏輯0。
2. 數(shù)據(jù)輸入是在SCLK的上升沿,數(shù)據(jù)輸出是在SCLK的下降沿。
3. 傳輸方式:低位先傳輸。
4. 時鐘運行:秒寄存器的最高位(BIT7)是作為時鐘控制位,當(dāng)為邏輯1時,時鐘停止,為0時鐘運行。所以如果要時鐘運行的話就必須將秒寄存器的最高位清0
5. 12/24小時模式:小時寄存器的第7位(最高位)是選擇12小時制還是24小時制。當(dāng)為邏輯1時選擇12小時,邏輯0選擇24小時。當(dāng)為12小時制時,小時寄存器的第5位用來表示上午AM和下午PM,邏輯1的時候表示PM,邏輯0的時候表示AM。
6. 在企圖對DS1302操作之前,必須將WP位清零。
7. 讀寫模式:有兩種模式,可以單字節(jié)讀寫,以及連續(xù)多字節(jié)讀寫(burst mode)。在連續(xù)多字節(jié)讀寫時,即burst mode,地址是必須從地址0的0位開始的。如果對時鐘操作,即CLOCK操作,則必須連續(xù)寫滿8個字節(jié)。若是對RAM操作,則可以不必須寫滿31個字節(jié)。
8. DS1302包含了實時時鐘日歷和31個字節(jié)的RAM,這里需要注意的是實時時鐘日歷的8個寄存器和31個字節(jié)的RAM是獨立的,沒有任何關(guān)系,不要混淆。31個RAM字節(jié)可以做其他用途,如鬧鐘等。因為DS1302有電池供電,所以RAM的內(nèi)容不會丟失,相當(dāng)于EEPROM了。用戶可以用來實現(xiàn)特別的要求。
9. 時序必須嚴(yán)格按照其數(shù)據(jù)手冊上來.