Mikrokontroler
Struktur Dasar Mikrokontroler
Sebuah mikrokontroler minimal memiliki unit penyimpanan, unit pemroses data dan port input/output (port I/O). Unit pemroses data disebut dengan CPU yaitu singkatan dari Central Processing Unit. CPU merupakan otak dari mikrokontroler yang mengerjakan setiap perintah di dalam program. Kecepatan proses dari CPU pada mikrokontroler ditentukan oleh besarnya clock yang dinyatakan dengan satuan Hertz (Hz), biasanya dalam orde MegaHertz (MHz).
ROM dan RAM
Memori merupakan unit penyimpanan yang berfungsi sebagai tempat untuk menyimpan data di dalam mikrokontroler. Ada dua jenis memori di dalam mikrokontroler yaitu RAM dan ROM. RAM singkatan dari Random Access Memory sedangkan ROM singkatan dari Read Only Memory. RAM berfungsi untuk menyimpan data selama mikrokontroler menyala dan saat proses menjalankan program. Data di dalam RAM akan hilang ketika daya mikrokontroler dimatikan. Sedangkan ROM berfungsi untuk menyimpan data yang lebih bersifat semi permanen. Data di dalam ROM tidak akan hilang jika mikrokontroler dimatikan, akan tetapi bisa diganti dengan cara diprogram ulang. Ada dua jenis ROM di dalam mikrokontroler yaitu flash ROM dan data ROM. Flash ROM berfungsi untuk menyimpan file program mikrokontroler dalam bentuk HEX atau BIN. Sedangkan data ROM berfungsi untuk menyimpan data selain program seperti data-data variabel dan konstanta.
PORT
Port merupakan terminal dari mikrokontroler agar bisa berhubungan dengan dunia luar. Ada dua jenis port yang terdapat pada mikrokontroler yaitu port input dan port output. Oleh karena itu, port mikrokontroler sering disebut dengan I/O Port. Port input yaitu terminal untuk masukan dari mikrokontroler. Cara kerja mikrokontroler pada port ini yaitu mendeteksi kondisi port input bernilai high (1) atau low (0), kemudian memproses program yang sesuai dengan kondisi kedua port input tersebut.
Port output yaitu terminal untuk keluaran dari mikrokontroler. Hasil proses mikrokontroler yang harus terhubung dengan perangkat atau komponen lain akan dihubungkan melalui port output ini. Cara kerja mikrokontroler pada port ini memiliki register yang mewakili port output, kemudian menentukan nilai high (1) dan low (0) melalui register tersebut. Misalnya mikrokontroler akan membuat port output high, maka program akan mengeset nilai register port output menjadi 1 dan begitu juga sebaliknya.
REGISTER
Register pada mikrokontroler merupakan sebuah tempat atau komponen virtual yang disimpan dalam memori. Register-register mikrokontroler diumpamakan sebagai pembantu prosesor mikrokontroler (CPU) ketika bekerja memproses data yang tersimpan dalam program memori. Register ini bekerja sangat cepat dan memiliki alamat lokasi tertentu sebagai pengenal ketika dipanggil.
Jenis – jenis Mikrokontroler
Ada banyak sekali jenis mikrokontroler yang umum digunakan. Jenis-jenis mikrokontroler bisa dikelompokkan berdasarkan pabrik, generasi, instruksi set, memori dan arsitekturnya. Contoh mikrokontroler yang saat ini umum digunakan adalah AVR dan MCS51 dari perusahaan ATMEL. Sedangkan arsitektur dasar mikrokontroler yang sedang mengalami perkembangan pesat yaitu ARM yang digunakan pada perangkat android.
Berdasarkan instruksi setnya, mikrokontroler dibedakan menjadi dua jenis, yaitu :
- CISC singkatan dari Complex Instruction Set Computer merupakan mikrokontroler dengan instruksi set lengkap. Keluarga mikrokontroler MCS51 dari ATMEL termasuk jenis ini.
- RISC singkatan dari Reduced Instruction Set Computer merupakan mikrokontroler yang memiliki instruksi set terbatas. Keluarga mikrokontroler AVR dari ATMEL termasuk jenis ini.
Fungsi Dasar Mikrokontroler
Mikrokontroler sangat bermanfaat bagi kehidupan kita. Contoh nyata dari aplikasi mikrokontroler yaitu sistem remote control pada pesawat televisi, audio dan AC. Selain itu, mikrokontroler juga banyak digunakan pada dunia industri seperti pada mesin-mesin produksi dan instrumentasi. Saat ini fungsi dasar mikrokontroler semakin meluas dan hampir menjangkau setiap aspek kehidupan masyarakat. Mikrokontroler sudah bisa digunakan untuk membantu promosi dengan adanya running text display. Mikrokontroler juga berfungsi pada bank dan kantor layanan publik dengan aplikasi pada sistem nomor antrian dan masih banyak lagi fungsi dan aplikasi mikrokontroler lainnya.
Mikrokontroler PIC
Mikrokontroler PIC disebut dengan Peripheral Interface Controller dan saat ini diperluas menjadi Programmable Intellegent Computer. PIC merupakan mikrokontroler keluaran Microchip Technology yang pertama kali dibuat pada tahun 1975. PIC dikembangkan oleh Divisi Mikroelektronik General Instruments dengan nama PIC1640.
PIC awalnya dimaksudkan untuk digunakan dengan CP1600, mikroprosesor 16 bit chip tunggal pertama yang tersedia secara komersial. CP1600 memiliki bus kompleks yang membuatnya sulit untuk berinteraksi. PIC diperkenalkan sebagai perangkat pendamping yang menawarkan ROM untuk penyimpanan program, RAM untuk penanganan data sementara dan CPU untuk mengontrol transfer.
PIC berarsitektur RISC 8 bit dan juga memiliki fungsi yang mirip dengan CPU, seperti memori, kalkulasi dan sistem kerja menggunakan software. Salah satu contoh seri PIC yaitu PIC 16F88. Mikrokontroler PIC biasanya memiliki 20 sampai 60 pin yang digunakan untuk mengontrol input dan output dari mikrokontroler. Biasanya mikrokontroler PIC diintegrasikan ke dalam papan sirkuit dan diprogram menggunakan bahasa C. Harga dari mikrokontroler PIC sendiri tidak mahal, fleksibel dan mudah digunakan sehingga menjadi pilihan populer di mikrokontroler.
Ada berbagai jenis mikrokontroler PIC. Namun ada beberapa perbedaan dari faktor bentuk, jumlah pin dan jumlah memori. Untuk paket dual in-line (DIP) biasanya lebih disukai oleh programmer PIC karena lebih mudah untuk dikerjakan dan dapat dengan mudah ditambahkan ke papan sirkuit. Sedangkan paket quad flat no-leads (QFN) umumnya digunakan dalam pengaturan industri karena lebih ringkas. Pin atau memori yang ada di mikrokontroler PIC tidak akan digunakan semuanya, jadi tidak perlu membeli mikrokontroler top-of-the-line.
Fitur Mikrokontroler PIC
- PIC tidak terlibat dalam akumulasi fungsi sederhana.
- Instruksi yang efisien membuat efisiensi eksekusi jauh lebih baik.
- PIC memiliki lingkungan pengembangan yang unggul.
- Memiliki kemampuan anti-transient pada pinnya, bisa dihubungkan ke daya AC 220V melalui resistor pembatas arus, bisa dihubungkan dengan sirkuit kontrol relay, tanpa isolasi optocoupler yang membawa kenyamanan aplikasi.
- Memiliki kerahasiaan yang lengkap, dimana PIC melindungi kode dengan sekring yang aman.
- Timer pengawas bawaan dapat digunakan untuk meningkatkan keandalan operasi program.
- Mode tidur dan daya rendah.
Mikrokontroler MCS-51
Mikrokontroler MCS-51 atau Complex Instruction Set Computer merupakan produksi dari Atmel berarsitektur Harvard yang instruksinya dijalankan dalam 12 siklus clock. Chip mikrokontroler (μC) seri tunggal yang dikembangkan oleh Intel pada tahun 1980 untuk digunakan dalam embedded system. MCS-51 memiliki dua versi, yaitu 20 kaki dan 40 kaki. Fitur Flash PEROM (Programmable Eraseable Read Only Memory) yang digunakan sebagai media memori program telah disematkan pada kedua versi mikrokontroler tersebut. Secara umum, kedua versi tersebut memiliki arsitektur yang sama. Perbedaan utamanya terdapat pada bagian memori program, jumlah pewaktu 16 bit dan kapasitas memori data.
Arsitektur mikrokontroler MCS-51 diotaki oleh CPU 8 bit yang terhubung melalui satu jalur bus dengan memori penyimpanan berupa RAM dan ROM beserta jalur I/O yaitu port bit I/O dan port serial. Selain itu, terdapat fasilitas timer atau counter internal, jalur interface address dan data ke memori eksternal.
Salah satu tipe mikrokontroler MCS-51 yang banyak digunakan saat ini adalah tipe Atmel 89S51. Tipe ini banyak digunakan karena memiliki fasilitas on-chip flash memory dan In System Programming. Berikut adalah fitur-fitur yang dimiliki oleh mikrokontroler tipe 89S51.
Spesifikasi MCS-51
- 4K bytes Flash ROM
- 128 bytes RAM
- 4 port @ 8-bit I/O (Input/Output) port
- 2 buah 16 bit timer
- Interface komunikasi serial
- 64K pengalamatan code (program) memori
- 64K pengalamatan data memori
- Prosesor Boolean (satu bit – satu bit)
- 210 lokasi bit-addressable
- Fasilitas In System Programming (ISP)
Mikrokontroler MCS-51 versi 20 kaki memiliki 15 kaki sebagai kaki port 1 dan port 3, dimana 5 kaki lainnya digunakan untuk konfigurasi kerja mikrokontroler. Port 1 terdiri dari 8 jalur yaitu P1.0 sampai P1.7 dan port 3 terdiri dari 7 jalur yaitu P3.0 sampai P3.5 dan P3.7. Sedangkan MCS-51 versi 40 kaki memiliki 32 kaki sebagai port paralel dan 8 pin lainnya digunakan untuk konfigurasi kerja mikrokontroler. Satu port paralel terdiri dari 8 kaki. Jadi, 32 kaki tersebut membentuk 4 buah port paralel yang masing-masing dikenal sebagai port 0, port 1, port 2 dan port 3. Nomor dari masing-masing jalur (kaki) dari port paralel mikrokontroler MCS-51 Atmel mulai dari 0 sampai 7. Jalur (kaki) pertama dari port 0 adalah P0.0 dan jalur terakhir untuk port 3 adalah P3.7.
- VCC digunakan untuk masukan suplai tegangan.
- GND berfungsi sebagai saluran ground.
- RST berfungsi sebagai masukan reset. Kondisi “1” selama 2 siklus mesin ketika oscillator bekerja akan me-reset mikrokontroler yang bersangkutan.
- ALE/PROG digunakan untuk keluaran ALE atau Adreess Latch Enable yang akan menghasilkan pulsa-pulsa untuk menahan byte rendah (low byte) alamat selama mengakses memori eksternal. Selain itu, kaki ini juga berfungsi sebagai masukan pulsa program (the program pulse input) atau selama pemrograman flash. Pada operasi normal, ALE akan berpulsa dengan laju 1/6 dari frekuensi kristal dan dapat digunakan sebagai pewaktuan (timing) atau pendekatan (clocking) rangkaian eksternal.
- PSEN (Program Store Enable) merupakan sinyal baca untuk memori program eksternal. Saat mikrokontroler MCS-51 menjalankan program dari memori eksternal akan diaktifkan dua kali per-siklus mesin, kecuali dua aktivasi dilompati (diabaikan) saat mengakses memori data eksternal.
- EA/VPP (Exkternal Access Enable) berfungsi sebagai kontrol untuk mengakses memori dan harus dihubungkan ke ground jika mikrokontroler akan mengeksekusi program dari memori eksrternal. Selain itu, harus dihubungkan ke VCC jika akan mengakses program secara internal. Kaki ini juga berfungsi untuk menerima tegangan 12V (VPP) selama pemrograman flash, khususnya untuk tipe mikrokontroler 12V.
- XTAL1 merupakan masukan untuk penguat inverting oscillator dan masukan untuk clock internal pada rangkaian operasi mikrokontroler.
- XTAL2 merupakan keluaran dari rangkaian penguat inverting oscillator.
- Port 0 merupakan port keluaran/masukan (I/O) 8-bit bertipe open drain bi-directional. Sebagai port keluaran, masing-masing kaki dapat menyerap arus (sink current) delapan masukan TTL (sekitar 3,8 mA). Pada saat logika “1” dituliskan ke port 0, maka kaki-kaki port 0 ini dapat digunakan sebagai masukan-masukan berimpedansi tinggi. Port 0 juga dapat dikonfigurasikan sebagai jalur alamat/data bagian rendah (low byte) selama proses pengaksesan memori data dan program eksternal. Jika digunakan dalam mode ini maka port 0 memiliki pull-up internal. Port 0 juga dapat menerima kode-kode yang dikirimkan kepadanya selama proses pemrograman dan mengeluarkan kode-kode selama proses verifikasi program yang telah tersimpan dalam Flash PEROM. Dalam hal ini dibutuhkan pull-up eksternal selama proses verifikasi program.
- Port 1 merupakan port I/O 8-bit bertipe bidirectional yang dilengkapi dengan pull-up internal. Penyangga keluaran port 1 mampu memberikan/menyerap arus empat masukan TTL(sekitar 1,6 mA). Jika logika “1” dituliskan ke kaki-kaki port 1, maka masing-masing kaki port 1 akan di-pull-up high dengan pull-up internal sehingga dapat digunakan sebagai masukan. Sebagai masukan jika kaki-kaki port 1 dihubungkan ke ground (di-pull-up low), maka masing-masing kaki akan memberikan arus (source current) karena di-pull-up high secara internal. Port 1 juga menerima alamat bagian rendah (low byte) selama pemrograman dan verifikasi pada Flash PEROM.
- Port 2 merupakan port I/O 8-bit bertipe bi-directional yang dilengkapi dengan pull-up internal. Penyangga keluaran port 2 mampu memberikan/menyerap arus empat masukan TTL (sekitar 1,6 mA). Jika logika “1” dituliskan ke kaki-kaki port 2, maka masing-masing kaki port 2 akan di-pull-up high dengan pull-up internal sehingga dapat digunakan sebagai masukan. Sebagai masukan jika kaki-kaki port 2 dihubungkan ke ground (di-pull-up low), maka masing-masing kaki akan memberikan arus (source current) karena di-pull-up high secara internal. Port 2 akan memberikan byte alamat bagian tinggi (high byte) selama pengambilan instruksi dari memori program eksternal dan selama pengaksesan memori data yang menggunakan perintah dengan alamat 16-bit (misalnya: MOVX @DPTR). Dalam aplikasi ini, jika ingin mengirimkan “1”, maka digunakan pull-up internal yang sudah disediakan. Selama pengaksesan memori data eksternal yang menggunakan perintah dengan alamat 8-bit (misalnya: MOVX @R1), port 2 akan mengirimkan isi dari SFR P2. Port 2 juga menerima alamat bagian tinggi selama pemrograman dan verifikasi pada Flash PEROM.
- Port 3 merupakan port I/O 8-bit bertipe bi-directional yang dilengkapi dengan pull-up internal. Penyangga keluaran port 3 mampu memberikan/menyerap arus empat masukan TTL(sekitar 1,6 mA). Jika logika “1” dituliskan ke kaki-kaki port 3, maka masing-masing kaki port 3 akan di-pull-up high dengan pull-up internal sehingga dapat digunakan sebagai masukan. Sebagai masukan jika kaki-kaki port 3 dihubungkan ke ground (di-pull-up low), maka masing-masing kaki akan memberikan arus (source) karena di-pull-up high secara internal. Port 3 juga digunakan untuk menerima sinyal-sinyal kontrol (P3.6 dan P3.7), bersama-sama dengan port 2 (P2.6 dan P2.7) selama proses pemrograman dan verifikasi pada Flash PEROM.
Mikrokontroler ATMega8535
Mikrokontroler merupakan keseluruhan sistem komputer yang dikemas menjadi sebuah chipdimana di dalamnya sudah terdapat mikroprosesor, I/O, memori bahkan ADC. Berbeda dengan mikroprosesor yang berfungsi sebagai pemroses data.
Mikrokontroler AVR (Alf and Vegard Risc processor) memiliki arsitektur 8 bit, dimana semua instruksi dikemas dalam kode 16-bit. Di sisi lain. sebagian besar instruksi dieksekusi dalam 1 siklus clock atau dikenal dengan teknologi RISC (Reduced Instruction Set Computing). Secara umum, AVR bisa dikelompokkan ke dalam 4 kelas, yaitu keluarga ATMega, keluarga AT90Sxx dan AT86RFxx. Pada dasarnya yang membedakan masing-masing adalah peripheral, kapasitas memori dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan, mereka bisa dikatakan hampir sama.
Konfigurasi Pin ATMega8535
Berikut ini konfigurasi dan fungsi pin ATMega8535 :
- VCC digunakan sebagai input sumber tegangan positif (+)
- GND digunakan sebagai sumber tegangan negatif ground (-)
- Port A (PA7 - PA0) berfungsi sebagai input analog dari ADC (Analog to Digital Converter) dan juga sebagai port I/O dua arah, jika ADC tidak digunakan
- Port B (PB7 - PB0) berfungsi sebagai port I/O dua arah. Port PB5, PB6 dan PB7 berfungsi sebagai MOSI, MISO dan SCK yang digunakan pada proses downloading
- Port C (PC7 - PC0) berfungsi sebagai port I/O dua arah
- Port D (PD7 - PD0) berfungsi sebagai port I/O dua arah. Selain itu, port PD0 dan PD1 juga berfungsi sebagai RXD dan TXD yang digunakan untuk komunikasi serial
- RESET digunakan sebagai input reset
- XTAL1 digunakan sebagai input ke amplifier inverting osilator dan input ke sirkuit clock internal
- XTAL2 digunakan sebagai output dari amplifier inverting osilator
- AVCC digunakan sebagai input tegangan untuk Port A dan ADC
- 11. AREF digunakan sebagai tegangan referensi untuk ADC
Fitur Mikrokontroler ATMega8535
Berikut ini kapabilitas detail dari ATmega8535 :
- Sistem mikroprosesor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz
- Kapabilitas memori flash 8 KB, SRAM sebesar 512 byte dan EEPROM (Electrically Erasable Programmable Read Only Memori) sebesar 512 byte
- ADC internal dengan fidelitas 10 bit sebanyak 8 channel
- Port komunikasi serial (USART) dengan kecepatan maksimal 2,5 Mbps
- Enam pilihan mode sleep untuk menghemat penggunaan daya listrik.
Arsitektur ATMega8535
Berdasarkan blok diagram di atas bisa dilihat bahwa ATMega8535 memiliki bagian-bagian sebagai berikut :
- Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D
- ADC 8 channel 10 bit
- Tiga buah timer/counter dengan kemampuan pembanding
- CPU yang terdiri dari 32 buah register
- Watchdog timer dengan osilator internal
- SRAM 512 byte
- Memori Flash sebesar 8KB dengan kemampuan Read While Write
- Interrupt internal dan eksternal
- Port antarmuka SPI (Serial Peripheral Interface)
- EEPROM 512 byte yang bisa diprogram ketika operasi
- Antarmuka komparator analog
- Port USART untuk komunikasi serial
Mikrokontroler ATMega32
Mikrokontroler ATMega32 merupakan mikrokontroler yang diproduksi oleh Atmel. Mikrokontroler tersebut memiliki clock dan kinerja hingga 16 MHz. Ukuran flash memorinya cukup besar, kapasitas SRAM sebesar 2 Kilobyte dan 32 buah port I/O yang sangat memadai untuk berinteraksi dengan LCD serta keypad.
- Arsitektur CPU ATmega32
- CPU berfungsi untuk memastikan pengeksekusian instruksi dilakukan dengan benar. CPU harus bisa mengakses memori, menangani interupsi, mengontrol peripheral dan melakukan kalkulasi serta memiliki 32 buah general purphose register yang membantu kinerja ALU.
- Program Memori
ATMega32 memiliki kapasitas memori flash sebesar 32KB untuk menyimpan program. Flash memori dibuat berukuran 16K x 16 karena lebar instruksi 16 bit atau 32 bit. Arti dari "16K" yaitu alamat di flash memori yang bisa digunakan dimulai dari alamat 0 heksa hingga 3FFF heksa dan setiap alamatnya menyimpan instruksi 16 bit. - SRAM Data Memori
ATMega32 memiliki 2KB SRAM yang digunakan untuk menyimpan variabel. Ada tempat khusus di SRAM yang senantiasa ditunjuk oleh register SP yaitu disebut dengan stack. Stack tersebut digunakan untuk menyimpan nilai yang di push. - EEPROM Data Memori
EEPROM data memori yang dimiliki oleh ATMega32 sebanyak 1024 byte. Data yang berada di EEPROM tidak akan hilang meskipun catuan daya ke sistem mati. EEPROM digunakan untuk menyimpan parameter sistem yang penting. Parameter dibaca dan diinisialisasikan oleh sistem sesuai dengan nilai paramater tersebut ketika sistem menyala pertama kali. - Interupsi
ATMega32 memiliki sumber interupsi sebanyak 21 buah. Ketika interupsi diaktifkan dan terjadi interupsi, maka CPU menunda instruksi sekarang dan melompat ke alamat rutin interupsi yang terjadi. Setelah selesai mengeksekusi semua instruksi yang ada di alamat rutin, interupsi CPU kembali melanjutkan instruksi yang sempat tertunda. - I/O Port
Ada 32 buah pin I/O pada ATMega32. Pin I/O tersebut digunakan untuk berinteraksi dengan sistem lain. Setiap pin I/O memiliki 3 register, yaitu DDxn, PORTxn dan PINxn. Untuk menentukan arah pin I/O menggunakan kombinasi nilai DDxn dan PORTxn. - Clear Timer on Compare Match (CTC)
CTC atau clear timer on compare match merupakan salah satu mode Timer/Counter1. Selain itu ada normal mode, fastPWM mode dan juga phase correct PWM mode. Pada CTC mode, nilai TCNT1 akan menjadi nol ketika nilai TCNT1 telah sama dengan OCR1A atau ICR1. Jika nilai top ditentukan OCR1A dan interupsi diaktifkan untuk compare match A, maka ketika nilai TCNT1 sama dengan nilai OCR1A interupsi akan terjadi. CPU melayani interupsi ini dan nilai TCNT1 menjadi nol. - USART
USART berfungsi untuk general I/O. Selain itu, pin PD1 dan PD0 ATMega32 berfungsi untuk mengirim dan menerima bit secara serial. Pengubahan fungsi ini dibuat dengan mengubah nilai beberapa register serial. Untuk menekankan fungsi ini, pin PD1 disebut TxD dan pin PD0 disebut RxD.
Lesson Summary
Mikrokontroler adalah sebuah perangkat elektronik yang memiliki fungsi dasar untuk mengolah data atau memproses data. Struktur dasar mikrokontroler meliputi:- CPU (Central Processing Unit) – sebuah otak dari mikrokontroler yang mengerjakan setiap perintah di dalam program, berdasarkan clock yang bersifat MegaHertz (MHz).
- Memori RAM dan ROM – tempat untuk menyimpan data, dengan RAM berfungsi selama mikrokontroler menyala, dan ROM untuk menyimpan data bersifat semi permanen.
- Port I/O – untuk membuat hubungan komunikasi antara mikrokontroler dengan dunia luar, terdapat port input dan output yang masing-masing berfungsi untuk masukan dan keluaran.
- Register – sebuah tempat atau komponen virtual yang disimpan dalam memori yang berfungsi sebagai pembantu proses CPU mikrokontroler.
0 komentar