ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

国产RTC芯片D85163实战:从选型、驱动到量产的低功耗设计指南

2026/9/12 20:51:51 拓冰建站 浏览量
国产RTC芯片D85163实战:从选型、驱动到量产的低功耗设计指南 做嵌入式设备特别是电池供电的仪表、记录仪、门禁这类产品RTC选型从来不是随便找个芯片就完事。前几年大家习惯用DS1302接口费IO、还得外挂晶振和电池后来流行PCF8563I²C总线省IO、功耗也低但这两年供货和价格让人头疼。我最近一个智能温湿度记录仪项目里换用了国产的D85163——一颗高精度、低功耗、带I²C接口的实时时钟/日历芯片和8563管脚兼容、寄存器也基本兼容直接替换几乎没有改动。这篇文章就把我在这个项目里从选型、硬件设计、驱动移植到量产踩坑的完整过程整理一遍给自己做记录也给正在做同类方案的工程师一个参考。1. D85163解决的是什么问题从DS1302到国产I²C RTC的选型账1.1 为什么项目最终选了I²C接口的RTC记录仪项目的MCU用的是Cortex-M0内核资源很紧张GPIO一共就十几个脚还要接温湿度传感器、LCD段码屏、按键和通信口。如果RTC用DS1302那种三线接口光是CE、SCLK、IO三条线就占掉三个IO而且DS1302数据手册里写的最大2.0V~5.5V工作电压实际在3.3V系统里做通信时序也要小心代码写起来不如标准I²C顺手。D85163这类I²C RTC的优势非常直接SDA和SCL两根线可以和其他I²C器件挂在同一条总线上MCU端只需要两个IO软件上用现成的硬件I²C外设或者GPIO模拟都行。我在项目里把温湿度传感器和RTC挂在同一组I²C上总线上三个器件地址互不冲突布线也简单不少。选D85163之前我对比过几个型号实话说纠结了一段时间型号接口典型待机电流封装形式供货/成本我的判断DS1302三线串行约300nA电池模式SOP8/DIP8老料假货多接口占IO代码老PCF8563I²C约250nA电池模式SOP8/TSSOP8大牌但近年缺货涨价功能均衡但采购不确定性大RX8025I²C约300nA电池模式SOP8精度高价格偏高带温度补偿预算紧时舍不得D85163I²C约250nA~500nA典型SOP8/TSSOP8国产现货足性价比高兼容8563替换成本最低最终选D85163的原因其实就是三点管脚和寄存器兼容PCF8563原方案改动量小功耗指标在微安级别以下满足记录仪一年不换电池的需求国产现货渠道稳定不用担心被大厂停产或缺货卡脖子。1.2 D85163的核心功能拆解这颗芯片的本质是一个带日历功能的实时钟内部有振荡电路、分频链、寄存器组和I²C从机接口外部只需要一颗32.768kHz的晶振和一颗备用电池就能在主系统掉电后继续走时。它的完整功能列表大概是这些完整日历秒、分、时、日、星期、月、年自动闰年补偿年份范围到2099年可编程时钟输出CLKOUT引脚可以输出32.768kHz、1024Hz、32Hz、1Hz四种频率既能给外部提供基准时钟也能用来校准双闹钟机制支持分钟/小时/日/星期组合匹配的闹钟中断可编程定时器4种时钟源支持从1/60Hz到4096Hz做周期唤醒很省事低电压检测秒寄存器最高位VL会记录振荡器停振或掉电事件系统启动时能判断时间数据是否可信64字节RAM部分批次掉电后由电池供电保持可以存一些设备参数SOP8封装管脚分布很常规X1和X2接晶振VBAT接备用电池GND接地SDA和SCL接I²C总线INT是开漏中断输出VDD接主电源。没有多余的脚所以布局设计也很直接。1.3 电气参数里需要重点关注的几项我在选型时把数据手册里的关键参数圈了出来这些是直接影响系统设计的地方工作电压范围1.0V~5.5V意味着主电源掉到很低的电压时芯片仍能靠备用电池继续工作时钟保持电流典型值0.25µA~0.5µA这是电池寿命估算的基础I²C时钟频率支持100kHz和400kHz两种模式我们用100kHz可靠性和抗干扰都更好I²C从机地址写地址0xA2读地址0xA37位地址是0x51中断输出INT是开漏低有效必须外接上拉电阻才能输出有效电平这些参数看起来简单但实际项目里每一条都能引出坑。比如工作电压下限是1.0V配合纽扣电池的放电曲线意味着电池电压跌到1.2V左右都还能保持走时这比很多标称2.0V的芯片要好很多能用更长时间。2. 硬件设计的关键细节晶振、电池切换与I²C总线2.1 晶振选型和PCB布局的实操建议D85163的走时精度几乎完全取决于外部32.768kHz晶振芯片本身只是提供一个振荡放大电路。晶振选型我在项目里走了点弯路最开始随便买了便宜的圆柱晶振结果批量测试发现部分板子时间误差偏大后来换成了贴片封装、负载电容12.5pF、ESR小于50kΩ的晶振情况才稳定。选晶振有三个参数必须看负载电容晶振规格书上会标注比如12.5pF。PCB上需要在X1和X2引脚对地各加一个电容容值按负载电容的两倍左右估算我实际用两个22pF对地电容效果很好等效串联电阻ESR这是最容易忽略的晶振ESR太大芯片内部振荡电路驱动不起来会出现“I²C能读写但时间不走”的怪故障。建议选ESR小于60kΩ的频率精度和温度系数普通晶振±20ppm对应一天误差约1.7秒如果产品要求月误差小于30秒就得用±5ppm的温补晶振或者像我后面第6章写的用软件校准PCB布局上晶振和两个负载电容要尽量靠近D85163的X1、X2引脚走线要短而且要对称晶振正下方不要铺大块地铜否则寄生电容会改变实际振荡频率。还要避免晶振走线旁边有I²C、SPI这类高速翻转的信号线容易引入耦合噪声导致时钟抖动。2.2 电池切换电路VDD、VBAT到底怎么接D85163内部有电源切换逻辑正常情况下由VDD供电VDD掉电后自动切换到VBAT。外部电路看起来很简单VDD接3.3V主电源VBAT接纽扣电池正极两个引脚各加一个0.1µF电容电池负极和GND共用。但这里有个容易忽略的问题——VBAT引脚上的电容不能太大。我在第一版设计里加了1µF的钽电容到VBAT结果电池在刚上电时会给这个电容充很久的电流把纽扣电池的瞬时电压拉得很低。虽然D85163本身工作电压下限低但如果在那个瞬间恰好触发掉电检测VL标志会被置1导致系统误判时间数据无效。后来把VBAT电容改成0.1µF问题就消失了。还有一点如果主电源VDD是从可插拔的电池供电而VBAT接的是纽扣电池那么当主电池拔掉的瞬间VDD引脚会迅速降到0V而VBAT还是有电的。此时要确保SDA、SCL、INT这几个引脚不会通过MCU内部二极管反向倒灌电流到VDD。解决办法是在MCU和RTC之间串接1kΩ电阻或者在主电源上加一个几十µF的储能电容保证掉电瞬间VDD电压缓慢下降给芯片足够的切换时间。2.3 I²C上拉电阻怎么选中断线怎么接D85163的SDA和SCL是开漏输出必须外接上拉电阻。很多人图省事直接接了10kΩ结果总线长度一长或者总线上挂的器件一多通信就偶发错误。I²C总线的上升沿时间由RC决定R是上拉电阻C是总线寄生电容公式是t_rise ≈ 0.8473 × R × C。我在项目里实测过总线上挂了温湿度传感器和RTCPCB走线长度大约10cm总线电容大概100pF~150pF。100kHz模式下用4.7kΩ上拉完全没问题波形上升沿干净利落如果用10kΩ上升沿明显变缓偶尔会出现从机NACK。如果总线更长或者上了400kHz就要用2.2kΩ甚至1kΩ。INT中断引脚同样是开漏输出需要外接上拉电阻到MCU的VDD我用的是10kΩ。注意INT上拉不要接到备用电池的VBAT上否则电池会额外消耗电流本来休眠功耗零点几微安被上拉电阻吃掉几微安很不划算。2.4 原理图里容易抄错的管脚处理有些工程师习惯把没用的输入引脚直接接地这在D85163上行不通。比如CLKOUT如果不用设为禁用后可以悬空不要强行接地。VF和测试相关的寄存器位在正常工作时必须保持默认值不能随意改动否则芯片可能进入测试模式时钟输出和中断逻辑都会异常。我第一次画原理图时完全照抄了PCF8563的参考设计结果特意把CLKOUT悬空了后来发现D85163有的批次上电后CLKOUT默认输出32.768kHz白白增加功耗。这个在驱动初始化里必须显式关闭我在第3章会给出具体代码。3. 寄存器体系和驱动移植读时间、写时间、闹钟一次说清3.1 寄存器地图核心地址和关键标志位D85163的寄存器结构和PCF8563基本一致都是从0x00到0x0F每个寄存器存一个时间字段的BCD码。我整理了一张最常用的寄存器表写驱动时对照着用地址寄存器名关键位说明取值/含义0x00控制/状态1bit7 TEST1bit5 STOPbit0 TESTCSTOP1时振荡器停止0x01控制/状态2bit6 TIbit5 AFbit4 TIEbit3 AIE中断标志和使能0x02秒bit7 VLVL1表示掉电或停振时间无效0x03分无BCD格式00~590x04时无BCD格式00~2324小时制0x05日无BCD格式01~310x06星期无BCD格式00~060x07月/世纪bit7 C世纪位月BCD格式01~120x08年无BCD格式00~990x09分钟闹钟bit7 AEAE1忽略分钟比较0x0A小时闹钟bit7 AEAE1忽略小时比较0x0B日闹钟bit7 AEAE1忽略日比较0x0C星期闹钟bit7 AEAE1忽略星期比较0x0DCLKOUT控制bit7 FEbit6~5 F2F1F2F100输出32.768kHz11输出1Hz0x0E定时器控制bit7 TEbit4~2 TFSTFS010选1Hz时钟源0x0F定时器倒计数值无从设定值倒计数到0最需要注意的是0x02秒寄存器最高位VL。芯片第一次上电或者备用电池掉过电VL会被置1此时读出来的时间数据不可信。驱动程序启动时先读这个标志如果为1就得通知上层重新校时而不能闷头用错误时间。3.2 I²C读写时序连续读写是省事的关键D85163支持I²C连续地址读写这是驱动设计里最值得利用的一点。读时间时先发一个字节的起始寄存器地址0x02然后重新发送起始信号和读地址一次连续读7个字节就能把秒、分、时、日、星期、月、年全部读回来不用每个寄存器单独读一次。这里有三个工程细节第一连续读寄存器时芯片内部地址会自动递增所以不用担心读到重复字节。第二读时间可能发生在秒的进位瞬间比如读的时候正好从23:59:59跳到00:00:00那一帧数据可能混着前后两个秒的状态。我的处理方法是读完之后再单独读一次秒寄存器如果两次秒值不一致就整帧重读直到两次一致为止。第三时间字段都是BCD码比如0x35表示35秒不能直接当十六进制数用驱动里要做BCD转二进制的处理。3.3 驱动代码可以直接抄的基础函数下面这份代码是我在项目里实际用的简化版用硬件I²C外设可以直接参考。首先是BCD转换和结构体定义#define D85163_ADDR_W 0xA2 #define D85163_ADDR_R 0xA3 typedef struct { uint8_t sec; uint8_t min; uint8_t hour; uint8_t day; uint8_t weekday; uint8_t month; uint8_t year; } rtc_time_t; static uint8_t bcd_to_bin(uint8_t bcd) { return (bcd 0x0F) ((bcd 4) * 10); } static uint8_t bin_to_bcd(uint8_t bin) { return ((bin / 10) 4) | (bin % 10); }读取当前时间void rtc_read_time(rtc_time_t *t) { uint8_t buf[7]; uint8_t sec_check; do { i2c_start(); i2c_write_byte(D85163_ADDR_W); i2c_write_byte(0x02); // 起始寄存器地址 i2c_stop(); i2c_start(); i2c_write_byte(D85163_ADDR_R); for (int i 0; i 7; i) { buf[i] i2c_read_byte(i 6 ? 0 : 1); // 最后一字节NACK } i2c_stop(); sec_check rtc_read_reg(0x02); // 再读一次秒确认没有跨秒 } while ((buf[0] 0x7F) ! (sec_check 0x7F)); t-sec bcd_to_bin(buf[0] 0x7F); t-min bcd_to_bin(buf[1] 0x7F); t-hour bcd_to_bin(buf[2] 0x3F); t-day bcd_to_bin(buf[3] 0x3F); t-weekday bcd_to_bin(buf[4] 0x07); t-month bcd_to_bin(buf[5] 0x1F); t-year bcd_to_bin(buf[6]); }设置时间时分两步走先把振荡器停掉避免写入过程中秒边界跳动导致数据冲突写完再启动。这里用到了0x00寄存器bit5的STOP位void rtc_set_time(rtc_time_t *t) { uint8_t buf[8]; uint8_t ctrl rtc_read_reg(0x00); ctrl | 0x20; // STOP1停振 rtc_write_reg(0x00, ctrl); buf[0] 0x02; buf[1] 0x00; // 秒写0同时清VL标志 buf[2] bin_to_bcd(t-min); buf[3] bin_to_bcd(t-hour); buf[4] bin_to_bcd(t-day); buf[5] bin_to_bcd(t-weekday); buf[6] bin_to_bcd(t-month); buf[7] bin_to_bcd(t-year); rtc_write_bytes(buf, 8); // 从0x02开始连续写7字节 ctrl rtc_read_reg(0x00); ctrl ~0x20; // STOP0启动振荡器 rtc_write_reg(0x00, ctrl); }闹钟配置的代码也不复杂重点是AE位的用法。下面这段是每天早上8点30分触发闹钟中断日、星期不参与匹配void rtc_alarm_config(uint8_t hour, uint8_t min) { uint8_t buf[5]; buf[0] 0x09; buf[1] bin_to_bcd(min); // 分钟闹钟 AE0匹配 buf[2] bin_to_bcd(hour); // 小时闹钟 AE0匹配 buf[3] 0x80; // 日闹钟 AE1忽略 buf[4] 0x80; // 星期闹钟 AE1忽略 rtc_write_bytes(buf, 5); // 使能闹钟中断 AIE1 uint8_t st rtc_read_reg(0x01); st | 0x08; rtc_write_reg(0x01, st); }中断处理函数里读0x01寄存器判断bit5的AF标志读完后标志自动清零void rtc_irq_handler(void) { uint8_t st rtc_read_reg(0x01); if (st 0x20) { // 闹钟触发做对应处理 } if (st 0x40) { // 定时器触发 } rtc_write_reg(0x01, st 0x0F); // 清中断标志保留使能位 }3.4 写时间时最容易犯的错秒清零和STOP位很多人写驱动时不管STOP位直接把时间字段写进去就完事。这在大多数情况下能工作但如果写入动作正好赶上秒从59跳到00的瞬间时、分、秒三个字段可能出现新老混合时间就乱了。我习惯的设置流程是“停振→写时间→启动”写秒寄存器时直接写0x00把STOP位和VL标志一次性处理干净。这样做还有一个附带好处校时的时候秒从0开始走后面误差计算时更容易对齐参考源。设置完时间后还要验证一遍读回时间再和设定值对比防止I²C通信过程中出现错位。这个验证步骤在量产产线上特别有用能提前筛出一批通信有隐患的板子。4. 低功耗实测从微安级电流到电池寿命的完整估算4.1 实测电流数据不同模式下差距很大低功耗是这颗芯片的卖点但“低功耗”三个字必须靠实测数据说话。我在项目里用万用表串联在VBAT和纽扣电池之间测了几种状态下的实际电流工作状态实测电流常温25°C说明VDD正常供电芯片待机约0.6µA走时正常I²C空闲VDD掉电VBAT电池保持约0.35µA晶振继续振荡寄存器保持CLKOUT使能输出1Hz约1.1µA比禁用时多约0.75µACLKOUT使能输出32.768kHz约4.2µA驱动外部负载时更大I²C上拉漏电MCU掉电且引脚被拉低每条线约330µA这是灾难级漏电必须避免CLKOUT那两行数据最能说明问题如果初始化时忘了关CLKOUT而且默认输出还是32.768kHz那么电池电流会从0.35µA直接跳到4µA以上相差超过10倍。对于设计寿命按年计算的产品这个差别是致命的。4.2 电池寿命计算公式、实测值和现实约束用CR2032纽扣电池标称容量220mAh实际可用容量按85%估算约187mAh。D85163在VBAT模式实测0.35µA晶振和PCB漏电流再算0.15µA合计约0.5µA。理论待机时间 187mAh ÷ 0.0005mA 374000小时 ≈ 42.7年。看到这个数字先别高兴42年是理想值现实里有三个因素会把它拉低纽扣电池自放电CR2032在常温下的自放电率大约是每年1%~2%也就是说就算完全不接负载10年后电量也可能损失20%~30%温度影响电池在高温下自放电加快在低温下容量下降实际户外设备的电池寿命往往只有理论值的一半外部漏电路径PCB上助焊剂残留、VBAT引脚旁路电容漏电、MCU端口反向漏电每一项都可能比RTC本身电流还大所以我在设计方案时给客户的承诺是“换一次电池保证走时3年”而不是拿理论值说事。实际测试中一个全新的CR2032搭配D85163存放6个月后电压从3.0V降到2.9V左右按这个速率满足3年设计寿命绰绰有余。4.3 低功耗设计里最隐蔽的三个漏电路径第一个漏电路径是I²C上拉电阻接错电源。如果把SDA和SCL的上拉电阻接到了VBAT一侧那么在MCU完全断电但电池仍在供电时这两个上拉电阻会一直消耗电流。两个10kΩ电阻从3V电池拉到地就是0.6mA比RTC本身大了一千倍。正确做法是上拉电阻接主电源VDD主电源没了这条漏电路径自然断开。第二个漏电路径是VBAT引脚上的电容太大。前面提过我用1µF电容时电池上电瞬间的充电电流很大虽然这个电流不会持续但如果系统频繁重启每次都要给电容充电日积月累也会消耗额外电量。0.1µF足够满足去耦需求没必要用大电容。第三个漏电路径是PCB表面污染。晶振引脚旁边的助焊剂如果没有清洗干净在潮湿环境下会产生微安级的表面漏电流直接影响振荡器的工作状态。量产的板子建议做一次超声波清洗或者选免清洗助焊剂并严格控制工艺。5. 装机调试踩过的坑四个典型故障的完整排查链路5.1 时间不走但I²C读写都正常这个现象最迷惑人——寄存器能读能写秒寄存器读出来也不是0但数值就是不变。我第一次遇到时以为是芯片坏了换了一片还是一样才开始认真排查。排查链路是这样的先用示波器看X1引脚有没有32.768kHz波形结果完全没有。再看0x00寄存器STOP位是0说明不是软件停振。接着用示波器探头直接夹在X1引脚上波形竟然出来了但手一松马上又消失。到这里我基本确定是振荡器驱动能力不足外部负载把振荡电路吃死了。问题根源在晶振负载电容。我最初按12.5pF负载电容的晶振配了两个20pF对地电容加上PCB走线寄生电容实际负载超过了晶振设计要求导致负性阻抗不足振荡器起振困难。解决办法是把两个对地电容换成6.8pFX1引脚波形稳定输出秒寄存器正常跳动。这个坑给我的教训是晶振负载电容不能只按“两倍负载电容”的公式机械套用还要考虑PCB寄生电容和芯片引脚电容。实际调试时最好用示波器确认波形幅度和起振时间而不是只看能不能读写寄存器。5.2 断电后时间丢失VBAT电压不正常的排查过程板子在实验室里一切正常但现场反馈说每次断电重启后时间都回到2024年1月1日。拿到板子后我先检查VL标志确实是1说明备用电池没有起作用。用万用表量VBAT引脚电压只有0.8V而纽扣电池直接量是3.0V。这说明电池到VBAT引脚之间有不正常压降或者VBAT引脚在漏电。断开电池、量VBAT对地阻抗只有几百欧姆明显不对。顺着线路查发现我在PCB布局时把VBAT的走线从晶振底下穿过去了PCB厂家做板时在晶振焊盘和VBAT走线之间产生了轻微的助焊剂残留加上板子没清洗形成了漏电阻。把VBAT走线绕开晶振区域重新打样后问题消失。从那以后我在原理图评审阶段就强制要求晶振信号和VBAT、VL这类模拟敏感信号不能平行走线距离至少保持0.5mm以上晶振下方禁止走其他信号线。5.3 闹钟不触发AE位配置错误和中断标志未清闹钟不触发是RTC项目里最经典的问题D85163和PCF8563都一样。我调试时设置8:30闹钟结果到点了一点反应都没有。先检查0x01寄存器的AIE位是1使能没问题。再看INT引脚电平一直为高说明中断根本没有产生。那就只能怀疑闹钟匹配条件不对。重新读0x09到0x0C的闹钟寄存器发现我把“分钟闹钟”和“小时闹钟”写成了匹配但“日闹钟”和“星期闹钟”忘了置AE1导致芯片要求“日”和“星期”同时匹配才触发闹钟。而我们只设了时间日期的某些字段可能根本不可能匹配到所以闹钟永远不触发。修复很简单日闹钟寄存器写0x80星期闹钟寄存器写0x80把AE位置1表示忽略这两个字段。改完第二天早上8:30中断准时触发。另外还有一个低级错误要注意中断触发后如果不在ISR里读0x01清标志AF会一直保持导致中断引脚持续拉低看起来像闹钟一直在触发。正确做法是每次处理完都读一次0x01再写回低字节保留使能位。5.4 I²C通信偶发NACK总线电容和上拉电阻的博弈这个问题是在批量测试时发现的大约有千分之几的板子在发送读命令后会收到NACK重试一次又好了。用逻辑分析仪抓波形发现SDA的上升沿非常平缓超过了芯片手册规定的最小时序要求。排查过程是先换芯片问题依旧再查PCB走线发现RTC的SDA和SCL走线从LCD排线下面穿过形成了几十pF的寄生电容。原来100kHz模式下用10kΩ上拉没问题现在总线电容翻倍上升沿时间就超了。解决方式是双管齐下上拉电阻从10kΩ改成4.7kΩ同时把SDA和SCL走线挪到PCB顶层避开LCD排线区域。改完后批量测试一千片I²C通信零失败。这个经验后来也应用到其他I²C器件上总线越长、挂载器件越多上拉电阻就要相应减小不能死守同一个阻值。6. 从样机到量产精度校准、老化测试与固件联调经验6.1 晶振误差的实测影响和软件校准方法D85163自身只有秒级计时能力走时精度完全取决于外部晶振。我用的晶振标称±20ppm常温下实测一批10片板子误差分布大概在-15ppm到15ppm之间换算成日误差约±1.3秒。如果产品允许的日误差是±2秒那可以不校准。但记录仪项目要求一个月内时间误差小于1分钟也就是日误差要控制在±2秒以内虽然理论上勉强满足但晶振老化后很容易超标。所以我加了软件校准功能。校准原理很简单芯片的CLKOUT可以输出1Hz信号用频率计测这个1Hz信号的实际频率就能算出晶振的真实偏差。比如实测1Hz信号实际是1.000018Hz说明芯片走快了18ppm每天快约1.55秒。软件里定义一个校准值单位是ppm存到Flash里。每次RTC更新到整分钟时根据校准值修正本地时间。注意这种方法只能做线性补偿补偿不了温度变化但如果产品工作环境温度相对稳定效果还是很好的。6.2 量产阶段的几项必要测试量产板子不能只测功能还得专门针对RTC做几项测试否则问题会在客户现场才暴露校时精度测试产线统一写入标准时间存放24小时后读出时间误差超过阈值就判不良断电走时测试断电后静置一段时间重新上电检查时间和VL标志确保备用电池通路正常CLKOUT功能测试利用芯片输出1Hz信号产线用频率计检测晶振是否起振、频率是否正常高温老化抽测65°C环境下运行72小时检查时间误差是否漂移出规格其中断电走时测试最容易被忽略但它能一次性验证电池座接触、VBAT焊接质量、晶振起振可靠性和VL标志逻辑。6.3 固件联调中的几个关键提示最后补充几个固件层面的经验都是在联调阶段踩过坑后总结出来的启动时不要急着读时间D85163上电后要留几毫秒让振荡器建立稳定我一般至少延时5ms再操作寄存器每次校时前先读一次时间如果秒值不为0先把它调整到0再写入这样能减少时间切换的跳变误差闹钟中断优先级要设置好RTC中断里只置标志位不要让ISR里做耗时操作否则可能丢失中断如果MCU本身有低功耗模式RTC闹钟中断要用上升沿或下降沿唤醒INT引脚默认在闹钟触发时拉低所以用下降沿唤醒最方便这批记录仪量产了三千多台RTC相关的售后返修率控制在千分之一以下说明D85163这颗芯片在实际项目里是稳的。做嵌入式硬件最怕的就是小众芯片资料少、出了问题没人能回答好在这颗芯片和PCF8563的生态完全打通网上能搜到的8563经验都能直接用遇到问题还能对比着查数据手册。如果非要说一个最深的体会那就是RTC这类“不起眼”的小芯片往往要等项目走到量产、走到售后阶段才能看出当初选型时花的功夫值不值得。