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

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

3天内不再提示

DS1302芯片与FPGA之间SPI通信原理

FPGA研究院 来源:FPGA技术实战 作者:FPGA技术实战 2024-10-24 14:16 次阅读

引言:本文通过以DS1302芯片为基础,介绍该芯片与FPGA之间SPI通信原理,详细描述硬件设计原理及FPGA SPI接口驱动设计。

1. DS1302硬件设计原理

1.1 概述

DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它提供秒、分钟、小时、天、日期、月份和年份信息,对于少于31天的月份,月末日期会自动调整,包括闰年的更正。时钟以24小时或12小时的形式运行,带有AM/PM指示器。它通过一个简单的串行SPI接口与微处理器通信,如下图所示。

wKgZomcZ5piATfbZAAD7wYL5wiM932.jpg

图1:DS1302管脚定义及典型应用电路

图2显示了DS1302芯片内部的主要组件:电源控制、输入移位寄存器、命令和控制逻辑、振荡器、实时时钟和RAM

wKgZomcZ5pmATsjaAAGP-xNenB8640.jpg

图2:DS1302芯片内部框图

1.2 管脚定义说明:

VCC2双电源配置中的主电源引脚。VCC1连接到备用电源(通常为纽扣电池),以在没有主电源的情况下保持时间和日期。DS1302从VCC1或VCC2中较大的一个操作。当VCC2大于VCC1+0.2V时,VCC2为DS1302供电。当VCC2小于VCC1时,VCC1为DS1302供电。

X1/X2:连接标准32.768kHz石英晶体,石英晶体负载电容典型值为6pF。DS1302也可以由外部32.768kHz振荡器驱动,在该配置中,X1引脚连接到外部振荡器信号,并且X2引脚悬空。

GND:地信号。

CE:使能信号,输入CE信号必须在读取或写入期间被断言为高电平。该引脚有一个内部40kΩ(典型值)下拉电阻器,用于接地。

I/O:输入/推拉输出。I/O引脚是3线接口的双向数据引脚。该引脚有一个内部40kΩ(典型值)下拉电阻器,用于接地。

SCLK:SCLK用于同步串行接口上的数据通信。该引脚有一个内部40kΩ(典型值)下拉电阻器,用于接地。

VCC1:单电源和电池操作系统中的低功率操作以及低功率电池备份。

1.3 振荡电路

DS1302使用外部32.768kHz晶体,由于芯片内部集成了负载电容,振荡器电路不需要任何外部电阻器或电容器来操作。表1规定了外部晶体的参数要求。

表1:外部晶体的参数要求

wKgaomcZ5piATYZKAACHX03JWHQ380.jpg

1.4 时钟精度

时钟的精度取决于晶体的精度以及振荡器电路的电容性负载与晶体的电容性负荷之间的匹配精度。温度偏移引起的晶体频率漂移将增加额外的误差。耦合到振荡器电路中的外部电路噪声可能导致时钟快速运行。图3显示了用于隔离晶体和振荡器与噪声的典型PC板布局。

wKgZomcZ5piABs0NAADq7RzC3Wo216.jpg

图3:隔离噪声的典型PCB板布局

1.5 原理图设计

DS1302与FPGA通过三线SPI接口进行通信,信号连接较为简单,信号对IO接口速率无要求。

wKgaomcZ5piAI59iAAGnx8P4KDs911.jpg

图4:DS1302原理图设计

2. FPGA软件设计

2.1 SPI接口读写时序

SPI接口读时序操作如图5所示。读操作分为两个阶段,第一阶段进行写命令操作,即往I/O数据线上写入需要读出的寄存器地址,第二阶段是从I/O数据线上读取当前寄存器数据。

wKgaomcZ5piANHcGAADFk3XeVJg173.jpg

图5:SPI接口读操作时序

(1)使能信号CE为高电平,开启读操作,启动时,SCLK必须为低电平;

(2)在SCLK时钟的上升沿写入命令字节到I/O数据线;

(3)在SCLK时钟的下降沿从I/O数据线读取数据,要注意第一个读取的bit D0是在写命令最后一个bit时钟的下降沿采样的;

(4)使能信号CE为低电平,结束读操作。

SPI接口写时序操作如图6所示。写操作分为两个阶段,第一阶段进行写命令操作,即往I/O数据线上写入需要写入的寄存器地址,第二阶段是往I/O数据线上写入当前寄存器数据。

