Základy MCU

05.04.2022 Embedded systémy #mcu #embedded

Tento článek popisuje základy mikrokontroléru spolu s jeho funkcí, aplikacemi, výhodami a nevýhodami.


Nositelná zařízení a desítky aplikací pracujících v reálném čase používají pro svůj základní návrh celého zařízení mikrokontrolér. A v dnešní době je téměř každé elektronické zařízení dodáváno s mikrokontrolérem.

Většina embedded aplikací využívá k provádění výpočetních operací a booleovských funkcí jednotku mikrokontroléru (MCU).

Co je mikrokontroler?

Mikrokontrolery jsou jedno-čipové počítače, které jsou určeny zejména pro řízení a automatizaci strojů a procesů [1, s. 4]. Mikrokontrolerem je malé zařízení, které provádí vyhrazené úkoly zadané uživatelem. Úkoly mohou souviset s normálními výpočty, jako je sčítání, odčítání, dělení a matematika s plovoucí desetinnou čárkou. V některých případech jsou často označovány jako „mikropočítače na čipu“. Stavebními kameny mikrokontroleru jsou procesor, paměť a periferní zařízení [2]. Jsou to v podstatě jednoduché miniaturní osobní počítače určené k ovládání malých funkcí větší komponenty bez složitého front-end operačního systému [3].

Pro řešení projektu autonomního kurníku, hrají mikrokontrolery zásadní roli. Tvoří jádro pro ovládání všech senzorů a aktualizátorů, proto je nutné jim věnovat větší pozornost. Na základě objasnění principů a součástí mikrokontrolerů bude zvolen odpovídající typ, který pokryje definované potřeby.

Architektura

MCU se skládá z podpůrného hardwaru, jako je CPU, hodiny, krystalový oscilátor, paměť a hardwarové periferie interně připojené – Obr. 1. [3]

Procesor – v podstatě je CPU centrální částí mikrokontroleru. Je to mozek, který následuje akci zadanou uživatelem. CPU načte instrukci z paměti (ROM), dekóduje ji a provede. Tato technika je známá jako pipelining. Zřetězení se provádí pomocí datové sběrnice a adresové sběrnice. CPU zpracovává instrukce rychlostí MegaHertz (MHz) nebo GigaHertz (GHz).

Hodiny – MCU vyžaduje hodiny k provedení jakékoli úlohy. Pro zajištění hodin mikrokontroleru je k CPU buzen krystalový oscilátor. Výběr krystalu určuje rychlost, se kterou chce mikrokontroler pracovat. Frekvenční rozsah krystalového oscilátoru je obecně v rozsahu MHz.

Registry – je prvek, který uchovává data. Ukládá binární slovo o délce 8 bitů. Mikrokontrolery jsou vybaveny různými obecnými a periferními registry. Mezi obecné registry patří PC a ukazatel zásobníku pro ukládání dat a instrukcí. Zatímco periferní registry jsou užitečné pro konfiguraci hardwaru v mikrokontroleru.

Vstupně-výstupní porty (I/O porty) - se běžně nazývají porty GPIO (General purpose Input output). To znamená, že tyto porty mohou být použity jako vstupní nebo výstupní. Některé mikro MCU podporují alternativní GPIO. Mohou být použity pro více funkcí. Jsou vyžadovány pro připojení externích zařízení, jako jsou rozhraní displeje (LED, LCD a dotyková obrazovka), motory atd. I/O porty se také používají pro účely snímání vstupu a přepínání.

Paměť – paměť je dvou typů (RAM a ROM). RAM je pro dočasné ukládání dat a ROM  je pro trvalé ukládání. Pro uložení dat v mikrokontroleru je architektura procesoru rozdělena na architekturu Harvard a Von-Neumann. Harvard má samostatné paměťové sběrnice (adresová sběrnice a datová sběrnice) pro ukládání instrukcí a dat, zatímco Von-Neumann má společnou paměť pro instrukce i data [1, s. 9].

