Part Number:CC1310
cc1310 nortos 低功耗是咋实现的嘛?
我是自唤醒的,无法使用Power_shutdown();从而外部唤醒实现低功耗。
我使用了sleep();待机模式?常处在2mA。。。
我又尝试了Power_sleep();到电源策略来 降低功耗。。。但是 我不知Power_sleep(uint_fast16_t sleepState);的参数sleepState该给啥。。。当然也不知是否会降低功耗。。。
有哪位大神 你知道cc1310 nortos 低功耗程序代码是咋实现的嘛?
Kevin Qiu1:
nortos可以参考SDK中的例程C:\ti\simplelink_cc13x0_sdk_4_20_01_03\examples\nortos\CC1310_LAUNCHXL\drivers\pinStandby测量
它已经设置好了电源策略,会在休眠期间自动进入standby模式,测量时注意断开调试器,仅使用外部的VDD和GND供电
,
LanYi:
大佬您好。
关于pinStandby这个测试程序我有看过,但是好多说是进入待机了 并没有休眠。我上午拿了这个sleep();函数进行了测试。在断开调试器,仅使用外部的VDD和GND供电情况下,电路中得工作电流保持在1mA~2mA。这么一算 并不能算是 低功耗呀!
不知我这是不是 搞错了啥。期待您得指出~
,
Kevin Qiu1:
拔掉launchpad上相应的跳帽,使用直流电源分析仪来测量,参考类似的文档:https://www.ti.com.cn/cn/lit/an/zhca712c/zhca712c.pdf
,
LanYi:
大佬 您好~ 由于一些事务耽搁了一段时间。我手头上没有直流电源分析仪。但是依旧使用电流表对pinStandby 这个示例进行了测试,现象也确实如您所说电流会降到最低,电流表显示 1uA 以内,是很棒的了!
我的问题就又来了,因为这个是只有小灯的功耗。当我添加了无线射频后,就又不得行了。。。 我的发送是每间隔5s发一次,发送的 瞬间峰值大概在5mA,退出就保持在4mA。。。这,无线这一块儿在低功耗是哪里需要再设置下吗?或者说我哪里还需要再做些什么?
,
Kevin Qiu1:
1uA以内是standby的功耗,要达到不传输数据时低功耗,要保证所有的外设和Radio都关闭
参考SDK C\ti\simplelink_cc13x0_sdk_4_20_01_03\examples\nortos\CC1310_LAUNCHXL\drivers\rfWakeOnRadioTx和Rx例程
它是射频发送的低功耗示例
,
LanYi:
非常开心收到您给的回复~o(* ̄▽ ̄*)ブ。
我速度去测试,并在后面及时反馈测试结果数据。
非常非常感谢您~ 愉快的每一天(●'◡'●)
,
LanYi:
大佬 您好~ 昨天得到您的建议后,我就rfWakeOnRadioTx此示例做了测试,今天得到一个偏于稳定的值。
在此示例不做任何修改的情况下 不按键触发Tx 电流稳在3.7mA左右,按键触发后 大于5mA,,,这不算是低功耗吧?
期待您的回复~
,
Kevin Qiu1:
这看起来不正常,万用表测的是平均值,分辨率不够,找一台可以实时测量电流波形仪器来测
,
LanYi:
谢谢 您得指出。问下您这边有关于这个示例 低功耗得参数 嘛?我想去寻求下硬件平台得帮助,有个大致得参数做对比。~
,
Kevin Qiu1:
没有按下按键发送时,会进入到standby模式,大概在1uA左右
,
LanYi:
大佬您好,依旧是没有电流波形仪器的一天。在我寻求了硬件平台的帮助后,他们在没有此仪器的情况下,撇开我使用电流表的测量方法,在电路中串联了一个电阻,再经过放大,再通过示波器算取获值。数据也是相当的稳定.。。。未发送的状态下3.7mA左右 。。。这样测的值准确吗?
大概的电路如图:
,
Kevin Qiu1:
应该是准确的,你删除代码中的串口显示相关的代码然后测一下看看
例程默认使用了串口打印,串口打印时不会进入低功耗状态,这时差不多有3mA的电流
,
LanYi:
大佬,下午好~。后面让硬件平台帮忙测试的 就是去了display部分的代码后 才去测试的。。。现在好怀疑自己 ,看了下代码流程,还在想 是不是没进入Power_idleFunc()函数。。。
,
LanYi:
大佬您好,由于我功耗没降下来。详细的检查自己曾经改过什么。现在有一下几个文件我有做修改,您要有空麻烦您帮忙分析下是不是我哪里修改导致的呢!
手头上有三个不同内存大小的芯片cc1310f128(评估板 、4*4封装)、cc1310f64(4*4封装)、cc1310f32(4*4封装)
nortos、为了适配4*4的大小以及不带系统,我对一下文件做了修改:
,
Kevin Qiu1:
看起来没问题,就是修改这几个文件
下面是以前4*4的配置文件,与新的SDK相比有了一些小变化,你可以参考它修改文件
CC1310DK_4XD.zip
,
LanYi:
好的呢 谢谢您给的参考文件。我及时核对。
周末时间到了,祝您有个愉快的周末~
下周我得继续与 降功耗作斗争 及时反馈我的降功耗的过程 中间问题肯定也是好多好多 再次感谢您的支持! ღ( ´・ᴗ・` )比心❥(^_-)
,
Kevin Qiu1:
不客气
,
LanYi:
大佬好~ 我后面测试发现 它好像是没有进入低功耗。调用的电源管理函数 都没有进去。
后来 在我单独使用了power_sleep();且让它进去以后 ,发现功耗确实降下来了达到20uA以内。。但是 我又出不来了!(唤醒不了)
在查看了power_sleep()这个函数的各方面说明后,我明确的需要 使用RTC来实现唤醒(也就是 退出低功耗)。但是它的函数说明 不能直接调用还有约束啥的。。。看的我一头雾水。我尝试将其放进电源策略Policy内实现,使能和退出 之类的,也不成。
大佬您对此函数的使用 有啥建议嘛?
,
Kevin Qiu1:
你用rtos版本的测一下看看是否和nortos结果一样
,
LanYi:
同样在评估板下进行测试:rtos版本的 nortos版本的都测试了呢 都是进不去的 功耗也没降
当然同在评估板下 我使用power_sleep(),使其进去 这个函数 功耗是降下来
,
LanYi:
,
Kevin Qiu1:
我测试了一下,确实有3mA左右的电流,检查代码发现这与 semaphore_pend 中的 BIOS_WAIT_FOREVER 有关
Radio内核永远不会关闭,所以会有较高的功耗
可以在 semaphore_pend 命令之前执行 RF_yield关闭Radio
/* Enter main TX loop */ while(1) { RF_yield(rfHandle); //Added to force radio into standby while waiting for button press /* Wait for a button press */ Semaphore_pend(txSemaphoreHandle, BIOS_WAIT_FOREVER);
注意测功耗时仅使用两根杜邦线供电,拔掉所有的跳帽和USB线
,
LanYi:
大佬 感谢您的解答~这个 我速度去测!
还有一个:由于我希望是进入 standby模式后 内部自唤醒,查看了下资料,此模式下是支持Wakeup on RTC的。
在nortos下,我查了许多他人的答复,也都是迷糊的紧~ 期待在您忙碌中给些建议ღ( ´・ᴗ・` ) 辛苦大佬啦❥(^_-)
,
Kevin Qiu1:
RTC问题请重新开一个新的帖子,以便其他人查找查找
,
LanYi:
嗯嗯 好的呢 谢谢您~
关于standby模式下期待内部RTC唤醒的问题,连接如下:
e2echina.ti.com/…/cc1310-nortos-standby-rtc
,
Kevin Qiu1:
好的,将在新帖子中回复