欢迎访问ic37.com |
会员登录 免费注册
发布采购

DS1306是串行报警实时时钟(RTC)

日期:2020-6-11标签: (来源:互联网)

特征

实时时钟计算秒、分、时、月、月、日和年,闰年补偿有效期至2100

用于数据存储的96字节非易失性RAM

一天两次报警-可编程为一周中的秒、分、小时和天的组合

1赫兹和32.768千赫时钟输出

串行接口支持摩托罗拉串行外围接口(SPI)串行数据端口或标准3线接口

在时钟/RAM中读/写连续地址的突发模式

主电源和备用电源的双电源引脚

备用电源的可选涓流充电输出

2.0-5.5V操作

可选工业温度范围-40°C至+85°C

提供空间效率高的20针TSSOP封装

保险商实验室认可

说明

DS1306串行实时闹钟提供完整的BCD时钟日历,可通过简单的串行接口访问。时钟/日历提供秒、分、时、日、日、月和年信息。月底日期自动调整为少于31天的月份,包括闰年的更正。时钟以24小时或12小时格式运行,并带有AM/PM指示器。此外,还提供96字节的非易失性RAM用于数据存储。

接口逻辑电源输入引脚(VCCIF)允许DS1306将SDO和32 kHz引脚驱动到与接口逻辑兼容的水平。这使得在混合供电系统中可以方便地与3伏逻辑接口。DS1306提供双电源和电池输入引脚。双电源支持可编程的涓流充电电路,该电路允许将充电能源(如超级电容器或充电电池)用作备用电源。VBAT引脚允许设备由不可充电电池进行备份。DS1306在2.0到5.5伏之间完全工作。

DS1306提供两个可编程的一天中的时间警报。每个警报可以在秒、分、小时和天的可编程组合上生成中断。如果希望在报警条件下忽略一个或多个字段,则可以将“不关心”状态插入其中。还提供1赫兹和32千赫的时钟输出。

DS1306支持与摩托罗拉SPI串行数据端口或标准3线接口的直接接口。实现了一种易于使用的地址和数据格式,其中数据传输可以一次发生1字节,也可以在多字节突发模式下发生。

操作

图1中的框图显示了串行报警RTC的主要元素。以下段落描述了每个管脚的功能。

DS1306框图:图1

信号说明

VCC1-DC电源提供给该引脚上的设备。VCC1是主电源。

VCC2—这是辅助电源引脚。在使用涓流充电器的系统中能源连接到这个管脚。

VBAT-任何标准3伏锂电池或其他能源的电池输入。

VCCIF(接口逻辑电源输入)-VCCIF引脚允许DS1306将SDO和32 kHz输出引脚驱动到与接口逻辑兼容的水平,从而允许在混合供电系统中轻松地与3伏逻辑接口。该管脚与SDO和32khz管脚的输出缓冲器中的pchannel晶体管的源连接物理连接。

SERMODE(串行接口模式输入)-SERMODE引脚提供了在两种串行接口模式之间进行选择的灵活性。接地时,选择标准3线通信。当连接到VCC时,选择Motorola SPI通信。

SCLK(串行时钟输入)-SCLK用于同步SPI或3线接口串行接口上的数据移动。

串行数据输入-当选择SPI通信时,SDI引脚是SPI总线的串行数据输入。当选择3线通信时,此管脚必须连接到SDO管脚(SDI和SDO管脚连接在一起时作为单个I/O管脚)。

SDO(串行数据输出)-当选择SPI通信时,SDO引脚是SPI总线的串行数据输出。当选择3线通信时,此管脚必须连接到SDI管脚(SDI管脚和SDO管脚连接在一起时作为单个I/O管脚)。

CE(芯片启用)-在3线和SPI通信的读写过程中,芯片启用信号必须被断言为高电平。该引脚有一个内部55k下拉电阻器(典型)。

INT0(中断0输出)-INT0引脚是DS1306的有效低输出,可用作处理器的中断输入。INT0引脚可编程为由报警0断言。只要引起中断的状态位存在并且设置了相应的中断使能位,INT0引脚就保持低位。当DS1306由VCC1、VCC2或VBAT供电时,INT0引脚工作。INT0引脚是一个开路漏极输出,需要一个外部上拉电阻器。

1赫兹(1赫兹时钟输出)-1Hz引脚提供1Hz方波输出。当控制寄存器中的1Hz位为逻辑1时,该输出激活。

INT0和1Hz引脚均为开漏输出。中断、1Hz信号和内部时钟继续运行,而不管VCC的电平如何(只要存在电源)。

INT1(中断1输出)-INT1引脚是DS1306的高电平输出,可用作处理器的中断输入。INT1引脚可编程为由报警1断言。当出现报警情况时,INT1引脚产生62.5 ms高激活脉冲。INT1引脚仅在DS1306由VCC2或VBAT供电时工作。激活时,内部将INT1引脚拉至VCC2或VBAT。非激活时,内部将INT1引脚拉低。

32 kHz(32.768 kHz时钟输出)-32 kHz引脚提供32.768 kHz输出。这个信号总是存在的。

