达拉斯半导体提供两种实时时钟(RTC),DS1371和DS1374,它们利用32位计数器来保持时间。两款器件还提供24位倒计时看门狗/报警计数器,可提供以下三种功能之一:周期性报警、看门狗定时器或SRAM。本应用笔记旨在帮助客户了解计数器的工作原理以及针对每种功能的配置。
计数器配置
辅助计数器映射到 2 线地址范围 04-06h,命名法为 WD/ALM 计数器字节 0-2。这些地址映射到三个用于写入的 8 位输入寄存器和三个用于读取的 8 位输出寄存器。为了使用2线接口写入器件,输入数据被锁存到与指定地址对应的输入寄存器中,然后将所有三个寄存器的内容加载到24位计数器中。当计数器重新加载时,输入寄存器用作24位种子寄存器。为了使用2线接口从器件读取数据,计数器的内容被锁存到输出寄存器中,并且对应于指定地址的数据被发送到外部总线。这允许计数器连续递减,而不会影响正在读取的数据。图 1 显示了这些块如何交互。
图1.看门狗/报警计数器配置。
控制寄存器
控制寄存器用于配置DS1371和DS1374的看门狗/报警计数器。每个器件的寄存器几乎相同,只有位3和4控制器件特定功能。以下各段详细介绍了这两个登记册。
DS1371 控制寄存器
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
"EOSC-bar" | WACE | WD/"ALM-bar" | 0 | INTCN | RS2 | RS1 | AIE |
“EOSC-bar”(启用振荡器) - 当设置为逻辑 0 时,振荡器启动。当设置为逻辑 1 时,振荡器停止。首次通电时,此位清晰(逻辑 0)。
WACE(看门狗/报警计数器启用) - 设置为逻辑 1 时,WD/ALM 计数器将启用。当设置为逻辑 0 时,WD/ALM 计数器被禁用,允许将 24 位用作 SRAM。首次通电时,此位清晰(逻辑 0)。
WD/“ALM-bar”(看门狗/报警计数器选择) - 当设置为逻辑 0 时,计数器提供定期报警。当设置为逻辑1时,计数器提供一个看门狗定时器。首次通电时,此位清晰(逻辑 0)。
INTCN (中断控制) - 当设置为逻辑 0 时,在 SQW/“INT-bar” 引脚上输出方波。还必须启用“EOSC-bar”位才能输出方波。当设置为逻辑 1 时,状态寄存器中的报警标志 (AF) 位置位 SQW/“INT-bar”输出(前提是报警也已启用)。首次通电时,此位清晰(逻辑 0)。
RS2 和 RS1(速率选择) - 当方波启用时,这些位控制方波输出的频率。表1显示了可以使用RS位选择的方波频率。这些位都是在首次通电时设置的(逻辑1)。
表 1.方波输出频率
RS2 | RS1 | 频率 |
0 | 0 | 1Hz |
0 | 1 | 4.096kHz |
1 | 0 | 8.192kHz |
1 | 1 | 32.768kHz |
AIE(报警中断启用)
- 当设置为逻辑 1 时,此位允许状态寄存器中的 AF 位置位 SQW/“INT-bar”(必须设置 INTCN)。当设置为逻辑或INTCN设置为逻辑0时,AF位不会启动SQW/“INT-bar”信号。首次通电时,此位清晰(逻辑 0)。
DS1374 控制寄存器
Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 |
"EOSC-bar" | WACE | WD/"ALM-bar" | BBSQW | WDSTR | RS2 | RS1 | AIE |
仅定义与DS1371不同的位。
BBSQW(电池备份方波使能) - 当设置为逻辑 0 时,SQW 引脚为高阻抗,当 V抄送低于电源故障跳变点。当设置为逻辑 1 时,当 V抄送不存在,设备由 V 供电备份针。首次通电时,此位清晰(逻辑 0)。
WDSTR(看门狗复位转向位) - 当设置为逻辑 0 时,如果 WD/“ALM-bar” = 1 且 WD/ALM 计数器达到 0,则在“RST bar”引脚上输出 250ms 脉冲。当设置为逻辑1时,250ms脉冲输出在“INT-bar”引脚上。首次通电时,此位清晰(逻辑 0)。
定期报警
如果需要定期报警,WACE 位设置为 1,WD/“ALM-bar”位设置为 0。然后,计数器的行为如下:
- | 计数器每秒递减一次。 |
- | 当计数器达到0时,设置状态寄存器中的AF位,并使用输入寄存器中的当前24位值重新加载计数器。 |
- | 计数器将重新启动。 |
如果设置了控制寄存器中的AIE位,AF位在DS1371和DS1374的不同引脚上产生中断。对于DS1371,如果INTCN位设置为1,则在SQW/“INT-bar”引脚上产生中断。对于DS1374,在“INT-bar”引脚上产生中断。
例如,DS1371可以配置为每周产生周期性中断,方法是使能计数器进行周期性报警,加载计数器值为93A80h (7天x 24小时x 60分钟x 60秒),并启用SQW/“INT-bar”引脚进行中断。
看门狗定时器
如果需要看门狗定时器,WACE 位和 WD/“ALM-bar”位均设置为 1。然后,计数器的行为如下:
- | 计数器每 1/4096 秒(约 244μs)递减一次。 |
- | 如果读取或写入任何WD/ALM计数器寄存器,则计数器将使用输入寄存器中的当前24位值重新加载并重新启动。 |
- | 对于DS1371,如果WDS输入端出现从低到高的转换,计数器也会重新加载并重新启动。 |
- | 当计数器达到0时,设置状态寄存器中的AF位,并停止计数器。 |
对于DS1371,如果控制寄存器中的AlE和INTCN位设置,AF位在SQW/“INT-bar”引脚上产生250ms脉冲。此脉冲不能被截断,当它完成时,AF标志被清除为0,SQW/“INT-bar”引脚返回到高阻抗状态。
对于DS1374,AF位在“INT-bar”引脚或“RST-bar”引脚上产生250ms脉冲。控制寄存器中的WDSTR位选择脉冲发生在哪个输出引脚上。如果 WDSTR 为 0,则 250ms 脉冲出现在“RST-bar”引脚上,如果 WDSTR 为 1,则脉冲出现在“INT-bar”引脚上。无论哪种情况,脉冲都不能被截断,当脉冲完成时,AF标志被清除为0,相应的输出引脚返回到高阻抗状态。
例如,DS1374可以配置为复位在150ms周期内不访问看门狗定时器的微控制器。计数器作为看门狗定时器启用,计数器加载值266h(0.15s / 0.000244s),并将脉冲引导至“RST-bar”引脚。
SRAM
如果不需要两种计数器类型,则 24 位计数器可用作 3 字节静态 RAM。这是通过在控制寄存器中设置WACE位来实现的。
对于提供后备电源输入的DS1374,只要电池或超级电容电压在规格范围内,RAM就是非易失性的。
总结
由于看门狗/报警计数器在一个封装中提供三种独立的功能,DS1371和DS1374是适合各种应用的高性价比器件。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !