STM32在马达控制中的应用 (2007年12月)_图文

STM32在马达 控制中的应用

北京,南京,上海, 深圳,杭州,天津, 武汉,西安,成都, 哈尔滨

大中华区 MCU技术支持中心

STM32 在马达控制中的应用
可用于无刷马达控制的单片机 32位MCU:基于ARM Cortex-M3内核及拥有丰富且强 劲的外围,可支持FOC控制(矢量控制) 面向高端应用 针对无刷马达控制的方案 – 带传感器/无传感器
交流感应马达 BLDC PMSM马达

无传感器方案的实现 Starter Kit 可在数周内实现演示和开发用户的项目
STM32在马达控制中的应用

1

高级定时器TIM1 (1/12)
结构图
ETR
Clock ITR 1 ITR 2 ITR 3 ITR 4

Trigger/Clock Controller

Trigger Output

16-Bit Prescaler Auto Reload REG +/- 16-Bit Counter CH1 CH1N CH2 CH2N CH3 CH3N CH4

CH1 CH2 CH3 CH4 BKIN

Capture Compare Capture Compare Capture Compare Capture Compare

STM32在马达控制中的应用

4

高级定时器TIM1 (2/12)
时钟
最大可达72MHz:精度可达13.8ns

边沿或中心对称模式 更新倍频模式(见下页)
可保证在中心对称模式下无精度损失 由每个PWM周期的中断或DMA实现

STM32在马达控制中的应用

5

高级定时器TIM1 (3/12)
在PWM计数器上溢时产生更新事件可提高占空比精度
U 事件在上溢时产生 MCPU
N N+1

U事件在下 溢时产生
Comp = N Comp = N + 1
Comp from N to N + 1

U事件在下 溢时产生

U事件在下溢时 产生一次 U事件在上溢和 下溢时产生两次

STM32在马达控制中的应用

6

高级定时器TIM1 (4/12)
重复计数器
PWM counter

Double update REP=0 Single update OVF REP=1 Single update UDF REP=1 REP=2 REP=3

ISR

ISR

ISR

ISR

ISR

ISR

ISR

t
ISR ISR ISR

t
ISR ISR ISR ISR

t
ISR ISR ISR

t
ISR ISR

t

STM32在马达控制中的应用

7

高级定时器TIM1 (5/12)
中断
U中断(Update)--- 用于同步更新所有下列预装载寄存器:
比较寄存器 自动重载寄存器 PWM时钟预分频器

输出比较或输入捕捉中断 触发器中断 紧急故障中断

DMA
TIM1_CH1, TIM1_CH2, TIM1_CH3, TIM1_CH4 TIM1_UPDATE TIM1_COM TIM1_TRIG
STM32在马达控制中的应用

8

高级定时器TIM1 (6/12)
DMA burst 传输
一次DMA事件允许更新多个寄存器的值,有效的利用了DMA RAM
OC1t0 OC2t0 OC3t0 OC1t1 OC2t1 OC3t1 OC1t2 OC2t2 OC3t2 … STM32在马达控制中的应用
Virtual Register

Registers
OC1 OC2 OC3

9

高级定时器TIM1 (7/12)
PWM输出管理
硬件死区发生器:8位寄存器,精度最大可达13.8ns(时钟为 72MHZ),0~14us可编程(非线性)
OC1REF CH1 Delay CH1N Delay 5V 0V 5V 0V 5V 0V

Internal PWM before dead time generator High side PWM Low side PWM

每个通道极性可选 紧急故障输入
关闭6个PWM输出并产生中断 异步动作 STM32在马达控制中的应用

10

高级定时器TIM1 (8/12)
灵活的PWM端口设置
控制位 MOE OSSI OSSR CCxE CCxNE 0 0 0 0 1 X 1 1 1 1 0 0 0 0 0 1 1 1 1 X 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 关闭状态(输出使能且为无效电平) 输出禁止(与定时器断开) OCx 输出状态 输出禁止(与定时器断开) OCxREF + 极性 OCxREF + 极性 + 死区 输出状态 OCxN 输出状态 OCxREF + 极性 输出禁止(与定时器断开) OCxREF反相 + 极性 + 死区 输出禁止(与定时器断开) 输出禁止(与定时器断开)

PWM timer used as a GP timer Motor Control (sinewave) Motor Control (6-steps) Motor Control (sinewave) Outputs disconnected from I/O ports All PWMs OFF (low Z for safe stop)

输出禁止(与定时器断开) 输出禁止(与定时器断开) 关闭状态(输出使能且为 无效电平) OCxREF + 极性 OCxREF + 极性 + 死区 OCxREF + 极性 关闭状态(输出使能且为 无效电平) OCxREF反相 + 极性 + 死区

STM32在马达控制中的应用

11

高级定时器TIM1 (9/12)
例子:6步换相方法驱动BLDC马达

T1 T2

T3 T4

T5 T6

T1 T2 T3

Step High Low OC1 OC1N OC2 OC2N OC3 OC3N 1 2 3 4 5 6 T1 T1 T3 T3 T5 T5 T4 oc1ref T6 oc1ref T6 T2 T2 T4 0 0 0 0 0 0 0 1 1 0 0 0 oc2ref oc2ref 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0

T4 T5 T6 相电流

oc3ref 0 oc3ref 0

STM32在马达控制中的应用

12

高级定时器TIM1 (10/12)
紧急故障输入
紧急故障输入可由下列事件产生:
由BRK引脚输入:其极性可编程且由使能位使能 时钟安全系统

当紧急故障发生时:
MOE被清零 状态位置1并产生中断 PWM输出通道的电平由OISx位决定

紧急故障输入的应用
若AOE=1: MOE位保持0直到软件重新置1,一般用于功率模块电 路的保护



若AOE=0: MOE位在下一个U事件重新置1,一般可用于电流调节

STM32在马达控制中的应用

13

高级定时器TIM1 (11/12)
禁烟保护模式
安全级别高的寄存器能被上锁,防止软件跑飞后对功率器件造成 损坏
包括:死区,PWM输出极性,紧急故障输入使能……

所有寄存器在上锁前可读/写,上锁后只读
2个上锁位一旦写值后就不能修改,直到MCU复位 4个上锁等级针对不同的应用提供了灵活性

GPIO配置也能上锁,以避免PWM功能端口被重新设为标 准输出口

STM32在马达控制中的应用

14

高级定时器TIM1 (12/12)
调试特性
针对马达控制此类应用,断点调试须慎重对待
标准断点会对功率器件造成损坏 闭环系统不能在停止后在断点处继续

专门有一个标志位用于配置当断点发生后PWM定时器的行为
标准模式:定时器继续运行
可能会对功率器件造成损坏,因为此时固定的占空比被加到了功率器件 上(中断不会被执行)

安全模式:定时器停止运行,PWM停住输出
此时对功率器件是安全的,且定时器可在断点处继续运行

STM32在马达控制中的应用

15

速度和位置检测
由通用定时器处理,使用专门的模式
这些功能在所有的通用定时器上都可实现

Hall 传感器
Hall 传感器接口为异或输入

编码器
编码器模式1, 2 & 3 (2x, 4x)

测速发电机反馈
输入捕捉模式检测周期

STM32在马达控制中的应用

16

TIM在编码器模式下的框图
CLK ITR1 ITR2 ITR3 ITR4 Trigger Controller TRGx
16 bit AutoReload Register

Controller

16 bit Prescaler

+/- 16-Bit Counter

Encoder Interface

TI1

Polarity Select & Edge Controller

TI2

Polarity Select & Edge Controller

STM32在马达控制中的应用

17

TIM与编码器接口
编码器与STM32接口举例
增量编码器可与MCU直接连接而无需外部接口电路 编码器的第三个表示零位的输出(Z或Index)可连到外部中断 口,以此来触发定时器的计数器复位 编码器模式下计数器的动作
forward IC 2 IC1 Counter reversal backward reversal forward

Up

Down

Up

STM32在马达控制中的应用

18

编码器的关键特性
可编程的计数率
x4: 标准模式,所有边沿有效
1000线的编码器每转一周可发出4000个计数脉冲

x2: 只对A或B计数,但仍可确定方向 转速模式:对编码器计数时钟进行运算

