近期做一个自用设备用到了 STM32L4 的 LSE 做计时。
晶振用了某好买的 EPSON FC-135 32.768KHz 12.5pF ±20ppm。
用 3.3V 外接电源调试时一切正常,室温下计时误差在标称的 20ppm 以内。
之后换用 3.0V 电池供电,发现误差奇大(>1000ppm)。
印象中并没有“单片机电源电压会显著影响晶振频率”这样的事情,于是追加试验用 3.6V 的电池,计时精度正常。这时候意识到大概是掉了 LSE 驱动能力的坑了。
赶紧去找 AN2867 文档。
按照晶振的手册计算出 g_mcrit 大概是 2.2μA/V 左右,对应 STM32L4 系列应该要用“High driving capability”了。
检查了一下自己的程序发现没有动过 LSEDRV,默认的“Low driving capability”。
添加
[mw_shl_code=c,false]LL_RCC_LSE_SetDriveCapability(LL_RCC_LSEDRIVE_HIGH);[/mw_shl_code]
测试 3.0V 电池供电时误差正常,室温和冰箱测试都在 20ppm 以内。
一周热门 更多>