AM1805低功耗电源管理模块
- 一、通过AM1805模块实现低功耗的原理
- 二、接线图
- 三、完整演示代码
- 四、演示结果
- 五、实际应用时需考虑的东西
一、通过AM1805模块实现低功耗的原理
AM1805是由美国Ambiq Micro设计的低功耗电源管理芯片,利用它可以将我们的电路系统功耗降低至0.1uA以内。实施原理很简单,将整个电路系统(或MCU)的VSS和AM1805的PSW引脚连接,由AM1805来控制电路系统(或MCU)VSS的通断即可实现低功耗控制。
注意:上图取自官方文档,VSS等同于芯片GND的称呼。FOUT引脚这里我们不需要使用(断开即可),EXTI引脚没体现出来。
- AM1805休眠时 --> PSW引脚呈断路状态,即MCU的VSS呈断开状态,此时我们的电路系统没有任何功耗
- AM1805唤醒后 --> PSW引脚呈导通状态,即MCU的VSS呈接地状态,此时我们的电路系统开始正常工作
当Core通过程序让AM1805休眠后,AM1805可以通过程序预设的周期时间自动醒来,也可以通过AM1805的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
四、演示结果
可以看到当AM1805休眠时,Core开发板此时处于断电状态,AM1805模块 + Core开发板的电流大小一共只有85nA(0.85uA)。
五、实际应用时需考虑的东西
上面的例子为了演示方便,我们是将AM1805直接控制Core电路板的GND的通断,其实这样做并不太合理,因为AM1805的PSW引脚最多只能通过50mA的电流,当你的电路系统不只Core,还有其他传感器或电路时,这样做就行不通了,正确的做法应该是AM1805通过PSW引脚控制一个功率开关器件的输入端GND,而这个功率开关器件才是真正承受你的整个电路系统电流的器件。
建议的设计思路为:AM1805 --> 功率开关电路 --> 电路系统(包含Core以及其他器件)
更多详情请参看 shineblink.com官网链接