在调用sleep函数之前把相关外设关掉还需要把不用的引脚做什么操作吗?我现在进入sleep时电流0.8mA,相关外设UART、ADC、NVS、RF都关掉了。可是功耗没有降下来,该如何处理?
Viki Shi:
Unused I/O Pins
By default, the I/O driver (output) and input buffer (input) are disabled (tri-state mode) at power on or reset, and thus the I/O pin can safely be left unconnected (floating).
If the I/O pin is placed in the tri-state condition and connected to a node with a different voltage potential; there might be a small leakage current going through the pin. The same applies to an I/O pin configured as input, where the pin is connected to a voltage source (for example VDD / 2). The input is then an undefined value of either
0 or 1.0.8mA是待机模式的电流吗?建议按照官方操作文档进行测量:www.ti.com/…/swra478d.pdf
user6340973:
回复 Viki Shi:
0.8mA是待机模式的电流
user6340973:
回复 Viki Shi:
刚刚测了一下只跑射频收发进入待机模式时功耗就会变大,射频这块怎么关闭?
Viki Shi:
回复 user6340973:
待机模式射频本身就是关闭的,反之,只要开启射频,功耗肯定会大
请问你用哪个例程测功耗的?
user6340973:
回复 Viki Shi:
我是用rfeasylinkRX例程做的接收,目前代码中是先测温度和电压值,用rfeasylinklistenbeforetalk实现发送数据,然后用rfeasylinkrx例程实现接收。如果代码中不跑接收,板子进入sleep模式时电流0.01mA,但是如果加入接收进入sleep模式电流0.8mA
Viki Shi:
回复 user6340973:
rfeasylinkRX里默认设置是处于连续RX模式下的,如果要进入低功耗,这部分设置需要改一下,用RF_close关闭RF再测
user6340973:
回复 Viki Shi:
设置该如何修改?我再进入sleep模式之前用了以下三个函数对RF进行关闭的操作,但是电流还是0.8mA
EasyLink_abort();RF_close(rfHandle);RF_yield(rfHandle);
RX设置部分在哪边修改呢?
Viki Shi:
回复 user6340973:
就是这么修改,推荐看一下这边的类似问题,同时排查下代码:e2e.ti.com/…/684024
user6340973:
回复 Viki Shi:
我是使用的nortos例程进行开发的,是不是就不好用semaphore_pend
Viki Shi:
回复 user6340973:
是的