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

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

3天内不再提示

【紫光同创国产FPGA教程】【第二十二章】RTC时间实验

FPGA技术专栏 来源:芯驿电子科技 作者:芯驿电子科技 2021-03-10 13:31 次阅读

1. 实验简介

实验通过阅读DS1302芯片手册,了解DS1302操作时序和相关寄存器,然后设计程序将DS1302 RTC时间通过串口发送到PC,通过串口调试助手可以看到时间信息

2. 实验原理

RTC(Real-Time Clock)实时时钟为系统提供一个可靠的时间,并且在断电的情况下,RTC实时时钟也可以通过电池供电,一直运行下去。RTC通过类SPI总线向FPGA传送8位数据(BCD码)。数据包括秒,分,小时,日期,天,月和年。在本实验中我们将读取RTC的时,分,秒的数据通过串口发送到PC。

2.1 硬件介绍

开发板上RTC设计采用DALLAS公司的低功耗实时时钟芯片DS1302, DS1302的VCC2为主电源,VCC1为后备电源。在主电源关闭的情况下,也可以通过电池保持时钟的连续运行。DS1302外接32.768kHz晶振为RTC电路提供振荡源。 RTC部分的原理图如下图所示:

o4YBAGBAcJmAXjGzAABPJ0LpP7s516.jpg开发板RTC

2.2 DS1302时序和控制

1)写数据时序

DS1302芯片写操作的时序图。第一个字节是“访问寄存器的地址”,第二字节是“写数据”。在写操作的时候,都是“上升沿有效”,然而还有一个条件,就是CE(/RST)信号必须拉高。(数据都是从LSB开始发送,亦即是最低位开始至最高位结束)。

pIYBAGBAcJmAIucYAABlF9KpIyE828.jpgDS1302写时序

2)读数据时序

基本上和写操作的时序图大同小异,区别的地方就是在第二个字节是“读数据”的动作。第二字节读数据开始时,SCLK信号都是下降沿送出数据,这个时候可以使用上升沿读取数据。CE(/RST)信号同样是必须拉高。(第一节数据是从LSB开始输出,第二节数据是从LSB开始读入)。

o4YBAGBAcJmAa-s0AABudCUDlD0788.jpg

3)命令格式和寄存器

无论是读操作还是写操作,在时序图中,第一个字节都是“访问寄存器的地址”,然而这一字节数据有自己的格式。

pIYBAGBAcJqAOWgoAABQuOYtlnw839.jpg

BIT 7 固定。 BIT 6 表示是访问寄存器本身,还是访问RAM空间。 BIT 5 到BIT1 表示是寄存器或RAM空间的地址。 BIT 0 表示是访问寄存器本身是写操作,还是读操作。

下图是DS1302的寄存器地址和数据格式

o4YBAGBAcJqAR_9ZAACcVVYDZHQ356.jpg

3. 程序设计

通过分析DS1302读写时序,可以看出和SPI时序类似,只不过数据输出和输入分时复用了,本实验利用SPI Master模块来做为DS1302的底层读写控制模块,然后再编写一个RTC读写模块。

ds1302_io模块完成DS1302寄存器读写控制,状态机如下图所示。

状态“S_IDLE”空闲状态,收到读写寄存器请求写进入“S_CE_HIGH”状态,将CE拉高,然后根据请求类型,进入读(S_READ)或写状态(S_WRITE)。

“S_WRITE”状态下一个状态进入写地址状态“S_WRITE_ADDR”,再进入写数据状态“S_WRITE_DATA”,完成一个寄存器的写入,最后应答,拉低CE。

“S_READ”状态下一个状态进入读地址状态“S_READ_ADDR”,再进入读数据状态“S_READ_DATA”,完成一个寄存器的读取,最后应答,拉低CE。

ds1302_io状态机

信号名称 方向 说明
clk in 时钟输入
rst in 异步复位输入,高复位
ds1302_ce out DS1302 CE,高有效
ds1302_sclk out DS1302串行时钟
ds1302_io inout DS1302数据
cmd_read in 读寄存器请求,发出请求时准备好地址
cmd_write in 写寄存器请求,发出请求时准备好地址和数据
cmd_read_ack out 读寄存器应答,应答时读取数据有效
cmd_write_ack out 写寄存器应答
read_addr in 读寄存器地址
write_addr in 写寄存器地址
read_data out 读出的数据
write_data in 写寄存器数据

