1

我正在尝试降低在 CC2538 开发套件上运行的 contiki os 的电流消耗。

我想用运行寿命为 2 年的 CR2032 操作该设备。为了实现这一点,我需要一个小于 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 示例 = 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

谁能给我一些关于如何降低电流的指示。将不胜感激。

问候, 谢恩

4

1 回答 1

1

你是如何测量电流的?

您必须注意,使用基本电流表来测量 contiki-os 的电流消耗不会给您相关的结果。系统以相对较高的速率(默认为 8Hz)打开/关闭无线电以执行 CCA。对于安培计来说,这可能不是很容易捕捉到的。

为了了解设备处于深度睡眠时的电流消耗(然后进行计算以确定平均电流消耗),我宁愿在程序到达无限 while 循环之前将设备置于 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 信号。

于 2014-10-20T08:59:16.683 回答