实时时钟芯片应用设计时必须要考虑的事项
就是说,它们和DROM或SRAM是一样:初始上电后,用于实际的数据是随机的。
发现并解决新设计中的问题
不能和RTC通信
在新的设计并解决问题的过程中,这里有多种方法能够帮助确定产生问题的原因。例如,如果显现出来的是器件根本不通信,经常值得去确定该器件是否没读,写或两者都没。如果器件有软件使能的特点,例如方波输出,尝试着使那个特性有效是一个很好的方式去决定是否能够写器件。在2线器件上,示波器可以确定时钟在传送每个字节后是否发送应答信号。下面的段落描述了一些附加的设计中的问题并解决的提示"
有备用电池的实时时钟芯片用一个比较器在VCC和VBAT之间切换。有些实时时钟芯片用电池电压作为参考电压,另外的用一个能带参考电压决定什么时候VCC有效。当VCC下降到比较器的触发点,就不能够进行读写。在一个电压下的禁止读写有助于对处理器进行不注意的写,该处理器不再有有效的供应。而且,当VCC电压高于触发点,比较器把内部供电电源切换到VCC,防止电池耗尽。在电池电压为参考的器件中,一个悬空电池输入,在电池和VBAT之间有一个二极管的输入,或有太高电压的电池能制止和RTC的通信。确保VBAT在有效的电压范围内,并且在电池和电池输入引脚之间没有二极管。
串行时钟要求正确的向器件中写人命令字节或从地址。不正确的命令/地址经常导致器件忽略读操作。在那些情况下,数据I/O口终止于高阻态。在带上拉电阻的串行线上,数据重复经常是0XFF。在3线接口中,如果I/O口有内部下拉电阻,数据经常是0。在其他的情况下,数据重复经常是命令字节最后一位的值。有些串行时钟用分离的输入作输出,以便在一个较低供应电压时允许处理器协调工作。没接有效的供应到输入端会阻止I/O口驱动高电平。最后,如果软件不能使处理器的端口(接到了时钟的输入输出引脚)从输出(写命令节)切换到输入(读数据),那么输出的数据可能是全0或全1。
无效时间和数据值
大多数时间和日期寄存器能够接收任何值,包括无效值。如果无效值进入寄存器,那么该值将不断增加,直到和发生翻转的位相匹配后比较,达到最小值。如果时钟处于错误的模式。也可能造成无效值,例如,二进制码取代BCD码,或12小时制取代24小时制。
数据丢失/数据破坏
有两种情况可以引起数据丢失:无意中的写时钟或反相小故障脉冲电压用到IC上。因为CH或/EOSC位(带晶振控制位的时钟上)处于默认的停止状态, 反相电压输入到IC所造成的数据丢失有时能辨认。另外,大多数而不是所有的寄存器中的数据会破坏。无意中的写一般发生在电源周期时,但是通常只影响一个寄存器,而不影响串行时钟。
在上电和/或掉电时许多现代的开关电源将在VCC上产生一个-5V或-6V或甚至更大的毛刺。通过输入保护二极管,这个负电压耦合到内部时钟电源。如果电源能够提供比电池大的电流,那么数据将丢失。在某种情况下,用一个肖特基二极管可以钳位这个负毛刺电压。另外一个时钟上的负电压源来自RS232连接器。如果带时钟芯片的PCB板掉电,上电的PC或其他器件通过RS232连接器连接到那块板上,RS232收发器芯片可能将负电压传到不上电的PCB板上的其他芯片。
无意中的写也可能造成数据破坏。在写保护为有效前,在上电或掉电期间处理器能写入错误的数据。在上电和掉电时,接口电路可能迫使输入引脚进入写状态。在多总线时钟的情况下,地址信号锁存在ALE的下降沿。如果/WE和/CS在器件处于写保护之前变为低电压,那么在最后寄存器中最后访问的数据会破坏。VCC的上升时间和下降时间应核对无误以用于数据手册的需要。
不正确的中断程序处理造成间断的数据问题。在某些情况下,时间和数据信息复制到RAM中去了,并且复制不是同步的。最后,在电路仿真(IEC)硬件配置不当,可以造成奇怪的行为。
晶振问题
时间不能增加的最普遍原因是晶振没使能。许多FS时钟芯片有一个在晶振工作前须置1的控制位(通常位于第二个寄存器)。
为延长电池使用时间,振荡电路设计成低功耗。晶振的连接问题能降低闭环增益,阻止晶振工作。接到晶振的外部电容也减少闭环增益,增加启振时间或阻止振动。示波器的探头也能够阻止振动。带45K以上的等效串行电阻(ESR)的 晶振也将减少闭环增益。最后,留在电路板上的焊锡清洁剂可能阻止晶振起振。
- 工作在扩展温度范围的计时器件(11-13)
- 工作在高频率的简单锯齿波发生器(05-06)
- Maxim DS3231实时时钟应用笔记、使用指南、FAQ全集(02-14)
- 实时时钟电路设计(05-20)
- 利用SmartCompile和赛灵思的设计工具进行设计保存(04-18)
- 实时时钟芯片DS12887的应用设计(04-23)