Skip to main content
Témakör:

BLDC-motor MCU-alapú vezérlése

Megjelent: 2016. április 06.

MCA638 - eyecatcherA hagyományos egyenármú motorok élettartamának legnagyobb „ellensége” a forgórész tekercselését kivezető csúszóérintkező – a fém- vagy szénkefe. Ezt kerülik el a kefe nélküli (BLDC) motorok némi elektronikai „többletráfordítással”, amelynek egy lehetséges mikrovezérlős megvalósítását mutatja be a cikk.

 

Az olcsó, kétirányú, kefe nélküli egyenáramú (BrushLess DC – BLDC) motorok kiválóan használhatók olyan alkalmazásokban, mint az intelligens játékok, a kis háztartási készülékek és az elektromos kéziszerszámok. Ezek jellemzően az árérzékeny termékek körébe tartoznak, ezért a hardver- és szoftverfejlesztést, valamint a motorvezérlést is kis ráfordítással kell megoldani.
Az a tény, hogy ma már léteznek minden szükséges tulajdonsággal rendelkező, nyolcbites mikrovezérlők is, aránylag könnyen elérhetővé teszik ezt a célt. Vegyük példaként a Microchip PIC16F684 mikrovezérlőt a beépített, bővített képességekkel rendelkező jelérzékelő-, vezérlő- és PWM[1]-perifériájával (ECCP[2]). Ez a korábbi típusokba épített CCP-modul technológiáján alapul olyan többletszolgáltatásokkal, mint a négycsatornás PWM, amely egy DC-motor két forgásirányú működtetését teszi lehetővé közvetlen hardvervezérléssel.

Számítások

A PWM frekvenciáját, kitöltési tényezőjét és felbontását a PWM-üzemmódban működő ECCP-modul tulajdonságait figyelembe véve kell meghatározni.
Egy motorvezérlő-alkalmazásban a PWM-frekvencia megválasztásán múlik a motor hangja, valamint a teljesítménytranzisztor szükséges kapcsolási sebessége. Az emberi fül a 20 Hz és 20 kHz közé eső frekvenciájú mechanikai rezgést képes hangként érzékelni[3]. Ebben a példában a motorvezérlés 4 kHz-es frekvenciával működik, amelyet kevésbé zavaró zajként érzékel a felhasználó, mint ami az ennél kisebb frekvenciájú, mondjuk 1 kHz-es PWM-működésből adódik. Ha az alkalmazás sávszélessége nagyobb frekvenciájú (akár a hallható hangok tartományán kívül eső) működést is lehetővé tesz, a motor működését még kisebb hallható zaj kíséri. Ha túl erős működési zaj hallható, érdemes növelni a PWM-frekvenciát.
A PWM kitöltési tényezőjének változtatásával együtt változik a motorra kapcsolódó feszültség egyenáramú középértéke (átlaga), amely viszont a motor fordulatszámának változását eredményezi.
A PWM kitöltési tényezőjének felbontása határozza meg, hány lépésben változtatható a kitöltési tényező a teljes változási tartományban. Például egy 10 bites felbontású PWM 1024 lépésben, egy 8 bites felbontású csak 256 lépésben változtatható kitöltési tényezőt jelent. A PWM frekvenciája, a mikrovezérlő órafrekvenciája és a timer2 előosztó számlálójának beállítása egyaránt meghatározza a ténylegesen alkalmazható felbontást, amelynek maximális értéke 210 (1024).

Regiszterek

A működés indításakor négy regiszternek kell kezdőértéket adni. A PR2-regiszter a PWM frekvenciájára (és periódusidejére) van hatással. Amint azt már említettük, a PWM teljes felbontása 210, amelyhez 10 bit tárolóhelyre van szükség. Mivel a mikrovezérlő minden perifériaregisztere 8 bites, a 10 bitet két regiszterre bontva lehet elhelyezni. A CCPR1L a 10 bitből a felső nyolcat tartalmazza, a CCP1CON-regiszter 5. és 4. bitje (CCP1CON <5:4>) tárolja az alsó két bitet. A CCP1CON-regiszter három bitje (CCP1CON<3:0>) az ECCP-modul üzemmódjának beállítására szolgál. Ezzel lehet kiválasztani a motorvezérléshez szükséges PWM-üzemmódot. Ugyancsak ebben a regiszterben tároljuk azt a két bitet, amivel kiválasztható a motor kívánt forgásiránya.
Ha az ECCP-t PWM-üzemmódba állítjuk, négy lehetséges konfiguráció közül választhatunk. Ezek a MOSFET-ekből álló kimeneti „félhidak” állapotára vonatkoznak, amelyek aktív magas vagy aktív alacsony szintűek, illetve ezek kombinációi lehetnek. A motor forgásiránya hardveresen állítható azzal, hogy a konfigurációs biteket (CCP1CON<7:6>) 01-re állítjuk az előreforgáshoz (1. ábra), vagy 11-re a fordított irányú forgáshoz (2. ábra). A PIC16F684 ECCP-hardverkapcsolóit úgy állítjuk be, hogy a félhidak MOSFET-meghajtóit megfelelően aktiválják és modulálják.

 

