PENGENALAN MIKROKONTROLER
Mikrokontroler AVR ATmega
AVR (Alf and Vegard’s Risc Processor) merupakan salah satu jenis mikrokontroler yang di dalamnya terdapat berbagai macam fungsi. AVR memiliki keunggulan dibandingkan dengan mikrokontroler jenis lain, keunggulannya yaitu AVR memiliki kecepatan eksekusi program yang lebih cepat karena sebagian besar instruksi dieksekusi dalam 1 siklus clock, lebih cepat bila dibandingkan dengan mikrokontroler jenis MCS51 yang memiliki arsitektur CISC (Complex Instruction Set Compute) dimana mikrokontoller MCS51 membutuhkan 12 siklus clock untuk mengeksekusi 1 instruksi (Heri Andrinto, 2008:2). Selain itu kelebihan mikrokontroler AVR memiliki POS (Power On Reset), yaitu tidak perlu adanya tombol reset dari luar karena cukup hanya dengan mematikan supply, maka secara otomatis AVR akan melakukan reset. Antar seri mikrokontroler AVR memiliki beragam tipe dan fasilitas, namun kesemuanya memiliki arsitektur yang sama, dan juga set instruksi yang relatif tidak berbeda. Berikut tabel perbandingan beberapa seri mikrokontroler AVR buatan Atmel.
Tabel 1. perbandingan beberapa seri mikrokontroler AVR buatan Atmel
Seri
|
Flash (KBytes)
|
RAM (Bytes)
|
EEPROM (KBytes)
|
Pin I/O
|
Timer 16-bit
|
Timer 8-bit
|
UART
|
PWM
|
ADC 10-bit
|
SPI
|
ISP
|
ATmega8
|
8
|
1024
|
0.5
|
23
|
1
|
1
|
1
|
3
|
6/8
|
1
|
Ya
|
ATmega8535
|
8
|
512
|
0.5
|
32
|
2
|
2
|
1
|
4
|
8
|
1
|
Ya
|
ATmega16
|
16
|
1024
|
0.5
|
32
|
1
|
2
|
1
|
4
|
8
|
1
|
Ya
|
ATmega162
|
16
|
1024
|
0.5
|
35
|
2
|
2
|
2
|
6
|
8
|
1
|
Ya
|
ATmega32
|
32
|
2048
|
1
|
32
|
1
|
2
|
1
|
4
|
8
|
1
|
Ya
|
ATmega128
|
128
|
4096
|
4
|
53
|
2
|
2
|
2
|
8
|
8
|
1
|
Ya
|
ATtiny12
|
1
|
-
|
0.0625
|
6
|
-
|
1
|
-
|
-
|
-
|
-
|
Ya
|
ATtiny2313
|
2
|
128
|
0.125
|
18
|
1
|
1
|
1
|
4
|
-
|
1
|
Ya
|
ATtiny44
|
4
|
256
|
0.25
|
12
|
1
|
1
|
-
|
4
|
8
|
1
|
Ya
|
ATtiny84
|
8
|
512
|
0.5
|
12
|
1
|
1
|
-
|
4
|
8
|
1
|
Ya
|
Keterangan:
· Flash adalah suatu jenis Read Only Memory yang biasanya diisi dengan program hasil buatan manusia yang harus dijalankan oleh mikrokontroler
· RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk penyimpanan data sementara dan pengolahan data ketika program sedang running
· EEPROM (Electrically Erasable Programmable Read Only Memory) adalah memori untuk penyimpanan data secara permanen oleh program yang sedang running
· Port I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran ataupun masukan bagi program
· Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa
· UART (Universal Asynchronous Receive Transmit) adalah jalur komunikasi data khusus secara serial asynchronous
· PWM (Pulse Width Modulation) adalah fasilitas untuk membuat modulasi pulsa
· ADC (Analog to Digital Converter) adalah fasilitas untuk dapat menerima sinyal analog dalam range tertentu untuk kemudian dikonversi menjadi suatu nilai digital dalam range tertentu
· SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial secara serial synchronous
· ISP (In System Programming) adalah kemampuan khusus mikrokontroler untuk dapat diprogram langsung dalam sistem rangkaiannya dengan membutuhkan jumlah pin yang minimal
Mengenal ATmega16
Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan memori program dari memori data, baik bus alamat maupun bus data, sehingga pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent), adapun blog diagram arsitektur ATMega16. Secara garis besar mikrokontroler ATMega16 terdiri dari :
1. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16Mhz.
2. Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan SRAM 1Kbyte
3. Saluran I/O 32 buah, yaitu Port A, Port B, Port C, dan Port D.
4. CPU yang terdiri dari 32 buah register.
5. User interupsi internal dan eksternal
6. Port antarmuka SPI dan Port USART sebagai komunikasi serial
7. Fitur Peripheral
· Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare
· Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan mode capture
· Real time counter dengan osilator tersendiri
· Empat kanal PWM dan Antarmuka komparator analog
· 8 kanal, 10 bit ADC
· Byte-oriented Two-wire Serial Interface
· Watchdog timer dengan osilator internal
Gambar 1. Blok Diagram ATMega16
|
Konfigurasi Pin ATMega16
Gambar 2. Konfigurasi PIN ATMega16
|
Dengan deskripsi Pin sebagai berikut :
· VCC : Sumber Tegangan
· Ground : Ground
· Port A (PA0..PA7) : Pin ini berfungsi sebagai port masukan ke A/D Converter. Port ini juga bertindak sebagai Port I/O 8-bit dua arah, jika A/D Converter itu tidak digunakan. Pin - pin Port dapat menyediakan resistor internal pull-up (yang dipilih untuk masing-masing bit). Keluaran Port A memiliki karakteristik-karakteristik pengarah simetris dengan sitem dua arah dan sumber yang tinggi. Port A bersifat tri-stated yaitu ketika kondisi reset akan aktif, sekali pun clock tidak menjalankan.
· Port B (PB0..PB7) : Port B adalah satu Port I/O 8-bit dua arah dengan resistor-resistor pull-up internal (yang terpilih untuk masing-masing bit). Keluaran buffer Port B mempunyai karakteristik-karakteristik pengarah simetris dengan kedua kemampuan sumber yang tinggi. Pada input, Port B menggunakan sumber arus rendah jika resistor-resistor pull-up diaktifkan. Port B bersifat tri-stated, yaitu reset akan aktif walaupun clock tidak dijalankan.
· Port C (PC0..PC7) : Port C adalah satu Port I/O 8-bit dua arah dengan resistor-resistor pull-up internal (yang terpilih untuk masing-masing bit). Keluaran Port C mempunyai karakteristik-karakteristik pengarah simetris dengan kedua kemampuan sumber tinggi. Pada input, Port C menggunakan sumber arus rendah jika resistor-resistor pull-up diaktifkan. Port C bersifat tri-stated ketika reset aktif, walaupun clock tidak aktif. Jika antar muka JTAG adalah dimungkinkan, resistor-resistor pull-up pin PC5(TDI), PC3(TMS) dan PC2(TCK) akan diaktifkan walaupun reset aktif.
· Port D (PD0..PD7) : Port D adalah satu Port I/O 8-bit dua arah dengan resistor-resistor pull-up internal (yang terpilih untuk masing-masing bit). Pin - pin output Port D mempunyai karakteristik-karakteristik pengarah simetris dengan kedua kemampuan sumber tinggi. Pada input, Port D secara eksternal menggunakan sumber arus rendah yang dengan mengaktifkan resistor-resistor pull-up. Port D bersifat tri-stated, yaitu reset menjadi aktif walaupun clock tidak diaktifkan.
· RESET : Pada Input Reset, besarnya amplitude yang dibutuhkan untuk mengaktifkan reset adalah lebih besar dari panjang pulse minimum untuk mengatur ulang (sesuai datasheet), sekali pun clock itu tidak diaktifkan. Pulsa yang lebih pendek belum tentu dapat mengaktifkan reset.
· XTAL1 : Input pembalik / pembangkit Oscillator penguat dan input rangkaian operasi clock internal.
· XTAL2 : Output dari pembalik / pembangkit Oscillator penguat.
· AVCC : AVCC adalah pin sumber tegangan untuk Port A dan A/D Converter. Pin harus disambungkan secara eksternal ke VCC, walaupun konverter analog-digital tidak digunakan. Jika konverter analog-digital digunakan, Pin harus dihubungkan ke VCC melalui suatu Low-Pass Filter.
· AREF : AREF berfungsi sebagai pin referensi analog untuk A/D Converter.
Port sebagai input/output digital
ATMega16 mempunyai empat buah port yang bernama PortA, PortB, PortC, dan PortD. Keempat port tersebut merupakan jalur bidirectional dengan pilihan internal pull-up. Tiap port mempunyai tiga buah register bit, yaitu DDxn, PORTxn, dan PINxn. Huruf ‘x’ mewakili nama huruf dari port sedangkan huruf ‘n’ mewakili nomor bit. Bit DDxn terdapat pada I/O address DDRx, bit PORTxn terdapat pada I/O address PORTx, dan bit PINxn terdapat pada I/O address PINx.
Bit DDxn dalam register DDRx (Data Direction Register) menentukan arah pin. Bila DDxn diset 1 maka Px berfungsi sebagai pin output. Bila DDxn diset 0 maka Px berfungsi sebagai pin input.Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin input, maka resistor pull-up akan diaktifkan. Untuk mematikan resistor pull-up, PORTxn harus diset 0 atau pin dikonfigurasi sebagai pin output. Pin port adalah tri-state setelah kondisi reset. Bila PORTxn diset 1 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 1. Dan bila PORTxn diset 0 pada saat pin terkonfigurasi sebagai pin output maka pin port akan berlogika 0. Saat mengubah kondisi port dari kondisi tri-state (DDxn=0, PORTxn=0) ke kondisi output high (DDxn=1, PORTxn=1) maka harus ada kondisi peralihan apakah itu kondisi pull-up enabled (DDxn=0, PORTxn=1) atau kondisi output low (DDxn=1, PORTxn=0).
Biasanya, kondisi pull-up enabled dapat diterima sepenuhnya, selama lingkungan impedansi tinggi tidak memperhatikan perbedaan antara sebuah strong high driver dengan sebuah pull-up. Jika ini bukan suatu masalah, maka bit PUD pada register SFIOR dapat diset 1 untuk mematikan semua pull-up dalam semua port. Peralihan dari kondisi input dengan pull-up ke kondisi output low juga menimbulkan masalah yang sama. Kita harus menggunakan kondisi tri-state (DDxn=0, PORTxn=0) atau kondisi output high (DDxn=1, PORTxn=0) sebagai kondisi transisi.
Tabel 2. Konfigurasi pin port
Bit 2 – PUD : Pull-up Disable
Bila bit diset bernilai 1 maka pull-up pada port I/O akan dimatikan walaupun register DDxn dan PORTxn dikonfigurasikan untuk menyalakan pull-up (DDxn=0, PORTxn=1).
maaf kalau gambar tidak muncul...akan coba upload setelah ini.....