BLDC控制程序怎么编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BLDC控制程序怎么编程相关的知识,希望对你有一定的参考价值。

无刷电机6路换向PWM信号的程序,我想了想,半桥控制方法(下桥一直闭合,上桥壁PWM信号)用3个PWM管脚,这样进行编程是否可行?还是一般用6路的PWM模块(像2407dsp一样)这样编程才行。当然除了驱动电机运行还需检测一些其他量实现其他功能。

“(下桥一直闭合,上桥壁PWM信号)”???楼主是什么意思,将下桥全关?这样怎么成回路,没有回路电流如何流。一般BLDC的控制(功率管上)应该分直通调制和PWM波调制(也就是楼主说的PWM信号),由此出来的2V2组合,也就是有四种控制方式:上下都是直通调制、上下分别是直通和PWM波调制、上下分别是PWM波和直通调制(这种我没见过)、上下都是PWM波调制。看怎么用,负载要求和功耗要求都有那就用上下都PWM波调制合适。至于检测那就是位置和扭矩信息,具体就看你用什么要求的了。 参考技术A   编程示例如下:
  Uint16 shunNum[6]=0x0f3d,0x03fd,0x03df,0x0fd3,0x0df3,0x0d3f;
  //顺时针换向表
  interrupt void T1_Cap_isr(void);
  int count=0;
  int mm=0;
  void main(void)
  
  /*初始化系统*/
  InitSysCtrl();
  /*关中断*/
  DINT;
  IER = 0x0000;
  IFR = 0x0000; //清中断
  // LedCount = 0;
  /*初始化PIE*/
  InitPieCtrl();
  /*初始化PIE中断矢量表*/
  InitPieVectTable();
  /*初始化定时器0*/
  InitCpuTimers();
  /*初始化外设*/
  InitPeripherals();
  /* 初始化事件管理器,确定PWM*/
  InitEv();
  /*受EALLOW保护的捕捉中断矢量,重新映射捕捉中断入口*
  /EALLOW;
  //允许访问EALLOW保护的寄存器
  PieVectTable.CAPINT1 = &T1_Cap_isr;
  //指向中断服务寄存器捕捉1的地址
  PieVectTable.CAPINT2 = &T1_Cap_isr;
  PieVectTable.CAPINT3 = &T1_Cap_isr;
  //重新EALLOW保护
  /*使能中断捕捉,向量是查表得,INT3.5-INT3.7*/
  PieCtrl.PIEIER3.bit.INTx7=1;
  PieCtrl.PIEIER3.bit.INTx6=1;
  PieCtrl.PIEIER3.bit.INTx5=1;
  IER|= M_INT3;
  //使能INT3
  EDIS;
  EINT; // 开放全局中断,Enable Global interrupt INTM
  ERTM; // 开放全局实时中断,Enable Global realtime interrupt DBGM
  for(;;)
  
  
  
  interrupt void T1_Cap_isr(void)
  
  mm=1;
  //换向,
  if (count==5)
  count=0;
  else count++;
  EvaRegs.ACTR.all=shunNum[count];
  EvaRegs.EVAIFRC.all=0x0007;
//三个捕捉中断标志位清零
  //响应中断寄存器清除,写1清0,进而才能接收下一外围中断
  PieCtrl.PIEACK.bit.ACK3=1;
  PieCtrl.PIEIFR3.all = 0;
  
参考技术B 都可以,多看看资料,有几种方法,每个方法都有自己的特点,DSP核的处理器常用你说的2407的方法 参考技术C ”闭合“就是导通。我知道各种驱动方式啦,我是说编程具体实现。当然了,有像2407这种3路SPWM驱动最好了,如果CPU只是有几路单独的PWM,是不是通过编程也容易实现

以上是关于BLDC控制程序怎么编程的主要内容,如果未能解决你的问题,请参考以下文章

手机上怎么编程序

用PowerBuilder怎么编程时,怎么调用帮助文件?

显示0.000该怎么编程

程序员的编程思想怎么培养?

请问哪位可以告诉我Disco240控制台怎么编程序

Spark SQL怎么创建编程创建DataFrame