sdlqzql 发表于 2021-12-25 18:28:36

【求助】4G模组通电导致STC8G单片机复位

4G 模组使用的国产,上海合宙家的AIR724UG

因为要做低功耗,所以,用了一个STC8G1K08的8pin单片机;

STC8G单片机与4G模组公用3.6V的锂电池;

再4G模组不通电的时候,单片机正常运行;

当4G模组通电瞬间,单片机就复位,而后继续运行程序;

单片机程序很简单,为了测试,如下:

void main()
{
        delay_ms(100);
       
        USART1_Init();
       
        USART1_SendString_NOT_INTERRUPT("sys is start now \r\n");
       
        while(1){
                dat++;
                USART1_SendString_NOT_INTERRUPT("dat is :");
                Usart1_SendNum(dat);
                USART1_SendString_NOT_INTERRUPT("\r\n");
                delay_ms(1000);
        }
}

串口打印截图(4G通电瞬间会导致MCU复位):



求助:解决4G通电,导致单片机复位的问题

原理图在这:



C指针 发表于 2021-12-25 18:38:21

示波器抓一下电源,看看4G模组通电或者收发的时候电压有没有跌落。估计是电流供电不足

mPiDDR 发表于 2021-12-25 18:46:52

V3.6 ----二级管-----大电容----单片机
这样可以保证在V3.6电压掉电的情况下,单片机这端通过电容有短暂稳定供电

sdlqzql 发表于 2021-12-25 18:53:00

C指针 发表于 2021-12-25 18:38
示波器抓一下电源,看看4G模组通电或者收发的时候电压有没有跌落。估计是电流供电不足 ...

我做了个实验,我再4G的主电源回路串联了一个0.5A的自恢复保险,就不会导致复位了!
看来是瞬间供电不足。

你觉得串联个自恢复好,还是加大电源入口的电容好?

sdlqzql 发表于 2021-12-25 18:53:59

mPiDDR 发表于 2021-12-25 18:46
V3.6 ----二级管-----大电容----单片机
这样可以保证在V3.6电压掉电的情况下,单片机这端通过电容有短暂稳 ...

有道理,你的建议,我觉得很好,我马上测试一下

sdlqzql 发表于 2021-12-25 19:07:22

mPiDDR 发表于 2021-12-25 18:46
V3.6 ----二级管-----大电容----单片机
这样可以保证在V3.6电压掉电的情况下,单片机这端通过电容有短暂稳 ...

把你微信收款码贴一个,我要请你喝冬天里的第一杯来自阿莫往右的奶茶!!!{:lol:}

用你的方法,解决了!

lixin91985 发表于 2021-12-25 19:29:30

用支持大电流输出的电池,后面再加DC-DC 才是解决问题的办法。
别的都是饮鸠止渴。

mPiDDR 发表于 2021-12-25 19:31:59

sdlqzql 发表于 2021-12-25 19:07
把你微信收款码贴一个,我要请你喝冬天里的第一杯来自阿莫往右的奶茶!!!

用你的方法,解决了 ...

解决了就好。多测试,找出最临界电容值,再提供3到5倍的余量

z31com 发表于 2021-12-25 19:50:06

有一招你可以试下,我还得很好用:
要使能4G模组时,先输出PWM信号,再拉高。PWM信号可以IO来模拟(差不多意思就行)
因为你的问题主要是给4G模组供电时,负载瞬间太大。只要让4G模组的电源上升弄缓一点就行。就不会出现电路跌落。

Landmark 发表于 2021-12-25 23:59:42

我碰过跟楼主一模一样的问题,不过我是用加的是电阻,而不是二极管。

yhg-cad 发表于 2021-12-26 00:38:51

不但要大电容,220UF的或470UF的,还要并几个MLCC电容一起。而且供电你那样搞不行,要有延时功能的开关电路才行

sdlqzql 发表于 2021-12-26 18:53:52

Landmark 发表于 2021-12-25 23:59
我碰过跟楼主一模一样的问题,不过我是用加的是电阻,而不是二极管。

电阻串联再4G供电回路吗

wx-ta 发表于 2021-12-26 19:14:38

楼主用的3.6v电池是锂亚电池吗,如果是则需要使用那种自带超级电容的电池,因为单锂亚电池放电电流比较小,通信模组上点入网时点就很大,能达到2到3A,除了使用大电流放电的电池外,需要在靠近模组电源管脚放几百uF钽电容和几十uF的MLCC

小李非刀 发表于 2021-12-27 10:15:48

这种情况,基本就是电压跌落造成,常见有人用MOSFET给另外一个电路供电,MOSFET一导通,给电容从0电压开始充电,瞬间拉低MCU部分的电压,造成跌落复位,用示波器很容易观察到(要使用us级扫描速度),通常串一个1~10欧姆电阻就能解决的,并且电流并不大,就100%是电容冲击造成。

leifeng 发表于 2021-12-27 10:22:56

wx-ta 发表于 2021-12-26 19:14
楼主用的3.6v电池是锂亚电池吗,如果是则需要使用那种自带超级电容的电池,因为单锂亚电池放电电流比较小, ...

