0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于FPGA的实时时钟设计

FPGA威廉希尔官方网站 江湖 来源:FPGA威廉希尔官方网站 江湖 2025-01-06 16:06 次阅读

大侠好,欢迎来到FPGA威廉希尔官方网站 江湖,江湖偌大,相见即是缘分。大侠可以关注FPGA威廉希尔官方网站 江湖,在“闯荡江湖”、"行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢。

今天给大侠带来基于FPGA实时时钟的设计,附源码,获取源码,请在“FPGA威廉希尔官方网站 江湖”公众号内回复“基于FPGA实时时钟的设计源码”,可获取源码文件。话不多说,上货。

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

DS1302芯片的封装如下:

e4e45486-cbc1-11ef-9310-92fbcf53809c.png

DS1302芯片有8个引脚,在本次的设计中只要驱动3个引脚就可以了,其他的引脚都是和硬件相连接的,和FPGA连接的有时钟sclk,串行数据数据接口IO,以及CE。

工作原理就是在数据的传送过程中先把CE拉高,在每个数据的上升沿写入数据,在下降沿输入数据,一次只能读写一位数据。最初我们通过一个8位的控制指令来选择读写,如果控制指令是单字节模式,连续的8个脉冲上升沿写入,下降沿读出数据,一次只能读取一个字节,如果是突发模式通过连续的脉冲一次性的写完7个字节的时间寄存器也可以一次性的读完8--328位的ram数据

控制指令有8位,第七位必须为高,如果是0写入被禁止,第六位0是对时钟寄存器的读写操作,为1对是控制对RAM区的读写操作。

bit1 -- 5 是对相关寄存器的操作,bit0是读写操作。

e4fce3fc-cbc1-11ef-9310-92fbcf53809c.png

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

e529a9a0-cbc1-11ef-9310-92fbcf53809c.png

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

e557bbe2-cbc1-11ef-9310-92fbcf53809c.png

突发模式下,表示我们可以连续写,连读,连续写时必须写满7个时钟寄存器。时序图如下,SPI通信。

e5769800-cbc1-11ef-9310-92fbcf53809c.png

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

e5a9c504-cbc1-11ef-9310-92fbcf53809c.png

e5d31602-cbc1-11ef-9310-92fbcf53809c.png

本次设计是通过配置DS1302芯片来实现实时时钟的监测,通过控制2个按键来选择我们要在数码管上显示的时间,按下按键1来显示周几,按下按键2来显示年月日,不按显示时分秒,这样显示符合实时钟的显示。思路是先打开写保护,一个一个寄存器的写进去,然后关闭写保护,然后再读出数据。 设计架构图:

e5ea16b8-cbc1-11ef-9310-92fbcf53809c.png

设计代码:(源码文件可从公众号内部获取) 总模块:

e5fcd078-cbc1-11ef-9310-92fbcf53809c.png

控制模块:(由于控制模块代码较多,只展示部分关键信号,具体代码如有需要,请公众号内自行获取)

e61e5a04-cbc1-11ef-9310-92fbcf53809c.png

e63fbd98-cbc1-11ef-9310-92fbcf53809c.png

数码管模块:

e6672b80-cbc1-11ef-9310-92fbcf53809c.png

e68a4746-cbc1-11ef-9310-92fbcf53809c.png

e6a61098-cbc1-11ef-9310-92fbcf53809c.png

