大俠好,歡迎來(lái)到FPGA技術(shù)江湖,江湖偌大,相見(jiàn)即是緣分。大俠可以關(guān)注FPGA技術(shù)江湖,在“闖蕩江湖”、"行俠仗義"欄里獲取其他感興趣的資源,或者一起煮酒言歡。
今天給大俠帶來(lái)基于FPGA實(shí)時(shí)時(shí)鐘的設(shè)計(jì),附源碼,獲取源碼,請(qǐng)?jiān)凇癋PGA技術(shù)江湖”公眾號(hào)內(nèi)回復(fù)“基于FPGA實(shí)時(shí)時(shí)鐘的設(shè)計(jì)源碼”,可獲取源碼文件。話不多說(shuō),上貨。
本次設(shè)計(jì)采用了美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路 DS1302,它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。
DS1302芯片的封裝如下:
DS1302芯片有8個(gè)引腳,在本次的設(shè)計(jì)中只要驅(qū)動(dòng)3個(gè)引腳就可以了,其他的引腳都是和硬件相連接的,和FPGA連接的有時(shí)鐘sclk,串行數(shù)據(jù)數(shù)據(jù)接口IO,以及CE。
其工作原理就是在數(shù)據(jù)的傳送過(guò)程中先把CE拉高,在每個(gè)數(shù)據(jù)的上升沿寫入數(shù)據(jù),在下降沿輸入數(shù)據(jù),一次只能讀寫一位數(shù)據(jù)。最初我們通過(guò)一個(gè)8位的控制指令來(lái)選擇讀寫,如果控制指令是單字節(jié)模式,連續(xù)的8個(gè)脈沖上升沿寫入,下降沿讀出數(shù)據(jù),一次只能讀取一個(gè)字節(jié),如果是突發(fā)模式通過(guò)連續(xù)的脈沖一次性的寫完7個(gè)字節(jié)的時(shí)間寄存器也可以一次性的讀完8--328位的ram數(shù)據(jù)
控制指令有8位,第七位必須為高,如果是0寫入被禁止,第六位0是對(duì)時(shí)鐘寄存器的讀寫操作,為1對(duì)是控制對(duì)RAM區(qū)的讀寫操作。
bit1 -- 5 是對(duì)相關(guān)寄存器的操作,bit0是讀寫操作。
各個(gè)寄存器的的設(shè)置,和每位的表示如下圖,從圖中我們了解到讀寫時(shí)控制字是多少以及寫入寄存器的地址,和寫入的8位的時(shí)間表示。我們可以通過(guò)下表來(lái)設(shè)置一個(gè)初始的時(shí)間。
涓流寄存器主要決定了DS1302的充電特性,涓流充電選擇位4--7位,1010涓流充電其他禁止充電,二級(jí)管選擇位3--2位,電阻選擇1--0位具體的選擇如下表。
突發(fā)模式下,表示我們可以連續(xù)寫,連讀,連續(xù)寫時(shí)必須寫滿7個(gè)時(shí)鐘寄存器。時(shí)序圖如下,SPI通信。
下表表示數(shù)據(jù)傳送過(guò)程中數(shù)據(jù)的延遲,時(shí)鐘的周期等時(shí)間。
本次設(shè)計(jì)是通過(guò)配置DS1302芯片來(lái)實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘的監(jiān)測(cè),通過(guò)控制2個(gè)按鍵來(lái)選擇我們要在數(shù)碼管上顯示的時(shí)間,按下按鍵1來(lái)顯示周幾,按下按鍵2來(lái)顯示年月日,不按顯示時(shí)分秒,這樣顯示符合實(shí)時(shí)鐘的顯示。思路是先打開(kāi)寫保護(hù),一個(gè)一個(gè)寄存器的寫進(jìn)去,然后關(guān)閉寫保護(hù),然后再讀出數(shù)據(jù)。 設(shè)計(jì)架構(gòu)圖:
設(shè)計(jì)代碼:(源碼文件可從公眾號(hào)內(nèi)部獲?。?總模塊:
控制模塊:(由于控制模塊代碼較多,只展示部分關(guān)鍵信號(hào),具體代碼如有需要,請(qǐng)公眾號(hào)內(nèi)自行獲?。?/p>
數(shù)碼管模塊:
仿真圖:
從仿真測(cè)試圖中,可以清楚的看到在發(fā)送的寄存器命令時(shí),收回總線控制權(quán),讀數(shù)據(jù)時(shí),釋放了總線控制權(quán)。 下圖是突發(fā)讀的時(shí)序圖,此次設(shè)計(jì)是一個(gè)一個(gè)的寫寄存器,必須寫滿7個(gè)時(shí)鐘寄存器,然后突發(fā)的讀,突發(fā)讀的時(shí)候拉高CE,然后不停的讀接收數(shù)據(jù)。拓展也可以做突發(fā)讀寫,原理一樣,感興趣的可以試一試。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21753瀏覽量
604173 -
寄存器
+關(guān)注
關(guān)注
31文章
5357瀏覽量
120611 -
實(shí)時(shí)時(shí)鐘
+關(guān)注
關(guān)注
4文章
246瀏覽量
65828 -
時(shí)鐘電路
+關(guān)注
關(guān)注
10文章
237瀏覽量
50753
原文標(biāo)題:源碼系列:基于FPGA實(shí)時(shí)時(shí)鐘的設(shè)計(jì)(附源工程)
文章出處:【微信號(hào):HXSLH1010101010,微信公眾號(hào):FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論