====== Návrh vestavných systémů ====== [[https://docs.google.com/document/d/1bPFRbeaokgUqcW8S-D_R_vsQOx04oU8tlkJK3Pdzfa4/edit?tab=t.0#heading=h.b23rjn10aftd|Vypracované NVS]] ===== 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. ===== * * * Základy el. obvodů: odporový dělič, Theveninův teorém, zatížený odporový dělič, měření proudu ve vestavném systému. V/A charakteristika diod Si a LED, diferenciální (dynamický) odpor, bipolární tranzistory a jejich základní vlastnosti, tranzistor jako spínač, tranzistory MOS s kanálem N a kanálem P, prahové napětí. * Operační zesilovač (OZ), jeho vlastnosti a použití; symetrické a nesymetrické napájení OZ, neinvertující zesilovač s OZ. * 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:-GPIO, UART, SPI, IIC Bus,..; jejich vlastnosti a použití. * 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. * 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, vstupy a výstupy s posuvnými registry. ====== Základy el. obvodů: odporový dělič, Theveninův teorém, zatížený odporový dělič, měření proudu ve vestavném systému. V/A charakteristika diod Si a LED, diferenciální (dynamický) odpor, bipolární tranzistory a jejich základní vlastnosti, tranzistor jako spínač, tranzistory MOS s kanálem N a kanálem P, prahové napětí. ====== === Odporový dělič === {{:statnice:bakalar:screenshot_from_2025-06-09_10-04-36.png?400|}} === Theveninův teorém - rálně jsme nedělali === * Théveninova poučka (Théveninův teorém) o náhradním zdroji napětí tvrdí, že lze libovolně složitý lineární obvod nahradit obvodem skutečného zdroje napětí, připojeným k libovolným dvěma svorkám. === Zatížený odporový dělič === * Prostě se paralelní odpor co vznikne připojením zátěže k děliči převede na jeden odpor podle paralelního vzorečku === Měření proudu ve vestavném systému - nenašel jsem v přednáškách === === V/A charakteristika diod Si a LED, diferenciální (dynamický) odpor === * LED {{ :statnice:bakalar:va_led_dioda.svg |}} * Si dioda {{:statnice:bakalar:content_5-14.png?400|}} * Diferenciální (dynamický) odpor rd​ * Udává lokální odpor diody při daném pracovním bodě. * Je definován jako derivace: * rd=dU/dI * Jinými slovy: Jak moc se změní napětí při malé změně proudu. === Bipolární tranzistory a jejich základní vlastnosti === {{:statnice:bakalar:untitled.png?400|}} * Tranzistor zesiluje proud – malý proud bází řídí větší proud mezi kolektorem a emitorem. * Ic=β⋅Ib === Tranzistor jako spínač === * Tranzistor je buzen malým proudem do báze, čímž umožní průchod většího proudu mezi kolektorem a emitorem. V režimu spínače pracuje ve dvou stavech: * Vypnuto (cut-off) - Do báze neteče proud → tranzistor zavřený (nevede) * Zapnuto (saturace) - Do báze teče dostatečný proud → tranzistor plně sepnutý (vede jako uzavřený spínač) === Tranzistory MOS s kanálem N a kanálem P, prahové napětí === {{:statnice:bakalar:cmos-05-30_20-07-17.png?600|}} * Prahové napětí je minimální napětí mezi gate (G) a source (S), při kterém se tranzistor začne otevírat – tzn. vytvoří se vodivý kanál mezi drain (D) a source (S). ====== Operační zesilovač (OZ), jeho vlastnosti a použití; symetrické a nesymetrické napájení OZ, neinvertující zesilovač s OZ. ====== * Operační zesilovač je integrovaný obvod, který zesiluje rozdíl napětí mezi svými dvěma vstupy: * invertující vstup: V− * neinvertující vstup: V+ * výstup: VOUT === Symetrické a nesymetrické napájení OZ === * Symetrické - třeba +15V a -15V * Nesymetrické - 0V a 5V === Neinvertující zesilovač s OZ. === {{:statnice:bakalar:screenshot_from_2025-06-09_10-35-51.png?400|}} ====== 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:-GPIO, UART, SPI, IIC Bus,..; jejich vlastnosti a použití. ====== === 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, UART, SPI, IIC Bus,..; jejich vlastnosti a použití. === == 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/slave režim. * 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/slave komunikace, více zařízení na jedné sběrnici. * Adresace zařízení (7bit nebo 10bit). * Rychlosti: standardní (100 kHz), fast (400 kHz), fast+ (1 MHz). * Pull-up rezistory nutné na SDA a SCL. ====== 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. ====== == 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ší, větší odběr. * 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ů == * Blokování napájení je klíčové pro stabilní a spolehlivý chod mikrořadiče a připojených digitálních obvodů. * Hlavní účel blokování je zajistit: * 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, které mohou způsobit špatnou inicializaci MCU – blokovací prvky tomuto zabraňují. * 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, případně na hlavní napájecí větev. * Ferritové tlumivky nebo ferritové perle se vkládají do napájecí větve, kde slouží jako vysokofrekvenční filtr, který odfiltruje šum z napájení. * Ochranné součástky, jako jsou Zenerovy diody, TVS diody nebo klasické diodové ochrany, slouží k ochraně před přepětím nebo elektrostatickým výbojem. * 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. * Nedostatečné blokování může způsobit: * 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, vstupy a výstupy s posuvnými registry. ====== === 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 === * Může být vyvolán tlačítkem (manuálně), nebo automaticky jiným obvodem. * Výsledek: mikrořadič se vrátí do výchozího stavu (spustí se inicializace a start programu od začátku). * 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í/zasekne a neobnoví watchdog, provede reset. * 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á/spádová/jakákoli hrana. * 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).