česky english Vítejte, dnes je pondělí 18. listopad 2024

Skúmajme priestor s STM32 F3-Discovery

DPS 6/2013 | Články
Autor: Ing. Peter Vargovčík, SPŠE Prešov

Pred časom sa mi dostal do rúk zaujímavý vývojový kit z dielne STMicroelectronics. V skromnom priesvitnom plastovom obale sa okrem precízne osadeného plošného spoja nachádzala už len sprievodná kartička s popisom výrobku. Najskôr som, samozrejme, svoj skúmavý elektrikársky pohľad od detstva fascinovaný medenými dráhami ukrytými pod zelenou maskou uprel práve na ne, ako v tenkých, ale pevných líniách spájajú rôzne kolíčky, LED, tlačidlá a ďalšie potvory, medzi ktorými zaujímajú výsostné postavenie čierne preparáty chrobákov s prezývkou „integráče“. Až som rozpoznal všetko, čo sa rozpoznať dalo. Príliš múdry som však, samozrejme, nebol. Mrkol som na kartičku, na ktorej medzi zopár písmenkami tučne vytŕčalo STM32 F3 MCU, WITH MEMS GYROSCOPE AND E-COMPASS.

Óóó, tak to áno. Tomuto sa pozriem na zúbky. V posledných rokoch sa usilujem zaujať svojich študentov práve robotikou a intenzívnejšie sa zaujímam o všetko, čo s tým súvisí. No a kompas, akcelerometer či gyroskop, navyše priamo zabudované na doske vývojového kitu… Čo viac som si mohol priať?

Ako začať?

Druhá strana sprievodnej karty obsahuje 10krokový návod Getting started, takže skontrolujem nastavenie prepojok, beriem do ruky USB kábel A/mini-B (nie je súčasťou kitu) a pripájam Discovery kit k PC s cieľom napájania. LED indikujúca prítomnosť napájania a ďalšia komunikačná LED sa rozsvietia a ďalej pozorujem správanie sa kitu, na ktorom už beží predinštalovaný program. Najskôr sa cyklicky rozsvecuje 8 LED usporiadaných v 45° uhlových rozstupoch do kruhu. Svetelný efekt je tiež farebný, pretože každé dve diódy v kruhu oproti sebe majú rovnakú farbu (červená, modrá, oranžová, zelená). Po stlačení tlačidla s označením USER a cca 5 mm vysokým modrým hmatníkom demoprogram prejde do fázy prezentujúcej funkciu gyroskopu. Treba podotknúť, že osmica LED vskutku vierohodne indikuje aj najmenší pohyb či náklon kitu v príslušnom smere. Po ďalšom stlačení USER tlačidla nasleduje ukážka použitia kompasu. Kit pritom musí ležať vo vodorovnej polohe, pri významnom náklone sa totiž všetkých 8 orientačných LED rozbliká. Otáčaním kitu okolo zvislej osi vždy jedna z ôsmich LED svieti, a to tá, ktorej orientácia je najbližšie k severu. Posledné dva kroky návodu sú výzvou na preskúmanie a modifikáciu tohto demoprogramu s odkazom na webovú stránku venovanú Discovery projektu (www.st.com/stm32f3discovery) a tiež na vývoj vlastných aplikácií, pre ktoré môže byť vzorom na tom istom mieste dostupná séria príkladov.

Obr. 1 Vývojový kit STM32F3DISCOVERY od STMicroelectronics

Obr. 1 Vývojový kit STM32F3DISCOVERY od STMicroelectronics

Objavujeme STM32 F3