测试模块:(Mmodelsim 仿真

e6d090ca-cbc1-11ef-9310-92fbcf53809c.png

仿真图:

e6e563f6-cbc1-11ef-9310-92fbcf53809c.png

从仿真测试图中,可以清楚的看到在发送的寄存器命令时,收回总线控制权,读数据时,释放了总线控制权。 下图是突发读的时序图,此次设计是一个一个的写寄存器,必须写满7个时钟寄存器,然后突发的读,突发读的时候拉高CE,然后不停的读接收数据。拓展也可以做突发读写,原理一样,感兴趣的可以试一试。

e70c2a54-cbc1-11ef-9310-92fbcf53809c.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21753

    浏览量

    604175
  • 寄存器
    +关注

    关注

    31

    文章

    5357

    浏览量

    120612
  • 实时时钟
    +关注

    关注

    4

    文章

    246

    浏览量

    65828
  • 时钟电路
    +关注

    关注

    10

    文章

    237

    浏览量

    50753

原文标题:源码系列:基于FPGA实时时钟的设计(附源工程)

文章出处:【微信号:HXSLH1010101010,微信公众号:FPGA威廉希尔官方网站 江湖】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32 RTC实时时钟(一)

    STM32处理器内部集成了实时时钟控制器(RTC),因此在实现实时时钟功能时,无须外扩时钟芯片即可构建实时时钟系统。
    的头像 发表于 07-22 15:41 4741次阅读
    STM32 RTC<b class='flag-5'>实时时钟</b>(一)

    【自制】Arduino:oled0-96实时时钟显示(mini桌面时钟part12

    实时时钟Arduino
    新创司XLOT
    发布于 :2022年03月01日 16:24:34

    基于FPGA实时时钟设计

    基于FPGA实时时钟设计
    发表于 12-06 20:40

    实时时钟是什么

    定义:实时时钟的缩写是RTC(Real Time Clock).实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数哭奋,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。...
    发表于 08-09 06:18

    实时时钟模DS1302程序列子

    实时时钟模DS1302程序列子     /*********************************************************************//* 实时时钟模块
    发表于 07-08 16:26 142次下载

    ARM基础应用实验_实时时钟

    ARM嵌入式应用程序架构设计实例精讲--ARM基础应用实验03实时时钟
    发表于 07-08 11:08 0次下载

    基于实时时钟模块 时钟芯片DS1302

    基于实时时钟模块 时钟芯片DS1302
    发表于 10-16 11:35 40次下载
    基于<b class='flag-5'>实时时钟</b>模块 <b class='flag-5'>时钟</b>芯片DS1302

    实时时钟芯片有哪些_实时时钟芯片选型介绍

    本文主要介绍了时钟芯片有哪些、时钟芯片结构与工作原理,其次介绍了时钟芯片布线与时钟芯片的作用,最后介绍了时钟芯片选型以及爱普生
    发表于 01-29 08:44 4w次阅读
    <b class='flag-5'>实时时钟</b>芯片有哪些_<b class='flag-5'>实时时钟</b>芯片选型介绍

    实时时钟芯片应用

    对于一些测控系统或者手持式设备,经常需要显示以及设定时间。目前,市场上有多种实时时钟芯片提供了这类功能。这种可编程的实时时钟芯片内置了可编程的日历时钟以及一定的RAM存储器,用于设定以及保存时间
    发表于 03-16 15:31 14次下载
    <b class='flag-5'>实时时钟</b>芯片应用

    实时时钟的硬件结构_实时时钟故障怎么解决

     实时时钟的缩写是RTC(Real_Time Clock)。RTC 是集成电路,通常称为时钟芯片。
    的头像 发表于 11-16 17:10 7192次阅读
    <b class='flag-5'>实时时钟</b>的硬件结构_<b class='flag-5'>实时时钟</b>故障怎么解决

    浅谈RTC实时时钟特征与原理

    一、RTC实时时钟特征与原理 查看STM32中文手册 16 实时时钟(RTC)(308页) RTC (Real Time Clock):实时时钟 实时时钟是一个独立的定时器。RTC模块
    的头像 发表于 06-30 15:54 1.1w次阅读

    实时时钟RTC】MSP430系统实时时钟RTC学习日志(完善中)

    2012.1.11 读取实时时钟: 1、 RTCRDY 为0时,不能取读取实时时钟 RT0PS源于ACLK,为了实时时钟日历的正确的运行,ACLK必须是32768Hz。(易出错) 定时
    发表于 12-16 16:56 10次下载
    【<b class='flag-5'>实时时钟</b>RTC】MSP430系统<b class='flag-5'>实时时钟</b>RTC学习日志(完善中)

    CW32实时时钟(RTC)介绍

    CW32实时时钟(RTC)介绍
    的头像 发表于 10-24 15:36 1172次阅读
    CW32<b class='flag-5'>实时时钟</b>(RTC)介绍

    Arduino篇—实时时钟

    DS1307时钟模块:** DS1307串行实时时钟(RTC)是低功耗,全二进制编码的十进制(BCD)时钟/日历以及56字节的NV SRAM。
    的头像 发表于 11-01 16:49 2260次阅读
    Arduino篇—<b class='flag-5'>实时时钟</b>

    使用实时时钟

    电子发烧友网站提供《使用实时时钟库.pdf》资料免费下载
    发表于 10-22 10:09 0次下载
    使用<b class='flag-5'>实时时钟</b>库