1.ábra

1. ábra A teljes hídban folyó áram előreforgás esetén

 

2.ábra

2. ábra A teljes hídban folyó áram hátraforgás esetén


A T2CON-regiszter a timer2 előosztó számláló beállítására és a timer2 időzítő elindítására szolgál. A timer2 előosztó a T2CON<1:0> bitjeiben található. Arra szolgál, hogy meghatározza a PWM-frekvenciát, a kitöltési tényezőt és a felbontást. A timer2-t a T2CON<2> bit beállításával kell bekapcsolni, a PWM-jel kezdete előtt.

 

3.ábra

3. ábra Teljeshidas konfiguráció előreforgásnál, az ellenirányú indukált feszültség mérésével

Érzékelő nélküli működés

Alacsony ráfordítással lehet egy BLDC-motor fordulatszámának mérését megvalósítani a motor tekercsében keletkező ellenirányú indukált feszültség (ElectroMotive Force ‑ EMF) mérésével. A BLDC-motor fordulatszáma egyenesen arányos az ellenirányú EMF-fel. Mivel a BLDC-motor induktív terhelésként modellezhető, a motor feszültsége az induktivitás és a dI/dt (az áramváltozás sebessége) szorzata. A mintaelrendezésben egy 12 V-os, 9600 1/min maximális fordulatszámú BLDC-motort használtunk. Az ellenirányú EMF-méréséhez kapcsoljuk ki a modulált MOSFET-et. Ennek következtében ellenkező irányú áram folyik a motoron. Miután a MOSFET-et kikapcsoltuk, egy ideig várni kell, amíg a dI/dt áramváltozási sebesség stabilizálódik.
Ahhoz, hogy a mérésre a mikrovezérlő AD-konverterét használhassuk, a mért feszültségnek 0 V és a VDD tápfeszültség közé kell esnie. Mivel az ellenirányú EMF 0-tól akár 12 V-ig is változhat, egy feszültségosztót kell beépítenünk ahhoz, hogy az ellenirányú EMF értékét a 0 és a VDD közti tartományba alakítsuk át. A Microchip MSP6S26 típusjelű programozható erősítőjének (Programmable Gain Amplifier – PGA) egyszeres erősítésű beállításával lehet pufferelni a leosztott feszültséget, ami után az AD-konverterrel mérhető.
A motoráram mérését kis ráfordítással megoldhatjuk, ha a MOSFET-híd és a földpont közé egy áramérzékelő ellenállást építünk be (4. ábra). A megfelelő ellenállásérték kiválasztásához számításba kell vennünk, mekkora az ellenálláson folyó megengedett maximális áram és a maximális megengedett teljesítménydisszipáció.

 

4.ábra

4. ábra Teljeshidas motorvezérlő előreforgásnál, áramérzékelő ellenállással kiegészítve


A mintaáramkörben 0,1 Ω 1 W-os érzékelő-ellenállást választottunk a maximális 3 A-es motoráram méréséhez. Ha az ellenálláson 3 A folyik, az ellenálláson 0,9 W teljesítmény disszipálódik, miközben a rajta eső feszültség 0,3 V. Annak érdekében, hogy a mikrovezérlő 10 bites AD-konverterének felbontását a lehető legjobban kihasználjuk, az ellenálláson 3 A-nél eső feszültséget fel kell erősítenünk úgy, hogy a lehető legközelebb essen a PIC16F684 mikrovezérlő VDD feszültségéhez – a mintaáramkörben 5 V-hoz.
Az MSP6S26 PGA-t felhasználva 3 A motoráramnál 16-szoros erősítéssel kapunk 4,8 V-ot. Ezzel az erősítéssel tehát 9,94 bites felbontással mérhetjük az áramot az AD-konverterrel. Mivel a BLDC-motor meghajtására PWM-jelet használunk, a hídkapcsolás csak akkor vesz fel áramot, amikor a PWM-periódus az aktív szakaszán tart. Az áramméréshez tehát az áramérzékelő feszültségből a PWM-jel aktív szakaszán kell mintát venni.

 

5.ábra