Aj keď sa výrobca usiluje presadiť tento vývojový kit na trhu lákavou pridanou hodnotou v podobe orientačných a pohybových senzorov, oslovuje nadšencov a predovšetkým profesionálnych dizajnérov mikropočítačových systémov širokou ponukou riešených príkladov dokumentujúcich skvelé vlastnosti mikroprocesora série Cortex-M4 typového radu STM32 F3. Práve týchto záujemcov určite zaujme nasledujúci zoznam charakteristických rysov obvodu STM32F303VCT6:

  • 32-bitový mikroprocesor s jadrom Cortex M4, 72 MHz, puzdro LQFP100,
  • 256 KB FLASH,
  • 48 KB SRAM, z toho 8 KB použiteľná ako kódová pamäť,
  • 62 DMIPS (program vo FLASH), 94 DMIPS (program v SRAM), Core-Mark skóre 155,
  • 9× 16-bitový + 1× 32-bitový časovač, 2× Watchdog, SysTick, RTC,
  • 4× 12-bitový AD prevodník (39 kanálov), vzorkovacia frekvencia do 5 MHz,
  • 2× 12-bitový DA prevodník,
  • 2× 16-bitový PWM timer 144 MHz,
  • 88× univerzálne I/O,
  • SPI, 2× SPI/2× I²S, 2× I²C, 5× USART (IrDA, ISO 7816), 1× USB 2.0 FS (512B buf), 1× CAN (512B buf),
  • napájanie 2 až 3,6 V, spotreba 1,1 μA (sleep), 416 μA/MHz (run),
  • 12 kanálov DMA,
  • hardvérové CRC,

aj predstavovaného kitu STM32F3Discovery:

  • rozmery 66 × 97 mm,
  • STM32F303VCT6 predstavený vyššie,
  • ST-LINK/V2 s voľbou režimu PC-USB (Mini-B)/samostatný s SWD konektorom na programovanie a ladenie,
  • druhý Mini-B USB konektor na používateľské použitie,
  • napájanie kitu: po USB zbernici alebo externé 3 V, resp. 5 V,
  • napájanie poskytované externej aplikácii 3 V a 5 V,
  • L3GD20, ST MEMS pohybový senzor, 3-osový gyroskop s digitálnym výstupom (SPI/I²C) s nastaviteľnou citlivosťou (3 rozsahy) aj periódou meraní,
  • LSM303DLHC, ST MEMS kombinovaný čip s funkciami
  • 3D digitálny lineárny senzor akcelerácie,
  • 3D digitálny magnetický senzor (kompas), s periódou meraní až 400 Hz,
  • desať LED:
  • LD1 (červená) indikácia 3,3 V napájania,
  • LD2 (červená/zelená) pre USB komunikáciu,
  • osem používateľských LED v kruhu – protiľahlé rovnakej farby (modrá, zelená, červená, oranžová),
  • dve tlačidlá (USER a RESET),
  • dve dvojradové kolíkové siete 2 × 2 × 25 s vyvedením všetkých 100 pinov mikroprocesora. Kolíky majú štandardný rozstup 2,54 mm a hore aj dolu dostatočnú dĺžku pre možnosť pripojenia externých, napr. prototypových dosiek, a ľahké testovanie.

Dokumentácia na webových stránkach

Pretože kúpou STM32F3-Discovery získava zákazník len samotný kit a link na web projektu, pozrime sa, čo nájdeme práve na tomto webe. Je tam predovšetkým niekoľko PDF dokumentov:

Špecifikácia produktu – obsahuje popis základných vlastností a možností Discovery kitu.

User manual – obsahuje schému a plošný spoj s popisom, blokovú schému kitu aj procesora, zapojenie všetkých konektorov, význam prepojok (napríklad konfigurácia oscilátora procesora), opisuje spôsob nahrávania programu aj ladenia, opisuje všetkých 100 pinov procesora vrátane všetkých alternatívnych významov.

Séria procesorov STM32F3 – popis spoločných i rozlišujúcich znakov rodiny viac ako 70 mikroprocesorov Cortex M4.

Getting started – príručka sa venuje nastaveniu IDE, nahrávaniu a ladeniu programov pre Discovery kit v štyroch prostrediach:

Obr. 2 Ukážka ladenia vo vývojovom prostredí EWARM od IAR Systems

Obr. 2 Ukážka ladenia vo vývojovom prostredí EWARM od IAR Systems

  • IAR Embedded Workbench® for ARM (EWARM) z produkcie IAR Systems,
  • Microcontroller Development Kit for ARM (MDK-ARM), ktorý pochádza od Keil™,
  • TASKING VX-toolset for ARM Cortex z dielne Altium,
  • TrueSTUDIO® od spoločnosti Atollic.

