Popis GPIO: Rozdiel medzi revíziami
 (Vytvorená stránka „GPIO - general purpose input-output , slovensky: všeobecne použiteľné vstupy-výstupy  Slúžia pre dvojstavové odosielanie alebo príjímanie informácie. Je to najje…“)  | 
				d  | 
				||
| (5 medziľahlých úprav od 3 ďalších používateľov nie je zobrazených) | |||
| Riadok 1: | Riadok 1: | ||
| + | [[Kategória:Konfigurovateľné mikroprocesorové systémy]]  | ||
| + | [[Kategória:Všeobecne vstupy a výstupy PSoC]]  | ||
| + | __NOTOC__  | ||
| + | {{sablona_mikroprocoserove_systemy|GPIO - Všeobecne vstupy a výstupy PSoC|Popis GPIO|Konfigurácia GPIO pomocou designera obvodu|Programová konfigurácia GPIO|Módy portov (M8C)|Pripojenie periférnych obvodov|Pripojenie tlačítok a ošetrenie zákmitov}}  | ||
GPIO - general purpose input-output , slovensky: všeobecne použiteľné vstupy-výstupy  | GPIO - general purpose input-output , slovensky: všeobecne použiteľné vstupy-výstupy  | ||
| Riadok 12: | Riadok 16: | ||
{| class=wikitable border=1 cellpadding=5  | {| class=wikitable border=1 cellpadding=5  | ||
| − | |+   | + | |+    | 
|-  | |-  | ||
! Typ  | ! Typ  | ||
! počet portov  | ! počet portov  | ||
| − | !   | + | ! označenie portov  | 
|-  | |-  | ||
| 29466  | | 29466  | ||
| Riadok 31: | Riadok 35: | ||
|-  | |-  | ||
| 29866  | | 29866  | ||
| − | |   | + | | 8 portov  | 
| Port0 – Port7  | | Port0 – Port7  | ||
|}  | |}  | ||
| − | [[Súbor:PSOC.  | + | |
| + | |||
| + | <center>   | ||
| + | {|class="wikitable"  | ||
| + | | align="center" width=300 | [[Súbor:PSOC.png | 300px]]  | ||
| + | |-  | ||
| + | | align="center" width=300 | '''Vnútorná štruktúra PSOC'''  | ||
| + | |}  | ||
| + | </center>  | ||
== Zapojenie portov CY8C28466 ==  | == Zapojenie portov CY8C28466 ==  | ||
| − | [[Súbor:  | + | <center>   | 
| − | [[Súbor:  | + | {|class="wikitable"  | 
| + | | align="center" width=300 | [[Súbor:29466.png | 300px]]  | ||
| + | | align="center" width=300 | [[Súbor:table.png | 300px]]  | ||
| + | |-  | ||
| + | | align="center" width=300 | '''Pinout PSOC'''  | ||
| + | | align="center" width=300 | '''Tabuľka portov PSOC'''  | ||
| + | |}  | ||
| + | </center>  | ||
== Pin ako VSTUP ==  | == Pin ako VSTUP ==  | ||
| + | '''Pri priamom vstupe binárnej hodnoty na port je potrebné nastaviť:'''   | ||
| + | *mód portu (pin-u) pomocou PSoC-Designer alebo kódu v assembleri.  | ||
| + | Štandardný mód pre vstup je Hi-Z Digital (stav vysokej impendancie)   | ||
| − | + | *Načítať hodnotu registra PRTxDR  | |
| − | |||
| − | + | *Hodnoty všetkých bitov portu sa skopírujú do premennej  | |
| − | + | '''Príklad - Čítanie hodnoty pinu  Port1[2]'''  | |
| − | |||
Predpokladáme, že pin Port1[2] je konfigurovaný ako Hi-Z Digital    | Predpokladáme, že pin Port1[2] je konfigurovaný ako Hi-Z Digital    | ||
| − | mov A, reg[PRT1DR]  | + | *mov A, reg[PRT1DR]  | 
Ostatné piny poskytnú aktuálne hodnoty, piny nastavené ako výstupné  | Ostatné piny poskytnú aktuálne hodnoty, piny nastavené ako výstupné  | ||
poslednú zapísanú hodnotu  | poslednú zapísanú hodnotu  | ||
| − | Príklad - Slučka čakania na stav Port1[2] → LOW  | + | '''Príklad - Slučka čakania na stav Port1[2] → LOW'''  | 
| − | loop:	tst reg[PRT1DR], %00000100  | + | *loop:	tst reg[PRT1DR], %00000100  | 
| − | + | ||
| + | *		jz loop    | ||
== Pin ako VÝSTUP ==  | == Pin ako VÝSTUP ==  | ||
| − | Pri priamom výstupe binárnej hodnoty na port je potrebné  | + | '''Pri priamom výstupe binárnej hodnoty na port je potrebné:'''  | 
| − | Nastaviť mód portu (pin-u)  | + | *Nastaviť mód portu (pin-u)  | 
| − | Pomocou PSoC-Designer alebo ASM   | + | Pomocou PSoC-Designer alebo ASM  | 
| − | Štandardný mód pre výstup je Strong Drive  | + | *Štandardný mód pre výstup je Strong Drive  | 
| − | Zapísať '0' alebo '1' do zodpovedajúcich bitov registra PRTxDR  | + | *Zapísať '0' alebo '1' do zodpovedajúcich bitov registra PRTxDR  | 
| − | Hodnota je na pinoch portu statická, zmení sa len pri ďaľšom zápise do    | + | *Hodnota je na pinoch portu statická, zmení sa len pri ďaľšom zápise do    | 
registra PRTxDR  | registra PRTxDR  | ||
| − | Príklad - Zápis '1' do Port1[4]  | + | '''Príklad - Zápis '1' do Port1[4]'''  | 
| + | |||
Predpokladáme, že pin Port1[4] je konfigurovaný ako Strong Drive a ostatné    | Predpokladáme, že pin Port1[4] je konfigurovaný ako Strong Drive a ostatné    | ||
piny portu sú konfigurované ako vstupy Analog Hi-Z    | piny portu sú konfigurované ako vstupy Analog Hi-Z    | ||
| − | mov reg[PRT1DR], %00010000  | + | *mov reg[PRT1DR], %00010000  | 
Zápis do ostatných bitov portu je ignorovaný, pretože sú nastavené ako vstupy  | Zápis do ostatných bitov portu je ignorovaný, pretože sú nastavené ako vstupy  | ||
| − | Príklad - Zápis vzorky '0110' do dolných bitov Port1  | + | '''Príklad - Zápis vzorky '0110' do dolných bitov Port1'''  | 
| + | |||
Predpokladáme, že piny 3,2,1,0 sú konfigurované ako Strong Drive a ostatné    | Predpokladáme, že piny 3,2,1,0 sú konfigurované ako Strong Drive a ostatné    | ||
piny portu sú konfigurované ako vstupy Analog Hi-Z  | piny portu sú konfigurované ako vstupy Analog Hi-Z  | ||
| − | mov reg[PRT1DR], %00000110  | + | *mov reg[PRT1DR], %00000110  | 
Aktuálna revízia z 08:49, 21. marec 2013
| Predmet | 
 
  | 
|---|---|
| Konfigurovateľné mikroprocesorové systémy | |
| Tématická časť: | |
| GPIO - Všeobecne vstupy a výstupy PSoC | 
GPIO - general purpose input-output , slovensky: všeobecne použiteľné vstupy-výstupy
Slúžia pre dvojstavové odosielanie alebo príjímanie informácie. Je to najjednoduchší spôsob komunikácie mikroprocesora s okolím. Dané piny mikroprocesora môžu byť použité ako vstup alebo výstup.
Ak je nejaký pin mikroprocesora použitý ako vstup, môže mikroprocesor v ľubovolnom čase čítať binárnu hodnotu z tohto pinu. Ak je použitý ako výstup, môže byť tento pin nastavený na logickú hodnotu 0 alebo 1.
Porty môžu byť riadené priamo CPU cez systémovú zbernicu alebo k nim môžu byť pripojené vstupy / výstupy analógových a digitálnych blokov. Piny portov môžu mať rôzne funkcie. Je možné v čase konfigurovať a meniť funkcie pinov portu.
Počet 8-bitových portov závisí od typu procesora PSoC:
| Typ | počet portov | označenie portov | 
|---|---|---|
| 29466 | 3 porty | Port0 – Port2 | 
| 29566 | 5 portov | Port0 – Port4 | 
| 29666 | 6 portov | Port0 – Port5 | 
| 29866 | 8 portov | Port0 – Port7 | 
| Vnútorná štruktúra PSOC | 
Zapojenie portov CY8C28466
| Pinout PSOC | Tabuľka portov PSOC | 
Pin ako VSTUP
Pri priamom vstupe binárnej hodnoty na port je potrebné nastaviť:
- mód portu (pin-u) pomocou PSoC-Designer alebo kódu v assembleri.
 
Štandardný mód pre vstup je Hi-Z Digital (stav vysokej impendancie)
- Načítať hodnotu registra PRTxDR
 
- Hodnoty všetkých bitov portu sa skopírujú do premennej
 
Príklad - Čítanie hodnoty pinu Port1[2]
Predpokladáme, že pin Port1[2] je konfigurovaný ako Hi-Z Digital
- mov A, reg[PRT1DR]
 
Ostatné piny poskytnú aktuálne hodnoty, piny nastavené ako výstupné poslednú zapísanú hodnotu
Príklad - Slučka čakania na stav Port1[2] → LOW
- loop: tst reg[PRT1DR], %00000100
 
- jz loop
 
Pin ako VÝSTUP
Pri priamom výstupe binárnej hodnoty na port je potrebné:
- Nastaviť mód portu (pin-u)
 
Pomocou PSoC-Designer alebo ASM
- Štandardný mód pre výstup je Strong Drive
 
- Zapísať '0' alebo '1' do zodpovedajúcich bitov registra PRTxDR
 
- Hodnota je na pinoch portu statická, zmení sa len pri ďaľšom zápise do
 
registra PRTxDR
Príklad - Zápis '1' do Port1[4]
Predpokladáme, že pin Port1[4] je konfigurovaný ako Strong Drive a ostatné piny portu sú konfigurované ako vstupy Analog Hi-Z
- mov reg[PRT1DR], %00010000
 
Zápis do ostatných bitov portu je ignorovaný, pretože sú nastavené ako vstupy
Príklad - Zápis vzorky '0110' do dolných bitov Port1
Predpokladáme, že piny 3,2,1,0 sú konfigurované ako Strong Drive a ostatné piny portu sú konfigurované ako vstupy Analog Hi-Z
- mov reg[PRT1DR], %00000110