Dasar-Dasar
Mikrokontroler
A Dasar-Dasar Mikrokontroler
Pembuatan chip di era digital memiliki ciri khas berupa kemampuan komputasi sangat cepat, bentuk yang semakin kecil, dan harga yang semakin murah. Salah satunya adalah mikrokontroler. Perangkat tersebut dapat dijumpai pada mainan anak-anak serta berbagai perangkat dan peralatan elektronik rumah tangga, industri, pendukung otomotif, telekomunikasi, medis dan kedokteran, sampai dengan pada bidang pertahanan dan keamanan negara. Secara umum, AVR membagi jenis atau tipe mikrokontroler menjadi empat yaitu keluarga AT90Sxx, keluarga ATMega, keluarga Attiny, dan keluarga AT86RFxx. Faktor paling mudah dalam membedakan di antara masing-masing kelas adalah memori, peripheral, dan fungsinya.
1. Perkembangan Mikrokontroler
Kebutuhan pasar (market need) dan perkembangan teknologi baru menjadi alasan utama tentang daya guna mikrokontroler. Kebutuhan yang tinggi terhadap smart chip dengan berbagai fasilitasnya sejak tahun 1970-an, memacu pada vendor untuk berlomba dalam menawar-kan produk-produk mikrokontrolernya. Misalnya seri mikrokontroler 6800 besutan Motorola menjadi 68HC05, 68HC08, 68HC11, 68HC12, dan 68HC16 yang terus dikembangkan hingga sekarang.
2. Keunggulan Peralatan Berbasis Mikrokontroler
Beberapa keunggulan yang diharapkan dari alat-alat yang berbasis mikro-kontroler (microcontroller-based solutions), antara lain sebagai berikut.
a. Penggunaan komponen dipersedikit (reduced component count), sehingga mampu menekan biaya produksi (lower manufacturing cost).
b. Kehandalan tinggi (high reliability) dan kemudahan integrasi dengan komponen lain (high degree of integration).
c. Konsumsi daya yang rendah (lower power consumption).
d. Waktu pembuatan lebih singkat (shorter development time) sehingga lebih cepat dijual ke pasar sesuai kebutuhan (shorter time to market).
e. Ukuran yang semakin dapat diperkecil (reduced in size).
3. Perbedaan Mikrokontroler dan Mikroprosesor
Terdapat perbedaan yang mencolok antara mikrokontroler dan mikroprosesor yang dapat dilihat dari dua faktor utama, yaitu arsitektur perangkat keras (hardware architecture) dan aplikasi masing-masing. Namun secara mendasar, kedua rancangan tersebut memiliki penekanan dan tujuan yang berbeda. Beberapa perbedaan antara mikrokontroler dan mikroprosesor, yaitu sebagai berikut.
a. Perbedaan secara Arsitektur
Single chip CPU hanya dijumpai pada mikroprosesor, sedangkan dalam IC mikrokontroler terdiri atas CPU dan device lain yang berfungsi sebagai single chip komputer. Secara umum, di dalam satu unit IC mikrokontroler terdapat konverter analog ke digital, serial dan paralel interface, timer, interrupt controller, ROM, RAM, EPROM, dan lain-lain.
b Perbedaan secara Aplikasi
Mikroprosessor berfungsi sebagai Central Processing Unit yang menjadi otak komputer, sedangkan mikrokontroler dalam bentuknya yang mini ditujukan untuk melakukan tugas-tugas yang berorientasi kontrol pada rangkaian yang membutuhkan jumlah komponen minimum dan biaya rendah (low cost).
B.Manipulasi Dasar-Dasar Mikrokontrole
Pada awalnya, kontroler dibangun dari kom-ponen-komponen logika secara menyeluruh, se-hingga menjadikannya besar dan berat. Setelah itu barulah dipergunakan mikroprosesor sehingga keseluruhan kontroler masuk ke dalam PCB yang relatif kecil. Hingga sekarang masih sering dijum-pai kontroler-kontroler yang dikendalikan oleh mikroprosesor biasa. Proses pengecilan komponen terus berlangsung, hingga semua komponen yang diperlukan dapat dikemas dalam satu keping. Sehingga keluar istilah komputer keping tunggal (one chip microcomputer) yang disebut mikrokontroler. Rata-rata mikrokontroler memiliki instruksi manipulasi bit, akses ke I/O secara langsung dan mudah, dan proses interupt yang cepat dan efisien. Dengan kata lain, mikrokontroler secara drastis mengurangi jumlah komponen dan biaya disain (harga relatif rendah).
1. Arsitektur Mikrokontroler AVR
Mikrokontroler AVR mengimplementasikan komputasi berbasis RISC (Reduced Instruction Set Computing) 8 bit menggunakan konsep arsitektur Harvard yang memisahkan memori dan bus untuk data dan program, serta menerapkan single level pipelining. Keunggulan AVR dibanding mikrokontroller lain di antaranya memiliki kecepatan eksekusi program yang lebih cepat, karena sebagian besar instruksi dieksekusi dalam satuan 1 siklus clock. Lebih cepat dibandingkan dengan mikrokontroller MCS51 yang memiliki sistem komputasi CISC (Complex Instruction Set Compute) di mana proses eksekusi 1 instruksi membutuhkan 12 siklus clock. Salah satu mikrokontroler yang sering dipakai saat adalah ATMega 16.
a. Fitur-Fitur pada ATmega16
Fitur-fitur yang dimiliki oleh ATmega 16 secara lengkap adalah sebagai berikut. 1) Mikrokontroler AVR 8 bit yang memiliki kemampuan tinggi dan daya rendah (High performance low power).
2) Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16 MHz.
3) Kapasitas Flash memori 16 KB, EEPROM 512 Byte, dan SRAM 1 KB.
4) Port I/O berjumlah 32 buah yang terbagi ke dalam port A, port B, port C dan port D.
5) CPU terdiri atas 32 register.
6) Terdapat unit interupsi internal dan eksternal.
7) Tersedia port USART untuk komunikasi serial.
8) Fitur peripheral yang terdiri atas komponen berikut.
a) Tiga buah timer/counter.
b) Real time counter dengan Oscilator sendiri.
c) 4 channel PWM.
d) 8 channel dan 10 bit ADC yang terdiri atas Single ended channel, Differential channel, dan Differential channel dengan programmable gain 1x, 10x atau 200x.
e) Byte-oriented Two Wire Serial Interface dan antarmuka SPI
f) Watchdog timer dengan oscilator internal dan On chip analog comparator.
b. Konfigurasi Pin ATmega 16
Konfigurasi pin ATmega16 memiliki fungsi pada setiap pin sebagai berikut.
1) Pin masukan catu daya (power 5 Volt) menggunakan VCC dan GND untuk pin ground.
2) Port A (PAO-PA7) untuk pin input/output dua arah dan pin masukan ADC.
3) Port B (PB0-PB7) untuk pin input/output dua arah.
4) Port C (PCO-PC7) untuk pin input/output dua arah.
5) Port D (PD0-PD7) untuk pin input/output dua arah.
6) Reset merupakan pin yang digunakan untuk mereset mikrokontroler ke kon-disi semula.
7) XTAL 1 dan XTAL 2 sebagai pin masukan clock eksternal, di mana mikrokontroler membutuhkan sumber detak (clock) agar dapat mengeksekusi intruksi yang ada di memori. Semakin tinggi nilai kristalnya, maka semakin cepat mikrokontroler dalam mengeksekusi program.
8) AVCC sebagai pin masukan tegangan untuk ADC dan AREF sebagai pin masukan tegangan referensi.
2. Arsitektur Mikrokontroler RISC
Pada dasarnya, mikrokontroler ATmega16 menggunakan arsitektur Harvard yang memisahkan antara memori dan bus untuk program serta data guna dengan tujuan memaksimalkan kemampuan dan kecepatan. Instruksi dalam memori program dieksekusi dengan single level pipelining. Ketika satu instruksi dieksekusi, instruksi berikutnya diambil dari memori program. Konsep mengakibatkan instruksi dieksekusi setiap clock cycle. CPU terdiri atas 32 x 8 bit general purpose register yang dapat diakses dengan cepat dalam satu clock cycle.
3. General Purpose Register
Walaupun tidak secara fisik diimplementasikan sebagai lokasi SRAM, tetapi pengaturannya memberikan fleksibilitas dalam mengakses register seperti register pointer X, Y, dan Z dapat diset menuju index dari register file manapun. Oleh sebab itu, struktur 32 general purpose register terdapat dalam CPU di mana setiap.register ditentukan oleh alamat memori data yang dipetakan ke dalam 32 lokasi pertama data user.
4. Stack Pointer
Stack digunakan dalam menyimpan data sementara, variabel lokal, dan return address setelah interrupt dan pemanggilan subrutin. Stack diimplementasikan mulai dari lokasi memori tertinggi ke lokasi memori terendah sehingga perintah PUSH akan mengurangi stack pointer. Stack Pointer selalu menunjuk ke puncak stack.
5. Peta Memori ATMega16
Beberapa hal yang berhubungan dengan peta memori ATMega16 adalah sebagai berikut.
a. Memori Program
Arsitektur AVR memiliki dua memori utama, yaitu memori data dan memori program. Selain itu ATMega16 memiliki memori EEPROM untuk menyimpan data. ATMega16 memiliki 16 kbyte On-Chip In-System Reprogrammable Flash Memory untuk menyimpan program. Karena semua instruksi AVR memiliki format 16 atau 32 bit, flash diatur dalam 8K x 16 bit. Untuk keamanan program dan memori program, maka flash dipecah menjadi dua bagian, yaitu program boot dan aplikasi. Bootloader identik dengan program kecil yang bekerja pada saat start-up time yang dapat memasukan seluruh program aplikasi dalam memori prosesor.
b. Memori Data (SRAM)
Memori data AVR ATmega16 terbagi dalam 3 bagian, yaitu 32 buah register umum, 64 buah register I/O, dan 1 kbyte SRAM internal. General Purpose Register menempati alamat data terbawah yaitu $00 sampai $1F. Adapun memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroler seperti control register, timer/counter, fungsi-fungsi I/O dan sebagainya. 1024 alamat memori berikutnya mulai dari alamat $60 hingga $45F digunakan untuk SRAM internal.
c. Memori Data EEPROM
ATMega16 memiliki 512 byte memori data EEPROM 8 bit. Data dapat ditulis/dibaca dari memori tersebut ketika catu daya dimatikan data terakhir yang ditulis dalam EEPROM masih tersimpan dan bisa dibaca kembali. Dalam arti lain, memori bersifat nonvolatile. Alamat EEPROM mulai dari $000 $1FF.
6. Status Register (SREG)
SREG sebagai bagian dari inti CPU mikrokontroler. Status register identik dengan register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi.A Dasar-Dasar Mikrokontroler
Pembuatan chip di era digital memiliki ciri khas berupa kemampuan komputasi sangat cepat, bentuk yang semakin kecil, dan harga yang semakin murah. Salah satunya adalah mikrokontroler. Perangkat tersebut dapat dijumpai pada mainan anak-anak serta berbagai perangkat dan peralatan elektronik rumah tangga, industri, pendukung otomotif, telekomunikasi, medis dan kedokteran, sampai dengan pada bidang pertahanan dan keamanan negara. Secara umum, AVR membagi jenis atau tipe mikrokontroler menjadi empat yaitu keluarga AT90Sxx, keluarga ATMega, keluarga Attiny, dan keluarga AT86RFxx. Faktor paling mudah dalam membedakan di antara masing-masing kelas adalah memori, peripheral, dan fungsinya.
1. Perkembangan Mikrokontroler
Kebutuhan pasar (market need) dan perkembangan teknologi baru menjadi alasan utama tentang daya guna mikrokontroler. Kebutuhan yang tinggi terhadap smart chip dengan berbagai fasilitasnya sejak tahun 1970-an, memacu pada vendor untuk berlomba dalam menawar-kan produk-produk mikrokontrolernya. Misalnya seri mikrokontroler 6800 besutan Motorola menjadi 68HC05, 68HC08, 68HC11, 68HC12, dan 68HC16 yang terus dikembangkan hingga sekarang.
2. Keunggulan Peralatan Berbasis Mikrokontroler
Beberapa keunggulan yang diharapkan dari alat-alat yang berbasis mikro-kontroler (microcontroller-based solutions), antara lain sebagai berikut.
a. Penggunaan komponen dipersedikit (reduced component count), sehingga mampu menekan biaya produksi (lower manufacturing cost).
b. Kehandalan tinggi (high reliability) dan kemudahan integrasi dengan komponen lain (high degree of integration).
c. Konsumsi daya yang rendah (lower power consumption).
d. Waktu pembuatan lebih singkat (shorter development time) sehingga lebih cepat dijual ke pasar sesuai kebutuhan (shorter time to market).
e. Ukuran yang semakin dapat diperkecil (reduced in size).
3. Perbedaan Mikrokontroler dan Mikroprosesor
Terdapat perbedaan yang mencolok antara mikrokontroler dan mikroprosesor yang dapat dilihat dari dua faktor utama, yaitu arsitektur perangkat keras (hardware architecture) dan aplikasi masing-masing. Namun secara mendasar, kedua rancangan tersebut memiliki penekanan dan tujuan yang berbeda. Beberapa perbedaan antara mikrokontroler dan mikroprosesor, yaitu sebagai berikut.
a. Perbedaan secara Arsitektur
Single chip CPU hanya dijumpai pada mikroprosesor, sedangkan dalam IC mikrokontroler terdiri atas CPU dan device lain yang berfungsi sebagai single chip komputer. Secara umum, di dalam satu unit IC mikrokontroler terdapat konverter analog ke digital, serial dan paralel interface, timer, interrupt controller, ROM, RAM, EPROM, dan lain-lain.
b Perbedaan secara Aplikasi
Mikroprosessor berfungsi sebagai Central Processing Unit yang menjadi otak komputer, sedangkan mikrokontroler dalam bentuknya yang mini ditujukan untuk melakukan tugas-tugas yang berorientasi kontrol pada rangkaian yang membutuhkan jumlah komponen minimum dan biaya rendah (low cost).
B.Manipulasi Dasar-Dasar Mikrokontroler
Pada awalnya, kontroler dibangun dari kom-ponen-komponen logika secara menyeluruh, se-hingga menjadikannya besar dan berat. Setelah itu barulah dipergunakan mikroprosesor sehingga keseluruhan kontroler masuk ke dalam PCB yang relatif kecil. Hingga sekarang masih sering dijum-pai kontroler-kontroler yang dikendalikan oleh mikroprosesor biasa. Proses pengecilan komponen terus berlangsung, hingga semua komponen yang diperlukan dapat dikemas dalam satu keping. Sehingga keluar istilah komputer keping tunggal (one chip microcomputer) yang disebut mikrokontroler. Rata-rata mikrokontroler memiliki instruksi manipulasi bit, akses ke I/O secara langsung dan mudah, dan proses interupt yang cepat dan efisien. Dengan kata lain, mikrokontroler secara drastis mengurangi jumlah komponen dan biaya disain (harga relatif rendah).
1. Arsitektur Mikrokontroler AVR
Mikrokontroler AVR mengimplementasikan komputasi berbasis RISC (Reduced Instruction Set Computing) 8 bit menggunakan konsep arsitektur Harvard yang memisahkan memori dan bus untuk data dan program, serta menerapkan single level pipelining. Keunggulan AVR dibanding mikrokontroller lain di antaranya memiliki kecepatan eksekusi program yang lebih cepat, karena sebagian besar instruksi dieksekusi dalam satuan 1 siklus clock. Lebih cepat dibandingkan dengan mikrokontroller MCS51 yang memiliki sistem komputasi CISC (Complex Instruction Set Compute) di mana proses eksekusi 1 instruksi membutuhkan 12 siklus clock. Salah satu mikrokontroler yang sering dipakai saat adalah ATMega 16.
a. Fitur-Fitur pada ATmega16
Fitur-fitur yang dimiliki oleh ATmega 16 secara lengkap adalah sebagai berikut. 1) Mikrokontroler AVR 8 bit yang memiliki kemampuan tinggi dan daya rendah (High performance low power).
2) Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16 MHz.
3) Kapasitas Flash memori 16 KB, EEPROM 512 Byte, dan SRAM 1 KB.
4) Port I/O berjumlah 32 buah yang terbagi ke dalam port A, port B, port C dan port D.
5) CPU terdiri atas 32 register.
6) Terdapat unit interupsi internal dan eksternal.
7) Tersedia port USART untuk komunikasi serial.
8) Fitur peripheral yang terdiri atas komponen berikut.
a) Tiga buah timer/counter.
b) Real time counter dengan Oscilator sendiri.
c) 4 channel PWM.
d) 8 channel dan 10 bit ADC yang terdiri atas Single ended channel, Differential channel, dan Differential channel dengan programmable gain 1x, 10x atau 200x.
e) Byte-oriented Two Wire Serial Interface dan antarmuka SPI
f) Watchdog timer dengan oscilator internal dan On chip analog comparator.
b. Konfigurasi Pin ATmega 16
Konfigurasi pin ATmega16 memiliki fungsi pada setiap pin sebagai berikut.
1) Pin masukan catu daya (power 5 Volt) menggunakan VCC dan GND untuk pin ground.
2) Port A (PAO-PA7) untuk pin input/output dua arah dan pin masukan ADC.
3) Port B (PB0-PB7) untuk pin input/output dua arah.
4) Port C (PCO-PC7) untuk pin input/output dua arah.
5) Port D (PD0-PD7) untuk pin input/output dua arah.
6) Reset merupakan pin yang digunakan untuk mereset mikrokontroler ke kon-disi semula.
7) XTAL 1 dan XTAL 2 sebagai pin masukan clock eksternal, di mana mikrokontroler membutuhkan sumber detak (clock) agar dapat mengeksekusi intruksi yang ada di memori. Semakin tinggi nilai kristalnya, maka semakin cepat mikrokontroler dalam mengeksekusi program.
8) AVCC sebagai pin masukan tegangan untuk ADC dan AREF sebagai pin masukan tegangan referensi.
2. Arsitektur Mikrokontroler RISC
Pada dasarnya, mikrokontroler ATmega16 menggunakan arsitektur Harvard yang memisahkan antara memori dan bus untuk program serta data guna dengan tujuan memaksimalkan kemampuan dan kecepatan. Instruksi dalam memori program dieksekusi dengan single level pipelining. Ketika satu instruksi dieksekusi, instruksi berikutnya diambil dari memori program. Konsep mengakibatkan instruksi dieksekusi setiap clock cycle. CPU terdiri atas 32 x 8 bit general purpose register yang dapat diakses dengan cepat dalam satu clock cycle.
3. General Purpose Register
Walaupun tidak secara fisik diimplementasikan sebagai lokasi SRAM, tetapi pengaturannya memberikan fleksibilitas dalam mengakses register seperti register pointer X, Y, dan Z dapat diset menuju index dari register file manapun. Oleh sebab itu, struktur 32 general purpose register terdapat dalam CPU di mana setiap.register ditentukan oleh alamat memori data yang dipetakan ke dalam 32 lokasi pertama data user.
4. Stack Pointer
Stack digunakan dalam menyimpan data sementara, variabel lokal, dan return address setelah interrupt dan pemanggilan subrutin. Stack diimplementasikan mulai dari lokasi memori tertinggi ke lokasi memori terendah sehingga perintah PUSH akan mengurangi stack pointer. Stack Pointer selalu menunjuk ke puncak stack.
5. Peta Memori ATMega16
Beberapa hal yang berhubungan dengan peta memori ATMega16 adalah sebagai berikut.
a. Memori Program
Arsitektur AVR memiliki dua memori utama, yaitu memori data dan memori program. Selain itu ATMega16 memiliki memori EEPROM untuk menyimpan data. ATMega16 memiliki 16 kbyte On-Chip In-System Reprogrammable Flash Memory untuk menyimpan program. Karena semua instruksi AVR memiliki format 16 atau 32 bit, flash diatur dalam 8K x 16 bit. Untuk keamanan program dan memori program, maka flash dipecah menjadi dua bagian, yaitu program boot dan aplikasi. Bootloader identik dengan program kecil yang bekerja pada saat start-up time yang dapat memasukan seluruh program aplikasi dalam memori prosesor.
b. Memori Data (SRAM)
Memori data AVR ATmega16 terbagi dalam 3 bagian, yaitu 32 buah register umum, 64 buah register I/O, dan 1 kbyte SRAM internal. General Purpose Register menempati alamat data terbawah yaitu $00 sampai $1F. Adapun memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F. Memori I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroler seperti control register, timer/counter, fungsi-fungsi I/O dan sebagainya. 1024 alamat memori berikutnya mulai dari alamat $60 hingga $45F digunakan untuk SRAM internal.
c. Memori Data EEPROM
ATMega16 memiliki 512 byte memori data EEPROM 8 bit. Data dapat ditulis/dibaca dari memori tersebut ketika catu daya dimatikan data terakhir yang ditulis dalam EEPROM masih tersimpan dan bisa dibaca kembali. Dalam arti lain, memori bersifat nonvolatile. Alamat EEPROM mulai dari $000 $1FF.
6. Status Register (SREG)
SREG sebagai bagian dari inti CPU mikrokontroler. Status register identik dengan register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi.