5毛钱的DS1302 N/Z串行实时时钟IC

推荐原因:

便宜,够用
该器件最早为DALLAS的产品,所以冠有DS,现国内有多个厂家生产,部分价格不到5毛钱的含税价格,有此自行车,还要什么宝马?
下述为简介,使用前请参阅相应厂家的规格书。

概述

DS1302 可慢速充电实时时钟芯片包含实时时钟/日历和 31 字节的非易失性静态 RAM。它经过一个简单的串行接口与微处理器通信。
实时时钟/日历可对秒,分,时,日,周,月,和年进行计数,对于小于 31 天的月,月末的日期自动进行调整,还具有闰年校正的功能。
时钟可以采用 24 小时格式或带AM(上午)/PM(下午)的 12 小时格式。
31 字节的 RAM 可以用来临时保存一些重要数据。
使用同步串行通信,简化了 DS1302 与微处理器的通信。
与时钟/RAM 通信仅需 3 根线:(1)RST(复位),(2)I/O(数据线)和(3)SCLK(串行时钟)。
数据可以以每次一个字节的单字节形式或多达 31 字节的多字节形式传输。DS1302 能在非常低的功耗下工作,消耗小于 1µW 的功率便能保存数据和时钟信息。

特点

用于时钟或 RAM 数据读/写的单字节或多字节数据传送方式
简单的 3 线接口与单片机通信
TTL 兼容(V CC =5V)
可选的工业温度范围-40℃至+85℃
封装形式:DIP8 和 SOP8

应 用

复费率电度表、IC 卡水表、IC 卡煤气表
传真机
便携仪器
移动电话

图1:DS1302典型应用电路图

DS1302典型应用电路图

使用说明:

串行时钟芯片的主要组成部分示于图 1:移位寄存器控制逻辑,振荡器,实时时钟以及 RAM。

工作原理:

如图1所示,RST 信号有效后,移位寄存器单元会在 SCLK 同步脉冲信号的控制下从 I/O 上串行接收 8 位指令字节,然后将 8 位指令字节进行串并转换并送至 ROM 指令译码单元。
由 ROM 指令译码单元对 8 位指令字节进行译码,以决定内部寄存器的地址以及读写状态。
然后在接下来的 SCLK 同步脉冲信号的控制下将 8 位数据写进或者读出相应的寄存器。
数据传送也可以采用多字节方式,先将 8 位相应的指令字节写入,然后在连续的 SCLK 的脉冲信号同步下,将数据字节连续写入或读出日历/时钟寄存器(或者 RAM 单元)。
SCLK 脉冲的个数在单字节方式下为 8 加 8,在多字节方式下为 8 加最大可达到 248 的数。

DS1302 内部框图

DS1302 内部框图

DS1302引脚定义

DS1302引脚定义

DS1302电压范围

DS1302电压范围

1、命令字节

命令字节示于图 2:每一数据传送由命令字节初始化,最高有效位 MSB(位 7)必须为逻辑 1。
如果它是零,禁止写 DS1302。位 6 为逻辑 0 指定时钟/日历数据。
逻辑 1 指定 RAM 数据。位 1 至 5 指定进行输入或输出的特定寄存器。
最低有效位 LSB(位 0)为逻辑 0 指定进行写操作(输入);逻辑 1 指定进行读操作(输出)。
命令字节总是从最低有效 LSB 位 0 开始输入。 。

2、复位和时钟控制

通过把 RST 输入驱动至高电平来启动所有的数据传送。
RST 输入有两种功能。首先,RST 接通控制逻辑,允许地址命令序列送入移位寄存器。其次,RST 可以中止数据传送。
数据输入时,在时钟的上升沿数据必须有效,而数据位在时钟的下降沿输出。
如果 RST 输入为低电平,那么所有的数据传送中止,且 I/O引脚变为高阻。
上电时,在 VCC 大于或等于 2.5V 之前,RST 必须为逻辑 0,此外,当把 RST 驱动至逻辑 1 的状态时,SCLK 必须为逻辑 0。

3、数据输入

跟随在输入写命令字节的 8 个 SCLK 周期之后,在下 8 个 SCLK 周期的上升沿输入数据。如果有额外的 SCLK 周期,它们将被忽略。输入从位 0 开始。

