This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TMS320F28069M:程序解释

Guru**** 2229435 points
Other Parts Discussed in Thread: CONTROLSUITE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/822477/ccs-tms320f28069m-program-interpretation

器件型号:TMS320F28069M
Thread 中讨论的其他器件:controlSUITE

工具/软件:Code Composer Studio

大家好、我不理解 这个过程、请帮我!

空 HALLBLDC_State_Check (空)

// Hall_A、Hall_B、Hall_C
 gHall_GpioData =(~HAL_readGpio (halHandle、(GPIO_Number_e) HAL_HallGpio_C)& 0x1)<< 2;  /CAP1->J10/J4_1->绿色
 gHall_GpioData +=(~HAL_readGpio (halHandle、(GPIO_Number_e) HAL_HallGpio_B)& 0x1)<< 1;  //CAP2->J10/J4_2->绿色和白色
 gHall_GpioData +=(~HAL_readGpio (halHandle、(GPIO_Number_e) HAL_HallGpio_A)& 0x1);       //CAP3->J10/J4_3->灰色和白色
 gHall_State = gHall_GpioData;
 if (gHall_State!= gHall_PrevState)
 {
  gHall_timer_now = HAL_readTimerCnt (halHandle、2);
  gHall_Time_delta_now = gHall_timer_prev - gHall_timer_now;
  gHall_timer_prev = gHall_timer_now;
  gHall_Time_delta =(gHall_Time_delta_now + gHall_Time_delta_prev)>1;
  gHall_Time_Delta_prev = gHall_Time_Delta_Now;
  gHall_speed_FDB_0p01Hz = gHall_speed_scale/gHall_Time_delta;
  gHall_speed_FDB_pu = gHall_speed_FDB_0p01Hz*gHall_Speed_0p01hz_TO_pu_SF;
//    if (TRAJ_getIntValue (trajHandle_SPD)<_IQ (0.0))
//  {
//   gHall_speed_FDB_pu =-gHall_speed_FDB_pu;
//  }
    //方向检查
  gHall_State_Delta = gHall_PwmIndex[gHall_State]- gHall_PwmIndex[gHall_PrevState];
  if ((gHall_State_Delta =-1)||(gHall_State_Delta = 5))
  {
   gHall_dir = 1;  //正向
  }
    否则、如果((gHall_State_Delta = 1)||(gHall_State_Delta =-5))
  {
   gHall_dir = 2;  //负方向
   gHall_speed_FDB_pu =-gHall_speed_FDB_pu;
  }
  其他
  {
   gHall_dir = 0;  //方向变化
  }
  //检查是否有驱动。
  //如果方向改变,速度反馈被复位。
  if (gHall_dir!= gHall_dir_prev)
  {
   gHall_speed_FDB_pu =_IQ (0.0);
   gHall_dir_change = 1;
  }
  gHall_LastState = gHall_PrevState;
  gHall_PrevState = gHall_State;
  gHall_dir_prev = gHall_dir;
  gHall_Flag_State_Change = true;
  gHall_PwmCnt = 0;
 }
 其他
 {
  gHall_PwmCnt++;
  IF (gHall_PwmCnt > gHall_PwmCntMax)
  {
   gHall_speed_FDB_pu =_IQ (0.0);
   gHall_PwmCnt = 0;
  }
 }
 返回;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    正如在另一篇文章中对您的回复、PWM 状态由霍尔输入信号的 GPIO 状态定义。

    您可能会看到 controlSUITE 中有关使用霍尔传感器的 BLDC 驱动的示例。 可以从以下链接下载 controlSUITE。

    https://www.ti.com/tool/controlsuite

    可在以下文件夹中查找相关文档和示例项目(如果您默认安装软件)。

    C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVBLDC_Sensored\~文档