X1、X2-标准32.768khz石英晶体的连接。内部振荡器设计用于与具有6 pF的指定负载电容的晶体一起工作。有关晶体选择和晶体布局注意事项的更多信息,请参阅应用说明58,“达拉斯实时时钟晶体注意事项”。DS1306也可以由外部32.768 kHz振荡器驱动。在这种配置中,X1引脚连接到外部振荡器信号,X2引脚浮动。

RTC和RAM地址映射

DS1306的RTC和RAM寄存器的地址映射如图2所示。数据通过写入地址位置80h到9Fh写入RTC,并通过写入地址位置A0h到FFh写入RAM。通过读取地址位置00h到1Fh读取RTC数据,通过读取地址位置20h到7Fh读取RAM数据。

地址映射:图2

时钟、日历和闹钟

时间和日历信息是通过读取适当的寄存器字节获得的。实时时钟寄存器如图3所示。通过写入适当的寄存器字节来设置或初始化时间、日历和警报。注意,有些位设置为0。无论如何写入,这些位始终读取0。还要注意,寄存器12h到1Fh(读)和寄存器92h到9Fh被保留。这些寄存器将始终读取0,而不管它们是如何写入的。时间、日历和报警寄存器的内容采用二进制编码十进制(BCD)格式。

RTC寄存器:图3

注:报警寄存器的范围不包括掩码的m'位。

DS1306可以在12小时或24小时模式下运行。小时寄存器的位6被定义为12小时或24小时模式选择位。高电平时,选择12小时模式。在12小时模式下,位5是AM/PM位,逻辑高位为PM。在24小时模式下,位5是第二个10小时位(20-23小时)。

DS1306包含两个一天一次的警报。可通过写入寄存器87h至8Ah来设置一天中的时间警报0。可通过写入寄存器8Bh至8Eh来设置时间警报1。一天中每个时间报警寄存器的位7是掩码位(表1)。当所有掩码位都是逻辑0时,当存储在计时寄存器00h到03h中的值与存储在计时寄存器中的值匹配时,一天中的时间报警每周只发生一次。当日间报警寄存器的位7设置为逻辑1时,每天都会产生一个报警。当日间和小时报警寄存器的位7设置为逻辑1时,将每小时生成一个报警。类似地,当一天、一小时和一分钟的第7位报警寄存器被设置为逻辑1时,每分钟都会产生一个报警。当“天”、“时”、“分”、“秒”的第7位报警寄存器设置为逻辑1时,每秒将发生一次报警。

专用寄存器

DS1306有三个附加寄存器(控制寄存器、状态寄存器和涓流充电器寄存器),用于控制实时时钟、中断和涓流充电器。

WP(写保护)-在对时钟或RAM进行任何写操作之前,该位必须是逻辑0。高时,写保护位防止对任何寄存器的写操作,包括控制寄存器的位0、1和2。初始通电时,WP位的状态未定义。因此,在尝试写入设备之前,应清除WP位。

1赫兹(1赫兹输出启用)-该位控制1Hz输出。当该位为逻辑1时,1赫兹输出被启用。当该位为逻辑0时,1Hz输出为高Z。

AIE0(报警中断启用0)-当设置为逻辑1时,该位允许中断0请求标志(IRQF0)状态寄存器中断言INT0的位。当AIE0位设置为逻辑0时,IRQF0位将不启动INT0信号。

AIE1(报警中断启用1)-当设置为逻辑1时,该位允许状态寄存器中的中断1请求标志(IRQF1)位断言INT1。当AIE1位设置为逻辑0时,IRQF1位不启动中断信号,并且INT1引脚设置为逻辑0状态。

IRQF0(中断0请求标志)-中断请求标志位中的逻辑1表示当前时间与报警0寄存器匹配。如果AIE0位也是逻辑1,则INT0引脚将变低。当读取或写入任何报警0寄存器时,清除IRQF0。

IRQF1(中断1请求标志)-中断请求标志位中的逻辑1表示当前时间与报警1寄存器匹配。如果AIE1位也是逻辑1,则INT1引脚将产生62.5毫秒的高激活脉冲。当读取或写入任何报警1寄存器时,IRQF1被清除。

涓流充电寄存器(读11H,写91H)

该寄存器控制DS1306的涓流充电特性。图4的简化示意图显示了涓流充电器的基本部件。涓流充电选择(TCS)位(位4-7)控制涓流充电器的选择。为了防止意外启用,只有1010模式将启用涓流充电器。所有其他模式将禁用涓流充电器。DS1306在涓流充电器禁用的情况下通电。二极管选择(DS)位(位2-3)选择VCC1和VCC2之间是连接一个二极管还是连接两个二极管。如果DS为01,则选择一个二极管。如果DS为10,则选择两个二极管。如果DS为00或11,涓流充电器将独立于TCS禁用。RS位选择连接在VCC1和VCC2之间的电阻器。电阻器由电阻器选择(RS)位选择,如表2所示。

可编程滴流充电器:图4

如果RS为00,则涓流充电器将独立于TCS禁用。

