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


Velmi jednoduchý MP3 přehrávač

Serial MP3 Player

Serial MP3 Player

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.
Nepředpokládám, že by tohle někdo postavil a trvale používal. Je to však dobré jako příklad. Zdroják jsem se snažil okomentovat, aby byl co nejčitelnější. Snad se mi to alespoň trochu podařilo.

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.

schema

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é 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.


Vzkazník - dotazy, názory, připominky, hlášení chyb, atd:
případný E-mail nebude nikde zveřejněn, uveďte jej, pouze pokud si přejete odpověď.

Elektronika, ukázky pro Arduino a STM8, plus programování v Delphi (Lazarusu).
Všechna zapojení u návodů a ukázek ohledně elektroniky (viz 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.
nahoru   sitemap
tyto stránky jsou provozovány jako hobby, bez reklam a bez sběru osobních dat (c) 2026 iisivak.cz