• 正文
  • 相关推荐
申请入驻 产业图谱

CW32L010步进电机驱动器-01-项目总览

10/21 13:04
134
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

本文对应的视频:第一集《项目总览》。 代码工程:

通过网盘分享的文件:CW32L010步进电机正弦微步驱动器.zip

链接: https://pan.baidu.com/s/1pR0wOT3D30N38uOFXtpbDg?pwd=L010 提取码: L010

一、项目起点

本系列要做的是一台步进电机驱动器。主控选用 CW32L010单片机。该驱动器计划开发四项基本功能-调速、换向、过流保护、上位机控制。

启动这个项目是因为,前段时间入手了一款豹式坦克 G 模型,打算做模型静改动,悬挂改造需要打孔穿钢丝。但苦于手持电钻没有定位装置,孔位容易打歪,故决定自制一台小型钻台(绝不是因为成品钻台贵然后为醋包饺子),钻头的动力源即本项目的开发内容。动力源选了 42 步进电机,理由有三条:塑料不耐高温,转速必须精确可控;步进电机低速扭矩足,而钻孔全程都在低转速区间;手边刚好有 CW32 电机驱动板和电机。

需求链条到此闭合:模型改造要打孔 -> 手工打孔孔位难保证 -> 用步进电机驱动钻头 -> 需要一块能控速、能换向、能保护的驱动板 -> 电机与主控芯片都在手边,缺的是固件。

二、设计指标

定性分析需求,定量开发工程。上面这些要求需要转成可检验的指标,共六项。

1.转速 0~200 RPM。 转速上限根据使用场景设置,钻头转速本来就不必太快-转速太高,钻头在孔里停留的时间太短,切屑排不出来,反而容易损伤塑料。下限留到接近零,是为了照顾硬质材料。

2.支持正转与反转。 钻孔动作包括正转切削和反转排屑与退出钻头,因此刚需正反转功能。

3.电机工作低噪音、无失步。 失步是步进电机最要命的故障,失步意味着转速不准、切削力不足,严重时卡钻甚至折断钻头。对塑料打孔来说基本不会出现失步,但避免失步不仅是功能需求,更是步进电机驱动的基本要求-后面的篇章会分析失步的原因。噪音控制同样重要,本项目打算从驱动方式上避开低速运行时的换相冲击噪音。

4.过流保护。 工作电流过大时自动切断电机供电。

5.上位机控制。 通过上位机设置转速、方向与输出扭矩,属基本需求。

6.自动标定。 每台电机的参数都略有差异,同驱动参数未必都合适。因此加入参数自动标定功能,可针对不同驱动器+电机的组合将标定结果存下来,下次上电直接可用。

这六项指标各自决定了一种实现手段:

0~200 RPM:微步细分 + V/f 映射

正转与反转:两组 H 桥换相

低噪音、无失步:正弦微步 + 闭环标定

过流保护:ADC 采样 + 能量积分

上位机控制:UART + 任务层协议解析

自动标定:逐档试幅、结果存档

三、硬件构成

3.1 功率组件

我使用的是四线两相电机,因此需要两组 H 桥。两相是小型步进电机里最常见的形式,结构简单、价格便宜;低速性能稳定,正对低速旋转的应用场景。

每个 H 桥由四个 MOS 管组成,上下各两个,本项目共八个。这八个 MOS 管栅极最终都由 MCU 控制,但驱动方式并不相同:

上管:MCU 驱动信号经AO3400A驱动MOS后再驱动功率MOS

下管:MCU IO直接驱动功率MOS

图 1 驱动电路原理图

从原理图可以看出,本项目使用的驱动板没有使用栅极驱动芯片,省掉了两颗器件,代价是 IO 口能给出的电流有限。栅极线的充放电速度直接决定 MOS 开关的快慢,开关沿变慢这一代价,会在讨论死区的那一集里正面遇到。

3.2 采样电路

电流采样用一颗 50 mΩ 的采样电阻,配运放放大。阻值选择需权衡利弊:

取大:收益:信号强、抗干扰好;代价:白白发热,压缩电机的电压裕量

取小:收益:损耗小;代价:信号太弱,运放与 ADC 难以分辨

50 mΩ 是两侧折中的结果。这颗电阻虽然阻值很小,但过流时仍会明显发热,选型要留足功率余量。

采样电阻两端的压差只有毫伏级,直接送进 ADC 会被噪声淹没,因此需要运放将信号放大至与 ADC 量程匹配的电平;放大后的信号送到 ADC 的通道 9。

一处需要留意的局限:采样电阻只有一个,测到的是两相电流的合成值,而不是某一相的独立电流。软件因此只能拿到总电流,做不了逐相的独立控制。单点采样是本项目的最大约束,讨论闭环控制时还会再次提到。

3.3 供电系统

整个系统由 12 V 供电,既供电机,也经降压后给 MCU 与运放。功率级、采样级、供电三块,构成驱动板的全部硬件(图 2)。

图 2 系统硬件拓扑

四、主控芯片

CW32L010 是武汉芯源半导体推出的一颗低功耗 32 位微控制器。核心规格与本项目的对应关系如下:

内核:规格:ARM Cortex-M0+,最高 48 MHz;对本项目的意义:主频决定中断响应与算法余量

