最近,在项目交付过程中,我们遇到了一个有趣的问题,与大家分享一下。
客户的需求是:在KL15电压上电后,MCU需要在200ms内发送出第一包CAN报文数据。然而,实际测试结果显示,软件需要360ms才能发送出第一包数据。
经过测量,从KL15上电到MCU 3.3V电压稳定,耗时75.5ms。
而MCU在3.3V电压输出第一包CAN报文耗时304ms。
此外,MCU软件从BOOT启动到APP启动耗时60ms。
理论上,这些时间加起来不应超过140ms,那么多余的220ms究竟来自哪里呢?
进一步调查发现,外部晶振在3.3V电压稳定后的281ms才开始正常工作。
最终测试发现,表面上看似晶振起振慢,实际上是由于看门狗在启动阶段一直拉低MCU的RESET脚,从而影响了晶振的起振速度。
根据使用的硬件看门狗芯片的特性,首次上电后的100~300ms内,实测结果显示会在200+ms的时间里处于拉低状态。