拓冰建站拓冰建站
首页 / 资讯中心 / 正文

RTC实时时钟设计全解析:从晶振匹配到电源切换与精度校准

1. 从“断电不走时”这个老问题说起RTC到底在替硬件扛什么活做嵌入式、物联网或者消费电子的朋友多半被同一个问题折磨过设备明明正常关机了但下次开机时间却回到了“出厂设置”日志时间戳全乱数据上报顺序也乱了。这时候大家第一反应往往是把锅甩给主控芯片但真正负责“断电后继续记时间”的其实是一颗体积小到几乎看不见的专用芯片——RTC实时时钟。RTC和主控里的定时器完全是两码事。主控芯片靠内部时钟源计时一断电寄存器清空时间归零而RTC模块拥有独立的时钟源、独立的供电引脚和独立的寄存器组哪怕整机断电只要给RTC的备用电源引脚通常叫VBAT还有哪怕微安级别的电流它就能继续一秒一秒地数下去。整机开机时主控通过I2C、SPI或者并口总线去读RTC里的时间寄存器拿到的就是“从未间断”的实时时间。所以你可以把RTC理解成一块“自带电池的电子表芯”而主控只是一个每天来看一眼这块表的人。这个比喻虽然土但非常精确地说明了RTC在硬件系统中的角色它是时间基准的兜底者也是低功耗场景下唯一允许常年运行的时钟源。这篇文章的读者我默认是三类人一是正在选型RTC芯片的硬件工程师想搞清楚精度参数背后的门道二是写了几年驱动但一直没有深入底层、遇到“时间不对”就只会改寄存器值的软件工程师三是做产品规划、需要判断“要不要上带温补的RTC”的产品经理。当然如果你是刚入行的学生这篇文章也可以当一份比较落地的RTC入门指南来读我会把结构、精度、误差来源、电源切换电路、故障排查以及场景选型全部过一遍尽量讲透。先说个结论放这儿免得到最后才剧透很多“RTC时间不准”的问题根源不在RTC芯片本身而在晶振匹配、电源切换设计和PCB布局这三件看起来不起眼的事情上。后面我会一条一条拆开讲。2. 拆开RTC模块看内脏晶振、分频链路与寄存器组的配合逻辑2.1 为什么几乎所有RTC都死磕32.768kHz这个频率你去看市面上主流的RTC芯片无论是Maxim、TI、EPSON、Micro Crystal还是国产的SD系列、BL系列内部或者外置的晶振几乎清一色是32.768kHz。这个数字不是随便定的它是2的15次方也就是32768。晶振振荡频率经过一个15级二分频器之后正好可以得到1Hz的秒脉冲信号。用二进制分频器实现整数分频不需要锁相环也不需要小数分频器电路最简、功耗最低、成本也最可控。更重要的是32.768kHz这个频点上的晶振行业供应链已经极度成熟尺寸可以做到贴片3215、2012甚至更小的1610频率温度特性在常温下可以做到±20ppm以内工业级批次也能保证-40℃到85℃范围内的走势相对稳定。对于需要长期运行、低功耗、体积受限的设备来说这个频率几乎是唯一解。很多新手在选型时会纠结主控芯片内部明明有精度更高的时钟源甚至带温度补偿的PLL为什么非要外挂一颗RTC原因很简单主控要省电就要睡死过去睡死过去内部时钟就停了。RTC的设计目标就是“常年以微安级电流运行”一颗普通RTC在整个生命周期里消耗的电量可能还不如主控开机一次干掉的能量多。这也是为什么在低功耗产品的硬件架构里RTC始终是“最后一位下班的员工”。2.2 从振荡到寄存器一条完整的时间数据链路一颗典型RTC芯片的内部结构从信号流向上看包括这样几块振荡电路Oscillator Circuit和外部32.768kHz晶振一起构成振荡源内部通常集成负载电容或提供可配置的电容阵列。分频链路Divider Chain15级二分频把32.768kHz变成1Hz脉冲。秒计数器与时间寄存器组Timekeeping Registers闹钟寄存器、报警中断寄存器、校准寄存器这些都在这个区域。通信接口逻辑I2C/SPI Interface主控读写时间数据的通道。电源管理逻辑Power Management负责主电源和备用电源之间的切换判断。温度补偿单元TCXO或数字补偿——这是高精度RTC才有的部分后面展开讲。总线时序这里我不多说这不是重点。重点在于你从RTC读到的时间数据其实已经过了“晶振频率→分频计数→BCD码寄存器”这么一条完整链路。任何一环出了问题表现都会是“时间不对劲”但根因可能千差万别。举个例子某颗RTC的时间寄存器按BCD码格式存放0x23代表23点0x59代表59分。如果你在写驱动时直接用十六进制数去读去写而忘了做BCD和二进制之间的互转那么读回来的时间就是乱码级别的错误。这种问题非常常见而且很隐蔽因为它不是硬件故障是软件没有对齐数据格式。2.3 寄存器不只存时间还存“脾气”除了秒、分、时、日、月、年这些时间寄存器RTC芯片还提供了一批控制寄存器我建议每一位用RTC的工程师都花点时间把寄存器手册完整读一遍而不是只读时间寄存器那一页。常见的坑位有振荡器停止位OSF / OSC Stop Flag很多芯片会在“晶振停振”时置位这个标志位。有的驱动不看这个位直接就读数于是读到的是晶振停振之后的垃圾值。电池低电压标志位LOW Battery Flag读回来发现时间跳到年边界、变成2000年之类的大概率是VBAT电压太低这个标志位能帮你快速定位。写保护位Write Protect部分芯片需要先关写保护才能设时间否则寄存器写入无效。很多“时间设不进”的案例都栽在它手上。频率微调寄存器Digital Offset Register / Analog Trimming这是校准精度的关键位置后面第3章会单独讲它用多少ppm步进来调整时间快慢。我想表达的是RTC不是“读个时间而已”那么简单。它的寄存器组相对小巧但每一个位都有明确的使用场景。与其出了问题再翻手册不如在设计阶段就把这些标志位考虑进驱动和诊断逻辑里比如上电初始化时先检查振停位、低压位再决定是否要报警或自复位这套做法能帮你以后省掉无数个加班的深夜。3. 精度、误差与校准ppm不是玄学是一道可以算清的数学题3.1 ppm到底有多可怕一天快慢多少秒怎么算晶振手册上经常写“频率容差±20ppm”或者“频率温度特性±30ppm”。ppm是parts per million百万分之一。如果一颗32.768kHz晶振的实际频率偏差是20ppm意味着它每秒会多走20个微秒不对注意这里频率偏差指的是“频率”偏差比例对应到时间轴上就是一天的走时误差。具体计算方式很简单24小时是86400秒如果误差为x ppm那么一天的走时误差就是86400 × (x / 1000000) 秒。算一下±5ppm86400 × 5 / 1000000 0.432秒/天也就是大约一个月快慢13秒。±20ppm86400 × 20 / 1000000 1.728秒/天一个月大约快慢51.8秒。±50ppm一天就是4.32秒误差一个月129.6秒超过两分钟。所以当你看到芯片手册上标注“±20ppm”时脑子里应该立刻换算成“一天最多偏差1.7秒”而不是停留在那个冰冷的ppm符号上。这也是我在评审硬件方案时必做的第一道算术题根据产品的同步频率和时间标签容忍度反推ppm需求的上限。3.2 温度才是最大的误差源比老化狠得多ppm误差不是一个固定值它随温度变化。普通32.768kHz晶振的频率-温度特性近似一条抛物线在25℃附近最准温度走高或者走低频率都会往下掉。典型参数是25℃基准频率容差±20ppm左右温度特性拐点附近二次系数大约 -0.035 ppm/℃²也就是说偏离常温25℃往两端走时误差会以二次方关系变大。举个例子设备工作在-20℃到60℃的环境里偏离最优点35℃时频率偏差大约能到40多ppm一天的误差就奔着3.5秒去了。如果设备需要精准记录事件时间戳比如电力故障录波、汽车行驶数据记录这样的误差是扛不住的。所以高端RTC才会做温度补偿要么是TCXO方案晶振自带温度补偿精度可以到±2ppm以内要么是芯片内部带温度传感器配合补偿算法实时修正比如Micro Crystal的RV-8803-C7标称精度可以达到±2.0ppm、甚至有±1.5ppm级别的型号。我这里特别强调温度漂移是因为很多做测试的工程师在常温下验证RTC精度时会得出“误差很小、完全达标”的结论结果产品一到北方冬季或者南方夏天的高温场景就出问题。RTC的精度验证必须在全温度范围内看不能只看25℃一个点。3.3 软硬件都能拉一把常见的定时校准手段如果选好的RTC在目标温区里依然有可感知的误差或者你在做毕业设计/原型机时手里芯片已经焊上没法换那么还有几套校准手段可以补救。这里讲最常用的三种第一种是软件周期性校准。主控通过外部网络NTP、基站授时、GPS授时拿到标准时间后对比RTC时间算出“走快了还是走慢了”然后写进RTC的偏移补偿寄存器。很多RTC支持数字微调比如以2ppm或4ppm为一个步进在1Hz秒脉冲上做周期性的加秒或减秒来微调。这种方案的优点是成本为零缺点是依赖外部时间源而且无法修正秒内的短期抖动。第二种是模拟微调电容。部分RTC芯片允许配置内部负载电容阵列通过增减负载电容来拉偏晶振频率。这个方法可以做初期校准把常温频偏拉到一个很小值但它在全温度范围内效果有限因为晶振温度曲线本身的形状没有改变只是整体平移了一下。第三种是带TCXO或DTCXO的RTC。TCXO直接把温度补偿做在模块里MCU拿到的就是已经稳定的频率源DTCXO则是在RTC内部集成温度传感器用数字算法实时修正。这种方案的精度最高但价格也高。如果产品对时间准确度有硬性要求比如计费表计、医疗记录仪我建议直接选这类不要指望普通晶振用软件硬扛。还有一个实操点容易被忽略RTC芯片旁边那颗晶振匹配的负载电容值CL。晶体手册会给出“推荐负载电容”比如12.5pF你的PCB上每边各放一个电容电容的取值要考虑芯片引脚寄生电容、PCB走线分布电容最终实际CL (Cg × Cd) / (Cg Cd) Cstray。不少人直接买了一个6.8pF的电容就往PCB上按结果频率偏出几十ppm自己还不知道。这个数值务必结合具体芯片的datasheet推荐值来算别省这一步。4. 不掉时间的幕后功臣主备电源自动切换与超低功耗设计4.1 VBAT不是随便接一个电池就完事RTC要做到断电后继续计时硬件上必须解决好“谁给RTC供电”的问题。通用方案是把RTC的VCC接到系统主电源上同时把它单独的VBAT引脚接一颗后备电池或者超级电容。正常工作的时候RTC由主电源供电同时对后备电池进行涓流充电当主电源断开内部电源切换逻辑会自动切到VBAT供电RTC继续走时。很多人在这里栽的第一个坑是要求切换电路“无缝”但不少便宜的芯片切换逻辑是有电压滞回和毛刺的切换瞬间如果处理不好RTC内部逻辑可能进入一个不确定状态复位一次时间就丢了。所以选型时别只看“带电源切换”这个功能关键词要仔细翻数据手册里的Power Switch Threshold和切换时序图尤其是你不想在掉上电测试时复现“偶发时间丢失”这种最难查的bug。4.2 全志H136这种带内置RTC的SoC电源切换电路为什么值得单独研究我在几个物联网项目里用过全志H136。这颗SoC内置了RTC模块内部集成了RTC电源切换控制逻辑外部只需要按参考设计接好VBAT供电通路软件层面就能读到“当前供电状态”和“备用电源低电标志”。这类内置RTC的SoC有一个共同特点RTC电源域和主电源域隔离得比较清楚但电源切换电路不能只靠SoC内部完成外围仍然需要一些电阻、MOS管、二极管或者专用电源切换芯片来保证掉电时电流不回流、电压不掉到阈值以下。全志H136的典型RTC备用电源电路一般长这样VCC_RTC来自主电源的3.3V或1.8VVBAT接纽扣电池或者法拉电容两者通过防倒灌结构汇合到SoC的RTC_VDD引脚。注意这里有三件事一定要做对防倒灌。主电源存在的时候不能反过来给电池充电除非芯片明确支持充电管理并且你确实配置了充电功能。用二极管做隔离时二极管的漏电流和正向压降都要考虑肖特基二极管压降低但漏电稍大普通硅二极管漏电小但压降大。启动时的电源竞争。如果掉电时间很短VBAT电压还来不及下降主电源又回来了切换逻辑必须能区分“主电源回来后重新接管”和“主电源只是短暂抖动”这两种情况做得不好的芯片可能在电源抖动时反复切换导致RTC逻辑异常。PCB走线。RTC_VDD引脚和VBAT电池之间的走线虽然电流极小但阻抗不稳会影响掉电瞬间的电压跌落速度进而影响内部复位判断。走线尽量粗短地回路也要干净。如果你是硬件工程师去解释这块电路我建议在评审时主动把“RTC电源域”单独画出来明确每一路电源的供电来源和切换阈值而不是让原理图里东一个电源符号西一个网络标号。因为到后面做功耗调试或者低电压测试的时候这块电路往往是最让人头疼的。4.3 纽扣电池与超级电容两种后备方案的实际权衡后备电源二选一的话大多数人会直接用CR2032纽扣电池。容量大、自放电低、比超级电容便宜而且行业成熟。它的缺点是低温性能不太行-20℃以下容量衰减很厉害而且如果电路设计没做防倒灌保护电池可能会因为充电电流导致泄漏甚至鼓包。超级电容的优势则在于充放电循环寿命长、低温特性好、没有化学电池的安全顾虑缺点也很明显单位体积容量小自放电相对较快可能撑不了几天到几周只能维持“短时断电保持时间”这类应用场景。我在实际项目里的选择标准供你参考如果产品断电保持时间要求是“按年计”就无脑选纽扣电池如果只是“撑过更换电池的三十秒”或者“撑过工厂产线短暂断电”超级电容够用还能避开电池运输和环保合规的问题。需要特别提醒的是无论用哪种后备电源RTC的VBAT电流虽然在典型情况下只有几百纳安到几微安手册上会写Timekeeping Current但加上电压监控、温度补偿功能后电流会上升计算保持时间的时候别只用典型值要按最大值估算留足裕量。5. 那些“读到错误时间”和“RTC connectionstate failed”的故障排查链路5.1 先给错误时间分一下类回零、跳变、溢出、通信失败多年看下来用户报“RTC时间不对”其实并不是同一个问题。我一般先分四类定位第一类上电后时间停留在1970年或某个固定初始值。这通常说明RTC在断电期间完全没有走时只可能是VBAT没接好、电池没电、晶振没起振、或者RTC芯片从未被正确初始化过。第二类时间会走但走着走着突然跳变。比如从2024年8月某天突然跳到2048年。这种往往是电压跌落导致RTC内部寄存器被写坏或者软件层偶尔写坏了部分寄存器但自己不知道。第三类时间走快或者走慢。这就是第3章说的ppm误差问题要往晶振、负载电容、温度环境上去查。第四类读不到RTC总线报错。这就要区分I2C/SPI物理链路问题、地址错误问题、以及RTC模块并未上电的问题。很多工程师在日志里看到“RTC connectionstate failed”这类字样第一反应是去查总线时序、上拉电阻但其实还有可能是RTC芯片自己挂了或者它的电源域没起来。“connectionstate failed”这个表述我多解释一句它通常不是一个RTC专用错误而是通信组件比如I2C初始化、网络流媒体会话、或者某些系统中的RTC连接检测在建立连接时超时或者被拒绝后报出来的状态。在RTC实时时钟的场景里如果MCU和外部RTC芯片之间通信失败驱动层往往会向上层抛类似的连接失败错误根子可能出在I2C地址配置错误、总线被死锁、或者RTC芯片进入了一种异常低功耗状态。排查时不要只盯着“connectionstate”这个字面意思它只是症状的描述不是根因。5.2 一套能复现的排查链路从万用表到逻辑分析仪我自己处理疑难RTC问题有一套固定的排查顺序分享出来给大家做个参考。整套链路大约耗时半小时到半天但比漫无目的地改软件靠谱得多。第一步确认供电。用万用表量VBAT电压断开主电源确保VBAT电压在RTC手册要求的最低工作电压之上比如至少2.0V或2.5V。很多板子的纽扣电池座是弹片式的电池放进去接触不良万用表量出来3.2V但一晃动就没电压了。建议用手指轻压电池再量一次排除接触问题。第二步确认晶振是否起振。这一点我踩过太多坑。用示波器探头点在RTC晶振引脚上观察有没有32.768kHz波形。注意探头本身带十几皮法的寄生电容可能会导致原本正常的振荡器停振所以这个测量动作本身就可能改变结果。如果手头有近场探头或者有源差分探头更好没有的话至少把探头衰减比调到10×减小负载影响。波形幅度一般在0.3V到0.8V之间不用追求峰峰值多高关键是稳定。第三步确认I2C/SPI通信是否正常。抓总线数据看ACK/NACK。这里最常见的坑是I2C地址搞错。RTC芯片的从机地址一般由引脚电平和芯片型号共同决定比如某些型号是0x32写、0x33读另一些则是0x68之类的7位地址。如果地址不对总线上的表现就是一直NACK驱动层自然报通信失败。第四步确认寄存器状态。上电初始化流程里先读振停标志位。如果振停位置1说明软件检测到了晶振异常或者上电后从未起振需要软件置“clear”位来清除这个标志再重新设置时间。之后初始化流程需要把时间写入时间寄存器写之前确认写保护是否已关闭。第五步观察运行一段时间。初始化完成、通信正常之后不要急着收工。让板子跑个12到24小时对比标准时间记录偏差漂移趋势。如果偏差稳定且线性可以用校准寄存器拉回来如果漂移跟温度变化强相关要考虑硬件温补方案或者调整设备预期的工作温度范围。5.3 最容易误判的“晶振没起振”到底是怎么发生的晶振不起振是所有RTC故障里占比最高的一种但它的成因非常多样。除了PCB贴片虚焊、晶振本体损坏之外最常见的其实是负载电容配置不对导致振荡电路的负阻Negative Resistance不够起振条件不满足。振荡器要起振必须满足巴克豪森准则环路增益大于1相位满足360°。晶振自身等效参数加上外部电容匹配不合适就会导致增益不够表现在示波器上就是“有时候能起来有时候起不来”或者温度一变就停振。这里有两个工程法则供你参考一是晶振的负载电容CL要和振荡电路设计匹配不要随意换二是如果需要提高起振可靠性可以选择带更高激励电平的晶振或者在振荡电路里适当调整反馈电阻阻值。有些RTC芯片在内部已经集成了反馈电阻和负载电容那外部就不用再乱放器件了加了反而坏事。另外一个不太为人注意的点很多RTC芯片在VBAT刚上电时会进入“频率检测”模式如果晶振没有在指定时间内起振芯片会直接进入一个低功耗状态表现为“整个RTC不响应总线”。这种情况即便你后面把主电源接上也可能需要复位一次RTC芯片或者彻底断电再上电才能恢复正常。所以调试的时候如果发现RTC“怎么都不应答”先做一次完全断电而不是反复热复位主控。5.4 时间“偶尔丢一次”的疑难杂症比一直错更让人头疼的是“偶尔丢时间”。这种问题通常和电源抖动、复位引脚毛刺、以及软件对RTC中断处理不当有关。比如主控在掉电瞬间还有一个GPIO脚没来得及配置成高阻态恰好这个GPIO连到了RTC的复位脚或中断脚导致RTC被异常复位。又比如RTC的INT/SQW引脚没有加上拉电阻在主控进入睡眠状态时引脚浮空感应噪声把RTC内部状态机打乱了。我在一个批量项目里遇到过这样的案例产品出货几百台大约有千分之三的机器会在运输途中或者客户使用一段时间后时间归零。查了很久最后发现是主板在振动过程中纽扣电池弹片和电池负极发生了瞬时接触不良而RTC芯片对VBAT的瞬间跌落非常敏感——只要低于复位阈值几十个毫秒内部逻辑就会复位时间寄存器丢得一干二净。最终解决办法是换用了带锁扣的电池座同时把RTC的电源脚上并联了一个10μF的电容形成一个短暂的掉电维持缓冲。这个案例也印证了前文那句话硬件上的接触问题比芯片本身更容易成为“灵异bug”的源头。6. 应用场景选型思路你的产品到底需要一颗什么样的RTC6.1 按精度需求和掉电保持时长匹配芯片等级市面上RTC的价格跨度从几毛钱到几十块都有不同场景的需求差异很大。我给团队做选型时习惯先把需求拆成三个维度走时精度、掉电保持时长、以及是否需要额外功能比如温度补偿、闹钟、时间戳、涓流充电等。然后再看着需求表去挑芯片而不是先看芯片再去凑需求。下面是我常用的一张选型对照表按应用场景粗分场景类别典型精度需求掉电保持时长推荐方案消费电子智能手环、小家电±20ppm~±50ppm数天到数月普通晶振RTC 纽扣电池/法拉电容智能仪表水表、电表、气表±2ppm~±10ppm按年计且低温要求高带数字补偿RTC或TCXO RTC 电池车载/行车记录±5ppm左右需要宽温小时级车规级RTC注意AEC-Q100医疗记录仪±2ppm或更高短时保持TCXO RTC注意时钟问责追溯电力/工业控制高精度温补短时保持或主备双供专用高精度RTC或独立时钟同步这个表只是起点不是标准答案。比如智能手环这类设备因为经常和手机同步时间对RTC长期精度要求并不高更多是要求低功耗和小封装而智能水表这类设备常年无网、需要靠电池撑十年掉电保持时间实际上就是“整个生命周期”必须选功耗极低且有温度补偿的型号。6.2 低功耗策略与RTC的搭配主控睡死RTC醒着从系统层面看RTC最大的存在感其实是配合主控做低功耗调度。超级经典的场景是主控在大部分时间进入深度睡眠靠RTC的闹钟中断定时“叫醒”主控让主控去采集传感器数据然后上报完继续睡。这种场景下RTC的闹钟中断输出INT引脚必须能直接唤醒主控而且RTC的时间误差会直接影响采集周期的均匀性。举一个实际例子某低功耗环境监测设备设计是每15分钟采集一次数据。如果RTC走时误差是±20ppm也就是每天快慢1.7秒那么一个月下来采集时刻相对于真实时间就会偏移大约50秒长期运行后设备上报的时间戳和平台侧的真实时间会有明显的累计误差。解决办法无非三种定期校时、选更高精度的RTC、或者在软件里做“漂移补偿调度”而不是“固定周期调度”。多数情况下第一种就够用了但要是设备部署在完全无网的偏僻位置就只能依赖第二种方案了。6.3 别忽视RTC的辅助功能闹钟、时间戳和方波输出最后谈谈那些“顺手能用”的RTC辅助功能。虽然主控完全可以用自己的定时器实现定周期唤醒但RTC的闹钟功能有一个不可替代的优势它可以在主控完全停电、甚至系统只有VBAT供电的情况下依靠内部极低功耗的计数逻辑完成条件匹配并输出脉冲。这意味着极端低功耗设备甚至可以让主控“关机”只留RTC值守到点再叫醒主控开机。这种设计常见于远程抄表、资产追踪标签这类电池供电且需要超长待机的产品。时间戳功能Time Stamp则是给“记录外部事件发生时刻”用的常见于车辆碰撞记录、工业掉电事件捕捉。带时间戳的RTC会把事件触发瞬间的时间值锁存到一组独立寄存器里避免事件发生时软件还在忙别的事情导致时间记录不准。方波输出SQW/CLKOUT就是我们常说的32.768kHz或1Hz输出可以拿来当其他外设的低速时钟源也可以当作系统心跳还能单独用来验证RTC是否在正确走时——写个简单程序读秒脉冲或者用频率计看看方波频率是否在容差内。我在调试阶段经常用这个功能快速判断RTC的硬件状态比反复用总线读时间寄存器快得多。最后分享一点个人心得做了这么多年的嵌入式开发越来越觉得RTC是一个典型的“看起来简单、做起来全是细节”的模块。它不像GPU、NPU那样有大量算力指标需要堆也不像无线协议栈那样要考虑各种状态机切换它就是一个每天都在那里默默走秒的小芯片。但正因为基础设施属性太强一旦它出了问题整个系统的上层表现都会跟着乱套。有几个忠告我想留给看到这里的读者第一原理图评审阶段就把RTC的电源域、晶振匹配、切换逻辑、电池座的机械固定都检查一遍这一步如果做扎实后面的调试周期能缩短一半以上。第二驱动初始化里一定要把“振停标志位检查”和“写保护处理”作为必做动作而不是只在调试阶段写个临时脚本去处理。很多量产后的偶发时间问题其实就是因为初始化流程没有严格处理这些标志。第三批量产品如果对时间精度有硬性要求务必在产测环节加入RTC误差测试。方法很简单产测工装给一个标准时间基准向设备写入时间后等待几分钟或几小时读取RTC时间对比误差超过阈值的板子直接隔离下线。这个方案成本很低但能挡下相当一部分由晶振批次不良或贴片焊接问题导致的时间异常主板。RTC这个领域没有什么颠覆性技术拼的就是对细节的尊重对晶振匹配曲线的尊重对电源切换阈值的尊重对寄存器标志位的尊重。把这几点做到了你的产品在时间这个问题上基本就稳了。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门