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

2022-06-06 08:16:19 浏览数 (1)

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

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

❝https://www.bilibili.com/video/BV11V41127pq?spm_id_from=333.999.0.0

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

介绍

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

主要规格

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

制动电阻。

再生制动。

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

Goto(带轨迹规划的位置控制)

位置命令

速度指令

扭矩指令

接口

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

PC、树莓派等

  • 步进/方向——现有的运动控制器
  • UART—— Arduino(带库)、mBed等。
  • 伺服 PWM/PPM——RC 接收器、Arduino 等。
  • CAN -- 基本自定义协议
  • 一些通用数字和模拟引脚

硬件介绍

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

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

原理图TOP:

核心器件:

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

PCB欣赏:

版本勘误表:

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

固件

代码地址:

❝https://github.com/madcowswe/ODriveFPGA

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

官方网址:

https://odriverobotics.com/

0 人点赞