低代码单片机基于AM1805实现低功耗休眠(低至3uA)

96 篇文章 0 订阅
32 篇文章 0 订阅

AM1805 低功耗电源管理

基于 FlexLua 低代码单片机技术,无需复杂单片机C语言开发。即使新手也可很容易用FlexLua零门槛开发各种功能丰富稳定可靠的 IoT 硬件,更多学习教程可参考 FlexLua 官网。

一、通过AM1805模块实现低功耗的原理

AM1805是由美国Ambiq Micro设计的低功耗电源管理芯片,利用它可以将我们的电路系统功耗降低至0.1uA以内。实施原理很简单,将整个电路系统(或MCU)的VSS和AM1805的PSW引脚连接,由AM1805来控制电路系统(或MCU)VSS的通断即可实现低功耗控制。

d0cb63909e463e7004e797714de0e637.jpeg

注意:上图取自官方文档,VSS等同于芯片GND的称呼。FOUT引脚这里我们不需要使用(断开即可),EXTI引脚没体现出来。

  • AM1805休眠时 --> PSW引脚呈断路状态,即MCU的VSS呈断开状态,此时我们的电路系统没有任何功耗
  • AM1805唤醒后 --> PSW引脚呈导通状态,即MCU的VSS呈接地状态,此时我们的电路系统开始正常工作

当Core通过程序让AM1805休眠后,AM1805可以通过程序预设的周期时间自动醒来,也可以通过AM1805的EXTI引脚上的上升沿或下降沿唤醒。

二、接线图

6eee662533b061ef352499c2898f6315.jpeg

建议:当需要通过EXTI引脚上的跳变沿来唤醒的功能时,EXTI引脚最好增加电容滤波电路,来避免在干扰比较大的应用场合由干扰信号造成的意外唤醒。

注意:由于我们提供的AM11805模块上EXTI引脚的R3上拉电阻(4.7K)没有焊接,所以EXTI外部中断输入引脚并没有一个确定状态,所以当您开启外部中断唤醒功能时,由于EXTI引脚是悬空(未上拉)状态会在外部干扰信号下无法正常进入休眠,正确的做法应该是给EXTI引脚一个固定的上拉或者下拉状态(具体取决于您希望下降沿唤醒还是上升沿唤醒)以及相应的滤波电容(最好在设计时加以考虑)。

三、完整演示代码

本实例演示了AM1805的基本用法,即上电工作5秒(LED1灯亮),休眠10秒(LED1灯灭),然后再上电工作这个反复的过程。开发者开发时,可以按自己的需求,在特定条件下调用LIB_AM1805Sleep函数来触发休眠。

--配置D8端口为普通输出(Core电路板上的LED1灯和D8端口是固定连接的)
LIB_GpioOutputConfig("D8","STANDARD")
--LED1灯开始亮
LIB_GpioWrite("D8", 0)
--配置AM1805连接Core的SDA0和SCL0引脚
LIB_AM1805Config("IIC0")
while(GC(1) == true)
do
--等待5秒
LIB_DelayMs(5000)
--设置AM1805模块开始休眠,并在10秒后唤醒,
--外部唤醒设置为"FALL",即如果休眠中途AM1805的EXTI引脚检测到下降沿信号,则立刻唤醒
--如果不需要外部唤醒只需要周期唤醒,则可以设置成"NONE"
LIB_AM1805Sleep(10, "FALL")--此时系统(core开发板)将掉电,后面的代码都不再有效了
--mcu lost power from there
end

如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

四、演示结果

可以看到当AM1805休眠时,Core开发板此时处于断电状态,AM1805模块 + Core开发板的电流大小一共只有85nA(0.85uA)。

0d7d5483ff9bfbf0c577a8fb697e8942.jpeg

五、实际应用时需考虑的东西

上面的例子为了演示方便,我们是将AM1805直接控制Core电路板的GND的通断,其实这样做并不太合理,因为AM1805的PSW引脚最多只能通过50mA的电流,当你的电路系统不只Core,还有其他传感器或电路时,这样做就行不通了,正确的做法应该是AM1805通过PSW引脚控制一个功率开关器件的输入端GND,而这个功率开关器件才是真正承受你的整个电路系统电流的器件。

建议的设计思路为:AM1805 --> 功率开关电路 --> 电路系统(包含Core以及其他器件)

10604c8b4fa2e7c5dd8d36f598daf051.jpeg

为了开发者不用自己设计以上较为复杂的电路,我们将以上电路打包成一个简单的模块(SB-P10模块),开发者直接使用该模块即可。

六、SB-P10 低功耗模块介绍(AM1805)

(1)外观

09af26082d8d9c5c46083beda8e6fc9b.jpeg

(2)引脚图

9d2dca730d129b630e524bee79614010.jpeg

(3)引脚功能说明

VIN :接电源(一般是电池)

VOUT:用来给整个系统供电

GND:系统地

SDA:接 Core 的 SDA0 或 SDA1 引脚

SCL:接 Core 的 SCL0 或 SCL1 引脚

EXTI:外部唤醒引脚(当使用该外部引脚唤醒功能时,该引脚需要上拉或者下拉,具体需看唤醒信号类型)

(4)模块原理图

4e2bc05b4c7578ecceebeae107656350.jpeg

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值