您好,欢迎来到深圳市金洛鑫电子有限公司! 金洛公众号 金洛微信公众号 |关于金洛|添加收藏|网站地图
咨询热线:0755-27837162
金洛电子联系方式:电话: 0755-27837162手机: 135 1056 9637Q Q: 657116624立即咨询邮箱: jinluodz@163.com
首页新闻中心 基于温度补偿RTC模块的晶体晶振参考程序说明

基于温度补偿RTC模块的晶体晶振参考程序说明

来源:http://www.jinluodz.com 作者:金洛鑫电子 2019年09月20
       说到带有温度补偿性能的器件,首先想到大多数都是温补振荡器,这也是比较知名的一种电子元器件了,但是RTC实时时钟也同样可以参与温度补偿设计,而且带有温度补偿的实时时钟参考方案里,也有几颗不同的晶体或振荡器加持.晶振本身就是一种用于时钟的频率组件,基本上带有基准时钟模块的产品都需要用到,所谓的温度补偿简单的说,就是当周围温度骤然上午或下降,超过本身的温度范围,会利用自身的精准性和补偿功能,让周围温度回归到正常的范围内.
       实时时钟(RTC)用于许多需要跟踪时间和日期信息的应用中.将专用RTC器件添加到电路板的常见解决方案会增加BOM成本并增加电路板空间.更好,更具成本效益的替代方案是将RTC功能实现到微控制器中,该微控制器也执行其他有用的任务.温度补偿实时时钟(TC-RTC)参考设计是一个完整的RTC解决方案,包括实现具有全时钟和日历功能以及温度补偿的RTC所需的所有固件和硬件.与涉及提供类似功能的专用RTC的解决方案相比,该解决方案可显着节省成本.
TC-RTCRD固件实现以下功能:
       1.实时时钟,计算秒,分,小时,日期,星期几,月和年,闰年补偿有效期至2099年
       2.温度引起的晶振频率变化的自动时间补偿
       3.56字节NVRAM,数据存储在内部闪存中
       4.SMBus/I2C接口或UART接口,具体取决于加载的固件
       5.1/2Hz速率的方波输出信号
硬件概述:
       TC-RTC参考设计硬件实现为评估板,如图1所示.使用连接到定时器输入的外部32kHz晶振作为RTC的时钟源.RTC评估板提供两个接口-UART和SMBus/I2C.
TCXOBC1.jpg
图1.TC-RTCC8051F300评估板
       这是一款小型混合信号MCU,具有丰富的功能集.下面列出了本参考设计中使用的MCU的功能:
       1.高速8051内核,25MHz时钟,可提供高达25MIPS的吞吐量
       2.8kB闪存(在系统可编程)和256字节内部数据RAM
       3.25MHz内部振荡器和外部晶振/石英晶体振荡器输入
       4.8位500kspsADC
       5.片上温度传感器
       6.硬件增强的UART和SMBus串口
       7.三个通用16位计数器/定时器
       8.使用定时器和外部时钟源的实时时钟模式
       有关该MCU的更多详细信息,请参阅本设计中使用的C8051F300MCU的引脚连接如图2所示.电路板原理图和材料清单包含在”温度补偿实时时钟参考设计套件用户指南”中.
TCXOBC2.jpg
图2.TC-RTCC8051F300MCU引脚连接
       导致石英晶体频率偏差的主要参数如下:
       1.环境温度
       2.晶莹剔透
       3.供电电压
       其中,影响晶体频率的主要因素是环境温度.图3显示了谐振器频率随温度变化的曲线图.从抛物线曲线可以看出,如果温度从室温值(25°C)升高或降低,RTC将浪费时间.注意,RTC永远不会有由温度变化(即增益时间)引起的正误差,因为最大频率是室温.
TCXOBC3.jpg
图3.抛物线温度曲线
       最大频率变化约为-0.04ppm/ºC2.因此,频率偏差可表示如下:
       △f/f=0.04ppmx(△T)2
       △T=环境温度-25ºC
计算时间补偿:
        TC-RTC参考设计固件每分钟重复以下步骤一次,以计算和累计丢失的时间.
        1.ADC用于测量片内温度传感器的芯片温度.”3.3.计算环境温度”描述了所涉及的计算.
        2.然后使用ADC测量的值计算以ppm为单位的偏差,并将结果存储在存储器中.这表示需要补偿的微秒数.
        在24小时结束时,总累积误差被加到RTC时间以完成补偿过程.假设温度在一分钟内没有广泛变化.片上温度传感器产生的电压输出与'F300芯片的绝对温度成正比,如图4所示.该电压与芯片温度之间的典型关系如下所示=TCXOBC4.jpg×TEMPc+897mV
        VTEMP是温度传感器电压输出(mV)
        TEMPC是模具温度(ºC)
