北京,南京,上海,深圳,杭州,天津,武汉,西安,成都,哈尔滨STM32在马达控制中的应用大中华区MCU技术支持中心1STM32在马达控制中的应用STM32在马达控制中的应用可用于无刷马达控制的单片机32位MCU:基于ARMCortex-M3内核及拥有丰富且强劲的外围,可支持FOC控制(矢量控制)面向高端应用针对无刷马达控制的方案–带传感器/无传感器交流感应马达BLDCPMSM马达无传感器方案的实现StarterKit可在数周内实现演示和开发用户的项目4STM32在马达控制中的应用高级定时器TIM1(1/12)CH1CH1NCH2CH2NCH3CH3NCH416-BitPrescalerITR1Trigger/ClockControllerTriggerOutputClockAutoReloadREG+/-16-BitCounterCaptureCompareITR2ITR3ITR4CaptureCompareCaptureCompareCaptureCompareCH1CH2CH3CH4ETRBKIN结构图5STM32在马达控制中的应用高级定时器TIM1(2/12)时钟最大可达72MHz:精度可达13.8ns边沿或中心对称模式更新倍频模式(见下页)可保证在中心对称模式下无精度损失由每个PWM周期的中断或DMA实现6STM32在马达控制中的应用高级定时器TIM1(3/12)在PWM计数器上溢时产生更新事件可提高占空比精度MCPUNN+1Comp=NComp=N+1U事件在下溢时产生一次U事件在上溢和下溢时产生两次CompfromNtoN+1U事件在上溢时产生U事件在下溢时产生U事件在下溢时产生7STM32在马达控制中的应用高级定时器TIM1(4/12)重复计数器tISRtttISRISRISRISRISRISRISRISRISRISRISRISRISRISRISRtISRISRISRDoubleupdateREP=0SingleupdateUDFREP=1REP=2REP=3PWMcounterSingleupdateOVFREP=18STM32在马达控制中的应用高级定时器TIM1(5/12)中断U中断(Update)---用于同步更新所有下列预装载寄存器:比较寄存器自动重载寄存器PWM时钟预分频器输出比较或输入捕捉中断触发器中断紧急故障中断DMATIM1_CH1,TIM1_CH2,TIM1_CH3,TIM1_CH4TIM1_UPDATETIM1_COMTIM1_TRIG9STM32在马达控制中的应用高级定时器TIM1(6/12)DMAburst传输一次DMA事件允许更新多个寄存器的值,有效的利用了DMAOC1t0OC2t0OC3t0OC1t1OC2t1OC3t1OC1t2OC2t2OC3t2…RAMOC1OC2OC3VirtualRegisterRegisters10STM32在马达控制中的应用PWM输出管理硬件死区发生器:8位寄存器,精度最大可达13.8ns(时钟为72MHZ),0~14us可编程(非线性)每个通道极性可选紧急故障输入关闭6个PWM输出并产生中断异步动作高级定时器TIM1(7/12)OC1REFCH1CH1NDelayDelay5V5V5V0V0V0VHighsidePWMLowsidePWMInternalPWMbeforedeadtimegenerator11STM32在马达控制中的应用高级定时器TIM1(8/12)灵活的PWM端口设置PWMtimerusedasaGPtimerMotorControl(6-steps)MotorControl(sinewave)OutputsdisconnectedfromI/OportsAllPWMsOFF(lowZforsafestop)MotorControl(sinewave)MOEOSSIOSSRCCxECCxNEOCx输出状态OCxN输出状态000输出禁止(与定时器断开)输出禁止(与定时器断开)001输出禁止(与定时器断开)OCxREF+极性010OCxREF+极性输出禁止(与定时器断开)011OCxREF+极性+死区OCxREF反相+极性+死区100输出禁止(与定时器断开)输出禁止(与定时器断开)101关闭状态(输出使能且为无效电平)OCxREF+极性110OCxREF+极性关闭状态(输出使能且为无效电平)111OCxREF+极性+死区OCxREF反相+极性+死区0000010100111001011101111X控制位输出状态输出禁止(与定时器断开)关闭状态(输出使能且为无效电平)0X12STM32在马达控制中的应用高级定时器TIM1(9/12)例子:6步换相方法驱动BLDC马达T3T5T1T4T6T2StepHighLowOC1OC1NOC2OC2NOC3OC3N1T1T4oc1ref001002T1T6oc1ref000013T3T600oc2ref0014T3T201oc2ref0005T5T20100oc3ref06T5T40000oc3ref0T1T2T3T4T5T6相电流13STM32在马达控制中的应用高级定时器TIM1(10/12)紧急故障输入紧急故障输入可由下列事件产生:由BRK引脚输入:其极性可编程且由使能位使能时钟安全系统当紧急故障发生时:MOE被清零状态位置1并产生中断PWM输出通道的电平由OISx位决定紧急故障输入的应用若AOE=1:MOE位保持0直到软件重新置1,一般用于功率模块电路的保护若AOE=0:MOE位在下一个U事件重新置1,一般可用于电流调节★14STM32在马达控制中的应用高级定时器TIM1(11/12)禁烟保护模式安全级别高的寄存器能被上锁,防止软件跑飞后对功率器件造成损坏包括:死区、PWM输出极性、紧急故障输入使能……所有寄存器在上锁前可读/写,上锁后只读2个上锁位一旦写值后就不能修改,直到MCU复位4个上锁等级针对不同的应用提供了灵活性GPIO配置也能上锁,以避免PWM功能端口被重新设为标准输出口15STM32在马达控制中的应用高级定时器TIM1(12/12)调试特性针对马达控制此类应用,断点调试须慎重对待标准断点会对功率器件造成损坏闭环系统不能在停止后在断点处继续专门有一个标志位用于配置当断点发生后PWM定时器的行为标准模式:定时器继续运行可能会对功率器件造成损坏,因为此时固定的占空比被加到了功率器件上(中断不会被执行)安全模式:定时器停止运行,PWM停住输出此时对功率器件是安全的,且定时器可在断点处继续运行16STM32在马达控制中的应用速度和位置检测由通用定时器处理,使用专门的模式这些功能在所有的通用定时器上都可实现Hall传感器Hall传感器接口为异或输入编码器编码器模式1,2&3(2x,4x)测速发电机反馈输入捕捉模式检测周期17STM32在马达控制中的应用TIM在编码器模式下的框图TriggerControllerTRGxControllerCLKEncoderInterfaceITR1ITR2ITR3ITR4+/-16-BitCounter16bitPrescaler16bitAutoReloadRegisterTI1TI2PolaritySelect&EdgeControllerPolaritySelect&EdgeController18STM32在马达控制中的应用TIM与编码器接口编码器与STM32接口举例增量编码器可与MCU直接连接而无需外部接口电路编码器的第三个表示零位的输出(Z或Index)可连到外部中断口,以此来触发定时器的计数器复位编码器模式下计数器的动作IC1IC2CounterforwardforwardreversalreversalbackwardUpUpDown19STM32在马达控制中的应用编码器的关键特性可编程的计数率x4:标准模式,所有边沿有效1000线的编码器每转一周可发出4000个计数脉冲x2:只对A或B计数,但仍可确定方向转速模式:对编码器计数时钟进行运算可编程的编码器精度当自动重载寄存器设为编码器每转一周可发出的计数脉冲时,计数器就直接得到了转子位置或角度信号当自动重载寄存器设为0xFFFF时,与使用自由运行定时器的设计相兼容编码器每转一周可发出一个或多个中断一个,每360°;多个,每60°,90°,…(依赖于自动重载寄存器的配置)20STM32在马达控制中的应用TIM与Hall接口PrescalerInputFilter&EdgedetectorTRCPrescalerCapture/Compare2RegisterInputFilter&EdgedetectorCapture/Compare3RegisterInputFilter&EdgedetectorTRCTRCPrescalerIC2IC3IC4Capture/Compare4RegisterTRCXORInputFilter&EdgedetectorCapture/Compare1RegisterPrescalerTI4IC1HallAHallBHallCTI1F_EDTrigger&SlaveModeController21STM32在马达控制中的应用定时器同步配置(1/3)由于拥有触发输出及多个可选的触发输入,3个通用定时器与PWM定时器能连接在一起串联或同步使用输入脚TI1及TI2也可用作触发器CK_TIMTriggerControllerTRGOTIM0TRG0TRG2TRG1TRG3TI1TI2触发器输入触发器输出Timercontrolsignals:clock,reset,update,enable,…22STM32在马达控制中的应用定时器同步配置(2/3)配置为主模式时,触发器输出可为:计数器复位计数器使能更新事件输出比较信号当配置为从模式时,定时器可工作在如下模式:触发模式门控模式复位模式外部时钟模式SlaveCNTNewMasterOCR1ClockMasterOCR1MasterCNTMasterOC1SlaveCNTMasterARRClockMasterCNTMasterTriggerOut触发模式门控模式23STM32在马达控制中的应用定时器同步配置(3/3)举例:BLDC马达换相:一个通用定时器检测Hall位置,触发PWM定时器换相主定时器(TIM)TIM2ITR1prescalerTriggerControllerUpdatecounterTIM1ITR3ITR4prescalercounter从定时器(ADVANCEDTIM)ITR2ITR4TRG2XORHallITR3TI1F_ED24STM32在马达控制中的应用ADC特性(1/3)ADC转换速度为1MHZ,精度为12位采样时间可编程(1.5~239.5cy),最小采样时间:107nsADC输入范围:0=VIN=VREF+18个通道16个外部通道2个内部通道:温度传感器和参考电压中断DMA---仅ADC1有转换通道编组常规转换组:最大16个通道注入转换组:最大4个通道25STM32在马达控制中的应用注入转换模式常规转换扫描模式FirstchannelConversionSecondchannelConversionLastchannelConversionFirstchannelConversionSecondchannelConversionLastchannelConversionFirstinjectedchannelConversionSecondinjectedchannelConversionLastinjectedchannelConversionTriggerInterrupt注入转换扫描模式26STM32在马达控制中的应用ADC特性(2/3)ADCWATCHDOG基于定序器的扫描模式:任意通道,任意次序最大16个通道的常规转换(结果由DMA存储)最大4个通道的注入转换(结果相应寄存器存储)多触发源每个组可被来自定时器的6个事件触发可由外部事件和软件触发27STM32在马