ds1302_io端口

ds1302模块主要完成时间寄存器的读写控制,状态机状态较为简单。

ds1302模块状态机

信号名称 方向 说明
clk in 时钟输入
rst in 异步复位输入,高复位
ds1302_ce out DS1302 CE,高有效
ds1302_sclk out DS1302串行时钟
ds1302_io inout DS1302数据
write_time_req in ds1302写时间请求,请求发出时,时间数据write_second、write_minute、write_hour、write_date、write_month、write_week、write_year要有效
write_time_ack out 写时间请求应答
write_second in 写时间:秒,BCD码,00-59
write_minute in 写时间:分,BCD码,,00-59
write_hour in 写时间:时,BCD码,,00-23
write_date in 写时间:日,BCD码,,01-31
write_month in 写时间:月,BCD码,,01-12
write_week in 写时间:周,BCD码,,01-07
write_year in 写时间:年,BCD码,,00-99
read_time_req in 读时间请求
read_time_ack out 读时间请求应答
read_second out 读时间:秒,BCD码,00-59
read_minute out 读时间:分,BCD码,,00-59
read_hour out 读时间:时,BCD码,,00-23
read_date out 读时间:日,BCD码,,01-31
read_month out 读时间:月,BCD码,,01-12
read_week out 读时间:周,BCD码,,01-07
read_year out 读时间:年,BCD码,,00-99

ds1302模块端口

ds1302_test模块主要CH状态检测,CH位于秒寄存器的BIT7位,上电后首先读取时间,判断秒寄存器的CH状态,如果为高,表示DS1302暂停,状态机进入“S_WRITE_CH”,将CH写0,并将一个初始时间写入,然后循环不断的读取时间寄存器。

ds1302_test状态机

信号名称 方向 说明
clk in 时钟输入
rst in 异步复位输入,高复位
ds1302_ce out DS1302 CE,高有效
ds1302_sclk out DS1302串行时钟
ds1302_io inout DS1302数据
read_second out 时间:秒,BCD码,00-59
read_minute out 时间:分,BCD码,00-59
read_hour out 时间:时,BCD码,00-23
read_date out 时间:日,BCD码,01-31
read_month out 时间:月,BCD码,01-12
read_week out 时间:周,BCD码,01-07
read_year out 时间:年,BCD码,00-99

ds1302_test端口

4. 实验现象

将程序下载到开发板以后,连接uart转串口到PC机

开发板串口连接图

打开串口调试助手

端口选择按照设备管理器中“Silicon Labs CP210x USB to UART Bridge”设置,波特率选择“115200”,其他值默认。

我们可以看到串口每秒会收到一条数据,显示一个时间。

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

    关注

    1625

    文章

    21644

    浏览量

    601419
  • 时钟
    +关注

    关注

    10

    文章

    1716

    浏览量

    131308
  • DS1302
    +关注

    关注

    8

    文章

    449

    浏览量

    50592
  • RTC
    RTC
    +关注

    关注

    2

    文章

    524

    浏览量

    66260
  • 紫光同创
    +关注

    关注

    5

    文章

    80

    浏览量

    27477
