基于烧写器的RTC校正工具的设计与实现
2019-09-10黄苏芳
黄苏芳
摘 要:针对目前批量RTC常温校正流程复杂、精度低、每个厂家都要独立设计一套等问题,笔者提出在芯片烧写阶段,由烧写器完成RTC校正工作。这种方法的采用使得厂家不需要为RTC常温校正专门设计一套软件或专门购置一套工具,就可以满足低成本、快速量产的需要。
关键词:RTC;烧写器;批量常温补偿
中图分类号:TN98 文献标识码:A 文章编号:2096-4706(2019)01-0030-03
Design and Implementation of RTC Correction Tool Based on Programmer
HUANG Sufang
(Hangzhou Vango Technologies,Inc,Hangzhou 310000,China)
Abstract:In order to solve the problems of complex process,low precision and independent design for each manufacturer of batch RTC at room temperature correction,the author proposes that RTC correction should be completed by programmer in the chip burning stage. The adoption of this method makes it possible for the manufacturer to meet the needs of low cost and fast mass production without designing a set of software or purchasing a set of tools for RTC normal temperature calibration.
Keywords:RTC;programmer;batch normal temperature compensation
1 校正原理
1.1 晶振特性简介
本文所介绍的RTC校正方法所涉及的数据与公式,均根据我们所使用的日本精工的晶体VT-200-F得到。
1.2 晶体的振荡频率-温度特性
根据音叉型石英晶体的振荡频率与温度之间存在的关系(如图1所示),在顶点温度(即25℃)时,晶体的振荡频率偏差最小。温度偏离顶点温度越远,则晶体的振荡频率偏差越大。晶体的振荡频率偏移率(ppm)与温度之间存在如下关系:
1.3 测温度
目标芯片自带温度传感器,可以测试温度Tosc,但是由于芯片生产工艺偏差,每个芯片都存在差异,该Tosc与实际晶体温度T存在常温偏移。
2 校正方案
根据式(2)可知,我们的主要目标是要获取ΔT和Δftem,可以根据式(5)和式(6)计算。也就是说常温(15℃至35℃)RTC校正目的就是获取温度的常温偏移和标准秒脈冲的常温频率偏移率。其它条件都是已知的。
在常温下,开启目标芯片高精度秒脉冲输出(未校正前),标准秒脉冲输出比对。使用高频工作的MCU(比如48M)的32位定时器分别捕获目标芯片秒脉冲和标准秒脉冲。得到对应的秒脉冲的捕获值N0和Nosc,带入式(9),得到。将和获取到的标准环境温度T带入式(6),计算Δftem。开启目标芯片测温功能,获取目标芯片温度Tosc,并将之与标准环境温度值T比对,带入式(5),计算出ΔT,将ΔT和Δftem通过烧写接口写入目标芯片的flash指定的infor区位置。客户代码可以从该地址获取当前芯片的常温偏移以及目标晶体的常温偏移。全温范围的晶振频率可以使用式(3)计算。
3 硬件设计
如图2硬件结构图所示,本设计硬件结构包含ARM模块、电源管理模块、RTC模块、测温模块和用户界面模块等。
3.1 ARM模块
ARM模块是芯片主控模块,接收并长期存储上位机软件hex和配置参数,捕获RTC芯片秒脉冲、目标芯片秒脉冲和目标芯片温度值,计算出校正值,接收外界按键触发。
ARM采用之前仿真器使用的LPC2148,由于LPC2148具备成熟的与目标芯片JTAG通讯设计,脱机下载模块,LPC2148与PC间的USB通讯设计,可以缩短开发周期。
ARM与其它模块接口:
(1)ARM通过USB与PC通讯,接收并长期存储上位机软件hex和配置参数;
(2)ARM通过IIC与RTC芯片通讯,配置RTC芯片,捕获RTC芯片秒脉冲;
(3)ARM通过IIC与温度芯片通讯,配置温度芯片,测试温度芯片温度值,检测目前测试环境温度是否符合标准;
(4)ARM通过JTAG与目标芯片通讯,配置目标芯片,读取目标芯片测温值和捕获目标芯片秒脉冲,完成对目标芯片进行脱机下载,将校正值写入目标芯片的flash固定位置处;
(5)ARM通过按键、LED、蜂鸣器、液晶配置工作模式,响应启动信息,提示当前状态。
ARM使用到的资源:
(1)定时器0的定时功能,启动按钮按下后通过定时器实现运行灯交替闪烁;
(2)定时器1的两个通道捕获功能,同时捕获两路秒脉冲;
(3)四线普通IO口,实现与目标芯片的JTAG通讯;
(4)Flash功能,存储目标芯片hex。
3.2 电源管理模块
(1)该系统采用5V电压供电;
(2)通过SPX1117转成3.3V提供给ARM、RTC芯片温度芯片;
(3)通过IO口和MOS管对目标芯片板供电与否进行控制。由于需要在固定上电时间内完成温度测试,并且出于对目标板接入和拔出过程的安全性考虑,需要控制对目标芯片的供电。在对目标板不供电的情况下将其插上,只有当启动按钮按下时,才对目标板供电,当测试完成时,对目标板断电,取下目标板。电路如下:增加RC滤波电路,滤除由于开关电源目标板大电容充电带来的电源抖动;通过LED灯提示当前对目标芯片板的供电状态,同时它也是一个放电回路;可以安装自恢复保险丝保护目标板短路带来的风险;
(4)采用CAT1025芯片对电源进行管理,由于ARM工作电压范围为:3V~3.6V,当电源电压低于3V时,复位ARM模块;
(5)由于需要和PC机通讯,所以需要支持USB供电,USB提供5V电压给该系统;
(6)在工人使用时,需要支持外部电源供电。外部电源通常有9V电压和5V电压两种可选。由于9V电压转到5V电压会产生较多热量,不利于温度测试。所以采用5V电压的外部电源供电;
(7)USB的5V电压电源和外部电源提供的5V电压电源间经0.3V压降的二极管隔离。防止外部电源倒灌到USB烧坏电脑主板;
(8)通过电源开关,控制该系统的电源开启和断开;
(9)使用自恢复保险丝,提供短路保护。
3.3 RTC模块
RTC模块采用美信公司DS3231芯片。DS3231是低成本、高精度I2C实时时钟(RTC),具有集成的温补晶振(TCXO)。该芯片输出的1Hz方波在15℃至35℃范围内精度为±2ppm,RTC跳差在0.1ppm,不同芯片间存在差异,需要通过软件校正。
DS3231工作需要3.3V电压。由于是模拟器件,所以需要对电源加滤波。在布板时,考虑电源电容与DS3231必须大面积接触,保持畅通,否则将会影响RTC精准度。
RTC通过高速(400kHz)I2C接口与ARM通讯。DS3231可编程方波输出,ARM配置输出1Hz方波,送入ARM的捕获口,进行标准秒脉冲捕获。
带有数字的温度传感器输出,精度为±3℃,不能满足我们的测温精度要求。
3.4 测温模块
TMP275是TI公司于2006年推出的一款低功耗的数字输出温度传感器。在-20℃~100℃范围内其精确度达±0.5℃,在采用12位可编程分辨率时,15℃至35℃范围内精度跳差为0.0625℃,不同芯片間差异需要软件校正。通过I2C与ARM通讯,ARM配置TMP275的工作模式,读取温度值。芯片采用小巧的8引脚MSOP封装。接口设计简单。由于ARM模块功耗较高,工作电流约100mA,其芯片温度比环境温度高,并会影响周边。但由于测温模块必须测试环境温度,因此,在布板时应注意,将测温模块和ARM模块间分开布置,然后将他们通过细线连接。
3.5 用户界面模块
为了界面友好,设计时应提供蜂鸣器和LED指示灯,提示当前状态。
(1)两盏电源指示灯,采用红色灯提示电源状态,这两盏灯分别为系统电源灯、目标板电源灯;
(2)三盏配置灯,为黄色。其中校正灯采用黄红双色灯,当校正按钮按下后,它指示当前温度状况是否在规定温度范围内(15℃~35℃)。如果温度超标就亮红色灯,反之亮黄色灯。灯亮代表使用该功能;
(3)一盏忙碌灯,为黄色,当启动按钮按下,黄色忙碌灯亮灭交替闪烁。测试完成后,则忙碌灯灭;
(4)一盏状态灯,为红绿双色灯,提示当前状态。如果成功就显示绿色,如果失败就显示红色,并保持这种状态,直到下一次启动开始或者该系统断电或复位。
蜂鸣器:
(1)失败提示:嘀、嘀、嘀三声;
(2)成功提示:嘀。
4 软件设计
4.1 上位机软件
上位机是一台可以发出特定操控命令的计算机,通过操作预先设定好的命令,将命令传递给下位机,通过下位机来控制设备完成各项操作。上位机软件是物联网应用中收集感知节点信息、进行显示、控制的应用控制台。该设计由原来的脱机烧写上位机软件升级得到,主要改动为:增加7、8、9功能。
(1)传输用户hex文件到ARM;
(2)传输页操作信息;
(3)传输起始表号信息;
(4)传输CRC校验信息;
(5)传输加密信息;
(6)读固件版本号信息;
(7)读标准表温度信息;
(8)传输RTC配置信息到ARM;
(9)标准表标定功能(只对厂内生产人员和技术支持人员开放)。
4.2 下位机软件主流程
下位机软件主流程是一个无限循环体,主要有以下模块:
(1)上电自检:检测当前测温芯片温度和RTC芯片温度;
(2)主循环检测是否有USB命令,如果是,执行USB命令;
(3)主循环检测用户是否按下启动按钮,如果是,开始校正和下载。
4.3 校正和下载流程
(1)对目标芯片供电;
(2)进行RTC测试之前的准备,如配置目标板秒脉冲输出;
(3)通过测试模块获取环境温度值,通过RTC模块获取RTC标准秒脉冲周期,通过目标板获取目标板的秒脉冲周期,计算频率偏移;
(4)烧写代码,并校验;
(5)将RTC校正值写入flash;
(6)停止对目标芯片供电;
(7)复位芯片,报测试结果。
5 测试结果
通过在全温度范围内完成秒脉冲校正后的RTC计时误差分析,情况如表1所示,在常温条件下RTC秒脉冲输出接近0.1ppm。
6 结 论
基于烧写器的RTC校正工具能最大程度地满足生产,其在支持下载的同时可以进行RTC校正,节省了设备和时间。对于生产效率的提高意义重大。
参考文献:
[1] 邓乾中.自校准实时时钟RTC的研究和设计 [D].武汉:华中科技大学,2008.
[2] 张昭.一种温度补偿晶体振荡器芯片的设计 [D].成都:四川大学,2006.