Anda di halaman 1dari 30

Arsitektur ATMEGA 8535

Ratna Aisuwarya, M.Eng

Pada dasarnya mikrokontroler bukanlah ilmu pengetahuan yang baru, tetapi adalah hasil pengembang dalam teknologi elektronika.
Jika dasar pengetahuan seperti : Elektronika dasar Rangkaian listrik Sistem digital Mikroprosesor Bahasa rakitan

Semua bidang ilmu diatas akan sangat membantu dalam mempelajari mikrokontroler

Perangkat pengembang mikrokontroler sbb: Compiler (Penterjemah): Berupa perangkat lunak karena mikrokontroler beroperasi dengan bahasa mesin, sedangkan manusia terbiasa memakai bahasa yang lebih tinggi seperti Bahasa Assembler, C/C++, Basic dll. Atau manusia biasa sulit memahami bahasa mesin, maka dengan bantuan Compiler (Penterjemah) bahasa pemograman diterjemahkan menjadi bahasa mesin. Simulator: Berupa perangkat lunak yang mensimulasikan kerja dari mikrokontroler. Dengan bantuan simulator seorang programer dapat melihat hasil program yang di buat sebelum di tulis / di isi ke dalam IC mikrokontroler.

Emulator: Berupa perangkat keras dan perangkat lunak. Suatu alat yang di hubungkan dengan PC. Program yang sudah selesai di buat di tulis (Download) ke emulator kemudian emulator akan bekerja sendiri walaupun koneksi dilepas dari PC. Jika terjadi kesalahan atau program yang di buat belum sesuai dengan keinginan maka setelah program diperbaiki dapat di tulis (Download) ulang ke emulator catatan: Emulator sering di sebut dengan target

Programmer: Berupa perangkat yang berfungsi untuk mengisi program yang dibuat kedalam mikrokontroler atau bisa di sebut sebagai interface antara mikrokontroler dengan PC. Mikrokontroler Atmega 16/32/8535 dapat terhubung ke PC melalui : Port Serial = DB 9 Port Paralel = DB 25 (LPT) atau dengan Universal Serial BUS (USB)

Fungsi Blok Mikrokontroler


CPU Bagian paling penting dari sebuah mikrokontroler yang berfungsi untuk melakukan pemrosesan data Memory ATMEGA Memory dapat diakses dengan alamat 8 bit. Pada mikrokontroler program kontrol disimpan di dalam ROM

Konfigurasi Pin
Port B Port A / ADC Interfacing / ISP

Port C Port D

Adapun fungsi pin pada mikrokontroler ATMEGA: Port (TA 0-7) Terdapat pada kaki 33 s/d 40. Berfungsi sebagai Port I/O dua arah dan berfungsi khusus sebagai pin masukan ADC (converter analog ke digital)
Port Pin
PA.0 PA.1 PA.2

