搜索

[电机应用] 【Autochips评测】+BLDC正常运转

[复制链接]
213|15
 楼主 | 2021-2-17 16:33 | 显示全部楼层 |阅读模式
ps, ip, se, ni
本帖最后由 yinwuqing110 于 2021-2-17 16:33 编辑

    大年初六,春节假期即将结束,重新拾起“ATC杯”项目,前面帖子也提到了该开发套件包含了控制板与电机驱动板,两块板通过IDC接口总线连接,在《ATC AC78xx Motor Demo Board Guide》文档中提及到电路供电部分需要注意。
AC781x电机Demo板硬件模块示意图.png
     正如上图所示,如果外部供电从低压驱动线路接口输入12V,则需要注意图中所指出的,两个焊点是否需要短路取决于控制板与功率管同时都要满足有电压输入。起初在淘宝上买了个带霍尔传感的无刷直流电机,只从J15端子输入12V,结果没有注意给控制板供12V电压,以为连接了JLink、调试串口就足够了,其实不然,控制板需要电机的反馈信号,必须有12V电压输入到控制板中。总而言之,对于该Demo板,其MCU控制板和功率板的12V输入只需接一路即可,如果电机额定电压为12V,那么将功率板中的功率管供电模式选择跳点(靠近D5)短接即可,不需要再额外供电;如果电机的额定电压大12V,那么功率管就需要单独供电;需要将功率板上的功率管供电模式选择跳点(靠近D5)断开,电源从J15端输入。
      本人在淘宝上买了一个尼得科无刷直流电机,带霍尔接口,宝贝详情如下:
小马达.jpg
宝贝详情.png
       该电机的线路分布如下:
连线.jpg
       再结合Demo板与电机连接图与J5管脚分布原理图,依葫芦画瓢,便可知板上实物接线方法。
J5引脚.png
Demo板与电机连接图.png
    采用“motorapp20201104(AC781x)”例程,与大伙来温习一下四种方式的调试流程图。
带霍尔传感器BLDC调试流程图.png
带霍尔传感器BLDC调试流程图
无感BLDC调试流程图.png
无感BLDC调试流程图
带霍尔的FOC调试流程图.png
带霍尔的FOC调试流程图
无感FOC调试流程图.png
无感FOC调试流程图
     由于使用的是带霍尔的BLDC小马达,因此如果采用工作模式二运行,在工程源码中需要打开有关BLDC的宏定义。
  1. void App_BLDC_Hall(void)
  2. {
  3.     DEBUGMSG(DEBUG_ZONE_INFO, ("[BLDC]App_BLDC_Hall\r\n"));
  4.     BLDC_GPIO_Initialize();
  5.     Motor_Encoder_Gpio_Init();
  6.     BLDC_TIM_Initialize();
  7.     BLDC_Parameters_Initialize();
  8.     BLDC_CTU_Init();
  9.     BLDC_ADC_Init();
  10. #if (defined BLDC_HALL)
  11.     BLDC_Hall_PWDT_Initialize();
  12. #elif (defined BLDC_ENCODER)
  13.     ENCODER_SpeedParameter_Initialize();
  14. #endif
  15.     BLDC_PWM_Initialize();
  16.     PWM_ComplementaryModeConfig(PWM2, 0);
  17.     BLDC_DEBUG_Initialize();

  18. #if (defined INIT_POS_CTRL)
  19.     BLDC_InitPos_Initialize();
  20. #endif
  21.     while (1)
  22.     {
  23.         BLDC_Keys_Read();
  24.         if (g_bldc1msTime)
  25.         {
  26.             g_bldc1msTime = 0;
  27. #if (defined BLDC_HALL)
  28.             BldcHallMachine();
  29. #elif (defined BLDC_ENCODER)
  30.             BldcEncoderMachine();
  31. #endif
  32.         }
  33.     }
  34. }
