Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
statnice:bakalar:b4b38nvs [2025/06/09 08:39] – [Operační zesilovač (OZ), jeho vlastnosti a použití; symetrické a nesymetrické napájení OZ, neinvertující zesilovač s OZ.] petrstep | statnice:bakalar:b4b38nvs [2025/06/09 09:57] (current) – [Typické řady log. obvodů CMOS používaných ve vestavných systémech (VS), jejich základní vlastnosti; dynamický proudový odběr MCU a logických obvodů CMOS. Blokování napájení MCU a log. obvodů - způsob, důvod, použité součástky.] petrstep | ||
---|---|---|---|
Line 3: | Line 3: | ||
+ | [[https:// | ||
===== Elektronické obvody a prvky pro vestavné systémy. Mikrořadiče - struktura, vlastnosti a programování. Návrh vest. systémů s mikrořadiči a dalšími vstupně- výstupními obvody a bloky. Řešení jejich spolupráce. ===== | ===== Elektronické obvody a prvky pro vestavné systémy. Mikrořadiče - struktura, vlastnosti a programování. Návrh vest. systémů s mikrořadiči a dalšími vstupně- výstupními obvody a bloky. Řešení jejich spolupráce. ===== | ||
Line 96: | Line 96: | ||
====== Mikrořadič – microcontroller (MCU) jako logický obvod CMOS, obvyklé vstupní a výstupní napěťové úrovně, vstupní napěťová tolerance. MCU s jádrem ARM Cortex M3, základní vlastnosti; periferie integrované na čipu: | ====== Mikrořadič – microcontroller (MCU) jako logický obvod CMOS, obvyklé vstupní a výstupní napěťové úrovně, vstupní napěťová tolerance. MCU s jádrem ARM Cortex M3, základní vlastnosti; periferie integrované na čipu: | ||
+ | |||
+ | === Obvyklé vstupní a výstupní napěťové úrovně === | ||
+ | |||
+ | * Vstup typicky 0-3.3V | ||
+ | * někdy 5V tolerantní - v datasheetu pin označen **FT** | ||
+ | * log 0 - Uin < 0.3 * Ucc | ||
+ | * log 1 - Uin > 0.7 * Ucc | ||
+ | * má ochrané diody (většinou) | ||
+ | |||
+ | * výstup 0-3.3V | ||
+ | |||
+ | |||
+ | === MCU s jádrem ARM Cortex M3, základní vlastnosti === | ||
+ | |||
+ | |||
+ | * Cortex-M3 je 32bitové RISC jádro od firmy ARM, navržené specificky pro vestavěné systémy | ||
+ | * Thumb-2 instrukční sada - Kompaktní (16bit) + plné (32bit) instrukce → menší kód, rychlé provádění. | ||
+ | * NVIC (Nested Vectored Interrupt Controller) | ||
+ | |||
+ | |||
+ | |||
+ | === Periferie integrované na čipu: | ||
+ | |||
+ | == GPIO == | ||
+ | |||
+ | * Programovatelný pin – může být vstupem nebo výstupem. | ||
+ | * Možnost pull-up / pull-down rezistorů (vnitřních) | ||
+ | * LED, tlačítka, relé, spínače.S | ||
+ | * Stavové signály, řízení periferií. | ||
+ | * Detekce událostí na pinech (tlačítko → přerušení). | ||
+ | |||
+ | == UART == | ||
+ | |||
+ | * Asynchronní sériová komunikace (TX, RX). | ||
+ | * Podpora rychlostí (např. 9600 – 115200 baud, klidně víc). | ||
+ | * Možnost přenosu dat v 8/9 bitech, parita, stop bity. | ||
+ | * Často podpora DMA. | ||
+ | * Někdy více UART kanálů. | ||
+ | |||
+ | == SPI == | ||
+ | |||
+ | * Sériová synchronní komunikace (MOSI, MISO, SCK, SS). | ||
+ | * Master/ | ||
+ | * Rychlosti až jednotky Mbit/s (záleží na MCU). | ||
+ | * Full-duplexní – zároveň odesílá a přijímá. | ||
+ | * Možnost více slave zařízení (s více CS piny). | ||
+ | |||
+ | == IIC Bus == | ||
+ | |||
+ | * Sběrnice s dvěma vodiči: SDA (data), SCL (hodiny). | ||
+ | * Master/ | ||
+ | * Adresace zařízení (7bit nebo 10bit). | ||
+ | * Rychlosti: standardní (100 kHz), fast (400 kHz), fast+ (1 MHz). | ||
+ | * Pull-up rezistory nutné na SDA a SCL. | ||
Line 101: | Line 155: | ||
+ | == Typické řady log. obvodů CMOS používaných ve vestavných systémech == | ||
+ | * Typické řady: | ||
+ | * 4000 (např. 4011, 4040, 4093) | ||
+ | * Starší řada, vhodná pro široký rozsah napájení (3–15 V). | ||
+ | * Nízký statický odběr, vhodné pro bateriová zařízení. | ||
+ | * Pomalejší než řady 74xx. | ||
+ | * | ||
+ | * 74HCxxx (High-speed CMOS) | ||
+ | * Napájení: typicky 2–6 V. | ||
+ | * Rychlejší než 4000, kompatibilní s TTL logikou. | ||
+ | * Nízký proudový odběr, ideální pro spojení s MCU. | ||
+ | * | ||
+ | * 74HCTxxx (High-speed CMOS, TTL compatible) | ||
+ | * Stejné jako 74HC, ale vstupní úrovně přizpůsobeny TTL (log. 1 od cca 2 V). | ||
+ | * Použití tam, kde je potřeba propojení CMOS a TTL. | ||
+ | * | ||
+ | * 74AC / 74ACT (Advanced CMOS / TTL Compatible) | ||
+ | * Ještě rychlejší, | ||
+ | * Vhodné pro vysokorychlostní aplikace. | ||
+ | * | ||
+ | |||
+ | |||
+ | |||
+ | == Proudový odběr CMOS obvodů a MCU == | ||
+ | * Statický odběr (v klidu): | ||
+ | * Velmi malý (nA až μA), když nejsou přechody. | ||
+ | * Vhodné pro nízkopříkonové aplikace. | ||
+ | * | ||
+ | * Dynamický odběr: | ||
+ | * Proud teče hlavně při přechodu logických stavů (0 ↔ 1). | ||
+ | * Odběr závisí na: | ||
+ | * frekvenci přepínání (vyšší frekvence → vyšší odběr), | ||
+ | * zatížení výstupů (větší kapacita → vyšší proud), | ||
+ | * napětí – vyšší Vdd → vyšší proud. | ||
+ | * | ||
+ | * MCU: | ||
+ | * Spotřeba MCU se odvíjí hlavně od: | ||
+ | * frekvence hodinového signálu (CPU, sběrnice, periferií), | ||
+ | * aktivních periferií (např. ADC, USART), | ||
+ | * neoptimalizovaného kódu (např. polling místo přerušení), | ||
+ | * použití spánkových režimů (sleep, stop, standby). | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | == Blokování napájení MCU a logických obvodů == | ||
+ | |||
+ | |||
+ | * | ||
+ | * | ||
+ | * stabilitu napětí, | ||
+ | * potlačení rušení, | ||
+ | * omezení špiček při spínání logických stavů, | ||
+ | * ochranu před chybami způsobenými kolísáním napájení. | ||
+ | * Při náběhu napájecího napětí může dojít k nestabilitám, | ||
+ | * V blízkosti každého napájecího pinu MCU by měl být umístěn keramický kondenzátor s kapacitou přibližně 100 nF. Umisťuje se co nejblíže k pinu. | ||
+ | * Pro vyrovnání větších změn v odběru napájení a filtrování nižších frekvencí se používají elektrolytické kondenzátory o kapacitách v řádu 10 až 100 µF. Ty se dávají na vstup nebo výstup stabilizátoru, | ||
+ | * | ||
+ | * | ||
+ | * V systémech s citlivým napájením (např. analogové měření nebo RTC) je vhodné použít LDO stabilizátor s nízkým výstupním šumem, který zajistí konstantní napětí 3,3 V nebo 1,8 V. | ||
+ | * Při návrhu PCB je důležité správně rozmístit blokovací prvky tak, aby tvořily krátké smyčky mezi napájecím a zemním vodičem – tím se dosáhne co nejvyšší účinnosti filtrace. | ||
+ | * | ||
+ | * samovolné restarty, | ||
+ | * poruchy v komunikaci (např. UART, I2C), | ||
+ | * chybnou činnost periferií, | ||
+ | * zvýšený šum v analogových částech obvodu. | ||
====== Podpůrné a dohlížecí bloky MCU (hodinový generátor, Reset, POR, BOR , RTC, Watch Dog,..); čítačové jednotky v MCU (PWM, „input capture“, output compare,..) jejich funkce a využití. Vstupy a výstupy VS, bloky komunikace s obsluhou ve VS, tlačítka, klávesnice a zobrazovače, | ====== Podpůrné a dohlížecí bloky MCU (hodinový generátor, Reset, POR, BOR , RTC, Watch Dog,..); čítačové jednotky v MCU (PWM, „input capture“, output compare,..) jejich funkce a využití. Vstupy a výstupy VS, bloky komunikace s obsluhou ve VS, tlačítka, klávesnice a zobrazovače, | ||
+ | |||
+ | === Hodinové signály === | ||
+ | |||
+ | * Slouží k taktování CPU a periferií. | ||
+ | * Typy: | ||
+ | * Interní RC oscilátor – levný, nízký odběr, méně přesný. | ||
+ | * Externí krystal (XTAL) – vysoká přesnost, např. 8 MHz. | ||
+ | * Krystal pro RTC – 32.768 kHz (2¹⁵ Hz → snadné dělení na 1 Hz). | ||
+ | * PLL (Phase-Locked Loop) – násobí frekvenci (např. 8 MHz → 72 MHz). | ||
+ | |||
+ | === RESET === | ||
+ | |||
+ | * | ||
+ | * | ||
+ | * Reset může být aktivován: | ||
+ | * tlačítkem „RESET“, | ||
+ | * watchdogem, | ||
+ | * poklesem napájení (BOR), | ||
+ | * programově (v SW). | ||
+ | |||
+ | |||
+ | === POR – Power-On Reset === | ||
+ | * Aktivuje se automaticky při zapnutí napájení. | ||
+ | * MCU zůstává ve stavu „držení v resetu“, dokud se napájecí napětí dostatečně neustálí. | ||
+ | * Zabrání rozběhnutí procesoru v nestabilních podmínkách (např. napětí roste pomalu → procesor by mohl začít běžet s chybami). | ||
+ | * U STM32 se aktivuje, když VDD překročí definovanou mez. | ||
+ | |||
+ | |||
+ | === BOR – Brown-Out Reset === | ||
+ | |||
+ | * Sleduje, zda napětí neklesne pod bezpečnou hranici během běhu. | ||
+ | * Pokud ano → provede automatický reset, aby se zabránilo: | ||
+ | * neplatnému zápisu do paměti, | ||
+ | * chybnému výpočtu, | ||
+ | * zablokování systému. | ||
+ | * U STM32 může být aktivován například pod 2.0 V (hodnota závisí na konfiguraci). | ||
+ | * Typicky se používá v systémech s mechanickými akčními členy – tam je bezpečnost kritická. | ||
+ | * | ||
+ | | ||
+ | | ||
+ | === Watchdog (WDT – Watchdog Timer) === | ||
+ | * Dohlíží na běh programu – pokud se program zacyklí/ | ||
+ | * Použití: | ||
+ | * Zabezpečení proti zamrznutí aplikace. | ||
+ | * Obnovení systému po chybě. | ||
+ | * Dva druhy: | ||
+ | * Interní (součást MCU) – často připojen na systémové hodiny. | ||
+ | * Externí – připojený k MCU zvenčí, spolehlivější. | ||
+ | * Signály: | ||
+ | * WDI – vstupní impuls, kterým se watchdog „krmí“. | ||
+ | * WDO – výstup reset, pokud impuls dlouho nepřijde. | ||
+ | |||
+ | |||
+ | |||
+ | ==== Čítačové jednotky v mikrořadiči (MCU) ==== | ||
+ | |||
+ | == Režimy čítače == | ||
+ | |||
+ | **Input Capture** | ||
+ | * Při příchodu určité události (např. hrany na pinu) se aktuální hodnota čítače uloží do registru. | ||
+ | * Využití: | ||
+ | * měření délky pulsu, | ||
+ | * zaznamenání času události, | ||
+ | * určování střídy (duty cycle). | ||
+ | * Možnosti: náběžná/ | ||
+ | * Přenos hodnoty: | ||
+ | * programově, | ||
+ | * pomocí DMA. | ||
+ | * Analogie: Stopky – když někdo běží, zmáčkneš tlačítko → uloží se čas mezičasu, ale stopky běží dál. | ||
+ | |||
+ | |||
+ | **Output Compare** | ||
+ | * Čítač běží a porovnává se s hodnotou v registru. | ||
+ | * Při shodě: výstupní pin změní stav: | ||
+ | * SET – nastaví na 1, | ||
+ | * RESET – vynuluje, | ||
+ | * TOGGLE – překlopí (změní stav). | ||
+ | * Možné i přerušení nebo událost pro jinou jednotku (např. DMA, ADC...). | ||
+ | * Využití: | ||
+ | * generování signálu (např. PWM), | ||
+ | * řízení výkonových prvků (IGBT, tyristory), | ||
+ | * pulzní řízení motorů. | ||
+ | * | ||
+ | ** PWM – Pulse Width Modulation** | ||
+ | * Speciální režim čítače, kde: | ||
+ | * nastavená hodnota duty cycle (střída), | ||
+ | * čítač opakuje cyklicky pulzy. | ||
+ | * Využití: | ||
+ | * řízení servomotorů, | ||
+ | * stmívání LED, | ||
+ | * řízení rychlosti motorů (např. BLDC). | ||