Jednočipové mikrokontroléry
Klíčová slova: Jednočipové mikrokontroléry
Klíčové pojmy: Definice MCU: CPU + paměť + periferie na jednom čipu, Rozdíl: mikroprocesor = jen CPU, MCU = samostatné zařízení, Hlavní paměti: Flash pro program, RAM pro běh, EEPROM pro trvalá data, GPIO pro digitální I/O, ADC/DAC pro analogii, UART/SPI/I²C pro komunikaci, Časovače pro PWM a měření, přerušení pro rychlé reakce, watchdog pro spolehlivost, Programování: C/C++ nebo Assembly, nahrávání přes programátor nebo bootloader, Výhody: nízká spotřeba, cena a spolehlivost; Nevýhody: omezený výkon a paměť, Typické rodiny: AVR (ATmega), PIC, ARM Cortex-M, ESP32, Použití: domácí spotřebiče, automobilová elektronika, průmysl, IoT, Praktický projekt: měření teploty pomocí ADC a odeslání přes UART
## Úvod
Jednočipové mikrokontroléry (MCU) jsou malé, energeticky úsporné integrované obvody, které obsahují vše potřebné pro řízení elektronických zařízení: procesorové jádro, paměti a periferie. Tento materiál vysvětluje základní pojmy, strukturu, periferie a praktické použití mikrokontrolérů přístupnou formou pro samostatné studium.
> **Definice:** Jednočipový mikrokontrolér je integrovaný obvod obsahující procesorové jádro, paměti a vstupně-výstupní periferie na jednom čipu, určený pro řízení vestavěných systémů.
## 1. Základní části mikrokontroléru
Rozdělíme si vnitřní bloky, aby bylo snadné je pochopit a zapamatovat.
### CPU (procesorové jádro)
- Vykonává instrukce programu a řídí tok dat.
- Může být 8bitové, 16bitové nebo 32bitové (např. ARM Cortex-M jsou 32bitová jádra).
### Paměti
- **Programová paměť (Flash / ROM):** uchovává kód programu.
- **Datová paměť (RAM):** slouží pro běžící program, proměnné a zásobník.
- **EEPROM:** nevolatilní paměť pro trvalá nastavení.
> **Poznámka:** Paměti v MCU jsou obvykle malé kapacity, ale rychle přístupné přímo CPU.
### Periferie
- **GPIO:** univerzální digitální vstupy a výstupy.
- **Analogové periferie:** ADC (A/D převodník), případně DAC.
- **Časovače/čítače:** měření času, generování přesných signálů.
- **Komunikační rozhraní:** UART, SPI, I²C a další.
- **Přerušovací systém:** reaguje rychle na vnější události.
- **Watchdog:** hlídá, že program neuvázne.
## 2. Mikroprocesor vs mikrokontrolér (porovnání)
| Vlastnost | Mikroprocesor | Mikrokontrolér |
|---|---:|---:|
| Obsah na čipu | Pouze CPU | CPU + paměť + periferie |
| Potřeba externích obvodů | Ano | Ne (samostatně funkční) |
| Typické použití | Počítače | Řídicí systémy, embedded |
| Spotřeba | Většinou vyšší | Nízká |
| Výkon | Vysoký | Nižší |
## 3. Periferie a jejich použití (praktické příklady)
- **GPIO:** řízení LED, čtení tlačítek, ovládání relé.
- **ADC:** měření napětí z čidel, např. teplota, světlo.
- **DAC:** generování analogového signálu pro reproduktory nebo řízení výkonu.
- **UART:** spojení s počítačem nebo jiným modulem (např. GPS).
- **SPI:** rychlá komunikace se senzory nebo paměťovými moduly.
- **I²C:** sdílená sběrnice pro více senzorů s dvěma vodiči.
Věděli jste, že ADC v mikrokontroléru může mít rozlišení typicky $8$, $10$ nebo $12$ bitů, což ovlivní přesnost měření?
## 4. Časování, přerušení a watchdog
- **Časovače:** slouží k periodickým úlohám, PWM pro řízení motorů nebo LED jasu.
- **Přerušení:** umožní okamžitou reakci na událost bez neustálého čekání v programu.
- **Watchdog:** po určitém čase resetuje MCU, pokud program nezareaguje, čímž zvyšuje spolehlivost.
Praktický příklad: pokud potřebujete číst pulsní signál z otáčkoměru, použijete čítač/přerušení k přesnému spočítání impulzů místo neefektivního smyčkového čtení.
## 5. Programování mikrokontrolérů
- Běžné jazyky: **C**, **C++**, případně **Assembly** pro časově kritické části.
- Program se nahrává přes **programátor** nebo přes **bootloader** (přes sériové rozhraní).
- Po resetu MCU začne vykonávat program od resetovací adresy.
Praktické doporučení: psát hlavní logiku v C a časově kritické rutiny v optimalizované Assembly, jen tam, kde je to nezbytné.
## 6. Výhody a nevýhody
- **Výhody:** nízká spotřeba, malé rozměry, nízká cena, vysoká spolehlivost.
- **Nevýhody:** omezený výkon, omezená paměť, menší možnosti rozšíření.
Zajímavost: některé moderní mikrokontroléry (např. ESP32) kombinují mikrokontrolér s bezdrátovými rozhraními jako Wi‑Fi a Bluetooth přímo na čipu, což výrazně zjednodušuje návrh IoT zařízení.
## 7. Příklady běžně používaných rodin
- **AVR (ATmega)** – populární v platformě Arduino.
- **PIC** – široce používané v průmyslu.
- **ARM Cortex-M** – moderní 32bitová jádra s vysokým výkonem.
- **ESP32** – integrované Wi‑Fi a Bluetooth, vhodné pro IoT.