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是霍尔信号,连电源一起接到电路中,相序随便先定一个顺序,如果转不起来,就换线,换几次一般都正常了。我通常先用无霍尔方式驱动起来,示波器看霍尔信号跟电枢信号的相位,就可以确定正确的连接。
页: 1 2 3 4 5 6 7 [8] 9 10 11 12 13 14 15 16 17
查看完整版本: 三相无刷直流电机驱动-8H系列-带HALL 梁工例子