可编程的编码器精度
当自动重载寄存器设为编码器每转一周可发出的计数脉冲时,计 数器就直接得到了转子位置或角度信号 当自动重载寄存器设为0xFFFF时,与使用自由运行定时器的

设计相兼容

编码器每转一周可发出一个或多个中断
一个,每360°;

多个,每60°, 90°,…(依赖于自动重载寄存器的配置)
STM32在马达控制中的应用

19

TIM 与 Hall接口
TI1F_ED

Trigger & Slave Mode Controller

Hall A Hall B Hall C
XOR
Input Filter & Edge detector
TRC IC1

Prescaler

Capture/Compare 1 Register

Input Filter & Edge detector
TRC

IC2

Prescaler

Capture/Compare 2 Register

Input Filter & Edge detector
TRC

IC3

Prescaler

Capture/Compare 3 Register

TI4

Input Filter & Edge detector
TRC

IC4

Prescaler

Capture/Compare 4 Register

STM32在马达控制中的应用

20

定时器同步配置(1/3)
由于拥有触发输出及多个可选的触发输入,3个通用定时 器与PWM定时器能连接在一起串联或同步使用
输入脚TI1 及 TI2也可用作触发器

TIM0

触发器输入

CK_TIM TRG1 TRG2 TRG3

Trigger Controller

TRGO

TRG0

触发器输出

TI1 TI2

Timer control signals: clock, reset, update, enable,…
STM32在马达控制中的应用

21

定时器同步配置(2/3)
配置为主模式时,触发器输出可为:
计数器复位 计数器使能 更新事件 输出比较信号
触发模式
Clock Master ARR Master CNT

Master Trigger Out

Slave CNT

当配置为从模式时,定时器可工作 在如下模式:
触发模式 门控模式 复位模式 外部时钟模式
门控模式

Clock

New Master OCR1 Master OCR1 Master CNT Master OC1

Slave CNT

STM32在马达控制中的应用

22

定时器同步配置(3/3)
举例:BLDC马达换相:一个通用定时器检测Hall位置, 触发PWM定时器换相
主定时器 (TIM)

Hall

TI1F _ED

TIM2
prescaler

从定时器 (ADVANCED TIM)
Trigger Controller
Update
ITR 4
TRG 2

XOR
ITR 1 ITR4

ITR3 ITR 2

TIM1
prescaler counter

counter
ITR 3

STM32在马达控制中的应用

23

ADC 特性 (1/3)
ADC转换速度为1MHZ,精度为12位
采样时间可编程(1.5~239.5cy),最小采样时间:107ns

ADC输入范围:0<=VIN<=VREF+ 18个通道
16个外部通道 2个内部通道:温度传感器和参考电压

中断 DMA --- 仅ADC1有 转换通道编组
常规转换组:最大16个通道 注入转换组:最大4个通道

STM32在马达控制中的应用

24

注入转换模式
常规转换扫描模式
First channel Conversion

注入转换扫描模式
First channel Conversion First injected channel Conversion

Second channel Conversion

Second channel Conversion

Second injected channel Conversion

Trigger
Last channel Conversion Last channel Conversion

Last injected channel Conversion

Interrupt

STM32在马达控制中的应用

25

ADC 特性 (2/3)
ADC WATCHDOG 基于定序器的扫描模式:
任意通道,任意次序 最大16个通道的常规转换(结果由DMA存储) 最大4个通道的注入转换(结果相应寄存器存储)

多触发源
每个组可被来自定时器的6个事件触发 可由外部事件和软件触发

STM32在马达控制中的应用

26

ADC 特性 (3/3)
转换数据可向左或向右对齐 4个偏移补偿寄存器
补偿外部电路的偏移,如运放.如需要可提供带符号值

每个通道可单独编程采样时间,可以采样不同输入阻抗的 信号
从1.5cy(Rin<1.2K)到239.5cy(Rin<350K),共8个值 当采样率为1MSps时,可不用电压跟随器

STM32在马达控制中的应用

27

ADC框图
VREF+ VREFVDDA VSSA

ADCCLK

ADC Prescalers: Div2, Div4, Div6 and Div8