二极管和电阻器的选择由用户根据电池或超级电容充电所需的最大电流确定。最大充电电流的计算方法如下例所示。假设向VCC1提供5伏系统电源,并将超级电容器连接到VCC2。还假设涓流充电器已启用,在VCC1和VCC2之间有一个二极管和电阻器R1。因此,最大电流I MAX的计算如下:

显然,当超级电容充电时,VCC1和VCC2之间的电压降将减小,因此充电电流将减小。

功率控制

电源通过VCC1、VCC2和VBAT引脚提供。三种不同的电源配置如图5所示。配置1显示DS1306由锂电池等不可充电能源进行备份。在此配置中,系统电源连接到VCC1,VCC2接地。如果VCC1小于VBAT,DS1306将被写保护。

配置2说明了DS1306由一个可充电能源备份。在这种情况下,VBAT引脚接地,VCC1连接到主电源,VCC2连接到辅助电源(可充电能源)。DS1306将从较大的VCC1或VCC2运行。当VCC1大于VCC2+0.2伏(典型值)时,VCC1将为DS1306供电。当VCC1小于VCC2时,VCC2将为DS1306供电。DS1306在此配置中不写保护自身。

配置3显示DS1306处于电池操作模式,其中设备仅由单个电池供电。在这种情况下,VCC1和VBAT引脚接地,电池连接到VCC2引脚。

只允许这三种配置。未使用的电源插脚必须接地。

串行接口

DS1306提供了在两种串行接口模式之间进行选择的灵活性。DS1306可以与SPI接口或标准3线接口通信。使用的接口方法由SERMODE管脚决定。当此引脚连接到VCC时,选择SPI通信。当该引脚接地时,选择标准3线通信。

串行外围接口(SPI)

串行外设接口(SPI)是一种用于地址和数据传输的同步总线,用于在特定的摩托罗拉微控制器(如68HC05C468HC11A8。串行通信的SPI模式是通过将SERMODE引脚连接到VCC来选择的。

四个针用于SPI。这四个管脚是SDO(串行数据输出)、SDI(串行数据输入)、CE(芯片启用)和SCLK(串行时钟)。DS1306是SPI应用程序中的从设备,微控制器是主设备。

SDI和SDO管脚分别是DS1306的串行数据输入和输出管脚。CE输入用于启动和终止数据传输。SCLK引脚用于同步主(微控制器)和从(DS1306)设备之间的数据移动。

移位时钟(SCLK)由微控制器生成,仅在地址和数据传输到SPI总线上的任何设备时激活。在一些微控制器中,非活动时钟极性是可编程的。DS1306提供了一个重要的特性,即当CE变为活动时,通过采样SCLK来确定非活动时钟的电平。因此,SCLK极性可以调节。输入数据(SDI)锁定在内部选通边缘,输出数据(SDO)在移位边缘移位(见表3和图6)。每传输一位有一个时钟。地址和数据位以8位为一组传输。

DS1306的电源配置:图5

配置1:备用电源为不充电锂电池

配置2:备用电源为充电电池或超级电容器

配置3:电池操作模式

*CPOL是在微控制器的控制寄存器中设置的“时钟极性”位。

**SDO保持在高Z,直到8位数据准备在读取期间移出。

注:可能需要相应地设置CPHA比特极性(如果适用)。

串行时钟作为微控制器时钟极性(CPOL)的函数:图6

地址和数据字节

地址和数据字节首先移位到串行数据输入(SDI)和串行数据输出(SDO)中。任何传输都需要字节的地址来指定对RTC或RAM位置的写入或读取,后跟1个或多个字节的数据。数据从SDO传输到SDI进行读操作(见图7和图8)。

SPI单字节写入:图7

SPI单字节读取;图8

地址字节始终是CE被驱动高之后输入的第一个字节。该字节的最高有效位(A7)决定是否进行读或写。如果A7为0,将发生一个或多个读取周期。如果A7为1,将发生一个或多个写入周期。

数据传输可以一次发生一个字节,也可以在多字节突发模式下发生。CE被高速驱动后,地址被写入DS1306。地址之后,可以写入或读取1个或多个数据字节。对于单字节传输,读取或写入1字节,然后驱动低CE。然而,对于多字节传输,在写入地址之后,可以将多个字节读取或写入DS1306。每个读或写周期都会导致RTC寄存器或RAM地址自动递增。递增继续,直到设备被禁用。当选择RTC时,地址在递增到1Fh(读取期间)后包装到00h,在递增到9Fh(写入期间)后包装到80h。当选择RAM时,地址在递增到7Fh(读取期间)后包装到20h,在递增到FFh(写入期间)后包装到A0h。

SPI多字节突发传输:图9

3线接口

3线接口模式的工作方式与SPI模式类似。然而,在3线模式下,存在一个I/O,而不是单独的数据输入和数据输出信号。3线接口由I/O(SDI和SDO引脚连接在一起)、CE和SCLK引脚组成。在三线模式下,每个字节首先在LSB中移位,而SPI模式下每个字节首先在MSB中移位。

与SPI模式一样,地址字节被写入设备,后跟一个或多个数据字节。图10展示了一个读写循环。在3线模式下,数据输入在SCLK的上升沿,输出在SCLK的下降沿。

3线单字节传输:图10