基于Stm32f03c8t6的3505 无刷电机离轴磁编码器 foc 驱动板项目
想了解更多项目请搜索“项目”标签或者访问我的github仓库。
仓库地址:QianmoNai’s Repositories
项目地址:测试中,暂不开源
1.项目背景
最近在学foc驱动,所以顺便一起画了个板子,现在市面上开源的3505无刷电机foc驱动板似乎都没有离轴磁编码器的方案,所以想着自己去做一个可以中心过孔的foc驱动板,中心过孔的优势是能够很方便的过滑环,能够减小机械设计的复杂度,关键不会绕线,这对于我后续如果要做全360°二维云台是很重要的。
2.项目介绍
核心功能:
- 三相电机驱动:用 DRV8313 驱动 U/V/W 三相电机,STM32 输出 PWM1/PWM2/PWM3 控制电机。
- 磁编码器位置反馈:用 KTH7823 磁编码器,通过 SPI 读取转子角度/位置。
- 两路电流采样:用两颗 INA240A2 + 0.01Ω 采样电阻,采样两相电流,用于电机控制/保护。
- CAN 通信:用 TJA1050T 实现 CAN 总线通信,带 120Ω 终端电阻开关。
- USB 通信/调试:Type-C 接口接 STM32 USB D+/D-,可用于 USB 设备通信。
- UART 调试接口:引出 UART1 的 TX/RX/GND。
辅助功能:
- 外部 EEPROM 存储:AD24C02,通过 I2C 保存参数、校准值或配置。
- RGB 指示灯:WS2812B-2020 单线 RGB 灯。
- 普通 LED 指示:电源灯、LED0、LED1。
- 按键输入:两个侧按按键 S1/S2。
- SWD 下载调试:引出 3.3V、GND、SWDIO、SWCLK。
- BOOT 启动配置:BOOT0/BOOT1 下拉,默认从 Flash 启动。
供电功能:
- 12V 输入:通过接口输入主电源 VCC。
- 浪涌保护:输入端有 TVS 管。
- 12V 转 5V:RY8411 降压到系统 +5V,并用肖特基防反灌。
- 5V 转 3.3V:SPX3819-3.3 给 STM32、编码器、EEPROM、RGB 等供电。
当前迭代:
- V1.0:初版设计完成
- V1.1:优化加粗了电路
- V1.3:修复部分电路错误,增加采样电路的稳定性,增加5V输出和USB输入的防倒灌
- V1.4:12V降压FB线优化,远离电机三相线干扰
- V1.5:FB反馈线改为肖特基二极管后面,避免二极管压降导致输出电压不稳







3.项目重点内容
集成驱动、反馈、采样与通信的小型电机控制方案
该控制板围绕 STM32F103C8T6 构建,集成 DRV8313 三相驱动、KTH7823 磁编码器、INA240 双路电流采样,并提供 CAN、USB Type-C、UART 与 SWD 调试接口,适合小功率无刷电机控制、FOC 实验和嵌入式运动控制开发。
核心功能
实时控制核心
STM32F103C8T6 负责 PWM 输出、编码器读取、电流采样、通信处理和控制算法运行。
三相电机驱动
DRV8313 输出 U/V/W 三相驱动信号,配合 PWM1、PWM2、PWM3 实现无刷电机控制。
磁编码器反馈
KTH7823 通过 SPI 提供转子位置反馈,用于闭环控制、角度检测和速度估算。
双路电流采样
两颗 INA240A2 配合 0.01Ω 采样电阻,对两相电流进行高共模抑制采样。
工业通信接口
TJA1050T 提供 CAN 总线收发能力,并预留可切换 120Ω 终端电阻。
调试与数据连接
Type-C 接口连接 STM32 USB D+/D-,同时保留 UART1 与 SWD 便于开发调试。
系统模块
输入端带浪涌保护,板上转换出 5V 与 3.3V。
统一管理采样、驱动、通信与外设状态。
通过 DRV8313 驱动 U/V/W 三相电机线。
磁编码器与 INA240 提供闭环控制所需反馈。
支持 CAN、USB、UART 和 SWD 调试维护。
接口与扩展
- CANH/CANL 接口适合多节点控制和上位机通信。
- USB Type-C 可用于调试、参数配置或数据交换。
- UART1 引出 TX/RX/GND,便于串口日志与调试。
- SWD 烧录口引出 3.3V、GND、SWDIO、SWCLK。
适用场景
- 小功率无刷电机控制器原型验证。
- FOC、电流环、速度环和位置环算法实验。
- 带 CAN 总线的嵌入式运动控制节点。
- 机器人关节、云台、小型执行器开发。










