主题中讨论的其他器件:Z-STACK、CCStudio、 ENERGYTRACE、 LAUNCHXL-CC1352P1
我已导入并修改 zed_sw 应用程序、如下:添加了 z_power_test、添加了 power_test_poll_ACK、使用了 CUI_disable、使用了 xBOARD_DISPLAY_USE_UART、优化设置为3、在0dBm 下无线电设置为600ms、使用 POWER_SOURCE_BATTERY。 可实现10uA 的电流。 现在已经足够好了。 自动网络连接工作正常。
我想做一件简单的事情。 ZigBee 终端设备具有某种按钮类型(打开或关闭)的 I/O 可处理。 功耗至关重要、目的是尽可能降低开销。
浏览完文档和线程之后、似乎 需要一些建议:
1.我看到 hal_key.c 应该有 HalKeyExitSleep ()在一个旧的论坛条目-不确定这是否仍然存在和/或相关。 如果是、那么问题是如何导入该 文件、然后确保执行针对按键导致退出 ZigBee 睡眠时所做的一些代码。
2.使用传感器控制器可能是 一种替代方法,尽管尚不清楚如何在触发后中断 Z-Stack 睡眠。
3、我真的想做什么(不会增加功耗超过绝对必要,而且比那些更便宜):
a)接收有关按钮状态更改的通知、并向控制器发送消息、然后重新进入睡眠状态。 通过添加的线程轻松完成、但价格昂贵。 或
b)每次 ZigBee 以轮询速率(60000 ms)唤醒时检查按钮状态、然后根据最近一次已知的情况测试当前按钮状态、如果有变化、则向控制器发送消息(延迟是可以的)。 理想情况下、在不修改 Z-Stack 代码的情况下、只需通过回调或类似操作即可。 这感觉最高效、但不确定如何向网络周期添加一些额外的代码。 有可能吗? 或
c)使用传感器控制器、根据按钮变化设置变量、唤醒 Z-Stack... 同样的情况:需要另一个线程和信标(a)或者添加一些要在 ZigBee 线程中执行的代码(b)。
问题是功耗。 只要我再添加一个线程即可获取按钮回调(例如10行代码)、10uA 就会变为500uA、从而将电池寿命缩短到无法使用的水平。
摘要:如何实施具有1-2个按钮的开关、以便在向控制器发送偶尔的打开/关闭消息时、像每天5-10次一样消耗参考文档中提到的功率?