2. Tujuan
Mampu menjelaskan arsitektur mikrokontroler
ATMega 8535
Mampu membuat rangkaian minimum sistem
ATMega 8535
Mampu membuat rangkaian downloader
ATMega 8535
3. Sejarah Singkat Mikrokontroler AVR
Arsitektur mikrokontroler jenis AVR pertamakali dikembangkan pada
tahun 1996 oleh dua orang mahasiswa Norwegian Institute of
Technology yaitu Alf-Egil Bogen dan Vegard Wollan.
AVR sendiri adalah singkatan dari Alf and Vegard RISC atau
Advanced Virtual RISC dimana RISC adalah Reduced Instruction Set
Computer.
Mikrokontroler AVR menggunakan teknologi RISC dimana set
instruksinya dikurangi dari segi ukurannya dan kompleksitas mode
pengalamatannya.
Dalam AVR dengan arsitektur RISC 8 bit, semua instruksi berukuran 16
bit dan sebagian besar dieksekusi dalam 1 siklus clock. Berbeda
dengan mikrokontroler MCS-51 yang instruksinya bervariasi antara 8 bit
sampai 32 bit dan dieksekusi selama 1 sampai 4 siklus mesin, dimana
1 siklus mesin membutuhkan 12 periode clock
4. Fitur ATmega 8535
Frekuensi clock maksimum 16 MHz
Jalur I/O 32 buah, yang terbagi dalam PortA, PortB, PortC dan PortD
Analog to Digital Converter 10 bit sebanyak 8 input
Timer/Counter sebanyak 3 buah
CPU 8 bit yang terdiri dari 32 register
Watchdog Timer dengan osilator internal
SRAM sebesar 512 byte
Memori Flash sebesar 8 Kbyte dengan kemampuan read while write
Interrupt internal maupun eksternal
Port komunikasi SPI
EEPROM sebesar 512 byte yang dapat diprogram saat operasi
Analog Comparator
Komunikasi serial standar USART dengan kecepatan maksimal 2,5
Mbps
7. Peta Memori ATMega8535
ATMega8535 memiliki dua jenis memori yaitu
Data Memory dan Program Memory
ditambah satu fitur tambahan yaitu EEPROM
Memory untuk penyimpan data.
8. Program Memory
ATMega8535 memiliki On-Chip In-
System Reprogrammable Flash
Memory untuk menyimpan program.
Gambar 1.2 Peta Program Memory
9. Data Memory
Gambar berikut menunjukkan peta memori SRAM pada ATMega8535.
Terdapat 608 lokasi address data memori. 96 lokasi address digunakan
untuk Register File dan I/O Memory sementara 512 lokasi address lainnya
digunakan untuk internal data SRAM. Register File terdiri dari 32 general
purpose working register, I/O register terdiri dari 64 register.
11. EEPROM Data Memory
ATMega8535 memiliki EEPROM sebesar 512 byte untuk menyimpan data.
Lokasinya terpisah dengan sistem address register, data register dan control
register yang dibuat khusus untuk EEPROM.
12. Status Register (SREG)
Status Register adalah register yang memberikan informasi
yang dihasilkan dari eksekusi instuksi aritmatika. Informasi ini
berguna untuk mencari alternatif alur program sesuai dengan
kondisi yang dihadapi.
13. Status Register (SREG)
Bit 7 – I : Global Interrupt Enable
Jika bit Global Interrupt Enable diset, maka fasilitas interupsi dapat dijalankan. Bit ini akan
clear ketika ada interrupt yang dipicu dari hardware, setelah program interrupt dieksekusi,
maka bit ini harus di set kembali dengan instruksi SEI.
Bit 6 – T : Bit Copy Storage
Instruksi bit copy BLD dan BST menggunakan bit T sebagai sumber atau tujuan dalam
operasi bit.
Bit 5 – H: Half Carry Flag
Bit 4 – S : Sign Bit
Bit S merupakan hasil exlusive or dari Negative Flag N dan Two’s Complement Overflow
Flag V.
Bit 3 – V : Two’s Complement Overflow Flag
Digunakan dalam operasi aritmatika
14. Status Register (SREG)
Bit 2 – N : Negative Flag
Jika operasi aritmatika menghasilkan bilangan negatif, maka bit ini akan set.
Bit 1 – Z : Zero Flag
Jika operasi aritmatika menghaslkan bilangan nol, maka bit ini akan set.
Bit 0 – C : Carry Flag
Jika suatu operasi menghasilkan Carry, maka bit ini akan set.
15. Setting Port I/O
Port Input/Output (I/O) pada mikrokontroler ATmega
8535 dapat disetting menjadi port input atau output.
Setiap port terdiri dari 3 register yaitu DDRx, PORTxn
dan PINxn, misalnya untuk PortA, maka terdapat 3
register yaitu DDRA, PORTA dan PINA yang masing-
masing dapat diakses per bit menjadi DDRA.0, DDRA.1,
… DDRA.7. PORTA.0, PORTA.1,… PORTA.7 dan
PINA.0, PINA.1,… PINA.7.
16. Setting Port I/O
Output High (Source)NoOutputX11
Output Low (Sink)NoOutputX01
Tri-state (Hi-Z)NoInput110
Pxn will source current if ext. pulled lowYesInput010
Tri-state(Hi-Z)NoInputX00
CommentPull-upI/O
PUD
(in SFIOR)
PORTxnDDRxn
17. Setting Port I/O
Register DDRx berfungsi untuk memilih arah data dari sebuah
pin.Jika DDRx diset 1, maka Pxn akan menjadi pin output. Jika
DDRx diset 0, maka Pxn berfungsi sebagai input.
Jika PORTxn diset 1 ketika sebuah pin difungsikan sebagai
input, maka resistor pull-up akan diaktifkan. Jika PORTxn diset 0,
maka resistor pull-up dimatikan dan pin tersebut menjadi tri-state
(memiliki kondisi High, Low atau High-Z).
Jika PORTxn diset 1 ketika sebuah pin difungsikan sebagai
output, maka Pxn akan diset High (berlogika 1). Jika PORTxn
diset 0, maka Pxn akan diset Low (berlogika 0).
Pada register SFIOR (Special Function I/O Register) terdapat
sebuah bit PUD (Pull-Up Disable) yang apabila diset 1, maka
akan menon-aktifkan semua fungsi pull-up pada semua pin.
18. Setting Port I/O Pada CodeWizard
Pada CodeWizard tampak bahwa dilakukan setting
PortA sebagai berikut :
PortA.0 sebagai input tri-state
PortA.1 sebagai input dengan pull-up
PortA.2 sebagai output dengan kondisi output Low
PortA.3 sebagai output dengan kondisi output High
PortA.4 sebagai input tri-state
PortA.5 sebagai input tri-state
PortA.6 sebagai input tri-state
PortA.7 sebagai input tri-state