Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| statnice:bakalar:b4b38nvs [2026/05/17 07:49] – [Operační zesilovač (OZ), jeho vlastnosti a použití; symetrické a nesymetrické napájení OZ, neinvertující zesilovač s OZ.] mates1n | statnice:bakalar:b4b38nvs [2026/06/06 18:31] (current) – [Obvyklé vstupní a výstupní napěťové úrovně] mates1n | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Návrh vestavných systémů ====== | ====== Návrh vestavných systémů ====== | ||
| - | |||
| Line 140: | Line 139: | ||
| ====== Operační zesilovač (OZ), jeho vlastnosti a použití; symetrické a nesymetrické napájení OZ, neinvertující zesilovač s OZ. ====== | ====== Operační zesilovač (OZ), jeho vlastnosti a použití; symetrické a nesymetrické napájení OZ, neinvertující zesilovač s OZ. ====== | ||
| + | === Operační zesilovač === | ||
| Operační zesilovač je integrovaný obvod, který zesiluje rozdíl napětí mezi svými dvěma vstupy: | Operační zesilovač je integrovaný obvod, který zesiluje rozdíl napětí mezi svými dvěma vstupy: | ||
| * invertující vstup: V− | * invertující vstup: V− | ||
| Line 151: | Line 151: | ||
| V embedded systémech se operační zesilovače používají nejčastěji s jedním (a tedy nesymetrickým) napájecím napětím (+3 nebo +5V). | V embedded systémech se operační zesilovače používají nejčastěji s jedním (a tedy nesymetrickým) napájecím napětím (+3 nebo +5V). | ||
| - | **Virtuální nula** (Virtual Ground): pro zapojení ve zpětné vazbě (tj. invertující vstup je z obvodu za OZ) nemá invertující vstup přímou referenci na 0, tj. 0 je rozdíl napětí mezi vstupy. Díky tomu lze, při dostatečném napětí zátěže, udělat např. emitorový sledovač NPN, který reguluje proud na zátěži (na kolektoru) pouze přes napětí na vstupu a rezistor na emitoru (a díky velkému zesílení vyloučí působení napětí $U_{BE}). | + | **Virtuální nula** (Virtual Ground): pro zapojení ve zpětné vazbě (tj. invertující vstup je z obvodu za OZ) nemá invertující vstup přímou referenci na 0, tj. 0 je rozdíl napětí mezi vstupy |
| === Neinvertující zesilovač s OZ. === | === Neinvertující zesilovač s OZ. === | ||
| Line 162: | Line 162: | ||
| === Obvyklé vstupní a výstupní napěťové úrovně === | === Obvyklé vstupní a výstupní napěťové úrovně === | ||
| - | * Vstup typicky | + | == Vstup == |
| - | * někdy 5V tolerantní | + | Typicky |
| - | * log 0 - | + | * log 0 - |
| - | * log 1 - | + | * log 1 - |
| * má ochrané diody (většinou) | * má ochrané diody (většinou) | ||
| - | | + | == Výstup == |
| + | | ||
| + | * log 1 - 3,3V | ||
| + | * Na DAC pinech možné regulovat napětí (0-3,3V) | ||
| + | === Vstupní a výstupní brány === | ||
| + | General Purpose Input and Output (GPIO). | ||
| - | === MCU s jádrem ARM Cortex M3, základní vlastnosti === | + | ==Vstup== |
| + | * **Floating** (Plovoucí) - bez připojeného potenciálu - napětí se volně pohybuje vlivem šumu, nepředvídatelná logická úroveň | ||
| + | * **PULL-UP** - rezistor na $U_{dd}$, pokud je pin bez signálu → HIGH | ||
| + | * **PULL-DOWN** - rezistor na GND, pokud je pin bez signálu → LOW | ||
| + | |||
| + | ==Výstup== | ||
| + | |||
| + | * **PUSH-PULL** - používá dva tranzistory na přepínání mezi GND a $U_{dd}$ | ||
| + | * **OPEN-DRAIN** - tranzistor na GND - tranz. sepnut→ LOW, rozepnut→ undefined, připnuto GND - pro log. 1 potřebuje pull-up rezistor na ${U_{dd}}$ | ||
| + | |||
| + | U výstupu lze zvolit rychlost: low, medium, high, very high - tvrdost buzení výstupu. Pokud je zbytečně vysoká, vznikají napěťové špičky přes indukčnost cesty na PCB nebo kabelu. | ||
| + | | ||
| + | === 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 | * 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í. | * Thumb-2 instrukční sada - Kompaktní (16bit) + plné (32bit) instrukce → menší kód, rychlé provádění. | ||
| * NVIC (Nested Vectored Interrupt Controller) | * NVIC (Nested Vectored Interrupt Controller) | ||
| - | |||
| - | |||
| === Periferie integrované na čipu: | === Periferie integrované na čipu: | ||
| Line 218: | Line 233: | ||
| - | == Typické řady log. obvodů CMOS používaných ve vestavných systémech == | + | === Typické řady log. obvodů CMOS používaných ve vestavných systémech |
| - | * Typické řady: | + | == 4000 series |
| - | * 4000 (např. 4011, 4040, 4093) | + | |
| * Starší řada, vhodná pro široký rozsah napájení (3–15 V). | * Starší řada, vhodná pro široký rozsah napájení (3–15 V). | ||
| * Nízký statický odběr, vhodné pro bateriová zařízení. | * Nízký statický odběr, vhodné pro bateriová zařízení. | ||
| * Pomalejší než řady 74xx. | * Pomalejší než řady 74xx. | ||
| - | * | + | |
| - | | + | ==74HCxxx (High-speed CMOS)== |
| * Napájení: typicky 2–6 V. | * Napájení: typicky 2–6 V. | ||
| + | * log. $0 - V_{IL} \le 0,3 \cdot V_{in}$ | ||
| + | * log. $1 - V_{IH} \ge 0,7 \cdot V_{in}$ | ||
| * Rychlejší než 4000, kompatibilní s TTL logikou. | * Rychlejší než 4000, kompatibilní s TTL logikou. | ||
| * Nízký proudový odběr, ideální pro spojení s MCU. | * 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**. |
| - | * Použití tam, kde je potřeba propojení CMOS a TTL. | + | * Stejné jako 74HC, **vstupní úrovně přizpůsobeny TTL** |
| - | | + | * log. 0 - max. 0,8V |
| - | | + | * log. 1 - min. 2V |
| + | |||
| + | ==74AC / 74ACT (Advanced CMOS / TTL Compatible)== | ||
| * Ještě rychlejší, | * Ještě rychlejší, | ||
| * Vhodné pro vysokorychlostní aplikace. | * Vhodné pro vysokorychlostní aplikace. | ||
| - | * | ||
| + | === Proudový odběr CMOS obvodů a 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). | ||
| - | == Proudový odběr CMOS obvodů a MCU == | + | ==Statický odběr (v klidu)== |
| - | * Statický odběr (v klidu): | + | |
| * Velmi malý (nA až μA), když nejsou přechody. | * Velmi malý (nA až μA), když nejsou přechody. | ||
| * Vhodné pro nízkopříkonové aplikace. | * Vhodné pro nízkopříkonové aplikace. | ||
| - | * | + | ==Dynamický odběr== |
| - | * Dynamický odběr: | + | Proud teče hlavně |
| - | | + | |
| - | * 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). | + | |
| + | Napájecí proud CMOS - $I_{CC} = f\cdot U_{CC}\cdot \sum{C}$ | ||
| + | Ztrátový výkon CMOS $P = f\cdot U_{CC}^2\cdot \sum{C}$ | ||
| + | Odběr závisí na: | ||
| + | * frekvenci přepínání (f) - vyšší frekvence → vyšší odběr | ||
| + | * zatížení výstupů (větší kapacita → vyšší proud) | ||
| + | * napětí – vyšší Vdd → vyšší proud | ||
| == Blokování napájení MCU a logických obvodů == | == 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, | ||
| + | |||
| + | 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, | ||
| + | |||
| + | Pro **ochranu před přepětím**, | ||
| + | |||
| + | 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 |
| - | * stabilitu napětí, | + | * poruchy v komunikaci (např. UART, I2C) |
| - | * potlačení rušení, | + | * chybnou činnost periferií |
| - | * omezení špiček při spínání logických stavů, | + | * zvýšený šum v analogových částech obvodu |
| - | * 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. | + | |
| - | * 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, | ====== 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 === | === Hodinové signály === | ||
| - | * Slouží k taktování CPU a periferií. | + | Slouží k taktování CPU a periferií, generovány pomocí oscilátorů (RC nebo krystalických). |
| - | | + | * Interní RC oscilátor – levný, nízký odběr, méně přesný. |
| - | | + | * Externí krystal (XTAL) – vysoká přesnost, např. 8 MHz. |
| - | * Externí krystal (XTAL) – vysoká přesnost, např. 8 MHz. | + | |
| - | * Krystal pro RTC – 32.768 kHz (2¹⁵ | + | V MCU je Real Time Clock (RTC) blok, který slouží k měření reálného času. Jeho krystal generuje frekvenci 32,768 Hz (2$^{15}$), dá se tak snadno |
| - | * PLL (Phase-Locked Loop) – násobí frekvenci (např. 8 MHz → 72 MHz). | + | |
| === RESET === | === RESET === | ||
| - | * Může být vyvolán tlačítkem (manuálně), | + | Může být vyvolán |
| - | * | + | |
| - | | + | Reset může být aktivován: |
| * tlačítkem „RESET“, | * tlačítkem „RESET“, | ||
| * watchdogem, | * watchdogem, | ||
| Line 308: | Line 324: | ||
| === POR – Power-On Reset === | === POR – Power-On Reset === | ||
| - | * Aktivuje se automaticky při zapnutí napájení. | + | 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. |
| - | * 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 === | === BOR – Brown-Out Reset === | ||
| + | Automatický reset v případě, že napětí během běhu programu klesne pod bezpečnou (předem konfigurovanou) hranici (např. 2.0V). | ||
| - | * Sleduje, zda napětí neklesne pod bezpečnou hranici během běhu. | + | Chrání před: |
| - | * Pokud ano → provede automatický reset, aby se zabránilo: | + | * neplatnými zápisy |
| - | * neplatnému zápisu | + | * chybnými |
| - | * chybnému | + | * zablokování systému |
| - | * 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) === | === Watchdog (WDT – Watchdog Timer) === | ||
| - | * Dohlíží na běh programu – pokud se program zacyklí/ | + | Dohlíží na běh programu – pokud se program zacyklí/ |
| - | | + | Použití: |
| * Zabezpečení proti zamrznutí aplikace. | * Zabezpečení proti zamrznutí aplikace. | ||
| * Obnovení systému po chybě. | * Obnovení systému po chybě. | ||
| - | * Dva druhy: | + | Druhy: |
| * Interní (součást MCU) – často připojen na systémové hodiny. | * Interní (součást MCU) – často připojen na systémové hodiny. | ||
| * Externí – připojený k MCU zvenčí, spolehlivější. | * Externí – připojený k MCU zvenčí, spolehlivější. | ||
| - | * Signály: | + | Signály: |
| * WDI – vstupní impuls, kterým se watchdog „krmí“. | * WDI – vstupní impuls, kterým se watchdog „krmí“. | ||
| * WDO – výstup reset, pokud impuls dlouho nepřijde. | * WDO – výstup reset, pokud impuls dlouho nepřijde. | ||
| Line 342: | Line 353: | ||
| ==== Čítačové jednotky v mikrořadiči (MCU) ==== | ==== Čítačové jednotky v mikrořadiči (MCU) ==== | ||
| - | == Režimy čítače == | + | === Režimy čítače |
| - | **Input Capture** | + | ==Input Capture== |
| - | | + | Při **příchodu** určité |
| - | | + | |
| - | | + | |
| - | * 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. | + | |
| + | Využití: | ||
| + | * měření délky pulsu, | ||
| + | * zaznamenání času události, | ||
| + | * určování střídy (duty cycle). | ||
| - | **Output Compare** | + | Možnosti: náběžná/ |
| - | * Čítač běží a porovnává se s hodnotou v registru. | + | |
| - | | + | Přenos hodnoty buď **programově**, nebo pomocí **DMA**. |
| - | * SET – nastaví na 1, | + | |
| - | * RESET – vynuluje, | + | Analogie: Stopky – když někdo běží, zmáčkneš tlačítko → uloží se čas mezičasu, ale stopky běží dál. |
| - | * TOGGLE – překlopí (změní stav). | + | |
| - | * Možné i přerušení nebo událost pro jinou jednotku (např. DMA, ADC...). | + | ==Output Compare== |
| - | | + | |
| - | * generování signálu (např. PWM), | + | **Čítač** běží a **porovnává se s hodnotou v registru**, při shodě změní |
| - | * řízení výkonových prvků (IGBT, tyristory), | + | * SET – nastaví na 1 |
| - | * pulzní řízení motorů. | + | * RESET – vynuluje |
| - | * | + | * TOGGLE – překlopí (změní stav) |
| - | ** PWM – Pulse Width Modulation** | + | |
| - | | + | Využití: |
| - | | + | * generování signálu (např. PWM) |
| - | * čítač opakuje cyklicky pulzy. | + | * řízení výkonových prvků (IGBT, tyristory) |
| - | | + | * pulzní řízení motorů |
| - | * řízení servomotorů, | + | * periodické události v kódu |
| - | * stmívání LED, | + | |
| - | * řízení rychlosti motorů (např. BLDC). | + | ==Pulse Width Modulation |
| + | Speciální režim čítače, kde **čítač opakuje cyklické pulzy** podle nastavené hodnoty **duty cycle** (střída). Střída je podíl z délky cyklu, kdy je pin v log. 1 (0-100 %) | ||
| + | |||
| + | Využití: | ||
| + | * řízení servomotorů | ||
| + | * stmívání LED | ||
| + | * řízení rychlosti motorů (např. BLDC) | ||