4、数据输出

跟随在输入读命令字节的 8 个 SCLK 周期之后,在随后的 8 个 SCLK 周期的下降沿输出数据字节。
注意,被传送的每一个数据位发生在读命令字节的最后一位之后的第一个下降沿。
只要 RST 保持为高电平,如果有额外的 SCLK 周期,它们将重新发送数据字节。
这一操作使之具有连续的多字节方式的读能力。
另外,在 SCLK 的每一个上升沿,I/O 引脚为三态。数据从位 0 开始输出。

5、多字节方式

通过对 31(十进制)位地址寻址(地址/命令位于 1 至 5=逻辑 1),可以把时钟/日历或 RAM 寄存器规定为多字节方式。如前所述,位 6 规定时钟或 RAM 而位 0 规定读或写。在时钟\日历寄存器中的地址 9 至31 或 RAM 寄存器中的地址 31 不能存储数据。在多字节方式中读或写从地址 0 的位 0 开始。当以多字节方式写时钟寄存器时,必须按数据传送的次序写最先 8 个寄存器。但是,当以多字节方式写 RAM 时,为了传送数据不必写所有 31 个字节。不管是否写了全部 31 个字节,所写的每一个字节都将传送至 RAM。

6、时钟/日历

时钟/日历包含在 7 个写/读寄存器内。
包含在时钟/日历寄存器内的数据是二-十进制(BCD)码。

7、时钟暂停

秒寄存器的位 7 定义为时钟暂停位。
当此位设置为逻辑 1 时,时钟振荡器停止,DS1302 被置入低功率的备份方式,其电源消耗小于 100 纳安(nanoamp)。
当把此位写成逻辑 0 时,时钟将启动。

8、AM-PM/12-24 方式

小时寄存器的位 7 定义为 12 或 24 小时方式选择位。
当它为高电平时,选择 12 小时方式,在 12 小时方式下,位 5 是 AM/PM 位,此位为逻辑高电平表示 PM。
在 24 小时方式下,位 5 是第 2 个 10 小时位(20-23 时)。

9、写保护寄存器

写保护寄存器的位 7 是写保护位。
开始 7 位(位 0-6)置为零,在读操作时总是读出零。
在对时钟或RAM 进行写操作之前,位 7 必须为零。
当它为高电平时,写保护位禁止对任何其它寄存器进行写操作。

10、慢速充电(Trickle charge)寄存器

这个寄存器控制 DS1302 的慢速充电特性。图 4 的简化电路表示慢速充电器的基本组成。
慢速充电选择(TCS)位(位 4-7)控制慢速充电器的选择。
为了防止偶然的因素使之工作,只有 1010 模式才能使DS1302 N/Z串行实时时钟 IC慢速充电器工作,所有其它的模式将禁止慢速充电器。DS1302 上电时,慢速充电器被禁止。二极管选择(DS)位(位 2-3)选择是一个二极管还是两个二极管连接在 Vcc2 与 Vcc1 之间。
如果 DS 为 01,那么选择一个二极管;如果 DS 为 10,则选择两个二极管。
如果 DS 为 00 或 11,那么充电器被禁止,与 TCS无关。RS 位(位 0-1)选择连接在 Vcc2 与 Vcc1 之间的电阻。电阻选择(RS)位选择的电阻如下:

RS位选择电阻

RS位选择电阻

DS1302 可编程慢速充电器

DS1302 可编程慢速充电器

如果 RS 为 00,充电器被禁止,与 TCS 无关。
二极管和电阻的选择用户根据电池和超容量电容充电所需的最大电流决定。
最大充电电流可以如下列所说明的那样进行计算。
假定 5V 系统电源加到 Vcc2 而超容量电容接至 Vcc1。
再假设慢速充电器工作时在 Vcc2 和 Vcc1 之间接有一个二极管和电阻 R1。因而最大电流可计算如下:
Imax =(5.0V-二极管压降)/R1
=(5.0V-0.7V)/2kΩ
= 2.2mA
显而易见,当超容量电容充电时,Vcc2 和 Vcc1 之间的电压减少,因而充电电流将会减小。

