引腳功能及結(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進行操作,。如果在傳送過程中RST置為低電平,,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài),。上電運行時,,在
Vcc>2.0V之前,RST必須保持低電平,。只有在SCLK為低電平時,,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),,后面有詳
細說明,。SCLK為時鐘輸入端。
DS1302的控制字節(jié)
DS1302
的控制字如圖2所示,??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,,則不能把數(shù)據(jù)寫入DS1302中,,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),,
為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸
出,?! ?br/>數(shù)據(jù)輸入輸出(I/O)
在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,,數(shù)據(jù)輸入從低位即位0開始,。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),,讀出數(shù)據(jù)時從低位0位到高位7,。
調(diào)試中問題說明
DS1302 與微處理器進行數(shù)據(jù)交換時,,首先由微處理器向電路發(fā)送命令字節(jié),,命令字節(jié)最高位Write
Protect(D7)必須為邏輯1,,如果D7=0,,則禁止寫DS1302,,即寫保護;D6=0,,指定時鐘數(shù)據(jù),,D6=1,指定RAM數(shù)據(jù),;D5~D1指
定輸入或輸出的特定寄存器,;最低位LSB(D0)為邏輯0,指定寫操作(輸入),, D0=1,,指定讀操作(輸出)。
在DS1302的時鐘日歷或RAM進行數(shù)據(jù)傳送時,,DS1302必須首先發(fā)送命令字節(jié),。若進行單字節(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在第一次加電后,必須進行初始化操作,。初始化后就可以按正常方法調(diào)整時間,?!?br/>常見問題描述:
1.時間能夠?qū)戇Mds1302芯片,但時間保持不便
1)遇到時間不走的問題,,首先查看 妙寄存器(81h)的最高位CH是否為1,,該位用于控制晶振是否停止起振,為0晶振才能正常起振,;
2)如果CH位為0,,晶振不起振,就得檢查晶振是否悍反,,電路是否正確,,晶振是否損壞。
2.數(shù)據(jù)無法寫入
檢測WP寫保護寄存器(8fh)的最高位是否為1,,為一則會處于寫保護狀態(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時序不一致所致,,可以買個進口芯片替換試試,。