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

CC2538 从PM2唤醒后不工作

您好:

        我在调试CC2538低功耗程序时,让它进入PM2模式后再用睡眠定时器唤醒它,测试发现睡眠结束后CC2538的电流变大、32MHz的晶振也起振了,但是此后它不再执行程序。同样的程序让它进入PM1模式唤醒后就能正常工作,我想问程序中是缺少了什么配置吗?编译器用的是GCC。

HG:

http://www.deyisupport.com/question_answer/wireless_connectivity/zigbee/f/104/t/120669.aspx

dongwang su:

回复 HG:

您好:我一直用的是外部32.768的晶振,运行时系统时钟跟IO时钟都是16 MHz,问题点跟上面帖子不同。CC2538 的低功耗中对于PM1和PM2两种模式需要不同的配置吗?怎样配置呢,此问题困惑小弟许久,乞求指点一二。

Min Chen6:

您好,我能请问一下,您程序里进入休眠模式的时间是怎么延长的。若使用osal_start_timerEx最大只能睡眠65s,我想设置更长时间的睡眠!还有就是休眠模式是直接在hal_sleep.c文件里修改宏值吗  (static uint8 halPwrMgtMode = HAL_SLEEP_TIMER;)

dongwang su:

回复 Min Chen6:

先把 SMWDTHROSC 寄存器中的值读出,再把该值加上一个睡眠的时间长度值后写入 SMWDTHROSC 寄存器即可,它是一个32位的寄存器,一次可以定时很长的

Min Chen6:

回复 dongwang su:

那就不用 osal_start_timerEx函数吗,那通过什么命令让芯片进入休眠?而且睡眠的时间长度是什么,一个单位代表1ms吗?最重要的是 SMWDTHROSC这是个什么东西啊,怎么百度搜不到?,大神,谢谢了,我基础不好。

dongwang su:

回复 Min Chen6:

我的问题还没解决,没用过你说的函数,通过wfi命令让它进入休眠的,具体请参照官方手册吧。如果用32.768的晶振的话,32768代表1秒

赞(0)
未经允许不得转载:TI中文支持网 » CC2538 从PM2唤醒后不工作
分享到: 更多 (0)