Časovače – jsou nejinovativnější periferie, které mohou produkovat přesné časové zpoždění. Může opakovat předem definovaný úkol ve známém časovém období. Některé z aplikací časovače zahrnují ovládání motoru, zapínání/vypínání reléového obvodu, GPS, ovládání domácích spotřebičů atd.

Čítač – je periferní zařízení, které počítá události probíhající mimo MCU. Aplikace čítačů zahrnují měření pulsů, detekci objektů atd. Používají se při měření frekvence, k počítání nárůstu nebo poklesu teploty v mikrovlnných troubách, k měření nastaveného času v pračkách a elektrických ohřívačích.

Sériová rozhraní – v elektronice spolu různá zařízení mluví pomocí sériové komunikace. K dosažení sériové komunikace se používají rozhraní jako UART, I2C a SPI atd. Kromě toho se v nejnovějších mikrokontrolerech používají pokročilé protokoly jako Ethernet, USB.

Analogově digitální převodník – senzory převádějí fyzikální parametry, jako je teplota, vlhkost a tlak, na analogové signály. ADC převádí tento analogový signál na digitální bajty. Analogové signály mohou být ve formě napětí, proudu nebo odporu. Má vnitřní hodiny, které měří taktovací cykly napájené MCU a vzorkují vlastními hodinami. Počet hodinových cyklů představuje digitální reprezentaci analogového napětí.

Digitálně analogový převodník – je opakem ADC. DAC převádí digitální data na analogovou formu napětí. Některé z aplikací DAC zahrnují digitální zpracování signálu, ovládání motoru, hudební přehrávače, digitální potenciometr atd.

Přerušení – je událost, která přichází do hry, aby provedla více než jeden úkol. Když je voláno přerušení, mikrokontroler zastaví aktuální provádění úlohy (první úloha) a provede další úlohy (druhá úloha). Po dokončení druhého úkolu se vrátí k prvnímu úkolu a provede normální operace.

Kromě toho mikrokontroler řídí, zpracovává a ukládá informace do paměti. Velikost paměti se liší pro různé rodiny mikrokontrolerů.

Jak funguje

Po zapnutí napájení krystalový oscilátor spouští hodinové impulsy a generuje frekvenci. Po nějaké době se oscilátor stabilizuje.

Nyní mikrokontrolér začne pracovat z programového čítače (PC). Adresa programového čítače je uložena v paměti ROM. PC uloží adresu další instrukce, která má být provedena. Provádí instrukce od počáteční adresy (0x00) programového čítače. Tato adresa je odeslána do instrukčního dekodéru, který instrukce pochopí a dokončí.

Jiný pohled

Vzhledem k tomu, že mikrokontrolér je ve skutečnosti jednoduchý minipočítač vložený na jediném integrovaném čipu, vyžaduje mnoho stejných základních komponent jako větší a složitější počítač - Obr. 2. – základní blokové schéma mikrokontroleru [4, s. 4].

Mezi základní součásti mikrokontroleru patří:

CPU (Centrální procesorová jednotka). Tato součást je v podstatě mozkem mikropočítače a je mikroprocesorem, který řídí a monitoruje všechny procesy probíhající uvnitř MCU. Je zodpovědný za čtení a provádění všech prováděných logických a matematických funkcí

RAM (Random Access Memory). Dočasné úložiště, které se používá pouze při zapnutí, aby pomohlo spouštět a vypočítat programy, které má MCU provést. Během používání se neustále přepisuje.

ROM (paměť pouze pro čtení). Toto je předem zapsaná permanentní paměť, která přetrvává i bez napájení. Na požádání v podstatě instruuje MCU, jak provádět své programy

Interní oscilátor (hlavní časovač MCU). Tato součást funguje jako základní hodiny mikrokontroléru a řídí rytmy provádění jeho vnitřních procesů. Stejně jako jakýkoli jiný druh časovače sledují čas, který uplyne během daného procesu, a pomáhají MCU zahájit a ukončit specifické funkce v určených intervalech.

