BTN7970在直流电机驱动系统中的应用

2010-09-25 02:58:32刘贵如王陆林
单片机与嵌入式系统应用 2010年8期
关键词:低电平直流电机电路设计

刘贵如,王陆林

(安徽工程大学计算机科学与技术学院,芜湖 241000)

引 言

微电机在嵌入式系统领域的应用日益广泛,采用驱动电路和MOSFET管的传统设计方法不仅电路设计复杂,而且不容易控制。针对此问题,各半导体厂商推出了直流电机控制专用集成电路,无需驱动便可以与MCU接口,且无需另外添加电机电流检测电路,外围器件少,电机控制简单。

目前该类芯片已经广泛应用于微电机的嵌入式应用领域,但它也存在一些缺点:输出功率有限,不适合大功率直流电机驱动的需求;采用PWM信号驱动且PWM 信号的频率和占空比有一定限制;没有光电隔离电路,当驱动电路发生击穿等故障时会损坏与之相连的MCU等器件。

以Infineon公司推出的BTN7970芯片为例,它所供电压为8~45 V,最大电流为50 A,驱动信号PWM 频率为1~25 kHz。由于功率和驱动信号占空比的限制,使得它有很大的局限性。在电机控制驱动电路和控制程序设计方面要综合考虑并采取适当措施。本文将详细介绍BTN7970在大功率微电机控制驱动系统中的典型应用。

1 BTN7970简介

BTN7970是由Infineon(英飞凌)公司推出的智能功率驱动芯片,内含电流检测电路、控制驱动电路,以及1个P型和1个N型MOSFET管,可以灵活应用于2相或3相、直流有刷或无刷电机的控制驱动电路中,不仅可以简化电路设计,而且使得控制更加简单。在过温、过压、欠压、过流和短路的情况下,芯片自动关断输入;当电流超过标定的最大电流时,通过MCU端的I/O使能引脚关断驱动芯片。为了防止系统在工作过程中因为芯片保护而停止工作,在系统设计时要考虑散热、稳压、过流保护等情况并采取措施。

BTN7970提供 PG-TO263-7-1、PG-TO220-7-11和PG-TO220-7-12三种封装。其引脚功能定义如表1所列。

表1 BTN7970引脚定义

当INH引脚输入高电平时,OUT端输出电压由IN端输入的PWM占空比决定。当占空比大于某个值时,输入芯片内部经过非门驱动电路后,输出低电平使得上背P型MOSFET管导通,此时通过调节输入占空比后调节OUT端的输出电压。当输入占空比为0时,输入低电平经过非门驱动电路后,输出高电平使得下背 N型MOSFET管导通,IS端检测的电流为经过上背MOSFET管的电流(即电机当前电流)。在实际应用中通常将2片或3片BTN7970组合起来构成电机控制驱动电路。

2 电机控制驱动电路设计

主控制器选用Freescale公司基于 PowerPC构架的32位处理器MPC5604P。通过I/O口、PWM输出引脚、A/D采集引脚直接和 BTN7970接口。下面介绍2相直流电机控制驱动电路的设计方法。

采用2片BTN7970组成一个完整的H桥驱动电路驱动1路有刷直流电机,如图1所示。其中,OUT端分别接电机的两端;IS端接下拉电阻,用于配置IS端输出电压的范围;MOTOR_PWM_A与MOTOR_PWM_B,分别输出非零占空比的PWM和零占空比的PWM,保证左右半桥上下背各有一个导通,组成一个回路;通过MOTOR_CURRENT端间接采集并计算得到的电流,为通过左或右半桥上背P沟道MOSFET管的电流;SR引脚通过下拉电阻接地,用于调节MOSFET管开关频率,这里接5.1 kΩ电阻,BTN7970的开/关时间分别为 4.4/3.4 μ s。另外,由于BTN7970内部没有光电隔离,故在与MCU接口时串联10 kΩ电阻,防止驱动电路发生击穿等故障时损坏与其相连接的MCU等器件。

图1 1路有刷直流电机控制驱动电路

图2 BTN7970和MPC5604P之间的接口

