DS1302時(shí)鐘保持芯片,讓你很快讀懂它
時(shí)間:2018-04-23作者:華清遠(yuǎn)見
概述: DS1302是DALLAS公司制作的涓流充電時(shí)鐘芯片。芯片有實(shí)時(shí)時(shí)鐘日歷功能,有31*8bits靜態(tài)RAM,可以通過串行接口方式和處理器(stm32,ARM等)進(jìn)行通信來讀寫RAM,有兩種傳送方式,單字節(jié)傳送和多字節(jié)傳送。內(nèi)部實(shí)時(shí)時(shí)鐘日歷功能邏輯電路用于提供時(shí)、分、秒、年、月、日信息(2100年之前的日期),可以自動(dòng)調(diào)整閏年,閏月問題。有24小時(shí)和12小時(shí)兩種格式表示。DS1302和處理器之間通過三根線連接:1、CE(低電平有效)使能線;2、I/O(Data line)數(shù)據(jù)線;3、SCLK(serial clock)串行時(shí)鐘線。DS1302具有低功耗,接口簡(jiǎn)單(和處理器之間只需要三根引腳),精度高,抗干擾強(qiáng)等優(yōu)點(diǎn),工作電壓(2.0V~5.5V)與TTL兼容。DS1302有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器、RAM突發(fā)寄存器、RAM存儲(chǔ)器(31*8bits)。
DS1302管腳排列和描述 引腳描述 X1 X2 接32.768KHz晶振引腳 GND 接地線 CE 使能引腳 I/O 數(shù)據(jù)收發(fā)引腳 SCLK 時(shí)鐘引腳 Vcc1,Vcc2 供電引腳 DS1302框圖如下:
命令字: 命令字占8個(gè)比特位,如下圖: 命令字節(jié)用來初始化每次數(shù)據(jù)的傳輸。命令字節(jié)中最高位(bit 7)必須設(shè)置為1。如果設(shè)置為0,寫入會(huì)被禁止。Bit6 為0時(shí),指定對(duì)時(shí)間\日期數(shù)據(jù)讀寫,如果為1時(shí),指定對(duì)RAM數(shù)據(jù)進(jìn)行讀寫。bit1 到 bit5指定將要被讀寫的寄存器是那個(gè)(芯片內(nèi)部寄存器地址)。最后一個(gè)bit位(bit0)如果為0時(shí)表示寫入(input),如果為1時(shí)表示讀出(output)。命令字在傳輸?shù)臅r(shí)候都是先傳輸?shù)捅忍匚?bit0)。
使能以及時(shí)鐘控制: 需要傳輸數(shù)據(jù)時(shí),要設(shè)置使能引腳(CE)為高電平。 使能引腳(CE)的高低電平用來提供兩種功能。第一種:設(shè)置為高電平使能芯片,此時(shí)允許命令字節(jié)\地址序列去訪問DS1302內(nèi)部的移位寄存器。第二種:CE信號(hào)提供一個(gè)用于終止數(shù)據(jù)傳輸(無論是單字節(jié)傳輸還是多字節(jié)傳輸)的功能。 SCLK時(shí)鐘線上的一個(gè)上升沿和后面緊跟著一個(gè)下降沿組成的一個(gè)方波構(gòu)成了一個(gè)時(shí)鐘周期。處理器向DS1302寫入數(shù)據(jù)時(shí),DS1302會(huì)在時(shí)鐘周期的上升沿時(shí)采集I/O(數(shù)據(jù)線)電平狀態(tài)。處理器從DS1302讀取數(shù)據(jù)時(shí),DS1302會(huì)在時(shí)鐘周期的下降沿時(shí)設(shè)置I/O(數(shù)據(jù)線)電平狀態(tài)。如果CE(使能信號(hào)線)輸出低電平,所有的數(shù)據(jù)傳輸將會(huì)終止并且I/O(數(shù)據(jù)線)將會(huì)變成高阻態(tài)。下圖展示了單字節(jié)的讀寫時(shí)序圖。在剛上電時(shí),CE(使能信號(hào)線)必須處于低電平狀態(tài)(低于2.0V)。還有就是在CE(使能信號(hào)線)從低電平變?yōu)楦唠娖狡陂gSCLK(串行時(shí)鐘信號(hào)線)必須保持低電平。 輸入數(shù)據(jù) (write) 首先傳輸一個(gè)寫的命令字(bit0 為低電平)占用前8個(gè)時(shí)鐘周期,在緊隨其后的連續(xù)8個(gè)時(shí)鐘周期傳輸一個(gè)8比特位(一個(gè)字節(jié))的數(shù)據(jù),每一個(gè)比特位都是在SCLK(串行時(shí)鐘線)為上升沿時(shí)設(shè)置I/O(數(shù)據(jù)線)。如果不慎發(fā)生了額外的時(shí)鐘周期,這些額外的時(shí)鐘周期將會(huì)被忽略。數(shù)據(jù)的傳輸是先傳送每個(gè)字節(jié)的低bit位。 輸出數(shù)據(jù)(read) 首先傳輸一個(gè)讀的命令字(bit0 為高電平)占用前8個(gè)時(shí)鐘周期,在緊隨其后的連續(xù)8個(gè)時(shí)鐘周期傳輸一個(gè)8比特位(一個(gè)字節(jié))的數(shù)據(jù)。需要注意的是,數(shù)據(jù)的第一個(gè)比特位(D0)輸出是在命令字的bit7所在周期的下降沿傳輸。如果不慎發(fā)生了額外的時(shí)鐘周期,這些額外的時(shí)鐘周期將會(huì)被忽略,此時(shí)CE(使能信號(hào)線)還是高電平。同時(shí),I/O引腳在每個(gè)時(shí)鐘周期上升沿時(shí)為高阻態(tài)。數(shù)據(jù)的傳輸是先傳送每個(gè)字節(jié)的低bit位。 突發(fā)模式: 不管是時(shí)鐘/日歷寄存器還是RAM寄存器都可以使用突發(fā)模式進(jìn)行訪問。需要把命令字的地址位(bit1 ~ bit5 )全部設(shè)置為1。設(shè)置命令字的bit6(指明操作的是時(shí)鐘/日歷寄存器還是RAM寄存器)。設(shè)置命令字的bit0(用于指明是讀還是寫)。訪問時(shí)鐘/日歷寄存器的時(shí)候在地址9~31的位置是沒有存儲(chǔ)介質(zhì)的。還有在訪問RAM寄存器的時(shí)候在地址31的位置沒有存儲(chǔ)介質(zhì)。在突發(fā)模式下無論是讀還是寫都是從0地址的bit0位開始的。 當(dāng)在突發(fā)模式下寫時(shí)鐘\日歷寄存器時(shí),前8個(gè)寄存器必須按照順序?qū)懭霐?shù)據(jù)。但是,在突發(fā)模式下寫RAM寄存器時(shí),就沒必要把所有的31字節(jié)的寄存器全部寫入數(shù)據(jù)。傳輸?shù)拿恳粋(gè)字節(jié)都會(huì)被寫入到RAM寄存器中,不管是否傳輸了31個(gè)字節(jié)。 時(shí)鐘/日歷 讀相應(yīng)的寄存器可以獲取時(shí)間和日期。表格3 說明了時(shí)間\日期寄存器。寫響應(yīng)的寄存器可以用來設(shè)置時(shí)間和日期。用BCD碼的格式把時(shí)間/日期數(shù)據(jù)保存在響應(yīng)的寄存器中。 在午夜凌晨的時(shí)候會(huì)遞增表示星期幾的寄存器。用戶可以自定義表示星期天的數(shù)值是多少,但是數(shù)值必須是連續(xù)的(例如:1表示星期天,那么2就表示星期一,3就表示星期二等等)。如果輸入了一些不符合邏輯的時(shí)間或者日期,會(huì)導(dǎo)致一些未定義的結(jié)果。 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可以運(yùn)行在12小時(shí)制和24小時(shí)制兩種模式。小時(shí)寄存器的bit7位用于決定運(yùn)行在12小時(shí)制還是24小時(shí)制模式,設(shè)置為1(高電平)時(shí)就是12小時(shí)制模式。當(dāng)運(yùn)行在12小時(shí)的模式時(shí),bit5用來表示是上午還是下午(AM/PM),為1(高電平)時(shí)表示PM。當(dāng)運(yùn)行在24小時(shí)模式時(shí),bit5用來表示第2個(gè)10小時(shí)(20-23小時(shí))。當(dāng)切換模式的時(shí)候(修改bit7)需要重新初始化小時(shí)寄存器。 時(shí)鐘停止標(biāo)志: 秒寄存器的bit7位是時(shí)鐘終止標(biāo)志位,當(dāng)bit7設(shè)置為1時(shí),時(shí)鐘振蕩器將會(huì)停止振蕩此時(shí)DS1302進(jìn)入低功耗的待機(jī)模式,消耗電流小于100nA。當(dāng)bit7設(shè)置為0時(shí),時(shí)鐘將開始工作。設(shè)備剛上電時(shí)該位沒有定義。 寫保護(hù)位: 控制寄存器的bit7是寫保護(hù)位(WP)。前7個(gè)bit位(bit0 ~ bit6)都設(shè)置位0,如果讀控制寄存器的前7個(gè)bit位(bit0 ~ bit6),讀到的永遠(yuǎn)是0。在寫時(shí)鐘/日歷或者RAM寄存器之前,控制寄存器的bit7必須是0。當(dāng)寫保護(hù)位(WP)是1時(shí),會(huì)防止對(duì)任何其他寄存器的寫操作。因此,如果想往設(shè)備寄存中寫數(shù)據(jù)就必須先將寫保護(hù)位(WP)清0。設(shè)備剛上電時(shí)該位沒有定義。 涓流充電寄存器: 該寄存器決定了DS1302的充電特性。 時(shí)鐘/日歷突發(fā)模式: 由時(shí)鐘/日歷命令字來指定突發(fā)模式操作。在這種模式下,8個(gè)時(shí)鐘/日歷寄存器可以被連續(xù)的讀出或者寫入。讀出或者寫入的其實(shí)位置是0地址的第0個(gè)bit位。 如果設(shè)置寫保護(hù)位為1時(shí),在時(shí)鐘/日歷突發(fā)模式寫,8個(gè)時(shí)鐘/日歷寄存器沒有一個(gè)會(huì)發(fā)生變化(包括控制寄存器)。涓流充電器在突發(fā)模式下不可訪問。 在開始讀時(shí)鐘的時(shí)候,當(dāng)前的時(shí)間被轉(zhuǎn)移到一個(gè)備用寄存器中。時(shí)間信息會(huì)從備用寄存器中讀出來,在這個(gè)過程中時(shí)鐘可能發(fā)生變化。這就消除了在時(shí)鐘寄存器更新時(shí)需要重新讀取時(shí)鐘寄存器的情況。 RAM: 靜態(tài)RAM大小為 31*8bits。在RAM地址空間中他們的地址是連續(xù)的。 RAM突發(fā)模式: 由RAM命令字來指定突發(fā)模式操作。在這種模式下,31個(gè)RAM寄存器可以被聯(lián)系的讀出或者寫入。讀出或者寫入的其實(shí)位置是0地址的第0個(gè)bit位。 寄存器概況: 表3展示了寄存器數(shù)據(jù)格式的概況。 晶振選擇: 在DS1302的X1,X2管腳上可以鏈接一個(gè)32,768kHz的晶振。 表3如下:
表4 如下:
相關(guān)資訊
發(fā)表評(píng)論
|
全國(guó)咨詢電話:400-611-6270,雙休日及節(jié)假日請(qǐng)致電值班手機(jī):15010390966
在線咨詢: 曹老師QQ(3337544669), 徐老師QQ(1462495461), 劉老師 QQ(3108687497)
企業(yè)培訓(xùn)洽談專線:010-82600901,院校合作洽談專線:010-82600350,在線咨詢:QQ(248856300)
Copyright 2004-2018 華清遠(yuǎn)見教育科技集團(tuán) 版權(quán)所有 ,京ICP備16055225號(hào),京公海網(wǎng)安備11010802025203號(hào)