由SA51和MSP430F1121组成的驱动控制系统
扫描二维码
随时随地手机看文章
关键词:SA51 MSP430F1121 脉宽调制 DCO 捕获
现在的电子设备往往要求体积小、重量轻、效率高,通常在苛刻的环境条件下,尤其在军工产品中,设计者非常希望使用单片或双片系统以尽可能地减少器件数量。SA51和MSP430F1121以其自身的高集成度和强大功能成为组成双片驱动控制系统的理想选择方案。该方案可广泛应用在对电机、电磁阀的控制系统中。
1 SA51简介
1.1 SA51的特点参数
SA51是由美国APEX公司生产的脉宽调制功率放大器,它能为负载提供5A的连续电流。该全桥放大器能在很宽的供电电源范围内工作,对桥上臂和下臂开关的驱动和控制电路混合集成在器件内,用户只需提供与TTL电平兼容的PWM信号就可进行四象限模式的幅值和方向同时控制,而且与数字控制器的接口非常简单。SA51的内部电路可提供适当的死区时间间隔以保护桥的四个N沟道场效应管,场效应管的导通电阻很低,而开关速度却很高(最高可达500kHz),效率可达97%。对于空闲/休眠模式或错误保护,SA51提供有与TTL兼容的禁止管脚来关断四个场效应管。SA51采用8脚TO-3封装,可安装在小型散热器上或直接焊装在印制电路板上。
SA51的电气极限参数如下:
*供电电压+Vs:80V;
*峰值输出电流:7A;
*逻辑供电电压Vcc:16V;
*内部功耗:120W;
*管脚焊接温度(10s):300℃;
*环境温度:150℃;
*贮存温度:-65~150℃;
*使用温度:-65~125℃;
**输入端输入电压:0~Vcc;
*禁止端输入电压:0~Vcc。
1.2 SA51的结构功能
SA51放大器的原理框图如图1所示。现将各管脚的功能描述如下:
Vcc:内部逻辑电路和MOSFETS上臂和下臂驱动器的低压电源;
Vs:H桥供电电源,MOSFETS从这个电源端获得输出电流,该脚电压范围为Vcc~+80V,MOSFETS标称值为100V。该脚到地的旁路电容可滤除电压被动,以确保在开关期间供电电压的稳定,该电容应尽量靠近Vs管脚;
AOUT:半桥的输出脚A,当PWM输入为高时,该脚输出为Vs;
BOUT:半桥的输出脚B,当PWM输入为低时,该脚输出为Vs;
RSENSE:两个半桥下臂的共同联接点,可连接一个到Vs地的检测电阻以检测电流,实际上该脚也可以直接连到Vs的地。但该管脚相对于Vs地的最大允许电压±2V;
GND:输入逻辑和Vcc的地;
PWM输入:用于输入与TTL兼容的PWM信号,占空比在0%~100%之间;
输入禁止:用于关断四个MOSFETS管,该脚为1时为关断,为0时使能。
2 MSP430F1121简介
2.1 MSP430F1121的主要功能
MSP430F1121是美国TI公司生产的单片机,它采用高效16位RISC内核,具有27条指令和125ns的指令周期,使用1.8~3.6V(最高到4.1V)低电压供电,程序代码加密后无法解密。该单片机只需外接一个电阻和一个电容即可实现高精度斜率A/D转换,同时可串行在线编程。该器件具强大的中断功能和高达10万次的擦写次数,其定时器A在比较模式下可方便地实现D/A转换或生成脉宽调制输出信号。MSP430F1121内含4kB+256B Flash以及256B RAM,采用20脚SOWB或TSSOP封装,P1、P2端口的14个I/O引脚均可独立编程为输入、输出和中断状态,也可以整体作为端口使用。
2.2 MSP430F1121的时钟系统
MSP430F1121有ACLK(辅助时钟)、MCLK(主系统时钟)和SMCLK(子系统时钟)三种时钟。这三种时钟可由低频振荡器LFXT1CL经1、2、4、8分频后得到低频时钟。MCLK和SMCLK也可由DCOCLK经1、2、4、8分频后得到高频时钟。DCOCLK则可将DCO振荡器产生的频率经软件FLL后得到。
图2 电机转速控制原理图
DCOCLK的软件FLL方法为:DCO基础频率由内部或外部电阻向DC发生器注入的电流决定(可由DCOR控制位来选择片内或片外电阻),当DCOCLK为5MHz时选片内电阻,DCOCLK大于5MHz时,选择片外电阻。它的基础频率可由电阻控制位Rsel2、Rsel1、Rsel0分频8为个标称频率范围,然后由控制位DCO2、DCO1、DCO0再进行分频调节,调整位MOD4~MOD0可用于控制DCO和DCO+1两种频率之间的切换。
下面是一个设置时钟的程序,该程序以将ACLK设置为4096Hz(LFXT1CLK/8=32768Hz/8=4096Hz)、DCOCLK设置为8MHz、MCLK和SMCLK选择DCOCLK为例进行编写,其中delta=DCOCLK/ACLK=8M/4096=1953。
#include "msp430x11x1.h"
#include "stdio.h"
#define delta 1953
void setdco(void);
main(void)
{
WDTCTL=WDTPW+WDTHOLD; //关看门狗
BCSCTL1|=DIVA1+DIVA0; //ACLK=LFXT1CLK/8
BCSCTL2|=DCOR; //用外部电阻
Setdco();
}
void setdco(void)
{
int fir1,fir2,lable1=1;
fir2=0;
TACTL=TASSEL1+TACLR;
CCTL2=CCIS0+CM0+CAP;
TACTL|=MC1;
For(;lable1==1;)
{
lable2:
if((CCTL2&CCLFG)==0) //测试是否捕获到数
goto lable2;
CCTL2=CCTL2-CCLFG; //清除捕获标志
fir1=CCR2;
fir1=fir1-fir2;
fir2=CCR2;
if(delta>fir1)
{ DCOCTL=DCOCTL+1;
if(DCOCTL= =255)
{if((BCSCTL1&7)= =7)
lable1=0;
else
BCSCTL1=BCSCTL1+1;
}
}
if(delta<fir1)
{DCOCTL=DCOCTL-1;
if(DCOCTL= =0)
{if((BCSCTL1&7)= =0)
lable1=0;
else
BCSCTL1=BCSCTL1-1;
}
}
if(delta= =fir1)
lable1=0;
}
CCTL2=0;
TACTL=0;
}
2.3 ASP430F1121的定时设置
定时器Timer-A有三个捕获/比较模块,其中比较模式下可方便地生成PWM信号。下面是一个Timer-A的捕获/比较模块1在比较模式下生成占空比为50%的PWM信号的例程。它的PWM输出模式为3:PWM置位/复位,改变CCR0的值可改变PWM周期(如SMCLK=8MHz,则P1.2输出的PWM的周期为CCR0/8M=8000/8M=1ms),而改变CCR1的值则可改变占空比(0%~100%)。
#include "msp430x11x1.h"
#include "stdio.h"
main(void)
{
WDTCTL=WDTPW+WDTHOLD; //关看门狗
TACTL=TASSEL1+TACLR; //定时器时钟源选SMCLK
CCR0=8000;
CCTL1=OUTMOD0+OUTMOD1;
CCR1=4000;
P1DIR|=4;
P1SEK=|4;
TACTL|=MCO;
}
定时器Timer-A工作在捕获模式下可用于时间事件的精确定位。如在选定的输入引脚上产生选定脉冲触发沿,则定时器计数的值将被复制到捕获寄存器CCRx中。下面是捕获/比较模块2工作在捕获模式下的例程,其中定时器时钟源选SMCLK,增计数模式,捕获源为P1.3脚输入的脉冲,捕获次数为100次,捕获的频率数据放数组READCCR2[]中。
#include "msp430x11x1.h"
#include "stdio.h"
main(void)
{ int READCCR2[100];
WDTCTL=WDTPW+WDTHOLD; //关看门狗
TACTL=TASSEL1+TACLR; //定时器时钟源选SMCLK
CCTL2=CM0+CAP;
TACTL|=MCO;
for(I=0;I<100;I++)
{TST:
IF((CCTL2&CCIF)==0)
GOTO TST;
CCTL2=CCTL2-CCIFG;
READCCR2[I]=CCR2;
}
}
3 电机转速控制系统的设计
图2是由微控制器MSP430F1121和驱动器SA51组成的小功率电机转速控制系统原理图。图中,V1~V4为TVS管(Transient Voltage Suggressor Diode:瞬态电压抑制二极管),当承受一个高能量的瞬时过压脉冲时,其工作阻抗可立即降至导通值,以允许大电流通过,并将电压箝位到预定水平,以有效保护电路中的精密元器件免受损坏。箝位响应时间仅为1ps(10-12S),电路中采用TVS管可有效防止Aout和Bout输出电压高于Vss或低于地。
图2中的U2为TPS77101电源管理芯片,V0=Vref(1+R1/R2),其中,Vref=1.1834V,选R2为30kΩ,若使V0为4.0V,则R1应选72kΩ,为了减少噪声和抑制振荡,R1和R2应尽可能地接近SENSE端,上电时,RESET会提供给单片机一个复位信号。
单片机的P2.0、P2.1可作为电机四种模态控制输入端,增量式编码器的输出脉冲经光电隔离后将送入捕获I/O端P1.3,在将要求的状态和实际转速比较后,经过一定的控制算法处理后,改变CCR1寄存器的值,从而改变调制信号占空比,最后经PWM输出I/O端P1.2输出到SA51的PWM输入端,以控制电机的转速。
这里给出的仅是由SA51与MSP430F1121组成的驱控制的简单闭环应用,事实上,这种组合可应用在很多场合,如利用A/D转换或利用串行通讯进行模拟或数字的转换和位置控制等。