发现EG的栅极驱动芯片,有个毛病【已查清问题,芯片没毛病】
本帖最后由 sy8501 于 2023-7-31 15:12 编辑目前板上有EG3116DEG2104S存在同一种毛病。
当MCU被复位后,会有一瞬间,30V的开关电源被拉低到28V,电源瞬间过流,接着恢复。
后面正常控制是没问题的,功耗也正常。
===
当我把配置PWM的IO口,注释掉,编译,下载,运行
再对MCU复位,就没有发生供电的开关电源过流的情况。
===
2023.07.31 15:12 编辑标题: 已经查清问题来源,证明了这俩芯片没有问题。 HIN LIN 加下拉,确保复位时关闭驱动芯片,mcu复位时IO状态不确定。 qwe2231695 发表于 2023-7-31 02:15
HIN LIN 加下拉,确保复位时关闭驱动芯片,mcu复位时IO状态不确定。
(引用自2楼)
芯片内部自带下拉了。
EG2104S 也自带了下拉。
200k的超弱下拉是不够的,建议外部加4.7K,或者5.1K。 qwe2231695 发表于 2023-7-31 03:22
200k的超弱下拉是不够的,建议外部加4.7K,或者5.1K。
(引用自5楼)
你可能没看清楚我的描述。
不是复位时候,IO不确定状态时候出的问题。
是在配置完PWM HIN LIN 的IO的瞬间出的问题。
也就是说,在复位后,HIN LIN 还没被配置的时候,状态是正常的。
就是在被配置的瞬间,MOS上下桥瞬间短路了一下。
我回看了以前的IRS21867的板子,无此问题 电路一样。
本帖最后由 Aper-2020 于 2023-7-31 05:31 编辑
sy8501 发表于 2023-7-31 03:46
也就是说,在复位后,HIN LIN 还没被配置的时候,状态是正常的。
就是在被配置的瞬间,MOS上下桥瞬间短路 ...
(引用自7楼)
接示波器上去测一下,一目了然。
我猜大概率是被配置瞬间,一些配置的先后顺序没搞对, 造成初始那一个波形不对。
这两个芯片的死区或者驱动能力不一样,所以另一片没问题。 照理这芯片有逻辑控制的,不会上下管同时导通的 tang_qianfeng 发表于 2023-7-31 08:09
照理这芯片有逻辑控制的,不会上下管同时导通的
(引用自9楼)
但是如果硬件保护可靠,不会同时导通的话,那么“会有一瞬间,30V的开关电源被拉低到28V,电源瞬间过流,”这个现象怎么来的?
有点虚了,也刚用eg的设计了板子~~ z123 发表于 2023-7-31 08:55
但是如果硬件保护可靠,不会同时导通的话,那么“会有一瞬间,30V的开关电源被拉低到28V,电源瞬间过流, ...
(引用自10楼)
我也用了EG2131.... 批量出货的产品,应该不会有这种问题。可能是用法上有问题 把IO口配置屏蔽了就没这种现象,明显就是您程序问题了,哈哈。EG在栅极驱动方面还可以,出货量也大,几乎不可能出现这种低级错误。 amigenius 发表于 2023-7-31 11:19
把IO口配置屏蔽了就没这种现象,明显就是您程序问题了,哈哈。EG在栅极驱动方面还可以,出货量也大,几乎不 ...
(引用自13楼)
这个现象估计一般人也发现不了。只在配置io的瞬间出现,配置瞬间是HIN输出低电平,LIN输出高电平。
这个瞬间过后,一切正常,控制也正常。
有没有人也在用EG,可以去看看有没有这种情况。 给MCU来个复位即可。正常上电因为有大电容充电,可能看不出来。 amigenius 发表于 2023-7-31 11:19
把IO口配置屏蔽了就没这种现象,明显就是您程序问题了,哈哈。EG在栅极驱动方面还可以,出货量也大,几乎不 ...
(引用自13楼)
我楼主位说了,我同一个板上也用了EG2104S,2104的SD引脚通过1k电阻上拉到3.3V
2104的io配置瞬间输出低电平。而这个瞬间,mos上下桥同时导通了。
这么简单的逻辑,程序再怎么错,正常芯片也不会出现此现象。
有些人程序有bug也说是单片机的bug sy8501 发表于 2023-7-31 11:33
我楼主位说了,我同一个板上也用了EG2104S,2104的SD引脚通过1k电阻上拉到3.3V
2104的io配置瞬间输出低 ...
(引用自15楼)
理论上2104是不可能同时上下桥同时导通的。不要靠估了,挂示波器上去一目了然 不好意思,耽误大家时间了。
刚刚拿前几天程序试了一下,前几天程序仅开启了TIM1 TIM8, 无此问题,
后面加了一路TIM2后 ,集体尿崩。
我再定位定位问题。
autolog 发表于 2023-7-31 11:34
有些人程序有bug也说是单片机的bug
(引用自16楼)
被你说对了。
目前定位到,问题来自TIM2 驱动的EG2104S ,而 EG3116D没有问题。
TIM2输出PWM,第一次写,没看出来什么问题。
GPIO_InitTypeDef gpio;
TIM_TimeBaseInitTypeDef tim;
TIM_OCInitTypeDef oc;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
gpio.GPIO_Pin = GPIO_Pin_15;
gpio.GPIO_Mode= GPIO_Mode_AF;
gpio.GPIO_OType = GPIO_OType_PP;
gpio.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_Init(GPIOA,&gpio);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource15, GPIO_AF_TIM2);
tim.TIM_Prescaler = 0;
tim.TIM_CounterMode = TIM_CounterMode_Up;
tim.TIM_Period = 4000; //80000000/4000 = 20kHz
tim.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseInit(TIM2,&tim);
oc.TIM_OCMode = TIM_OCMode_PWM1;
oc.TIM_OutputState= TIM_OutputState_Enable;
oc.TIM_Pulse = 0;
oc.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC1Init(TIM2,&oc);
TIM_ARRPreloadConfig(TIM2,ENABLE);
TIM_OC1PreloadConfig(TIM2,TIM_OCPreload_Enable);
TIM_Cmd(TIM2, ENABLE); 问题大概找到了。
EG2104S 后面接了2个mos,mos 后面挂了一个5Ω刹车电阻。
配置TIM2的瞬间,TIM2-CH1 莫名其妙的输出了一个大约150ms的高电平,导致刹车电阻被接通。造成电源被拉低。
至于TIM2-CH1 为什么配置瞬间会输出150ms的高电平,还没定位到。
用示波器 从TIM2 CH1PA15 引脚抓到的 波形。在配置TIM2 CH1 PA15的瞬间 出现的。
但电平高度没有达到3.3V,大概只有2.8V
所以尚不确定,这个高电平是EG2104S自己产生的,还是STM32产生的。
等会把电阻拆掉了,就能确定了。
已经拆掉电阻,高电平上升到3.3V了。
可以确定是STM32出来的了。EG2104S 证明没有问题。
误会他们俩了。 现在问题回到 PA15 口了,搞不清楚它为什么配置IO后,会出现一个150ms的高电平输出。
原则上驱动芯片保证了不会上下管同时导通的 tang_qianfeng 发表于 2023-7-31 14:06
原则上驱动芯片保证了不会上下管同时导通的
(引用自24楼)
嗯 上下桥没导通,
是STM32F4的 PA15配置成TIM2-CH1-PWM后
上电异常输出一个150ms的高电平导致。
目前还没找到什么原因,有可能跟JTAG有关。(我只用 SWD 2线来调试)
造孽了。才去看手册,发现PA15内部有上拉。 PA15有内部上拉,而从复位后到PA15被初始化成 TIM2-CH1-PWM,中间经历了150ms
所以出现了150ms的高电平。这150ms的高电平作用在EG2104S上,直接让刹车电阻导通了。
问题算是彻底找到了。
之前没发现是因为刚开始调试没插刹车电阻,如果插了,而里面又没程序,PA15的上拉,会导致板子直接短路。
sy8501 发表于 2023-7-31 15:07
PA15有内部上拉,而从复位后到PA15被初始化成 TIM2-CH1-PWM,中间经历了150ms
所以出现了150ms的高电平。 ...
(引用自27楼)
优秀 EG2104S直接对PWM输入引脚输入长时的高电平,也只是短路一下,之后因为自举电容得不到充电,就不输出了。
所以27L的说法不完全正确。无程序的板带刹车电阻,也只会短路一瞬间,后续不会再短路了。 sy8501 发表于 2023-7-31 18:14
EG2104S直接对PWM输入引脚输入长时的高电平,也只是短路一下,之后因为自举电容得不到充电,就不输出了 ...
(引用自29楼)
原因找到了怎么解决这个问题?一上电先马上把这个管脚配置成普通IO模式? 887799 发表于 2023-7-31 18:45
原因找到了怎么解决这个问题?一上电先马上把这个管脚配置成普通IO模式? ...
(引用自30楼)
这个板的解决方案: main函数下的第一行代码就马上把PA15 配置成TIM2-CH1 PWM,这样就只会有一个100us级别的短尖峰。
下次改,把IO换掉。换一个下拉或者悬空IO。
页:
[1]