之前稚晖君做了一个《机器人的心脏--超迷你FOC矢量控制驱动器》,B站链接:
❝
https://www.bilibili.com/vide...?spm_id_from=333.999.0.0
核心CPU是XX32FXXX,在工业控制领域其实FPGA占比也很大,所以能不能用FPGA做一个ODrive呢?答案是肯定的。
介绍
该项目旨在以低廉的价格准确地驱动无刷电机。目的是使在高性能机器人项目中使用廉价的无刷电机成为可能。像这样:
https://mp.weixin.qq.com/s/H7alOIaF1ilaulNOmktC-Q
主要规格
- 控制两个电机。
- 提供 24V 和 48V 版本。
- 每个电机的峰值电流 120A。
- 持续电流取决于散热情况。
- 用于任意精确运动的编码器反馈。
- 支持两种制动模式:
制动电阻。
再生制动。
- 可选使用电池,意味着只需适度的电源即可实现非常高的峰值功率输出。 - 开源:硬件、软件
- 控制模式
Goto(带轨迹规划的位置控制)
位置命令
速度指令
扭矩指令
接口
- USB——自定义协议,开源
PC、树莓派等
- 步进/方向——现有的运动控制器
- UART—— Arduino(带库)、mBed等。
- 伺服 PWM/PPM——RC 接收器、Arduino 等。
- CAN -- 基本自定义协议
- 一些通用数字和模拟引脚
硬件介绍
原理图和PCB使用AD绘制,开源链接:
❝
原理图TOP:
核心器件:
- FPGA:10M08SAE144
- 电源:AP1117E33G-13、LM3490IM5-12/NOPB 这是给FPGA供电的,不需要太大电流
- MOS:NTMFS4937NT1G
PCB欣赏:
版本勘误表:
- 编码器(M0、M1)的丝印标签是相反的。
- 在设计后置放大器滤波器时没有考虑电流放大器的输出阻抗。因此,响应比设计慢约 5 倍。因此,最大允许调制指数约为 50%。
固件
代码地址:
❝
EDA工具是QUARTUS_VERSION 13.1 ,整体逻辑不是很复杂。
官方网址:
演示视频
原文:OpenFPGA
作者:碎碎思
相关文章推荐
更多FPGA技术干货请关注FPGA 的逻辑技术专栏。