DS1302時鐘保(bao)持芯片,讓你很快讀(du)懂(dong)它
時間:2018-04-23 來源:未(wei)知
概述:
DS1302是DALLAS公(gong)司(si)制(zhi)作的(de)涓流充電時(shi)鐘(zhong)芯片。芯片有(you)(you)(you)實時(shi)時(shi)鐘(zhong)日歷功能,有(you)(you)(you)31*8bits靜態RAM,可以(yi)通過串(chuan)(chuan)行接(jie)(jie)(jie)口(kou)(kou)方(fang)(fang)式和處(chu)理(li)器(stm32,ARM等(deng))進行通信來讀(du)寫RAM,有(you)(you)(you)兩種傳(chuan)送方(fang)(fang)式,單(dan)(dan)字節(jie)傳(chuan)送和多字節(jie)傳(chuan)送。內部(bu)實時(shi)時(shi)鐘(zhong)日歷功能邏輯電路(lu)用于提供時(shi)、分、秒、年(nian)、月、日信息(2100年(nian)之前(qian)的(de)日期(qi)),可以(yi)自(zi)動(dong)調整閏(run)年(nian),閏(run)月問題。有(you)(you)(you)24小時(shi)和12小時(shi)兩種格式表示(shi)。DS1302和處(chu)理(li)器之間(jian)(jian)通過三(san)根線(xian)(xian)連接(jie)(jie)(jie):1、CE(低電平有(you)(you)(you)效)使能線(xian)(xian);2、I/O(Data line)數據線(xian)(xian);3、SCLK(serial clock)串(chuan)(chuan)行時(shi)鐘(zhong)線(xian)(xian)。DS1302具有(you)(you)(you)低功耗,接(jie)(jie)(jie)口(kou)(kou)簡單(dan)(dan)(和處(chu)理(li)器之間(jian)(jian)只需(xu)要三(san)根引(yin)腳),精度(du)高,抗(kang)干擾強等(deng)優點,工(gong)作電壓(ya)(2.0V~5.5V)與TTL兼容。DS1302有(you)(you)(you)年(nian)份寄(ji)(ji)(ji)(ji)存(cun)器、控制(zhi)寄(ji)(ji)(ji)(ji)存(cun)器、充電寄(ji)(ji)(ji)(ji)存(cun)器、時(shi)鐘(zhong)突發寄(ji)(ji)(ji)(ji)存(cun)器、RAM突發寄(ji)(ji)(ji)(ji)存(cun)器、RAM存(cun)儲器(31*8bits)。

DS1302管腳排(pai)列和(he)描述
引腳描述
X1 X2 接32.768KHz晶(jing)振引腳(jiao)
GND 接地線
CE 使能引腳
I/O 數(shu)據收發引(yin)腳
SCLK 時鐘引腳
Vcc1,Vcc2 供(gong)電引腳
DS1302框(kuang)圖如下(xia):

命令字:
命令字占8個比特位,如(ru)下圖:
命令字(zi)節用來初始(shi)化(hua)每次(ci)數(shu)據的傳輸(shu)。命令字(zi)節中最高(gao)位(bit 7)必須設(she)置(zhi)為(wei)(wei)(wei)1。如(ru)果設(she)置(zhi)為(wei)(wei)(wei)0,寫(xie)(xie)入(ru)會被禁止。Bit6 為(wei)(wei)(wei)0時(shi)(shi),指定對(dui)時(shi)(shi)間\日期數(shu)據讀(du)寫(xie)(xie),如(ru)果為(wei)(wei)(wei)1時(shi)(shi),指定對(dui)RAM數(shu)據進行(xing)讀(du)寫(xie)(xie)。bit1 到 bit5指定將要被讀(du)寫(xie)(xie)的寄(ji)存器是(shi)那個(ge)(芯(xin)片內部寄(ji)存器地址)。最后一個(ge)bit位(bit0)如(ru)果為(wei)(wei)(wei)0時(shi)(shi)表示寫(xie)(xie)入(ru)(input),如(ru)果為(wei)(wei)(wei)1時(shi)(shi)表示讀(du)出(output)。命令字(zi)在傳輸(shu)的時(shi)(shi)候(hou)都是(shi)先(xian)傳輸(shu)低比特位(bit0)。

