32位单片机

服务热线:13828722724

RTC产品应用笔记

2018-07-06 15:10:00   责任编辑:     0


>> RTC是什么


实时时钟(Real-Time Clock)简称为RTC,RTC芯片是日常生活中应用最为广泛的消费类电子产品之一。它为人们提供精确的实时时间,或者为电子系统提供精确的时间基准。


>> RTC的晶振频率为什么选用32.768kHz?


RTC时间是以振荡频率来计算的,故它不是一个时间器而是一个计数器。而通常计数器都是16位的,又因为时间的准确性很重要,单位时间内振荡次数越低,时间的准确性越低,所以振荡频率需要足够快。32768 = 215即32.768kHz分频15次后为1Hz,周期T=1s,所以RTC晶振选择32.768kHz最为合适。


>> RTC使用问题


(1)计时不准

RTC的主要职责就是提供准确的时间基准,计时不准的RTC毫无价值可言。目前部分MCU在片内已集成RTC,实际测试中在电池供电6小时环境下片内RTC的偏差在1-2分钟。因此,若对实时时钟有较高的要求则需优先考虑使用外部RTC,若能支持温度自动补偿则精度更佳。


(2)读写异常

RTC无法读写(通信)时可从软、硬件两方面考虑。软件方面重点考虑通信驱动的问题,例如无法对I2C/SPI操作。这类问题可以使用示波器,根据通信协议检查写入、读出数据是否正常。硬件方面,以常用的I2C为例,最不可忽视的则是上拉电阻的使用。I2C上拉电阻选择1K-10K为宜,可根据通信速率、长度、节点数而定。在节点数多、干扰大时还应在SDA、SCL线上串联100~200ohm左右的电阻,并在近IC端增加对地电容,通常选用100pF,有效抑制干扰脉冲。


(3)掉电后时间复位

这种情况最可能的原因是未使用备用电源或备用电源电量不足,应检查硬件电源电路。软件方面可能在用户程序、自启动脚本中设置了RTC,每次重启则将RTC恢复为默认值。


>> RTC通信的软件实现方法


以我司AiP8563为例。AiP8563所有的地址和数据通过I2C 总线接口串行传递。


(1)I2C总线通信的开始、结束条件

数椐线在下降沿而时钟线为高电平时为起动条件(S),数椐线在上升沿而时钟线为高电平时为停止条件(P),如下图所示:





软件上的实现方法如下图所示:




(2)I2C 总线的位传送及ACK应答

每个时钟脉冲传送一个数据位, SDA 线上的数据在时钟脉冲高电平时应保持稳定,否则 SDA 线上的数据将成为上面提及开始或结束信号。数据采用8bit一组的形式,每传送完8bit需要进行ACK应答来检测RTC电路是否正确接收到主控发送的信息,软件的实现方式如下图所示:






需要注意的是,ACK应答时钟上升沿到来前,需将连接DIO端口的主控端口设置为输入态,若设置为输出态,则可能会因为主控端口驱动能力过强导致DIO无法被拉至低电平,从而产生通信异常。


(3)数据的读、写

用 I2C总线传递数据前,接收的设备应先标明地址,在 I2C 总线起动后,这个地址与第一个传送字节一起被传送。 AiP8563 可以作为一个从接收器或从传送器,这时时钟信号线 SCL 只能是输入信号线,数据信号线 SDA 是一条双向信号线。

AiP8563 从地址参见下图:




三种 AiP8563读/写周期中 I2C总线的配置参见以下三图,图中字地址是4bit的数,用于指出下一个访问的寄存器,字地址的高四位无用。



主传送器到从接收器(写模式)



设置字地址后主设备读数据(写字地址:读数据)



主设备读从设备第一个字节数据后的数据(读模式)


数据的读写可通过如下所示软件进行实现:






>> 我司产品选型表





电话

0755-27883824

地址:深圳市宝安区西乡街道银田创意园B8栋502

传真:0755-61204158

邮箱 : 13510937553@163.com