收藏 人收藏

    评论

    相关推荐

    国产FPGA介绍-紫光同创

    紫光同创紫光集团旗下紫光国微的子公司,成立于2013年,有十余年可编程逻辑器件研发经历,布局覆盖高中低端FPGA产品。 早在2015年,
    发表于 01-24 10:45

    「正点原子Linux连载」第二十二章串口格式化函数移植实验

    1)实验平台:正点原子Linux开发板2)摘自《正点原子I.MX6U嵌入式Linux驱动开发指南》关注官方微信号公众号,获取更多资料:正点原子第二十二章串口格式化函数移植实验上一
    发表于 12-28 15:42

    HarmonyOS内核源码分析(下)

    是操作系统的基本时间单位第十九章 CPU是韦小宝,有哪七个老婆第二十章 全盘解剖系统调用实现过程第二十一章 ARM 37个寄存器一网打尽, 不再神秘第二十二章 社会很单纯 , 复杂的是
    发表于 04-02 15:56

    火力发电厂水汽分析方法 第二十二部分:化学耗氧量的测定(高锰

    火力发电厂水汽分析方法 第二十二部分:化学耗氧量的测定(高锰酸钾法) Analytical methods of steam and water in power plants Part
    发表于 06-08 12:14 23次下载

    实时频谱仪原理及操作指南

    实时频谱仪原理及操作指南:第十八章显示行.233第十九章 W-CDMA 下行分析仪(选件22).236第二十章 W-CDMA 上行分析253第二十一章 文件操作.268第二十二章 文件格式.276
    发表于 10-17 17:37 0次下载

    第二十二讲 同步时序逻辑电路的分析方法

    第二十二讲 同步时序逻辑电路的分析方法 内容提要7.1 概述一、时序电路的定义二、电路构成三、分类:1 同步2 异
    发表于 03-30 16:26 5126次阅读
    <b class='flag-5'>第二十二</b>讲 同步时序逻辑电路的分析方法

    模拟电路网络课件 第二十二节:功率放大电路的一般问题

    模拟电路网络课件 第二十二节:功率放大电路的一般问题 5.1 功率放大电路的一般问题 一、功率放大电路的定义
    发表于 09-17 11:05 809次阅读

    第二十二届高交会深圳开幕 3300多家展商亮相

    11日,以科技改变生活,创新驱动发展为主题的第二十二届中国国际高新技术成果交易会在深圳开幕。3300多家海内外展商携带逾万个科技创新项目亮相。 本届高交会将持续至11月15日,安排有展览、论坛
    的头像 发表于 11-12 08:44 2219次阅读

    2020第二十二届高交会助力科技领域双循环

    11月11日,第二十二届中国国际高新技术成果交易会(下称高交会)在深圳拉开大幕,国内外优秀企业、创客、投融资机构以及专家学者将共聚一堂,共同梳理未来新机遇。 观众体验新一代智能头盔 以科技创新驱动
    发表于 11-12 10:56 563次阅读

    第二十二届高交会如期而至,共话云计算行业发展

    11 月 11 日,第二十二届高交会如期而至。本届高交会历时 5 天,以科技改变生活,创新驱动发展为主题。在今年高交会中,特设WEB 3.0 中国峰会,共话互联网新技术、大数据、分布式存储等话题
    的头像 发表于 11-13 11:15 1435次阅读

    第二十二届高交会圆满落幕,极视角与您明年相约

    2020年11月15日,以科技改变生活,创新驱动发展为主题的第二十二届中国国际高新技术成果交易会(简称高交会)在深圳会展中心落下帷幕。 极视角作为人工智能企业,携算法商城、极市与极星两大底层引擎平台
    的头像 发表于 11-24 10:34 1246次阅读

    美高电子推出高性能迷你主机,亮相深圳第二十二届高交会

    2020年11月11日-15日,一年一度的科技盛宴第二十二届中国国际高新技术成果交易会(简称高交会)以科技改变生活 创新驱动发展为主题于深圳会展中心举办,展览总面积达到12万平方米以上。美高电子推出
    的头像 发表于 11-27 15:15 1329次阅读

    【正点原子FPGA连载】第二十五章HDMI方块移动实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    【正点原子FPGA连载】第二十五章HDMI方块移动实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1
    发表于 11-24 14:36 13次下载
    【正点原子<b class='flag-5'>FPGA</b>连载】<b class='flag-5'>第二十五章</b>HDMI方块移动<b class='flag-5'>实验</b> -摘自【正点原子】新起点之<b class='flag-5'>FPGA</b>开发指南_V2.1

    展会直击 | 美格智能亮相IOTE 2024第二十二届国际物联网展·深圳站

    IOTE2024第二十二届国际物联网展·深圳站于2024年8月28日—30日在深圳国际会展中心(宝安)开展,美格智能携最新的5G/4GAIoT模组与物联网行业解决方案精彩亮相,持续为客户带来通信技术
    的头像 发表于 08-29 11:52 441次阅读
    展会直击 | 美格智能亮相IOTE 2024<b class='flag-5'>第二十二</b>届国际物联网展·深圳站

    巍泰技术携多款创新产品惊艳亮相 2024 第二十二届物联网展

    8月28-30日,为期三天的IOTE2024第二十二届国际物联网展在深圳国际会展中心圆满落幕。在这场精彩纷呈的科技盛宴中,巍泰技术携多款创新产品惊艳亮相,以其卓越的技术实力和创新的产品解决方案,成为
    的头像 发表于 09-11 15:11 328次阅读
    巍泰技术携多款创新产品惊艳亮相 2024 <b class='flag-5'>第二十二</b>届物联网展