BTN7970在直流電機驅動系統(tǒng)中的應用
摘要:Infineon公司的大功率H半橋集成芯片BTN7970內(nèi)部集成了驅動電路,故可以直接和MCU接口,同時具有電流檢測,以及過溫、過壓、欠壓、過流和短路保護等診斷功能。本文介紹了BTN7970在直流電機控制驅動系統(tǒng)中的典型應用,給出了電機控制驅動電路以及軟件設計。
關鍵詞:BTN7970;H橋;PWM控制;直流電機驅動
引言
微電機在嵌入式系統(tǒng)領域的應用日益廣泛,采用驅動電路和MOSFET管的傳統(tǒng)設計方法不僅電路設計復雜,而且不容易控制。針對此問題,各半導體廠商推出了直流電機控制專用集成電路,無需驅動便可以與MCU接口,且無需另外添加電機電流檢測電路,外圍器件少,電機控制簡單。
目前該類芯片已經(jīng)廣泛應用于微電機的嵌入式應用領域,但它也存在一些缺點;輸出功率有限,不適合大功率直流電機驅動的需求;采用PWM信號驅動且PWM信號的頻率和占空比有一定限制;沒有光電隔離電路,當驅動電路發(fā)生擊穿等故障時會損壞與之相連的MCU等器件。
以Infineon公司推出的BTN7970芯片為例,它所供電壓為8~45 V,最大電流為50 A,驅動信號PWM頻率為1~25 kHz。由于功率和驅動信號占空比的限制,使得它有很大的局限性。在電機控制驅動電路和控制程序設計方面要綜合考慮并采取適當措施。本文將詳細介紹BTN7970在大功率微電機控制驅動系統(tǒng)中的典型應用。
1 BTN7970簡介
BTN7970是由Infineon(英飛凌)公司推出的智能功率驅動芯片,內(nèi)含電流檢測電路、控制驅動電路,以及1個P型和1個N型MOSFET管,可以靈活應用于2相或3相、直流有刷或無刷電機的控制驅動電路中,不僅可以簡化電路設計,而且使得控制更加簡單。在過溫、過壓、欠壓、過流和短路的情況下,芯片自動關斷輸入;當電流超過標定的最大電流時,通過MCU端的I/0使能引腳關斷驅動芯片。為了防止系統(tǒng)在工作過程中因為芯片保護而停止工作,在系統(tǒng)設計時要考慮散熱、穩(wěn)壓、過流保護等情況并采取措施。
BTN7970提供PG-T0263-7-1、PG-T0220-7-11和PG-T0220-7-12三種封裝。其引腳功能定義如表1所列。
當INH引腳輸入高電平時,OUT端輸出電壓由IN端輸入的PWM占空比決定。當占空比大于某個值時,輸入芯片內(nèi)部經(jīng)過非門驅動電路后,輸出低電平使得上背P型MOSFET管導通,此時通過調節(jié)輸入占空比后調節(jié)0UT端的輸出電壓。當輸入占空比為O時,輸入低電平經(jīng)過非門驅動電路后,輸出高電平使得下背N型MOSFET管導通,IS端檢測的電流為經(jīng)過上背MOSFET管的電流(即電機當前電流)。在實際應用中通常將2片或3片BTN7970組合起來構成電機控制驅動電路。
2 電機控制驅動電路設計
主控制器選用Freescale公司基于PowerPC構架的32位處理器MPC5604P。通過I/0口、PWM輸出引腳、A/D采集引腳直接和BTN7970接口。下面介紹2相直流電機控制驅動電路的設計方法。
[!--empirenews.page--]
采用2片BTN7970組成一個完整的H橋驅動電路驅動l路有刷直流電機,如圖1所示。其中,0UT端分別接電機的兩端;IS端接下拉電阻,用于配置IS端輸出電壓的范圍;MOTOR_PWM_A與MOTOR_PWM_B,分別輸出非零占空比的PWM和零占空比的PWM,保證左右半橋上下背各有一個導通,組成一個回路;通過MOTORCURRENT端間接采集并計算得到的電流,為通過左或右半橋上背P溝道MOSFET管的電流;SR引腳通過下拉電阻接地,用于調節(jié)MOSFET管開關頻率,這里接5.1 kΩ電阻,BTN7970的開/關時間分別為4.4/3.4μs。另外,由于BTN7970內(nèi)部沒有光電隔離,故在與MCU接口時串聯(lián)10 kΩ電阻,防止驅動電路發(fā)生擊穿等故障時損壞與其相連接的MCU等器件。
2片BTN7970組成的H橋和MPC5604P之間的接口如圖2所示。對應的引腳通過4個網(wǎng)絡變量連接。將MPC5604P的55引腳直接配置為I/0輸出,接H橋的INH引腳,控制BTN7970的運行模式。當INH為低電平時,BTN7970處于Sleep模式,但此時芯片仍處于工作狀態(tài),故其供電應該由MPC5604P通過I/0引腳控制大電流繼電器來控制。MPC5604P的53和54引腳配置為FlexPWM0模塊,PWMA、PWMB輸出分別接左、右半橋的IN引腳。42引腳配置為A/D輸入接左、右半橋的IS引腳,通過采集IS端電壓可間接計算出通過電機的電流:
式中,VIS和RIS分別為IS端的電壓和電阻值。這里,RIS為470 Ω。
3 電機控制驅動程序設計
本設計使用了MPC5604P的4個信號引腳,開發(fā)和編譯環(huán)境為Code Warrior for MPC55xx V2.3,調試下載工具為USB Power PC Nexus Multilink調試器。
3.1 MOTOR_CON控制引腳的初始化
通過配置SIU.PCR[43]寄存器將MPC5604P的55引腳配置為I/O輸出引腳,即SIU.PCR[43].R=0x0202。通過賦值操作SIU.GPDO[43].R=O/1,即可讓該引腳輸出高/低電平。
3.2 MOTOR_PWM_A/B的PWM初始化
首先,通過配置PSMI寄存器將flexpwm0 A[O]、B[0]分配到53、54引腳,配置如下:
SIU.PSMI[20].B.PADSEL=1;
SIU.PSMI[24].B.PADSEL=1;
然后,通過SIU.PCR寄存器的配置將53、54多功能引腳配置為PWM輸出,配置如下:
通過調用函數(shù)FlexPWM_Init(O)即可將本設計中使用的flexpwm0模塊初始化。接下來使能PWMA/B輸出配置如下:
在控制程序中通過調用輸出函數(shù)來配置數(shù)據(jù)重載、PWM輸出和BTN7970使能,即可按設定的方向和占空比驅動電機。[!--empirenews.page--]
3.3 A/D初始化
首先,通過SIU.PCR[29].R=0x2400操作將PIN42引腳配置為A/D輸入引腳,通過采集IS端電壓間接計算出通過電機的電流。本設計中使用了MPC5604P片內(nèi)ADCl模塊的AN[O]通道,初始化配置如下:
在本設計中通過ADCl的1路硬件監(jiān)控電路對每次A/D采集的值和預先設置的值進行比較。當采集的值超出通過ADC_1.THRHLR0.R設定的上下限時,將產(chǎn)生中斷。通過中斷服務程序將MOTOR_CON輸出低電平使驅動IC進入Sleep模式,即可實現(xiàn)過流保護。初始化和中斷服務函數(shù)注冊如下:
在SIR服務函數(shù)中,通過SIU.GPD0[43].R=O;即可關閉驅動芯片。接下來發(fā)送A/D通道轉換命令并查詢狀態(tài)標志位,轉換完畢后即可通過讀?。瓵DC_1.CDR[O].B.CDATA寄存器得到采集的IS端電壓值,并通過計算公式IL=19 500×VIS/470 Ω計算得到通過電機的電流,從而實現(xiàn)電機的閉環(huán)控制。
結語
本文介紹了基于BTN7970的2相直流電機驅動電路典型設計。該設計外圍電路少,無需外加控制信號驅動電路和電機電流檢測電路,可直接和MCU接口,并可通過IS引腳輸入電壓計算直接得到通過電機的電流。