wKgZomcZ5pmAYkOYAACy6RkVH94833.jpg

图6:SPI接口写操作时序

(1)使能信号CE为高电平,开启写操作;

(2)在SCLK时钟的上升沿写入命令字节到I/O数据线;

(3)在SCLK时钟的上升沿写入数据字节到I/O数据线;

(4)使能信号CE为低电平,结束写操作。

2.2 寄存器说明

命令字节

DS1302地址/命令字节如下表所示。

wKgaomcZ5pmAZdWfAACAsYWPKpY484.jpg

(1)bit7(MSB):必须是逻辑1。0:禁用对DS1302的写入;

(2)bit6:0:选择时钟/日历数据,1:选择RAM数据;

(3)bit5~bit1:指定要写或读出的指定寄存器地址;

(4)bit0:0:写操作,1:读操作。

注意:命令字节总是从LSB(位0)开始传输。

时钟和日历寄存器

时间和日历信息是通过读取DS1302的寄存器字节来获得的。表2说明了RTC寄存器。

表2:RTC寄存器

wKgaomcZ5pmAHlmEAAI61O6ZZ24897.jpg

寄存器说明:

(1)时钟和日历初始化:可以通过写入适当的寄存器字节来设置或初始化时间和日历。

(2)时间和日历寄存器数据格式:二进制编码十进制(BCD)格式。

(3)星期几的寄存器在午夜递增。与星期几对应的值是用户定义的,但必须是连续的(即,如果1等于星期日,则2等于星期一,依此类推)。不合理的时间和日期条目会导致未定义的操作。

(4)每当写入秒寄存器时,就会重置倒计时链。写入传输发生在CE的下降沿。为避免滚动问题,一旦重置倒计时链,必须在1秒内写入剩余的时间和日期寄存器。

(5)DS1302可以在12小时或24小时模式下运行。小时寄存器的第7位定义为12小时或24小时模式选择位。当为高时,选择12小时模式。在12小时模式中,第5位为AM/PM位,逻辑高为PM。在24小时模式中第5位是第二个10小时位(20–23小时)。每当12/24位发生变化时,必须重新初始化小时数据。

(6)时钟停止标志:秒寄存器的bit7被定义为时钟停止(CH)标志。

1:振荡器停止,DS1302进入低功耗待机模式,电流消耗小于100nA;

0:时钟将启动。

(7)WP写保护位:控制寄存器的第7位是写保护位WP。前7位(第0位至第6位)强制为0,读取时始终读取0。在对时钟或RAM进行任何写入操作之前,位7必须为0。当为高时,写保护位防止对任何其他寄存器进行写操作。因此,在尝试写入设备之前,应清除WP位。

2.3 软件设计

软件设计模块划分如下图7所示。

wKgZomcZ5pmAG5KGAAEutthS76I652.jpg

图7:软件设计模块划分框图

软件主要实现功能:

(1)DS1302芯片SPI接口驱动功能;

(2)DS1302芯片寄存器读写控制功能,可以实现时钟初始化设置;

(2)按键消抖功能;

(3)数码管动态显示功能。

各个模块功能:

(1)ds1302_segma.v模块为顶层模块,用于实现模块间互联;

(2)spi_driver.v实现DS1302 SPI接口通信功能;

(3)ds1302_ctrl_m.v实现DS1302寄存器读写控制功能,包括将设置值写入芯片和将芯片寄存器值读出控制。

(4)set_init_time.v实现通过按键实现时间初始值设置;

(5)Segma.v实现数码管动态显示功能(数码管位有限,只显示时、分、秒);

(6)KeyJitters.v实现按键消抖功能。

3. 软件实测

软件下载至电路板,通过SignaTap II在线逻辑分析仪抓取数据如下图所示。

wKgaomcZ5pmAQX6IAADatwE-BIU838.jpg

图8:软件设计模块划分框图

wKgaomcZ5pmALRakAAa9omgpsBM726.jpg

图9:数码管显示实时时钟初始值

图8显示计时初始值正确写入ds1302芯片寄存器,图9数码管显示了正确的时、分、秒初始值。

来源:本文转载自FPGA技术实战公众号

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

    关注

    1624

    文章

    21573

    浏览量

    600688
  • 芯片
    +关注

    关注

    452

    文章

    50026

    浏览量

    419806
  • 接口
    +关注

    关注

    33

    文章

    8374

    浏览量

    150571
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1685

    浏览量

    91075
  • DS1302
    +关注

    关注

    8

    文章

    449

    浏览量

    50548