5. ábra A mintaalkalmazás tömbvázlata

Alkalmazás

Az 5. ábrán egy kis költséggel megvalósítható BLDC-motorvezérlő rendszer tömbvázlata látható teljeshidas PWM-üzemmódban működő ECCP felhasználásával. A felhasználói interfész lehetővé teszi, hogy a tervező a PIC16F684 mikrovezérlővel konfigurálja a BLDC-motorhajtást, változtassa a PWM frekvenciáját és a kitöltési tényezőjét, valós időben változtassa a PIC16F684 belső oszcillátorának frekvenciáját, és egyidejűleg mérje a fordulatszámot és a motoráramot. Az alkalmazás forráskódja a Hi-Tech C fordítóprogramjával készült, és a fejlesztésre az MPLab integrált fejlesztőkörnyezetét és a Microsoft Visual C++ 6.0 fejlesztőplatformját használtuk.
A firmware végzi a PIC16F684 inicializálását, kiküldi a bitszintű vezérlőkódokat a PGA-nak, parancsokat fogad a vezérlő PC-től, módosítja a PWM frekvenciáját és kitöltési tényezőjét, a motor forgásirányát, az oszcillátor frekvenciáját, és vezérli az AD-konverterrel végzett méréseket, amelyekből az áram és a fordulatszám értékei számíthatók. A PIC16F684 firmware valósít meg egy 9600 bit/s adatsebességű USART soros interfészt is. A BLDC-motorvezérléshez tartozó grafikus felhasználói interfész (GUI) lehetővé teszi, hogy a felhasználó beállítsa a PWM frekvenciáját és kitöltési tényezőjét, a motor forgásirányát és a belső oszcillátor frekvenciáját. Egyidejűleg kijelzi a PWM frekvenciáját és kitöltési tényezőjét, a felbontást, a fordulatszámot és az áramot. A rendszerben a hosztfunkciót a PC-szoftver valósítja meg, amely az RS232-interfészen kereszült küld utasításokat a PIC16F684-nek.
A hardver három fő részegységből áll: a motorvezérlés teljesítményfokozatából, az RS-232-kommunikációból, valamint a fordulatszám és áram mérőáramköréből. A teljesítményfokozat egy teljeshidas kapcsolót tartalmaz a kétirányú motorvezérlés megvalósításához. A mikrovezérlő –­ a teljeshidas teljesítményfokozat vezérlésére – az RC2-től RC5-ig teljedő I/O-kivezetéseket használja az ECCP csatlakozópontjaiként.
A kommunikációs részegységet egy RS232-es soros konfiguráció képviseli. A mikrovezérlő az RA5 csatlakozópontján küldi és fogadja az RS232-adatokat.
A mérő részegység egy MSC6S26 többcsatornás PGA-ból és egy feszültségosztóból áll, amely utóbbi az ellenirányú EMF „skálázására” (mérési tartományának beállítására) szolgál.
A mikrovezérlő a PGA-val háromvezetékes, bitszintű vezérlést továbbító SPI-interfészen keresztül kommunikál. Az SPI-interfész CS-jele az RA1 csatlakozópontra, az SCK az RA2-re, az SI az RC0-ra, a Vref pedig a földpontra csatlakozik. Az RA0 csatlakozópont az analóg bemenet a fordulatszám és a motoráram méréséhez, amely a PGA Vout csatlakozópontjáról kapja a jelet. Jelkondicionálásra a PGA 0-s csatornája szolgál a fordulatszámméréshez, az 1-es csatorna pedig az áramméréshez.

Összegzés

Ez a példa azt mutatja, milyen egyszerű kiszámítani a paramétereket a PIC16F684 ECCP moduljának beállításához, amellyel kiválasztható a PWM-üzemmód az ECCP regiszterei segítségével, vezérelhető egy kétirányú BDLC-motor, valamint megvalósítható a motor fordulatszámának és áramának mérése.

 

Mike Rylee, támogatómérnökMicrochip Technology Inc.

www.microchip.com

Még több Microchip

 

Címkék: BLDC motor | motorvezérlés | mikrovezérlő | mikrokontroller | MCU | ECCP | PWM

 


[1] Pulse Width Modulator – impulzusszélesség-modulátor

[2] Enhanced Capture, Control and PWM – bővített képességű jelérzékelő, vezérlő és PWM

[3] Ez csak legfeljebb a fiatal felnőttkorig érvényes. A kor előrehaladtával a felső határ folyamatosan csökken. A beszédértéshez szükséges frekvenciasáv nagyjából 300…3000 Hz. Ezen belül maximális a hallás érzékenysége.