DS1302时钟保持芯片,让你很快读懂它

2023-11-30 16:20

本文主要是介绍DS1302时钟保持芯片,让你很快读懂它,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述:

DS1302是DALLAS公司制作的涓流充电时钟芯片。芯片有实时时钟日历功能,有31*8bits静态RAM,可以通过串行接口方式和处理器(stm32,ARM等)进行通信来读写RAM,有两种传送方式,单字节传送和多字节传送。内部实时时钟日历功能逻辑电路用于提供时、分、秒、年、月、日信息(2100年之前的日期),可以自动调整闰年,闰月问题。有24小时和12小时两种格式表示。DS1302和处理器之间通过三根线连接:1、CE(低电平有效)使能线;2、I/O(Data line)数据线;3、SCLK(serial clock)串行时钟线。DS1302具有低功耗,接口简单(和处理器之间只需要三根引脚),精度高,抗干扰强等优点,工作电压(2.0V~5.5V)与TTL兼容。DS1302有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器、RAM突发寄存器、RAM存储器(31*8bits)。

DS1302管脚排列和描述

引脚描述

X1 X2 接32.768KHz晶振引脚

GND 接地线

CE 使能引脚

I/O 数据收发引脚

SCLK 时钟引脚

Vcc1,Vcc2 供电引脚

DS1302框图如下:

命令字:

命令字占8个比特位,如下图:

命令字节用来初始化每次数据的传输。命令字节中最高位(bit 7)必须设置为1。如果设置为0,写入会被禁止。Bit6 为0时,指定对时间\日期数据读写,如果为1时,指定对RAM数据进行读写。bit1 到 bit5指定将要被读写的寄存器是那个(芯片内部寄存器地址)。最后一个bit位(bit0)如果为0时表示写入(input),如果为1时表示读出(output)。命令字在传输的时候都是先传输低比特位(bit0)。

使能以及时钟控制:

需要传输数据时,要设置使能引脚(CE)为高电平。

使能引脚(CE)的高低电平用来提供两种功能。第一种:设置为高电平使能芯片,此时允许命令字节\地址序列去访问DS1302内部的移位寄存器。第二种:CE信号提供一个用于终止数据传输(无论是单字节传输还是多字节传输)的功能。

SCLK时钟线上的一个上升沿和后面紧跟着一个下降沿组成的一个方波构成了一个时钟周期。处理器向DS1302写入数据时,DS1302会在时钟周期的上升沿时采集I/O(数据线)电平状态。处理器从DS1302读取数据时,DS1302会在时钟周期的下降沿时设置I/O(数据线)电平状态。如果CE(使能信号线)输出低电平,所有的数据传输将会终止并且I/O(数据线)将会变成高阻态。下图展示了单字节的读写时序图。在刚上电时,CE(使能信号线)必须处于低电平状态(低于2.0V)。还有就是在CE(使能信号线)从低电平变为高电平期间SCLK(串行时钟信号线)必须保持低电平。

输入数据 (write)

首先传输一个写的命令字(bit0 为低电平)占用前8个时钟周期,在紧随其后的连续8个时钟周期传输一个8比特位(一个字节)的数据,每一个比特位都是在SCLK(串行时钟线)为上升沿时设置I/O(数据线)。如果不慎发生了额外的时钟周期,这些额外的时钟周期将会被忽略。数据的传输是先传送每个字节的低bit位。

输出数据(read)

首先传输一个读的命令字(bit0 为高电平)占用前8个时钟周期,在紧随其后的连续8个时钟周期传输一个8比特位(一个字节)的数据。需要注意的是,数据的第一个比特位(D0)输出是在命令字的bit7所在周期的下降沿传输。如果不慎发生了额外的时钟周期,这些额外的时钟周期将会被忽略,此时CE(使能信号线)还是高电平。同时,I/O引脚在每个时钟周期上升沿时为高阻态。数据的传输是先传送每个字节的低bit位。

突发模式:

不管是时钟/日历寄存器还是RAM寄存器都可以使用突发模式进行访问。需要把命令字的地址位(bit1 ~ bit5 )全部设置为1。设置命令字的bit6(指明操作的是时钟/日历寄存器还是RAM寄存器)。设置命令字的bit0(用于指明是读还是写)。访问时钟/日历寄存器的时候在地址9~31的位置是没有存储介质的。还有在访问RAM寄存器的时候在地址31的位置没有存储介质。在突发模式下无论是读还是写都是从0地址的bit0位开始的。

