Disusun oleh: Reza Ervani bin Asmanu
Abstrak
Sistem pada Chip (System on Chip / SoC) Broadcom BCM2835 yang digunakan pada Raspberry Pi 1 menyediakan total 54 jalur General Purpose Input/Output (GPIO). Meskipun demikian, tidak seluruh jalur tersebut diekspos ke antarmuka fisik (header) yang dapat diakses pengguna. Sebagian jalur didedikasikan secara internal untuk fungsi sistem vital seperti antarmuka kartu SD, indikator LED, dan manajemen daya.
Dokumen ini memetakan alokasi fungsi untuk GPIO 0 hingga GPIO 53 secara spesifik untuk Raspberry Pi 1 Model B (Revisi 2). Pemahaman terhadap peta alokasi ini krusial dalam pengembangan sistem operasi bare metal untuk menghindari konflik penggunaan sumber daya perangkat keras.
Legenda Status Pin
Tabel di bawah menggunakan simbol indikator berikut untuk menjelaskan status aksesibilitas setiap register GPIO:
- ✅ HEADER P1: Jalur tersedia pada header utama 26-pin. Aman untuk penggunaan I/O umum.
- ⚠️ HEADER P5: Jalur tersedia pada header tambahan P5 (memerlukan penyolderan pada Board Revisi 2).
- 🔒 INTERNAL: Jalur terhubung permanen ke komponen on-board (misal: LED, Audio). Tidak untuk penggunaan eksternal.
- ⛔ CRITICAL: Jalur vital sistem (misal: SD Card Interface). Modifikasi pada register ini dapat menyebabkan instabilitas atau kegagalan sistem.
Tabel 1: GPIO 0 s.d. GPIO 27 (Bank 0 – Low)
Rentang register ini mencakup sebagian besar pin yang diekspos ke pengguna serta fungsi periferal utama.
| Nomor Register (BCM) | Fungsi Alternatif Utama | Lokasi Fisik / Status | Catatan Teknis |
| GPIO 0 | I2C0 SDA | Header P1 (Pin 3)* | Hanya pada Rev 1. Pada Rev 2, jalur ini digantikan oleh GPIO 2. |
| GPIO 1 | I2C0 SCL | Header P1 (Pin 5)* | Hanya pada Rev 1. Pada Rev 2, jalur ini digantikan oleh GPIO 3. |
| GPIO 2 | I2C1 SDA | ✅ Header P1 (Pin 3) | Jalur Data I2C Utama (Pull-up resistor on-board). |
| GPIO 3 | I2C1 SCL | ✅ Header P1 (Pin 5) | Jalur Clock I2C Utama (Pull-up resistor on-board). |
| GPIO 4 | GPCLK0 | ✅ Header P1 (Pin 7) | General Purpose Clock. |
| GPIO 5 | – | ⛔ Reserved | Digunakan untuk interkoneksi sistem internal. |
| GPIO 6 | – | ⛔ Reserved | Digunakan untuk interkoneksi sistem internal. |
| GPIO 7 | SPI0 CE1 | ✅ Header P1 (Pin 26) | Chip Enable 1 untuk antarmuka SPI. |
| GPIO 8 | SPI0 CE0 | ✅ Header P1 (Pin 24) | Chip Enable 0 untuk antarmuka SPI. |
| GPIO 9 | SPI0 MISO | ✅ Header P1 (Pin 21) | SPI Master In Slave Out. |
| GPIO 10 | SPI0 MOSI | ✅ Header P1 (Pin 19) | SPI Master Out Slave In. |
| GPIO 11 | SPI0 SCLK | ✅ Header P1 (Pin 23) | SPI Serial Clock. |
| GPIO 12 | – | ⛔ Reserved | – |
| GPIO 13 | – | ⛔ Reserved | – |
| GPIO 14 | UART TXD | ✅ Header P1 (Pin 8) | Serial Console Transmit. Wajib untuk debugging Kernel. |
| GPIO 15 | UART RXD | ✅ Header P1 (Pin 10) | Serial Console Receive. Wajib untuk debugging Kernel. |
| GPIO 16 | STATUS LED | 🔒 INTERNAL (ACT) | Terhubung ke LED Hijau (OK/ACT). Logika: Active LOW. |
| GPIO 17 | Generic I/O | ✅ Header P1 (Pin 11) | I/O standar. Tidak memiliki fungsi pull-up/down bawaan yang kuat. |
| GPIO 18 | PCM_CLK / PWM0 | ✅ Header P1 (Pin 12) | Mendukung Hardware PWM dan Audio I2S. |
| GPIO 19 | – | ⛔ Reserved | – |
| GPIO 20 | – | ⛔ Reserved | – |
| GPIO 21 | PCM_DOUT | Header P1 (Pin 13)* | Hanya pada Rev 1. Pada Rev 2 digantikan GPIO 27. |
| GPIO 22 | Generic I/O | ✅ Header P1 (Pin 15) | I/O standar. |
| GPIO 23 | Generic I/O | ✅ Header P1 (Pin 16) | I/O standar. Sering tertukar dengan nomor pin fisik 16. |
| GPIO 24 | Generic I/O | ✅ Header P1 (Pin 18) | I/O standar. |
| GPIO 25 | Generic I/O | ✅ Header P1 (Pin 22) | I/O standar. |
| GPIO 26 | – | ⛔ Reserved | – |
| GPIO 27 | Generic I/O | ✅ Header P1 (Pin 13) | Menggantikan GPIO 21 pada Board Revisi 2. |
Tabel 2: GPIO 28 s.d. GPIO 53 (Bank 0 High & Bank 1)
Rentang register ini didominasi oleh fungsi internal sistem dan antarmuka penyimpanan (SD Card).
| Nomor Register (BCM) | Fungsi Alternatif Utama | Lokasi Fisik / Status | Catatan Teknis |
| GPIO 28 | I2C0 SDA | ⚠️ Header P5 (Pin 3) | Header tambahan (Rev 2). Memerlukan penyolderan. |
| GPIO 29 | I2C0 SCL | ⚠️ Header P5 (Pin 4) | Header tambahan (Rev 2). |
| GPIO 30 | – | ⚠️ Header P5 (Pin 5) | Header tambahan. Umumnya digunakan untuk System Reset. |
| GPIO 31 | – | ⚠️ Header P5 (Pin 6) | Header tambahan. |
| GPIO 32-39 | – | ⛔ Reserved | Jalur internal sistem SoC. |
| GPIO 40 | PWM0 | 🔒 Jack Audio | Output Audio Analog (Kanan/Right). |
| GPIO 41 | – | ⛔ Reserved | – |
| GPIO 42 | – | ⛔ Reserved | – |
| GPIO 43 | – | ⛔ Reserved | – |
| GPIO 44 | GPCLK1 | ⛔ Reserved | Alokasi untuk Clock Ethernet/USB Controller. |
| GPIO 45 | PWM1 | 🔒 Jack Audio | Output Audio Analog (Kiri/Left). |
| GPIO 46 | – | 🔒 INTERNAL | Deteksi HDMI Hotplug. |
| GPIO 47 | – | 🔒 INTERNAL | Deteksi Kartu SD (Card Detect). |
| GPIO 48 | SD CLK | ⛔ SD CARD SLOT | Clock Kartu SD. Intervensi dilarang. |
| GPIO 49 | SD CMD | ⛔ SD CARD SLOT | Command Kartu SD. Intervensi dilarang. |
| GPIO 50 | SD DAT0 | ⛔ SD CARD SLOT | Data 0 Kartu SD. Intervensi dilarang. |
| GPIO 51 | SD DAT1 | ⛔ SD CARD SLOT | Data 1 Kartu SD. Intervensi dilarang. |
| GPIO 52 | SD DAT2 | ⛔ SD CARD SLOT | Data 2 Kartu SD. Intervensi dilarang. |
| GPIO 53 | SD DAT3 | ⛔ SD CARD SLOT | Data 3 Kartu SD. Intervensi dilarang. |
Catatan Teknis Signifikan
Berdasarkan pemetaan di atas, terdapat beberapa poin teknis yang perlu diperhatikan dalam pengembangan tingkat rendah (low-level development):
1. Konfigurasi Indikator Aktivitas (ACT LED)
Pada Raspberry Pi 1, indikator aktivitas (ACT/OK LED) dikendalikan oleh GPIO 16.
- Akses: Register
GPSET0danGPCLR0. - Logika: LED ini menggunakan konfigurasi Active LOW. Menulis nilai
0(Clear) akan menyalakan LED, sedangkan menulis nilai1(Set) akan mematikannya. - Perbedaan Model: Lokasi ini spesifik untuk Model B. Pada model Raspberry Pi Zero atau Raspberry Pi 3, ACT LED dipindahkan ke GPIO 47 atau GPIO 29.
2. Integritas Jalur Kartu SD (GPIO 48-53)
Register GPIO 48 hingga 53 didedikasikan sepenuhnya untuk komunikasi antara SoC BCM2835 dengan kartu microSD (antarmuka EMMC).
- Mengubah mode fungsi (Alternative Function) pada pin-pin ini saat sistem operasi sedang berjalan akan memutus koneksi ke media penyimpanan utama.
- Hal ini akan menyebabkan sistem mengalami hang/freeze dan berpotensi merusak struktur data (corruption) pada kartu SD.
3. Diferensiasi Revisi Papan (Rev 1 vs Rev 2)
Peta di atas mengacu pada Board Revisi 2 (yang paling umum beredar). Perbedaan utama dengan Revisi 1 terletak pada alokasi I2C (GPIO 0/1 vs GPIO 2/3) dan GPIO 21 yang digantikan oleh GPIO 27. Pengembang wajib memverifikasi revisi papan sebelum melakukan pemrograman perangkat keras untuk menghindari kesalahan pengalamatan pin.