PCLK2

ADC_IN0 ADC_IN1

ADC GPIO Ports
Up to 4

DMA Request Address/data bus
Injected data registers (4x12bits) Regular data register (12bits)
End of injected conversion

. . .
ADC_IN15

ANALOG MUX

Injected Channels
Up to 16

Regular Channels

Temp Sensor VREFINT

Analog Watchdog
TIM1_TRGO TIM1_CC4 TIM1_TRGO TIM2_CC1 TIM3_CC4 TIM4_TRGO Ext_IT_15 JEXTSEL[2:0] bits TIM1_CC1 TIM1_CC2 TIM1_CC3 TIM2_CC2 TIM3_TRGO TIM4_CC4 Ext_IT_11 EXTSEL[2:0] bits EXTRIG bit Start Trigger (regular group) Start Trigger (injected group) JEXTRIG bit

End of conversion Analog watchdog event

High Threshold register (12bits) Low Threshold register (12bits)

AWD

EOC

JEOC

Flags

AWDIE

EOCIE

JEOCIE

Interrupt enable bits

ADC interrupt to NVIC

STM32在马达控制中的应用

28

ADC双模式(1/2)
只能在拥有2个ADC的MCU中实现
ADC1和ADC2可分别单独使用或耦合在一起使用(分主/从)

8个ADC双模式
VREFINT

ADC_IN15 ADC_IN1ADC_IN0



GPIO Ports


ANALOG MUX
Up to 4 injected channels Up to 16 regular channels

ADC1 Analog
External event (Regular group) External event (Injected group) External event sync Data register

ADC2 Analog

Digital Master

Digital Slave

EOC/JEOC

STM32在马达控制中的应用

29

ADC双模式(2/2)
Injected simultaneous mode on 4 injected channels
Sampling ADC2
CH0 CH1 CH2 CH3

Conversion

ADC1

CH15

CH13

CH1

CH2

Trigger for injected channels

End of Injected Conversion on ADC1 and ADC2

Fast Interleaved mode on 1 regular channel in continuous conversion mode
ADC2
CH0 CH0 … CH0

ADC1

CH0 7 ADCCLK cycles

CH0



CH0

Up to 2 MSps data throughput (DMA-based)
30

Trigger for regular channels

STM32在马达控制中的应用

隔行扫描模式下的DMA传输
隔行扫描模式:两ADC连续对同一通道采样
16-bit ADC1 Data2 Ctrl Status Data1 … Aliased Ctrl ADC2 Status Data2 … 1 次 DMA传输2个数据 Data2 Data2 Data2 Data1 Data1 Data1 32-bit DMA transfer RAM

STM32在马达控制中的应用

31

STM32如何实现ADC同步
PWM定时器中的同步单元可实现ADC同步
可有2个选择: 直接由PWM定时器计数器的峰顶,谷底或两者中的任 一个同步 由PWM定时器的第4个输出比较产生的延时同步 ADC的结果可由转换完成中断处理或由DMA存储

STM32在马达控制中的应用

32

直接同步
PWM定时器的U事件触发两个ADC,使其工作在 注入同时转换模式下
由于连续采样相电流,不会产生误差
MASTER PWM
CLOC K prescaler

Trigger Update Controller

TRG 0

counter

Injection trigger

ADC1&2

STM32在马达控制中的应用

33

STM32

演示套件

三相半桥功率驱动板,3电阻法读取相电流 完整的软件库可驱动PMSM或AC马达 该套件包含一个带编码器和Hall传感器的PMSM马达
STM32在马达控制中的应用

34

STM32在马达控制中的应用

35


相关文档

STM32在三相无刷直流电机控制系统中的应用
STM32在马达控制中的应用
高性能STM32 STM8 优化电机控制生泰系统应用方案
基于STM32的伺服电机控制系统设计
Stm32步进电机控制器及其在焊缝跟踪系统中的应用
在STM32 32位ARM微控制器上做电机控制
STM32的PWM故障触发机制在电机控制领域中的应用
STM32 马达控制套件介绍【精选】
针对电机控制和数位电源应用的STM32微控制器系列
基于STM32的交流异步电机控制系统的设计
电脑版