Gyorsítsa fel a BLDC motorok autóipari és IoT területen való használatával kapcsolatos fejlesztéseket az A4964KJPTR-T motorvezérlő IC-vel

By Jacob Beningo

Contributed By DigiKey's North American Editors

A szénkefe nélküli egyenáramú (BLDC) motorokat egyre gyakrabban használják számos és változatos felhasználási területen, a dolgok internetének (IoT) távvezérelt garázsnyitóitól és az autóablakoktól kezdve a műholdak hajtóművének vezérlőegységeiig. A BLDC motorokkal kapcsolatban a tervezőknek azzal a problémával kell szembenézniük, hogy a vezérlésükhöz szükséges vezérlőalgoritmusok összetettek és gyakran egyediek. Ez az átlagos mérnökök számára megnehezíti, hogy észszerű időn belül üzembe helyezzék őket.

A fejlesztőknek általában vagy egy mikrovezérlőn futó szoftveralapú megoldást kell választaniuk, amely rugalmas szoftveres megoldást nyújt, de egyben számítási terhet is ró a mikrovezérlőre, vagy pedig valamilyen célorientált integrált áramkört (IC) használnak. Ez utóbbi tartalmazza a BLDC motor minden vezérlési funkcióját, és leveszi a BLDC motor vezérlésének terhét a központi egységről.

Ez a cikk a mikrovezérlőre épülő szoftveres megoldás és a célorientált hardverlapkás megoldás közti különbségeket tárgyalja. Ezután részletesen megvizsgálja az Allegro MicroSystems cég A4964KJPTR-T jelű motorvezérlő IC-jének használatát, amelyet kifejezetten az autóipari termékekben használt BLDC motorok vezérlésének egyszerűsítésére terveztek. A cikk bemutatja, hogyan dolgozhat az A4964KJPTR-T motorvezérlő IC-vel, és bemutat néhány bevált módszert is a váratlan viselkedés elkerülésére.

A BLDC motorok (nagyon) rövid bemutatása

A BLDC motoroknak széles fordulatszám-tartományában jelentős a nyomatékleadása, csendesek, és nem szenvednek a szénkefés motorok mechanikai súrlódásától. A BLDC motorok nem feszültség-, hanem áramvezéreltek, ami lehetővé teszi, hogy a legkülönbözőbb alkalmazási területeken használják őket, és ehhez az ilyen motorok legkülönfélébb formájú, méretű és árfekvésű választéka kapható.

A TRINAMIC Motion Control cég QBL4208-41-04-006 jelű terméke például egy 24 V-os, 4000 f/perc fordulatszámú villanymotor, amely akár 0,06 Nm nyomaték leadására is képes (1. ábra). A motor könnyű (0,3 kg), és több lehetőséget is kínál a fejlesztő számára a motor vezérlésére, például érzékelők nélküli működéssel az elektromotoros ellenerőt felhasználva, vagy a motor tengelyhelyzetét jelző beépített érzékelőkkel.

A TRINAMIC cég QBL4208-41-04-006 jelű terméke egy 24 V-os, 4000 f/perc fordulatszámú BLDC motor1. ábra: A QBL4208-41-04-006 egy 24 V-os, 4000 f/perc fordulatszámú BLDC villanymotor, amely maximális fordulatszámon valamivel több mint 0,06 Nm nyomaték leadására képes (kép: TRINAMIC Motion Control GmbH)

Nagyobb nyomaték esetén a tervezők használhatják a szintén a TRINAMIC Motion Control cég gyártotta, QBL4208-41-04-025 jelű BLDC villanymotort(2. ábra). Ez egy 24 V-os, 4000 f/perc fordulatszámú BLDC villanymotor, amely valamivel több mint 0,25 Nm nyomaték leadására képes.

A TRINAMIC Motion Control cég QBL4208-41-04-025 jelű 24 V-os, 4000 f/perc fordulatszámú BLDC villanymotorjának képe2. ábra: A TRINAMIC Motion Control cég QBL4208-41-04-025 jelű terméke egy 24 V-os, 4000 f/perc fordulatszámú BLDC villanymotor, amely maximális fordulatszámon valamivel több mint 0,25 Nm nyomaték leadására képes (kép: TRINAMIC Motion Control GmbH)

A BLDC motorokat az állórészben elhelyezett háromfázisú tekercsek működtetik. Ezek forgó mágneses teret hoznak létre, amely a forgórészben lévő állandó mágnesekkel való kölcsönhatást használja a forgórész mozgatásához és ezzel a motor forgatásához.

Elméletben ez egyszerűen hangzik, de a gyakorlatban a BLDC motorok vezérlése meglehetősen bonyolult, ezért a fejlesztőknek választaniuk kell, hogy valamilyen szoftveres keretrendszert használnak-e a motor vezérlésére, vagy egy célorientált lapkás megoldást.

A szoftveres és a célorientált lapkás megoldások összevetése

A fejlesztőknek több tényezőt is figyelembe kell venniük, amikor meg kell oldaniuk, hogyan hozzák forgásba a BLDC motorjukat. Ezek a tényezők alapvetően a következőkre vezethetők vissza:

  • alkatrészköltség kontra munkaerőköltség
  • a nyomatott áramkör bonyolultsága a szoftver bonyolultságához mérten
  • karbantartási idő és költségek

Hardveres szemszögből nézve nagyon csábító lehet a szoftveres megoldás választása, mert a célorientált lapkás megoldás némi többletkiadást jelent az alkatrészköltség terén. Célorientált lapka helyett takarítsa meg annak árát, költsön a lapka árának töredékével többet egy mikrovezérlőre, és vigye be az összes vezérlőalgoritmust ebbe a mikrovezérlőbe. Úgy tűnik, ezzel mindenki jól jár, de a csapatok gyakran nem veszik figyelembe ennek a döntésnek minden lehetséges következményét.

Igen, ez csökkenti az anyagköltséget, de egyúttal a BLDC motor állapotadatainak feldolgozása és a motor folyamatos vezérlése pluszterhelést jelent a mikrovezérlő számára. Ha a mikrovezérlő más érzékelők jeleit is próbálja mintavételezni, próbál rádión át kommunikálni és más eszközöket vezérelni, a szoftverfejlesztési és karbantartási költségek az egekbe szökhetnek, ha nem vigyázunk.

Ennek ellenére a mikrovezérlőben elhelyezett szoftveralapú megoldás nagyobb rugalmasságot is adhat a tekintetben, hogy a csapat finomhangolhatja a motorvezérlő algoritmusokat. A szoftverek használata nem jelenti azt, hogy mindig túl kell bonyolítani a dolgokat.

Ilyen jellegzetes helyzet lehet például az, hogy a motorvezérlő algoritmus mikrovezérlőben történő elhelyezése több RAM-ot foglal, és sok flashmemóriát igényel. Ha azonban a csapat kifejezetten motorvezérlésre tervezett mikrovezérlőt használ, amilyen például a Texas Instruments cég F280049CRSHSR motorvezérlő mikrovezérlője, akkor az algoritmusok a mikrovezérlő ROM-jában található könyvtárba vannak beépítve. Ez annyit tesz, hogy az alkalmazáshoz hozzáadott további kódokat mindössze az összes nehéz feladatot elvégző könyvtárhoz való hozzáférésére használt függvényhívások jelentik.

A BLDC motor forgásba hozása azonban nemcsak a szoftveren múlik, hardverre is szükség van. A 3. ábrán egy C2000 mikrovezérlőt (ebbe a családba tartozik az F280049CRSHSR is) használó mintaalkalmazás látható. Az ábra szemlélteti mindazt, ami egy BLDC motor vezérléséhez szükséges és választható. A mikrovezérlőn túl szükség van valamilyen 3 fázisú teljesítményfokozatra is, amely képes a BLDC motor három fázisát vezérelni, hogy a motor forgásba jöjjön.

A Texas Instruments cég C2000 mikrovezérlőjének blokkvázlata (a nagyításhoz kattintson a képre)3. ábra: A Texas Instruments cég C2000 jelű mikrovezérlőit motorvezérlési célokra tervezték. Ez a kép egy mintaalkalmazást mutat a mikrovezérlővel a középpontban, a BLDC motor meghajtásához feltétlenül szükséges és nem kötelezően használandó áramkörökkel együtt (kép: Texas Instruments)

