在对协调器进行串口升级时,是一定要使用外部晶振吗? 在进行SBL时,在应用程序内有一句:0SC32K_CRYSTAL_INSTALLED=FALSE,只要注释掉就可以升级成功,而如果加上了这句似乎转到应用程序运行后功能都不正常,想请教这是什么原因呢
Viki Shi:
请参考这边的类似问题: e2e.ti.com/…/780159
gaoyang9992006:
你这个问题属于:板子没有焊接32K晶振导致板子工作不稳定
解决办法:
找到hal_board_cfg.h,打开,找到这个地方。。。。
/* 32 kHz clock source select in CLKCONCMD */
#if !defined (OSC32K_CRYSTAL_INSTALLED) || (defined (OSC32K_CRYSTAL_INSTALLED) && (OSC32K_CRYSTAL_INSTALLED == TRUE))
#define OSC_32KHZ 0x00 /* external 32 KHz xosc */
#else
#define OSC_32KHZ 0x80 /* internal 32 KHz rcosc */
#endif
看定义,应该是如果定义OSC_32KHz 为0x00的话,就用32K外部晶振,要是0x80,就用内部的。
那好,解决办法1:把这个地方的0x00改成0x80.别的地方不用动,下载程序试试看可以了吧?
解决办法2:define一下OSC32K_CRYSTAL_INSTALLED
两种办法都是逼着协议栈用内部32K的RC振荡器。
想搞清楚协议栈里面到底怎么用了OSC_32KHz,就自己找找代码,我不说了。