fisholive
发表于 2023-8-2 11:31:58
梁工,
试产发现一个严重问题,经常启动时候会烧掉三极管,烧掉后三极管B极有12V电压,应该市C极和B极击穿了,
以前一直测试没有遇到这样问题,这次买的三极管S8050应该不是正品,应该换成其他三极管(比如3904)或者电路要稍微改下吗?不胜感激!
梁工
发表于 2023-8-2 17:22:25
fisholive 发表于 2023-8-2 11:31
梁工,
试产发现一个严重问题,经常启动时候会烧掉三极管,烧掉后三极管B极有12V电压,应该市C极和B极击穿 ...
12V条件下(自举到24V)8050小电流能击穿烧坏,这个还真没遇到。你可以换耐压更高一点的看看,比如1N5551,耐压150V。
fisholive
发表于 2023-8-2 20:34:25
梁工,
mos管和三极管基本同时坏的,我估计是打开相高端PWM没有加500ns延迟,以前一直没有问题 ,这次批量买的MOS型号不同,
应该是MOS管S2和G2先击穿,三极管C极相当于直接12V没有经过限流电阻,所以随后三极管也击穿了, 但是好奇怪,CE之间并未被击穿
梁工
发表于 2023-8-2 23:03:48
fisholive 发表于 2023-8-2 20:34
梁工,
mos管和三极管基本同时坏的,我估计是打开相高端PWM没有加500ns延迟,以前一直没有问题 ,这次批 ...
之前你并没说MOSFET损坏。
MOSFET的S、G击穿短路,则三极管由于过流也烧毁。
要保证MOSFET的质量,驱动都是先关闭。一个,再开通另一个
fisholive
发表于 2023-8-8 13:26:40
梁工,我换相增加500ns延迟还是有概率会烧掉,我增加到800ns还是有概率会烧掉了,三极管从是是S8050换成3904问题仍然存在,三极管和mos同时坏。
会不会三极管没有及时关掉,工作在饱和区间或其他原因?
void StepXL(void) // 换相序列函数
{
switch(Step)
{
case 0:// AB
PWM0_L=0; PWM2_L=0; CCAP1H=0; CCAP2H=0;
Delay_800ns();
CCAP0H = PWM_Value; // 打开A相的高端
PWM1_L = 1; // 打开B相的低端
ADC_CONTR = 0XED; // 选择P1.5作为ADC输入 即c相电压
CMPCR1 = 0x9C; //bit7=1 允许比较器, bit4=1 比较结果由1变0, 产生下降沿中断 (不能响应下降沿中断?)
break;
case 1:// AC
PWM0_L=0; PWM1_L=0;CCAP1H=0; CCAP2H=0;
Delay_800ns();
CCAP0H = PWM_Value; // 打开A相的高端
PWM2_L = 1; // 打开C相的低端
ADC_CONTR = 0XEC; // 选择P1.4作为ADC输入 即B相电压
CMPCR1 = 0xAC; //上升沿中断
break;
case 2:// BC
PWM0_L=0; PWM1_L=0; CCAP0H=0; CCAP2H=0;
Delay_800ns();
CCAP1H = PWM_Value; // 打开B相的高端
PWM2_L = 1; // 打开C相的低端
ADC_CONTR = 0XEB; // 选择P1.3作为ADC输入 即a相电压
CMPCR1 = 0x9C; //下降沿中断
break;
case 3:// BA
PWM1_L=0; PWM2_L=0; CCAP0H=0; CCAP2H=0;
Delay_800ns();
CCAP1H = PWM_Value; // 打开B相的高端
PWM0_L = 1; // 打开A相的低端
ADC_CONTR = 0XED; // 选择P1.5作为ADC输入 即c相电压
CMPCR1 = 0xAC; //上升沿中断
break;
case 4: // CA
PWM1_L=0; PWM2_L=0; CCAP0H=0; CCAP1H=0;
Delay_800ns();
CCAP2H = PWM_Value; // 打开C相的高端
PWM0_L = 1; // 打开A相的低端
ADC_CONTR = 0XEC; // 选择P1.4作为ADC输入 即B相电压
CMPCR1 = 0x9C; //下降沿中断
break;
case 5: // CB
PWM0_L=0;PWM2_L=0;CCAP0H=0; CCAP1H=0;
Delay_800ns();
CCAP2H = PWM_Value;// 打开C相的高端
PWM1_L = 1; // 打开B相的低端
ADC_CONTR = 0XEB; // 选择P1.3作为ADC输入 即a相电压
CMPCR1 = 0xAC; //上升沿中
default:
break;
}
梁工
发表于 2023-8-8 14:13:46
fisholive 发表于 2023-8-8 13:26
梁工,我换相增加500ns延迟还是有概率会烧掉,我增加到800ns还是有概率会烧掉了,三极管从是是S8050换成390 ...
双踪示波器看一下驱动波形。
geffrey.gu
发表于 2023-8-9 16:05:25
梁工 发表于 2023-8-8 14:13
双踪示波器看一下驱动波形。
会有 FOC 的DEMO ?
梁工
发表于 2023-8-9 21:16:02
geffrey.gu 发表于 2023-8-9 16:05
会有 FOC 的DEMO ?
目前还没有。
wellhope
发表于 2023-9-13 14:40:23
梁工,您好!网上买了一个无刷电机,请问您图上标的HA,HB,HC与HW,HV,HU是怎么对应的呀!按图画了一块PCB,用DC24V,带HALL的程序,上电就烧PWM3,PWM3L输出的功率管。请梁工有空不吝指教一下,先谢谢梁工!
梁工
发表于 2023-9-13 16:05:21
wellhope 发表于 2023-9-13 14:40
梁工,您好!网上买了一个无刷电机,请问您图上标的HA,HB,HC与HW,HV,HU是怎么对应的呀!按图画了一块PCB, ...
就算接错霍尔信号,也不应该烧MOSFET,最多转不起来。开启启动用表小的油门(电位器)。
U、V、W是电枢(线圈)引脚,接驱动输出,随便确定一个接线顺序。
HU、HV、HW是霍尔信号,连电源一起接到电路中,相序随便先定一个顺序,如果转不起来,就换线,换几次一般都正常了。我通常先用无霍尔方式驱动起来,示波器看霍尔信号跟电枢信号的相位,就可以确定正确的连接。