I/O porty (vstupní/výstupní). Jedná se o jeden nebo více komunikačních portů, obvykle ve formě spojovacích pinů. Umožňují propojení MCU s dalšími součástmi a obvody pro tok vstupních/výstupních datových signálů a napájení.

Čipy periferního ovladače (další volitelné příslušenství a komponenty). Ty jsou závislé na úkolu, který má MCU provést. Může to být cokoli od různých přídavných časovačů a čítačů až po uzly s pulzně šířkovou modulací (PWM), analogově-digitální převodníky, digitálně-analogové převodníky, moduly pro sběr dat, flash a programovou paměť, další možnosti I/O a mnohem víc.

Všechny uvedené komponenty jsou však na mikrokontroleru mnohem omezenější jak co do rozsahu, tak kapacity než srovnatelný SoC v osobním počítači [6].

Často dochází k nejasnostem ohledně toho, co přesně definuje mikrokontroler vs. mikroprocesor nebo systém na SoC. Stručně řečeno, mikrokontroler je zjednodušená verze SoC s jedním úkolem. Ačkoli MCU technicky obsahuje CPU nebo procesor jako součást svého integrovaného obvodu, je to mnohem zjednodušená verze. Tento mikroprocesor se sníženou spotřebou efektivně funguje jako jednoduchý CPU nebo mozek pro jednotku mikrokontroleru, což dává MCU základní schopnost plnit svou jedinou naprogramovanou roli.

Pokud jde o stanovení dalších klíčových rozdílů mezi mikroprocesorem a mikrokontrolerem, nejjednodušší pohled je z hlediska komponent. Skutečný mikroprocesor neobsahuje žádnou paměť (RAM nebo ROM) ani I/O porty a může fungovat pouze jako součást širších vestavěných systémů. Instrukční sady, které říkají samostatnému mikroprocesoru, jak provést danou funkci, jsou obecně uloženy externě. V mikrokontroleru jsou všechny tyto různé komponenty – včetně zjednodušeného procesoru – spojeny do jediné samostatné jednotky [4].

Mikrokontroléry

  • Jsou zcela samostatnou jednotkou, která obsahuje velmi jednoduchý CPU nebo mikroprocesor.
  • Používají se pro jednu konkrétní aplikaci, jak je předem naprogramováno uživatelem.
  • Nejsou zvláště výkonné z hlediska výkonu; typicky odebírají pouze malé množství energie a obsahují málo z hlediska kapacity integrovaného úložiště dat.
  • Musí být naprogramován operátorem, aby vykonával jakoukoli smysluplnou roli.
  • Nemohou pracovat mimo jejich specificky naprogramované poslání (kód napsaný pro ně – a jeho kvalita – zcela určí jejich výkon).
  • Obecně jsou určeny pro použití ve specifických zařízeních nebo zařízeních navržených k opakovanému provádění jednoho úkolu [5].

Mikroprocesory

  • Jsou mnohem složitější a všestrannější, pokud jde o rozsah funkcí, a jsou určeny pro použití v obecnějších počítačích (na rozdíl od specializovaných jednoúlohových zařízení).
  • Mají mnohem rychlejší procesor (takty) než MCU, často měřené v gigahertzích (GHz) spíše než Hz.
  • Jsou náročné a drahé na výrobu, na rozdíl od relativně jednoduchých a levných mikrokontrolerů.
  • Vyžaduje mnohem více externích komponent (RAM, I/O porty, datové úložiště, EEPROM nebo flash paměť), z nichž žádná není integrována do MP a je nutné je zakoupit a připojit samostatně.
  • Mají podstatně vyšší spotřebu energie a jsou následně mnohem méně nákladově efektivní při nepřetržitém provozu [5].

