Sdílejte chiptron.cz na sociálních sítích



RSS feeds

Jak začít s moderními mikrokontroléry a proč - STM32Tisk



Další články o STM32(F7):
Tutorial: STM32F746 (STM32F7 Discovery) - Tlačítkem rozsvítit/zhasnout LED
Tutorial: STM32F746 (STM32F7 Discovery) - jak zapnout LED (ovládání GPIO)
STM32F746 discovery a IDE AC6 (System Workbench for STM32)
Jak začít s moderními mikrokontroléry a proč - STM32


AVR, ATMega, ATTiny, PIC, Arduino... To jsou velmi často vyhledávaná slova z vyhledávačů (google i seznam) a mě tak napadá otázka "Proč?". Ano, byla tu sláva mikrokontrolérů od firmy Atmel, hlavně rodiny AVR (ATMega a ATTiny) a také PIC (16F a další) od firmy Microchip. Ano, ve své době byly velmi populární, bastl domácí programátory velmi rozšířené a návodů jak blikat LED bylo nepočítaně. Ale ať chceme nebo ne, doba jde dále a mě zajímá proč jsou tyto mikrokontroléry stále tak rozšířené a oblíbené. Ano, návodů je pořád velké množství (i v češtině/slovenštině) a domácích bastl programátorů taky.
Proto bych chtěl tento článek pojmout jako úvod do programování moderních mikrokontrolérů jako je například STM32. Ano, mohl jsem vybrat jinou firmu jako TI či Renesas, ale dostupnost a nabídka ST mikrokontrolérů a vývojových kitů značně převyšuje konkurenci. Proto STM32.

Proč: Nejprve, proč vůbec začít s mikrokontroléry STM32. A odpověď je nasnadě. Moderní, velmi rychlé i nízkoodběrové mikrokontroléry za velmi lidovou cenu. Vývojové kit (které koupíte za pár korun) obsahují už programátor (kterým lze programovat i mikrokontroléry mimo vývojový kit) a debuger (pro neznalé, debug vám umožňuje ladění programu za jeho chodu - například vyčtení proměnných, zastavení programu na určitém řádku kódu - tzv. breakpoint atp).
Mikrokontrolérů od firmy ST je nepřeberné množství a velmi jednoduše mezi nimi najdete velmi výkoný mikrokontrolér, mikrokontrolér s velmi nízkým odběrem nebo s nepřeberným množstvím periférií jako jsou I2C, SPI, CAN, USB, Ethernet a další. Také naleznete v jejich nabídce mikrokontroléry pro SMT montáž (např: pouzdro TSSOP), které se dobře pájí a vytvoření DPS není pro jejich velikost žádnou překážkou.

Cena: Mnoho argumentů proč zůstat u "starých" mikrokontrolérů je ten, že jsou levnější. Ano, často to tak vypadá. Ale nenechte se mýlit.
Pěkným příkladem budiž STM32F030F4P6. Mikrokontrolér s jádrem ARM Cortex-M0, tikající na frekvenci až 48 MHz obsahující periferie jako I2C, SPI či UART v pouzdru TSSOP o 20 pinech.
Cena 37 Kč (*1 - srpen 2015). K dispozici dále máte 16 kB FLASH, a 4 kB RAM.
Mikrokontrolér je sice napájen 3.3V, ale mnoho vývodů je 5V tolerantní. Dále obsahuje několik DMA, 11x časovač, watch dog atd.
Pokud si připlatíte 1 Kč (*2 - srpen 2015) - dostanete STM32F030C6T6. Počet pinů je 48. velikost FLASH 32 kB a 4 kB RAM.

Pokud vám výbava nestačí, přidejte dalších pár korun a za 45 Kč (*3 - srpen 2015) máte STM32F070C6T6.
Ke výše vyjmenovaným periferiím přibylo i USB, velikost FLASH je stále 32 kB a RAM se zvýšila na 6 kB.
A spotřeba? v nejhlubším spánku pouze 1.4uA. Se zapnutým WatchDog 2.2uA. Při frekvenci 48 MHz že interního nebo externího High speed oscilátoru je odběr až 24 mA.

A to nejsme u Low power mikrokontrolérů - STM32L152C6T6A
0.3uA ve Standby mode - probuzení přes 3 WakeUp piny nebo
0.9uA - Standby + RTC
9uA v Low-power běžícím modu
a cena? 86 Kč (*4 srpen 2015)

Pokud chcete vyšší výkon a výbavu, není to problém - STM32F407, 429 nebo nová STM32F746

Vývojové prostředky: Samozřejmě si můžete udělat doma programátor na AVR, ale proč, když vývojový kit za pár korun pořídíte i s programátorem a debuggerem.

ST nabízí vlastně dvě varianty, buď Discovery kit nebo Nucleo. Rozdíl je značně patrný.
Discovery kit kromě programátoru a debuggeru obsahují i další součástky jako je akcelerometr, LCD display, gyroskop atp.
Nucleo obsahují maximálně několik LED, tlačítko pro reset a uživatele a samotný mikrokontrolér. Jejich předností je cena a kromě Morpho konektorů, také Arduino konektory (kromě STM32F746-disco, ten má pouze Arduino like konektory). Toto však přestává platit u verzí Nucleo-144.
Takže pokud chcete používat Arduino shields, není problém. Můžete a ve výběru nejste omezeni.
Další výhodou je ST-LINK/V2-1, který připojí kit jako "flash disk" do PC a programování proběhne pouze zkopírováním binárního souboru.

