发作品签到
专业版

步进电机闭环驱动

工程标签

1.1k
0
0
4

简介

20闭环步进电机驱动,使用STM32F303主控,DAC直接输出电压,直流斩波

简介:20闭环步进电机驱动,使用STM32F303主控,DAC直接输出电压,直流斩波

开源协议

GPL 3.0

创建时间:2024-05-08 08:54:03更新时间:2025-04-03 08:20:28

描述

20步进电机闭环驱动

DSC_0298

项目来源

项目参考了XDrive稚晖君的Dummy内部的20步进电机工程。

固件是在稚晖君42步进电机(与20电机通用)的程序上改进的。

更新部分

此处与稚晖君版本的作比较。

  1. MCU部分由STM32F103CBT6更换为STM32F303CCT6。

    image-20240508174134941

    • 内部flash翻倍(现在是256KB),原版的128KB在使用新版的gcc编译的时候会内存溢出(由于磁编码器需要校准,占用了32KB)。
    • 驱动器的电压控制直接使用DAC生成,不使用二阶低通滤波,硬件减少。
    • 由于flash翻倍了,可以在42步进电机上面增加一块Oled屏幕(XDrive上面有一块Oled屏幕,稚晖君版本上面预留了Oled的接口,但是flash已经完全用完了)。
  2. DCDC部分直接降压到3.3V,取消LDO

    image-20240508174955074

    • 没啥好说的。。。我就是懒得再焊LDO
    • Boost的自举电容需要0.2uF以上,原版使用了两个0402-0.1uF并联,这里直接使用0603-0.22uF,所占用面积差不多。
    • 分压电阻那可以再精细一点,当前输出的电压大约是3.4V。
  3. CAN芯片由TJA1050更换为SIT3051

    image-20240508175447835

    • 小且便宜

使用

固件是在稚晖君的固件上面进行修改,使用Clion进行的烧写。(Clion的教程在这里)下载接口、电源接口、CAN接口都是焊盘连接。

  • 按键按下通电程序会自动进行校准,校准完成后按下按键进入位置闭环,自动归零。

  • 拨动开关是CAN信号120Ω的开关。

  • 校准完后,我使用的是稚晖君的UltraLink里面的步进电机调试器,进行位置和速度的查看。(42步进电机版本加上了Oled屏幕可以直接查看)

  • CAN信号控制指令可以在can_base.cpp中查看(如果有需要之后可以更新一下)

    image-20240508180854508

  • 附一张42步进电机的驱动板,市面上的42步进闭环驱动其实很丰富了,张大头和创客都做的很好,后续再开(肯定不是因为懒)

image-20240508181103726

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
暂无数据
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航