前言
前一阵子,因为项目需要设计低功耗无线传输方案,做物联网的传感器数据采集设备,在调试的时候,遇到很多坑,故记录并分享。单片机平台对比过STM8、MSP430、STC8051、STM32最后确定MSP430的功耗最低,切性能符合要求,因此选择MSP430单片机平台,无线方面因为之前我用过SI4432芯片做数据收发,而且这款芯片待机电流只有400nA,最低可降到10nA。所以最终确定使用MSP430+SI4432的方案作为设备端的方案。
在调试的过程中,确实遇到挺多问题的,如下逐一记录并分析,提供解决方案。
MSP430的VLO时钟精度问题
MSP430的内部时钟系统一般有DCO和VLO,DCO可以调节频率,可以配置成16MHz,使MSP430的CPU达到全速运行的状态,但是功耗相对较大;使用而VLO时钟的功耗较小,不到1uA。
官方手册的寄存器手册上说明VLO时钟范围是4KHz到20KHz,典型值12KHz,实际测试这个频率误差大,随时间变化也很大,如果用来给定时器提供时钟的话,会导致定时时间误差很大。本人实测,在室温28摄氏度时用手指给单片机加热,VLO频率会改变大致1KHz左右,为了解决这个问题,TI官方出了一个库,通过DCO时钟来计算VLO时钟的频率,从而矫正定时器的定时时间。
如下: