Contiki OS CC2538:降低电流/功耗

时间:2014-10-17 18:11:16

标签: contiki

我正在努力降低CC2538开发套件上运行的contiki操作系统的当前消耗量。

我想从CR2032操作该设备,使用寿命为2年。为实现这一目标,我需要的平均电流小于100uA。

然而,当我在3V运行以下时,我得到以下结果:

  • contiki / examples / hello-world = 0.4mA - 2mA
  • contiki / examples / er-rest-example / er-example-client = 27mA
  • contiki / examples / er-rest-example / er-example-server = 27mA
  • thingsquare websocket example = 4mA

我还基于cc2538设计了自己的目标平台并得到了类似的结果。

我在https://github.com/contiki-os/contiki/blob/648d3576a081b84edd33da05a3a973e209835723/platform/cc2538dk/README.md阅读了指南 并确保在contiki-conf.h文件中: - LPM_CONF_ENABLE 1 - LPM_CONF_MAX_PM 2

任何人都可以给我一些关于如何降低电流的指示。非常感谢。

此致 沙恩

1 个答案:

答案 0 :(得分:1)

你是如何测量电流的?

你必须要知道,使用基本安培表测量contiki-os的当前消耗量不会给你相关的结果。系统以相对较高的速率(默认为8Hz)打开/关闭无线电以执行CCA。对于安培表来说,这可能并不容易。

要了解器件处于深度睡眠状态时的电流消耗(然后进行计算以确定平均电流消耗),我宁愿在程序达到无限循环之前将器件置于PM状态。我使用以下代码来做到这一点:

lpm_enter();
REG(SYS_CTRL_PMCTL) = SYS_CTRL_PMCTL_PM2;
do { asm("wfi"::); } while(0);
leds_on(LEDS_RED); // should not reach here
while(1){ 
 ...

在CC2538上,CCA检查功耗约为10-15mA,持续时间约为2ms。当无线电发送数据包时,它消耗25mA。看看这篇文章:Contiki UDP packet transmission duration with CC2538

此外,为了节省更多电流,请关闭串口com:

#define CC2538_CONF_QUIET 1  

您使用的是SmartRF主板吗?如果您想使用此电路板进行适当的电流测量,则必须移除每个跳线:P486,P487,P411和P408。只保留BTN_SEL的跳线和RESET信号。