11、时钟/日历多字节(Burst)方式

时钟/日历命令字节可规定多字节工作方式。
在此方式下,最先 8 个时钟/日历寄存器可以从地址 0 的第 0 位开始连续地读或写。
当指定写时钟/日历的多字节方式时,如果写保护位设置为高电平,那么没有数据会传到 8 个时钟/日历寄存器(包括控制寄存器)中的任一个。
在多字节方式下,慢速充电器时不可访问的。

12、RAM

静态 RAM 是 RAM 地址空间中顺序寻址的 31 × 8 字节。

13、RAM 多字节方式

RAM 命令字节可规定多字节工作方式。在此方式下,可以从地址 0 的第 0 位开始顺序读或写 31 字节RAM 寄存器。

15、晶振选择

32.768kHz 的晶振可通过引脚 2 和 3(X1 和 X2)直接连接至 DS1302。所选晶振规定的负载电容量(CL)应当为 6pF。

16、电源控制

Vcc1 在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。
Vcc2 在双电源系统中提供主电源,此时 Vcc1 连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。
DS1302 由 Vcc1 或 Vcc2 两者中较大者供电。当 Vcc2 大于 Vcc1+0.2V 时,DS1302 由 Vcc2 供电。
当 Vcc2+0.2V 小于 Vcc1 时,DS1302 由 Vcc1 供电。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/527188.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

汇编语言第一讲:计算机的组织架构和汇编语言介绍

第一讲:计算机的组织架构和汇编语言介绍 汇编语言计算机组织架构 数字电路术语回顾数制 数字电路 硬件电路数字电路的问题 汇编语言的开始 程序的节(sections)调用操作系统的系统调用列出文件(Listing files)汇编和链接调试汇编程序反汇编现有的程序 附录 课程资源 …

SpringBoot项目 jar包方式打包部署

SpringBoot项目 jar包方式打包部署 传统的Web应用进行打包部署,通常会打成war包形式,然后将War包部署到Tomcat等服务器中。 在Spring Boot项目在开发完成后,确实既支持打包成JAR文件也支持打包成WAR文件。然而,官方通常推荐将Sp…

LeetCode初级算法书Java题解日常更新

LeetCode初级算法高效题解(含思路注释) 文章目录 LeetCode初级算法高效题解(含思路注释)前言一、数组1.删除排序数组中的重复项2.买卖股票的最佳时机 II3.旋转数组4.存在重复元素 总结 前言 决定用四个月过一下算法 一、数组 1.…

下载python电子书

下面展示一些 内联代码片。 import requests from lxml import etree from urllib import parse from pprint import pprint from tqdm import tqdm class PythonBook: def init(self): self.url“https://m.jb51.net/books/list476_1.html” self.url_page“https://m.jb51.n…

二维码门楼牌管理应用平台:促进二手交易市场的透明化与规范化

文章目录 前言一、二维码门楼牌管理应用平台的建设背景二、二维码门楼牌管理应用平台的功能特点三、二维码门楼牌管理应用平台在二手交易市场中的应用四、二维码门楼牌管理应用平台的未来展望 前言 随着互联网的快速发展,二维码技术已广泛应用于各个领域。在二手交…

【操作系统】python实现银行家算法

银行家算法是最具有代表性的避免死锁的算法。 1、算法原理 银行家算法:当一个新进程进入系统时,该进程必须申明在运行过程中所需要的每种资源的最大数目,且该数目不能超过系统拥有的资源总量。当进程请求某组资源时,系统必须先确…

HarmonyOS 应用开发-自定义Swiper卡片预览效果实现

介绍 本方案做的是采用Swiper组件实现容器视图居中完全展示,两边等长露出,并且跟手滑动效果。 效果图预览 实现思路 本解决方案通过维护所有卡片偏移的数组,实时更新卡片的偏移量,以实现swiper子组件内图片居中展示&#xff0c…

DHT11温度检测系统

DHT11温湿度传感器 产品概述 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,应用领域:暖通空调;汽车;消费品;气象站;湿度调节器;除湿器;家电;医…

好物推荐:六款让人眼前一亮的个人博客

