Discovery kity slouží jednat pro vyvíjení specifických aplikací na určitém hardware, tak také pro ověření funkce a testování elektronických komponent, kterými mohou být nejrůznější senzory, vstupně/výstupní zařízení, ale i mikrokontroléry (MCU). Do poslední kategorie patří, v nadpise zmíněná, deska STM32 F4.
Srdcem desky je mikrokontrolér STM32F429ZIT6 od společnosti STMictroelectronics. Ten je postaven na architektuře ARM Cortex-M4 a obsahuje 2D grafický akcelerátor. Díky těmto předpokladům kit obsahuje také barevný 2,4“ QVGA TFT LCD display a 64 Mb paměti SDRAM. Protože STM vyrábí také řadu senzorů, nalezneme na desce i 3osý MEMS gyroskop L3GD20.
Programování obvodu je možné skrze integrované standardní rozhraní ST-LINK/V2. Pokud bychom jej chtěli využít i pro programování a ladění vlastních projektů, lze ST-LINK díky několika propojkám od MCU STM32F429 odpojit, a náš vlastní projekt/desku připojit přes konektor označený jako SWD. Tím pádem máme díky tomuto kitu i nezávislý programátor obvodů podporující rozhraní SWD (Serial Wire Debug). Rozhraní je přístupné před USB konektor, který slouží současně i pro napájení desky.
Aby toho nebylo málo, deska obsahuje také dvě tlačítka, šest LED diod a USB OTG. Vše je propojeno s vlastním MCU.
Mikrokontrolér STM32F429ZIT6
Jak již označení napovídá, jedná se o 32 bitový MCU rodiny F4, ve kterém nalezneme jedno jádro ARM Cortex-M4 tepající na kmitočtu max. 180 megacyklů za vteřinu (MHz) a poskytující výpočetní výkon blížící se 225 DMIPS.
Programový kód můžeme umístit do interní paměti FLASH velikosti 2 MB nebo externího čipu. K dispozici máme 256 kB paměti RAM, případně můžeme využít externí SDRAM (v případě discovery kitu je to již zmíněných 64 Mb).
K dispozici máme také množství rozhraní, mezi něž patří 4 x USART, 4 x UART, 6 x SPI, 3 x I2C 2 x CAN, SDIO, 2 x USB OTG, 2 x I2S, 1 x SAI, ethernet MAC10/100 a rozhraní pro kamery. Nechybí ani hardwarová šifrovací jednotka s podporou AES GCM, CCM a SHA-256, díky čemuž můžeme vyvíjet aplikace zajišťující zabezpečenou komunikaci, která je již dnes nutností nejen pro IoT, ale také pro automobilový průmysl.
Samozřejmě nesmíme zapomínat na 17 integrovaných 16b a 32b časovačů, 2 x 12b DAC a 3 x 12b ADC dosahující vzorkovací rychlosti 7,2 MSPS.
O ARM architektuře M4, instrukční sadě, SIMD, přerušeních NVIC a NMI, a registrech, se nemá cenu rozepisovat. Při programování čipu většinou nastavíme podporovaný čip a vše ostatní necháme na konkrétním překladači, případně nějakém frameworku. Důležité je ale sledovat vydávaná Errata. Díky čemuž se můžeme vyhnout řadě nepředvídatelných chování.
Vývojové prostředí
Ani společnost STMictroelectronics není pozadu se svým vlastním vývojovým prostředím STM32CubeMX. Jedná se o zdařilý nástroj, ve kterém lze v grafické podobě nakonfigurovat prakticky všechny periferie příslušného MCU. Nedílnou součástí je, v dnešní době nezbytný, kalkulátor spotřeby.
Podporovanými operačními systémy je rodina Windows od Microsoftu. Nezbytným požadavkem je Java. To proto, že je software založen na Eclipse IDE.
Díky grafickému rozhraní máme přímou kontrolu nad využitými vlastnostmi MCU a potřebnými závislostmi. Vzhledem ke složitosti čipů obsahující všemožné hardwarové šifrovací jednotky, a množství vzájemně sdílených rozhraní využívajících DMA, je velmi pracné bez takového nástroje navrhnout nové zařízení v nějakém rozumném čase.
STM32CubeMX nám pomůže i s případným odhalováním chyb. Vše je logicky uspořádáno a obsahuje propracované závislosti. To je užitečné např. v případě, že používáme několik časových domén, které musí být korektně nastaveny. STM32CubeMX nám totiž nedovolí zadat hodnoty děliček a ostatní parametry, pokud by došlo k nekonzistenci a nefunkčnosti naší konfigurace.
STM32CubeMX (v4.11.0) nám vygeneruje zdrojové kódy, ale pro jejich překlad si musíme zvolit nástroj některé ze třetích stran.
Závěr
Discovery kit pro STM32F429 je velmi povedeným pomocníkem nejen pro vlastní vývoj, ale také pro seznámení s miktrokontroléry STMictroelectronics. S programovým vybavením STM32CubeMX je možné navrhovat sofistikovaná moderní zařízení, které splní nejnáročnější požadavky na kvalitu, rychlost a spolehlivost. Vždyť tyto MCU jsou jedny z nejrozšířenějších na světě, a lze je nalézt v automobilech, mikrovlnných troubách, pračkách, chytrých hodinkách, mobilních zařízeních, měřících přístrojích, senzorových hubech nebo i ve vesmíru.
V návrhu a vývoji nám může pomoci nejen velká komunita lidí, ale také specialisté z STMictroelectronics.
Prezentace a laby
STM32Cube Presentation
STM32F4 and FreeRTOS
STM32F4 Labs
STM32F4 and USB