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

實(shí)時(shí)時(shí)鐘芯片DS1302

2015-11-04
關(guān)鍵詞: DS1302 時(shí)鐘芯片

       本節(jié)課的DS1302是個(gè)實(shí)時(shí)時(shí)鐘芯片,,我們可以用單片機(jī)寫入時(shí)間或者讀取當(dāng)前的時(shí)間數(shù)據(jù),,我也會(huì)帶著大家通過閱讀這個(gè)芯片的數(shù)據(jù)手冊(cè)來學(xué)習(xí)和掌握這個(gè)器件,。

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

1,、DS1302的特點(diǎn)

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

        DS1302實(shí)時(shí)時(shí)鐘芯片廣泛應(yīng)用于電話,、傳真、便攜式儀器等產(chǎn)品領(lǐng)域,,他的主要性能指標(biāo)如下:

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

2、擁有31字節(jié)數(shù)據(jù)存儲(chǔ)RAM,。

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

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

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

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


捕獲.JPG

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

7,、當(dāng)供電電壓是5V的時(shí)候,,兼容標(biāo)準(zhǔn)的TTL電平標(biāo)準(zhǔn),這里的意思是,,可以完美的和單片機(jī)進(jìn)行通信,。

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

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

2,、DS1302的硬件信息

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

捕獲.JPG

       我們?cè)谟嗁廌S1302的時(shí)候,,就可以根據(jù)圖15-4所標(biāo)識(shí)的來跟銷售廠家溝通,,商業(yè)級(jí)的工作電壓略窄,是0到70度,,而工業(yè)級(jí)可以工作在零下40度到85度,。TOP MARK就是指在芯片上印的字。

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

100136g4fxoyzok4koj4js.jpg

圖3 DS1302引腳圖

100139lidftxvt9h0sr2sv.jpg

圖4 DS1302典型電路

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

100139dazmtdlte1wlmlgi.jpg

圖5 DS1302無備用電源

100140k6xz1sx1163q1f6b.jpg

圖6 DS1302電容作備用電源

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

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

捕獲7.JPG


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

3、DS1302寄存器介紹

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

100140r9hxz3dp7d9906a6.jpg

圖7 DS1302命令字節(jié)

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

100140n6cc9bt9cztt6bup.jpg

圖8 DS1302的時(shí)鐘寄存器

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

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

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

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

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

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

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

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

4、DS1302通信時(shí)序介紹

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

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

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

100140genedh8hn87htqyw.jpg

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

然后我們?cè)趯?duì)比一下再對(duì)比一下CPOL=0并且CPHA=0的情況下的SPI的操作時(shí)序,,如圖10所示。

100141xv5ny5sdsye0sy0v.jpg

圖10 CPOL=0/CPHA=0通信時(shí)序

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

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

100141sfgg6f6gdfygxhgf.jpg

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

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

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

        下面我們就寫一個(gè)程序,,先將2013年10月8號(hào)星期二12點(diǎn)30分00秒這個(gè)時(shí)間寫到DS1302內(nèi)部,,讓DS1302正常運(yùn)行,然后在不停的讀取DS1302的當(dāng)前時(shí)間,,并顯示在我們的液晶屏上,。

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