Na základě poměrně rozsáhlé teorie zabývající se rozdíly mezi mikrokonrolerem a mikroprocesorem je zcela patrné, že pro realizaci řídícího systému je vhodné použít právě MCU. Je jenom otázkou jaký, aby pokryl potřeby chladícího systému.

Proč nepoužít mikroprocesor?

Rozdíl mezi mikrokontrolery a mikroprocesory se stal méně zřetelným, protože hustota a složitost čipu se stala relativně levnou na výrobu a mikrokontrolery tak integrovaly více funkcí „obecných počítačů". Celkově však lze říct, že mikrokontrolewry fungují užitečně samy o sobě, s přímým připojením k senzorům a akčním členům, kde jsou mikroprocesory navrženy tak, aby maximalizovaly výpočetní výkon na čipu, s interními sběrnicemi (spíše než přímými I/O) na podporu hardwaru, jako je RAM a sériové porty [29]. Přestože se mnohdy jeví, že mikrokontroler a mikroporocesor jsou stejným zařízením a někteří výrobce je i takto zaměňují, je vhodné uvést jejich rozdíly – Tabulka 1 [2].

Mikrokontroler Mikroprocesor
Využívá malý mikroprocesor, který běží na nižší frekvenci Využívá univerzální centrální procesorovou jednotku (CPU), která běží na vyšší frekvenci
Pomalá rychlost provozu Rychlejší v operacích.
Uvnitř jsou přítomny všechny periferie (časovač, čítač, rtc). Některé součásti jsou mimo mikroprocesor.
Podporuje booleovské operace Nepodporují booleovské funkce.
Přístup k registrům CPU vyžaduje méně času. Přístup k registrům CPU vyžaduje více času.
Většinou se používá v aplikacích v reálném čase. Používá se v osobních počítačích a noteboocích.
Podporuje RTOS (operační systém v reálném čase). Podporuje RTOS a služby založené na jádře.
Příklady: 8051, PIC, MSP430, Renesas, mikrokontrolér STM atd. Příklady: X86, Motorola, Broadcom, Pentium atd.
Vhodné pro provádění bitových operací. Nepodporuje všechny typy bitových operací.
Ne vždy podporují multi-tasking. Nejlépe se hodí pro multitasking.
Levnější Vysoká cena

Na základě srovnání v tabulce je patrné, že hlavní výhody MCU jsou nižší cena a velikost. Propojení periferií se zjednodušší pomocí I/O portů. Rychlost provádění požadovaných operací v rámci opakujících se instrukcí je rychlejší. Chceme-li ve své aplikaci použít jiný mikrokontrolér než procesor, potom klíčové výhody jsou:

  • Ideální pro specializované aplikace.
  • Jednorázově programovatelné.
  • Minimalizace času pro vývoj aplikace.
  • Praktická pozorování lze provádět pomocí simulátoru a emulátoru.
  • Snadné navrhování a nasazení.

Na druhou stranu jejich velkou nevýhodou je, že nejsou schopny odolat vysokému napětí. Kromě výše uvedeného mají omezené množství paměti RAM a nejsou vhodné k provádění paralelních úloh současně.

Výběr mikrokontroleru je ovlivněno celou řadou parametrů. Odborníci uvádějí, že kritéria výběru zahrnují následující otázky:

  • Jaké hardwarové periferie jsou vyžadovány?
  • Je potřeba externí komunikace?
  • Jaká architektura by měla být použita?
  • Jaký druh komunity a zdrojů jsou pro mikrokontroler k dispozici?
  • Jaká je dostupnost mikrokontroleru na trhu?

Také by se mělo vzít v úvahu rozhraní MCU a kolik paměti mají MCU, jeho rychlost a spotřebu energie [7].

Základní použití mikrokontroleru pro měření a řízení

