0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于fpga的ds1337讀寫(xiě)控制

FPGA研究院 ? 來(lái)源:數(shù)字站 ? 2024-07-17 11:33 ? 次閱讀

01分析

前文對(duì)ds1337的功能做了詳細(xì)講解,FPGA控制不需要使用中斷功能,并且默認(rèn)晶體振蕩器處于工作狀態(tài)。所以在ds1337處于工作狀態(tài)后,先對(duì)日歷相關(guān)寄存器進(jìn)行初始化,然后每隔一段時(shí)間讀取日歷寄存器的數(shù)據(jù),通過(guò)ILA抓取初始化和讀出的數(shù)據(jù),查看ds1337芯片是否正常工作,最后把分秒的時(shí)間通過(guò)兩個(gè)數(shù)碼管顯示。

ds1337芯片的原理圖如下所示,通過(guò)I2C總線進(jìn)行通信。

wKgaomaXO7WAU12kAAIlgG2Ol5o416.jpg

圖1 ds1337原理圖

4位數(shù)碼管采用兩片74hc595芯片進(jìn)行驅(qū)動(dòng),該芯片的驅(qū)動(dòng)數(shù)碼管的原理可以在前面的一篇文章中查看。

wKgaomaXO7WAZaIvAANylHMiM68002.jpg

圖2 數(shù)碼管原理圖

頂層模塊的框圖如下所示,包含一個(gè)ds1337的讀寫(xiě)控制模塊ds1337_drive,I2C接口驅(qū)動(dòng)模塊iic_drive,另外兩個(gè)模塊用于驅(qū)動(dòng)數(shù)碼管顯示分和秒的數(shù)據(jù)。

此處I2C采用連續(xù)地址讀寫(xiě)方式,由于只需要對(duì)日歷寄存器進(jìn)行讀寫(xiě),所以只需要讀寫(xiě)前七個(gè)寄存器的數(shù)據(jù)即可。上電后對(duì)連續(xù)的7個(gè)地址數(shù)據(jù)進(jìn)行初始化,然后每隔500ms讀取一次前面七個(gè)寄存器的數(shù)據(jù)。

由于前面設(shè)計(jì)I2C驅(qū)動(dòng)模塊時(shí),對(duì)于多字節(jié)數(shù)據(jù),會(huì)先發(fā)高位,所以秒寄存器的數(shù)據(jù)會(huì)在高字節(jié),年寄存器的數(shù)據(jù)會(huì)在最低的字節(jié)中。后面數(shù)碼管顯示秒和分的數(shù)據(jù),也是對(duì)讀取的高兩個(gè)字節(jié)的數(shù)據(jù)進(jìn)行顯示。

wKgaomaXO7WAYbDcAACMjT6Ag_w205.jpg

圖3 頂層框圖

其實(shí)上述框圖中I2C的驅(qū)動(dòng)模塊,數(shù)碼管的驅(qū)動(dòng)模塊在前文都已經(jīng)提供且詳細(xì)講解了,本文只是調(diào)用這些通用模塊,根據(jù)原理圖稍作修改即可。這些模塊的代碼本文就不講解了,需要了解的可查看前文,需要代碼的可以在工程中進(jìn)行查看。

ds1337讀寫(xiě)控制模塊也很簡(jiǎn)單,只需要上電后先對(duì)ds1337進(jìn)行初始化,初始化具體數(shù)值采用參數(shù)化設(shè)置。然后在I2C驅(qū)動(dòng)模塊空閑500ms后讀取日歷寄存器的數(shù)據(jù)。對(duì)應(yīng)代碼如下所示:

02上板調(diào)試

由于此處并沒(méi)有ds1337芯片的仿真模型,可以使用eeprom的I2C仿真模型替代。由于是多字節(jié)讀寫(xiě),前文eeprom的仿真模型對(duì)多字節(jié)數(shù)據(jù)的仿真也不支持,所以本文就不對(duì)工程進(jìn)行仿真,直接使用ILA在線調(diào)試工具抓取I2C讀寫(xiě)時(shí)序,來(lái)判斷ds1337是否讀寫(xiě)成功。