1.前言 总是有人在问零基础如何搭建个人博客、有哪些好用的博客系统推荐、个人博客和国内技术社区怎么选择?诸如此类的很多问题。对于最后一个问题,我个人的看法很简单,看需求! 目前国内做的还不错的技术类社区/论坛其实还是比较…

stack和queue的使用

前言 前面我们对string、vector、list做了介绍并对底层进行了实现!本期我们继续来介绍STL容器,stack和queue! 本期内容介绍 stack 常用接口的介绍 queue 常用接口的介绍 什么是stack? 这里的栈和我们C语言实现的数据结构的那个栈功能是一样…

RabbitMQ-死信队列常见用法

目录 一、什么是死信 二、什么是死信队列 ​编辑 三、第一种情景:消息被拒绝时 四、第二种场景:. 消费者发生异常,超过重试次数 。 其实spring框架调用的就是 basicNack 五、第三种场景: 消息的Expiration 过期时长或队列TTL…

neo4j使用详解(十一、cypher自定义函数语法——最全参考)

Neo4j系列导航: neo4j安装及简单实践 cypher语法基础 cypher插入语法 cypher插入语法 cypher查询语法 cypher通用语法 cypher函数语法 neo4j索引及调优 10.自定义函数 用户定义函数用Java编写,部署到数据库中,并以与任何其他Cypher函数相同的…

Java变量详解

​ 这里写目录标题 第一章、Java中的变量分类1.1)变量分类1.2)成员变量分类1.3)成员变量和局部变量的区别 第二章、成员变量详解2.1)成员变量作用域/权限修饰符2.2)成员变量和成员属性的区别2.3)成员变量初…

网络通信流程

建立完tcp请求再发起http请求 开启系统代理之后,以clash verge为例 127.0.0.1:7897,假设hci.baidu.com的IP为153.37.235.50 发起对hci.baidu.com的HTTP请求,由于开启了系统代理不进行DNS解析,浏览器调用socket()获得一个socket&a…

GlusterFS(GFS)分布式文件系统

一、GlusterFS的概述: GlusterFS 是一个开源的分布式文件系统。 只在扩展存储容器,提高性能 并且通过多个互联网络的存储节点的进行几余,以确保数据的可用性和一致性 由存储服务器、客户端以及NFS/Samba 存储网关(可选&#xff0c…

软考中级之软件设计师---知识点汇总总结

软考中级之软件设计师---知识点汇总总结 软考介绍资格设置证书样本 计算机组成原理操作系统1. 进程的三态模型2. 磁盘调度算法 计算机网络1. 网络的分类2. 各层的互连设备3. 网络模型,协议簇4. 传输层协议TCP、UDP4.1 TCP (Transmission Control Protocol,传输控制协…

零代码与低代码开发平台

1、什么是低代码开发平台?什么是零代码开发平台? 零代码开发平台: 指的是不需要写代码就能够快速开发出业务应用/系统的平台。我们在工作中使用的业务应用,主要提供数据收集、数据处理、数据流转和展示等功能。零代码开发平台能够…

【超重磅牛市信号】减半倒计时12天!首波抛售潮接近尾声,大暴涨将如期而至!

3月,美国CPI环比出现小幅反弹由3.1%升至3.2%,美国制造业指数PMI反弹至50.3%呈现进入扩张期的态势,日本结束长达8年的负利率时代首次加息。这导致美国4月降息概率大幅下降,5月降息概率也跌至50%以下。 尽管如此,全球金融…

C#操作MySQL从入门到精通(8)——对查询数据进行高级过滤

前言 我们在查询数据库中数据的时候,有时候需要剔除一些我们不想要的数据,这时候就需要对数据进行过滤,比如学生信息中,我只需要年龄等于18的,同时又要家乡地址是安徽的,类似这种操作专栏第7篇的C#操作MySQL从入门到精通(7)——对查询数据进行简单过滤简单过滤方法就无法…

STL优先队列比较器

有两个比较器&#xff0c;在std里面&#xff0c;一个是greater&#xff0c;一个是less&#xff0c;他们都有一个可以指定的模板类型。 #include <bits/stdc.h> using namespace std; struct node {bool operator ()(const string& a, const string& b){return a…