使用FPGA做一个ODrive

描述

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

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

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

介绍

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

主要规格

控制两个电机。

提供 24V 和 48V 版本。

每个电机的峰值电流 120A。

持续电流取决于散热情况。

用于任意精确运动的编码器反馈。

支持两种制动模式:

制动电阻。

再生制动。

可选使用电池,意味着只需适度的电源即可实现非常高的峰值功率输出。

开源:硬件、软件

控制模式

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

位置命令

速度指令

扭矩指令

接口

USB——自定义协议,开源

PC、树莓派等

步进/方向——现有的运动控制器

UART—— Arduino(带库)、mBed等。

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

CAN -- 基本自定义协议

一些通用数字和模拟引脚

硬件介绍

原理图和PCB使用AD绘制

原理图TOP:

cpu

核心器件:

FPGA:10M08SAE144

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

MOS:NTMFS4937NT1G

PCB欣赏:

cpu

版本勘误表:

编码器(M0、M1)的丝印标签是相反的。

在设计后置放大器滤波器时没有考虑电流放大器的输出阻抗。因此,响应比设计慢约 5 倍。因此,最大允许调制指数约为 50%。

固件

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

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分