BTN7970在直流電機(jī)驅(qū)動(dòng)系統(tǒng)中的應(yīng)用
采用2片BTN7970組成一個(gè)完整的H橋驅(qū)動(dòng)電路驅(qū)動(dòng)l路有刷直流電機(jī),如圖1所示。其中,0UT端分別接電機(jī)的兩端;IS端接下拉電阻,用于配置IS端輸出電壓的范圍;MOTOR_PWM_A與MOTOR_PWM_B,分別輸出非零占空比的PWM和零占空比的PWM,保證左右半橋上下背各有一個(gè)導(dǎo)通,組成一個(gè)回路;通過(guò)MOTORCURRENT端間接采集并計(jì)算得到的電流,為通過(guò)左或右半橋上背P溝道MOSFET管的電流;SR引腳通過(guò)下拉電阻接地,用于調(diào)節(jié)MOSFET管開(kāi)關(guān)頻率,這里接5.1 kΩ電阻,BTN7970的開(kāi)/關(guān)時(shí)間分別為4.4/3.4μs。另外,由于BTN7970內(nèi)部沒(méi)有光電隔離,故在與MCU接口時(shí)串聯(lián)10 kΩ電阻,防止驅(qū)動(dòng)電路發(fā)生擊穿等故障時(shí)損壞與其相連接的MCU等器件。本文引用地址:http://www.ex-cimer.com/article/180454.htm
2片BTN7970組成的H橋和MPC5604P之間的接口如圖2所示。對(duì)應(yīng)的引腳通過(guò)4個(gè)網(wǎng)絡(luò)變量連接。將MPC5604P的55引腳直接配置為I/0輸出,接H橋的INH引腳,控制BTN7970的運(yùn)行模式。當(dāng)INH為低電平時(shí),BTN7970處于Sleep模式,但此時(shí)芯片仍處于工作狀態(tài),故其供電應(yīng)該由MPC5604P通過(guò)I/0引腳控制大電流繼電器來(lái)控制。MPC5604P的53和54引腳配置為FlexPWM0模塊,PWMA、PWMB輸出分別接左、右半橋的IN引腳。42引腳配置為A/D輸入接左、右半橋的IS引腳,通過(guò)采集IS端電壓可間接計(jì)算出通過(guò)電機(jī)的電流:
式中,VIS和RIS分別為IS端的電壓和電阻值。這里,RIS為470 Ω。
3 電機(jī)控制驅(qū)動(dòng)程序設(shè)計(jì)
本設(shè)計(jì)使用了MPC5604P的4個(gè)信號(hào)引腳,開(kāi)發(fā)和編譯環(huán)境為Code Warrior for MPC55xx V2.3,調(diào)試下載工具為USB Power PC Nexus Multilink調(diào)試器。
3.1 MOTOR_CON控制引腳的初始化
通過(guò)配置SIU.PCR[43]寄存器將MPC5604P的55引腳配置為I/O輸出引腳,即SIU.PCR[43].R=0x0202。通過(guò)賦值操作SIU.GPDO[43].R=O/1,即可讓該引腳輸出高/低電平。
3.2 MOTOR_PWM_A/B的PWM初始化
首先,通過(guò)配置PSMI寄存器將flexpwm0 A[O]、B[0]分配到53、54引腳,配置如下:
SIU.PSMI[20].B.PADSEL=1;
SIU.PSMI[24].B.PADSEL=1;
然后,通過(guò)SIU.PCR寄存器的配置將53、54多功能引腳配置為PWM輸出,配置如下:
通過(guò)調(diào)用函數(shù)FlexPWM_Init(O)即可將本設(shè)計(jì)中使用的flexpwm0模塊初始化。接下來(lái)使能PWMA/B輸出配置如下:
在控制程序中通過(guò)調(diào)用輸出函數(shù)來(lái)配置數(shù)據(jù)重載、PWM輸出和BTN7970使能,即可按設(shè)定的方向和占空比驅(qū)動(dòng)電機(jī)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)DIY機(jī)械鍵盤(pán)相關(guān)社區(qū):機(jī)械鍵盤(pán)DIY
評(píng)論