《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業(yè)界動態(tài) > 實時時鐘芯片DS1302

實時時鐘芯片DS1302

2015-11-04
關鍵詞: DS1302 時鐘芯片

       本節(jié)課的DS1302是個實時時鐘芯片,,我們可以用單片機寫入時間或者讀取當前的時間數據,,我也會帶著大家通過閱讀這個芯片的數據手冊來學習和掌握這個器件,。

        由于IT技術國際化比較強,,因此數據手冊絕大多數都是英文的,導致很多英語基礎不好的同學看到英文手冊頭就大了,。這里我要告訴大家的是,,只要精神不退 縮,方法總比困難多,,很多英語水平不高的,,看數據手冊照樣完全沒問題,因為我們的專業(yè)詞匯也就那么幾個,,多看幾次就認識了,。我們現在不是考試,因此大家可 以充分利用一些英文翻譯軟件,,翻譯過來的中文意思有時候可能不是那么準確,,那你就把翻譯的內容和英文手冊里的一些圖表比較參考學習。此外數據手冊除了介紹 性的說明外,,一般還會配相關的圖形或者表格,結合起來看也有利于理解手冊所表達的意思,。這節(jié)課我會把DS1302的英文資料盡可能的用比較便于理解的方式 給大家表達出來,,同學們可以把我的表達和英文手冊多做一下對比,盡可能快的慢慢開始學會了解英文手冊。

1,、DS1302的特點

        DS1302是DALLAS(達拉斯)公司出的一款涓流充電時鐘芯片,,2001年DALLAS被MAXIM(美信)收購,因此我們看到的DS1302的數據手冊既有DALLAS的標志,,又有MAXIM的標志,,大家了解即可。

        DS1302實時時鐘芯片廣泛應用于電話,、傳真,、便攜式儀器等產品領域,他的主要性能指標如下:

1,、DS1302是一個實時時鐘芯片,,可以提供秒、分,、小時,、日期、月,、年等信息,,并且還有軟件自動調整的能力,可以通過配置AM/PM來決定采用24小時格式還是12小時格式,。

2,、擁有31字節(jié)數據存儲RAM。

3,、串行I/O通信方式,,相對并行來說比較節(jié)省IO口的使用。

4,、DS1302的工作電壓比較寬,,大概是2.0V~5.5V都可以正常工作。

5,、DS1302這種時鐘芯片功耗一般都很低,,它在工作電壓2.0V的時候,工作電流小于300nA,。

6,、DS1302共有8個引腳,有兩種封裝形式,,一種是DIP-8封裝,,芯片寬度(不含引腳)是300mil,一種是SOP-8封裝,,有兩種寬度,,一種是150mil,,一種是208mil。我們看一下DS1302的引腳封裝圖,,如圖1所示,。


捕獲.JPG

       所謂的DIP封裝Dual In-line Package,也叫做雙列直插式封裝技術,,就如同我們開發(fā)板上的STC89C52RC單片機,,就是個 典型的DIP封裝,當然這個STC89C52RC還有其他的封裝,,為了方便學習使用,,我們采用的是DIP封裝。而74HC245,、74HC138,、 24C02、DS1302我們用的都是SOP封裝Small Out-Line Package,,是一種芯片兩側引出L形引腳的封裝技術,,大家可以看看開 發(fā)板上的芯片,了解一下這些常識性知識,。

7,、當供電電壓是5V的時候,兼容標準的TTL電平標準,,這里的意思是,,可以完美的和單片機進行通信。

8,、由于DS1302是DS1202的升級版本,,所以所有的功能都兼容DS1202。此外DS1302有兩個電源輸入,,一個是主電源,,另外一個是備用電源,比如可以用電池或者大電容,,這樣是為了保證系統(tǒng)掉電的情況下,,我們的時鐘還會繼續(xù)走。如果使用的是充電電池,,還可以在正常工作時,,設置充電功能,給我們的備用電池進行充電,。

       DS1302的特點第二條“擁有31字節(jié)數據存儲RAM”,,這是DS1302額外存在的資源。這31字節(jié)的RAM相當于一個存儲器一樣,,我們編寫單 片機程序的時候,,可以把我們想存儲的數據存儲在DS1302里邊,,需要的時候讀出來,這塊功能和EEPROM有點類似,,相當于一個掉電丟失數據的 “EEPROM”,如果我們的時鐘電路加上備用電池,,那么這31個字節(jié)的RAM就可以替代EEPROM的功能了,。這31字節(jié)的RAM功能使用很少,所以在 這里我不講了,,大家了解即可,。

2、DS1302的硬件信息

    我們平時所用的不管是單片機,,還是其他一些電子器件,,根據使用條件的約束,可以分為商業(yè)級和工業(yè)級,,DS1302的購買信息如下圖2所示,。

捕獲.JPG

       我們在訂購DS1302的時候,就可以根據圖15-4所標識的來跟銷售廠家溝通,,商業(yè)級的工作電壓略窄,,是0到70度,而工業(yè)級可以工作在零下40度到85度,。TOP MARK就是指在芯片上印的字,。

  DS1302一共有8個引腳,下邊要根據引腳分布圖和典型電路圖來介紹一下每個引腳的功能,,如圖3和圖4所示,。

