Do jedné aplikace jsem potřeboval trochu rychlejší procesor, než ATmega. Potřebuji totiž měřit s inkrementálním snímačem s rozlišením 0,005 mm, který svými výstupy spouští přerušení procesoru. To je následně počítáno. Na Ardunino Nano a Micro (procesor ATmega 328, ATmega32U4) načítání sice fungovalo, ale při rychlejším pohybu docházelo k nepřesnému měření – procesor jednoduše na vstupy nezareagoval (snímač má rozlišení 5 μm, tedy 200 impulsů na 1 mm délky). A to nepočítám ještě logiku programu, která by dále zatěžovala procesor.
Rozhodl jsem se tedy zkusit zakoupit z Číny „něco jako Arduino“ („BluePill), ale s 32bitovým procesorem STM32F103C8T6. Jde v podstatě o další ze spousty vývojových desek, ale tentokrát s procesorem od STM. Za cenu ušmudlanýho dolaru-osmdesát je to lepší volba než klony Arduina Nano za dva doláče.
Detaily desky si můžete přečíst na stránkách výrobce. Ve zkratce se jedná o 32-bitový ARM procesor s maximální frekvencí 72 MHz, 64 kB flash pamětí a napájený 3,3 V.
Protože deska nejde programovat přímo přes USB kabel, je nutné k programování použít programátor. Z Číny jsem tedy dokoupil programátor ST-Link V2. Programátor se jednoduše připojí na piny vývojové desky a pomocí Arduino IDE se deska naprogramuje.
programátor ST-Link V2
Nejprve je nutné nainstalovat ovladače pro ST-Link (STSW-LINK009). Ten se dá stáhnout přímo na stránkách STM kliknutím na tlačítko Get Software. Před stažením je nutné se zaregistrovat. Do USB počítače se programátor zapojí a pokud počítač ovladač nenainstaluje ovladač rovnou, lze pomocí Správce zařízení správný ovladač doinstalovat.
Na GitHubu je nutné stáhnout potřebné soubory. Balík je nutné rozbalit do složky Dokumenty/Arduino/hardware* (složku hardware je většinou potřeba vytvořit). Dále v manažeru desek (Nástroje > Vývojová deska > Manažer desek) doinstalujeme desku Arduino Zero (stačí do vyhledávání napsat Zero). V Nastavení zvolíme potřebné parametry desky a programátoru. Jako vývojovou desku zvolíme „Generic STM32F103C series“, Upload method zvolíme „STLink“
* Cesta k potřebné složce je v Soubor > Vlastnosti > „Umístění projektů“
Po přeinstalování Win10 se mi stalo, že jsem nebyl schopný desku naprogramovat. IDE hlásilo, že projekt byl přeložen (přeložen skutečně byl) a odeslán. Ale odeslání vůbec neproběhlo. Opravit se mi to podařilo nainstalování aplikace ST-LINK utility.
Nastavení Arduino IDE
Desku je s programátorem nutné propojit čtyřžilovým kablíkem. Na modulu je to odshora GND – SWCLK – SWDIO – 3.3V (viz obrázek). Nyní stačí program zkompilovat a nahrát. Modul má na pinu č. 13 zapojenou LEDku, stejně jako běžné Arduino. Ta by se s pomocí vhodného programu měla rozblikat. POZOR, deska má napájení pouze 3,3 V! 5 V lze přivést pouze na USB port a několik pinů.
Modul v pokusném zapojení s LCD a několika senzory a DC-DC měničem MINI-360
Označení pinů modulu s procesorem STM32
Program pro tento modul je podobný jako pro běžné Arduino. Je zde však několik odlišností, kvůli kterým nemusí např. fungovat všechny knihovny. Je dobré tedy nutné si vše pořádně odzkoušet. Jedna z odlišností, která mě napadá je označení pinů PA, PB, … místo A a D. Funkce analogWrite(pin, 0–255) je nutné u tohoto modulu volat jako pwmWrite(pin, 0–65535). Jinak lze rozchodit běžné věci jako je komunikace přes I2C, SPI, ovládání displeje apod.
Displej 320×240 px. ovládaný procesorem STM32F103C
Program lze samozřejmě psát i ve Visual Studiu. Jinak by to nemělo smysl 🙂 Nastavení Visual Studia je podobné jako u Arduina IDE. Jako desku zvolíme „Generic STM32F103C series“ a pole programátor necháme prázdné. Program se zkompiluje a nahraje tlačítkem „Build and Upload“.
Programování STM32F103C ve Visual Studiu
Nastavení Visual Studia
Pokud je třeba použít sériový monitor (SerialMonitor) je nutné modul připojit k počítači přímo přes USB. Modul se poté přihlásí jako standardní COM port (Maple mini) a v ArduinoIDE, nebo ve VisualStudiu se lze k němu bez problémů připojit.
Jinak pohodlnější cesta (a zřejmě i vhodnější – otázkou je zda existovala v době psaní článku) jak dostat stm32 desky do ArduinoIDE je v nastaveni přidat adresu „Správce dalších desek URL“ : https://github.com/…m_index.json a IDE si vše potřebné již sámo dostahuje a doinstaluje.
Dobrý den,
před nějakým časem jsem si koupil STM32 (prostě ten co byl použit i v tomto návodu) a doinstaloval jsem všechny drivery, ale v Arduino IDE se mi stále nezobrazuje port, požívám také ST Link.