今天焊接CC2530,其中有个模块下载程序(协议栈程序),无法创建也无法加入网络。
第一步先检查32MH 晶振是否启动,用basice 程序看uart,发现可以正常打印log。
第二步,在线调试,看看程序跑到那里了。
MAC_RADIO_TIMER_WAKE_UP();
在看里面果然有while 循环
#define MAC_RADIO_TIMER_WAKE_UP() st( HAL_CLOCK_STABLE(); T2CTRL |= (TIMER2_RUN | TIMER2_SYNC); while(!(T2CTRL & TIMER2_STATE));
/* 32 kHz clock source select in CLKCONCMD */ #if !defined (OSC32K_CRYSTAL_INSTALLED) || (defined (OSC32K_CRYSTAL_INSTALLED) && (OSC32K_CRYSTAL_INSTALLED == TRUE)) #define OSC_32KHZ 0x80 /* external 32 KHz xosc */ #else #define OSC_32KHZ 0x00 /* internal 32 KHz rcosc */ #endif #define HAL_CLOCK_STABLE() st( while (CLKCONSTA != (CLKCONCMD_32MHZ | OSC_32KHZ)); )
现在怀疑是32K晶振问题了,把 32K晶振宏定义修改一下,如上面的code。正常启动创建网络。
debug 问题完毕。 这个板子32k 晶振出现问题主要是我过孔被焊锡堵上了,在焊接的时候烙铁接触晶振时间太长了。
这个也是目前见到唯一一个32k晶振出现问题的例子