对,4G模块附近要放大电容来保证4G模块上电的瞬间大电流

longls 发表于 2021-12-27 14:14:37

ER26500+SPC1520/ER34615+SPC1520

sdlqzql 发表于 2021-12-27 16:54:40

leifeng 发表于 2021-12-27 10:22
对,4G模块附近要放大电容来保证4G模块上电的瞬间大电流

大电容的充电更容易造成这种情况,你楼上说的那个,串联电阻应该是比较好的。我串联自恢复保险丝测试过,也是可以的,只是自恢复保险丝有寿命,还是串电阻比较好

sdlqzql 发表于 2021-12-27 16:57:04

wx-ta 发表于 2021-12-26 19:14
楼主用的3.6v电池是锂亚电池吗,如果是则需要使用那种自带超级电容的电池,因为单锂亚电池放电电流比较小, ...

电源放电电流没问题,就是瞬间吸收大电流,把单片机电压搞跌落了,用串二极管的方式单独给单片机一个旁路470uf电容,就好了

C指针 发表于 2021-12-27 18:29:33

sdlqzql 发表于 2021-12-27 16:57
电源放电电流没问题,就是瞬间吸收大电流,把单片机电压搞跌落了,用串二极管的方式单独给单片机一个旁路 ...

一般都是3.7V——二级管——大电容——4G模组,大电容靠近模组电源脚给模组提供瞬间大电流供电。
你现在电容加在单片机这边,单片机是不复位了。但是如果板子上面有其他不能低压工作逻辑元器件的话还是会出问题

wx-ta 发表于 2021-12-31 11:07:26

sdlqzql 发表于 2021-12-27 16:57
电源放电电流没问题,就是瞬间吸收大电流,把单片机电压搞跌落了,用串二极管的方式单独给单片机一个旁路 ...

你这个解决办法也可以额,但是只适合做试验,不能做产品

qwe2231695 发表于 2021-12-31 23:22:55

加软启动,使用一个pmos,G级加电容

yuntianrenren 发表于 2022-1-1 21:28:48

最好的解决办法不是只加电容。首先,电池尽量是ERxxx搭配SPC1550或者SPC1520使用,第二就是你的MOS开关要修改一下,建议改为PMOS开关控制VCC,PMOS的G串入10K左右电阻(可以根据实际情况修改)利用G极电容减缓上电速度,另外可以在G和开关输出之间预留一个并联的电容,需要更缓慢的上升可以加上。

sdlqzql 发表于 2022-1-3 19:59:43

yuntianrenren 发表于 2022-1-1 21:28
最好的解决办法不是只加电容。首先,电池尽量是ERxxx搭配SPC1550或者SPC1520使用,第二就是你的MOS开关要修 ...

请问:

你说的“PMOS开关控制VCC”,指的是,单独用一个P沟道Mos来控制启动电流太大的4G模组吗?让P沟道Mos缓慢导通,从而起到限流最用?

yuntianrenren 发表于 2022-1-3 21:05:27

sdlqzql 发表于 2022-1-3 19:59
请问:

你说的“PMOS开关控制VCC”,指的是,单独用一个P沟道Mos来控制启动电流太大的4G模组吗?让P沟道 ...

意思是不管是控制VCC还是控制GND的通断,都要确保4G模块上电要缓慢上电,防止上电太快,由于电池响应速度太慢引起电压跌落,导致MCU复位。

cwei 发表于 2022-1-4 09:31:13

mPiDDR 发表于 2021-12-25 18:46
V3.6 ----二级管-----大电容----单片机
这样可以保证在V3.6电压掉电的情况下,单片机这端通过电容有短暂稳 ...

以前做gprs通信也是这样解决的,,,

小李非刀 发表于 2022-1-4 11:29:06

有多种方法处理给别的电路供电瞬间引起电压跌落:
1、电流不大(50mA以下),则串联5.1~20欧姆电阻。
2、电流比较大,则串联合适的电感(注意PMOSFET的输出也要一个电容,避免被反电动势击穿)。
3、电源 --- 肖特基二极管 --- MCU VCC,这样电源的瞬间跌落,二极管截止,MCU由电容短暂维持供电。以前处理带电机的玩具类都是这样。
4、软启动,比如在FET的GS接一个合适的电容。
5、电流不大可以用PNP三极管代替PMOSFET,三极管是恒流特性(FET是恒阻),设计合适不会有大的冲击电流(小电流200mA以下我基本都是用三极管),并且不容易过流烧毁。三极管设计为深度饱和,压降会小于0.1V。
6、分开供电。

qwe2231695 发表于 2022-1-4 12:39:29

小李非刀 发表于 2022-1-4 11:29
有多种方法处理给别的电路供电瞬间引起电压跌落:
1、电流不大(50mA以下),则串联5.1~20欧姆电阻。
2、电 ...

{:handshake:}好方法
页: [1]
查看完整版本: 【求助】4G模组通电导致STC8G单片机复位