TI中文支持网
TI专业的中文技术问题搜集分享网站

CC2530: 外部32.768K晶振疑问

Part Number:CC2530Other Parts Discussed in Thread: Z-STACK

您好!这边设计CC2530发现一些异常,当软件配置为使用外部32.768K晶振,但是实际外部这颗晶振没有焊接,只是焊接了晶振两个匹配电容,这是系统也可以正常启动,只是时间有点几秒的误差,这是什么原因导致呢,感谢!

YiKai Chen:

感覺你的软件沒有正確配置为使用外部32.768K晶振

,

Unknown Unknown23:

感谢您的回复,在配置上有什么特需?,基本都是按官网例程来的,谢谢!

,

Kevin Qiu1:

你使用的是哪个例程,将晶振部分的配置代码传上来

,

Unknown Unknown23:

  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 */  

,

YiKai Chen:

查一下你的OSC_32KHZ定義是什麼?

,

Unknown Unknown23:

/* 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

,

YiKai Chen:

如果你OSC_32KHZ定義是0x00但是沒有接上外部32.768K晶振應該會卡在"while (CLKCONSTA != (CLKCONCMD_32MHZ | OSC_32KHZ));"這句上建議你調試看看

,

Unknown Unknown23:

但是实际还是可以向下跑,会和ZIGBEE 协议栈有关系?

,

YiKai Chen:

剛剛的回覆有誤、應該是沒沒有接上外部32.768K晶振應該不會卡在"while (CLKCONSTA != (CLKCONCMD_32MHZ | OSC_32KHZ));",但是你會沒辦法做power saving,因為沒有外部32.768K晶振,休眠了會醒不過來

,

Kevin Qiu1:

改成while (CLKCONSTA != (CLKCONCMD_32MHZ &OSC_32KHZ));看能否继续往下执行

,

YiKai Chen:

Kevin Qiu1 因為他的OSC_32KHZ是定義成0x00,所以改成while (CLKCONSTA != (CLKCONCMD_32MHZ &OSC_32KHZ));應該還是能继续往下执行

,

Unknown Unknown23:

1、OSC_32KHZ是定义成0x00,不接外部32.768K晶振,可以唤醒

2、如果要使用外部32.768K晶振,该如何配置才正常呢

感谢!

,

YiKai Chen:

要使用外部32.768K晶振就是配置#define OSC_32KHZ  0x00 /* external 32 KHz xosc */。關於不接外部32.768K晶振,可以唤醒,你是如何驗證的呢?

,

Unknown Unknown23:

我们应用这样的每15秒会发一条消息个CD,CD会判断这个终端是否在线,终端操作所有的任务CD都可以收到。

,

YiKai Chen:

终端是接著debugger調試還是燒錄firmware直接跑?

,

Kevin Qiu1:

对的,在OSC_32KHZ定義成0x00时&和I的效果是一样的,可以正常唤醒我怀疑是在使用内部RC

,

Unknown Unknown23:

烧录文件,没有接debugger

,

YiKai Chen:

我還是怀疑你是在使用内部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

,

Unknown Unknown23:

,

YiKai Chen:

看來你的設置確實在使用外部32.768K晶振,照理說你沒有接上外部晶振應該是無法休眠啊,你有量一下號電流確認你的終端有進入休眠狀況嗎?

,

Unknown Unknown23:

确定进入睡眠了,电流几UA级别

,

YiKai Chen:

這聽起來沒道理,你要不要確認一下外部这颗晶振真的没有焊接?

,

Unknown Unknown23:

我们也觉得不可思议,我亲眼所见,确实是没焊接

,

Kevin Qiu1:

根据现象和误差来看应该是启用了内部RC,你将外部晶振焊上再测下误差看看

,

Unknown Unknown23:

焊上外部晶振后就没有误差了

,

YiKai Chen:

你用的Z-Stack版本?測試用的是沒有修改過的原始例程呢?

赞(0)
未经允许不得转载:TI中文支持网 » CC2530: 外部32.768K晶振疑问
分享到: 更多 (0)

© 2025 TI中文支持网   网站地图 鲁ICP备2022002796号-1