Obvody vstupů a výstupů mikrořadiče AVR

Obvody vstupů a výstupů mikrořadiče AVR

Vstupně-výstupní rozhraní

Vstupně výstupní rozhraní mikrokontroléru, často označovaná jako I/O porty (Input/Output), zprostředkovávají komunikaci mezi mikrořadičem a externími zařízeními. Přenos dat probíhá skrze vývody integrovaného obvodu, které lze obvykle programově nastavit jako vstupy nebo výstupy. Procesor komunikuje se skupinou takových vývodů, kterou nazýváme (paralelní) port. Na vstupně-výstupní porty mikrořadiče můžeme přímo připojit např. tlačítka, klávesnici, LED, relé, displej nebo další logické a multiprocesorové obvody. Protože je počet vývodů mikrokontroléru často omezen, některé I/O vývody mohou sdílet funkci s dalšími periferními obvody, např. A/D převodníkem, napěťovýn komparátorem, externím přerušením, vstupy čítačů/časovačů, sérioivé rozhranní apod. Potom hovoříme o takzvané sekundární alternativní funkci vstupně-výstupního portu vývodu mikrořadiče. Důležitou funkci pro nastavení a přenosovou funkci portu plní trojice klopných obvodů typu D, které jsou řazeny do posloupnosti vodičů portu  směrového registru DDRx, výstupního registru PORTx a vstupního registru PINx.

Vstupní obvody portu jsou připojovány prostředníctvím diodového analogového spínacího můstu. Vložený napěťový komparátor s hysterezní převodní charakteristikou mezi můstkový diodový spínač a synchronizační obvod (synchronizer) odstraňuje neurčitý stav napěťové úrovně na vstupu portu. Vlastní synchronizační obvod je v zapojení dvobitového posuvného registru, který reaguje na náběžnou i sestupnou hranu vnitřního hodinového kmitočtu. Tímto obvodem dosáhneme časové zpoždění jednoho cyklu  pro synchronizaci s vnitřní řídící sběrnicí pro přenos dat na datovou sběrnici. Synchronizační obvod nemá zavedeno vlastní resetování, proto je před napěťový komparátor zařazen unipolární spínací tranzistor. Tento připojuje v závislosti na logické úrovni signálu SLEEP vstup synchronizačního obvodu k nulovému potenciálu obvodu. Následně dojde po jednom cyklu hodinového generátoru k resetování registru PINx.

Výstup registru PORTx je připojován k vývodu pouzdra portu  prostřednictvím třístavového budiče sběrnice, který má možnost přejít do stavu vysoké impedance. Tento stav vysoké impedance je ovládán přímo výstupem směrového registru DDRx.

Součinový logický člen, který je řízen nastavením směrového registru DDRx, výstupního registru PORTx a  logickou nulou zapsanou v bitě na pozici  PUD registru MCUSR, přes invertor spíná unipolární tranzistor, který připojí pullup rezistor mezi napájecí napětí mikrořadiče a výstup pouzdra portu. Tímto zabezpečíme na vývodu portu stav logické jedničky, což nám umožní při vstupní konfiguraci portu připojování externích spínačů vůči zemi bez připojování  vnějších rezistorů. Pullup rezistory zjednodušují konstrukci elektronického obvodu.

Následuje obrázek vnitřního funkčního schématu obvodu portu  mikrořadiče AVR.

Obr. 1: Schéma zapojení obvodů rozhraní  vstupů a výstupů mikrořadiče Atmega

 

Popis zapojení:

Pro ovládání vývodu sběrnice jsou předurčeny tři registry:

  • registr DDRxn konfiguruje  pin pouzdra sběrnice Pxn jako vstupní nebo výstupní, nastavením bitu DDRxn určujeme Pxn jako výstupní, resetování bitu DDRxn určujeme Pxn jako vstupní;
  • registr PORTx je budičem logické úrovně Pxn v případě nastavení pinu jako výstup v DDRxn, jinak slouží pro připojení pullup rezistoru na výstupní pin Pxn, je-li tento nastaven v registru DDRx jako vstupní;
  • registr PINxn je předurčený pro záchyt a následné čtení logické úrovně na pinu Pxn.
Zdroje
  • HRBÁČEK, Jiří. Komunikace mikrokontroléru s okolím. 1. vyd. Praha: BEN - technická literatura, 1999, 159 s. ISBN 80-86056-42-21.
  • MATOUŠEK, David. Práce s mikrokontroléry ATMEL AVR ATmega16. 1. vyd. Praha: BEN - technická literatura, 2006, 319 s. μC. ISBN 80-730-0174-8.
  • VÁŇA, Vladimír. Mikrokontroléry ATMEL AVR: programování v jazyce C : popis a práce ve vývojovém prostředí CodeVisionAVR C. 1. vyd. Praha: BEN - technická literatura, 2003, 215 s. ISBN 80-730-0102-0.
  • [online]. [cit. 2015-01-30]. Dostupné z: http://www.atmel.com/images/doc2503.pdf

Obrázky

  • Obr. 1: [online]. [cit. 2015-01-30]. Dostupné z: http://www.atmel.com/images/doc2503.pdf
Zapamatuj si
  • Abychom zabránili poškození jednotlivých vývodů portů, je nutné omezit maximální hodnotu proudu do 20 mA.
  • Nesmíme připustit na vstupních pinech portů vyšší hodnotu napětí, než je úroveň napájecího napětí.
     

     

Názvosloví

PUD (pullup disable)  -  centrální zákaz připojení všech pullup rezistorů  ke  sběrnicím.

Synchronizer - realizovaný jako posuvný registr pro časové zpoždění jedné periody hodinového signálu.

SLEEP (sleep control) - při nastavení odpojuje čtecí registr PINxn od  pinu sběrnice Pxn a na jeho vstupu definuje log. 0.  Po jednom taktě hodinového kmitočtu dojde k resetu (vynulování) registru PINxn. Registr PINxn nemá vlastní vstup reset.