在设计LORA智能灌溉分控时,遇到了一个技术难题。因为锂电池存在自放电反应,使得电量的使用寿命比较有限;锂电池的自放电率一般为每月2%~5%,一年时间内自放电消耗的容量高达24%~60%,大大降低了寿命。
综合考虑,有碱性电池和锂亚电池两种供电方案;分控的供电主要的两个流向,- 通过3.3V的LDO输出+3.3V稳定电压给MCU和LORA模块供电,
- 通过三极管设计的开关向TC7660供电,由其升压给3300uF的大电容充电,用于驱动电磁阀动作。
1. 智能灌溉分控的供电框图问题在于,9V碱性电池的容量大概为500mAh,LORA模块以3s的时间间隔定时唤配做空中信道检测,其平均待机电流为0.15uA,而单次LORA数据收发消耗的电量大概为150mA*s,而单次阀门开或者关的操作消耗的电量为200mA*s,如果按一天20次数据收发,10次阀门开关操作来估算,一天消耗的电量约为5.00mAh,一节9V碱性电池的使用寿命大概为80天。为了达到2年的使用寿命要求,需要9节碱性电池并联使用,不但成本高昂,而且占用体积大,不易安装。
颇具优势的锂亚电池
而锂亚电池具有以下优点:1)单位质量的能量密度高2)开路电压高单体电池开路电压约3.65V,工作电压随负荷变化,一般为3.3V~3.6V之间3)寿命长,自放电率低(能量型低于1%,功率型低于2%)4)工作电压平稳:90%以上的电池容量是在电压几乎不变的高电压平台上输出的5)温度范围宽:-40~85℃,高温型可达125℃9)容量大,成本可承受的范围内,有容量高达19000mAh的规格可选
2. 锂亚电池以50mA放电的放电曲线但是,锂亚电池持续放电和脉冲放电电流并不大,一般情况下,允许连续电流为200mA,允许脉冲电流为400mA。此外,单节锂亚电池的工作电压为3.6V-2.0V,而+3.3V的LDO最小压差为0.5V左右,要求输入电压必须大于3.8V;电磁阀的最低驱动电压为10V左右,TC7660构成二倍压电路,要求输入电压为5V以上。需要将两节锂亚电池串联使用,使得在放电过程中的输出电压达到5.0V以上,才能保证控制板的正常工作。
这将会增加约30元的成本,而且LDO的输入输出的电压差比较大,LDO效率非常低,造成了大量的能量耗费。
电路的优化改进
在进行了深入分析研究之后,我决定改进电路并实际测试验证,使得电路板能使用单节锂亚电池供电。1)去掉3.3V的LDO,改用低导通电路的肖特基二极管SS14降压,MCU的工作电压范围为2.4V-3.6V;LORA模块的工作电压范围为1.7V-3.7V;以ONSEMI的SS14为例,它的导通压降从规格书上得到,
图3. SS12的正向导通电压与电流的关系曲线图当电流为100mA时,导通电压为0.2V,当电流为200mA时,导通电压为0.25V左右。用万用表实测锂亚电池输出电压为3.665V经过SS14二极管后的电压为3.585V,二极管的压降为0.1V左右。用示波器交流耦合测量二极管后级的电压波形,如下:
图4. 控制板定时唤醒检测信道时,二极管降压之后电压的波动波形示波器捕捉到的脉冲波形为分控定时唤醒进行空中信道检测时工作电流变化导致的二极管导通电压的变化;电流变化约为20mA,持续时间为20mS,导致的导通电压变化高达192mV,即从进入低功耗睡眠状态的6uA到唤醒工作时的20mA,导致二极管的导通电压从0.1V增加到0.39V,这与规格书中标注的25℃时的参数一致。LORA发射数据时,MCU和LORA模块总的工作电流约为150mA,根据规格书,当工作温度为25℃时,电流=20mA,导通电压=0.42V,电流=200mA,导通电压=0.6V;当工作温度为-20℃时,电流=20mA,导通电压=0.5V,电流=200mA,导通电压=0.61V;SS14的最小导通电压大概为0.1V,最大导通电压大概为0.61V;在6uA-20mA的电流范围内,其交流动态电阻阻值约为10Ω;在20mA-200mA的电流范围内,其交流动态电阻阻值约为1Ω;根据锂亚电流的放电曲线,锂亚电流的输出电压可以按照3.0V-3.7V考虑,从而,通过SS14输出给MCU和升压模块的电压范围为2.39V-3.6V;满足LORA模块的工作电压范围要求,也刚好落在MCU的工作电压范围内;为了进一步降低SS14在发送LORA模块时的导通电压,我的想法是使用两个SS14并联。规格参数相近的二极管并联使用可以让流过的电流在两个二极管之间分摊,达到降低导通电压的效果。如果电流和导通电压的特性完全一致,则每一个管子各流过一半的电流。需要注意的是,二极管的工作温度越高,二极管的导通电压越小,流过二极管的电流增加,而流过电流增加又可以导致二极管的工作温度超高,形成恶性循环,最终使得其中一个管子流过了大部分的电流,另一方面,导通压降又会由温度高的管子决定。所幸,二极管的最大功耗约为120mW,并不会产生多少热量。不管如何,并联二极管使用可以有效降低二极管的导通电压,如果均分,流过单个管子的最大电流为100mA,对应-20℃的最大导通电压约为0.56V,从而提供给MCU和LORA模块最低工作电压可以达到2.44V,提高了可靠性;然而,提供给MCU和LORA模块的供电电压仍然0.5v左右的电压波动,电源上并联的470uF的电解电容,根据控制板唤醒检测空中信道的工作电流 为20mA,在唤醒的20ms内,电源电压的波动做到小于20mV,其并联的电容容量需要达到:没办法提供这么大的电容,而只有将唤醒工作时间缩短至470us,目前使用的470uF才能将电压波动限制在20mV左右。因此,不能通过增大电源上的电容容量以降低电源电压上的波动。该波动是否会导致MCU和LORA模块的工作稳定性降低,以及LORA模块的接收灵敏度降低,LORA模块发射功率减少从而降低通信距离等,需要做进一步的测试。
还有一种方案,根据MCU的极限规格参数,电源电压只有达到4.0V,芯片才会被损坏,当锂亚电池的最高电压为3.7V时,MCU不会被损坏,但是已经超过其最大工作电压上限,可能仍然是正常工作。而LORA模块在3.7V的供电下仍能正常工作,或者不经过二极管降压,直接由锂亚电池给MCU以及LORA模块供电,也不会有什么大的问题,只是有一定的风险。2)去掉TC7660升压电路,改用LN2220为核心的DC-DC升压电路
图5. TC7660升压电路控制板上用于电磁阀驱动的电容充电电路及其器件参照于其它厂家的产品。软件控制逻辑为,MCU先控制Q5导通,VCC通过Q5、R5向C12充电,充电时间常数为R5*C12=247.5ms;延时600ms之后,C12两端的电压被充电至0.91*VCC;此时,关闭Q5,打开Q1,VCC通过TC7660升压至2*VCC再继续通过R2向C12充电,同时MCU开始检测电容两端的电压,当检测到电压达到9V之后,再继续保持Q1导通1s之后关闭;
图6. 电容充电波形根据理论分析以及实测测试,我对电流充电电路做了一些改进,
图7. 使用DC-DC升压板的电容充电电路
图8. LN2220的参考设计电路LN2220的输入电压范围为2.0V-24.0V,最高输出电压可以达到28.0V;LN2220的反馈电阻选择为R1=120kΩ,R2=4.7kΩ,其输出电压的典型值为15.92V,实测为15.9V;
主要的改进包括:1) 将Q1由三极管改为PMOS AO3401,即降低输入电阻,减少压降,使得DC-DC能正常输出恒定电压。2) 将充电电阻R2由75Ω改为510Ω,当充电电阻为75Ω时,瞬间最大充电电流约为16V/75Ω=213mA;当锂亚电流的输出电压为3.6V时,如果升压电路的效率为0.85,则瞬间供电最大电流达到:
3) 去除由VCC直接向电容充电的电路改完之后实测,电容充电至12.0V左右的时间为2.9s,改之前的充电时间约为1.8s;
图9. 改进后的电容充电波形在地线串入1.6Ω的电阻测试锂亚电池在充电时的供电电流波形,如下图:
图10. 锂亚电池的供电电流波形
从波形上看,在开始充电的一段时间内,供电电流有高频的波动,需要用更好的示波器进一步排查原因,之后的最大供电电流约为236mV/1.6Ω=147mA;