Popis GPIO
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 | názov portov |
---|---|---|
29466 | 3 porty | Port0 – Port2 |
29566 | 5 portov | Port0 – Port4 |
29666 | 6 portov | Port0 – Port5 |
29866 | r8 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