搜索
bottom↓
回复: 56

【CDFOC】开源 FOC 有感电机驱动

[复制链接]

出615入1076汤圆

发表于 2023-9-24 18:25:59 | 显示全部楼层 |阅读模式
本帖最后由 dukelec 于 2023-9-24 18:29 编辑

开源地址:https://github.com/dukelec/cdfoc
wiki 有中文版 readme,代码库有原理图和 pcb 截图

- 支持多种 SPI 接口的编码器,默认 tle5012b,其它有 tle5014、ma731、ma732、ic-mu 等
- 三路采样电阻,pwm 输出可以开到 100%
- 一路 RS485 支持用户控制、打印调试、波形调试、代码 IAP 升级
- RS485 最高速率 50Mbps(需要接口芯片支持,默认贴的接口芯片是 14Mbps,后续可能默认贴 20Mbps 的)
- MCU 为高性能的 STM32G431CBUx
- MOS 驱动芯片为高性能的 DRV8323RS,保护齐全,驱动力等参数可软件调节
- 电路简洁,布局布线合理,干扰小,可提供完整的 KiCad 工程文件









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出615入1076汤圆

 楼主| 发表于 2023-9-24 22:19:54 来自手机 | 显示全部楼层
本帖最后由 dukelec 于 2023-9-25 09:13 编辑
newlife2lyf 发表于 2023-9-24 20:18
虽然大佬全开源了,但我还是懒得画板,请直接给个链接吧,我想买一套玩. ...
(引用自5楼)


淘宝店铺搜我论坛 id

建立顺便带一个 cdbus bridge,不要外壳现在超便宜了
调试波形之类的更方便一些

使用 ft232 之类的 usb 转 485 也可以控制电机,可能要改 ft232 等板子的上下拉和终端电阻,
建议上下拉电阻改 330 欧姆,终端电阻默认不接。

出615入1076汤圆

 楼主| 发表于 2023-9-24 22:28:56 来自手机 | 显示全部楼层
newlife2lyf 发表于 2023-9-24 22:25
好的,全套含BM3520H电机
(引用自9楼)

多谢支持

出615入1076汤圆

 楼主| 发表于 2023-9-25 10:13:06 | 显示全部楼层
本帖最后由 dukelec 于 2023-9-25 10:15 编辑
sy8501 发表于 2023-9-25 01:04
最近给朋友定制的一块 一拖二FOC驱动,进行到第三版了,150kg载重底盘测试了2个月,10月份准备小批量了。

...
(引用自14楼)


我之前是有考虑把外置编码器改成差分通讯,最后没有改的主要原因是:

我倾向伺服的形态,每个电机带一个控制板,控制板和传感器板之间距离很近,而且有精心设计的屏蔽线可选,没必要用差分。
(个别产品我会把编码器芯片直接放在主控板上,做成圆形的板子。但我更多的是用这种通用的板子,免了不同电机都要重新画板。)

转成差分再转回单端,两次转换会带来延迟,特别是 SPI 处理起来很麻烦,SSI 方式不是所有编码器都支持。

譬如说 MA731/732 的效果,远比不上 TLE5012B-E1000



MA73x 默认 filter window 太大了,是 1024 us,一般要用 spi 配置成 64us 才适合 FOC 控制,否则电机效果出不来:
参数调猛一点,由于编码器的 filter 延迟,会导致电机抖动;参数调弱电机刚性又会很差。

MA73x filter 调成 64us 的时候,编码器有效位数只剩下 9.5 bits,相同条件下对比过其锁定噪音明显大于 TLE5012B 编码器

对于刹车电阻,我是计划有需要的时候单独做一个板子,外挂在母线电源上,检测到电源超标,就启动储能或者发热耗散。模块化的思想。

至于测温,我另一款相同代码方案的大功率板子有加,用的是 i2c 总线的数字温度传感器,可以加很多个点,当时加了两个点,一个加在电机一个加在 mos。

開一個 DIY 動力滑翔傘(電動)的【直播】貼
https://www.amobbs.com/thread-5753059-1-1.html


至于 usb,我比较反对加在电机控制板,特别是大功率的,伺服器的干扰很大,usb 抗干扰不行
额外增加电路面积和软件复杂度,容易引入小概率 bug,使用 usb 的 bootloader 也要大很多
而且对于一些机械臂之类的场景,机器一边甩动,一边用 usb 接在中间或末端关结调参,不是很方便,特别是机械臂包了外壳的时候
用我这个方式,可以在机械臂底部的控制线上直接调试任意关结的电机,同理方便用于其它各类设备的调试
而且,485 比 12M usb 还可以快好几倍


