
【FOC】无刷电机驱动器ODrive AP1.0-DRV8303版
简介
【ART-Pi】无刷电机驱动器ODrive AP0.3的分支
简介:【ART-Pi】无刷电机驱动器ODrive AP0.3的分支开源协议
:GPL 3.0
描述
(图源:网友@路佳)
写在前面
1、可以直接刷官方ODrive 3.6-24V固件,与官方OD 3.6使用方式无异
2、已测试大部分功能,可以直接打板(打样前最好克隆一次工程,并且保留导出的gerber文件,方便检查硬件问题,导出gerber前最好做下DRC,有报错请自行修改或联系我修改)
简介
本项目基于ODrive的V3.6硬件,为 ART-Pi 拓展板(也适用于 树莓派 Raspberry Pi ——只焊接P1拓展引脚),能实现两路无刷电机闭环控制,具有用于人机交互的屏幕和五向开关
交流群1:778255240
交流群2:851421965
交流群3:732557609
交流群4:957377627(我的群,希望准备打板子的小伙伴能加群,会及时通知修改状况——尤其是BUG)
Layout
项目说明
本项目以学习为目的,对ODriver的硬件进行了重构以契合ART-Pi,拟驱动对象为小功率无刷电机
ART-Pi通过串口配置并使用串口或方向/脉冲信号或PWM信号控制拓展板
相较于原项目,删除了功率耗散电阻电路但预留了拓展接口
增加了1.14' IPS屏幕和五向开关,可选择二者由ODrive使用还是ART-Pi使用
最初打算移植ODrive至ART-Pi,直接驱动,但受限于IO功能,退而求次
草草布线,继续优化中
(当前版本可直接刷官方固件实现基本功能,4月7日前做的板子有BUG,需要修改固件)
拓展板:
https://oshwhub.com/Knight_Sin/abcd_copy
编码器:
https://oshwhub.com/Knight_Sin/art-pi-2312s-bian-ma-qi
计划中的任务
1、接口测试
(1)外部接口
1) SPI编码器接口
2)CAN接口
3) PWM输入 √
4) S/D输入 √
4) 电压输入
(2)ART-Pi接口
1) UART接口 √
2) PWM输入 √
3) S/D输入 √
4) 电压输入
2、LCD多级菜单
(1)FLSAH字库
(2)GUI设计
(3)多级菜单
修改记录
1、(2021年1月19日02点07分)Motor0的DRV8301的BUCK电路是多余的,将其改造为输出12V,为功率耗散电阻电路(VGS)供电
2、(2021年1月20日23点46分)整理了走线和丝印,引出了AVCC为刹车电阻电路温度采样电路供电,第一版PCB定稿,板子名称暂定ODrive AP,当前版本号0.1,全称ODrive AP试做一型
3、(2021年1月25日16点53分)将47uF/35V的钽电容换成1812封装的47uF/35V的MLCC
4、(2021年2月4日17点28分)调整了采样电阻部分的走线
5、(2021年2月6日22点12分)增加了硬件复位按钮
6、(2021年2月14日20点49分)尽量引出了剩余的IO;增加了一片W25Q32,意图将设置保存在W25Q32中
7、(2021年3月1日15点13分)确认了五向开关封装错误,已修正,如果已经打板,可以将五向开关底部大的定位柱削去然后旋转180°焊接
// 8、(2021年3月5日02点45分)将屏幕的CS/SDA/SCL连接至STM32F4xxVGT6的SPI5的位置(405没有SPI5,拟替换为412)(仔细考察了下,发现412和405引脚竟然不兼容,如若修改,牵涉范围过大,是否替换还需慎重考虑)
8、(2021年3月18日19点58分)将MCU复位引脚引出到ART-Pi接口,以满足ART-Pi强制复位驱动器的需求
9、(2021年3月19日01点57分)对接口进行了拆分,将原14P的座子拆成2个PWM或STEP/DIR或模拟信号输入接口、2个SPI接口(可接入SPI编码器)、一个UART接口,将CAN接口以XH2.54的插座形式引出而非原来的排针;大幅度修改了走线,目前只是连通,还需要进一步优化;调整了部分丝印(尚未完成)。(工作还在进行中,如果发现工程正在被编辑请暂时不要克隆,平时会切换回发布版本)
10、(2021年3月19日20点02分)第二版PCB定稿,当前版本号0.2
11、(2021年3月20日22点05分)为nFault、EN_GATE增加了测试点
12、(2021年4月5日00点50分)修复了一个BUG:axis1的DRV8301的SP2意外地联通到底层PGND铜皮
13、(2021年4月7日00点07分)修复了一个BUG:M1_SO1/M1_SO2连接顺序错误
14、(2021年4月8日20点15分)调整了IN0/IN1接口的顺序(PCB仅仅修改丝印),以符合使用习惯
15、(2021年4月13日20点44分)调整了IN0/IN1/CAN接口的引脚顺序,使之更符合使用习惯;修改IN0/IN1接口的电源为5V,此引脚通常应该不接,但若是使用单一电源供电,可以由此端口給控制板供电
16、(2021年4月29日18点29分)电流采样方式由单端采样修改为差分采样;增加3.3V/A3.3V/5.0V/12.0V测试点,并为所有测试点增添丝印;新增NRST复位引脚,连接到ART-Pi的PA15引脚,保留旧复位引脚连接,以兼容旧版程序;替换1117为RT9193-33;改变设计思想,以实用为主,新增部分接口说明说明丝印;提升版本号为 0.3
17、(2021年5月4日18点55分)修复一个bug,RT9193-33的EN脚有效电平错误,应为高电平使能
18、(2021年5月31日19点12分)DRV8303+TPS54160替换DRV8301,程序完全兼容,无需改动,稍后会新建一个工程将8301版本和8303版本分开
19、(2021年7月11日19点10分)移除了一侧拓展接口;交换了12v/5v buck电路的位置;增加了功率耗散电路(选择焊接);移除了原来的功率耗散电路接口;增加了用于使用排线连接的屏幕的FPC座子(选择焊接);修改SWD接口为2.54排针;修改晶振为有源晶振
调试记录
https://blog.csdn.net/qq_17459305/article/details/115522151
ODrive项目简介
ODrive是一个基于STM32的高性能FOC伺服驱动器,其可以同时驱动两个无刷电机,早期被大量使用与3D打印机或自制CNC电气系统的设计中,知名极客James Bruton使用其作为大部分自己制作机器人伺服驱动的核心单元,之前Stanford开源的8自由度四足机器人Doggo同样也采用了Odrive作为核心的驱动器。[1]
官网:https://odriverobotics.com/
固件:https://github.com/odriverobotics/ODrive
硬件:https://github.com/madcowswe/ODriveHardware
文档:https://docs.odriverobotics.com/
参考文献
[1]高性能开源伺服器ODRIVE - 电机与控制 - CSDN
优质资料推荐
CSDN博主:codenocold
应用篇
ODrive应用 #1 ODrive入门指南 - codenocold - CSDN
ODrive应用 #2 odrivetool入门指南 - codenocold - CSDN
ODrive应用 #3 odrive_gui入门指南 - codenocold - CSDN
ODrive应用 #4 配置参数&指令 - codenocold - CSDN
ODrive应用 #5 输入接口 - codenocold - CSDN
ODrive应用 #6 编码器 - codenocold - CSDN
ODrive应用 #7 控制器&参数整定- codenocold - CSDN
ODrive应用 #8 平衡车轮毂电机和遥控器设置指南- codenocold - CSDN
ODrive应用 #8(疑误) 故障排除- codenocold - CSDN
干货篇
ODrive干货 #1 Windows下开发环境搭建 - codenocold - CSDN
ODrive干货 #2 Ubuntu下开发环境搭建 - codenocold - CSDN
ODrive干货 #3 ODriveTool 指令大全 - codenocold - CSDN
ODrive干货 #4 为什么无刷电机电流和电源电流不同 - codenocold - CSDN
实例篇
ODrive实例 #1 电机配置实例(4250-520KV + TLE5012B-E1000) - codenocold - CSDN
ODrive实例 #2 电机配置实例(小米9号平衡车轮毂电机) - codenocold - CSDN
开发篇
ODrive开发 #1 ODrive固件开发指南 - codenocold - CSDN
ODrive开发 #2 配置Visual Studio Code开发环境 - codenocold - CSDN
ODrive开发 #3 配置Eclipse开发环境 - codenocold - CSDN
其他篇
ODrive 通讯协议 - codenocold - CSDN
ODrive ASCII格式协议 - codenocold - CSDN
B站UP:唐老师讲电赛
开源ODrive直流无刷电机BLDC控制系统,基于DRV8301与STM32F405的FOC伺服驱动器硬件介绍 - 唐老师讲电赛 - bilibili
基于DRV8302与STM32F405的开源VESC直流无刷电机BLDC控制系统,L6234与Arduino的SimpleFOC,ODriveFOC伺服驱动器 - 唐老师讲电赛 - bilibili
基于DRV8323RH与STM32F446RET6的开源四足机器人FOC驱动电路 - 唐老师讲电赛 - bilibili
完美驯服DRV8301 DRV8302 DRV8323芯片 - 唐老师讲电赛 - bilibili
B站UP:灯哥开源
【教程】灯哥教你入门Odrive无刷驱动器(1)-开发调试环境配置 - 灯哥开源 - bilibili
【教程】灯哥教你入门Odrive无刷驱动器(2)-电机、编码器参数配置和电机校准 - 灯哥开源 - bilibili
知乎:稚晖 / B站UP:稚晖君
【自制FOC驱动器】深入浅出讲解FOC算法与SVPWM技术 - 稚晖的文章 - 知乎
芯片数据手册
DRV8301数据手册:http://www.ti.com/cn/lit/gpn/drv8301
TPS54160(DRV8301内置)数据手册:http://www.ti.com/cn/lit/gpn/tps54160
五向开关数据手册:https://item.szlcsc.com/471384.html
焊接式1.14吋IPS:https://item.taobao.com/item.htm?spm=a1z09.2.0.0.5c8f2e8dijiLL5&id=586409078629&_u=l21l4csi9ba5
额外推荐
这里推荐一下Mo大佬的板子
仿制ODrive双轴MINI FOC控制器,基于DRV8301,外形小巧,造型美观,已打样测试,源文件见附件
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | 82p/50V | C1,C3,C6,C8,C10,C13,C21,C22 | C0603 | 8 |
2 | 2.2u/16V | C2,C11,C12 | C0603 | 3 |
3 | 1u/16V | C4,C34,C35 | C0603 | 3 |
4 | 100n/50V | C5,C7,C9,C14,C15,C16,C17,C18,C19,C20,C23,C37 | C0603 | 12 |
5 | 47uF/50V | C24,C25,C26,C27,C28,C29,C30,C31,C32,C33 | C1812 | 10 |

评论