Programming manual – opisuje kompletne assembler mikroprocesorov radu Cortex M4, prístupové modely k jeho prostriedkom.

Ukážkové príklady ako tutoriál i demonštrácia schopností

Okrem spomenutej dokumentácie obsahuje stránka Discovery kitu aj

  • PDF súbor Examples – dokument s popisom riešených príkladov na ovládanie periférií mikroprocesora,
  • zip balíček obsahujúci zdrojové súbory všetkých týchto príkladov vrátane zdrojových súborov úvodného demoprogramu. Vývojárom dávam do pozornosti tiež zložky Libraries, Utilities s množstvom cenných informácií o využívaných službách.

PDF súbor znázorňuje aj adresárovú štruktúru príkladov a o každom z nich uvádza, o čo v príklade ide. Všetky príklady obsahujú samostatnú projektovú zložku pre každé zo štyroch vyššie spomenutých vývojových prostredí tak, aby používateľ nemal žiadne starosti s nastavovaním testovaného príkladu. Všetky sú koncipované tak, aby poslúžili ako návod pre budúce samostatné projekty, zároveň tiež demonštrujú prednosti procesora Cortex-M4. Medzi príkladmi nechýba:

  • program na kontinuálne meranie na AD prevodníku,
  • program na výpočet polynomického kontrolného súčtu správy,
  • program na súčasný DA prevod viacerých signálov s využitím DMA,
  • program na prenos bloku dát z FLASH do SRAM s využitím DMA,
  • program demonštrujúci nastavenie a použitie externého prerušenia,
  • ukážka nastavenia a použitia binárnych výstupov,
  • ukážka využitia WatchDogu,
  • ukážka nastavenia zosilnenia zabudovaných operačných zosilňovačov signálu,
  • ukážky nastavenia a použitia úsporných režimov procesora,
  • RTC kalendár, tamper – ukážky využitia zabudovaného systému presného času,
  • ukážky použitia interných časovačov,
  • príklady, ako generovať, ale aj dekódovať PWM signál,
  • príklad použitia USB.

Skúsenosti s inštaláciou IDE, spúšťaním, tvorbou a ladením programov

Zo štyroch vývojových prostredí odporúčaných pre prácu s Discovery kitom som odskúšal dve.

Prednosťou MDK-ARM z dielne Keil™ je, že má free licenciu iba s obmedzením veľkosti programu. Inštalácia samotného softvéru prebehla bez problémov. Tie nastali až v súvislosti s ST Link ovládačom, jeho aktiváciou v prostredí MDK-ARM, čo príručka Getting started až tak dokonale nepopisuje. Ale s potvrdením príslovia „Všetko je na webe“ bol prvý program uploadnutý do kitu v priebehu hodiny. Ďalšie pokusy o spúšťanie vzorových príkladov, úpravy programov či vytváranie vlastných jednoduchých aplikácií už prebiehali bez ťažkostí v súlade s návodom. Prostredie EWARM od IAR Systems je o niečo robustnejšie (takmer 5 GB), zato počas používania bola jediným „problémom“ nutnosť registrácie, kde bolo možné vybrať aj verziu s obmedzením času (30 dní) alebo veľkosti programu (32 kB).

Záverečné hodnotenie

Tento príspevok je len malým náhľadom do obrovského priestoru technológií 32-bitových ARM procesorov Cortex M4. Kit STM32F3-Discovery rozhodne zaujme každého vývojára mikroprocesorových systémov, a to svojím výkonom, modernými službami, širokým spektrom využitia v oblastiach digitálnych systémov, analógovo-digitálnych systémov aj systémov výpočtových či komunikačných.

Zaujímavá môže byť rozhodne aj cena, ktorá sa u zahraničných predajcov pohybuje na úrovni do 20 dolárov. Kit môže byť zaujímavý aj pre študentov či amatérov s vôľou napredovať v tejto oblasti.

Vzorové príklady a popis knižníc tutoriálu sú bohatým zdrojom softvérových konceptov. Musím však upozorniť, že komfortné knižnice ani help na úrovni Arduino Wiring pre tento systém zatiaľ nie sú k dispozícii.

www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/PF254044