====== Mikrokontroléry a jejich periferie ====== **Mikrokontrolér** (MCU – //Microcontroller Unit//) je kompletní miniaturní počítač integrovaný na jediném křemíkovém čipu (tzv. **SoC** – //System on a Chip//). Na rozdíl od mikroprocesorů (CPU) v běžných počítačích, které ke svému fungování potřebují externí operační paměť, grafickou kartu a řadiče úložišť, obsahuje mikrokontrolér vše potřebné v jednom pouzdře. Mikrokontroléry jsou navrženy pro vestavěné (embedded) systémy, kde samostatně řídí konkrétní zařízení – od chytrých praček a automobilových systémů až po dálkové senzory v Internetu věcí (IoT). ===== Základní vnitřní struktura MCU ===== Každý mikrokontrolér se skládá ze tří hlavních částí, které jsou vzájemně propojeny interní sběrnicí: * **Procesorové jádro (CPU):** Vykonává instrukce programu, provádí matematické a logické operace. Mezi nejznámější patří jádra typu ARM Cortex-M, AVR (v čipech ATmega) nebo RISC-V. * **Paměť:** * **Flash (ROM):** Neanorganická paměť, kde je trvale uložen kód programu (firmware). Data v ní zůstanou i po odpojení napájení. * **SRAM:** Rychlá, těkavá paměť pro ukládání proměnných a mezivýsledků během běhu programu. Po vypnutí se vymaže. * **EEPROM:** Malá neanorganická paměť pro ukládání uživatelských nastavení (kalibrace, ID zařízení), která se mění jen zřídka. * **Periferie:** Integrované hardwarové bloky, které umožňují procesoru komunikovat s okolním světem a odlehčují mu od rutinních úkolů. ===== Klíčové interní periferie ===== Právě bohatá výbava periferií dělá z mikrokontroléru ideální nástroj pro řízení elektroniky. Mezi ty nejdůležitější patří: ==== 1. GPIO (General Purpose Input/Output) ==== Základní digitální piny mikrokontroléru. Každý pin lze softwarově nastavit buď jako **vstup** (čtení stavu tlačítka, senzoru), nebo jako **výstup** (ovládání LED, sepnutí relé). Piny pracují v logických úrovních (nejčastěji 3,3 V nebo 5 V). ==== 2. Časovače a čítače (Timers/Counters) ==== Hardwarové registry, které nezávisle na CPU počítají pulzy vnitřního hodinového oscilátoru. Používají se pro: * Přesné odměřování času (např. vyvolání akce každých 10 milisekund). * Generování signálu **PWM (Pulse Width Modulation)** – šířkově impulzní modulace, která slouží k řízení jasu LED, rychlosti motorů nebo simulaci analogového napětí. ==== 3. ADC (Analog-to-Digital Converter) ==== Analogově-digitální převodník. Reálný svět je analogový (teplota, tlak, světlo se mění plynule), ale procesor zná jen jedničky a nuly. ADC převádí spojité analogové napětí ze senzorů na digitální číslo (např. 10bitový převodník převede napětí 0–3,3 V na hodnotu 0–1023). ==== 4. DAC (Digital-to-Analog Converter) ==== Digitálně-analogový převodník. Opak ADC. Převádí digitální hodnotu z procesoru na reálné analogové napětí. Využívá se například pro generování zvuku nebo přesných napěťových průběhů. ==== 5. Komunikační rozhraní (Sériové sběrnice) ==== Umožňují MCU komunikovat s ostatními čipy a počítači pomocí minima pinů: * **UART:** Asynchronní sériová linka (vodiče TX/RX), často využívaná pro ladění (debug) a komunikaci s PC přes USB převodník. * **I2C:** Dvouvodičová synchronní sběrnice (SDA/SCL) ideální pro připojení mnoha pomalejších senzorů a displejů na krátkou vzdálenost. * **SPI:** Rychlá čtyřvodičová synchronní sběrnice (MOSI/MISO/SCLK/CS) pro paměťové karty nebo rychlé displeje. * **CAN bus:** Extrémně spolehlivá průmyslová sběrnice využívaná především v automobilovém průmyslu. ==== 6. Watchdog Timer (WDT) ==== Bezpečnostní hardwarový časovač. Pokud program zamrzne (např. kvůli chybě v kódu nebo rušení), procesor přestane Watchdog pravidelně nulovat. Watchdog "přeteče" a automaticky provede tvrdý restart (reset) celého mikrokontroléru. To zajišťuje autonomní spolehlivost bez lidského zásahu. ===== Srovnání populárních platforem ===== ^ Platforma / Čip ^ Architektura ^ Napájení ^ Typické vlastnosti ^ | **ATmega328P** (Arduino Uno) | 8-bit AVR | 5 V | Velmi jednoduchý, robustní, nízký výkon, ideální pro výuku. | | **ESP32** | 32-bit Xtensa / RISC-V | 3,3 V | Integrované Wi-Fi a Bluetooth, vysoký výkon, skvělý pro IoT. | | **STM32** (Cortex-M) | 32-bit ARM | 3,3 V | Obrovské množství periferií, vysoká rychlost, standard v průmyslu. | ---- //Související články:// * [[it:hw:general|Hardware - Hlavní rozcestník]] * [[it:hw:embedded:embedded_systems|Co jsou to vestavěné systémy]] * [[it:hw:bus:spi|Sběrnice SPI podrobně]] * [[it:hw:sensors|Senzory a jejich připojení k MCU]] //Tagy: {{tag>hardware embedded mcu microcontroller gpio adc pwm uart esp32 arm}}//