A mikrovezérlő motorvezérlésre történő használata határozottan érdekes, de hogyan néz ki egy célorientált hardveres megoldás? Vessünk egy pillantást az Allegro MicroSystems cég A4964KJPTR-T jelű motorvezérlő lapkájára.

Az Allegro MicroSystems cég A4964KJPTR-T jelű motorvezérlő IC-je

Az Allegro MicroSystems A4964KJPTR-T motorvezérlő lapka egy kimondottan BLDC motorokhoz készült célorientált motorvezérlő egység, amely tartalmazza a motor vezérléséhez szükséges összes intelligens funkciót (4. ábra). A kifejezetten autóipari felhasználásra és N csatornás MOSFET-ekkel való használatra tervezett lapka érzékelő nélküli indításra és kommutálásra is alkalmas, így minimális mennyiségű külső kiegészítő hardvert igényel. Az A4964KJPTR-T széles feszültségtartományban, 5,5 V és 50 V között használható, ami szinte minden szokványos felhasználási területet lefed, beleértve az autóipari rendszereket is.

Az A4964KJPTR-T talán legérdekesebb tulajdonsága az, hogy a soros perifériaillesztő felületen (SPI) keresztül hozzákapcsolható a mikrovezérlőkhöz és a központi elektronikus vezérlőegységekhez (ECU), és így beállítható a villanymotorok vezérlésének számos paramétere. Nyilvánvaló, hogy így a mikrovezérlőnek nem kell olyan erősnek lennie, mint annak, amelyik maga futtatja a motorvezérlő algoritmusokat is.

A BLDC motorok vezérlésére tervezett Allegro A4964KJPTR-T blokkvázlata (a nagyításhoz kattintson a képre)4. ábra: A BLDC motorokhoz készült A4964KJPTR-T motorvezérlő lapka 5,5 V és 50 V közötti feszültséggel működik, és érzékelő nélküli indítást és kommutálást tesz lehetővé. A motor fordulatszáma a soros perifériaillesztő felületen (SPI) keresztül vagy egy külön erre a célra szolgáló impulzusszélesség-modulált (PWM) jel segítségével állítható be (kép: Allegro MicroSystems)

Másik lehetőségként – és ez az igazán érdekes rész – az A4964KJPTR-T lapkával a motor fordulatszáma az SPI nélkül is szabályozható, egyszerűen egy impulzusszélesség-modulált (PWM) jellel. A motor beállításai nem felejtő memóriában tárolhatók, amelynek tartalma bekapcsoláskor betöltődik, és lehetőséget ad arra, hogy a motor vezérlése pusztán egy PWM jel segítségével történjen.

Beállítási szempontból az A4964KJPTR-T lapkának 32 címezhető 16 bites regisztere és egy állapotregisztere van. Az állapotregiszter egyedülálló abban a tekintetben, hogy az első 5 bitje minden olvasási/írási művelet során továbbítódik az SPI-n keresztül, és így a szoftver ellenőrizni tudja az általános állapotot, hogy van-e bármilyen hiba vagy gond. A lapkára írási műveletek során a teljes állapotregiszter kiolvasható, mert az A4964KJPTR-T nem küld vissza adatokat.

A 32 címezhető regiszter között van két speciális regiszter is. A 30. regiszter csak írható, a 31. regiszter pedig csak olvasható. A csak írható regiszter lehetővé teszi a fejlesztők számára, hogy 0-1023 közötti számot használva beállítsák a bemenő kért értéket, azaz a motor fordulatszámát. A csak olvasható regiszter értéke a 29. regiszterbe, a visszaolvasás-kiválasztó regiszterbe írt kért adatok alapján változik. Ez a regiszter a telemetriai adatok széles körének beolvasását teszi lehetővé, ilyenek például a következők:

  • diagnosztika
  • a motor fordulatszáma
  • átlagos tápáram
  • tápfeszültség
  • a lapka hőmérséklete
  • bemenő kért érték
  • a vezérlőhíd alkalmazott csúcsmunkaciklusa
  • alkalmazott fázissiettetés

Az ezeken a speciális regisztereken kívül fennmaradó 30 regiszter lehetővé teszi az adott motorhasználat beállítását, valamint a hibák, például az áramkorlátozási és a kapuvezérlési hibák engedélyezését vagy letiltását.

A célorientált motorvezérlő egységek azért érdekesek, mert néhány tucat beállítóregiszterben adnak meg mindent, amit a motor működtetéséhez be kell állítani. Ez drámai mértékben csökkenti azt a szoftveres terhelést, amellyel egyébként a mikrovezérlőnek kellene megbirkóznia, és ami talán még fontosabb, jelentős mértékben képes csökkenteni a szoftverfejlesztési és karbantartási költségeket is. A BLDC vezérlése ekkor semmi másból nem áll, csak egy PWM jel elküldéséből, ami semmilyen terhelést nem jelent a mikrovezérlő számára, vagy a „motor” bit engedélyezéséből és egy SPI-alapú bemenő kért érték megadásából a BLDC motor megforgatásához.

Tippek és trükkök a A4964KJPTR-T lapka használatához

Az A4964KJPTR-T lapkát meglehetősen logikusan lehet használni, de van néhány tanács és trükk, amelyeket a fejlesztőknek érdemes szem előtt tartaniuk, mert egyszerűsíthetik és felgyorsíthatják a fejlesztést. Ilyenek például az alábbiak:

  • Az állapotregiszter tartalma minden lapkára íráskor vissza lesz küldve az SPI felületen át, és a regiszter nem használható külön e célra szolgáló címezhető regiszterként. Ez azt jelenti, hogy a vezérlőkódnak figyelnie kell az SPI-sín SDO jelvonalát, miközben a lapkára ír, hogy állapotadatokat kapjon.
  • A hibaadatokat az állapotregiszter tartalmazza, de a lapka állapotadatai minden SPI-tranzakcióban megtalálhatók az első öt bitben, amikor a mikrovezérlő a címhozzáférési adatokat adja meg. Ezek az adatok felhasználhatók annak megállapítására, hogy történt-e bármilyen hiba.
  • A memóriatérképen két egyedi regiszter van, amelyek egyike csak olvasható, másika csak írható. Ez logikus, de vigyázzon, hogy ne próbáljon a csak írható regiszterből olvasni, mert ekkor a lapka az olvasási sorrendben használt helykitöltő adatokat ír a regiszterbe.
  • A lapkán van valamennyi nem felejtő memória is, amely az alapértelmezett paraméterek tárolására használható. Ezek a paraméterek betöltődnek a RAM-ba, és az indítás során lesznek felhasználva. Annak érdekében, hogy a lapka indításkor a lehető leghatékonyabban kerüljön készenléti állapotba, programozzon bele „biztonságos” indítási értékeket.
  • Ha a végberendezés zajos vagy sugárzásban gazdag környezetben dolgozik, nem rossz ötlet az alkalmazáskódot úgy megtervezni, hogy a beállítási adatokat bizonyos időnként újra betöltse. A lapka beállításai a RAM-ban vannak tárolva, ami azt jelenti, hogy érzékenyek a kozmikus sugárzásra, a bitek felcserélésére és az összes olyan vicces, ritka eseményre, amely az elektronikával történhet.

Összegzés

Az autóipari, IoT- és egyéb területeken meglehetősen gyakran használnak BLDC motorokat, de a vezérlésük rendkívül bonyolult is lehet. A szoftver összetettségének kezelésére a fejlesztők használhatnak valamilyen BLDC motorokhoz készült célorientált vezérlőegységet, például az A4964KJPTR-T lapkát, amely tartalmazza az összes motorvezérlő funkciót.

Bár a lapkával való kommunikációhoz továbbra is szoftverre van szükség, a szoftvert futtató mikrovezérlőnek csak a beállítási adatokat kell megadni, és az A4964KJPTR-T gondoskodik a motor vezérléséről. A fentebb olvasható tanácsokat és trükköket felhasználó fejlesztők sok időt meg fognak takarítani, és sokkal kevesebb bosszúságban lesz részük az A4964KJPTR-T használata során.

DigiKey logo

Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.

About this author

Image of Jacob Beningo

Jacob Beningo

Jacob Beningo is an embedded software consultant. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees, including a Masters of Engineering from the University of Michigan.

About this publisher

DigiKey's North American Editors