Popis GPIO: Rozdiel medzi revíziami

Z Kiwiki
Skočit na navigaci Skočit na vyhledávání
(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
|+ table name
+
|+  
 
|-
 
|-
 
! Typ
 
! Typ
 
! počet portov
 
! počet portov
! názov portov
+
! označenie portov
 
|-
 
|-
 
| 29466
 
| 29466
Riadok 31: Riadok 35:
 
|-
 
|-
 
| 29866
 
| 29866
| r8 portov
+
| 8 portov
 
| Port0 – Port7
 
| Port0 – Port7
 
|}
 
|}
[[Súbor:PSOC.jpg]]
+
 
 +
 
 +
<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:Príklad.jpg]]
+
<center>
[[Súbor:Príklad.jpg]]
+
{|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)
  
Pri priamom vstupe binárnej hodnoty na port je potrebné nastaviť mód portu (pin-u) pomocou PSoC-Designer alebo kódu v assembleri.
+
*Načítať hodnotu registra PRTxDR
Š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
  
Hodnoty všetkých bitov portu sa skopírujú do premennej
+
'''Príklad - Čítanie hodnoty pinu  Port1[2]'''
  
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  
+
 
 +
* 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 (vysvetlené neskôr)
+
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 09: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


PSOC.png
Vnútorná štruktúra PSOC

Zapojenie portov CY8C28466

29466.png Table.png
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