至于 can 接口,给力的话你也不用留 usb 接口了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出615入1076汤圆

 楼主| 发表于 2023-9-27 22:22:48 来自手机 | 显示全部楼层
887799 发表于 2023-9-27 21:34
大神,你开源的文件夹cdnet 为什么是空的?
(引用自43楼)


看我 readme 写的 git 命令,下载的时候要带一个 submodule 参数

出615入1076汤圆

 楼主| 发表于 2023-9-28 12:02:27 | 显示全部楼层
zzh90513 发表于 2023-9-25 15:10
你好,请教一个CDBUS技术问题,我想将CDBUS用于开发通用IO模块的背板总线,想请问50Mbps速率下距离能做到5 ...
(引用自34楼)

布线好的话,5 米没有问题

CDBUS 有两个核心模式,仲裁模式 和 BS 模式(break 字符同步)

仲裁模式不建议使用太高波特率,因为首字节速率一般最高设定在 1Mbps, 首字节、以及同等速率换算的帧空格时间(至少 1.1 字节,一般建议 2 字节或 1.5 字节)会成为瓶颈

譬如 1.1 字节帧空格时间(其中 1 字节为空闲,0.1 byte 或 1bit 为发送等待),加上首字节,总共 2.1 字节时间。

如果使用 1Mbps+10Mbps,低速 2.1 字节可以换算成高速的 21 字节,一个帧除了用户数据,还剩下 2 字节帧头,和 2 字节 crc 帧尾,加起来共 25 字节。
如果用户数据 40 字节(最多 253 字节),那么总共 65 字节,对应时间为:1÷10000000×10×65 = 65us

如果使用 1Mbps+50Mbps,低速 2.1 字节可以换算成高速的 2.1×50 = 105字节
同样 40 字节用户数据,那么总共 105+4+40=149 字节,对应时间为:1÷50000000×10×149 = 29.8us

实际时间只快一倍,如果用户数据更短,则时间区别更小。


BS 模式可以单速率保存高速通讯,但是节点数不建议超过 10,越多效率越低
(而且要避免太高速率的情况下,一个大包后面跟多个小包,spi 来不及接收会导致丢包。)


而且,速度太快,要考虑 MCU 能不能及时接收数据,我这两天在优化 usb 转 485 盒子 cdbus bridge,之前使用 hal 库代码,dma 模式收一帧数据要 100 多 us(一个字节用户数据),空闲占了太多

改成寄存器控制 dma,只需要 8 us 多了(5 字节用户数据),很难进一步优化,是因为 mcu 主频有点低,跑到最高只有 64 MHz,SPI 也受 MCU 限制,当前设置为 32MHz。
(本来想换 170MHz 主频的 stm32g431cbux,SPI 最高 42.5MHz,但是 ram 32KB 太小,用来做 bridge 中转数据不太爽。现在 bridge 用的 stm32g0 是 144KB 内存)




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出615入1076汤圆

 楼主| 发表于 2023-10-12 23:22:10 | 显示全部楼层
本帖最后由 dukelec 于 2023-10-14 09:49 编辑

上传一份当前的 github 的资料,方便一些网络不太好的用户









CDBUS GUI 电机出厂设置:
(每个电机的 bias_encoder 不同,要提前备份一下,或者导入配置后重新校准编码器)


注意:2806 电机请使用 12V 供电,3520 电机请使用 24V 供电。
PID 参数是按照这个电压调试的,电压相差太多的话,会影响效果。


目前 MOS 焊了两款,最早一批发货用的 mos 是: BSZ105N04NSG (INFINEON, 40V)
之后发货已改用 mos: DMT69M8LFV-7 (DIODES, 60V)
5264 的座子,之前觉得白色的好看一点,没想到质量差一些,也已经换回灰色
(HCTL(华灿天禄) HC-5264-4AW (白色) --> CJT(长江连接器) A2505WR-4P (灰色))


后续 github 会持续更新,此处代码无法持续或及时更新。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出615入1076汤圆

 楼主| 发表于 2023-10-13 15:31:45 | 显示全部楼层
天下乌鸦一般黑 发表于 2023-10-13 11:08
大佬~
我收到了~电机上的编码器板插座是7针的,和主控板对插的配线是6线6孔的插头,主控板那边没问题,编 ...
(引用自51楼)



红色箭头这里空一个 pin 就行
前期发货太赶,不然都会换成 7p 的胶壳

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 10:01

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表