General Purpose I/O (GPIO)

Pendahuluan

NuMIcro NUC140 memiliki masukan/luaran atau I/O sebanyak 80 pin yang fungsi-nya bisa bermacam-macam sesuai dengan konfigurasi-nya. Ke-80 pin ini dikelompokkan menjadi 5 kelompok yaitu GPIOA, GPIOB, GPIOC, GPIOD dan GPIOE. Masing-masing kelompok atau port terdiri dari 16 pin. Masing-masing 80 pin tersebut independen satu dengan yang lainnya dan sekaligus memiliki bit-bit register sendiri-sendiri, yang digunakan untuk mengatur fungsi mode pin  dan data yang terkait.

Masing-masing pin I/O tersebut dapat di-konfigurasi melalui perangkat lunak (program) sebagai masukan (input), luaran (output), open drain dan quasi-bidirectional. Setelah RESET, semua pin berada pada mode quasi-bidirectional dan register data port GPIOx_DOUT[15:0] berisikan 0x0000_FFFF. Hal yang perlu diperhatikan bahwa masing-masing pin I/O hanya dilengkapi dengan resistor pull-up sekitar 110 kohm hingga 300 kohm untuk Vdd dari 5.0V hingga 2.5V.

Fitur-fitur

  • Ada empat mode I/O:
    • Quasi bi-direction
    • Push-Pull output
    • Open-Drain output, dan
    • Masukan (input) saja dengan impedansi tinggi.
  • TTL/Schmitt trigger input selectable;
  • Pin I/O dapat dikonfigurasi sebagai sumber interupsi dengan pengaturan edge atau level;
  • Mendukung mode I/O high driver dan high sink.

Penjelasan Mode Input

  • Set register GPIOx_PMD(PMDn[1:0]) ke 00b;
  • Pin GPIOx port [n] akan menjadi mode masukan dan pin-pin tersebut berada dalam kondisi tri-state atau high impedance tanpa kemampuan menggerakkan luaran;
  • Nilai GPIOx_PIN menyatakan status dari pin yang bersangkutan.

Penjelasan Mode Output

  • Set register GPIOx_PMD(PMDn[1:0]) ke 01b;
  • Pin GPIOx port [n] akan menjadi mode luaran dan pin-pin tersebut mendukung fungsi luaran digital dengan kemampuan source/sink current (maksudnya sebagai sumber arus atau sebagai penyedot arus);
  • Nilai bit pada GPIOx_DOUT digerakkan oleh pin yang bersangkutan.

push_pull

Gambar 1. Luaran Push-Pull

Penjelasan Mode Open-Drain

  • Set register GPIOx_PMD(PMDn[1:0]) ke 10b;
  • Pin GPIOx port [n] akan menjadi mode open-drain dan fungsi luaran digital pin I/O hanya mendukung kemampuan sink current saja, maksudnya hanya menyedot arus saja, sebuah resistor pull-up tambahan diperlukan untuk menggerakan ke kondisi HIGH;
  • Jika nilai bit suatu pin bernilai 0, maka pin akan menggerakkan luaran LOW;
  • Jika nilai bit suatu pin bernilai 1, maka pin akan menggerakkan luaran HIGH dengan bantuan resistor pull-up eksternal (tambahan).

open_drain

Gambar 2. Luaran Open-Drain

Penjelasan Mode Quasi-bidirectional

  • Set register GPIOx_PMD(PMDn[1:0]) ke 11b;
  • Pin GPIOx port [n] akan menjadi mode Quasi bidirectional;
  • Pin I/O mendukung fungsi masukan dan luaran pada saat yang bersamaan, namun sumber arus hanya memberikan ratusan uA saja;
  • Sebelum melakukan fungsi masukan digital, bit terkait pada GPIOx_DOUT harus ditulisi dengan 1.
  • Keterangan detil sementara bisa dibaca di datahseet NUC130/NUC140-nya.

quasi

Gambar 3. Mode I/O Quasi Bidirectional

Terima kasih…

Advertisements
This entry was posted in gpio, learning board, nuc140 and tagged , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s