原文标题:FPGA入门基础之SPI接口设计

文章出处:【微信号:FPGA研究院,微信公众号:FPGA研究院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ds1302时钟芯片

    请问高手,我用的ds1302做的万年历,为什么ds1302时钟芯片的年寄存器的最高位上写不到"1"阿??? 就是说只能在0~79之间显示,是什么原因阿?
    发表于 08-11 19:13

    DS1302与单片机之间能进行通信

    DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、周、月、年的信息
    发表于 08-13 08:58

    DS1302与单片机之间是如何进行通信

    蓝桥杯单片机硬件基础DS1302与单片机之间能简单地采用同步串行方式进行通信,仅用到三个接口线:RST复位线、I/O数据线和SCLK串行时钟线。DS1302时钟寄存器和控制命令
    发表于 01-17 06:36

    DS1302通信线定义和 SPI 怎么这么像呢

    。前边我们介绍过了 SPI 通信,同学们发现没发现,这个 DS1302通信线定义和 SPI 怎么这么像呢?事实上,
    发表于 01-17 08:13

    基于DS1302芯片的时钟设计

    基于DS1302芯片的时钟设计
    发表于 03-01 12:21 12次下载

    DS1302芯片中文资料

    DS1302芯片中文资料
    发表于 09-21 08:15 59次下载
    <b class='flag-5'>DS1302</b><b class='flag-5'>芯片</b>中文资料

    ds1302芯片介绍,ds1302工作原理解析

    时钟小编相信大家见怪不怪了,那么时钟芯片大家知道是什么吗?今天我们就来谈谈最常用时钟芯片ds1302,主要通过ds1302芯片的介绍和
    发表于 10-18 16:19 4.5w次阅读

    DS1302芯片的使用,时钟芯片DS1302功能汇总

    DS1302大家都知道他是时钟芯片,知道了原理肯定想知道功能和操作方法,这篇文章就是主要来说DS1302芯片的功能以及时钟芯片
    发表于 10-19 10:43 9396次阅读

    DS1302时钟芯片调试经验,奉上调试时钟芯片DS1302的程序

     时钟芯片DS1302目前得到广泛的应用,但是DS1302的调试还是很有难度的。这篇文章就来说说DS1302时钟芯片的调试惊艳,奉上时钟
    发表于 10-19 11:12 1.1w次阅读

    ds1302是什么接口,DS1302时钟芯片接口分析详解

    DS1302是达拉斯公司出品的一款实时时钟芯片。主要是针对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。这篇文章主要就是说DS1302的到底是属于什么接口的,同时分析详解DS1
    发表于 10-19 14:34 1.4w次阅读

    DS1302讲解篇,DS1302全面解析

    时钟芯片DS1302 DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM ,通过简单的串行接口与单片机进行
    发表于 10-19 16:49 3.9w次阅读

    关于SPI串行口与DS1302特点介绍

    SPI串行口与DS1302
    的头像 发表于 07-10 03:49 4703次阅读
    关于<b class='flag-5'>SPI</b>串行口与<b class='flag-5'>DS1302</b>特点介绍

    SPI协议和DS1302的使用

    文章目录一、DS1302电路图二、SPI协议介绍三、SPI时序1.写字节2.读字节四、DS1302编程1、写字节2、读字节3.编程一、DS1302
    发表于 12-22 19:22 10次下载
    <b class='flag-5'>SPI</b>协议和<b class='flag-5'>DS1302</b>的使用

    DS1302 通信时序介绍

    。前边我们介绍过了 SPI 通信,同学们发现没发现,这个 DS1302通信线定义和 SPI 怎么这么像呢?事实上,
    发表于 01-18 09:41 7次下载
    <b class='flag-5'>DS1302</b> <b class='flag-5'>通信</b>时序介绍

    ds1302中文手册 ds1302时钟芯片引脚功能

    电子发烧友网站提供《ds1302中文手册 ds1302时钟芯片引脚功能.zip》资料免费下载
    发表于 09-15 15:44 28次下载
    <b class='flag-5'>ds1302</b>中文手册 <b class='flag-5'>ds1302</b>时钟<b class='flag-5'>芯片</b>引脚功能