Mikrokontroler AVR

28 downloads 274 Views 143KB Size Report
Arsitektur mikrokontroler jenis AVR pertamakali dikembangkan pada tahun 1996 ... Mikrokontroler AVR menggunakan teknologi RISC dimana set instruksinya ...
Mikrokontroler AVR Hendawan Soebhakti 2009

Tujuan 





Mampu menjelaskan arsitektur mikrokontroler ATMega 8535 Mampu membuat rangkaian minimum sistem ATMega 8535 Mampu membuat rangkaian downloader ATMega 8535

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



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

Konfigurasi Pin ATmega 8535

Diagram Blok ATmega 8535

Peta Memori ATMega8535 

ATMega8535 memiliki dua jenis memori yaitu Data Memory dan Program Memory ditambah satu fitur tambahan yaitu EEPROM Memory untuk penyimpan data.

Program Memory ATMega8535 memiliki On-Chip InSystem Reprogrammable Flash Memory untuk menyimpan program.

Gambar 1.2 Peta Program Memory

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.

Gambar 1.3 Peta Data Memory

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.

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.

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

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.

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 masingmasing dapat diakses per bit menjadi DDRA.0, DDRA.1, … DDRA.7. PORTA.0, PORTA.1,… PORTA.7 dan PINA.0, PINA.1,… PINA.7.

Setting Port I/O DDRxn

PORTxn

PUD (in SFIOR)

0

0

X

Input

No

Tri-state(Hi-Z)

0

1

0

Input

Yes

Pxn will source current if ext. pulled low

0

1

1

Input

No

Tri-state (Hi-Z)

1

0

X

Output

No

Output Low (Sink)

1

1

X

Output

No

Output High (Source)

I/O

Pull-up

Comment

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.

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

Rangkaian Minimum Sistem SPI PORT +5V

1 2 3 4 5 6

10K

MOSI MISO SCK RESET VCC GND

U1

MOSI

+5V MISO

S1 10uF/16V

33pF

XTAL

11.0592 MHz 33pF

SCK

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

PB.0 (XCK/T0) (ADC0) PA.0 PB.1 (T1) (ADC1) PA.1 PB.2 (INT2/AIN0) (ADC2) PA.2 PB.3 (OC0/AIN1) (ADC3) PA.3 PB.4 (SS) (ADC4) PA.4 PB.5 (MOSI) (ADC5) PA.5 PB.6 (MISO) (ADC6) PA.6 PB.7 (SCK) (ADC7) PA.7 RESET AREF VCC GND GND AVCC XTAL2 (TOSC2) PC.7 XTAL1 (TOSC1) PC.6 PD.0 (RXD) PC.5 PD.1 (TXD) PC.4 PD.2 (INT2) PC.3 PD.3 (INT1) PC.2 PD.4 (OC1B) (SDA) PC.1 PD.5 (OC1A) (SCL) PC.0 PD.6 (ICP1) (OC2) PD.7 ATmega8535

40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21

+5V

Downloader ATMega 8535 VCC

470

470

470

470 VCC

DB25 1K 6 7 9 10 5 18

100 100 100 100

SPI

U1 2 3 4 5 6 7 8 9 1 19

A1 A2 A3 A4 A5 A6 A7 A8 G1 G2

Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8

18 17 16 15 14 13 12 11

SCK MOSI MISO RST GND VCC

10nF VCC

74HC541

1K

Hubungkan pin 2 dan 12 pada DB25 74HC541 : VCC pin 20 GND pin 10 Hendaw an Soebhakti @ 2008

100nF LED