当前位置:   article > 正文

合宙Air780e模块各种功耗模式,简单测试

air780e

合宙Air780e关于低功耗的介绍:

ttps://doc.openluat.com/wiki/50?wiki_page_id=4917

air 780e与air780eg均基于EC618平台增加了三种低功耗模式:响应优先模式(PRO);平衡模式(STD); PSM+模式。

不同模式的区别如下:

一. 不同休眠模式测试过程:

  1. local period = 30*1000 --30秒左右时间
  2. -- 低功耗均衡性能模式下(std)
  3. -- 1.普通定时器就可以使其退出均衡模式类似PM.LIGHT休眠模式
  4. -- 2.进入此模式后程序可以继续执行
  5. -- 3.使用均衡模式实测 50ua左右
  6. sys.taskInit(function()
  7. log.info("40s 后balanced mode! 开启,40s留下联网时间")
  8. sys.wait(40000)
  9. pm.power(pm.WORK_MODE,2)
  10. --一定要注意打开usb调试接口不然收到消息也不知道
  11. pm.power(pm.USB, true)
  12. sys.wait(period) --退出均衡模式即可
  13. pm.power(pm.USB, true)
  14. -- 1.已经证明程序是自动执行了,但是log.info被关闭了
  15. -- 2.使用pm.power(pm.USB, true)打开usb调试
  16. end)
  17. -- psm+ 模式
  18. -- 1.需要关闭mobile.flymode(0,true)
  19. -- 2.定时唤醒需要通过底层控制器才能唤醒pm.dtimerStart(id,timeout)
  20. -- 3.进入此状态后功耗可到达2.89ua左右
  21. -- 4.此模式下程序停止执行唤醒后,程序从头开始执行
  22. sys.taskInit(function()
  23. log.info("5s 后psm+ mode! 开启")
  24. sys.wait(5000)
  25. pm.power(pm.USB, false) -- 关闭sub调试
  26. mobile.flymode(0,true) --关闭手机卡
  27. pm.power(pm.WORK_MODE,3)
  28. pm.dtimerStart(3, period)-- 30秒后程序会重新执行
  29. end)

二.使用gpio将硬件从低功耗模式中唤醒:

1.可用wakeup接口为gpio20 使用中断触发方式

gpio.RISING

gpio.FALLING

2.uart MAIN_TXD/RXD 可以通过给串口发送数据唤醒模块(未测试)

  1. PROJECT='demo24-2-18'
  2. VERSION='1.0.0'
  3. log.info("main",PROJECT,VERSION)
  4. -- sys库是标配
  5. _G.sys = require("sys")
  6. local period = 3*60000 --默认60s变化一次模式
  7. local reason, slp_state = pm.lastReson()
  8. log.info("wakeup state", pm.lastReson())
  9. -- 低功耗开始
  10. if reason > 0 then
  11. sys.taskInit(function()
  12. log.info("10s后已经从深度休眠唤醒,睡醒了重新睡看看行不行")
  13. sys.wait(10000)
  14. gpio.setup(23,nil)
  15. gpio.close(35)
  16. gpio.setup(20, function()
  17. log.info("触发了gpio20下降沿出发的中断")
  18. end, gpio.PULLUP, gpio.RISING)
  19. mobile.flymode(0,true)
  20. pm.dtimerStart(3, period)
  21. pm.power(pm.WORK_MODE,3)
  22. end)
  23. else
  24. sys.taskInit(function()
  25. gpio.setup(23,nil)
  26. gpio.close(35)
  27. -- 设置gpio 准备唤醒一下
  28. gpio.setup(20, function()
  29. log.info("gpio,下降沿出发这里我用干簧管和磁铁来进行中断")
  30. end, gpio.PULLUP, gpio.FALLING)
  31. log.info("3s后进入,mode3模式")
  32. mobile.flymode(0,true)
  33. pm.dtimerStart(3, period)
  34. pm.power(pm.WORK_MODE,3)
  35. sys.wait(10000)
  36. log.info("睡眠模式进入失败")
  37. end)
  38. end
  39. -- 用户代码已结束---------------------------------------------
  40. -- 结尾总是这一句
  41. sys.run()

pm.power(pm.WORK_MODE,0) --从休眠模式苏醒后如果想正常使用mqtt必须将低功耗模式完整关闭

在平衡模式下可能会出现消息延时接收的情况,但最终都能收到数据。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/877737
推荐阅读
相关标签
  

闽ICP备14008679号