碎碎思 · 2022年04月24日

“软核”硬做-ODrive(FPGA版本)

1de38a75e8a00ac8af1c294a0c088550.png

之前稚晖君做了一个《机器人的心脏--超迷你FOC矢量控制驱动器》,B站链接:

https://www.bilibili.com/vide...?spm_id_from=333.999.0.0

核心CPU是XX32FXXX,在工业控制领域其实FPGA占比也很大,所以能不能用FPGA做一个ODrive呢?答案是肯定的。

介绍

该项目旨在以低廉的价格准确地驱动无刷电机。目的是使在高性能机器人项目中使用廉价的无刷电机成为可能。像这样:

1650780802(1).png
1650780849(1).png

https://mp.weixin.qq.com/s/H7alOIaF1ilaulNOmktC-Q

主要规格

  • 控制两个电机。
  • 提供 24V 和 48V 版本。
  • 每个电机的峰值电流 120A。
  • 持续电流取决于散热情况。
  • 用于任意精确运动的编码器反馈。
  • 支持两种制动模式:

     制动电阻。

     再生制动。

  • 可选使用电池,意味着只需适度的电源即可实现非常高的峰值功率输出。 - 开源:硬件、软件
  • 控制模式

     Goto(带轨迹规划的位置控制)
     位置命令
     速度指令
     扭矩指令

接口

  • USB——自定义协议,开源

PC、树莓派等

8752f9527590715cb2c499f60f13cb3c.png

  • 步进/方向——现有的运动控制器
  • UART—— Arduino(带库)、mBed等。

3c5d11c82d0a24df94880599db084264.png

  • 伺服 PWM/PPM——RC 接收器、Arduino 等。

cfff022070837153e84a7fca1cb8e886.png

  • CAN -- 基本自定义协议
  • 一些通用数字和模拟引脚

硬件介绍

原理图和PCB使用AD绘制,开源链接:

https://github.com/madcowswe/ODriveHardware/tree/master/v2

原理图TOP:

854de9f2ab5a024152ebafd03552037b.png

核心器件:

  • FPGA:10M08SAE144
  • 电源:AP1117E33G-13、LM3490IM5-12/NOPB 这是给FPGA供电的,不需要太大电流
  • MOS:NTMFS4937NT1G

PCB欣赏:

5ea6cd76dbd744272d4f8ab00fb45211.png

版本勘误表:

  • 编码器(M0、M1)的丝印标签是相反的。
  • 在设计后置放大器滤波器时没有考虑电流放大器的输出阻抗。因此,响应比设计慢约 5 倍。因此,最大允许调制指数约为 50%。

固件

代码地址:

https://github.com/madcowswe/ODriveFPGA

d11231b5e6cc9b5a3377f7b47aa003ec.png

EDA工具是QUARTUS_VERSION 13.1 ,整体逻辑不是很复杂。

官方网址:

https://odriverobotics.com/

演示视频

1650781047(1).png

原文:OpenFPGA
作者:碎碎思

相关文章推荐

更多FPGA技术干货请关注FPGA 的逻辑技术专栏。
推荐阅读
关注数
10614
内容数
577
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息