当前位置:首页 > 新闻资讯 > FPGA之家动态 >

至芯FPGA入门课程之《 实时时钟 》设计

时间:2024-07-27      来源:网络搜集 关于我们 0

点击上方蓝字关注我们

《 实时时钟 》设计

设计背景:

DS1302 是美国 DALLAS 公司推出的一种高性能、低功耗、带 RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为 2.5V~5.5V。采用三线接口与 CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或 RAM数据。DS1302 内部有一个 31×8 的用于临时性存放数据的 RAM 寄存器。

设计原理: 

DS1302 芯片的封装如下

它有8个引脚,在我们的设计中我们只要驱动3个引脚就可以了,另外的引脚都是我们的硬件相连接的,和 FPGA 连接的有时钟先 sclk,串行数据数据接口 IO,以及 CE.其工作原理就是在数据的传送过程中先把 CE 拉高,在每个数据的上升沿写入数据,在下降沿输入数据,一次只能读写一位数据。最初我们通过一个 8 位的控制指令来选择读写,如果控制指令是单字节模式,连续的 8 个脉冲上升沿写入,下降沿读出数据,一次只能读取一个字节,如果是突发模式通过连续的脉冲一次性的写完 7 个字节的时间寄存器也可以一次性的读完 8--328 位的 ram 数据控制指令有 8 位,第七位必须为高,如果是 0 写入被禁止,第六位0是对时钟寄存器的读写操作,为1对是控制对RAM区的读写操作。bit1 -- 5 是对相关寄存器的操作,bit0 是读写操作,

各个寄存器的的设置,和每位的表示如下图,图中高速我们读写时控制字是多少以及写入寄存器的地址,和写入的 8 位的时间表示我们可以通过下表来设置一个初始的时间

涓流寄存器主要决定了 DS1302 的充电特性,涓流充电选择位 4--7位,1010 涓流充电其他禁止充电,二级管选择位 3--2 位,电阻选择1--0 位具体的选择如下表

突发模式下,表示我们可以连续写,连读,连续写时必须写满 7个时钟寄存器

时序图如下,是 SPI 通信

下表表示数据传送过程中数据的延迟,时钟的周期等时间

本次设计是通过配置 DS1302 芯片来实现实时时钟的监测,我们通过通过控制 2 个按键来选择我们要在数码管上显示的时间,按下按键

1 我们来显示周几,按下按键 2 来显示年月日,不按显示时分秒,这样显示复合我们的数字表的显示.我的思路是先打开写保护,一个一个寄存器的写进去,然后关闭写保护,然后再读出数据

设计架构图:

设计代码: 

顶层模块:

设计模块:

仿真图:

我们的测试图中我们可以清楚的看到我们在发送的寄存器命令,时收回总线控制权,读数据时释放了总线控制权

下图中是突发读的时序图,我的设计是我们一个一个的写寄存器,必须写满 7 个时钟寄存器,然后突发的读,突发读的时候拉高 ce 然后不停的读接收数据就行了

精彩推荐

收入囊中:100个示波器基础知识问答

基于FPGA的AGC算法

那些让FPGA初学者纠结的仿真

FPGA入门课程《基于 FPGA 的 IIC设计》

扫码二维码

获取更多精彩

FPGA设计论坛

喜欢就点个在看再走吧
注明:本内容来源网络,不用于商业使用,禁止转载,如有侵权,请来信到邮箱:429562386ⓐqq.com 或联系本站客服处理,感谢配合!

用户登陆

    未注册用户登录后会自动为您创建账号

提交留言