說(shuō)到這里,其實(shí)對(duì)于ILA使用不熟練的同學(xué),可以觀察一下我對(duì)ILA的例化,頂層的ILA就可以抓取所有底層模塊中的信號(hào),并且不需要把底層模塊信號(hào)從端口引出,就是利用”.”這個(gè)符號(hào)實(shí)現(xiàn)的。

由于ds1337的寄存器中的數(shù)據(jù)采用BCD碼進(jìn)行編碼,則ILA抓取的數(shù)據(jù)使用十六進(jìn)制進(jìn)行顯示,可以直接認(rèn)為是對(duì)應(yīng)的十進(jìn)制數(shù)據(jù)。

頂層初始化設(shè)置的ds1337初始時(shí)間為2年3月15日星期天11時(shí)37分42秒,使用ILA抓取初始化波形如下所示:

wKgZomaXO7WAdjlXAAE8V54zz_I772.jpg

圖4 抓取初始化時(shí)序

將初始化的開(kāi)始信號(hào)放大,結(jié)果如下圖所示,需要初始化的數(shù)據(jù)為56’h42371100150302,表示2年3月15日星期天11時(shí)37分42秒,由于先寫(xiě)高位數(shù)據(jù),所以秒在高字節(jié),年在低字節(jié)數(shù)據(jù)。

wKgZomaXO7WANpx8AADApElhwEE341.jpg

圖5 放大初始化數(shù)據(jù)

I2C初始化寫(xiě)時(shí)序如下圖所示,黃色信號(hào)表示I2C雙向數(shù)據(jù)信號(hào),紅色信號(hào)表示I2C的時(shí)鐘信號(hào),而天藍(lán)色表示該模塊的I2C數(shù)據(jù)輸出,紫紅色信號(hào)表示I2C的數(shù)據(jù)輸出使能信號(hào),低電平表示從機(jī)應(yīng)答,高電平表示主機(jī)輸出信號(hào)。

首先輸出起始位之后,輸出器件地址,然后再輸出寄存器地址0,之后就寫(xiě)入7字節(jié)的數(shù)據(jù),數(shù)據(jù)寫(xiě)完之后發(fā)送停止位,初始化寫(xiě)入完成。

wKgZomaXO7WAewsaAAD2zPY2rqc474.jpg

圖6 I2C寫(xiě)時(shí)序放大

ds1337初始化之后,就會(huì)按每秒計(jì)時(shí)運(yùn)行,然后抓取讀ds1337芯片日歷寄存器的波形,結(jié)果如下所示。粉色信號(hào)就是抓取的I2C讀取信號(hào)rdata,抓取的數(shù)據(jù)為56’h57371100150302,表示2年3月15日星期天11時(shí)37分57秒,由于經(jīng)過(guò)了一段時(shí)間,所以讀取的數(shù)據(jù)相對(duì)初始值已經(jīng)過(guò)了幾秒了。

wKgZomaXO7WAQlNPAAExeG8U1lg838.jpg

圖7 I2C讀時(shí)序

就不對(duì)時(shí)序進(jìn)行分析了,前文讀寫(xiě)eeprom的時(shí)候已經(jīng)對(duì)I2C時(shí)序進(jìn)行了詳細(xì)分析,在經(jīng)過(guò)一段時(shí)間,抓取讀取時(shí)序如下所示,讀取的數(shù)據(jù)為56’h113811001503 02,表示2年3月15日星期天11時(shí)38分11秒。

wKgaomaXO7WAKUGTAAE-HS8hTMI725.jpg

圖8 I2C讀時(shí)序

最后數(shù)碼管的顯示如下所示,初始化的時(shí)為37分42秒,之后就一直運(yùn)行。

