Elektronika, ukázky pro Arduino a STM8, plus programování v Delphi (Lazarusu).


     

Mikrokontrolér STM8 a assembler

tyto stránky jsou provozovány jako hobby, bez reklam a bez sběru osobních dat

               segment 'rom'
               ldw    X, #stack_start   ;do registru X pocatecni adresa
clear_stack    clr   (X)                ;vynuluj byte na adrese X
               incw   X                 ;zvys registr X o 1
               cpw    X, #stack_end     ;uz jsme na konci?
               jrule  clear_stack       ;  ne, opakuj
               ldw    X, #stack_end     ;  ano, pokracuj dal a nastav vrchol zasobniku
               ldw    SP, X

Zaujal mne modul s osmibitovým mikrokontrolérem STM8 od ST Microelectronics, stejně jako programování v assembleru. To je taková ta výzva, kdy se z minima, snažíte vymáčknout maximum. Pokud by někdo měl zájem naučit se programovat tímto způsobem, myslím, že právě tento modul s tímto čipem může posloužit jako dobrý startovací můstek.
Podle mne je tento mikrokontrolér ideální pro STM8S103F3P6 stavbu jednoúčelových zařízení jako jsou různá čidla a podobně. Čip není zrovna nejnovější a vývojové prostředí ST Visual develop se jen udržuje a nijak moc (spíš vůbec) se nevyvíjí, nicméně výroba těchto čipů pokračuje dál a výrobce zaručuje dalších deset let podpory po ukončení výroby. Pro jednoduchá zařízení je asi zbytečně nákladné používat pokročilejší STM32.
Snažil jsem se vytvořit několik více, nebo méně povedených příkladů a návodů, viz seznam níže, který budu postupně doplňovat nejen návody a ukázkami, ale i hotovými projekty.
Také jsem se pokusil napsat malý návod, jak pracovat s tímto čipem ve vývojovém prostředí výrobce a programovat jej v assembleru.
Assembler je dnes asi jen takové okrajové téma, vypadá to, že již se jím zabývá málokdo. Nejspíše proto, že existují pohodlnější vývojové nástroje, a to i pro tento typ kontroléru. Je to například Cosmic, nebo Arduino IDE s doinstalovanou knihovnou SDuino oba pro jazyk "C".
Kdyby přece jen někoho zajímalo, jak to funguje na té nejnižší úrovni, kde máte fakticky úplnou kontrolu nad daným zařízením/čipem, tak se zde může mrknout. Co se mi však na assembleru líbí nejvíce, je jeho úspornost. Zde publikované příklady a projekty zabírají řádově stovky bajtů, sotva dosáhnou jediného kB. Pro editaci, kompilaci a ladění jsem použil prostředí výrobce ST Visual develop.
Deska STM8 neposkytuje možnost nahrávání, k tomu slouží programátor ST-Link. Ovladač k němu, pro Windows by měl být ke stažení v obchodě (na eShopu), kde se prodává. Výhodou je, že pomocí něj se program nejen nahrává, ale umožňuje i plnohodnotné ladění. To je krokování a sledování obsahu paměti i registrů.

Seznam miniprojektů, návodů a modulů


Jak začít
Displeje LCD, 7-seg, indikátory
Rádia, VKV přijímače, čtení RDS
Přehrávače MP3, ovládáné přes UART
Čidla, snímače a jiné
Samostatné moduly

všeobecné informace

Všechny zde uváděné zdrojáky mají stejnou strukturu, jsou vytvořeny podle stejné šablony. Na prvním řádku každého zdrojáku musí být direktiva stm8/, jinak překlad skončí chybou. Program má inicializační část (SETUP), kde je nastaven vrchol zásobníku, je vynulována paměť ram, nastaví se rychlost CPU a proběhne základní nastavení použitého hardware, například UART, CPI, I2C, GPIO, atd. Vyhrazené piny pro UART, SPI, I2C a analogy jsou v této tabulce:
STM8S103F3P6

určení jednotlivých pinů
Napájení5V, 3V3 a zem GND
GPIOvšechny piny An, Bn, Cn, Dn
UARTTX=pin D5, RX=pin D6
SPIMISO=pin C7, MOSI=pin C6, SCK=C5, CS/SS=pin A3
I2CSCL=pin B4, SDA=pin B5
ANALOGA0=pin C4, A1=pin D2, A2=pin D3, A3=pin D5, A4=pin D6
ST-LINKpiny pro programátor SWIM a NRST

V nekonečné smyčce (LOOP) se pak provádi samotná činnost. Úplně na konci je tabulka vektorů přerušení v segmentu vectit s popisy, které zařízení může přerušení vyvolat.
U modulů, které jsem v rámci svých možností odladil a otestoval, jsem vytvořil prográmek, který lze formou copy-paste vytáhnout (buď celý, nebo pouze potřebné kusy kódu) a použít jej v nějaké Vaší aplikaci. Zkopírovat se musí potřebný kód, proměnné v paměti a deklarace konstant (equ).

Na stránkách výrobce ST Microelectronics je ke stažení vývojové prostředí ST Visual develop, utilita ST Visual Programmer a dále jsou zde velmí podrobné manuály v PDF (v angličtině) odledně popisu mikrokontroléru a jeho instrukčního souboru.

Dúležité upozornění: Zde presentovaný modul mikrokontroléru má výstupy 5V, 3V3 a GND. Na výstupu 5V ve skutečnosti není 5 voltů, ale vstupní napětí, kterým celý tento modul napájíte, buď přes piny +/-, nebo přes konektor mikroUSB, což může být 4.5 - 15V. Buďte opatrní, co k tomu pinu (5V) připojíte, připojovaný modul můžete tímto zničit. Doporučuji modul napájet výhradně z 5V zdroje.

Assembler byl vlastně první jazyk, na který jsem si v počítačovém šerém dávnověku "sáhnul", protože na sálovém stroji EC8540 (alias KA-10) jsme k dispozici nic jiného neměli.
nahoru

(c) 2026 iisivak (zavináč) iisivak.cz
SEO optimalizace Free prográmky a návody. Elektromyš Alfa Elchron Katalog web stránek Webatlas.cz CZIN.eu