První díl vám napoví, jak získat vývojové prostředí, jak jej nainstalovat a následně nastavit. Pak bude vše demonstrováno na jednoduchém programu v C, která klasicky zabliká LED. Zkrátka, je to popis jak na první praktické kroky s STM8S Discovery kitem, o kterém zde již byl článek. Autorem článku je kolega Drobek - děkujeme!

Úvod

Pro práci budeme potřebovat vývojové prostředí ST Toolset (skládá se z ST Visual Develop a ST Visual Programmer) a C compiler od Raisonance, odkazy ke stažení jsou ke konci článku.

Nejdůležitější pomůckou pro práci je Referenční manuál (reference manual), ke stažení na webu st, odkaz na konci článku.

Potřebným hardware je PC, discovery kit a USB A-B kabel, který není součástí kitu + jedno tlačítko.


ST Visual Develop

Po stažení a nainstalování všech součástí spustíme ST Visual Develop a založíme nový workspace. Konkrétně „Create workspace and project„. Situace je znázorněna na následujícím obrázku.





Pojmenujeme workspace a přejdeme k založení projektu. Pojmenujeme i projekt a vybereme kompilátor (Raisonance) a pokud cesta není automaticky předvyplněna, zadáme ke kompilátoru i cestu.





V tuto chvíli se mi pokusí o instalaci nějakého balíčku, který nemám, nevím jestli to je jen můj problém, ale stačí instalátor stornovat a vše je OK a funkční. Vybereme správný typ mcu (STM8S105C6) a znovu stornujeme otravný instalátor.






Nyní je třeba nastavit kompilátor, aby věděl, kde má hledat knihovny a další soubory, které přidáme pomocí #include. Takže: Tools/Options a tam záložku Directories a zadáme cesty ke složkám. Pak si již můžeme v levé části obrazovky najít main.c a napsat si svůj první program.






První program - nastavení hodin

Znovu v levé části, ve složce external dependencies najdeme v *.h soboru jak se označují registry a ve spolupráci s reference manualem nastavíme hodiny.
STM8S má velice robustní modul pro řízení hodinového signálu, který umožňuje měnit zdroj hodin za běhu MCU. Jsou tu dvě cesty, automatická a manuální, nám bude pro začátek stačit automatická.
Procesor má tovární nastavení hodin, které platí vždy po restartu, dokud jej nezměníme softwarově. K tomu slouží dva registry . Switch control register (CLK_SWCR) a Clock master switch register (CLK_SWR). Nejprve je třeba povolit změnu hodin – nastavením bitu SWEN uvnitř registru SWCR.
Výběr zdroje hodin probíhá zapsáním čísla do SWR. Jednotlivá čísla jsou uvedena v reference manual. Děličku nevyužijeme a jádro poběží na 16MHz externí krystal.
S hodinami toho jde udělat více a je to velmi dobře popsáno v reference manualu, ale pro první pokusy toto bude stačit.


Nastavení GPIO

Práce s GPIO je podobná jako u konkurenčních AVR. Základem je několik registrů:

Port x output data register (Px_ODR) – slouží pro zapsání dat na port

Port x pin input register (Px_IDR) – čtení dat z portu

Port x data direction register (Px_DDR) - nastavení vstupní/výstupní

Port x control register 1 (Px_CR1) a Port x control register 2 (Px_CR2) – nastavují různé funkce v závislosti, jestli jde o vstupní nebo výstupní piny, viz následující tabulka.





Na discovery kitu je LED připojena na PD0. Tlačítko jehož stav čteme může svádět k připojení na PD1, to ale nedělejte, tam je přiveden SWIM signál.


Zdrojový kód

Následující program jen nastaví hodiny a podle tlačítka zhasíná LED.

#include "STM8S105C6.h"

void main(void)
{
//Nastaveni zdroje hodin na externi krystal
        CLK_SWCR |= (1<<1); //Povoleni zmeny hodin - nastavi bit SWEN
        CLK_SWR = 0xB4; //Volba zdroje hodin

//Nastaveni portu D
        PD_DDR = 0x01; //Pin 0 jako vystupni
        PD_CR1 = 0x05; //Volba rezimu jednotlivych pinu - vystupni pushpull, vstupni pullup

        while (1)
        {
                if ((PD_IDR & 0x04)==0x00)
                {
                        PD_ODR = 0x01;
                }
                else
                {
                        PD_ODR = 0x00;
                }
        }
}



Na příslušné piny připojíme tlačítko, klikneme na rebuild all a pak už jen debug, a můžeme odkrokovat celý program. Zde mne opět otravuje ten instalátor, pokud víte jak se toho zbavit, nebo s ním problém nemáte, tak prosím o tip co s tím do komentářů. Všechny příkazy pro debugování najdeme v záložce Debug a pokud se chceme podívat co se děje v registrech tak to zase najdeme v záložce View.

Samozřejmě je možné procesor naprogramovat i bez debugování, k tomu slouží ST Visual Programmer, který je součásti toolsetu. Ovládání je intuitivní, jako typ programátoru zadáme ST-Link.


Odkazy

Zdrojový kód k dispozici: project.zip
Raisonance 16K C compiler
ST Visual Develop IDE naleznete na http://www.st.com/internet/evalboard/product/210568.jsp stránce.
ST Visual Programmer
Referenční manuál v pdf podobě je ke stažení zde.
Další věci si můžete stáhnout z webu ST zde.


Článek zaslal: Drobek