Jste zde

Mikrokontroléry Stellaris s jádrem ARM Cortex-M3 pro řízení motorů

I když pro potřeby řízení motorů a motorků lze použít i běžná MCU, pro spolehlivé řešení regulace i 3fázových a BLDC motorů je dobré mít k dispozici něco víc. Zajímavé řešení poskytuje americká společnost Luminary Micro, kde její MCU Stellaris obsahují pro tyto účely speciální periferie a PWM generátory. Zajímavé je i použití moderního 32bitového procesorového jádra ARM Cortex-M3, které poskytuje velký výpočetní výkon i při taktování jen 20 MHz.

Za stále se zvyšující automatizací zařízení a rozkvětem robotizace stojí mimo jiné i rostoucí počet různých motorů, které za člověka elektricky realizují výsledný mechanický pohyb. S nimi se samozřejmě zvyšuje i potřeba sofistikovanějšího, ale zároveň na realizaci snadnějšího řízení. Nejen proto, aby výsledný pohyb byl přesnější a hladší, ale aby se i minimalizovala spotřeba drahé elektrické energie optimalizací výkonu motoru pro právě vyžadovaný úkon. Trendem do budoucna je integrace prostředků pro regulaci motorů přímo na jeden chip s procesory. Právě touto cestou se vydala i společnost Luminary Micro, která pro tyto účely vyvinula a nabízí řadu velmi výkonných 32bitových mikrokontrolérů Stellaris s procesorem ARM Cortex-M3.

 

Tabulka porovnávající některé zástupce 32bit. MCU Stellaris řady LM3S3xx s cenově srovnatelnou 8bit. konkurencí. Zatímco z pohledu periferií, velikosti pouzdra a ceny jsou konkurenční MCU se MCU Stellaris srovnatelné, výpočetním výkonem 1.25 DMIPS/MHz 32bit. ARM jádra jsou úplně někde jinde (pro zvětšení vždy klikněte na obrázek)

32bitové CPU jádro a obecné periferie

Integrované obvody Stellaris představují 32bitové mikrokontroléry s novým výkonným 50 MHz jádrem ARM Cortex-M3, doplněné až o 64 kB SRAM a 256 kB Flash paměti a mnoho různých periférií. Mezi ty nejvýznamnější patří na chipu plně implementovaná fyzická a MAC vrstva 10/100 Mbit. Ethernetu a sběrnice CAN. Podle toho, zda MCU obsahuje jedno nebo druhé ze zmíněných rozhraní, je velmi široká nabídka rozdělena na řady 2000 (obsahuje mj. CAN) a 6000 (obsahuje Ethernet). Pro aplikace v tomto směru méně náročné, které si z pohledu komunikace vystačí „jen“ s I2C, UART, či SSI/SPI, pak slouží řady 100, 300, 600 a 800, kde uvolněný prostor na chipu je využit k implementaci dalších, neméně důležitých jednotek a modulů, jako například PWM, kvadraturní enkodér či Dead-Band generátor.

Jak již bylo zmíněno, v centru všech MCU stojí 32bitové procesorové jádro ARM Cortex-M3 s harvardskou architekturou a třístavovým pipelinem, nástupce populárního ARM7TDMI-S. Proti němu přináší nejen významné snížení zabírané plochy na chipu, ale také výrazné zvýšení výkonu na 1.25 DMIPS/MHz, snížení spotřeby na 0.19 mW/MHz a různé podpůrné a ochranné funkce. Například lze jmenovat jednotku ochrany přístupu do paměti MPU (Memory Protection Unit) nebo integrovaný sleep mód. Nový je také dekodér určený pro zpracování nových efektivnějších 32bitových Thumb-2 instrukcí a ALU jednotka obsahující hardwarovou jednocyklovou 32bitovou násobičku a děličku.

S pohledu komplexní využitelnosti MCU je důležitý velký počet periférií, hlavně těch, které zprostředkovávají propojení s okolním světem. Mimo již zmíněný CAN a Ethernet může být dle typu obvodu přítomen i velmi rychlý až 8kanálový 10bitový A/D převodník, analogové komparátory, až 60 víceúčelových vstupů/výstupů (GPIO), teplotní senzor, bateriově zálohovaný hibernační modul, a další. Součástí obvodů všech řad jsou pak takové základní věci, jako JTAG, 32bitové časovače, obvod reálných hodin RTC, watchdog nebo stabilizátor napětí. Dostatečně široký pracovní teplotní rozsah -40 až 85 °C umožňuje nasazení i v průmyslu a provedení v pouzdrech SOIC (řada 100) a LQFP (ostatní řady) minimalizuje velikost DPS i celého zařízení. Vše podtrhuje nízká cena, srovnatelná snad pouze s 8 a 16bitovými mikrokontroléry.


 
;
 

