Definisi Microcontroller
Microcontroller adalah kontroler mikro yang merupakan suatu sistem komputer yang terintegrasi dalam satu chip yang terdiri dari CPU (Central Processing Unit), memori (contohnya RAM dan ROM), dan perangkat input/output (I/O) seperti port serial, paralel, USB, ADC, DAC, GPIO dan lainnya.
CPU merupakan inti dari microcontroller yang bertanggung jawab untuk mengeksekusi program yang ditulis dalam bahasa mesin atau bahasa pemrograman yang diterjemahkan ke dalam bahasa mesin. Microcontroller umumnya memiliki arsitektur von Neumann yang memungkinkan untuk menyimpan data dan program dalam satu memori.
Microcontroller digunakan dalam berbagai aplikasi seperti kendali mesin, elektronika konsumen, sistem otomatisasi, peralatan medis, sistem keamanan, sistem telekomunikasi, peralatan rumah tangga, peralatan otomotif, peralatan industri dan lainnya.
Microcontroller dapat di program menggunakan bahasa pemrograman yang sesuai dengan arsitektur tersebut, seperti Assembly, C, C++, dan lainnya. Ada juga beberapa microcontroller yang memiliki fitur-fitur khusus seperti dukungan untuk komunikasi jaringan, dukungan untuk sistem operasi, dukungan untuk debug dan lainnya.
Beberapa contoh dari microcontroller yang populer diantaranya adalah AVR, PIC, ARM, MSP430 dan lainnya.
Struktur Microcontroller
Struktur dari microcontroller umumnya terdiri dari beberapa bagian utama, yaitu:
- CPU (Central Processing Unit) adalah inti dari microcontroller yang bertanggung jawab untuk mengeksekusi program yang ditulis dalam bahasa mesin atau bahasa pemrograman yang diterjemahkan ke dalam bahasa mesin.
- Memori merupakan tempat untuk menyimpan data dan program yang dijalankan oleh CPU. Ada dua jenis memori yang umum digunakan pada microcontroller, yaitu RAM (Random Access Memory) dan ROM (Read Only Memory). RAM digunakan untuk menyimpan data sementara, sedangkan ROM digunakan untuk menyimpan program yang dapat diakses secara permanen.
- Perangkat Input/Output (I/O) merupakan perangkat yang digunakan untuk mengirim dan menerima data dari lingkungan luar. Beberapa contoh perangkat I/O yang umum digunakan pada microcontroller adalah port serial, paralel, USB, ADC (Analog to Digital Converter), DAC (Digital to Analog Converter), GPIO (General Purpose Input Output) dan lainnya.
- Timer/Counter digunakan untuk mengukur waktu dan menghitung jumlah sinyal yang masuk.
- Interrupt merupakan mekanisme yang digunakan untuk menangani peristiwa yang terjadi di luar jalur utama program.
- Power Management Circuit digunakan untuk mengatur sumber daya yang dibutuhkan oleh microcontroller.
- Oscillator merupakan perangkat yang digunakan untuk menghasilkan sinyal clock yang digunakan oleh CPU untuk mengeksekusi program.
- Debugging Interface digunakan untuk mengecek program yang dijalankan oleh microcontroller, misalnya dengan menggunakan perangkat seperti JTAG (Joint Test Action Group) atau ICE (In Circuit Emulator).
Secara umum, struktur microcontroller tergantung pada arsitektur dan merk dari microcontroller yang digunakan, namun pada umumnya terdapat bagian-bagian tersebut.
Cara Kerja Microcontroller
Cara kerja microcontroller meliputi beberapa tahap utama, yaitu:
- Pemrograman: Sebelum microcontroller dapat digunakan, program harus ditulis dan di-load ke memori microcontroller. Program dapat ditulis menggunakan bahasa pemrograman seperti Assembly, C, C++ dan diterjemahkan ke dalam bahasa mesin yang dapat diterima oleh microcontroller.
- Eksekusi program: Setelah program di-load ke memori microcontroller, CPU mulai mengeksekusi program tersebut. CPU mengeksekusi instruksi satu per satu dan mengambil data dari memori sesuai dengan instruksi yang diperintahkan.
- Pengolahan data: Microcontroller menerima input dari perangkat I/O, seperti sensor, dan melakukan pengolahan data sesuai dengan program yang telah di-load.
- Output: Setelah pengolahan data selesai, microcontroller mengeluarkan output melalui perangkat I/O seperti actuator, display, atau komunikasi jaringan.
- Interrupt: Microcontroller juga dapat menangani peristiwa yang terjadi di luar jalur utama program dengan menggunakan mekanisme interrupt. Ini memungkinkan microcontroller untuk merespon dengan cepat terhadap perubahan lingkungan yang terjadi tanpa harus menunggu program utama selesai dieksekusi.
- Power Management: Microcontroller juga memiliki fitur power management yang digunakan untuk mengatur sumber daya yang dibutuhkan oleh microcontroller, sehingga dapat menghemat daya dan memperpanjang umur baterai.
Semua tahap tersebut bekerja secara bersama-sama dan berkoordinasi untuk mengeksekusi program dan melakukan tugas yang ditentukan sesuai dengan aplikasi yang digunakan.
Jenis-jenis Microcontroller
Ada berbagai jenis microcontroller yang tersedia, beberapa diantaranya adalah:
- AVR (Atmel AVR) adalah microcontroller yang dikembangkan oleh Atmel. AVR menggunakan arsitektur RISC (Reduced Instruction Set Computer) dan memiliki banyak fitur yang cocok untuk aplikasi embedded.
- PIC (Peripheral Interface Controller) adalah microcontroller yang dikembangkan oleh Microchip. PIC memiliki banyak varian dan digunakan dalam berbagai aplikasi.
- ARM (Advanced RISC Machine) adalah microcontroller yang dikembangkan oleh ARM Holdings. ARM memiliki arsitektur RISC yang kuat dan digunakan dalam berbagai aplikasi termasuk smartphone, tablet, dan perangkat IoT.
- MSP430 (Microcontroller and Signal Processor) adalah microcontroller yang dikembangkan oleh Texas Instruments. MSP430 digunakan dalam aplikasi low power dan digunakan dalam peralatan medis, peralatan rumah tangga, dan peralatan industri.
- 8051 adalah microcontroller yang dikembangkan oleh Intel. 8051 digunakan dalam aplikasi kontrol mesin, otomasi, dan elektronika konsumen.
- STM32 adalah microcontroller yang dikembangkan oleh ST Microelectronics. STM32 digunakan dalam aplikasi kontrol mesin, otomasi, dan elektronika konsumen.
- TMS320 adalah microcontroller yang dikembangkan oleh Texas Instruments. TMS320 digunakan dalam aplikasi multimedia dan sistem kontrol.
- 68HC11 adalah microcontroller yang dikembangkan oleh Motorola. 68HC11 digunakan dalam aplikasi otomotif dan industri.
Itu hanyalah beberapa contoh dari jenis microcontroller yang tersedia, masih ada banyak lagi jenis yang dikembangkan oleh berbagai perusahaan. Pilihan tergantung pada kebutuhan aplikasi dan karakteristik yang diinginkan.