Za 266 Kč (srpen 2015) získáte tyto nepřeberné množství vývojových kitů.
NUCLEO-L152RE
NUCLEO-F072RB
NUCLEO-F103RB
NUCLEO-F030R8
a spoustu dalších.
Nebo, chcete-li, můžete si zakoupit Discovery kity.
STM32L-DISCOVERY s STM32L152RBT6 za 322 Kč (*5 srpen 2015)
STM32F4DISCOVERY s STM32F407 za 384 Kč (*6 srpen 2015)
STM32F0DISCOVERY za 252 Kč (*7 srpen 2015)
a opět je kitů mnohem více, stačí si vybrat...

Pokud vám stačí programování přes UART, můžete si vybrat z nabídky čínských prodejců, které nabízejí Arduino desky s STM32. Rozchodit je v běžném Ardudino IDE není žádný problém. https://chiptron.cz/articles.php?article_id=118

Vývojové IDE: Zdarma? Samozřejmě. Třeba Keil. Do 32 kB kódu bez problémů. Nebo AC6 System Workbench for STM32 od openstm32.org. Úplně neomezený.
Můžete se podívat i po IAR
A když jsme u toho Arduino, tak existuje i stejná filozofie pro STM32. IDE se nazývá Maple a je uvolněn pro Windows, Linux i OS X stejně jako AC6 System Workbench for STM32.
Pokud nechcete používat Maple IDE, který je založen na starších verzích Arduino IDE, můžete přímo používat Arduino IDE, stačí natáhnout balík z https://github.com/stm32duino. Zde je oficiálně podporována spousta mikrokontrolérů z portfolia STM32.

Levné vývojové desky od čínských prodejců které jednoduše rozchodíte i v Arduino IDE. https://chiptron.cz/articles.php?article_id=118

Programování: A když jsme nakousli "Arduino programování" je vhodné zmínit i další možnosti.
Kromě klasického psaní kódu můžete využít třeba HAL. Jedná se o programovou vrstvu, kde přistupujete k perifériím skrze funkce od ST. Výhoda je jednoznačně v tom, že vám usnadňuje psaní kódů. Nevýhoda je pak větší velikost výsledného kódu.
Podobně je to i se Standard Peripheral Library. Od té se však upouští a přechází se na HAL.
Co vám také pomůže je CubeMX. Program, ve které si naklikáte jaké periferie chcete použít, nakonfigurujete a program vám vytvoří hotový projekt. V něm pouze používáte zmíněné funkce HAL.
Také tu máme možnost využít Low-Layer API. Je to takový příjemný kompromis mezi HAL a přímým zápisem do registrů. Po pár kliknutích se dostanete přímo na jednotlivé registry a kód je snadno čitelný a pochopitelný.

A na závěr, výhodou je také portovatelnost kódů napříč nejrůznějšími typy STM mikrokontrolérů založených na jádře ARM Cortex.

Tím bych ukončil tento článek. Cílem tohoto článku, kromě zamyšlení nad mikrokontroléry, je základní přehled právě o mikrokontrolérech STM32.


(*1) http://cz.farnell.com/stmicroelectronics/stm32f030f4p6/mcu-32bit-cortex-m0-48mhz-tssop/dp/2393635
(*2) http://cz.farnell.com/stmicroelectronics/stm32f030c6t6/mcu-32bit-cortex-m0-48mhz-lqfp/dp/2393632?ost=STM32F030C6T6
(*3) http://cz.farnell.com/stmicroelectronics/stm32f070c6t6/mcu-32bit-cortex-m0-48mhz-lqfp/dp/2488283?ost=STM32F070C6T6
(*4) http://cz.farnell.com/stmicroelectronics/stm32l152c6t6a/mcu-32bit-cortex-m3-32mhz-lqfp/dp/2469614¨
(*5) http://cz.farnell.com/stmicroelectronics/stm32l-discovery/stm32l1-st-link-v2-discovery-kit/dp/1876987
(*6) http://cz.farnell.com/stmicroelectronics/stm32f4discovery/stm32f407-usb-otg-discovery-kit/dp/2009276
(*7) http://cz.farnell.com/stmicroelectronics/stm32f0discovery/eval-kit-stm32f0-with-st-link/dp/2096251?searchRef=SearchLookAhead

Upozornění

Administrátor těchto stránek ani autor článků neručí za správnost a funkčnost zde uvedených materiálů.
Administrátor těchto stránek se zříká jakékoli odpovědnosti za případné ublížení na zdraví či poškození nebo zničení majetku v důsledku elektrického proudu, chybnosti schémat nebo i teoretické výuky. Je zakázané používat zařízení, která jsou v rozporu s právními předpisy ČR či EU.
Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva.
Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ.
10,886,366 návštěv