Elektronika, ukázky pro STM8S103F3, plus programování v assembleru. |
|
Tato ukázka snaží demonstrovat použití seriové linky UART, kdy se příjem (RX) ukládá přes přerušení. Dále použití infrasnímače
pro dálkový ovladač a také základní způsob pro ukládání dat do eepromky čipu. Čip disponuje 640-ti bytes v EEPROM. Vše v assembleru.
Co se mi na assembleru líbí nejvíce, je jeho úspornost. Tento "projekt" zabírá celých 866 byte z 8kb prostoru pro kód a určitě by
šlo ještě něco ušetřit. Použité moduly:
Ovládání modulu přes infra je patrné z tabulky ve zdrojáku na konci. U jiného ovladače, než je zde, budou kódy tlačítek samozřejmě jiné. V tabulce je kod tlačítka, kod příkazu modulu mp3, zádost o potvrzení (0, nebo 1), parametr high a parametr low. Ostatní bajty odesílané pakety jsou napevno (0x7E, 0xFF, 0x06, příkaz, 0/1, param_hi, param_lo, 0xEF). Odesílání do modulu mp3 mi často vracelo chybu rámce, jakoby se nějaký ten bajtík ztratil. Dal jsem tedy mezi jednotlivé bajty krátkou prodlevu a přenosy byly rázem bez chyby. Modul mp3 asi po příjmu každého bajtu vykonává nějakou činnost a pak mu sem tam něco uteče. Proto nejspíš pomohla ta pauza.
Propojení modulů je velmi jednoduché, kromě napájení; infračidlo potřebuje jediný datový vodič a UART dva (rx, tx). K napájení použijte konektor mikro USB, který je na desce mikrokontroléru. Připojte jej k nějakému 5V (!) zdroji, například k USB nabíječce. V programu jsou aktivní tři přerušení. Od timeru4 podle potřeby, od UARTu při příjmu (RX) a od infrasnímače při stisku tlačítka. Použitý MP3 modul komunikuje binárně (ne v ascii) a má pevnou délku pakety s počáteční a koncovou značkou, což komunikaci usnadňuje. všeobecné informaceU 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
a dále jsou zde velmí podrobné manuály v PDF (v angličtině) odledně popisu mikrokontroléru a jeho instrukčního souboru.
Každý zde uváděný zdroják má stejnou strukturu. Na začátku jsou deklarace adres použitých systémových registrů (UART, I2C, GPIO...), což je klíčové. Tyto adresy jsou popsány
jednak v datasheetu STM8, a také jsou k dispozici ve zdrojovém kódu, který je nainstalován spolu s prostředím ST Visual develop ve složce
[Program Files]\ STMicroelectronics\ st_toolset\ asm\ include\ STM8S103F.asm). Asi je možné ji deklarovat jako include, ale zde jsou ve zdrojáku
definovány pouze ty, které jsou použity. Rychlý návod jak vytvořit nový projekt v prostředí ST Visual Dvelop:
Tím se vytvoří projekt. Na levé straně se objeví strom Workspace, kde ve větvi source files otevřete main.asm, které je hlavní zdroják
projektu. Je předvyplněn o počáteční definici segmentů a tabulku přerušení. Můžete jej vyčistit a pak do něj přes copy-paste (CTRL+A - CTRL+C -> CTRL+V) vložit některé s
zde uváděných mých (nebo Vašich) zdrojáků. Soubory mapping.asm a mapping.inc systém vytvořil automaticky a není doporučeno do nich zasahovat, protože systém je interně
přepisuje. Do téhož workspace můžete vkládat více projektů, každý však musí mít svou složku. Nahrání (vypálení) programu do modulu:
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. |
|
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.
(c) 2026 iisivak.xf.cz |