Fungsi
PA0 ADC0 (ADC input channel 0 PA1 ADC1 (ADC input channel 1 PA0 ADC2 (ADC input channel 2

PA.3 PA.4
PA.5 PA.6 PA.7

PA0 ADC3 (ADC input channel 3 PA0 ADC4 (ADC input channel 4
PA0 ADC5 (ADC input channel 5 PA0 ADC6 (ADC input channel 6 PA0 ADC7 (ADC input channel 7

8 Bit untuk converter analog ke digital

Port (TB 0-7) Terdapat pada kaki 1 s/d 8 terdiri atas 8 bit, merupakan pin Input/output dua arah dan berfungsi khusus sebagai pin timer/counter, komparator analog dan SPI.
Port Pin PB.0 PB.1 PB.2 PB.3 PB.4 PB.5 PB.6 PB.7 Fungsi T0 T1 (Timer/counter 0 external counter input) XCK (USART external colock input/output) T1 (Timer./counter1 ecternal counter input) AINO (analog comparator positive input / INT2 (external interupt 2 input) AIN1 (analog comparator negative input/ OCO (timer/counter output compare) SS (SPI bus master input/slave output/sebagai interface ke PC) MISO (SPI bus master input/slave output/ sebagai interface ke PC) SCK (SPI bus serial clock) SCK (SPI bus serial clock)

Port (TC 0-7) terdapat pada kaki 22 s/d 29 selain berfugsi sebagai input/output dua arah juga mempunyai fungsi khusus
Port Pin PC.0 PC.1 PC.2 PC.3 PC.4 Fungsi SCL (Two-Wire serial bus clock line) SDA (two-wire serial bus data input/output line) TCK (JTAG test clock) TMS (JTAG test mode select) TDO (JTAG test data out)

PC.5
PC.6 PC.7

TD1 (JTAG test data in)


TOSC1 (timer oscilator pin1) TOSC2 (timer oscilator pin2)

Port (TD 0-7) Terdapat pada kaki 14 s/d 21 berfungsi sebagai port input/output dua arah juga mempunyai fungsi khusus
Port Pin PD.0 PD.1 RDX (serial input port) TDX (serial output port) Fungsi

PD.2
PD.3 PD.4 PD.5 PD.6 PD.7

_INT0 (expternal interupt 0)


_INT1 (external interupt 1) OC1B (timer/counter 1 output membandingkan output B) OC1A (timer/counter1 masukan menangkap pin) _ICPI (timer/counter1 masukan menangkap pin) _OC2 (timer/counter2 membandingkan mencocokkan output untuk PWM)

AREF (Kaki Pin = 32) AREF merupakan pin masukan tegangan referensi converter analog ke digital (ADC) AVCC (Kaki Pin = 30) Merupakan pin masukan tegangan untuk analog ke digital (ADC) VCC (Kaki Pin = 10) Merupakan pin yang berfungsi sebagai masukan catu daya / tegangan ke mikrokontroler.

GND (kaki pin = 11 dan 31) Merupakan kaki pin yang ground/negatif ke mikrokontroler

berfungsi

sebagai

RST (Reset kaki pin = 9) Terdapat pada kaki 9, dengan cara memberikan logic tinggi selama 2 siklus clock, maka sistem dan memori internal pada mikrokontroler akan direset

Gambar Rangkaian Reset

Output dari rangkaian osilator berbntuk pulsa dengan frekuensi 12-16 Mhz

Gambar XTAL

Koneksi Power Terdapat pada pin 10, pin 30 untuk tegangan positif dan pin 11, pin 31 untuk ground Sebagai sumber tegangan mikrokontroler digunakan power supply dengan keluaran 5 Volt DC

Gambar Power Supply

Memory
Memori

yang terdapat pada dipisahkan menjadi 3 bagian yaitu :


Program memory Data memory

Mikrokontroler

EEPROM (Electrical Erasabel Programmable ROM)

1. Program Memory

Berfungsi untuk menyimpan instruksi-intruksi program yang sifatnya hanya di baca/Read Only (ROM) dengan alamat $000 hingga $FFF.

Program Memory
The ATmega8535 contains 8K bytes

On-chip In-System Reprogrammable Flash memory for program storage. For software security, the Flash Program memory space is divided into two sections: Boot Program section and Application Program section. The Flash memory has an endurance of at least 10,000 write/erase cycles

Memory (2)
2. Data memory Berfungsi untuk keperluan program, memori data terbagi 3 bagian yaitu : 32 buah register umum, 64 buah register I/O dan 1 Kbyte SRAM internal. GPR(General Purpose Register Menempati alamat data yaitu : $0000 s/d $001F, Memori I/O menempati 64 alamat $20 hingga $5F. Memori I/O berkapasitas 1024 Byte merupakan Special Fungsi Register yang Khusus (SFR) dengan Alamat $60 hingga $45F.

Data memory

EEPROM Memory
3. Memori Data EEPROM 8 Bit (Electrically Erasable Programmable read only Memory (EEPROM): Merupakan memori nonvolatile (tidak hilang ketika catu daya mati) yang menyerupai SRAM dalam fleksibilitas pemrogramannya. Memori jenis ini pada umumnya digunakan untuk menyimpan datadata permanen yang akan digunakan dalam program, jumlah EEPROM yang tersedia adalah 512 Byte dengan Alamat $000 hingga $1FF.

Register
Status Register The Status Register contains information about the result of the most recently executed arithmetic instruction.
1.

Bit 7 I: Global Interrupt Enable Bit 6 T: Bit Copy Storage, Bit 5 H: Half Carry Flag Bit 4 S: Sign Bit, S = NV Bit 3 V: Twos Complement Overflow Flag Bit 2 N: Negative Flag Bit 1 Z: Zero Flag, Bit 0 C: Carry Flag

General Purpose Register


Seluruh instruksi operasi register dalam AVR memiliki akses langsung ke semua register.

Stack Pointer Register


The Stack is mainly used for storing temporary data, for storing local variables and for storing return addresses after interrupts and subroutine calls. The Stack Pointer Register always points to the top of the Stack. Note that the Stack is implemented as growing from higher memory locations to lower memory locations. This implies that a Stack PUSH command decreases the Stack Pointer.

Status Register
Status Register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu intruksi yang dieksekusi, SREG, merupakan bagian dari inti CPU Mikrokontroler.

Konsep I/O Pada Mikrokontroler AVR ATmega8535


Pin I/O pada mikrokontroler AVR dapat dikonfigurasi

sebagai input atau output, dengan cara mengubah isi I/O register Data Direction Register. Misalnya, jika ingin port B dikonfigurasikan sebagai output, maka Data Direction Register port B (DDRB) harus diset sebagai 0xFFH ( sama dengan 255). Jika sebagai input maka 0x00H (sama dengan 0). Contoh : DDRB=255; //Port B dikonfigurasi sebagai output, yaitu PB0 -PB7 DDRD=0x00; // Port D dikonfigurasi sebagai input

Port I/O (2)


VOH ( output high voltage) ialah tegangan pada pin I/O mikrokontroler ketika ia mengeluarkan logika 1 dengan besar sekitar 4.2V dan arus sebesar 20mA(IOH) . Setiap pin I/O mikrokontroler AVR memiliki internal pull up. Misalnya Port B dikonfiguasi sebagai input dan internal pullupnya diaktifkan maka DDRB=00H dan PORTB=00H Contoh :

DDRB=0; // Port B dikonfigurasi sebagai input PORTB=0; //internal pull-up aktif

Untuk mendeteksi input pada salah satu port, dapat digunakan fungsi PINx, sedangkan mendeteksi per pin pada suatu port dapat digunakan fungsi Pinx.bit Contoh: PORTB=PINC; //Semua data di Port C dikirim ke Port B PORTB.0=PINC.0 ; //Data di Port C.0 dikirim ke Port B.0

Register DDRx
Digunakan untuk menentukan apakah sebuah pin pada sebuat PORT (A, B, C atau D) sebagai masukan atau luaran atau disebut sebagai arah (direction) dari pin yang bersangkutan: Berikan logika 1 (satu) pada bit yang terkait agar dijadikan sebagai luaran atau output. Berikan logika 0 (nol) pada bit yang terkait agar dijadikan sebagai masukan atau input. Misal PORTA semua bit akan digunakan sebagai masukan, maka untuk mengaturnya kita gunakan perintah :
DDRA= 0x00; sebagai input //seluruh pin-pin pada Port A digunakan

Misalnya lagi, PORTA.0 akan dijadikan masukan sedangkan PORTA.1 , PORTA.2 sampai PORTA.7 akan digunakan sebagai luaran, maka perintahnya :
DDRA= 0xFE;

Perhatikan 0xFE (heksa) = 0b11111110 (biner), perhatikan baik-baik konversi biner ini, setiap bit nilai biner mewakili Pin-Pin pada PortA.

Register PORTx
Jika sebuah PORT, semua atau sebagian, dikonfigurasi sebagai masukan, maka register ini berfungsi sebagai penentu apakah kondisi pin yang terkait di-pullup atau Floating. Begitu juga jika dikonfigurasi sebagai luaran, maka register ini menentukan kondisi pin yang terkait terbaca HIGH atau LOW. Untuk memahami hal ini, perhatikan Gambar.

Register PORTx
Perhatikan contoh-contoh berikut... DDRA=0x00; PORTA = 0xFF; Ini berarti seluruh pin-pin pada PORTA dijadikan sebagai masukan dan di- pullup, artinya pada rangkaian yang terkait, jika menggunakan tombol atau pushbutton, jika tidak ditekan akan terbaca HIGH dan jika ditekan akan terbaca LOW.
Contoh lainnya... DDRB= 0x00; PORTB=0x0F; Ini artinya seluruh pin-pin PORTB dijadikan masukan, dengan konfigurasi 0x0F (0b00001111) atau PORTB.0 sampai PORTB.3 di-pullup, sedangkan PORTB.4 sampai PORTB.7 dikonfigurasi floating.

Register PINx
Digunakan untuk membaca masukan pada pin yang bersangkutan. Contoh : .
DDRA = 0xFF; //inisialisasi PORTA sebagai OUTPUT DDRD = 0x00; //inisialisasi PORTD sebagai INPUT SFIOR = 0<<PUD; //aktivasi resistor pull-up internal PORTA = 0xFF; while(1) { i = PIND; PORTA = i; }

Anda mungkin juga menyukai