使能以(yi)及時鐘控制:
需要(yao)傳輸數據時,要(yao)設置使(shi)能引腳(CE)為高電平。
使能引腳(jiao)(CE)的高低電平用(yong)來提供(gong)兩種功能。第一種:設置為高電平使能芯片(pian),此時允許命令(ling)字節\地址序列去訪問DS1302內(nei)部的移位寄(ji)存器(qi)。第二(er)種:CE信(xin)號提供(gong)一個用(yong)于(yu)終止數據傳(chuan)輸(無論是(shi)單字節傳(chuan)輸還是(shi)多字節傳(chuan)輸)的功能。
SCLK時(shi)鐘線上(shang)的(de)一(yi)(yi)個上(shang)升(sheng)沿和后面緊跟(gen)著一(yi)(yi)個下(xia)(xia)降(jiang)沿組成的(de)一(yi)(yi)個方波構成了一(yi)(yi)個時(shi)鐘周期(qi)。處理器向(xiang)DS1302寫入數據(ju)(ju)(ju)時(shi),DS1302會在(zai)時(shi)鐘周期(qi)的(de)上(shang)升(sheng)沿時(shi)采集I/O(數據(ju)(ju)(ju)線)電(dian)(dian)(dian)平(ping)(ping)(ping)狀(zhuang)態(tai)。處理器從(cong)DS1302讀(du)取數據(ju)(ju)(ju)時(shi),DS1302會在(zai)時(shi)鐘周期(qi)的(de)下(xia)(xia)降(jiang)沿時(shi)設置I/O(數據(ju)(ju)(ju)線)電(dian)(dian)(dian)平(ping)(ping)(ping)狀(zhuang)態(tai)。如果(guo)CE(使(shi)能(neng)(neng)信號線)輸(shu)出低(di)(di)電(dian)(dian)(dian)平(ping)(ping)(ping),所有的(de)數據(ju)(ju)(ju)傳輸(shu)將會終(zhong)止并(bing)且I/O(數據(ju)(ju)(ju)線)將會變成高阻態(tai)。下(xia)(xia)圖(tu)展(zhan)示(shi)了單字節的(de)讀(du)寫時(shi)序圖(tu)。在(zai)剛上(shang)電(dian)(dian)(dian)時(shi),CE(使(shi)能(neng)(neng)信號線)必(bi)須(xu)處于低(di)(di)電(dian)(dian)(dian)平(ping)(ping)(ping)狀(zhuang)態(tai)(低(di)(di)于2.0V)。還有就是在(zai)CE(使(shi)能(neng)(neng)信號線)從(cong)低(di)(di)電(dian)(dian)(dian)平(ping)(ping)(ping)變為高電(dian)(dian)(dian)平(ping)(ping)(ping)期(qi)間SCLK(串(chuan)行時(shi)鐘信號線)必(bi)須(xu)保持(chi)低(di)(di)電(dian)(dian)(dian)平(ping)(ping)(ping)。
輸(shu)入數據(ju) (write)
首先傳(chuan)輸(shu)一個寫的命令字(bit0 為低電平(ping))占用前8個時(shi)(shi)(shi)鐘(zhong)周期(qi),在緊(jin)隨其后(hou)的連(lian)續8個時(shi)(shi)(shi)鐘(zhong)周期(qi)傳(chuan)輸(shu)一個8比特位(一個字節)的數據(ju),每一個比特位都是(shi)在SCLK(串行時(shi)(shi)(shi)鐘(zhong)線)為上升(sheng)沿時(shi)(shi)(shi)設置I/O(數據(ju)線)。如果不慎發生了額外(wai)的時(shi)(shi)(shi)鐘(zhong)周期(qi),這些(xie)額外(wai)的時(shi)(shi)(shi)鐘(zhong)周期(qi)將會被(bei)忽略。數據(ju)的傳(chuan)輸(shu)是(shi)先傳(chuan)送每個字節的低bit位。
輸出(chu)數據(read)
首先(xian)(xian)傳(chuan)輸(shu)(shu)一個(ge)讀的(de)(de)(de)命令(ling)字(bit0 為高(gao)電(dian)平(ping))占(zhan)用前8個(ge)時鐘(zhong)(zhong)周(zhou)期(qi)(qi),在緊隨其后的(de)(de)(de)連續8個(ge)時鐘(zhong)(zhong)周(zhou)期(qi)(qi)傳(chuan)輸(shu)(shu)一個(ge)8比特位(一個(ge)字節)的(de)(de)(de)數據(ju)。需要注意的(de)(de)(de)是,數據(ju)的(de)(de)(de)第一個(ge)比特位(D0)輸(shu)(shu)出是在命令(ling)字的(de)(de)(de)bit7所在周(zhou)期(qi)(qi)的(de)(de)(de)下降沿(yan)傳(chuan)輸(shu)(shu)。如(ru)果不慎(shen)發(fa)生(sheng)了額外的(de)(de)(de)時鐘(zhong)(zhong)周(zhou)期(qi)(qi),這(zhe)些額外的(de)(de)(de)時鐘(zhong)(zhong)周(zhou)期(qi)(qi)將會(hui)被(bei)忽略,此(ci)時CE(使能信號線)還(huan)是高(gao)電(dian)平(ping)。同時,I/O引腳(jiao)在每(mei)個(ge)時鐘(zhong)(zhong)周(zhou)期(qi)(qi)上升沿(yan)時為高(gao)阻(zu)態。數據(ju)的(de)(de)(de)傳(chuan)輸(shu)(shu)是先(xian)(xian)傳(chuan)送每(mei)個(ge)字節的(de)(de)(de)低(di)bit位。
突發模式:
不(bu)管是(shi)(shi)(shi)時鐘(zhong)/日歷(li)寄(ji)(ji)(ji)(ji)存(cun)(cun)器(qi)還(huan)(huan)是(shi)(shi)(shi)RAM寄(ji)(ji)(ji)(ji)存(cun)(cun)器(qi)都可以使用(yong)突(tu)發(fa)模式進(jin)行訪問(wen)(wen)。需要把命令(ling)字(zi)的(de)(de)(de)(de)地址位(bit1 ~ bit5 )全部設置(zhi)為1。設置(zhi)命令(ling)字(zi)的(de)(de)(de)(de)bit6(指(zhi)明操作(zuo)的(de)(de)(de)(de)是(shi)(shi)(shi)時鐘(zhong)/日歷(li)寄(ji)(ji)(ji)(ji)存(cun)(cun)器(qi)還(huan)(huan)是(shi)(shi)(shi)RAM寄(ji)(ji)(ji)(ji)存(cun)(cun)器(qi))。設置(zhi)命令(ling)字(zi)的(de)(de)(de)(de)bit0(用(yong)于指(zhi)明是(shi)(shi)(shi)讀(du)還(huan)(huan)是(shi)(shi)(shi)寫)。訪問(wen)(wen)時鐘(zhong)/日歷(li)寄(ji)(ji)(ji)(ji)存(cun)(cun)器(qi)的(de)(de)(de)(de)時候在(zai)(zai)地址9~31的(de)(de)(de)(de)位置(zhi)是(shi)(shi)(shi)沒有存(cun)(cun)儲介(jie)(jie)質的(de)(de)(de)(de)。還(huan)(huan)有在(zai)(zai)訪問(wen)(wen)RAM寄(ji)(ji)(ji)(ji)存(cun)(cun)器(qi)的(de)(de)(de)(de)時候在(zai)(zai)地址31的(de)(de)(de)(de)位置(zhi)沒有存(cun)(cun)儲介(jie)(jie)質。在(zai)(zai)突(tu)發(fa)模式下無論是(shi)(shi)(shi)讀(du)還(huan)(huan)是(shi)(shi)(shi)寫都是(shi)(shi)(shi)從0地址的(de)(de)(de)(de)bit0位開始的(de)(de)(de)(de)。
當在突發模式(shi)下寫(xie)時(shi)鐘(zhong)\日歷(li)寄(ji)(ji)存(cun)器時(shi),前8個(ge)(ge)寄(ji)(ji)存(cun)器必(bi)(bi)須按照順序寫(xie)入數據(ju)。但(dan)是,在突發模式(shi)下寫(xie)RAM寄(ji)(ji)存(cun)器時(shi),就(jiu)沒(mei)必(bi)(bi)要把(ba)所有的31字(zi)節(jie)的寄(ji)(ji)存(cun)器全部寫(xie)入數據(ju)。傳輸的每一個(ge)(ge)字(zi)節(jie)都會(hui)被寫(xie)入到RAM寄(ji)(ji)存(cun)器中(zhong),不管(guan)是否傳輸了31個(ge)(ge)字(zi)節(jie)。
時鐘/日歷
讀相(xiang)應(ying)的(de)寄(ji)存(cun)器(qi)(qi)可(ke)以獲取時(shi)間(jian)(jian)和日(ri)(ri)期。表格(ge)3 說明(ming)了時(shi)間(jian)(jian)\日(ri)(ri)期寄(ji)存(cun)器(qi)(qi)。寫響應(ying)的(de)寄(ji)存(cun)器(qi)(qi)可(ke)以用來設(she)置(zhi)時(shi)間(jian)(jian)和日(ri)(ri)期。用BCD碼(ma)的(de)格(ge)式把時(shi)間(jian)(jian)/日(ri)(ri)期數據保存(cun)在響應(ying)的(de)寄(ji)存(cun)器(qi)(qi)中。
在午夜凌(ling)晨的(de)(de)時候會遞增(zeng)表(biao)(biao)(biao)示(shi)(shi)星(xing)(xing)(xing)期(qi)(qi)幾的(de)(de)寄(ji)存(cun)器。用戶可以自定義表(biao)(biao)(biao)示(shi)(shi)星(xing)(xing)(xing)期(qi)(qi)天的(de)(de)數值是多少(shao),但是數值必須是連續的(de)(de)(例如(ru):1表(biao)(biao)(biao)示(shi)(shi)星(xing)(xing)(xing)期(qi)(qi)天,那(nei)么2就表(biao)(biao)(biao)示(shi)(shi)星(xing)(xing)(xing)期(qi)(qi)一(yi),3就表(biao)(biao)(biao)示(shi)(shi)星(xing)(xing)(xing)期(qi)(qi)二等(deng)等(deng))。如(ru)果輸入(ru)了一(yi)些(xie)不(bu)符(fu)合(he)邏輯的(de)(de)時間或(huo)者日期(qi)(qi),會導致一(yi)些(xie)未定義的(de)(de)結(jie)果。
When reading or writing the time and date registers, secondary (user) buffers are used to prevent errors when the internal registers update. When reading the time and date registers, the user buffers are synchronized to the internal registers the rising edge of CE.
The countdown chain is reset whenever the seconds register is written. Write transfers occur on the falling edge of CE. To avoid rollover issues, once the countdown chain is reset, the remaining time and date registers must be written within 1 second.
DS1302可以運行在(zai)(zai)12小(xiao)(xiao)(xiao)(xiao)(xiao)時(shi)(shi)(shi)(shi)(shi)(shi)制(zhi)和24小(xiao)(xiao)(xiao)(xiao)(xiao)時(shi)(shi)(shi)(shi)(shi)(shi)制(zhi)兩(liang)種模(mo)式(shi)。小(xiao)(xiao)(xiao)(xiao)(xiao)時(shi)(shi)(shi)(shi)(shi)(shi)寄存(cun)器的(de)bit7位用于決(jue)定運行在(zai)(zai)12小(xiao)(xiao)(xiao)(xiao)(xiao)時(shi)(shi)(shi)(shi)(shi)(shi)制(zhi)還是24小(xiao)(xiao)(xiao)(xiao)(xiao)時(shi)(shi)(shi)(shi)(shi)(shi)制(zhi)模(mo)式(shi),設置為1(高電(dian)平(ping))時(shi)(shi)(shi)(shi)(shi)(shi)就(jiu)是12小(xiao)(xiao)(xiao)(xiao)(xiao)時(shi)(shi)(shi)(shi)(shi)(shi)制(zhi)模(mo)式(shi)。當(dang)運行在(zai)(zai)12小(xiao)(xiao)(xiao)(xiao)(xiao)時(shi)(shi)(shi)(shi)(shi)(shi)的(de)模(mo)式(shi)時(shi)(shi)(shi)(shi)(shi)(shi),bit5用來表示(shi)是上午還是下(xia)午(AM/PM),為1(高電(dian)平(ping))時(shi)(shi)(shi)(shi)(shi)(shi)表示(shi)PM。當(dang)運行在(zai)(zai)24小(xiao)(xiao)(xiao)(xiao)(xiao)時(shi)(shi)(shi)(shi)(shi)(shi)模(mo)式(shi)時(shi)(shi)(shi)(shi)(shi)(shi),bit5用來表示(shi)第2個10小(xiao)(xiao)(xiao)(xiao)(xiao)時(shi)(shi)(shi)(shi)(shi)(shi)(20-23小(xiao)(xiao)(xiao)(xiao)(xiao)時(shi)(shi)(shi)(shi)(shi)(shi))。當(dang)切換(huan)模(mo)式(shi)的(de)時(shi)(shi)(shi)(shi)(shi)(shi)候(修改bit7)需要重新初(chu)始(shi)化(hua)小(xiao)(xiao)(xiao)(xiao)(xiao)時(shi)(shi)(shi)(shi)(shi)(shi)寄存(cun)器。
時鐘停止標志:
秒寄存器(qi)的(de)bit7位是時鐘終止標志位,當bit7設(she)置為1時,時鐘振蕩器(qi)將會停止振蕩此時DS1302進入低功耗的(de)待機模式,消(xiao)耗電流小于100nA。當bit7設(she)置為0時,時鐘將開(kai)始工(gong)作。設(she)備剛上電時該位沒有定義。
寫保護位:
控制寄(ji)存器(qi)(qi)(qi)的(de)bit7是寫(xie)保護(hu)位(WP)。前7個(ge)bit位(bit0 ~ bit6)都設(she)置位0,如(ru)果(guo)讀控制寄(ji)存器(qi)(qi)(qi)的(de)前7個(ge)bit位(bit0 ~ bit6),讀到的(de)永(yong)遠是0。在寫(xie)時鐘/日歷或者RAM寄(ji)存器(qi)(qi)(qi)之前,控制寄(ji)存器(qi)(qi)(qi)的(de)bit7必(bi)須是0。當寫(xie)保護(hu)位(WP)是1時,會(hui)防止(zhi)對任何(he)其(qi)他寄(ji)存器(qi)(qi)(qi)的(de)寫(xie)操作(zuo)。因此(ci),如(ru)果(guo)想(xiang)往(wang)設(she)備(bei)寄(ji)存中寫(xie)數據(ju)就(jiu)必(bi)須先將寫(xie)保護(hu)位(WP)清0。設(she)備(bei)剛(gang)上(shang)電時該位沒(mei)有定義(yi)。
涓(juan)流(liu)充電(dian)寄存器(qi):
該寄存器(qi)決定了(le)DS1302的充電(dian)特性。
時鐘/日歷(li)突發(fa)模式:
由時(shi)鐘/日歷命(ming)令字來指定突發模式(shi)操(cao)作。在這種模式(shi)下,8個時(shi)鐘/日歷寄存器可(ke)以被連(lian)續的(de)讀出或者寫入。讀出或者寫入的(de)其(qi)實位置(zhi)是0地址的(de)第0個bit位。
如果設置寫保護位為(wei)1時,在(zai)時鐘/日(ri)歷突發模(mo)式(shi)寫,8個(ge)時鐘/日(ri)歷寄存器沒有一個(ge)會發生變化(包括控制寄存器)。涓流(liu)充電器在(zai)突發模(mo)式(shi)下不可訪問。
在開始讀(du)時(shi)鐘(zhong)的(de)(de)時(shi)候,當前(qian)的(de)(de)時(shi)間被轉移到一個(ge)(ge)備用寄存器(qi)(qi)中。時(shi)間信息會從(cong)備用寄存器(qi)(qi)中讀(du)出來,在這個(ge)(ge)過程(cheng)中時(shi)鐘(zhong)可能發(fa)生變(bian)化。這就(jiu)消除了在時(shi)鐘(zhong)寄存器(qi)(qi)更新時(shi)需要重新讀(du)取時(shi)鐘(zhong)寄存器(qi)(qi)的(de)(de)情況。
RAM:
靜態(tai)RAM大小為 31*8bits。在RAM地址空間中(zhong)他(ta)們的地址是連續(xu)的。
RAM突發(fa)模(mo)式:
由RAM命令字(zi)來指定突(tu)發模(mo)式操作。在(zai)這(zhe)種(zhong)模(mo)式下(xia),31個(ge)(ge)RAM寄存器(qi)可以被聯(lian)系的讀出或者(zhe)(zhe)寫入。讀出或者(zhe)(zhe)寫入的其實位置是0地址的第0個(ge)(ge)bit位。
寄存器概況:
表3展示了寄存器(qi)數據(ju)格式的概況(kuang)。
晶振選擇:
在DS1302的(de)X1,X2管腳上(shang)可(ke)以鏈接一個32,768kHz的(de)晶振(zhen)。
表3如下:

表4 如下:


