Jste zde

Motorový BLDC driver A4964KJPTR-T nejen pro automobilový průmysl

BLDC motory se stále více používají v mnoha různých aplikacích, od dálkově ovládaných garážových vrat až po ovládání oken automobilů. Řídicí algoritmy jsou složité a často přímo specializované na konkrétní typ motoru. Proto existují softwarová řešení integrovatelná přímo do mikrokontroleru nebo řešení jako samostatný integrovaný obvod, které řízení BLCD motoru řeší.

Tento článek pojednává o rozdílech mezi softwarovým řešením integrovaným přímo do mikrokontroleru a hardwarovým řešením pomocí speciálního integrovaného obvodu. Poté si podrobně představíme motorový driver A4964KJPTR-T od Allegro MicroSystems, který byl speciálně vyvinut pro zjednodušení ovládání BLDC motoru pro automobilové aplikace. Součástí článku bude také vysvětlení komunikace s A4964KJPTR-T spolu s několika osvědčenými postupy, jak se vyhnout neočekávanému chování.

Úvod do BLDC motorů

BLDC motory poskytují efektivní přenos točivého momentu v širokém rozsahu rychlostí. Jsou tiché a netrpí mechanickým třením tak jako to známe u kartáčových motorů. BLDC motory jsou řízeny proudem, nikoli napětím, a to jim umožňuje použití v široké škále aplikací. Například 24V motor QBL4208-41-04-006 od TRINAMIC Motion Control. Poskytuje točivý moment 0,06 Nm a je schopen vyvinout až 4000 otáček za minutu (obrázek 1). Motor je lehký, váží pouhých 300 g a poskytuje několik možností pro ovládání motoru. Například bezsenzorový provoz s využitím zpětné elektromotorické síly (BEMF) nebo pomocí vestavěných senzorů, které hlásí polohu.

Obrázek 1: QBL4208-41-04-006 je 24voltový BLDC motor se 4000 otáčkami za minutu dokáže dodat něco málo přes 0,06 Nm točivého momentu při maximální rychlosti. (Zdroj obrázku: TRINAMIC Motion Control GmbH)

Pro větší točivý moment lze použít motor QBL4208-41-04-025 (obrázek 2). Jedná se o 24V BLCD motor se 4000 otáčkami za minutu, který dokáže dodat točivý moment něco málo přes 0,25 Nm.

Obrázek 2: 24V BLCD motor QBL4208-41-04-025 se 4000 otáčkami za minutu dokáže dodat o něco málo přes 0,25 Nm točivého momentu při maximální rychlosti. (Zdroj obrázku: TRINAMIC Motion Control GmbH)

BLDC motory jsou poháněny prostřednictvím tří fázového vedení, které generuje magnetické pole. Toto pole pak působí na permanentní magnety rotoru, a díky přepínání se rotor roztočí. Přepínání pole je u BLCD motoru řešeno elektronicky nikoliv pomocí kartáčů. Proto se jim říká bezkartáčový motor (BLCD – BrushLess DC electric motor).

Teoreticky to zní jednoduše, ale v praxi je řízení BLDC motoru poměrně komplikované. Proto jsou k dispozici softwarová řešení integrovatelné přímo do mikrokontroleru nebo řešení v podobě samostatného integrovaného obvodu pro řízení BLCD motoru.

Softwarové řešení versus integrovaný obvod

Z hardwarového hlediska může být velmi lákavé jít cestou software, protože řešení pomocí speciálního integrovaného obvodu přidává do kusovníku další položku. Softwarová cesta vypadá jako jasná volba, jelikož se zmenší kusovník a všechny řídící algoritmy se umístí do mikrokontroleru. Sníží se sice náklady na kusovník, ale zvýší se nároky na výpočetní výkon mikrokontroleru, a tím se zvýší i jeho cena.

Mikrokontroler může mít na starosti i vyčítání dat s přidružených senzorů a může zajišťovat komunikaci přes různé komunikační kanály. Softwarové řešení přímo v mikrokontroleru nabízí určitou flexibilitu, jelikož vývojový team může doladit algoritmy řízení motoru dle požadavků dané aplikace. 

Algoritmus pro řízení motoru v mikrokontroleru zabere část paměti RAM a vyžaduje hodně paměti flash. Pokud se použije mikrokontroler určený pro řízení motoru například F280049CRSHSR od Texas Instruments, řídící algoritmy jsou zabudovány do speciální knihovny, která se nachází v paměti ROM mikrokontroleru. To znamená, že jediným dodatečným kódem přidaným do aplikační části mikrokontroleru je volání funkcí pro přístup ke knihovně, která provede veškerou těžkou práci.

Roztáčení BLDC motoru však nespočívá pouze v software, ale vyžaduje také hardware. Obrázek 3 ukazuje příklad aplikace využívající mikrokontroler rodiny C2000, jejíž členem je F280049CRSHSR. Kromě mikrokontroleru je potřeba také nějaký 3-fázový výkonový stupeň, který dokáže pohánět tři fáze BLDC motoru, aby se roztočil.

Obrázek 3: Rodina mikrokontrolerů C2000 od Texas Instruments je přímo navržena pro řízení BLCD motorů. Tento obrázek ukazuje příklad aplikace s mikrokontrolerem uprostřed a požadovanými a volitelnými obvody potřebnými k pohonu BLDC motoru. (Zdroj obrázku: Texas Instruments)

Použití mikrokontroleru k řízení motoru je rozhodně zajímavé, ale jak vypadá jednoúčelové hardwarové řešení? Pojďme se podívat na hardwarový driver v podobě integrovaného obvodu A4964KJPTR-T od Allegro MicroSystems.

