Referenční manuál
U každého MCU, které programujete, je důležité mít po ruce referenční manuál. Pro vývojáře softwaru je to podobně důležitý dokument jako datasheet pro člověka, který navrhuje zapojení.
Datasheet vám řekne, jaký má čip napájecí rozsah, kde má vývody, kolik proudu snese pin nebo jaké funkce může mít konkrétní pin. Referenční manuál jde víc dovnitř čipu. Popisuje hlavně periférie a registry, tedy místa v paměti, kterými program říká hardwaru, co má dělat.
Není to knížka na čtení od první do poslední stránky. Spíš je to technický telefonní seznam pro křemík. Když víte, co hledáte, je skvělý. Když ho otevřete jen tak večer před spaním, pravděpodobně usnete dřív než procesor.
Kde ho najít
ATtiny dnes patří firmě Microchip. Nejlepší zdroj dokumentace je proto přímo web výrobce:
Nejjednodušší postup je vyhledat přesný název čipu, například ATtiny202,
ATtiny404 nebo ATtiny1604.
Na stránce konkrétní součástky bývá část Documents nebo Documentation,
kde najdete PDF soubory.
Pro čip, který používáme v příkladech,
je dobrý výchozí bod stránka
ATtiny1626 na webu Microchipu
a přímo také PDF
ATtiny1624/1626/1627 Data Sheet.
U novějších ATtiny bývá dokumentace často rozdělená na více částí:
Manualpopisuje věci společné pro celou řadu čipů.Data Sheetpopisuje konkrétní čip, jeho vývody, paměť, počet periférií a elektrické vlastnosti.Erratapopisuje známé chyby čipu.
Vždycky hledejte i přesný typ čipu.
ATtiny je celá rodina, ne jedna konkrétní součástka.
ATtiny85, ATtiny202 a ATtiny1604 se mohou programovat podobně,
ale registry a periferie nemusí mít stejné.
Jak v manuálu hledat
Manuál mívá stovky stran. To není proto, aby vás výrobce potrestal za zájem o elektroniku. Je tam prostě popsáno hodně malých detailů. Při práci se skoro nikdy nečte celý dokument. Hledá se konkrétní informace.
Nejužitečnější nástroj je obyčejné Ctrl+F.
Hledejte hlavně názvy periférií a registrů:
PORTneboVPORT, když řešíte vstupy a výstupy.PIN, když řešíte stav konkrétního pinu.CLKCTRL, když řešíte hodiny procesoru.TCA,TCBneboTimer, když řešíte časovače.ADC, když měříte analogové napětí.USART,SPIneboTWI, když řešíte komunikaci.
Když nevíte přesný název, začněte obsahem dokumentu. Většina manuálů má kapitoly podle periférií. Například kapitola o portech popisuje digitální vstupy a výstupy, kapitola o hodinách popisuje rychlost procesoru a kapitola o přerušeních popisuje, jak může hardware přerušit běžící program.
Jak ho číst
Nejdřív si vždycky přečtěte krátký úvod kapitoly. Ten obvykle vysvětluje, k čemu periférie slouží. Teprve potom má smysl jít do tabulek registrů.
U registru sledujte hlavně tři věci:
- Název registru, například
PORTA.DIR. - Význam jednotlivých bitů.
- Co znamená hodnota
0a co znamená hodnota1.
Například registr směru pinu často funguje tak,
že bit nastavený na 1 znamená výstup
a bit nastavený na 0 znamená vstup.
Tohle ale nikdy netipujte podle pocitu.
U jiného registru může stejná jednička znamenat úplně jinou věc.
Manuál je v tomhle rozhodčí.
Tabulka registru většinou ukazuje bity od nejvyššího po nejnižší.
Bit 7 je vlevo, bit 0 je vpravo.
Když tedy nastavujete třetí bit, nehledáte třetí políčko zleva,
ale bit s číslem 2.
Počítače začínají počítat od nuly, proto má 3. bit pořadové číslo 2.
Jak informace použít v programu
Z manuálu se do programu nic bezmyšlenkovitě neopisuje. Manuál není zásobník hotového kódu, ale návod k hardwaru. Úkol programátora je pochopit, které nastavení potřebuje, a potom ho zapsat vlastním kódem.
Při práci si hlídejte hlavně tyto informace:
- název registru,
- číslo bitu,
- význam hodnot
0a1, - případné pořadí kroků, pokud ho manuál vyžaduje.
Některé periferie totiž nestačí jen zapnout. Musí se nastavit ve správném pořadí. Třeba nejdřív vypnout ochranu zápisu, potom změnit registr a až potom periférii spustit. Když pořadí nedodržíte, čip se neurazí. Jen nebude dělat to, co chcete.