报价
HOME
报价
正文内容
nand flash 时钟信号 DS1302时钟-单片机教程
发布时间 : 2025-02-05
作者 : 小编
访问数量 : 23
扫码分享至微信

DS1302时钟-单片机教程

DS1302时钟

一.DS1302的主要性能指标

(1)DS1302实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力,还有闰年调整的能力。

(2)内部含有31个字节静态RAM,可提供用户访问。

(3)采用串行数据传送方式,使得管脚数量最少,简单SPI 3线接口。

(4)工作电压范围宽:2.0~5.5V。

(5)工作电流:2.0V时,小于300nA。

(6)时钟或RAM数据的读/写有两种传送方式:单字节传送和多字节传送方式。

(7)采用8脚DIP封装或SOIC封装。

(8)与TTL兼容,Vcc=5V。

(9)可选工业级温度范围:-40°C~+85°C。

(10)具有涓流充电能力。

(11)采用主电源和备份电源双电源供应。

(12)备份电源可由电池或大容量电容实现。

SPI总线概念

SPI接口的全称是“Serial Peripheral Interface”,意为串行外围接口

SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。

SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:

(1)MOSI – 主器件数据输出,从器件数据输入

(2)MISO – 主器件数据输入,从器件数据输出

(3)SCLK – 时钟信号,由主器件产生

(4)/CS – 从器件使能信号,由主器件控制

SPI接口内部硬件图示

最后,SPI接口的一个缺点:没有指定的流控制,没有应答机制确认是否接收到数据。

二.引脚功能

DS1302的引脚如图所示

其中:

X1、X2:32.768KHz晶振接入引脚。

GND:地。

:复位引脚,低电平有效,操作时高电平。

I/O:数据输入/输出引脚,具有三态功能。

SCLK:串行时钟输入引脚。

Vcc1:工作电源引脚。

Vcc2:备用电源引脚。 接入电池断电时提供1302电源

三.DS1302的寄存器及片内RAM

DS1302有一个控制寄存器、12个日历、时钟寄存器和31个RAM。可读写

控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字就为控制命令。它用于对DS1302读写过程进行控制,它的格式如下:

其中:

D7:固定为1

D6:RAM/CK位,=1片内RAM,=0日历、时钟寄存器选择位。

D5~D1:地址位,用于选择进行读写的日历、时钟寄存器或片内RAM。对日历、时钟寄存器或片内RAM的选择见表。

D0: 读写选择,=0写,=1读

说明:

(1)数据都以BCD码形式。

(2)小时寄存器的D7位为12小时制/24小时制的选择位,当为1时选12小时制,当为0时选24小时制。当12小时制时,D5位为1是上午,D5位为0是下午,D4为小时的十位。当24小时制时,D5、D4位为小时的十位。

(3)秒寄存器中的CH位为时钟暂停位,当为1时钟暂停,为0时钟开始启动。

(4)写保护寄存器中的WP为写保护位,当WP=1,写保护,当WP=0未写保护,当对日历、时钟寄存器或片内RAM进行写时WP应清零,当对日历、时钟寄存器或片内RAM进行读时WP一般置1。

(5)慢充电寄存器的TCS位为控制慢充电的选择,当它为1010才能使慢充电工作。DS为二极管选择位。DS为01选择一个二极管,DS为10选择二个二极管,DS为11或00充电器被禁止,与TCS无关。RS用于选择连接在VCC2与VCC1之间的电阻,RS为00,充电器被禁止,与TCS无关,电阻选择情况见表.

什么是BCD码

BCD码是通过4位二进制码来表示1位十进制中的0~9这10个数码。

二进制码转换为BCD码的方式为:4位二进制码大于1001时,加6。

如:BCD码00001100的二进制码为:00001100+6=00010010

3.片内RAM

DS1302片内有31个RAM单元,对片内RAM的操作有两种方式:单字节方式和多字节方式。当控制命令字为C0H~FDH时为单字节读写方式,命令字中的D5~D1用于选择对应的RAM单元,其中奇数为读操作,偶数为写操作。

当控制命令字为FEH、FFH时为多字节操作(表中的RAM突发模式),多字节操作可一次把所有的RAM单元内容进行读写。FEH为写操作,FFH为读操作。

数据输入输出(I/O)

n在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。

单字节读写

DS1302是通过SPI串行总线跟单片机通信的,当进行一次读写操作时最少得读写两个字节,第一个字节是控制字节,就是一个命令,告诉DS1302是读还是写操作,是对RAM还是对CLOK寄存器操作。第二个字节就是要读或写的数据了。

单字节读写:只有在SCLK为低电平时,才能将CE置为高电平。所以在进行操作之前先将SCLK置低电平,然后将CE置为高电平,接着开始在IO上面放入要传送的电平信号,然后跳变SCLK。数据在SCLK上升沿时,DS1302读写数据,在SCLK下降沿时,DS1302放置数据到IO上

源同步接口设计1master篇

大家好,我是七点班车。记得之前跟朋友说自己撸的SPI NAND FLASH主控能够跑133MHz,朋友很诧异说:“SPI怎么可能跑这么高?”我也很愤怒——事实就摆在这,怎么可能跑不了?到底是哪里来的勇气,让他“口出狂言”,怀疑我的设计?。。。

接下来就用两篇文章来捋一捋鄙人对“源同步接口设计”的一些思考与见解。今天先上Master篇。

Master接口的瓶颈

源同步接口在设计中十分常见,例如SPI接口,async NAND FLASH接口。这类接口的时钟由master生成,并经过IO发送到slave中。对master的第一级寄存器来说,有着一段非常长的launch path(如图1.1所示):时钟源S点到IO clk_o -> clk_o到reg1/clk ->reg1/clk到IO data_i -> data_i到reg0/D,如红色曲线,而capture path(时钟源S点到reg0/clk)相对比较短,如蓝色曲线。

图1.1

对于launch比较长,capture path比较短的路径,hold一般都不会有什么问题。但是setup就不一样了,launch path太长,则有可能导致下面公式不满足,从而带来setup违例。因此,接下来,我们就基于setup来讨论下这种源同步接口的设计问题。

为了能够更直观地分析,我们先来看看图1.2的波形图,其中最下面的黑色双向箭头为reg0的setuphold窗口(因为没搞懂怎么用timegen怎么画这窗口,所以只能凑合凑合了)。那么为了保证reg0能够正确地采样,D0必须在setuphold窗口之前保持稳定。用数学式来表示就是,reg0要能正确采样,必须要满足公式(1)。

tlaunch < T + tcapture - tsetup,其中tlaunch= ts2clk_o+tclk_o2clk + tclk2data_i + tdata_i2D,tcapture = ts2clk ——公式(1)

图1.2

我们将图1.1中的数值代入到公式中,可得:2+3+5+4<T+1- tsetup。由于tsetup比较小,这里暂且忽略不计。故可退出T>15ns,即接口的最大频率Freq_max=76.9MHz。天。。。。。。瓶颈在这!

提高频率的技巧(非设计层面)

如果要提高频率,要怎么办?我想答案已经很明显了,要么削短tlaunch,要么做长tcapture。

1. 在PCB layout中,将layout线延时tclk_o2clk和tclk2data_i做短。(由于兼容性等客观问题,这个往往不受我们控制)

2. 选用延时比较小的PAD(但是,在穷逼的公司,PAD不是说有就有的——骄傲的工程师可以天马行空,但是有时候又不得不接受骨干的现实)。

3. 在SDC中,将ts2clk_o 和tdata_i2D做短,具体做法是,将clk_o的output delay和data_i的input delay设大,即留给chip内部的delay变小。在STA中,需要格外关注,并把它做短,表1.1是鄙人在项目中统计的tdata_i2D真实值。

表1.1

4. 在PR或者STA fix timing的过程中,将ts2clk做长。但是这样子的做法,有可能会给后面的寄存器带来新的setup问题,如图1.3的reg2。所以一般不会这么干。

图1.3

然而,在某种程度上,IC设计上的问题就跟戴绿帽一样,发现得越晚,就越难!所以如果把问题推到STA再去解决的话,可能就是“好吃不过饺子。。。”的梗了。因此,能在设计上动刀,就动吧。

提高频率的技巧(设计增加采样点)

咱再来回顾下公式(1),tsetup 是寄存器的特有属性,改不了;除了上面提到的tlaunch和 tcapture,公式中还有一个“T”,我们能否在设计上将它“搞大”?

对于同源接口来说,slave就像个机器,它会严格按照协议规定来进行工作。就拿图1.4的SPI NAND FLASH(截图来自复旦微的手册)来说,在接收到命令后,经过一个dummy byte,也就是在第15个时钟下降沿,slave就必须把ID送出来。

图1.4

而Master占据了所有的主动权,毕竟它才是生成时钟的主。如果数据在第16个时钟上升沿到达不了,而是在第17个上升沿才到达,那Master也是可以在第17个上升沿才对数据进行采样的。因此,我们在设计Master的时候,可以适当增加一些采样点,每个采样点的间隔是半个周期,如图1.5粉色标号1/2/3/4所示。当D0在采样点1上出现违例时,可以把使用采样点2的数据,而对于采样点2来说,就增加了T/2。依次类推。。

图1.5

图1.6亮出了部分参考代码,自己慢慢体会吧。

图1.6

STA需要关注的bus对齐问题

谈到接口,就多少会涉及bus;涉及bus,就得关注对齐问题。如图1.7,假设reg0/D和reg3/D是数据bus,且这两个信号在电路上会出现重聚。从图中可以看出,无论是在采样点2,还是在采样点3中,就只能采到reg0/D和reg3/D中的一个。显然,两者重聚后,注定是个悲剧。因此,我们在STA中需要格外关注bus skew,不能让它超过半个周期。

图1.7

以上就是今天要分享的内容。谢谢大家!请关注我的公众号:"IC小迷弟"@

相关问答

flash 电路结构?

Flash电路是由三个主要部分组成的:输入/输出(I/O)部分、存储单元和控制电路。1.输入/输出(I/O)部分:用于与其他电路或设备进行数据交换。它包括输入引脚(...

无法找到U盘 - 177****7068 的回答 - 懂得

使u盘无法读写。打开开关。格式化u盘记得用fat别用fat32。要排除USB接口损坏及PCB板虚焊、及USB延长线正常与否。(1)供电,分为主控所需的供电和FLAS...

详解SPI中的极性CPOL和相位CPHA - OSCHINA - 中文开源技术交...

SPI由于接口相对简单(只需要4根线),用途算是比较广泛,主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。即一个SPI的...

MCS-51单片机的 EA、ALE和PSEN 端的功能是什么?-ZOL问答

EA用于选择内部ROM还是外部ROM或FLASHALE输出锁存时钟信号PSEN用于传统51芯片编程有用(0)回复mozilch快快快有用(0)回复972013461看它都手册...

Excel 表格如何设置时间提早提醒,并且变化颜色-ZOL问答

回复wudan1314520选中e列格式——条件格式新建规则使用公式确定使用格式...你可以插入一个flash时钟软件,或用宏设置有用(0)回复用条件格式,选中M4列...

电脑 时钟 怎么调出来?

电脑里面的时钟是电脑在芯片里面预设了的,是不以你人不以人们意志为转移的几种显示方式在设置里面打开就有一个厄地域时差或时钟,那么一个设置进去以后就会设...

qspi原理?

QSPI是一种专用的通信接口,连接单、双或四(条数据线)SPIFLASH存储器。QSPI特点支持三种工作模式:间接模式、状态轮询模式和内存映射模式支持...

钟表如何设置 - 懂得

添加时钟代码1:添加时钟代码2:添加方法:新建一个自定义面板,勾选“显示源代码”把Flash代码粘贴进去即可。然后再控制面板-个人首页维护-定制我的首...

SPI接口主要应用在什么地方呢?

SPI是串行外设接口(SerialPeripheralInterface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,...SP...

flash 供电范围?

Flash的供电范围因具体设备和应用场景而异,但一般来说,Flash的供电范围通常在3.3V至3.6V之间。这是因为Flash内存芯片的逻辑电平标准是基于3.3V的,而为了确保...

 pdt理财  光之影 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部