—T13有一个独立的比较通道和1路输出,可生成高速PWM信号,并控制占空比。T13也支持单脉冲触发模式,可与T12同步。PWM信号可自动迭加至T12的6路输出中任何一路(或全部)的有效电平上。对于BLDC电机控制,通过T13 PWM的占空比调节电机速度。
如图2所示,CC60-CC62和COUT60-COUT62是用于驱动电机的6个基本输出信号。对于BLDC电机控制,应当通过三个输入口CCPOS0-CCPOS2(转子位置反馈信号)的状态来控制输出信号。T13生成的高频PWM信号具有高达50ns的分辨率,加至T12的CC60-CC62和COUT60-COUT62输出中的任何一个有效电平。CTRAP是紧急中断输入。如果该输入为低,CC60-CC62和COUT60-COUT62将立即变为预定义的电平,以实现过流/过压保护。用户仅需设置各种寄存器的值,例如周期寄存器、比较寄存器、偏移寄存器等等,即可快捷地控制CAPCOM6E。
图2 CAPCOM6E框图
值得指出的是借助CAPCOM6E,用户可通过软件建立任何块交换表(或状态机),同时由硬件生成相应的PWM输出信号。这样可以非常灵活地实现任何控制要求。下面的例子是以定义自制
的块交换表的源代码。数组下标HALL_PATTERNS_NUMBER 从0至5。
// Hall patterns
ubyte HallPatterns [HALL_PATTERNS_NUMBER]=
{
0x25, // Current="100" Expected="101"
0x29, // Current="101" Expected="001"
0x0b, // Current="001" Expected="011"
0x1a, // Current="011" Expected="010"
0x16, // Current="010" Expected="110"
0x34, // Current="110" Expected="100"
};
ubyte PWMPatterns[ HALL_PATTERNS_NUMBER]=
{
0x18, // U="0" V=- W=+ COUT62/CC62=01 COUT61/CC61=10 COUT60/CC60=00
0x12, // U=- V="0" W=+ COUT62/CC62=01 COUT61/CC61=00 COUT60/CC60=10
0x06, // U=- V=+ W="0" COUT62/CC62=00 COUT61/CC61=01 COUT60/CC60=10
0x24, // U="0" V=+ W=- COUT62/CC62=10 COUT61/CC61=01 COUT60/CC60=00
0x21, // U=+ V="0" W=- COUT62/CC62=10 COUT61/CC61=00 COUT60/CC60=01
0x09 // U=+ V=-W=0 COUT62/CC62=00 COUT61/CC61=10 COUT60/CC60=01
}; 无传感器的BLDC控制
些应用中,不能使用霍尔传感器或其它直接检测转子位置的方法,因此需要采用间接方法来检测转子位置。对于如图3中所示的电机运行,探测电机反电势的过零点是获得电机转子位置最常见的方法。按照120度导电方式, 任何时间都有一相电机端子没有外加电压,因此可以在该相电机端子检测电机反电势来得知转子位置。
在图3(a)中,各个相位使用的霍尔传感器用三个电阻分压器和一个比较器替代。比较器向C868提供三个转子位置信号。CAPCOM6E特别适用于这个解决方案,因为它的每路输入均有一个噪声滤波器可抑制噪音,并具备相位延迟功能,可调节相位角度,如图4所示。
图3 无传感器C868 BLDC系统(a)利用外部比较器