本文工程就是對(duì)ds1337的功能做了驗(yàn)證,也是對(duì)I2C模塊的連續(xù)讀寫(xiě)能力再次進(jìn)行測(cè)試,功能均正常。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21624

    瀏覽量

    601245
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5294

    瀏覽量

    119820
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1873

    瀏覽量

    90865
  • 晶體振蕩器
    +關(guān)注

    關(guān)注

    9

    文章

    613

    瀏覽量

    29014
  • DS1337
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    6374

原文標(biāo)題:基于fpga的ds1337讀寫(xiě)控制

文章出處:【微信號(hào):FPGA研究院,微信公眾號(hào):FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DS1337/DS1337C pdf datasheet (

    The DS1337 serial real-time clock is a low-powerclock/calendar with two programmable
    發(fā)表于 08-10 10:38 ?36次下載

    DS1337 時(shí)鐘芯片在 C8051F 上的實(shí)現(xiàn)

    DS1337串行實(shí)時(shí)時(shí)鐘芯片是一種低功耗、全部采用BCD碼的時(shí)鐘日歷芯片,它帶有兩個(gè)可編程的定時(shí)鬧鐘和一個(gè)可編程的方波輸出。其地址和數(shù)據(jù)可通過(guò)I2C總線串行傳輸,能提供秒、分、時(shí)、日、星期、月和年等信息。
    發(fā)表于 12-30 16:13 ?3880次閱讀

    DS1337S+T&R 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337S+T&R相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337S+T&R的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337S+T&R真值表,
    發(fā)表于 11-18 19:28
    <b class='flag-5'>DS1337</b>S+T&R 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337U+ 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337U+相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337U+的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337U+真值表,DS1337
    發(fā)表于 11-18 20:09
    <b class='flag-5'>DS1337</b>U+ 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337S+ 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337S+相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337S+的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337S+真值表,DS1337
    發(fā)表于 11-18 20:09
    <b class='flag-5'>DS1337</b>S+ 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337+ 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337+相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337+的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337+真值表,DS1337+
    發(fā)表于 11-18 20:10
    <b class='flag-5'>DS1337</b>+ 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337C# 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337C#相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337C#的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337C#真值表,DS1337
    發(fā)表于 11-18 20:17
    <b class='flag-5'>DS1337</b>C# 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337真值表,DS1337管腳等資
    發(fā)表于 11-18 20:55
    <b class='flag-5'>DS1337</b> 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337U 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337U相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337U的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337U真值表,DS1337U
    發(fā)表于 11-18 20:56
    <b class='flag-5'>DS1337</b>U 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337S 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337S相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337S的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337S真值表,DS1337S
    發(fā)表于 11-18 20:56
    <b class='flag-5'>DS1337</b>S 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337C#T&R 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337C#T&R相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337C#T&R的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337C#T&R真值表,
    發(fā)表于 11-18 21:16
    <b class='flag-5'>DS1337</b>C#T&R 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337S/T&R 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337S/T&R相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337S/T&R的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337S/T&R真值表,
    發(fā)表于 11-21 22:49
    <b class='flag-5'>DS1337</b>S/T&R 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337U/T&R 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337U/T&R相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337U/T&R的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337U/T&R真值表,
    發(fā)表于 11-21 22:49
    <b class='flag-5'>DS1337</b>U/T&R 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337S+C01 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337S+C01相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337S+C01的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337S+C01真值表,
    發(fā)表于 11-22 19:26
    <b class='flag-5'>DS1337</b>S+C01 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    DS1337U+T&R 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘

    電子發(fā)燒友網(wǎng)為你提供Maxim(Maxim)DS1337U+T&R相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊(cè),更有DS1337U+T&R的引腳圖、接線圖、封裝手冊(cè)、中文資料、英文資料,DS1337U+T&R真值表,
    發(fā)表于 11-24 20:11
    <b class='flag-5'>DS1337</b>U+T&R 時(shí)鐘/定時(shí) - 實(shí)時(shí)時(shí)鐘