Mikrokontroléry STM8 používají k programování a debugování 4 drátové rozhraní SWIM (Single Wire Interface Module). Jedná se o tzv ICSP (In Circuit Serial Programming), které jak název napovídá umožňuje programovat mikrokontrolér přímo v zařízení (což je dnes běžný standart) bez nutnosti ho vytahovat a vsazovat do programátoru. Kromě programování umožňuje i debugování s celou řadou funkcí o nichž bude řeč v některém z dalších dílů. Většinu mikrokontrolérů STM8 lze programovat i pomocí tzv. bootloaderu. To lze provádět i bez programátoru jen za pomoci USB-UART převodníku. Tato metoda ale neumožňuje debugování a je pro začátečníky nevýhodná a proto se jí dále nebude zabývat. Programátor/debugger se jmenuje St-link a máte minimálně tři způsoby jak si ho opatřit.
Koupit si originální St-link/V2 (např na Farnellu). Lze s ním programovat aplikace napájené napětím od 1.65V do 5.5V. Nelze z něj napájet programovaný mikrokontrolér, takže zdroj napájení musíte mít externí (což bývá v praxi běžné). Krom STM8 umí programovat i STM32. Z praxe můžu potvrdit že snese i občasné chybné zapojení. - OVĚŘENO
Koupit si čínský klon St-link/V2 v číně nebo v ČR třeba zde. Vyjde levněji než originální St-link. Umí programovat/debugovat aplikace s napětím 3.3V a 5V a umí cílovou aplikaci jedním z těchto dvou napětí i napájet - OVĚŘENO NA STM8S103
Koupit si některý vývojový kit STM8S Discovery (například STM8S VLDiscovery) a odpájením dvou jumperů, nebo odlomením (deska je na to připravená) si z něj vytvořit samostatný programátor/debugger. Umí programovat/debugovat aplikace s napětím 3.3V a nejspíš i 5V a umí cílovou aplikaci jedním z těchto dvou napětí i napájet. ST v dokumentaci kitů pro STM8S uvádí že je lze použít jen pro čipy rodiny STM8S. - OVĚŘENO (s STM8S Discovery)
Koupit si některý vývojový kit STM8L Discovery (například STM8L Discovery). Odpojením dvou jumperů z něj vznikne samostatný programátor/debugger. V dokumentaci se už o žádném omezení nemluví, takže by tato varianta měla být plně funkční pro všechny STM8.
Koupit si vývojový kit STM8 Nucleo-64 (např. NUCLEO-8S208RB). Odlomením části kitu (deska je k tomu připravená) nebo odpájením jumperů z něj lze vytvořit St-link/V2-1. Ten oproti všem předchozím řešením může nejen programovat/debugovat libovolný externí STM8, ale obsahuje i zabudovaný USB-UART převodník a zdroj 8MHz clocku. Programovací vývody si ale musíte připájet k SMD rezistorům (viz foto dále). - OVĚŘENO
Obstarat si originální St-link/V3. Umí programovat cílové aplikace v plném rozsahu napětí 1.65V až 5.5V. Kromě STM8 umí i STM32 a obsahuje zabudovaný USB-UART bridge. Je ale poměrně drahý. - OVĚŘENO (nutno propojit JP4 a JP6)
Jak vidno řešení je nespočet. Tuto sekci budu postupně doplňovat vždy když se mi některé z navrhovaných řešení podaří ověřit.
Připojení programátoru St-link/V2
Připojení programátoru z STM8S Discovery
Připojení programátoru z STM8S Nucleo
Klon programátoru St-link
/ ST Visual Programmer |
ST Visual Programmer (STVP) je počítačový program sloužící k základnímu ovládání programátorů (v našem případě St-linku). Umí zapisovat a číst a mazat program (tedy obsah flash paměti) i paměť EEPROM a konfigurovat takzvané "option bytes". Na obrázku jsou červeně zarámované "záložky", které nám umožňují sledovat obsah flash paměti (Program memory), EEPROM (Data memory) a "Option bytes". Skrze horní menu se můžeme dostat do okna "Configuration", kde volíme programátor, rozhraní a MCU se kterým chceme komunikovat. Programátor mám zvolený ST-LINK, komunikační rozhraní používáme SWIM a mikrokontrolér volíme v pravém sloupci (já testoval na STM8S103F3). Volbu mikrokontroléru lze provést i v roletkové nabídce v horní liště. Program využijete převážně na konfiguraci "Option bytes" o nichž bude řeč později. A případně na "test spojení" kdy budete chtít ověřit že máte programátor správně připojený. V takovém případě vyberete vhodné MCU, zvolíte si jednu ze záložek (doporučuji "Option byte") a stisknete Read->Current tab. Buď vše proběhne v pořádku a načte se zvolený obsah mikrokontroléru a nebo na vás vyskočí varovná hláška že se programátoru nepodařilo s mikrokontrolérem spojit. V takovém případě nejprve zkontrolujte zda máte správně a spolehlivě připojené všechny čtyři vodiče (VDD,GND,RST,SWIM). Pokud ano, zkontroluje zda má mikrokontrolér napájení (třeba voltmetrem). Tyto dvě situace tvoří 95% příčin kdy se nedaří s mikrokontrolérem spojit. Nic v "Option bytes" neměňte dokud tomu nebudete opravdu dobře rozumět. Zvláště ne ROP (Read Out Protection) a EXTCLK.
/ Vzorové zapojení |
Tahle sekce je pro opravdové začátečníky. Takže si na modulu s STM8S103F3P6 ukážeme zapojení. Modul musíme nějak napájet. Můžete buď připojit na vývod označený 5V napájení z vnějšího zdroje nebo modul zapojit pomocí USB kabelu (slouží jen jako napájení). V takovém případě je mikrokontrolér napájený napětím 3.3V přes stabilizátor (osazený zespod modulu). Na kratší hraně desky jsou vývody označené 3V3,SWIM,GND,RST. Ty nejprve propojte s programátorem a zkontrolujte správnost zapojení. Na pinu označeném 3V3 je napájecí napětí a připojuje se tedy na pin VDD programátoru.