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

CC1310 easylink功耗问题

测试了官方lanuchpad的rfWsnConcentrator和rfWsnNode的功耗,把LED,按键等外设都关闭了,其电流消耗一直稳定在7mA左右,请问如何将其功耗降低下来?

Viki Shi:

参考这边帖子: e2echina.ti.com/…/435288

Leo Xiong:

按照TI工程师的说法:TIRTOS在所有任务pend后,系统将自动进入idle任务,然后进入低功耗模式。
但是,我把 rfWsnNode 节点关闭,这样 rfWsnConcentrator 就不会接收到包,那么 rfWsnConcentrator 收包任务就会被阻塞,而且我看了确实被pend了,但功耗仍然在 7mA左右???

顺便说明一下:rfWsnConcentrator只留了一个收包任务,其他显示任务都关闭了。

Leo Xiong:

回复 Viki Shi:

按照TI工程师的说法:TIRTOS在所有任务pend后,系统将自动进入idle任务,然后进入低功耗模式。
但是,我把 rfWsnNode 节点关闭,这样 rfWsnConcentrator 就不会接收到包,那么 rfWsnConcentrator 收包任务就会被阻塞,而且我看了确实被pend了,但功耗仍然在 7mA左右???

顺便说明一下:rfWsnConcentrator只留了一个收包任务,其他显示任务都关闭了。

Viki Shi:

The ConcentratorRadioTask handles the radio protocol. This sets up the EasyLink API and uses it to always wait for packets on a set frequency. When it receives a valid packet, it sends an ACK and then forwards it to the ConcentratorTask.

rfWsnConcentrator会一直等待节点的包,rfWsnNode才会定时进入休眠,功耗测试请用rfWsnNode

Leo Xiong:

回复 Viki Shi:

好吧。但是,rfWsnNode进入休眠后的电流还有1.5mA(一直让任务pend,不发包),这个正常吗?EasyLink rfWsnNode如何达到 rfWakeOnRadioRx 例子的功耗(10uA以下)呢?我们的应用是要求节点实现类似 rfWakeOnRadioRx 的功能。

Leo Xiong:

回复 Leo Xiong:

rfWakeOnRadioRx 没有Long Range 模式, rfWsnNode 可以配置为Long Range 模式,但又实现不了 WOR 功能。。。

Viki Shi:

回复 Leo Xiong:

一般来说,long range下使用wor没有意义,具体解释请参考这边: e2e.ti.com/…/642024

Leo Xiong:

回复 Viki Shi:

但问题是wsn node的功耗一直下不来。lancuhpad开发板,官方原始的wsnnode例程,即使把main函数中的所有用户任务都注释掉运行,还有1mA的电流消耗

Leo Xiong:

回复 Viki Shi:

问题原因找到了:
我们的应用中用到了UART,且要求UART RX随时接收,应此创建了UART任务,在任务循环中,我们通过 UART_Read函数的阻塞模式来接收 UART数据。如下:while (1){UART_read(m_uart_handle, &rx_data, 1);if (m_rx_callback){m_rx_callback(&rx_data, 1);}}

只是你们TI的 UART_Read 的阻塞模式有问题,不能阻塞任务。在 UART_Read前加一条等待event的语句(如下),然后再测试功耗就下来了。while (1){/* Wait for event */(void)Event_pend(m_uart_event_handle, 0, 0xFFFFFFFF, BIOS_WAIT_FOREVER);UART_read(m_uart_handle, &rx_data, 1);if (m_rx_callback){m_rx_callback(&rx_data, 1);}}

Viki Shi:

回复 Leo Xiong:

赞,感谢提供反馈

赞(0)
未经允许不得转载:TI中文支持网 » CC1310 easylink功耗问题
分享到: 更多 (0)