Elektronika, ukázky pro STM8S103F3, plus programování v assembleru. |

|
Jak začít? Tím nejjednodušším. Modul mikrokontroléru STM8S103F3 je osazen interní led diodou, která je "pověšena" na pin B5 (port B bit 5). Takže se pokusím předvést prográmek, který ji rozbliká.
K programování, vypalování a ladění STM8 je potřeba mimo samotného modulu mikrokontroléru, těchto pár věcí:
Kromě programátoru ST-Link (cena kolem stokoruny) je vše ostatní zdarma. Programátor stačí mít pouze jeden, po vypálení programu do čipu a po případném odladění vypáleného kódu se může odpojit. Stažení vývojového prostředí ST Visual Develop a utilita ST Visual Programmer možná podléhá nějaké registraci, nicméně ta je zdarma. Jak vytvořit projekt ve vývojovém prostředí ST Visual develop::
Tím se vytvoří projekt ve stromové struktuře viz obrázek "workspace". Pokud se vám toto okno (viz obrázek vlevo) nezobrazí, rozbalte hlavní menu-view a klikněte na "workspace". V projektu jsou
automaticky vygenerovány dva krátké zdrojáčky mapping.asm a mapping.inc..
Definují konkrétní adresy segmentů v paměti pro zde použitý modul STM8S103F3P (viz tabulka níže). Nedoporučuji tyto dva soubory nějak měnit, nebo do nich přidávat vlastní kód.
Systém je totiž přepisuje. Ukázkový program zde je velmi jednoduchý a vystačí si pouze se dvěma segmenty - ram0 a rom.Ke vkládání kódu je určen soubor main.asm. Když jej otevřete, je předvyplněn defaultním kódem, který celý vymažte a místo něj tam vložte přes copy-paste níže uvedený zdroják a vše uložte. Rozbalte hlavní menu File a dejte Save Workspace a potom Save TextFile. U rozsáhlejších projektů, což není tento případ, je možné do větve "Source Files" přidávat další .asm soubory, jako jsou různé samostatné moduly a podobně. Další podrobnosti jsou k dispzici v manuálech výrobce. Každý program musí mít inicializační část (SETUP), kde jsou definovány adresy segmentů a je nastaven vrchol zásobníku. Toto především. Pak je vynulována paměť ram, nastaví se rychlost CPU a proběhne základní nastavení použitého hardware (systémových registrů). V tomto příkladu je to GPIO input/output, ale může zde být nastavení UARTu, sběrnice SPI, nebo I2C, timerů, atd. K tomu slouží systémové registry, což je vlastně adresa, se kterou se pracuje úplně stejně jako s pamětí. Může se číst i zapisovat, nahazovat jednotlivé bity a podobně. Tyto adresy jsou popsány v datasheetu STM8S103F3 v kapitole 6.2 Register map. V nekonečné smyčce (LOOP) se pak provádi samotná činnost, zde blikání LED. Je to velmi podobné klasickému Arduinu. Překlad a sestavení: Po vložení zdrojáku pro blikání (do main.asm) je projekt nutno přeložit: hlavní menu-Build-Compile, nebo tlačtkem "přeložit" na nástrojové liště, viz obrázek. Pokud překlad proběhne bez chyby, je nutné projekt sestavit: hlavní menu-Build-Build, nebo tlačítkem "přeložit a sestavit", viz stejný obrázek. Tím se na disku vytvoří soubor s příponou .s19, který je již možně vypálit do mikrokontroléru.
Nahrání (vypálení) do čipu:
K nahrávání a ladění programu do vývojové desky STM8S103F3 je nutný programátor ST-Link. K tomu jsou určeny čtyři piny na vývojové desce vpravo: 3V3, SWIM, GND a NRST
(propojení viz tabulka vpravo).Již přeložený a sestavený projekt se přímo z prostředí "ST Visual Developu" nahraje spuštěním debuggeru z buď z hlavního menu Debug-Start debugging, nebo tlačítkem na nástrojové liště viz obrázek. Tím se projekt nahraje (vypálí), naskočí okno debuggeru, projekt můžete buď spustit (F5), nebo krokovat (F10). Vypálit program do STM8 se dá i pomocí ST Visual Programmer, pokud máte k dispozici
Pozor: pokud se během nahrávání do čipu objeví chybová hláška "The device is protected" je čip uzamčen pro zápis a je třeba jej odemknout. Výrobce totiž některé moduly STM8 z nějakého důvodu uzamknul proti zápisu a nešlo by tedy do něj nahrávat kód. Odemčení pro zápis zároveň vymaže paměť ROM, nedá se tedy normálně zjistit, co tam původně bylo. Slouží to jako ochrana software. Zdrojový kód blikačePokud Vám bude kód blikače připadat nějaký složitý, je to jen zdání. Většina kódu se v každém projektu opakuje, což jsou definice segmentů, deklarace konstant, inicializace zásobníku, vynulování paměti RAM a také tabulka vektorů přerušení viz šablona projektu. Samotný výkonný kód pro blikač má všeho všudy dvanáct řádků, viz hlavní smyčka LOOP. Proměnné a konstanty ve zdrojáku jsou pouze ilustrační a v programu jinak použity nejsou. Pouze ukazují, jakým způsobem se deklarují. Proměnné jsou v segmentu ram0 a konstanty v segmentu rom. Seznam možných paměťových segmentů, viz tabulka níže. Pokud se překlad a nahrání programu do čipu povedlo, interní ledka začne blikat v rychlém rytmu. Šablona pro nový projektpro vytváření vlastních projektů
Vzhledem k tomu, že každý program má více-méně stejnou strukturu, to je inicializační část (SETUP) a výkonnou část (LOOP), dá se vytvořit jakási univerzální šablona programu.
V inicializační části se definují adresy segmentů, nastaví se vrchol zásobníku, vynulují se paměťi RAM a nastaví se tabulka vektorů přerušení. Toto se může převzít beze změny 1:1. V šabloně je
ještě nabídnuta rychlost CPU na 2MHz, což se dá změnit, maximální rychlost je 16MHz, viz
Reference manual kapitola 9).
Segmenty paměti RAM, ram0 a ram1 neobsahují nic, jsou jen připraveny k definování proměnných. Deklarovat proměnné můžete v obou, nebo pouze v jednom. Výrobce tvrdí, že přístup
do ram0 je rychlejší, protože se adresuje jediným bajtem (adresy 0x00 až 0xFF). Přílohyobrázky a tabulkyObrázek 1, vývojové prostředí ST Visual Develop
Tabulka 1, paměťové segmenty pro STM8S103F3:
Tabulka 2, manuály výrobce
Na stránkách výrobce ST Microelectronics jsou ke stažení kromě vývojového prostředí ST Visual develop
i velmí podrobné manuály v PDF (v angličtině) odledně popisu mikrokontroléru, instrukčního souboru a popisu jazyka.
Obrázek 2, modul mikrokontroléru STM8S103F3P
Tabulka 3, jak vytvořit nový projekt v prostředí ST Visual Develop:
Tabulka 4, jak vložit nový projekt do existujícího workspace v prostředí ST Visual Develop:
Tabulka 5, jak odenknout STM8 uzamčený pro zápis:
Tabulka 6, automaticky generovaný zdroják mapping.inc:
Tabulka 7, automaticky generovaný zdroják mapping.asm:
| ||||||||||||||||||||||||||||||
|
Elektronika, ukázky pro Arduino a STM8, plus programování v Delphi (Lazarusu).
Všechna zapojení modulů v ukázkách (viz elektrická schémata) pracují s velmi malým napětím 3.3V až 12V a neobsahují návod na napájecí zdroj. Pokud se rozhodnete některé z těchto
zařízení postavit, důrazně doporučuji používat zdroje s výstupním napětím maximálně 12V, podle schválených norem platných v ČR. Autor návodů za případné škody nepřebírá žádnou odpovědnost.
tyto stránky jsou provozovány jako hobby, bez reklam a bez sběru osobních dat (c) 2026 iisivak.xf.cz
|