OBSAH WEBU
ČTĚTE!
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
temata:05-vestavene_systemy:main [2016/05/24 22:04] xpavel27 [Základní princip sériové komunikace] |
temata:05-vestavene_systemy:main [2016/05/24 22:20] (aktuální) xpavel27 [Analogově-číslicový převodník (ADC)] |
||
---|---|---|---|
Řádek 298: | Řádek 298: | ||
{{ :temata:05-vestavene_systemy:iicaddr.png?500 }} | {{ :temata:05-vestavene_systemy:iicaddr.png?500 }} | ||
- | ==== Porty ==== | + | ==== Porty ==== |
- | * mikrokontrolér je počítač, určený k tomu, aby vnímal své okolí a na základě programu je ovlivňoval | + | * **Mikrokontroler** |
- | * je zpravidla součástí nějakého systému, který má primárně jiné určen, než "jen" být počítačem | + | * Vnímajú okolie cez jednoduché dvojstavové rozhranie, ktoré sa združené do portov po ôsmich |
- | * vnímání okolí a jeho ovlivňování se děje nejčastějí přes jednoduchá dvoustavová rozhraní, které se združují do portů | + | * Porty sú vedené na púzdro MCU |
- | * porty jsou vyvedeny na pouzdro MCU - jedná se o skutečné rozhraní mezi MCU a dalšími obvody | + | * Veľa z nich je zdielaných s inými perifériami |
- | * vstupně-výstupní piny jsou sdruženy po osmi do portů | + | * Pomenované sú písmenami abecedy |
- | * mnoho z nich sdílí vývod pouzdra s jinými periferiemi (když je periferie aktivní, nelze použít pin portu) | + | * **Vystupne porty** |
- | * porty jsou pojmenovány písmeny abecedy, různé MCU mají různý počet portů | + | * Vedia urobiť logickú jedna alebo nulu na vývode púzdra MCU |
- | * výstupní pin portu | + | * Ide o pripojenie určitého napätia na vývody |
- | * umí udělat logickou 0 nebo 1 na vývodu pouzdra MCU | + | |
- | * log. úrovně jsou reprezentovány napětím, jde o připojení určitého napětí na vývod MCU | + | |
* log. 0 je napětí na úrovni země, log. 1 pak napětí na úrovni napájecího napětí | * log. 0 je napětí na úrovni země, log. 1 pak napětí na úrovni napájecího napětí | ||
- | == Pull up rezistor == | + | * Môžeme použiť buď jeden pin alebo celý port |
- | * rezistor, který definuje úroveň v případě, kdy je pin jinak "ve vzduchu" | + | * Výstup môže dodávať prúd okolo 25 mA a celkovo čepať 120 |
- | * lze jej zapnout uvnitř MCU | + | * **Ganged output** |
- | * {{:temata:05-vestavene_systemy:pull_up.png|}} | + | * Zlúčenie viac pinov pre posilnenie výstupu |
+ | * Funguje len u niektorých portov na MCU | ||
+ | * **Prechodny dej** | ||
+ | * Pri prechode napríklad z log 0 na 1 nastane určitá špička | ||
+ | * Môžeme ju redukovať tým že spomalýme buď nábeh | ||
+ | * Na obmedzenie môžeme použiť aj redukciu výšky skoku ako drive strenght | ||
+ | {{ :temata:05-vestavene_systemy:portdeje.png?500 }} | ||
+ | |||
+ | * **Ovladanie** | ||
+ | * Data: datový register | ||
+ | * Data direction: rozhodnutie či zápis alebo čítanie | ||
+ | * Pul-Up Enable: rozhodnutie či sa bude používať pulup rezistor | ||
+ | * Slew Enable: spomalenie prechodu | ||
+ | * Drive Strength: zníženie sily skoku | ||
+ | * **Pull up rezistor** | ||
+ | * rezistor, který definuje úroveň v případě, kdy je pin jinak "ve vzduchu" | ||
+ | * lze jej zapnout uvnitř MCU | ||
+ | |||
+ | {{ :temata:05-vestavene_systemy:pull_up.png?400 }} | ||
+ | |||
+ | * **Modul KBI** | ||
+ | * Podpora generovanie prerušení od pinov | ||
+ | * Možnosť reagovať na hranu alebo úroveň | ||
+ | * Len na niektorých portoch | ||
+ | * KBI má prioritu pred bežnou funkciou portov | ||
==== Analogově-číslicový převodník (ADC) ==== | ==== Analogově-číslicový převodník (ADC) ==== | ||
* analogový vstup představují signály ze spojitých snímačů (teplota, tlak, osvětlení, odpor, napětí/proud) | * analogový vstup představují signály ze spojitých snímačů (teplota, tlak, osvětlení, odpor, napětí/proud) | ||
* důležitá je zpětná vazba | * důležitá je zpětná vazba | ||
- | * {{:temata:05-vestavene_systemy:adc.png|}} | ||
* předvod aproximačním AD převodníkem je děj, který trvá určitou dobu; proto lze vysledovat fáze | * předvod aproximačním AD převodníkem je děj, který trvá určitou dobu; proto lze vysledovat fáze | ||
* //zahájení převodu// | * //zahájení převodu// | ||
Řádek 331: | Řádek 352: | ||
=== AD převodník === | === AD převodník === | ||
- | * typicky má 3 části | + | * **Info** |
- | * dolnopropusní filtr | + | * typicky má 3 části: dolnopropusní filtr, Track/Hold, AD převodník |
- | * Track/Hold | + | * převádí anslogový vstup na číslicový výstup |
- | * AD převodník | + | * Používa sa aproximačný model |
- | * převádí anslogový vstup na číslicový výstup | + | * Ideme od MSB a postupne generujeme nižšie bity |
+ | * Vždy porovnáme hodnotu a upravíme ďalší byt a tak iterujeme | ||
+ | |||
+ | {{ :temata:05-vestavene_systemy:adcmy.png?400 }} | ||
+ | |||
+ | * **Viacej kanálov ADC** | ||
+ | * Vyberáme ich cez multiplexor | ||
+ | * Používame len jeden prevodník | ||
+ | * SH je nejaký kondík aby na chvílu uskoval hodnotu analog. sig. aby sa nemenila | ||
+ | |||
+ | {{ :temata:05-vestavene_systemy:adc.png?400 }} | ||
+ | |||
+ | * **Napajanie** | ||
+ | * Môžeme použiť vlastné napájanie | ||
+ | * Nadstavenie referenčných hodnôt | ||
+ | * **Prevod** | ||
+ | * Prevod u AD prevodníka trvá určitú dobu | ||
+ | * Zahájenie: nadstavíme konfiguráciu | ||
+ | * Vykonanie: aproximačné vkonávanie | ||
+ | * Ukončenie: buď uloženie výsledku alebo násilné prerušenie | ||
+ | * **Zahajenie** | ||
+ | * Softvérové: zápisom do ADCSC1 | ||
+ | * Hardwarové: príde k dosiahnutí hodnoty module reg. RTCMOD pri čítači real. času | ||
+ | * Pri hardwarovom môžeme nadstaviť periódu vzorkovanie vstupného signálu | ||
+ | * Pri soft. sa ďaľší prevod realizuje okamžide ako je ukončený predchádzajúci prevod | ||
+ | * **Vysledok** | ||
+ | * K dispozícii v registroch ADCRH a L | ||
+ | * Ukončenie v COCO | ||
+ | * Možnosť generovania prerušení | ||
+ | * Možnosť nadstaviť aby bol výsledok indikovaný len ak je nehajá hodnota presiahnutá | ||
+ | {{ :temata:05-vestavene_systemy:adcset.png?400 }} | ||
==== Časovač/čítač ==== | ==== Časovač/čítač ==== | ||
* čítač je speciální registr, který kromě funkcí jako je čtení a zápis hodnoty zvyšuje a snižuje svoji hodnotu o jedničku při každé periodě hodinového signálu; používán je pro čítání událostí | * čítač je speciální registr, který kromě funkcí jako je čtení a zápis hodnoty zvyšuje a snižuje svoji hodnotu o jedničku při každé periodě hodinového signálu; používán je pro čítání událostí |