当在突发模式下写时钟\日历寄存器时,前8个寄存器必须按照顺序写入数据。但是,在突发模式下写RAM寄存器时,就没必要把所有的31字节的寄存器全部写入数据。传输的每一个字节都会被写入到RAM寄存器中,不管是否传输了31个字节。

时钟/日历

读相应的寄存器可以获取时间和日期。表格3 说明了时间\日期寄存器。写响应的寄存器可以用来设置时间和日期。用BCD码的格式把时间/日期数据保存在响应的寄存器中。

在午夜凌晨的时候会递增表示星期几的寄存器。用户可以自定义表示星期天的数值是多少,但是数值必须是连续的(例如:1表示星期天,那么2就表示星期一,3就表示星期二等等)。如果输入了一些不符合逻辑的时间或者日期,会导致一些未定义的结果。

When reading or writing the time and date registers, secondary (user) buffers are used to prevent errors when the internal registers update. When reading the time and date registers, the user buffers are synchronized to the internal registers the rising edge of CE.

The countdown chain is reset whenever the seconds register is written. Write transfers occur on the falling edge of CE. To avoid rollover issues, once the countdown chain is reset, the remaining time and date registers must be written within 1 second.

DS1302可以运行在12小时制和24小时制两种模式。小时寄存器的bit7位用于决定运行在12小时制还是24小时制模式,设置为1(高电平)时就是12小时制模式。当运行在12小时的模式时,bit5用来表示是上午还是下午(AM/PM),为1(高电平)时表示PM。当运行在24小时模式时,bit5用来表示第2个10小时(20-23小时)。当切换模式的时候(修改bit7)需要重新初始化小时寄存器。

时钟停止标志:

秒寄存器的bit7位是时钟终止标志位,当bit7设置为1时,时钟振荡器将会停止振荡此时DS1302进入低功耗的待机模式,消耗电流小于100nA。当bit7设置为0时,时钟将开始工作。设备刚上电时该位没有定义。

写保护位:

控制寄存器的bit7是写保护位(WP)。前7个bit位(bit0 ~ bit6)都设置位0,如果读控制寄存器的前7个bit位(bit0 ~ bit6),读到的永远是0。在写时钟/日历或者RAM寄存器之前,控制寄存器的bit7必须是0。当写保护位(WP)是1时,会防止对任何其他寄存器的写操作。因此,如果想往设备寄存中写数据就必须先将写保护位(WP)清0。设备刚上电时该位没有定义。

涓流充电寄存器:

该寄存器决定了DS1302的充电特性。

时钟/日历突发模式:

由时钟/日历命令字来指定突发模式操作。在这种模式下,8个时钟/日历寄存器可以被连续的读出或者写入。读出或者写入的其实位置是0地址的第0个bit位。

如果设置写保护位为1时,在时钟/日历突发模式写,8个时钟/日历寄存器没有一个会发生变化(包括控制寄存器)。涓流充电器在突发模式下不可访问。

在开始读时钟的时候,当前的时间被转移到一个备用寄存器中。时间信息会从备用寄存器中读出来,在这个过程中时钟可能发生变化。这就消除了在时钟寄存器更新时需要重新读取时钟寄存器的情况。

RAM:

静态RAM大小为 31*8bits。在RAM地址空间中他们的地址是连续的。

RAM突发模式:

由RAM命令字来指定突发模式操作。在这种模式下,31个RAM寄存器可以被联系的读出或者写入。读出或者写入的其实位置是0地址的第0个bit位。

寄存器概况:

表3展示了寄存器数据格式的概况。

晶振选择:

在DS1302的X1,X2管脚上可以链接一个32,768kHz的晶振。

表3如下:

表4 如下:

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。(点击找小助理领取)

这篇关于DS1302时钟保持芯片,让你很快读懂它的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/437699

相关文章

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

高并发环境中保持幂等性

