Mikrokontroler
Mikrokontroler
adalah sebuah sistem komputer lengkap dalam satu chip. Mikrokontroler lebih dari sekedar sebuah
mikroprosesor karena sudah terdapat atau berisikan ROM (Read-Only Memory), RAM
(Read-Write Memory), beberapa port masukan maupun keluaran, dan beberapa
peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC
(Digital to Analog converter) dan serial komunikasi. Salah satu mikrokontroler yang banyak
digunakan saat ini yaitu mikrokontroler AVR.
AVR adalah mikrokontroler RISC (Reduce Instuction Set Compute) 8 bit
berdasarkan arsitektur Harvard. Secara
umum mikrokontroler AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu
keluarga AT90Sxx, ATMega dan ATtiny.
Pada dasarnya yang membedakan masing-masing kelas adalah memori,
peripheral, dan fiturnya Seperti mikroprosesor pada umumnya, secara internal
mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and
Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi,
dan pewaktu serta komponen kendali lainnya.
Berbeda dengan mikroprosesor, mikrokontroler menyediakan memori dalam
chip yang sama dengen prosesornya (in chip).
Arsitektur
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. 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
Konfigurasi Pin
ATMega16
Konfigurasi pin mikrokontroler Atmega16
dengan kemasan 40. Dari gambar tersebut dapat terlihat ATMega16 memiliki 8 Pin
untuk masing-masing Port A, Port B, Port
C, dan Port D.
|
Konfigurasi PIN ATMega16 SMD |
|
Konfigurasi PIN ATMega16 PDIP |
Deskripsi
Mikrokontroler ATMega16
·
VCC (Power Supply) dan GND(Ground)
·
Port A (PA7..PA0)
Port A berfungsi sebagai input analog
pada konverter A/D. Port A juga sebagai
suatu port I/O 8-bit dua arah, jika A/D konverter tidak digunakan. Pin - pin Port dapat menyediakan resistor
internal pull-up (yang dipilih untuk masing-masing bit). Port A output buffer mempunyai karakteristik
gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Ketika pin PA0 ke PA7 digunakan sebagai input
dan secara eksternal ditarik rendah, pin–pin akan memungkinkan arus sumber jika
resistor internal pull-up diaktifkan.
Port A adalah tri-stated manakala suatu kondisi reset menjadi aktif,
sekalipun waktu habis.
·
Port B (PB7..PB0)
Pin B adalah suatu pin I/O 8-bit dua
arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Pin B output buffer mempunyai karakteristik
gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input, Pin B yang secara eksternal
ditarik rendah akan arus sumber jika resistor pull-up diaktifkan. Pin B adalah tri-stated manakala suatu
kondisi reset menjadi aktif, sekalipun waktu habis.
·
Port C (PC7..PC0)
Pin C adalah suatu pin I/O 8-bit dua
arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Pin C output buffer mempunyai karakteristik
gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input, pin C yang secara eksternal
ditarik rendah akan arus sumber jika resistor pull-up diaktifkan. pin C adalah tri-stated manakala suatu
kondisi reset menjadi aktif, sekalipun waktu habis.
·
Port D (PD7..PD0)
Pin D adalah suatu pin I/O 8-bit dua
arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit). Pin D output buffer mempunyai karakteristik
gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber. Sebagai input, pin D yang secara eksternal
ditarik rendah akan arus sumber jika resistor pull-up diaktifkan. Pin D adalah tri-stated manakala suatu
kondisi reset menjadi aktif, sekalipun waktu habis.
·
RESET (Reset input)
·
XTAL1 (Input Oscillator)
·
XTAL2 (Output Oscillator)
·
AVCC adalah pin penyedia tegangan untuk
Port A dan Konverter A/D.
·
AREF adalah pin referensi analog untuk
konverter A/D.
Peta Memori
ATMega16
Memori Program Arsitektur ATMega16 mempunyai dua memori
utama, yaitu memori data dan memori program.
Selain itu, ATMega16 memiliki memori EEPROM untuk menyimpan data. ATMega16 memiliki 16K byte On-chip In-System
Reprogrammable Flash Memory untuk menyimpan program. Instruksi ATMega16 semuanya memiliki format
16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit. Memori flash dibagi kedalam dua bagian, yaitu
bagian program boot dan aplikasi. Bootloader adalah program kecil yang bekerja
pada saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke
dalam memori prosesor.
Memori Data
(SRAM)
Memori
data AVR ATMega16 terbagi menjadi 3 bagian, yaitu 32 register umum, 64 buah
register I/O dan 1 Kbyte SRAM internal.
General purpose register menempati alamat data terbawah, yaitu $00
sampai $1F. Sedangkan 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 fitur mikrokontroler seperti kontrol register,
timer/counter, fungsi-fungsi I/O, dan sebagainya. 1024 alamat berikutnya mulai dari $60 hingga
$45F digunakan untuk SRAM internal.
|
Peta Memori Data ATMega16 |
Memori Data
EEPROM
ATMega16
terdiri dari 512 byte memori data EEPROM 8 bit, data dapat ditulis/dibaca dari
memori ini, ketika catu daya dimatikan, data terakhir yang ditulis pada memori
EEPROM masih tersimpan pada memori ini, atau dengan kata lain memori EEPROM
bersifat nonvolatile. Alamat EEPROM
mulai dari $000 sampai $1FF.
Analog To
Digital Converter
AVR
ATMega16 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal
dengan resolusi 10 bit. Dalam mode
operasinya, ADC dapat dikonfigurasi, baik single ended input maupun
differential input. Selain itu, ADC
ATMega16 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan
kemampuan filter derau (noise) yang amat fleksibel sehingga dapat dengan mudah
disesuaikan dengan kebutuhan dari ADC itu sendiri. ADC pada ATMega16 memiliki fitur-fitur antara
lain :
·
AREF adalah pin referensi analog untuk
konverter A/D.
·
Resolusi mencapai 10-bit
·
Akurasi mencapai ± 2 LSB
·
Waktu konversi 13-260μs
·
8 saluran ADC dapat digunakan secara
bergantian
·
Jangkauan tegangan input ADC bernilai
dari 0 hingga VCC
·
Disediakan 2,56V tegangan referensi
internal ADC
·
Mode konversi kontinyu atau mode
konversi tunggal
·
Interupsi ADC complete
·
Sleep Mode Noise canceler
Proses inisialisasi ADC meliputi proses
penentuan clock, tegangan referensi, formal data keluaran, dan modus
pembacaan. Register-register yang perlu
diatur adalah sebagai berikut :
·
ADC Control and Status Register A –
ADCSRA.
ADEN
: 1 = adc enable, 0 = adc disable
ADCS
: 1 = mulai konversi, 0 = konversi belum terjadi
ADATE
: 1 = auto trigger diaktifkan, trigger berasal dari sinyal yang dipilih (set
pada trigger SFIOR bit ADTS). ADC akan start konversi pada edge positif sinyal trigger.
ADIF
: Diset ke 1, jika konversi ADC selesai dan data register ter-update. Namun ADC Conversion Complete Interrupt
dieksekusi jika bit ADIE dan bit-I dalam register SREG diset.
ADIE
: Diset 1, jika bit-I dalam register SREG di-set.
ADPS[0..2]
: Bit pengatur clock ADC, faktor pembagi 0 … 7 = 2, 4, 8, 16, 32, 64, 128.
·
ADC Multiplexer-ADMUX
REFS
0, 1 : Pemilihan tegangan referensi ADC
00
: Vref = Aref
01
: vref = AVCC dengan eksternal capasitor
pada AREF
10
: vref = internal 2.56 volt dengan eksternal kapasitor pada AREF
ADLAR
: Untuk setting format data hasil konversi ADC, default = 0
·
Special Function IO Register-SFIOR
SFIOR merupakan register 8 bit pengatur
sumber picu konversi ADC, apakah dari picu eksternal atau dari picu internal.
ADTS[0...2]
: Pemilihan trigger (pengatur picu) untuk konversi ADC, bit-bit ini akan
berfungsi jika bit ADATE pada register ADCSRA bernilai 1. Konfigurasi bit
ADTS[0...2]
: dapat dilihat pada Tabel 2.1.
ADHSM
: 1. ADC high speed mode enabled. Untuk operasi ADC, bit ACME, PUD, PSR2 dan
PSR10 tidak diaktifkan.
|
Pemilihan Sumber Picu ADC |
Fitur :
· Kinerja
tinggi, rendah daya AVR ® 8-bit Microcontroller
· Advanced
RISC Arsitektur
Ø 131
Instruksi Powerfull - Most Single-clock Cycle Execution
Ø 32
x 8 Register General Purpose Working
Ø Operasi
Statis Penuh
Ø Sampai
dengan 16 MIPS throughput pada 16 MHz
Ø 2-siklus
Multiplier berada pada chipnya
· Ketahanan
Tinggi segmen memori Non-volatile
Ø 16K
Bytes pemograman memori flash didalam sistemnya
Ø 512
Bytes EEPROM
Ø 1K
Byte internal SRAM
Ø Menulis
/ Menghapus dengan Siklus: 10.000 Flash/100, 000 EEPRO
Ø Boot
Kode Bagian Opsional dengan Bits Lock Independen
- Pemrograman
didalam sistem secara On-chip Program Boot
- Baca-Tulis-Saat
beroperasi
Ø Programming
Lock untuk Keamanan Software
· JTAG
(IEEE std 1149,1 Compliant.) Interface
Ø Batas-scan
Kemampuan Menurut Standar JTAG
Ø Ekstensif
On-chip Dukungan Debug
Ø Pemrograman
Flash, EEPROM, Sekering, dan Lock Bits melalui Antarmuka JTAG
· Fitur
Peripheral
Ø Dua
8-bit Timer / Counter dengan Prescalers terpisah dan Mode Bandingkan
Ø Satu
16-bit Timer / Counter dengan Prescaler terpisah, Mode Bandingkan, dan Capture Mode
Ø Counter
Real Time dengan Osilator terpisah
Ø Empat
PWM Channels
Ø 8-channel,
10-bit ADC
- 8
Single-ended Saluran
- 7
Differential Saluran dalam Paket TQFP Hanya
- 2
Differential Saluran dengan Gain Programmable pada 1x, 10x, atau 200x
Ø Byte-oriented
Antarmuka Dua-kawat Serial
Ø Serial
USART Programmable
Ø Master
/ Slave SPI Serial Interface
Ø Timer
Programmable Watchdog On-chip dengan Oscillator terpisah
Ø Komparator
Analog On-chip
Ø Power-on
Reset dan Programmable Brown-out Detection
Ø RC
Oscillator internal yang Dikalibrasi
Ø Interrupt
Sumber Eksternal dan Internal
Ø Enam
Sleep Mode: Idle, ADC Noise Reduction, Power-save, Power-down, Stand by dan
siaga diperpanjang
· I
/ O dan Paket
Ø 32
Programmable I / O
Ø 40-pin
PDIP, 44-lead TQFP, dan 44-pad QFN / MLF
· Operasi
Tegangan
Ø 2.7
- 5.5V untuk ATmega16L
Ø 4.5
- 5.5V untuk ATmega16
· Kelas
Kecepatan
Ø 0
- 8 MHz untuk ATmega16L
Ø 0
- 16 MHz untuk ATmega16
· Konsumsi
Daya @ 1 MHz, 3V, dan 25 ° C untuk ATmega16L
Ø Aktif:
1,1 mA
Ø Diam
Mode: 0,35 mA
Ø Power-down
Mode: <1 p="p">