Slide1Slide1C12L15BLDC轻松构建低成本的直流无刷电机控制方案Slide2课程安排F1低电压(LV)评估板概述采用F1LV评估板进行BLDC控制适用于电机控制的增强型中档单片机内核Slide3课程目标本课程结束时,您将可以:了解如何将F1LV评估板用于开发BLDC了解控制BLDC电机所需的PIC16F1xxx外设针对具体应用优化所提供的F1LV演示代码Slide4课程安排F1LV评估板直流无刷电机概述无传感器位置检测控制软件电机启动增强型外设Slide5Slide5带电机控制附件的F1LV评估板Slide6F1LV评估板BLDC附件Slide7Slide7三相直流无刷电机控制Slide8直流无刷电机激励100ACrrggbbBcomcomcom110010011101001ABCSNSNSlide9简化框图驱动换算电机ECCPPIC16F1xxxI/O定时器33333电源Slide10BLDC控制器框图输入复用比较器ECCP1PWM可转向PWM输出ECCP2/Timer1换相事件计算换相时间误差积分计算中点误差消隐Timer0OS事件电机驱动器BEMFTimer2ADC速度控制Slide11Slide11无传感器控制:通过BEMF过零检测确定电机转子位置Slide12什么是反电动势(BEMF)当直流电机旋转时,永磁转子转过定子绕组,在绕组中感应出的电动势称为反电动势(BEMF)。BEMF与电机转速成正比。BEMF(RMS)=RPM/KV转矩=KT*电流为检测反电动势,电机必须处于旋转状态。BEMF电机RLCSlide13计算BEMFABC+-++--RRR当施加驱动电压时:BEMF@C=C–B+i*Ri=[V-(A-B)]/[2*R]BEMF@C=C-B+[V-(A-B)]*R/[2*R]BEMF@C=C-B+[(V-A+B)/2]V当不施加驱动电压时:BEMF@C=C–BLLLiSlide14100%占空比驱动BLDC-1-0.500.511.5-303090150210270330电压(V)(归一化为DC驱动)电角度BLDC电机波形BCAABS(B-C)ABS(C-A)ABS(A-B)BEMF(driveon)BEMF(Driveoff)(PWMat100%DutyCycle)Slide1540%占空比驱动BLDC-1-0.500.511.5-303090150210270330电压(V)(归一化为DC驱动)电角度BLDC电机波形BCAABS(B-C)ABS(C-A)ABS(A-B)BEMF(driveon)BEMF(Driveoff)(PWMat40%DutyCycle)Slide16电机波形100%占空比40%占空比Slide17续流电流路径HI_ALO_AHI_BLO_BHI_CLO_CVmotor+-Slide18利用比较器检测BEMFACBABCR2*R1*VmotorR3=R2/2R1+-PIC16F1xxx相选择同相端输入*选择用于分压的R1和R2,以将电压降到比较器的共模电压范围内。Slide19Slide19运行电机和转速控制Slide20只需Timer1、比较器和ECCP即可实现所有功能Timer1测量和定时关键事件消隐(通过ECCP2)过零检测(通过比较器)换相(通过ECCP2)ECCPPWM周期由Timer2和PR2设定速度由CCPR1L占空比控制Slide21Timer1/ECCP2控制换相CCCCZCZCZC时间T60T30Timer1起始计数值为零CCPR2H:L设置为消隐周期出现过零事件时读取Timer1计数读取计数值和预期时间之间的误差用于调整为下个周期预设的CCPR2H:L值过零点提早出现误差用于调整下一个周期预先设置CCPR2H:L,以在自此点后的半个换相时间进行比较过零点延迟出现误差用于调整下一个周期消隐周期终止CCPR2H:L设置为换相周期Timer1ECCP2匹配Slide22换相校正换相时间预期过零点实际过零点误差提早换相下一个换相时间校正后的过零点校正后的换相时间Slide23Slide23控制软件Slide24电机驱动执行程序CCP2/Timer1(换相)比较器(过零检测)中断状态表系统服务Slide25系统服务上电系统初始化STOP=False禁止中断STOP?TrueFalse加速慢速启动速度管理:设置PWM占空比(RUN=T/F)(STOP=U/T)RUN?TrueFalse加速完成?否是允许中断堵转检测Slide26换相换相设置PWM输出设置持续输出设置比较器输入设置BEMF标志T/F选择CommPhaseCommPhase=下一个CommPhase返回Slide27CCP2中断(换相)CCP2中断换相BEMF标志?过零非过零CCPR2H:L=CommTime消隐NextState=过零Error=ZC_Time–CommTime/2CommTime=CommTime+Error*EGainNextState=换相CCPR2H:L=CommTime继续锁相检测允许比较器中断Slide28比较器中断(过零检测)ZC_Time=Timer1比较器中断CCPR2H:L=CommTime/2继续禁止比较器中断NextState=换相Slide29Slide29启动电机Slide30强制换相启动电压RPM理想情况自由运行带载可检测到的最小BEMF速度Slide31不稳定区域稳定区域强制换相启动电压RPM可检测到的最小BEMF速度最小启动电压带载Slide32开环换相爬坡换相时间预期过零点实际过零点下一个换相时间锁定区域内的换相时间锁定窗口Slide33Slide33适用于本课程所探讨控制方案的PIC16F1xxx外设Slide34PIC®MCU外设Timer0–OS时序ECCP2–换相时序Timer1–比较和复位ECCP1–转向和速度控制Timer2–用于速度控制的PWM定时器输出转向(steering)–换相复用输入的比较器Slide35ECCP1外设扩展的捕捉/比较//PWM外设P1M1P1M0CCP1M3CCP1M2DC1B1DC1B0CCP1CON寄存器CCP1M1CCP1M0PWM类型PWM模式和极性占空比扩展Slide36ECCP1输出转向STRDSTRCSTRBSTRASYNC---转向控制同步PSTRCON寄存器Slide37ECCP2外设扩展的捕捉/比较/PWM外设P2M1P2M0CCP2M3CCP2M2DC2B1DC2B0CCP2CON寄存器CCP2M1CCP2M01011=特殊事件比较模式ResetSlide38独立比较器C1ONC1OUT-C1RC1OEC1POLCM1CON0寄存器C1CH1C1CH0反相端输入选择同相端输入极性使能Slide39适合此类应用的PIC16F1xxx器件部件编号CCP/ECCP比较器A/D8/16位定时器串口引脚数Rom/RamEEMFoscPIC16F18272/22124/1有184k/38425632MPIC16F19332/32114/1有284k/25625632MPIC16F19362/32114/1有288k/51225632MPIC16F19382/32114/1有2816k/1k25632MPIC16F19342/32144/1有404k/25625632MPIC16F19372/32144/1有408k/51225632MPIC16F19392/32144/1有4016k/1k25632MPIC16F19462/33174/1有648k/51225632MPIC16F19472/33174/1有6416k/1k25632MPIC18F25K222/32193/4有2816k/153625664MSlide40总结回顾一下我们学到了什么:F1LV评估板的功能及如何使用适用于电机控制的PIC16F1xxx外设为具体应用优化F1LV评估板演示代码Slide41参考资料AN857——直流无刷电机的简单控制AN1305——采用PIC16Fxxx器件的无传感器三相直流无刷电机控制DS41414——PIC16F1947数据手册(然后点击F1LowVoltageEvaluation链接)