在高并发环境中保持幂等性是一项重要的挑战。幂等性指的是无论操作执行多少次,其效果都是相同的。确保操作的幂等性可以避免重复执行带来的副作用。以下是一些保持幂等性的常用方法: 唯一标识符: 请求唯一标识:在每次请求中引入唯一标识符(如 UUID 或者生成的唯一 ID),在处理请求时,系统可以检查这个标识符是否已经处理过,如果是,则忽略重复请求。幂等键(Idempotency Key):客户端在每次

Linux 云计算底层技术之一文读懂 Qemu 架构

Qemu 架构概览 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。 正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成

读懂《机器学习实战》代码—K-近邻算法

一,K近邻算法概念 K近邻算法即是给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最邻近的K个实例(也就是上面所说的K个邻居), 这K个实例的多数属于某个类,就把该输入实例分类到这个类中。KNN 算法是一种 lazy-learning 算法,分类器不需要使用训练集进行训练,训练时间复杂度为0。KNN 分类的计算复杂度和训练集中的文档数目成正比,也就是说,如果训练集中文档总数为 n,

在亚马逊云科技上利用Graviton4代芯片构建高性能Java应用(上篇)

简介 在AI迅猛发展的时代,芯片算力对于模型性能起到了至关重要的作用。一款能够同时兼具高性能和低成本的芯片,能够帮助开发者快速构建性能稳定的生成式AI应用,同时降低开发成本。今天小李哥将介绍亚马逊推出的4代高性能计算处理器Gravition,带大家了解如何利用Graviton芯片为Java生成式AI应用提高性能、优化成本。 本篇文章将介绍如何在云平台上创建Graviton芯片服务器,并在Gra

2024年AI芯片峰会——边缘端侧AI芯片专场

概述 正文 存算一体,解锁大模型的边端侧潜力——信晓旭 当下AI芯片的亟需解决的问题 解决内存墙问题的路径 产品 面向大模型的国产工艺边缘AI芯片创新与展望——李爱军 端侧AI应用“芯”机遇NPU加速终端算力升级——杨磊 边缘端的大模型参数量基本小于100B AI OS:AI接口直接调用AI模型完成任务 具身智能的大脑芯片 大模

如何让应用在清除内存时保持运行

最近在写聊天软件。一个聊天软件需要做到在清除内存时仍能保持其应有的状态。      首先,我尝试在应用的Service中的onDestroy()进行重启应用,经过测试,发现被强制清除内存的应用不会调用Service的onDestroy,只会调用activity的onDestroy(),于是我决定在触发activity的onDestroy( )处发送广播给应用的静态广播接收器,然后让广播

2024年AI芯片峰会——AI芯片架构创新专场

概述 2024年9月7日于北京举行。 官方链接: 大会官网 正文 对存内计算的思考——戴瑾 面向边缘端大语言模型的RPP架构芯片与落地实践——李原 LLM推理端的特征 边缘计算的特征 来源《联想集团边缘计算白皮书》出炉 Llama2计算过程举例 RPP架构 RPP软件栈 RPP的PPA AI 芯片架构创新开启打算里第二增长曲

油表加速器时钟屏保 就是这么酷酷的

太酷了!这个时钟屏保太有个性了!油表加速器时钟屏保,模拟汽车加速表盘,非常有质感,用它做屏保,简直就是酷毙了~!今天小编给大家分享一个非常实用好看的时钟屏保(芝麻时钟),官网地址(https://clock.zhimasoft.cn/?bili) 芝麻时钟-油表加速器时钟屏保 我们一起来看下,油表加速器表盘时钟屏保是怎么设置的? 1、打开芝麻时钟软件,找到"时钟屏保"菜单,点击后打开;(

彩虹数字屏保时钟 芝麻时钟开启个性化的时代 屏保怎么能少它

彩虹数字屏保时钟 芝麻时钟开启个性化的时代 屏保怎么能少它?电脑屏保多样化,让大家有了更多的选择,让更多人有机会把自己的电脑打扮得漂漂亮亮,今天小编给大家推荐:芝麻时钟(官网下载地址:http://clock.zhimasoft.cn/?bili),一起看下怎么开启彩虹数字时钟屏保吧! 彩虹数字屏保时钟 1、先下载芝麻时钟到电脑,可以百度,或者微软应用商城搜索“芝麻时钟”下载;