2片BTN7970组成的H桥和MPC5604P之间的接口如图2所示。对应的引脚通过4个网络变量连接。将MPC5604P的55引脚直接配置为I/O输出,接H桥的INH引脚,控制BTN7970的运行模式。当INH为低电平时,BTN7970处于Sleep模式,但此时芯片仍处于工作状态,故其供电应该由 MPC5604P通过I/O引脚控制大电流继电器来控制。MPC5604P的53和54引脚配置为FlexPWM0模块,PWMA、PWMB输出分别接左、右半桥的IN引脚。42引脚配置为A/D输入接左、右半桥的IS引脚,通过采集IS端电压可间接计算出通过电机的电流:

式中,VIS和RIS分别为IS端的电压和电阻值。这里,RIS为 470 Ω。

3 电机控制驱动程序设计

本设计使用了MPC5604P的4个信号引脚,开发和编译环境为CodeWarrior for MPC55xx V2.3,调试下载工具为USB PowerPC Nexus Multilink调试器。

3.1 MOTOR_CON控制引脚的初始化

通过配置SIU.PCR[43]寄存器将 MPC5604P的55引脚配置为I/O输出引脚,即SIU.PCR[43].R=0x0202。通过赋值操作SIU.GPDO[43].R=0/1,即可让该引脚输出高/低电平。

3.2 MOTOR_PWM_A/B的PWM初始化

首先,通过配置PSMI寄存器将 flexpwm0 A[0]、B[0]分配到53、54引脚,配置如下:

然后,通过SIU.PCR寄存器的配置将53、54多功能引脚配置为PWM输出,配置如下:

下面为flexpwmx模块的初始化:

PWMA/B输出函数如下:

在控制程序中通过调用输出函数来配置数据重载、PWM输出和BTN7970使能,即可按设定的方向和占空比驱动电机。

3.3 A/D初始化

首先,通过SIU.PCR[29].R=0x2400操作将PIN42引脚配置为A/D输入引脚,通过采集IS端电压间接计算出通过电机的电流。本设计中使用了MPC5604P片内ADC1模块的AN[0]通道,初始化配置如下:

在本设计中通过ADC1的1路硬件监控电路对每次A/D采集的值和预先设置的值进行比较。当采集的值超出通过ADC_1.THRHLR0.R设定的上下限时,将产生中断。通过中断服务程序将MOTOR_CON输出低电平使驱动IC进入Sleep模式,即可实现过流保护。初始化和中断服务函数注册如下:

在SIR服务函数中,通过SIU.GPDO[43].R=0;即可关闭驱动芯片。接下来发送A/D通道转换命令并查询状态标志位,转换完毕后即可通过读取ADC_1.CDR[0].B.CDATA寄存器得到采集的IS端电压值,并通过计算公式IL=19 500×VIS/470 Ω计算得到通过电机的电流,从而实现电机的闭环控制。

结 语

本文介绍了基于BTN7970的2相直流电机驱动电路典型设计。该设计外围电路少,无需外加控制信号驱动电路和电机电流检测电路,可直接和MCU接口,并可通过IS引脚输入电压计算直接得到通过电机的电流。

[1]Infineon.BTN7970 Datasheet,2008.

[2]陈鸣.基于T L494的PWM 直流伺服控制系统[J].电器技术 ,2006(1):47-48.

[3]游志宇.基于场效应管的直流电机控制驱动电路设计[J].国外电子元器件,2008(2):3-4.

[4]胡发焕.大功率直流电机驱动电路的设计[J].机械与电子,2009(10):77-78.

猜你喜欢
低电平直流电机电路设计
数字电路中“逻辑非”的用法辨析
基于模糊PID的无刷直流电机速度控制系统的设计与仿真
大电机技术(2022年5期)2022-11-17 08:12:56
铁道车辆高/低电平信号智能发生器设计
Altium Designer在电路设计中的应用
电子制作(2019年16期)2019-09-27 09:34:58
负反馈放大电路设计
电子制作(2019年23期)2019-02-23 13:21:36
2017款凯迪拉克2.8L/3.0L/3.2L/3.6L车型低电平参考电压总线电路图
基于FPGA的双绕组无刷直流电机软件设计
电子制作(2017年1期)2017-05-17 03:54:12
基于UC3843的60W升压电路设计
电源技术(2016年2期)2016-02-27 09:05:13
基于模糊神经网络PID的无刷直流电机控制系统研究
一种改进的无刷直流电机控制方法