复制代码
      在“bldc_app.h”中宏定义#define BLDC_HALL    1
      在“bldc_app.c”文件中,在函数BLDC_Hall_Task()中稍作修改,即可改变其方波模式驱动电机。
  1. void BLDC_Hall_Task(void)
  2. {
  3.     int16_t tmpRpm = 0;
  4.     uint8_t tmpPhase = 0;

  5.     if (PWDT_GetOverflowFlag())
  6.     {
  7.         PWDT_ClrOverflowFlag();
  8.         g_motorFeedbackRpm = 0;
  9.     }

  10.     if (PWDT_GetReadyFlag())
  11.     {
  12.         PWDT_ClrReadyFlag();
  13.         tmpPhase = PWDT_GetHallStatus() & 0x07;

  14.         g_hallPhase[g_hallCnt] = g_currentPhase;
  15.         g_hallCnt ++;
  16.         if (g_hallCnt >= 6)
  17.         {
  18.             g_hallCnt = 0;
  19.             g_hallStateValid = BLDC_Hall_ValidityCheck(g_hallPhase);
  20.         }
  21.         //g_hallStateValid = BLDC_Hall_ValidityCheck(g_hallPhase);
  22.                         
  23.         if (tmpPhase != g_currentPhase)
  24.         {
  25.             g_currentPhase = tmpPhase;
  26.             tmpRpm = BLDC_Hall_SpeedGet() * 60 / PAIR_NUM;
  27.             g_motorFeedbackRpm = (g_motorFeedbackRpm * 7 + tmpRpm) >> 3;
  28.             g_motorFeedbackRpm = (g_motorFeedbackRpm < MOTOR_MAX_RPM) ? g_motorFeedbackRpm : MOTOR_MAX_RPM;
  29.         }
  30.         BLDC_Hall_Run(s_motorDir, g_currentPhase);
  31.         if (!g_motorStartReady)
  32.         {
  33.             if ((g_motorFeedbackRpm >= MOTOR_MIN_RPM) && (g_state == STATE_START))
  34.             {
  35.                 g_startReadyCnt ++;
  36.                 if (g_startReadyCnt == 6)
  37.                 {
  38.                     g_startReadyCnt = 0;
  39.                     g_motorStartReady = 1;
  40.                     //g_motorRefRpm = MOTOR_MIN_RPM;
  41.                     DEBUGMSG(DEBUG_ZONE_INFO, ("[BLDC_HALL]Motor Startup Ready\r\n"));
  42.                 }
  43.             }
  44.             else
  45.             {
  46.                 g_startReadyCnt = 0;
  47.             }
  48.         }
  49.         else
  50.         {
  51.             if (s_hallStateCnt < HALL_WORK_STABILITY_CNT)
  52.             {
  53.                 s_hallStateCnt++;
  54.             }
  55.             else if (s_hallStateCnt == HALL_WORK_STABILITY_CNT)
  56.             {
  57.                 s_hallStateCnt ++;
  58.                 g_motorRefRpm = g_motorFeedbackRpm;
  59.                 g_state = STATE_RUN;
  60.                // g_speedPid.pidOut = s_motorSpeed * 328 / 10;
  61.             }
  62.         }
  63.     }
  64. }
复制代码
      将稍作修改的工程编译ok后下载到开发板中,然后采用带霍尔BLDC方波模式启动,操作及效果见如下视频
https://v.youku.com/v_show/id_XNTEwNDc5MjkxMg==.html
         连续转到效果如下:
转动.gif

使用特权

评论回复
| 2021-2-17 23:30 | 显示全部楼层
很详细的测评 支持一下

使用特权

评论回复
| 2021-2-18 23:23 | 显示全部楼层
这里用的电机是什么型号的

使用特权

评论回复
 楼主 | 2021-2-19 09:25 | 显示全部楼层
x史可法 发表于 2021-2-18 23:23
这里用的电机是什么型号的

亲,不知道是什么型号的哟,只知道是BLDC电机,12V供电,支持霍尔
0219.jpg

使用特权

评论回复
| 2021-2-19 23:54 | 显示全部楼层
是不是有技术文档可以参考一下

使用特权

评论回复
 楼主 | 2021-2-20 10:23 | 显示全部楼层
正圆椭圆 发表于 2021-2-19 23:54
是不是有技术文档可以参考一下

参考电路设计资料

电机控制专用集成电路 (PDF格式).pdf

8.75 MB, 下载次数: 15

使用特权

评论回复
| 2021-2-20 23:42 | 显示全部楼层
谢谢 楼上的下载了

使用特权

评论回复
| 2021-2-20 23:50 | 显示全部楼层
谢谢楼主 学习了 楼主写得满详细的

使用特权

评论回复
| 2021-2-21 23:45 | 显示全部楼层
楼主这么好贴怎么不火

使用特权

评论回复
| 2021-2-21 23:54 | 显示全部楼层
哈哈这个像素吃了好多 都不咋看得见在转

使用特权

评论回复
 楼主 | 2021-2-22 08:49 | 显示全部楼层
尼罗河L 发表于 2021-2-21 23:54
哈哈这个像素吃了好多 都不咋看得见在转

https://v.youku.com/v_show/id_XNTEwNDc5MjkxMg==.html
这个链接可以看得清楚

使用特权

评论回复
| 2021-2-22 23:36 | 显示全部楼层
这个板子用的是什么芯片

使用特权

评论回复
 楼主 | 2021-2-23 09:03 | 显示全部楼层
串联烧烤 发表于 2021-2-22 23:36
这个板子用的是什么芯片

AC7811QBGE
AC7811QBGE.png

使用特权

评论回复
| 2021-2-23 23:23 | 显示全部楼层
谢谢楼主 很少用ac的板子 但是这个设计的确实还蛮实用

使用特权

评论回复
| 2021-2-25 23:13 | 显示全部楼层
好帖顶一下 很少看见像楼主这么实在的帖子了

使用特权

评论回复
 楼主 | 2021-2-26 10:43 | 显示全部楼层
凯复Kane 发表于 2021-2-25 23:13
好帖顶一下 很少看见像楼主这么实在的帖子了

谢谢支持!

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表