Blokové schéma 32bit. MCU Stellaris

32bitové procesorové jádro ARM Cortex-M3 (jeho blokové schéma je vlevo) cíleně nevyužívá cache paměti, což zamezuje vzniku chyby typu chybějící stránka v cache paměti, což v případě řízení motorů může mít tragické následky. Místo toho se pro instrukce vždy "šahá" prostřednictvím I-Code a D-Code sběrnice přímo do Flash paměti (viz blokové schéma vpravo). NVIC řadič pomáhá jádru rychle zpracovávat kritické stavy (přerušení). Paměť SRAM a periferie na chipu (mimo JTAG) pak komunikují s jádrem po externí sběrnici (Peripheral Bus) přes APB most (APB Bridge).

Speciální periferie pro řízení motorů v MCU Stellaris LM3Sxxx

Mikrokontroléry Stellaris LM3S3xx mimo výkonného 32bitového 50 MHz výpočetního jádra ARM CORTEX-M3 již v sobě obsahují i prostředky pro řízení všech v současnosti běžně používaných typů motorů (střídavých synchronních i asynchronních, stejnosměrných včetně BLDC, i krokových). A to jak prostředky hardwarové, zahrnující PWM výstupy speciálně uzpůsobené právě pro regulaci motorů, kvadraturní enkodéry pro připojení snímače natočení (otáček) či rychlý 10bitový A/D převodník, tak i softwarové tvořené knihovnami v jazyce C s API funkcemi pro přímé ovládání a používání zmíněných periferií jedním příkazem.

Mikrokontroléry Stellaris LM3Sxxxx se vyznačují speciálními PWM bloky, které generují speciální dva sfázované PWM signály pro řízení polovičních H-můstku budičů motorů.

Například pro účely řízení motorů nejlépe vybavený typ LM3S8962 obsahuje šest bloků PWM výstupů pro regulaci výkonu (otáček a momentu), každý složený z 16bitového časovače, časového komparátoru, PWM generátoru, bloku uvolnění/přerušení PWM výstupu a tzv. Dead-band delay generátoru. Zvláště poslední dva bloky, které se běžně u MCU jiných výrobců neobjevují, dovolují okamžité zastavení motoru například v případě poruchy, resp. automatické hardwarové generování tzv. mrtvé doby požadované například u řízení BLDC motorů polovičními H-můstky. Zde je totiž nutné realizovat stav, kdy po nějaký čas nesmí být otevřen ani jeden spínací tranzistor můstku budiče motoru. Pro realizaci zpětné vazby pro zjištění reálného natočení motoru či rychlosti jeho otáčení jsou k dispozici dva hardwarové kvadraturní enkodéry pro přímé připojení dvoukanálových inkrementálních snímačů otáčení, či 8kanálový 10bitový A/D převodník pro připojení Hallových snímačů pro měření proudu vinutím motoru nebo realizaci bezsenzorového snímání EMF.

 

Dead-Band Generator sfázuje PWM signály tak, aby se vytvořilo tzv. mrtvé pásmo (ani jeden signál není ve stavu log. 1)

PWM Generátor vytváří z vygenerovaného časovacího průběhu (trojúhelník) a přednastavených hodnot CompA a CompB dva PWM signály (PWMA a PWMB) pro Dead-Band Generátor

Závěr

Mikrokontroléry Stellaris řady LM3S3xx představují zajímavou výkonnou varianta při potřeby digitálního řízení stejnosměrných, krokových i 3fázových a BLDC motorů. Bližší informace o MCU Stellaris lze v podobě podrobných katalogových listů, teoretických i praktických návodů i zdrojových kódů pro realizaci řízení různých motorů, získat na stránkách společnosti Luminary Micro (www.luminarymicro.com).

Antonín Vojáček

Download & Odkazy

  • Stránky společnosti Luminary Micro, výrobce speciálních MCU pro řízení motorů - www.luminarymicro.com
  • Jednou ze společností prodávající v ČR MCU Stellaris je HT-Eurep Electronics - www.hte.cz 
Hodnocení článku: