引腳功能及結(jié)構(gòu)
DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或
Vcc2兩者中的較大者供電,。當(dāng)Vcc2大于Vcc1+0.2V時,,Vcc2給DS1302供電,。當(dāng)Vcc2小于Vcc1時,,DS1302由Vcc1供
電,。X1和X2是振蕩源,外接32.768kHz晶振,。RST是復(fù)位/片選線,,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功
能:首先,,RST接通控制邏輯,,允許地址/命令序列送入移位寄存器;其次,,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段,。當(dāng)RST為高電平時,所有的數(shù)據(jù)
傳送被初始化,,允許對DS1302進(jìn)行操作,。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,,I/O引腳變?yōu)楦咦钁B(tài),。上電運行時,在
Vcc>2.0V之前,,RST必須保持低電平,。只有在SCLK為低電平時,才能將RST置為高電平,。I/O為串行數(shù)據(jù)輸入輸出端(雙向),,后面有詳
細(xì)說明。SCLK為時鐘輸入端,。
DS1302的控制字節(jié)
DS1302
的控制字如圖2所示,。控制字節(jié)的最高有效位(位7)必須是邏輯1,,如果它為0,,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,,則表示存取日歷時鐘數(shù)據(jù),,
為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,,控制字節(jié)總是從最低位開始輸
出,。
數(shù)據(jù)輸入輸出(I/O)
在控制指令字輸入后的下一個SCLK時鐘的上升沿時,,數(shù)據(jù)被寫入DS1302,,數(shù)據(jù)輸入從低位即位0開始,。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),,讀出數(shù)據(jù)時從低位0位到高位7,。
調(diào)試中問題說明
DS1302 與微處理器進(jìn)行數(shù)據(jù)交換時,,首先由微處理器向電路發(fā)送命令字節(jié),,命令字節(jié)最高位Write
Protect(D7)必須為邏輯1,,如果D7=0,,則禁止寫DS1302,即寫保護(hù),;D6=0,,指定時鐘數(shù)據(jù),D6=1,,指定RAM數(shù)據(jù),;D5~D1指
定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,,指定寫操作(輸入),, D0=1,指定讀操作(輸出),。
在DS1302的時鐘日歷或RAM進(jìn)行數(shù)據(jù)傳送時,,DS1302必須首先發(fā)送命令字節(jié)。若進(jìn)行單字節(jié)傳送,,8位命令字節(jié)傳送結(jié)束之后,,在下2個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié),。
DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,,共31個,每個單元組態(tài)為一個8位的字節(jié),,其命令控制字為C0H~FDH,,其中奇數(shù)為讀操作,偶數(shù)為寫操作,;再一類為突發(fā)方式下的RAM寄存器,,在此方式下可一次性讀、寫所有的RAM的31個字節(jié),。
要特別說明的是備用電源B1,,可以用電池或者超級電容器(0.1F以上)。雖然DS1302在主電源掉電后的耗電很小,,但是,,如果要長時間保證時鐘正
常,,最好選用小型充電電池??梢杂美鲜诫娔X主板上的3.6V充電電池,。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替,。
100 μF就可以保證1小時的正常走時,。DS1302在第一次加電后,必須進(jìn)行初始化操作,。初始化后就可以按正常方法調(diào)整時間,。
常見問題描述:
1.時間能夠?qū)戇M(jìn)ds1302芯片,,但時間保持不便
1)遇到時間不走的問題,,首先查看 妙寄存器(81h)的最高位CH是否為1,該位用于控制晶振是否停止起振,,為0晶振才能正常起振,;
2)如果CH位為0,晶振不起振,,就得檢查晶振是否悍反,,電路是否正確,晶振是否損壞,。
2.數(shù)據(jù)無法寫入
檢測WP寫保護(hù)寄存器(8fh)的最高位是否為1,,為一則會處于寫保護(hù)狀態(tài)
3.無法充電
ds1302上電充電功能是禁用的,檢測充電控制寄存器(91h)寄存器,,能夠充電的條件是:
1)TCS為1010h,,其他的值則禁用充電功能;
2)DS為01,選擇1個二極管,,DS為10,,選擇2個二極管,00,,11則禁用充電功能,;
3)RS為01,選擇2kΩ的電阻,RS為10,,選擇4kΩ的電阻,,RS為11,選擇8kΩ的電阻,,RS為00,,則禁用充電功能。
4.通過示波器抓的波形分析沒有問題,,但就是無法正常讀寫RTC
如果通過示波器抓波形分析,,讀寫時序沒有問題,,但寫入RAM后的數(shù)據(jù)讀出后不正確,沒法設(shè)置時間,,那就得懷疑芯片問題了,,市場上存在很多國產(chǎn)假芯片,其時序可能和ds1302官方提供的datasheet時序不一致所致,,可以買個進(jìn)口芯片替換試試,。