Systémy měření a řízení jsou široce používány v systémovém inženýrství. Jsou všudypřítomné a nepostradatelné v digitálním věku, používají se ke sběru dat (měření) a automatizaci akcí (kontrola). Meteorologické stanice například měří teplotu, srážky, vítr a další parametry prostředí. Data lze ručně interpretovat pro lepší rozhodnutí o řízení farmy, jako je regulace průtoku a tlaku pro zavlažování pole. Systémy měření a řízení jsou také součástí základů nejnovější technologie internetu věcí (IoT), ve které lze zařízení vzdáleně sledovat a ovládat přes internet.Klíčovou součástí systému měření a regulace je mikrokontrolér.

Systémy měření a regulace

Jak je znázorněno na obrázku 3. [8], signály mohou být generovány mechanickými akčními členy a měřeny senzory, například napěťový signál ze senzoru průtoku. Signál je pak přiváděn do centrální řídicí jednotky, jako je mikrokontrolér, pro zpracování signálu, analýzu a rozhodování. Chceme-li například zjistit, zda je průtok v požadovaném rozsahu nebo ne mikrokontroler vydá signál pro ovládání pohonu, např. nastavení otevření ventilu a nebo současně zobrazení stavu systému uživatelům. Poté se pohon znovu změří. To tvoří nekonečnou smyčku, která běží nepřetržitě, dokud není přerušena uživatelem nebo vyprší časový limit. Pokud se na systém podíváme z hlediska signálu, signál generovaný akčními členy a měřený senzory jsou obvykle analogové signály, které jsou spojité a nekonečné. Často jsou předem zpracovány tak, aby byly zesíleny, filtrovány nebo převedeny do diskrétního a konečného digitálního formátu, aby mohly být zpracovány centrální řídicí jednotkou. Pokud aktuátor přijímá pouze analogové signály, je třeba výstupní signál pro ovládání aktoru z centrální řídicí jednotky převést zpět do analogového formátu. Centrální řídicí jednotka hraje klíčovou roli v měřicí a regulační smyčce. Mikrokontroler je jednou z nejčastěji používaných centrálních řídicích jednotek.

Software a programování mikrokontrolérů

Konkrétní funkce mikrokontroleru závisí na jeho softwaru nebo na tom, jak je naprogramován. Programy jsou uloženy v paměti. Připomeňme, že CPU může provádět pouze binární kód nebo strojový kód a provádí operace nízké úrovně, jako je přidání čísla do registru nebo přesun hodnoty registru do paměťového místa. Je však velmi obtížné napsat program ve strojovém kódu. Proto byly v průběhu let vyvíjeny programovací jazyky, aby bylo programování pohodlné. Nízkoúrovňové programovací jazyky, jako je jazyk symbolických instrukcí, se nejvíce podobají strojovému kódu. Jsou typicky hardwarově specifické a nejsou zaměnitelné mezi různými typy mikrokontrolérů. Programovací jazyky na vysoké úrovni, jako je BASIC, C nebo C++, bývají obecnější a lze je s drobnými úpravami nasadit mezi různé typy mikrokontrolerů.

Programovací jazyky pro konkrétní mikrokontroler určuje výrobce mikrokontroleru. Programovací jazyky na vysoké úrovni jsou v dnešních mikrokontrolerech dominantní, protože jsou mnohem snazší se je učit, interpretovat, implementovat a ladit. Programování mikrokontroleru často vyžaduje odkazy na manuály, návody a aplikační poznámky od výrobců.

Mikrokontrolery jsou snadno pochopitelné a snadno použitelné v aplikacích reálného světa se senzory a akčními členy. Příkladem může být platforma Arduino. Programovací jazyk mikrokontrolerů Arduino je založen na jazyce zvaném Processing, který je podobný C nebo C++, ale je mnohem jednodušší (https://processing.org/). Kód lze upravit pro jiné mikrokontrolery. Aby bylo možné převést kódy z vysokoúrovňového jazyka na strojový kód, který má být vykonáván specifickým CPU, nebo z jednoho jazyka do jiného jazyka, je nutný počítačový program zvaný kompilátor.

Programy mohou být vyvíjeny uživateli v integrovaném vývojovém prostředí (IDE). Většinu programovacích chyb lze identifikovat a opravit během simulace. IDE se obvykle skládá z následujících součástí:

  • Editor pro programování mikrokontroleru pomocí příslušného programovacího jazyka na vysoké úrovni, jako je C, C++, BASIC nebo Python.
  • Kompilátor pro převod vysokoúrovňového jazykového programu do nízkoúrovňového assembleru specifického pro konkrétní mikrokontroler.
  • Assembler pro převod jazyka symbolických instrukcí na strojový kód v binárním bitovém (0 nebo 1) formátu.
  • Ladicí program pro kontrolu chyb (nazývaný také „debug“) kódu a pro testování, zda kód dělá to, k čemu byl zamýšlen. Ladicí program obvykle najde syntaktické chyby, což jsou příkazy, kterým nelze porozumět a nelze je zkompilovat, a nadbytečný kód, což jsou řádky programu, které nic nedělají. Číslo řádku nebo umístění chyby zobrazí ladicí program, aby pomohl opravit problémy. Programátor může také při psaní kódu přidat komponenty testování chyb, aby použil ladicí program, který pomůže potvrdit, že program dělá to, co bylo původně zamýšleno.
  • Softwarový emulátor pro testování programu na PC nebo notebooku před testováním na hardwaru.

Ne všechny výše uvedené komponenty jsou vždy prezentovány uživateli v IDE, ale vždy existují. Pro vývoj některých systémů může být k dispozici také hardwarový emulátor. Ten se bude skládat z desky plošných spojů připojené k PC plochým kabelem spojujícím I/O porty. Emulátor lze použít k načtení a spuštění programu pro testování předtím, než je mikrokontroler zabudován do živého měřicího nebo řídicího systému.

Návrh systému měření a řízení na bázi mikrokontroleru

Následující pracovní postup může pomoci navrhnout a vybudovat systém měření a řízení založený na mikrokontroleru.

Krok 1. Pochopení problému a vypracování cíle návrhu systému měření a regulace s koncovými uživateli. Mezi užitečné otázky patří:

  • Jaké by měly být funkce systému? Například je potřeba systém pro regulaci pokojové teploty v uzavřeném zařízení pro ustájení zvířat v optimálním rozsahu.
  • Kde nebo v jakém prostředí probíhá měření nebo kontrola? Jde například o vnitřní nebo venkovní aplikaci? Je provoz ve velmi vysoké nebo nízké teplotě, velmi prašném, blátivém nebo hlučném prostředí? Je pro tuto aplikaci třeba vzít v úvahu něco zvláštního?
  • Existují již senzory nebo akční členy jako součásti systému nebo je třeba identifikovat vhodné? Například, jsou již nainstalovány termistory pro měření pokojové teploty nebo jsou nainstalovány ventilátory či ohřívače?
  • Jak často a jak rychle by se měly věci měřit nebo kontrolovat? Například u skleníku může být v pořádku kontrolovat a regulovat pokojovou teplotu každých 10 sekund; nicméně průtok a tlak postřikovače s proměnlivou rychlostí běžícího rychlostí 5 metrů za sekundu (asi 12 mil za hodinu) na poli je třeba monitorovat a kontrolovat alespoň každou sekundu.
  • Jakou přesnost potřebuje měření a řízení? Je například dostatečná přesnost stupně Celsia nebo aplikace potřebuje přesnost pod úrovní Celsia?

Krok 2. Identifikace vhodných senzorů nebo akčních členů, pokud jsou potřeba pro požadované cíle vyvinuté v předchozím kroku.

Krok 3. Studium jejich specifikací a pochopení vstupních a výstupních signálů pro snímače a akční členy.

  • Kolik vstupů a výstupů je nutných pro funkce systému?
  • Je to pro každý signál napěťový nebo proudový signál? Je to digitální nebo analogový signál?
  • Jaký je dosah každého signálu?
  • Jaká je frekvence každého signálu?

Krok 4. Výběr mikrokontroleru podle požadovaného cíle systému, výstupních signálů ze snímačů a vstupních signálů požadovaných akčními členy. Získání informací o technické specifikaci mikrokontroleru. Ujistěte se, že:

  • počet a typy I/O portů jsou kompatibilní s výstupními a vstupními signály senzorů a akčních členů;
  • rychlost CPU a velikost paměti jsou dostatečné pro požadované cíle;
  • mezi mikrokontrolerem, senzory a akčními členy, jako jsou převodníky nebo adaptéry, nechybí žádné součásti, a pokud nějaké jsou, identifikujte je; a
  • programovací jazyk(y) mikrokontroleru je vhodný pro uživatele.

Krok 5. Sestavení prototypu systému s vybranými senzory, akčními členy a mikrokontrolerem. Tento krok obvykle zahrnuje fyzické zapojení hardwarových komponent. Je-li to preferováno, lze virtuální systém sestavit a otestovat v softwaru emulátoru k odladění problémů před vytvořením a testováním s fyzickým hardwarem, aby se zabránilo zbytečnému poškození hardwaru.

Krok 6. Naprogramování mikrokontroleru. Vytvoření programu se všemi požadovanými funkcemi. Nahrání programu do mikrokontroleru a odladění systému. Veškerý kód by měl být řádně okomentován, aby byl program později čitelný pro ostatní uživatele.

Krok 7. Nasazení a odladění systém v cílovém pracovním prostředí s trvalým připojením hardwaru, dokud vše nebude fungovat podle očekávání.

Krok 8. Zdokumentování systému včetně specifikací, schématu zapojení a uživatelské příručky.

Literatura

[1] V DESHMUKH, Ajay. Microcontrollers : theory and applications. 1. New Delhi : Tata McGraw-Hill, 2005. ISBN 9780070585959.

[2] Microcontroller Basics. Codrey Electronic [online]. Codrey Electronic, 2018 [cit. 2022-02-21]. Dostupné z: https://www.codrey.com/microcontroller/microcontroller-basics/

[3] LUTKEVICH, Ben. DEFINITION microcontroller. TechTarget [online]. TechTarget, 2019 [cit. 2022-02-21]. Dostupné z: https://internetofthingsagenda.techtarget.com/definition/microcontroller

[4] V DESHMUKH, Ajay. Microcontrollers: Theory and Applications. 1. Tata McGraw-Hill Education, 2005. ISBN 9780070585959.

[5] Difference Between Microprocessor and Microcontroller. EDUCBA [online]. EDUCBA, 2020 [cit. 2022-02-26]. Dostupné z: https://www.educba.com/microprocessor-vs-microcontroller/

[6] SUBBAROYBHAT, Mithun. Kompletní průvodce mikrokontroléry. Vše co potřebujete vědět o mikrokontrolerech [online]. UK: RS Components, 2022 [cit. 2022-02-26]. Dostupné z: https://uk.rs-online.com/web/generalDisplay.html?id=ideas-and-advice/microcontrollers-guide

[7] K. PRATT, Mary. Tips to select the right microcontrollers for IoT. TechTarget [online]. TechTarget, 2020 [cit. 2022-02-21]. Dostupné z: https://internetofthingsagenda.techtarget.com/tip/Tips-to-select-the-right-microcontrollers-for-IoT

[8] Alciatore, DG, a Histand, MB (CC By 4.0). (2012). Hlavní součásti systému měření a regulace. Úvod do mechatroniky a měřicích systémů. Čtvrté vydání. McGraw Hill.

[9] Holden, Mary Leigh Wolfe, Jactone Arogo Ogejo, NM, Cummins EJ. Basic Microcontroller Use for Measurement and Control [Internet]. University College Dublin and Virginia Tech; 2021 [cited 2022 Apr 5]. Available from: https://eng.libretexts.org/@go/page/46842