OLEH :
ELTAMARA KHAIRUNISA (061630700557)
2. 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. 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
Blok Diagram ATMega16
3. 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.
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
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.
• 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
• 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
6. Port D (PD0 – PD7) merupakan pin input/output dua arah (full duplex) dan
selain itu merupakan pin khusus, seperti dapat dilihat pada tabel dibawah ini.
Tabel 2.3 Fungsi Khusus Port D
Bit 7 6 5 4 3 2 1 0
TCCR1 COM1A COM1A COM1B COM1B FOC1 WGM1 WGM1
A 1 0 1 0 A FOC1B 1 0
Keterangan:
COM1A1/COM1 COM1A1/COM1B
B1 1 Deskripsi
0 0 NormalPort Operation,OC1A/OC1B
disconnected
COM1A1/COM1 COM1A1/COM1
B1 B1 Deskripsi
COM1A1/COM1 COM1A1/COM1B
B1 1 Deskripsi
Toggle OC1A on
compare match, OC1B
0 1
disconnected
Mode operasi sebanyak 16 mode, diatur dalam bit WGM ini. Mode operasi
Immedia
0 0 0 0 0 Normal 0xFFFF te MAX
PWM, Phase
1 0 0 0 1 Correct 8-Bit 0x00FF TOP BOTTOM
PWM, Phase
2 0 0 1 0 Correct 9-Bit 0x01FF TOP BOTTOM
PWM, Phase
3 0 0 1 1 Correct 10-Bit 0x03FF TOP BOTTOM
Immedia
4 0 1 0 0 CTC OCR1A te MAX
BOTTO
5 0 1 0 1 Fast PWM, 8-Bit 0x00FF M TOP
BOTTO
6 0 1 1 0 Fast PWM, 9-Bit 0x01FF M TOP
BOTTO
7 0 1 1 1 Fast PWM, 10-Bit 0x03FF M TOP
Bit 7 6 5 4 3 2 1 0
TCCR1
B ICNC1 ICES1 - WGM13 WGM12 CS12 CS11 CS10
Keterangan:
Bit 7 : Input Capture Noise Canceler, ketika bit ini diset 1(high) maka
Noise Canceler aktif dan masukkan dari Input Capture Pin (ICP1) terfilter.
Bit 6 : Input Capture Edge Select, bit ini digunakan untuk trigger yang
disebabkan oleh edge ICP1. Jika bit ini diset 1 maka sebuah rising edge (positif)
akan men-trigger capture, Jika bit ini diset 0 maka sebuah falling edge (negatif)
akan men-trigger capture.
selanjutnya.
Bit 2, 1 dan 0 : Clock Select, bit ini digunakan untuk memilih jenis sumber clock
Bit 7 6 5 4 3 2 1 0
TCNT1 TCNT1[15:8
H ]
TCNT1
L TCNT1[7:0]
d. TIMSK dan TIFR, Timer Interrupt Mask Register (TIMSK) dan Timer
Interrupt Flag (TIFR) digunakan untuk mengendalikan interrupt mana yang
Bit 7 6 5 4 3 2 1 0
TIMS
K OCIE2 TOIE2 TICIE1 OCIE1A OCIE1B TOIE1 OCIE0 TOIE0
Keterangan:
Bit 7 6 5 4 3 2 1 0
TIF
R OCF2 TOV2 ICF1 OCF1A OCF1B TOV1 OCF0 TOV0
Keterangan:
Bit 7 6 5 4 3 2 1 0
OCR1n
H OCR1n[15:8]
OCR1n
L OCR1n[7:0]
Setiap mode timer seperti CTC, Fast PWM, Phase Correct PWM dan Phase
and Frequency Correct PWM, mempunyai persamaan untuk menghitung frekuensi
(clock) yang akan dihasilkannya.