Představení motorového driveru A4964KJPTR-T od Allegro MicroSystems

Integrovaný obvod A4964KJPTR-T je driver, který obsahuje všechnu funkcionalitu potřebnou pro řízení BLCD motoru (obrázek 4). A4964KJPTR-T je speciálně navržený pro automobilové aplikace a pro použití s ​​N-kanálovými MOSFETy. Má bezsenzorové spouštění a komutaci, takže vyžaduje minimální množství externího hardwaru. A4964KJPTR-T pracuje v širokém rozsahu napětí, a to od 5,5 do 50 V. Tento rozsah pokrývá téměř všechny standardní aplikace včetně automobilové systémy.

A4964KJPTR-T lze propojit s mikrokontrolerem nebo centrální řídicí jednotkou (ECU) přes sériové rozhraní SPI. Mikrokontroler nemusí být tak výkonný jako ten, který spouští samotné algoritmy řízení motoru.

Obrázek 4: Integrovaný obvod A4964KJPTR-T BLDC může pracovat s napětím 5,5 až 50 V a poskytuje bezsenzorové spouštění a komutaci. Rychlost motoru lze konfigurovat pomocí SPI nebo pomocí signálu PWM. (Zdroj obrázku: Allegro MicroSystems)

Rychlost motoru lze řídit pomocí pulzně šířkové modulace (PWM) skrz A4964KJPTR-T. K dispozici je energeticky nezávislá paměť, do které lze uložit nastavení motoru a PWM signál pak slouží k řízení motoru. Z hlediska konfigurace má A4964KJPTR-T 32 adresovatelných 16bitových registrů plus stavový registr. 

Stavový registr je jedinečný v tom, že prvních 5 bitů se přenáší během každé operace čtení/zápisu na SPI, a to umožňuje softwaru zkontrolovat stav a zjistit, zda se nevyskytují nějaké závady nebo problémy. Všechny stavové registry mohou být načteny během operací zápisu na čip, protože z A4964KJPTR-T nejsou zpět přenášena žádná data.

Ve 32 adresovatelných registrech jsou také dva speciální registry. Registr 30 je pouze pro zápis a registr 31 slouží pouze pro čtení. Registr pouze pro zápis umožňuje nastavit demand input nebo duty cycle rate motoru, a to v hodnotě mezi 0 a 1023. Data registru pouze pro čtení se mění podle požadavku zapsaných do registru 29 – registr zpětného čtení (readback select register). Tento registr umožňuje získat širokou škálu informací:

  • Diagnostika
  • Rychlost motoru
  • Průměrný napájecí proud
  • Napájecí napětí
  • Teplota integrovaného obvodu
  • Demand input
  • Maximální duty cycle rate můstku
  • Fázový posun

Kromě těchto speciálních registrů existuje dalších 30, které slouží pro přizpůsobení řízení konkrétní aplikaci a také nastavení různých ochran jako je omezení proudu či signalizace poruchy jednotlivých bran. Konfigurace pomocí registrů dramaticky snižuje veškerou softwarovou režii, která by běžela v mikrokontroleru. Řízení BLDC pak není nic jiného než odeslání PWM signálu, který má minimální zátěž na mikrokontroler.

Tipy a triky pro návrh s driverem A4964KJPTR-T

Rozhraní A4964KJPTR-T je poměrně jednoduché, ale existuje několik „tipů a triků“, které je dobré mít na paměti pro zjednodušení a zrychlení vývoje:

  • Stavový registr vrací data na rozhraní SPI při každém zápisu do integrovaného obvodu. To znamená, že kód ovladače pro SPI musí během zápisu sledovat SPI sběrnici (konkrétně pin SDO), aby získal informaci o aktuálním stavu.
  • Informace o poruše jsou zahrnuty ve stavovém registru, ale přehled o stavu integrovaného obvodu je k dispozici v každé transakci SPI v prvních pěti bitech. Tato data lze použít k určení, zda se vyskytly nějaké problémy.
  • V mapě paměti jsou dva jedinečné registry, které jsou určeny pouze pro čtení a zápis. Dávejte si pozor, abyste nepokoušeli číst z registru pro zápis, protože by došlo k zápisu těchto dat.
  • Integrovaný obvod obsahuje energeticky nezávislou paměť, kterou lze použít k uložení výchozích parametrů. Tyto parametry se načtou do paměti RAM a použijí se při spouštění. Abyste zajistili, že se integrovaný obvod uvede do připraveného stavu co nejefektivněji, je nutné naprogramovat data pro „bezpečné“ spuštění.
  • Pokud koncové zařízení pracuje v zarušeném prostředí, je vhodné navrhnout aplikační kód tak, aby pravidelně obnovoval konfigurační data. Konfigurace integrovaného obvodu je uložena v paměti RAM, a to znamená, že je tento kód zranitelný vůči kosmickému záření, převrácení bitů a všem rušivým jevům, které mohou elektroniku potkat.

Závěr

Řízení BLDC motorů není jednoduchou záležitostí. Proto je vhodné využít integrovaný obvod A4964KJPTR-T, který obsahuje vše potřebné k řízení BLCD motorů a lze jej jednoduše připojit k nadřazenému mikrokontroleru pomocí rozhraní SPI. Mikrokontroler nastaví příslušné konfigurační registry a o vše se postará driver A4964KJPTR-T

 

Článek vyšel v originále na webu DigiKey.com, autorem je Jacob Bening.

 

Hodnocení článku: