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