我参考了TI开发包里pin standby例程,使用usleep()或者sleep()来进入standby深度睡眠模式;
同时我修改了启动文件ccfg.c的宏定义设置,把默认的LF XOSC改成了LF RCOSC,如下:
// #define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x2 //LF XOSC
#define SET_CCFG_MODE_CONF_SCLK_LF_OPTION 0x3 //LF RCOSC
改了这个设置之后,功耗下降到了差不多40uA,但是自动唤醒之后对SPI进行读写操作,发现卡死在里面了,重新对SPI初始化也没有用,请问这是什么原因呢?是还有哪些地方没有完全唤醒吗?
Viki Shi:
#define SET_CCFG_MODE_CONF_SCLK_LF_OPTION0x3//LF RCOSC改成内部RC
低频用内部RC, 要求:1. CC1310芯片要rev B以后版本,2. RTOS要v2.16.01.14 以上版本,看一下是否符合
wei zhang36:
回复 Viki Shi:
芯片是rev B以后的版本,RTOS的话目前用的SDK版本是1.50.00.08 (28 Sep 2017)
Viki Shi:
回复 wei zhang36:
1.50版的SDK使用的RTOS是3_30_00_13,版本没有问题。那怀疑是软件设置方面的问题,建议参考下TI文档: www.ti.com.cn/cn/lit/ug/swra486/swra486.pdf
da qin zheng sheng:
spi波特率有多大?可以用示波器测量唤醒后的波形对比一下。
wei zhang36:
回复 Viki Shi:
SSI重新使能一下就可以了
Viki Shi:
回复 wei zhang36:
OK,果然是软件部分的问题