Part Number:CC1312ROther Parts Discussed in Thread:CC1310, ENERGYTRACE
应用程序进入阻滞状态就相当于进入低功耗模式了么?Semaphore_pend
Yolande Wang:
不,应用程序进入阻滞状态并不等同于进入低功耗模式。进入低功耗模式通常是一种主动操作,例如关闭不必要的外设,减小时钟频率,以减少整个设备的功耗等。
Semaphore_pend用于等待信号量的发放,如果信号量当前不可用,则将它阻塞当前任务(即进入阻滞状态),直到信号量可用为止。
,
zjj12138:
https://e2echina.ti.com/support/wireless-connectivity/sub-1-ghz/f/sub-1-ghz-forum/151639/cc1310-433-tirtos/我是看到1310这么写的,而且之前还用过,如果1312不是,那么低功耗模式怎么进入呢?有没有对应的函数命令控制进入低功耗呢
,
zjj12138:
比较着急,希望尽快回复,谢谢,外设我全都关闭了,现在问题是CPU的功耗需要在阻滞的时候降到最低
,
Shuyang Zhong:
Hi zjj12138,
您的理解是正确的,在power policy被启用时(例如大多数无线协议栈如TI15.4 stack),Semaphore_pend调用后芯片会自动进入standby,直到被信号量唤醒。CC1310和CC1312在这一块逻辑没有区别。
Best regards,
Shuyang
,
zjj12138:
不太理解您说的意思,到底是Semaphore_pend调用后是到底是不是低功耗呢?之前您说的是需要专门的函数让它进入低功耗,现在您又确认了只要Semaphore_pend调用后就是低功耗是么?但是我现在测试发现Semaphore_pend调用后功耗再8mA不是低功耗状态
,
Shuyang Zhong:
您的程序是基于哪个例程?另外测量功耗的方法是怎么样的?
建议您参考下面的文档,先用SDK中的gpio_standby例程验证一下功耗:
https://www.ti.com/lit/pdf/swra478
Best regards,
Shuyang
,
zjj12138:
基于rfPacketTX_CC1312R1_LAUNCHXL_tirtos7_tichang,我的目的大概是小核5秒钟采集一次,然后一分钟唤醒一次大核通过SUB1G将数据传输出去,在发数据的时候进入低功耗状态,只有小核每5秒采集一次数据。使用gpio_standby例程测试过功耗,效果相对好一些,但是如果在gpio_standby例程的基础上修改,修改后和rfPacketTX_CC1312R1_LAUNCHXL_tirtos7_tichang例程是一样的。
,
zjj12138:
我没有专业的仪器测量功耗但是你无需怀疑的的测量方法。我是电池供电 然后设计中有电容在运行稳定的时候将电池供电关断,测量放点/耗电情况。这种方式是可以测出放点电流的。
,
Shuyang Zhong:
Hi zjj12138,
您是在LaunchPad开发板还是自己的板子上测的?需要注意的是测量功耗时要断开JTAG引脚和其它GPIO引脚,如果是Launchpad的话要把中间的跳线帽拔掉(具体参考上面提到的文档)。
您直接运行未修改的rfPacketTX_CC1312R1_LAUNCHXL_tirtos7_tichang例程时功耗是多少?我刚测量了一下,平均功耗是210uA左右,如果用EnergyTrace的话可以看到射频不工作时芯片处于standby状态:
您可以用同样的方式确认一下测试环境是否有问题,如果您在例程上的结果和我接近的话,那就需要进一步查找软件代码上的原因。谢谢!
Best regards,
Shuyang