100136g4fxoyzok4koj4js.jpg

圖3 DS1302引腳圖

100139lidftxvt9h0sr2sv.jpg

圖4 DS1302典型電路

        1腳VCC2是主電源正極的引腳,2腳X1和3腳X2是晶振輸入和輸出引腳,,4腳GND是負極,,5腳CE是使能引腳,接單片機的IO口,,6腳I/O是 數據傳輸引腳,,接單片機的IO口,7腳SCLK是通信時鐘引腳,,接單片機的IO口,,8腳VCC1是備用電源引腳??紤]到KST-51開發(fā)板是一套以學習為 目的的板子,,加上備用電池對航空運輸和攜帶不方便,所以8腳可以直接懸空,,斷電后不需要DS1302再運行了,,或者是在8腳接一個10uF的電容,,經過試 驗可以運行1分鐘左右的時間,如果大家想運行時間再長,,可以加大電容的容量,,如圖5和圖6所示。

100139dazmtdlte1wlmlgi.jpg

圖5 DS1302無備用電源

100140k6xz1sx1163q1f6b.jpg

圖6 DS1302電容作備用電源

  涓流充電功能,,課程也不講了,,大家也作為選學即可,我們使用的時候直接用5V電源接一個二極管,, 在有主電源的情況下給電容充電,,在主電源掉電的情況下,這個電容可以給DS1302大約供電1分鐘左右,,這種電路的最大用處是在電池供電系統(tǒng)中更換主電池 的時候保持實時時鐘的運行不中斷,,1分鐘的時間對于更換電池足夠了。此外,,通過我們的使用經驗,,在DS1302的主電源引腳串聯一個1K電阻可以有效的防 止電源對DS1302的沖擊,R6就是,,而R9,,R26,R32都是上拉電阻,。

  我們把8個引腳功能分別介紹,,如表1所示。

捕獲7.JPG


       DS1302的電路一個重點就是時鐘電路,,它所使用的晶振是一個32.768k的晶振,,晶振外部也不需要額外添加其他的電容或者電阻電路了。時鐘的精 度,,首先取決于晶振的精度以及晶振的引腳負載電容,。如果晶振不準或者負載電容過大過小,都會導致時鐘誤差過大,。在這一切都搞定后,,最終一個考慮因素是晶振 的溫漂。隨著溫度的變化,,晶振往往精度會發(fā)生變化,,因此,在實際的系統(tǒng)中,,其中一種方法就是經常校對,。比如我們所用的電腦的時鐘,通常我們會設置一個選項“將計算機設置于internet時間同步”,。選中這個選項后,,一般可以過一段時間,,我們的計算機就會和internet時間校準同步一次。

3,、DS1302寄存器介紹

        DS1302的一條指令一個字節(jié)8位,,其中第七位(即最高位)是固定1,這一位如果是0的話,,那寫進去是無效的,。第六位是選擇RAM還是CLOCK 的,我前邊說過,,我們這里主要講CLOCK時鐘的使用,它的RAM功能我們不用,,所以如果選擇CLOCK功能,,第六位是0,如果要用RAM,,那第六位就是 1,。從第五到第一位,決定了寄存器的5位地址,,而第零位是讀寫位,,如果要寫,這一位就是0,,如果要讀,,這一位就是1,如圖7所示,。

100140r9hxz3dp7d9906a6.jpg

圖7 DS1302命令字節(jié)

        DS1302時鐘的寄存器,,其中8個和時鐘有關的,5位地址分別是00000一直到00111這8個地址,,還有一個寄存器的地址是01000,,這是涓 流充電所用的寄存器,我們這里不講,。在DS1302的數據手冊里的地址,,直接把第七位、第六位和第零位值給出來了,,所以指令就成了80H,、81H那些了, 最低位是1,,那么表示讀,,最低位是0表示寫,如圖8所示,。

100140n6cc9bt9cztt6bup.jpg