TCXOBC5.jpg
图4.典型的温度传感器传递函数
RTC寄存器和非易失性用户RAM:
       图5显示了RTC寄存器和NVRAM的地址.RTC寄存器存储当前时间和日期信息.这些寄存器保存在'F300器件内部易失性RAM中. TC-RTC还提供一个56字节的用户NVRAM,存储在'F300设备内部闪存中.这可以用作通用非易失性存储区域.Flash NVRAM的当前值始终镜像在RAM中的56字节阵列中.这是因为'F300闪存只能在512字节的页面中擦除.因此,将一个或多个字节写入NVRAM是一个三步过程-首先将字节写入RAM阵列,擦除Flash页面,将56字节阵列从RAM复制到闪存.
       该NVRAM的一个有用的应用是在电源故障之前存储时间和日期信息.存储的信息稍后可用于调试或其他目的.为此,应监控电源线,一旦检测到跌落,应从RTC寄存器读取时间和日期信息并写入NVRAM.这应该由外部设备管理,而不是由TC-RTC固件自动完成.
TCXOBC6.jpg
图5.RTC和NVRAM寄存器
ADC配置:
        ADC配置为使用温度传感器作为正输入,接地作为负输入.VDD用作参考有源晶振电压,SAR转换时钟设置为5MHz.可编程增益放大器(PGA)设置为增益2.通过收集和平均温度传感器输出的65536(64k)样本,执行过采样以提高测量精度.首次对TC-RTC板供电-在加载固件后,执行1点偏移校准,如下所示:
       1.等待15秒(浸泡时间).这允许模具加热到正常的操作温度.
       2.使用上述ADC设置测量温度传感器输出.注意:校准测量假设芯片温度为28ºC.
       3.将测量值存储在非易失性闪存中.
定时器配置:
       'F300MCU有三个通用定时器.所有这三个定时器都由TC-RTC固件使用.定时器配置并用于以下目的:
       1.Timer0-用于提供SMBusSCL低超时.
       2.Timer1-用作UART波特率发生器,或用于SMBus空闲超时(SCL高)检测.
       3.Timer2-它使用外部振荡器作为时钟源,用于RTC时间测量.
       4.4.UART接口
       TC-RTC提供的UART接口是一个简单的2线接口,仅使用TXD和RXD线路.它支持三个命令.
SMBus界面:
       可以进行两种类型的数据传输:从主发送器到寻址的从接收器(WRITE)的数据传输,以及从寻址的从发送器到主接收器(READ)的数据传输.主器件启动两种类型的数据传输,并在SCL上提供串行时钟脉冲.SMBus接口可以作为主设备或从设备运行,并且支持同一总线上的多个主设备.如果两个或多个主设备尝试同时启动数据传输,则采用仲裁方案,其中单个主设备总是赢得仲裁.
       典型的SMBus事务包括START条件后跟地址字节(Bits7-1:7位从机地址;Bit0:R/W方向位),一个或多个字节数据和STOP条件.在高SCL期间,必须通过低SDA确认(通过主机或从机)接收的每个字节(参见图6).如果接收设备没有ACK,则发送设备将读取NACK(不确认),其在高SCL期间是高SDA.
TCXOBC7.jpg
图6.典型的SMBus事务
       TC-RTC固件使用SMBus接口作为从器件,从器件地址为0xD0.可以通过修改”F30x_TCRTC_Interface.h”中的SLA_ADD宏定义来更改此设置.
正在载入评论数据...

发表评论:

姓名:
邮箱:
正文:

欢迎参与讨论,请在这里发表您的看法、交流您的观点。

诚征下列地区 声表滤波器 | 石英晶振 | 雾化片贴片晶振 | 进口晶振 | 石英晶体谐振器 |温补晶振 的合作伙伴:
深圳市 广州市 北京 上海 东莞 佛山 中山 顺德 珠海 杭州 温州 武汉 长沙 南京 大连 长春 西安 郑州 澳门 沈阳 南宁 昆明 济南 重庆 成都
进口晶振,晶振厂家,32.768K晶振,16mm微孔雾化片,2.4M陶瓷雾化片,KDS温补晶振,精工SSP-T7-F晶振,TXC晶振,大真空DST310S晶振,爱普生晶振MC-146,SC-32S晶振,3225贴片晶振,西铁城晶振,TO-39声表面滤波器,进口京瓷晶振,陶瓷晶振,FA-20H石英晶振,西铁城晶振CM315,LVDS差分晶振,恒温晶振,美国进口晶振,VCXO压控晶振,耐高温晶振
金洛公众号
kf
close
kf 金洛微信号