arduino pro mini 软件串口无法进入休眠(已解决)

sean 编辑于2025-03-18 22:14Arduino

arduino pro mini 8m/3.3v在 睡眠(PWR_DOWN)模式下是1.417ma的电流,板上电源灯还亮着,因为直连电源无法关闭,于是焊掉这颗power led,power_down模式下电流达104ua。

#include <avr/sleep.h>
 
void setup()
 
{
 
// 設定採用“Power-down”睡眠模式
 
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
 
// 啟用睡眠模式
 
sleep_enable();
 
// 進入睡眠模式
 
sleep_cpu();
 
}
 
void loop(){}

然而,然而,

问题一:

出现一个问题,开启软件串口和另一个串口设备通信,在arduino尝试进入power down休眠时, 休眠失败,空闲状态的待机电流7.2ma。

  • 问题找到了,代码里一个分支没有睡眠串口模块设备,导致mcu无法睡眠。修改代码后,成功睡眠整体电流110ua,跟esp32c3的lightsleep功耗差不多,
  • 至于换esp32c3的流程暂时搁置,作为备选,毕竟deepsleep的12ua还是有点诱惑的。
问题二:

教员说过,问题永远不可能一次全解决,果然当mcu用spi口和加速度传感器lis3dh通信时,又出现了新的问题,进入powerdown后,mcu从6.5ma到2.1ma,并没有完全进入110ua,开始分析,发现promini的status灯还亮着,焊掉它,功耗确实降了,但810ua依然不是最终状态,于是我尝试各种软件修改,始终保持在810ua的睡眠功耗,当我把spi四线拔下来的时候,功耗降下来了到110ua。

看来问题在这个spi接口上,用power_spi_disable();来关闭也不起效......我发现,a4,a5口的i2c也可以同lis3dh通信,然后焊接a4,a5针脚尝试一下,当烧写完程序后终于达到了期待已久的116ua。相对于之前的104ua,增加的12ua应该是lis3dh的工作电流了。至此问题算是解决了,但是不清楚spi接口为什么会多出700ua的电流?后来看了lis3dh网上前人的经验,lis3dh的功耗:低功耗模式2μA;正常工作模式、ODR = 50Hz时功耗11μA(要求SDO/SA0脚浮空或上拉)SDO引脚上拉或悬空。若该管脚接地,功耗会增加150μA;若通过下拉电阻接地,功耗则会更大,我想可能是这个原因吧(待测试)。

换esp32c3再试试。

手头有个esp32c3mini,测试了一下单串口模式下的时候,esp32c3进入lightsleep的功耗有122ua, esp32c3进入deepsleep时整体功耗有12ua的电流,有点小惊喜,

接下来试试接入一个串口模块,看看deepsleep功耗,未完待续......

4G模块低功耗模式待机在31ua@3.7v

电池是3.7v供电,而esp32c3是3.3v所以还需要一个降压模块,目前,3.7v电池直接接5v口不知是否可以,稍后确定下这个事。

esp32c3工作典型功耗也就在40ma左右,所以ldo更好些,而且不像dc-dc产生波纹干扰。主要考量的是压差小和静态电流小。

如果需要降压的话,目前备选的是me6209A33,最大输入电压是18V,80mv的压差,3ua静态电流,负载电流250ma够用了。

关于本站

肥龙软件分享的软件是本站作者开发的免费,无广告,安全可靠,绝不附带任何无关软件,绝不困绑任何插件的实用软件。如果您感觉好用,可以捐赠我们,这样我们可以有更积极的动力去改进升级软件,维持服务器运转,感谢您的捐助,谢谢!

致谢 赞赏/捐助名单

**军 ¥16.8

              2024.8.13

**华 ¥16.0

              2024.12.26

李政 ¥10.0

              2025.3.13

更新时间:2025.3.17

联系作者(邮箱)
分类