圖8 DS1302的時鐘寄存器

        寄存器一:最高位CH是一個時鐘停止標志位,。如果我們的時鐘電路有備用電源部分,,上電后,我們要先檢測一下這一位,,如果這一位是0,,那說明我們的時鐘 在系統(tǒng)掉電后,由于備用電源的供給,,時鐘是持續(xù)正常運行的,;如果這一位是1,那么說明我們的時鐘在系統(tǒng)掉電后,,時鐘部分不工作了,。若我們的Vcc1懸空或 者是電池沒電了,當我們下次重新上電時,,讀取這一位,,那這一位就是1,我們可以通過這一位判斷時鐘在單片機系統(tǒng)掉電后是否持續(xù)運行,。剩下的7位高3位是秒 的十位,,低4位是秒的個位,這里注意再提一次,,DS1302內部是BCD碼,,而秒的十位最大是5,所以3個二進制位就夠了,。

        寄存器二:bit7沒意義,,剩下的7位高3位是分鐘的十位,低4位是分鐘的個位,。

        寄存器三:bit7是1的話代表是12小時制,,是0的話代表是24小時制,bit6固定是0,,bit5在12小時制下0代表的是上午,,1代表的是下午,在24小時制下和bit4一起代表了小時的十位,,低4位代表的是小時的個位,。

        寄存器四:高2位固定是0,bit5和bit4是日期的十位,,低4位是日期的個位,。

        寄存器五:高3位固定是0,bit4是月的十位,,低4位是月的個位,。

        寄存器六:高5位固定是0,低3位代表了星期。

        寄存器七:高4位代表了年的十位,,低4位代表了年的個位,。這里特別注意,這里的00到99年指的是2000年到2099年,。

        寄存器八:bit7是一個保護位,,如果這一位是1,那么是禁止給任何其他的寄存器或者那31個字節(jié)的RAM寫數據的,。因此在寫數據之前,,這一位必須先寫成0。

4,、DS1302通信時序介紹

       DS1302我們前邊也有提起過,,是三根線,分別是CE,、I/O和SCLK,,其中CE是使能線,SCLK是時鐘線,,I/O是數據線。前邊我們學過SPI通信,,同學們發(fā)現沒發(fā)現,,這個DS1302的通信線定義和SPI怎么這么像呢?

       事實上,,DS1302的通信是SPI的變異種類,,它用了SPI的通信時序,但是通信的時候沒有完全按照SPI的規(guī)則來,,下面我們一點點解剖一下DS1302的變異SPI通信方式,。

先看一下單字節(jié)寫入操作,如圖9所示,。

100140genedh8hn87htqyw.jpg

圖9 DS1302單字節(jié)寫操作

然后我們在對比一下再對比一下CPOL=0并且CPHA=0的情況下的SPI的操作時序,,如圖10所示。

100141xv5ny5sdsye0sy0v.jpg

圖10 CPOL=0/CPHA=0通信時序

       圖9和圖10的通信時序,,其中CE和SSEL的使能控制是反的,,對于通信寫數據,都是在SCK的上升沿,,從機進行采樣,,下降沿的時候,主機發(fā)送數 據,。DS1302的時序里,,單片機要預先寫一個字節(jié)指令,指明要寫入的寄存器的地址以及后續(xù)的操作是寫操作,然后再寫入一個字節(jié)的數據,。

       對于單字節(jié)讀操作,,我就不做對比了,把DS1302的時序圖貼出來給大家看一下,,如圖11所示,。

100141sfgg6f6gdfygxhgf.jpg

圖11 DS1302單字節(jié)讀操作

        讀操作有兩處特別注意的地方。第一,,DS1302的時序圖上的箭頭都是針對DS1302來說的,,因此讀操作的時候,先寫第一個字節(jié)指令,,上升沿的時候 DS1302來鎖存數據,,下降沿我們用單片機發(fā)送數據。到了第二個字數據,,由于我們這個時序過程相當于CPOL=0/CPHA=0,,前沿發(fā)送數據,后沿讀 取數據,,第二個字節(jié)是DS1302下降沿輸出數據,,我們的單片機上升沿來讀取,因此箭頭從DS1302角度來說,,出現在了下降沿,。

        第二個需要注意的地方就是,我們的單片機沒有標準的SPI接口,,和I2C一樣需要用IO口來模擬通信過程,。在讀DS1302的時候,理論上SPI是上 升沿讀取,,但是我們的程序是用IO口模擬的,,所以數據的讀取和時鐘沿的變化不可能同時了,必然就有一個先后順序,。通過實驗發(fā)現,,如果先讀取IO線上的數 據,再拉高SCLK產生上升沿,,那么讀到的數據一定是正確的,,而顛倒順序后數據就有可能出錯。這個問題產生的原因還是在于DS1302的通信協(xié)議與標準 SPI協(xié)議存在的差異造成的,,如果是標準SPI的數據線,,數據會一直保持到下一個周期的下降沿才會變化,所以讀取數據和上升沿的先后順序就無所謂了,;但 DS1302的IO線會在時鐘上升沿后被DS1302釋放,,也就是撤銷強推挽輸出變?yōu)槿跸吕瓲顟B(tài),而此時在51單片機引腳內部上拉的作用下,IO線上的實 際電平會慢慢上升,,從而導致在上升沿產生后再讀取IO數據的話就可能出錯,。因此這里的程序我們按照先讀取IO數據,再拉高SCLK產生上升沿的順序,。

        下面我們就寫一個程序,,先將2013年10月8號星期二12點30分00秒這個時間寫到DS1302內部,讓DS1302正常運行,,然后在不停的讀取DS1302的當前時間,,并顯示在我們的液晶屏上。

本站內容除特別聲明的原創(chuàng)文章之外,,轉載內容只為傳遞更多信息,,并不代表本網站贊同其觀點。轉載的所有的文章,、圖片,、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯系確認版權者,。如涉及作品內容,、版權和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118,;郵箱:[email protected],。