MIKROPENGENDALI C TEMU 2b AVR ARCHITECTURE Oleh : Danny Kurnianto,S.T.,M.Eng Sekolah Tinggi Teknologi Telematika Telkom
SECTION 1. The Feature of AVR Prosesor Family On-chip and In System Programmable Flash memory used as Program Memory. 32-X-8 general-purpose working registers. On-chip data memory EEPROM and RAM is seen as DATA memory for storing constants and variables. 0 to 10-MHz clock speed operation. Power On RESET circuit. On-chip programmable timer. Internal and external interrupt sources. Programmable watchdog timer with independent oscillator. SLEEP and POWER DOWN modes of operation. Many chips with on-chip RC clock oscillator.
SECTION 2. AVR Family Architecture
SECTION 2. AVR Family Architecture (Cont ) AVR menggunakan arsitektur Harvard, dimana memori program dan memori data terpisah. Bus data 8 bit menghubungkan sebagian besar perangkat ke register file. Bus alamat memori program dengan lebar 16 bit menghubungkan memori program ke register intruksi. Keluaran dari register intruksi akan di dekodekan oleh intruction decoder untuk memutuskan sinyal kontrol mana yang akan diaktifkan. Memori program, disamping untuk menyimpan intruksi juga digunakan untuk menyimpan vektor interupsi mulai dari alamat $0000. Pada Tabel dibawah ini ditunjukkan vector interupsi untuk AT90S8515
Pada memori data memiliki 5 komponen yang berbeda yaitu 1. Register file atau yang sering disebut dengan istilah General Purpose Register dengan lebar data 8 bit. 2. Register I/O dengan lebar data 8 bit. 3. Internal SRAM. 4. Eksternal SRAM 5. EEPROM Pada Gambar dibawah ini adalah peta memori data.
SECTION 3. Register File or General Purpose Register AVR memiliki 32 General Purpose register (R0 R31) yang digunakan untuk menyimpan informasi sementara. Masing-masing register memiliki lebar data sebesar 8 bit. Ke-32 register ini menempati alamat paling bawah dari suatu alamat memori yaitu $00 sampai $1F (Dapat dilihat di peta memori slide sebelumnya). General Purpose Register pada AVR ini sama halnya dengan akumulator pada mikroprosesor lainnya yang dapat digunakan untuk operasi aritmatika dan logika. Register R26 R31 dapat digunakan juga sebagai register pointer untuk pengalamatan tidak langsung (indirect). Pada Gambar dibawah ini adalah blok diagram dari Register File
SECTION 4. I/O Memory (Register) I/O memory didesain untuk fungsi khusus seperti untuk register status, timer, komunikasi serial, I/O port, ADC dan lain-lain. Fungsi dari setiap lokasi I/O memory adalah tetap dan tidak berubah-ubah karena I/O memory akan digunakan untuk mengatur mikrokontroler atau perangka lain. I/O memory dapat di implementasikan sebagai SRAM dan dapat di akses dengan 2 cara yaitu, 1. Sebagai SRAM dengan alamat $20 - $5F. 2. Sebagai I/O Register dengan alamat $00 - $3F. I/O memory juga sering disebut sebagai Special Function Register (SFR).
Beberapa contoh dari I/O Register 1. Status Register Register status berisi 8 bit flag yang mengkondisikan status prosesor. Alamat Register status adalah $3F (atau sebagai SRAM adl dengan alamat $5F). Berikut ini adalah diagram blok register status
Keterangan register Status Bit 7 I = Global Interrupt Enable. Setting bit ini dapat mengaktifkan semua interupsi. Resetting bit ini dapat menonaktifkan semua interupsi. Bit 6 T = Bit Copy Storage. Digunakan dengan intruksi BLD (Bit Load) dan BST (Bit Store) untuk megambil dan menyimpan bit-bit dari satu register ke register lainnya. Bit 5 H = Half Carry Flag. Mengindikasikan adanya half carry pada beberapa intruksi aritmatik. Bit 4 S = Sign Flag. Bit ini adalah XOR antara negative flag N dan overflow flag V. Bit 3 V = Komplemen kedua dari flag overflow. Bit 2- N = Negative flag. Bit 1 Z = Zero Flag. Mengindikasikan nilai nol setelah operasi aritmatik atau logika. Bit 0 C = Carry Flag. Mengindikasikan nilai carry pada operasi aritmatik atau logika.
2. GIMSK = General Interrupt Mask Register Register GIMSK digunakan untuk mengaktifkan dan menonaktifkan interupsi eksternal secara individual dengan melakukan setting dan resetting pada setiap bit yang berkesesuaian. Bit I pada Status Register harus di setting 1.
3. GIFR = General Interrupt Flag Register Bit-bit pada GIFR mengindikasikan bahwa sedang ada interupsi yang terjadi. Jika interupsi eksternal sedang terjadi, maka flag GIFR yang berkesesuaian aka di set 1. Jika interupsi sudah dilayani (yang terjadi jika bit I dan bit INT yang berkesesuaian pada GIMSK nilainya 1 ), kemudian flag di reset.
4. MCUCR = MCU General Control Register Bit-bit pada MCUCR mengijinkan pengendalian prosesor secara umum. Yang termasuk pada layanan iini adalah enable/disabel akses SRAM eksternal, mode sleep, dan pengendali sense interupsi eksternal.
Keterangan MCUCR Register : Bit 7 SRE = External SRAM Enable. Setting bit SRE pada nilai 1 mengijinkan pengaksesan SRAM eksternal oleh prosesor. PORTA menjadi AD0-7, PORTC menjadi A8-15, dan sinyal WR dan RD diaktifkan pada PORTD. Bit 6 SRW = External SRAM Access Wait State Bit. Jika nilai bit 1, maka sebuah status tunggu tambahan disisipkan pada siklus akses SRAM. Lalu SRAM diakses dalam 4 siklus. Saat nilai bit 0 maka SRAM diakses dalam 3 siklus. Bit 5 SE = Sleep Enable. Setting nilai bit denga nilai 1 akan menyebabka prosesor berada dalam kondisi salah satu mode sleep. Bit 4 SM = Sleep Mode. Nilai 1 pada bit ini akan menyebabkan prosesor dalam kondisi idle. Nilai 0 berarti prosesor dalam mode power down. Bit 3,2 ISC11,ISC10 = Bit pengendali sense interupsi untuk INT1. Bit 1,0 ISC01, ISC00 = Bit pengendali sense interupsi untuk INT0.
Dilanjutkan pekan depan