Other Parts Discussed in Thread: Z-STACK
您好!这边设计CC2530发现一些异常,当软件配置为使用外部32.768K晶振,但是实际外部这颗晶振没有焊接,只是焊接了晶振两个匹配电容,这是系统也可以正常启动,只是时间有点几秒的误差,这是什么原因导致呢,感谢!
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
SLEEPCMD &= ~OSC_PD; /* turn on 16MHz RC and 32MHz XOSC */ \
while (!(SLEEPSTA & XOSC_STB)); /* wait for 32MHz XOSC stable */ \
asm("NOP"); /* chip bug workaround */ \
for (i=0; i<504; i++) asm("NOP"); /* Require 63us delay for all revs */ \
CLKCONCMD = (CLKCONCMD_32MHZ | OSC_32KHZ); /* Select 32MHz XOSC and the source for 32K clock */ \
while (CLKCONSTA != (CLKCONCMD_32MHZ | OSC_32KHZ)); /* Wait for the change to be effective */ \
SLEEPCMD |= OSC_PD; /* turn off 16MHz RC */
/* 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但是沒有接上外部32.768K晶振應該會卡在"while (CLKCONSTA != (CLKCONCMD_32MHZ | OSC_32KHZ));"這句上建議你調試看看
但是实际还是可以向下跑,会和ZIGBEE 协议栈有关系?
剛剛的回覆有誤、應該是沒沒有接上外部32.768K晶振應該不會卡在"while (CLKCONSTA != (CLKCONCMD_32MHZ | OSC_32KHZ));",但是你會沒辦法做power saving,因為沒有外部32.768K晶振,休眠了會醒不過來
1、OSC_32KHZ是定义成0x00,不接外部32.768K晶振,可以唤醒
2、如果要使用外部32.768K晶振,该如何配置才正常呢
感谢!
要使用外部32.768K晶振就是配置#define OSC_32KHZ 0x00 /* external 32 KHz xosc */。關於不接外部32.768K晶振,可以唤醒,你是如何驗證的呢?
我们应用这样的每15秒会发一条消息个CD,CD会判断这个终端是否在线,终端操作所有的任务CD都可以收到。
终端是接著debugger調試還是燒錄firmware直接跑?
我還是怀疑你是在使用内部RC,試試在你的"#define OSC_32KHZ 0x00" 前面打個"1"在編譯看看程序看會不會有compile error.
#if !defined (OSC32K_CRYSTAL_INSTALLED) || (defined (OSC32K_CRYSTAL_INSTALLED) && (OSC32K_CRYSTAL_INSTALLED == TRUE))
1 #define OSC_32KHZ 0x00 /* external 32 KHz xosc */
#else
#define OSC_32KHZ 0x80 /* internal 32 KHz rcosc */
#endif
看來你的設置確實在使用外部32.768K晶振,照理說你沒有接上外部晶振應該是無法休眠啊,你有量一下號電流確認你的終端有進入休眠狀況嗎?
這聽起來沒道理,你要不要確認一下外部这颗晶振真的没有焊接?
你用的Z-Stack版本?測試用的是沒有修改過的原始例程呢?