当前位置: 首页 > news >正文

BLDC无刷直流驱动控制板资料,可驱动300W电机,已量产(STM32 CAN总线)输入电压:...

BLDC无刷直流驱动控制板资料,可驱动300W电机,已量产(STM32 CAN总线)输入电压:15~36V 驱动功率:300W~500W ,20A电流检测,CAN通信总线 功能介绍 KEY1:运行 KEY2:停止 VR1:转速调节 带霍尔传感器 提供工程原理图和源码,AD9工程 内有提供电机型号

最近搞到一块挺有意思的BLDC驱动板,实测能扛300W电机暴力输出。这货用STM32F103做主控,自带CAN总线通信,输入电压15-36V随便怼,关键是配套资料齐全得不像话——原理图、源码、AD工程文件全开放,连配套电机型号都给列出来了。

先看硬件设计亮点,电源部分用IR2104驱动MOS桥,电流检测直接怼了ACS712ELCTR-20A模块。别小看这个20A的检测范围,实测过流保护响应速度比某些商业驱动器还快。随手截个关键电路:

// 过流保护中断处理 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if(GPIO_Pin == OC_DETECT_Pin) { PWM_Stop(); // 立即关闭PWM输出 Error_Handler(); // 记录错误日志 } }

这中断响应代码够直白吧?ACS712检测到过流直接触发外部中断,连滤波都省了——毕竟电机控制要的就是快准狠。不过实际应用中建议在硬件端加个RC滤波,避免误触发。

转速调节用了个精密电位器,代码里对应的是ADC采样:

uint16_t Get_Speed_Set(void) { HAL_ADC_Start(&hadc1); if(HAL_ADC_PollForConversion(&hadc1, 10) == HAL_OK) { return HAL_ADC_GetValue(&hadc1) >> 4; // 12bit转8bit } return 0; }

注意这里的右移操作,把12位ADC值压缩成8位,这不是偷工减料。实际测试发现电位器精度根本用不上12位,还能省点处理时间。

BLDC无刷直流驱动控制板资料,可驱动300W电机,已量产(STM32 CAN总线)输入电压:15~36V 驱动功率:300W~500W ,20A电流检测,CAN通信总线 功能介绍 KEY1:运行 KEY2:停止 VR1:转速调节 带霍尔传感器 提供工程原理图和源码,AD9工程 内有提供电机型号

驱动部分的核心是六步换相,霍尔传感器中断触发换相:

void HALL_ISR(void) { static uint8_t step = 0; uint8_t hall_state = (HALL3_GPIO_Port->IDR & HALL3_Pin) ? 0x01 : 0; hall_state |= (HALL2_GPIO_Port->IDR & HALL2_Pin) ? 0x02 : 0; hall_state |= (HALL1_GPIO_Port->IDR & HALL1_Pin) ? 0x04 : 0; switch(hall_state) { case 0b101: step = 1; break; case 0b100: step = 2; break; // ...其他状态处理 } PWM_Update(step); // 更新PWM输出 }

这段中断服务函数直接操作寄存器获取霍尔状态,比用HAL库函数快3倍以上。实测在20000RPM时换相依然稳定,不过记得把中断优先级调到最高。

CAN通信协议设计得很接地气,直接用的标准帧格式:

typedef union { struct { uint8_t cmd; uint16_t speed; uint8_t checksum; }; uint8_t data[4]; } CAN_Frame;

这个共用体结构让数据打包解包异常方便。比如发送速度指令时:

CAN_Frame tx_frame; tx_frame.cmd = 0xA5; tx_frame.speed = current_speed; tx_frame.checksum = tx_frame.cmd ^ tx_frame.speed; HAL_CAN_AddTxMessage(&hcan, &tx_header, tx_frame.data, &tx_mailbox);

校验算法简单粗暴但有效,量产产品里用这种轻量级校验反而更可靠——毕竟不是航天级应用,别整那些复杂的CRC。

最后吐槽下源码里的彩蛋,主函数里居然藏着:

// 佛祖保佑,永无BUG // ༼ つ ◕_◕ ༽つ

果然工程师的浪漫都藏在注释里。这板子现在稳定驱动着36V的MY1020电机,要源码的自己去嘉立创开源平台搜"BLDC300WDriver",记得焊接MOS管时做好散热,别问我怎么知道的...

http://www.jsqmd.com/news/244537/

相关文章:

  • 研究生亲测:这几款降AI工具让我的论文顺利毕业
  • 深度学习毕设项目:基于深度学习对马路道路是否破损识别基于python-CNN深度学习对马路道路是否破损识别
  • 【计算机毕业设计案例】基于人工智能python-CNN深度学习对棉花叶病识别基于python-CNN深度学习对棉花叶病识别
  • python基于vue的外卖点餐小程序的设计与实现django flask pycharm
  • 数据互联与认知升级:JBoltAI智能数据中枢的核心逻辑
  • 【计算机毕业设计案例】基于深度学习python-CNN卷神经网络的鞋面缺陷识别基于深度学习python-CNN的鞋面缺陷识别
  • 手机上写代码、做PPT、分析Excel?这款“AI 全能工作台“让我随时随地都能工作
  • AIGC检测原理揭秘:为什么同样的内容有时过有时挂?
  • python基于vue的外贸服装售商城卖系统的设计与实现django flask pycharm
  • 计算机深度学习毕设实战-基于深度学习python的鞋面缺陷识别基于深度学习python-CNN的鞋面缺陷识别
  • 以Java为基,AI为翼:JBoltAI助力企业数智化转型
  • 轻量级Git仓库服务器整理
  • 计算机深度学习毕设实战-基于python-CNN深度学习对马路道路是否破损识别基于机器学习对马路道路是否破损识别
  • Kimi降AI完整教程:5个技巧让你的论文告别AI痕迹
  • 使用 dmesg 工具诊断Linux系统问题基本用法案例
  • 【课程设计/毕业设计】基于深度学习python-CNN的鞋面缺陷识别基于深度学习python-CNN深度学习的鞋面缺陷识别
  • 给水干管工程量-连续测量高效计算
  • UE5 C++(27-2):
  • 深度学习计算机毕设之基于卷神经网络python-CNN的鞋面缺陷识别基于深度学习python-CNN的鞋面缺陷识别
  • Jira vs bugzilla vs mantis vs Kanass,项目管理工具深度纵评
  • UE5 C++(28):
  • confluence vs 语雀 vs notion vs sward,知识管理工具深度纵评
  • python基于vue的商城购物平台设计与实现 优惠卷django flask pycharm
  • Zynq上UART/IIC/SPI的27个实验-第3课:PS GPIO 模拟 UART 发送
  • 深度学习毕设项目:基于机器学习python-CNN的鞋面缺陷识别基于深度学习python-CNN的鞋面缺陷识别
  • Zynq上UART/IIC/SPI的27个实验-第4课:PS GPIO 模拟 UART 接收
  • Zynq上UART/IIC/SPI的27个实验-第5课:PL 逻辑 UART 发送
  • 基于 YOLOv8 的智能摊位识别与视频监控系统 [目标检测完整源码]
  • Zynq上UART/IIC/SPI的27个实验-第6课:PL 逻辑 UART 接收
  • 鸿蒙 APP 还是卡顿?API 21 性能优化这 3 招,立竿见影!