作者:Only-安之若素 | 来源:互联网 | 2023-10-13 08:14
一直想做一个低功耗的产品,网上卖的产品说功耗可以到达2uA,所以自己做一个实验,验证是否可以低到2uA,同时也为了以后产品做技术储备,1,模块选择是几年前从公司剩下的2个郎威模块,
一直想做一个低功耗的产品,网上卖的产品说功耗可以到达2uA,所以自己做一个实验,验证是否可以低到2uA,同时也为了以后产品做技术储备,
1,模块选择是几年前从公司剩下的2个郎威模块,一个制作接收,一个制作发送,发送端低功耗。
第一步,设计发送端,发送端通过SHT20采集温湿度,通过两个3M的分压电阻采集电池电压,半个小时采集一次上发到中心点接收模块,通过串口传输给中心站,并保存到SD卡,所以硬件有需要绘制一个采集板,有SHT20,LDO电源,用18650锂电池供电。
2,软件需要写3个,一个采集模块,一个接收模块,一个中心存储模块,协议自己定的协议,采集板自己绘制,通信模块用的是现有厂家的,中心站用的407开发板。
3,编写采集板程序,刚开始用的stop模式发现只能到2MA,停滞,接着曲线救援,换用standby模式,功耗降为1.8ma左右,后来发现SX1278要进入睡眠模式,功耗降到了350uA,为了功耗更低,把分压电阻,LDO去掉,SHT20电源直接用STM32L071IO口供电,降到了130uA,2uA难道是个传说?看资料说ST芯片standby模式io为高阻态,引脚状态不可控,网上咨询,别人也没给回复,自己搞,又变回了Stop模式,一个脚一个脚的试,最后发现是MCU驱动SX1278的RST引脚不能配置为模拟输入,改为上拉输出电流降低到2uA(模块厂家SX1278RST外挂了一个10K的上拉电阻),SHT20温度采集需要80mS,湿度采集要40mS,STM32L071官网的STOP模式引脚配置为浮空模拟输入, 实测不如设置为输入下拉好,还是依实际应用来配置,这里重点说下LDO电源,当时就是想当然的从淘宝上买了一种SOT23-5的芯片,实际测试中低功耗模式下,这个ldo电流消耗就达到了130uA,后来从明达微申请5片MD5133和MD5233,低功耗模式这两片子确实需要表扬一下,LDO+通信模块+3M的分压电阻stop模式总体功耗在4uA左右,外挂3M的电阻,ADC 采集不准,不想再搞了,直接加了个系数1.38,精度在接受的范围。由于只是检测家里的温湿度,发送数据间隔定为1个小时。模块没有采用应答模式,不知道对方接收是否成功功能,(后期再加)采集模块开机10S内可以配置参数,模块地址,上传间隔,发射功率,发设通道,原来设计的是用18650锂电池,现在采集端可以用纽扣电池供电,而且纽扣电池的自放电小,不接设备4,5年,好的10年还有电,而锂电池估计不接设备3,4年就没电了,自身损耗比设备功耗还大。
4,编写接收模块,由于不考虑功耗所以没有那么多限制,只负责接收,也不需要接收应答。
5,中心站是STM32F4负责接收从接收模块的数据,解析,并在SD卡中对应采集器编号建立文件,将数据添加日期后存入。
6,如果有外接芯片低功耗要用stop模式,standby模式达不到最低功耗,如果只是但MCU验证standby模式确实能到1uA以下。