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…“) |
|||
| Riadok 12: | Riadok 12: | ||
{| 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 31: | ||
|- | |- | ||
| 29866 | | 29866 | ||
| − | | | + | | 8 portov |
| Port0 – Port7 | | Port0 – Port7 | ||
|} | |} | ||
| − | [[Súbor:PSOC. | + | [[Súbor:PSOC.png|štruktora-porty]] |
== Zapojenie portov CY8C28466 == | == Zapojenie portov CY8C28466 == | ||
| − | [[Súbor: | + | [[Súbor:29466.png|29466]] |
| − | [[Súbor: | + | [[Súbor:table.png|tabulka portov]] |
== 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 (vysvetlené neskôr) | Pomocou PSoC-Designer alebo ASM (vysvetlené neskôr) | ||
| − | Š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 |
Verzia zo dňa a času 10:09, 1. jún 2010
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 |
Zapojenie portov CY8C28466
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 (vysvetlené neskôr)
- Š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


