Pengertian Mikrokontroler dan Struktur Internal Mikrokontroler Lengkap

Pengertian Mikrokontroler dan Struktur Internal Mikrokontroler Lengkap

Untuk dapat benar-benar menguasai pemrograman dan pengembangan sistem berbasis mikrokontroler, kita perlu memahami tidak hanya fungsinya secara umum tetapi juga struktur internal dan bagaimana setiap komponen bekerja bersama.

Pengertian Mikrokontroler

Mikrokontroler adalah sistem komputer lengkap dalam satu chip IC (Integrated Circuit) yang mencakup prosesor, memori program, memori data, dan berbagai peripheral I/O, dirancang untuk aplikasi embedded (tertanam) yang umumnya melakukan tugas-tugas kontrol spesifik secara real-time.

Baca Juga: Low Pass Filter (LPF): Pengertian, Rumus dan Konfigurasinya

Struktur Internal Mikrokontroler

1. CPU (Central Processing Unit)

Otak mikrokontroler yang bertanggung jawab mengambil, mendekode, dan mengeksekusi instruksi.

  • ALU (Arithmetic Logic Unit) — Melakukan operasi aritmatika (+, -, ×, ÷) dan logika (AND, OR, XOR, NOT, shift).
  • Register File — Kumpulan register serbaguna (General Purpose Registers) untuk menyimpan data sementara yang diakses sangat cepat.
  • Program Counter (PC) — Menyimpan alamat instruksi yang akan dieksekusi berikutnya.
  • Stack Pointer (SP) — Menunjuk ke top of stack di RAM.
  • Status Register (SREG/FLAGS) — Menyimpan flag hasil operasi: Zero (Z), Carry (C), Overflow (V), Negative (N), dll. Digunakan untuk percabangan (if/else).
  • Instruction Decoder — Mendekode opcode instruksi dan menghasilkan sinyal kontrol ke seluruh unit.

2. Memori

a. Flash Memory (Program Memory)

  • Menyimpan kode program (firmware) secara permanen.
  • Tidak berubah saat power off.
  • Dapat diprogram ulang melalui programmer (ISP, JTAG, USB bootloader).
  • Ukuran: 1KB (MCU kecil) hingga 2MB+ (MCU high-end).

b. SRAM (Static Random Access Memory)

  • Menyimpan variabel, stack, dan data sementara saat program berjalan.
  • Volatile: isi hilang saat power off.
  • Ukuran: 512 byte hingga beberapa MB (MCU high-end).
  • Akses sangat cepat (1 clock cycle).

c. EEPROM (Electrically Erasable Programmable ROM)

  • Non-volatile: data tersimpan meski power off.
  • Digunakan untuk menyimpan konfigurasi, kalibrasi, ID perangkat.
  • Terbatas jumlah siklus tulis (biasanya 100.000 kali).

3. Bus System

  • Address Bus — Menentukan alamat memori atau peripheral yang diakses. Lebar bus = kapasitas pengalamatan (16-bit = 64KB, 32-bit = 4GB).
  • Data Bus — Membawa data antara CPU, memori, dan peripheral. Lebar data bus = ukuran word MCU (8, 16, atau 32 bit).
  • Control Bus — Sinyal kontrol: read/write, clock, interrupt, reset.

4. Oscillator & Clock System

  • Sumber detak (clock) yang menyinkronkan semua operasi MCU.
  • Internal RC Oscillator — Tidak butuh komponen eksternal, akurasi sedang (±1-10%).
  • External Crystal/Resonator — Akurasi sangat tinggi (<0.005%), diperlukan untuk UART, USB, dan aplikasi timing presisi.
  • PLL (Phase Locked Loop) — Melipatgandakan frekuensi crystal untuk menghasilkan clock yang lebih tinggi. MCU 8MHz crystal bisa menghasilkan clock CPU 72MHz.
  • Clock Tree — Distribusi clock ke berbagai peripheral dengan prescaler berbeda untuk menghemat daya.

5. Interrupt Controller

  • Memungkinkan peripheral atau kejadian eksternal untuk menginterupsi eksekusi program utama.
  • External Interrupt — Dipicu oleh perubahan level pin GPIO.
  • Timer Interrupt — Dipicu saat timer overflow atau mencapai nilai tertentu.
  • USART Interrupt — Dipicu saat data diterima atau siap dikirim.
  • Interrupt Vector Table — Tabel di flash yang berisi alamat ISR (Interrupt Service Routine) untuk setiap sumber interrupt.
  • Nested Interrupt — Kemampuan menginterupsi ISR yang sedang berjalan dengan interrupt prioritas lebih tinggi.

6. DMA (Direct Memory Access)

Memungkinkan transfer data antara memori dan peripheral tanpa melibatkan CPU, sehingga CPU bebas mengerjakan tugas lain. Sangat penting untuk transfer data kecepatan tinggi (ADC, SPI, USB).

7. GPIO (General Purpose I/O)

  • Pin-pin yang dapat dikonfigurasi sebagai input atau output.
  • Setiap pin memiliki register DDR (Data Direction Register), PORT (output), dan PIN (baca input).
  • Fitur opsional: pull-up internal, open-drain, interrupt on change.

8. ADC (Analog-to-Digital Converter)

  • Mengubah sinyal analog (0 – Vref) menjadi nilai digital.
  • Resolusi 8, 10, 12, atau 16 bit. Makin banyak bit = makin presisi.
  • Kecepatan sampling: ksps hingga Msps.

Baca Juga: Sensor Sentuh: Pengertian, Cara Kerja dan Jenis-Jenisnya

Contoh Struktur: ATmega328P (Arduino Uno)

  • CPU: AVR 8-bit, 16MHz
  • Flash: 32 KB
  • SRAM: 2 KB
  • EEPROM: 1 KB
  • GPIO: 23 pin
  • ADC: 6 channel, 10-bit
  • Timer: 2x 8-bit, 1x 16-bit
  • Komunikasi: UART, SPI, I2C
  • PWM: 6 channel

Kesimpulan

Memahami struktur internal mikrokontroler bukan hanya penting untuk insinyur hardware — programmer embedded juga perlu tahu cara kerja register, interrupt, dan peripheral agar dapat menulis firmware yang efisien, responsif, dan andal dalam sistem real-time.

admin
admin

Penulis di Kamu Harus Tahu.

Tinggalkan Komentar