存储:规格:64 KB Flash + 4 KB SRAM;对本项目的意义:SRAM 带硬件奇偶校验,数据被干扰时能及时发现

高级定时器:规格:1 个 16 位 ATIM,6 路捕获比较;对本项目的意义:输出 6 对带死区与刹车的互补 PWM

其他定时器:规格:1 x GTIM、3 x BTIM、1 x LPTIM、独立看门狗;对本项目的意义:分别承担采样节拍、换相节拍与系统计时

ADC:规格:12 位,最高 2 M SPS,最多 14 路外部通道;对本项目的意义:电流采样

通信:规格:2 x UART、1 x SPI(24 Mbit/s)、1 x I2C(1 Mbit/s);对本项目的意义:其中一路 UART 作上位机接口

GPIO:规格:QFN20/TSSOP20 封装 16 路,单路 正负8 mA;对本项目的意义:单路 正负8 mA 就是 MOS 栅极驱动的电流上限

供电与温度:规格:1.625.5 V,-40+85 ℃;对本项目的意义:宽压供电省去额外的稳压设计 以上规格均来自官方数据手册

ATIM 的刹车功能支持两路输入,一旦触发立即关断 PWM,这是电机保护的最后一道硬件闸门。

芯片另内置 1.2 V 基准电压源、温度传感器与两路电压比较器,以及两个易被忽略的单元-支持 8 种算法的硬件 CRC 与每颗芯片的 80 位唯一 ID,分别可用于通信校验和设备识别,都不必额外增加器件。

更重要的是,这块芯片的价格极其低廉,单片购入的价格仅2元,大批量购入可将单价压缩至1元,颇具价格优势。

但凡事都有取舍,这颗芯片没有 DMA,数据传输只能靠软件搬运。缺少 DMA 这一点,在后来的通信实现中成了架构选择的直接原因。

五、外设分工

芯片决定项目开发的上限,具体如何使用片上资源由开发者自己决定,本项目用到的片上外设主要由定时器、UART接口、ADC构成。

图 3 五类外设的分工与选择

ATIM 输出四路带死区的互补 PWM。 死区与刹车必须由硬件保证,软件层面只需要调节占空比和开关信号输出;驱动信号的频率为18kHz。

BTIM 充当换相节拍器。使用基本定时器作为换相节拍器,总体思路是在定时器中推进换相索引,通过调整节拍器的频率调整电机转速。

GTIM 触发 ADC 转换。GTIM以 25 kHz 的固定频率( 40 μs 一次)触发ADC开始一次转换。采样严格按周期执行,并与其他任务在时序上解耦。

ADC 采样电流。用于实现以能量积分为思路的过载保护。预设的25 kHz 采样与 18 kHz 驱动载波没有整数倍关系,采样点相对载波缓慢漂移,不会稳定落在开关沿上;采样值经 32 点滑动窗口平均滤波,偶发尖峰被一并抹平。

UART 通信。数据接收通过中断完成,数据解析由调度器任务池内的解析任务完成。

死区取到 2 μs 这样偏大的值,原因是 3.1 节提到的下管直连 IO,IO 驱动能力有限,MOS 开关沿变慢,死区必须相应放宽。具体放宽多少,会在死区章节详细分析。

六、代码分层

最后一个问题是代码怎么组织。

先设想不分层的情况:全部代码挤在一个主循环里,主循环一边解析UART命令、一边等待、一边推进电机换相。UART数据解析与等待都会占用时间,而这段时间里电机换相不会推进。系统会变得不稳,轻则电机抖动,重则直接失步。所以需要将代码分层,按响应时间要求,将任务分到不同的层里。

中断层:实时性要求高,通常在微秒级;需承担硬实时任务,如步进换相、过流保护

任务层:实时性要求一般,通常在毫秒级;需承担软实时任务,如协议解析、命令执行

主循环:实时性要求相对最低,属于代码层的最外层;承担协调系统运行等辅助性任务,如任务调度器本身

硬实时的含义:一旦错过时限,事情就做错了。 步进中断一旦被拖慢,丢步不可避免,因此必须享受最高优先级、随到随执行,中断服务函数里也不做耗时操作。

软实时的含义:可以晚一点执行,但一定会被执行到。 协议解析、命令执行属于这一类,放到任务层就不会去抢中断的时间。

七、要点总结

本文作为项目开发的前期讲述,目的是告诉读者项目的整体框架,总结为以下几点。

指标必须能追溯到需求。 “0~200 RPM”并非沿用行业惯例,而是由塑料打孔的排屑特性与钻头的切削条件反推得到。能追溯的指标才是可验收的指标。

任何小巧思般的节省都会以别的方式收账。 去掉栅极驱动芯片省了两颗器件,代价是开关沿变慢,于是死区必须放宽到 2 μs。这笔账在讲死区时会被完整地对上。

分层的依据是实时性,不是代码量。 实时性需求不同的任务必须分开,否则系统容易进入不稳定状态。

扫码加入QQ群,3群| 610403240

相关推荐

以开放、共享、互助为理念,致力于构建武汉芯源半导体CW32系列MCU生态社区。无论是嵌入式MCU小自还是想要攻破技术难题的工程师,亦或是需求解决方案的产品经理都可在CW32生态社区汲取营养、共同成长。