TEMPAT BERBAGI ILMU DUNIA DAN AKHIRAT
Dunia = Kumpulan rangkaian elektronika, Download, ilmu umum, dll
Akhirat = Iman dan Tauhid, Hukum islam, Akhlakul kharimah, dll

SEKARANG BLOG INI SUDAH BISA DI KASIH KOMENTAR, BAGI YANG INGIN DI TANYAKAN SEPUTAR RANGKAIAN ELEKTRONIKA ATAU YANG LAIN SILAH KAN KASIH KOMENTAR ^_^

Senin, 19 November 2012

MENGENAL AVR ATMEGA8535



DISKUSI-10   AVR ATMEGA8535
 
 10.1    Tujuan
Mengenal dan memahami prinsip dasar Mikrokontroler AVR ATMEGA8535 untuk simulasi dan pemodelan system aplikasi.

10.2     Dasar Teori
ATmega8535
Mikrokontroller AVR memiliki arsitektur RISC 8 Bit, sehingga semua instruksi dikemas dalam kode 16-bit (16-bits word) dan sebagian besar instruksi dieksekusi dalam satu siklus instruksi clock. Dan ini sangat membedakan sekali dengan instruksi MCS-51 (Berarsitektur CISC) yang membutuhkan siklus 12 clock. RISC adalah Reduced Instruction Set Computing sedangkan CISC adalah Complex Instruction Set Computing.
AVR dikelompokkan kedalam 4 kelas, yaitu ATtiny, keluarga AT90Sxx, keluarga ATMega, dan keluarga AT86RFxx.  Dari kesemua kelas yang membedakan satu sama  lain adalah ukuran onboard memori, on-board peripheral dan fungsinya. Dari segi arsitektur dan instruksi yang digunakan mereka bisa dikatakan hampir sama.

Fitur ATMega8535
·         Sistem processor 8 bit berbasis RISC dengan kecepatan maksimal 16 MHz.
·         Ukuran memory  flash 8KB, SRAM sebesar 512 byte, EEPROM sebesar 512 byte.
·         ADC  internal dengan resolusi 10 bit sebanyak 8 channel
·         Port komunikasi serial USART dengan kecepatan maksimal 2.5 Mbps
·         Mode Sleep untuk penghematan penggunaan daya listrik


Konfigurasi Pin ATMega8535

 




                                  Gambar 10-1  Konfigurasi Pin ATMega8535

·         VCC merupakan Pin yang berfungsi sebagai pin masukan catudaya
·         GND merupakan Pin Ground
·         Port A (PA0...PA7) merupakan pin I/O dan pin masukan ADC
·         Port B (PB0...PB7) merupakan pin I/O dan pin yang mempunyai fungsi khusus yaitu Timer/Counter, komparator Analog dan SPI
·         Port C (PC0...PC7) merupakan port I/O dan pin yang mempunyai fungsi khusus, yaitu komparator analog dan Timer Oscillator
·         Port D (PD0...PD1) merupakan port I/O dan pin fungsi khusus yaitu komparator analog dan interrupt eksternal serta komunikasi serial
·         RESET merupakan pin yang digunakan untuk mereset mikrokontroler
·         XTAL1 dan XTAL2 merupakan pin masukan clock eksternal
·         AVCC merupakan pin masukan untuk tegangan ADC
·         AREF merupakan pin masukan tegangan referensi untuk ADC

Arsitektur ATMega8535
·         Saluran IO sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D
·         ADC 10 bit sebanyak 8 Channel
·         Tiga buah timer / counter
·         32 register
·         Watchdog Timer dengan oscilator internal
·         SRAM sebanyak 512 byte
·         Memori Flash sebesar 8 kb
·         Sumber Interrupt internal dan eksternal
·         Port SPI (Serial Pheriperal Interface)
·         EEPROM on board sebanyak 512 byte
·         Komparator analog
·         Port USART (Universal Shynchronous Ashynchronous Receiver Transmitter)
AVR menjalankan sebuah instruksi tunggal dalam satu siklus dan memiliki struktur I/O yang cukup lengkap sehingga penggunaan komponen eksternal dapat dikurangi. Mikrokontroler AVR didesain menggunakan arsitektur Harvard, di mana ruang dan jalur bus bagi memori program dipisahkan dengan memori data. Memori program diakses dengan single-level pipelining, di mana ketika sebuah instruksi dijalankan, instruksi lain berikutnya akan di-prefetch dari memori program.











Gambar 10-2
  Blok Diagram Internal ATMega8535


 Dalam I/O lines terdapat empat port, yaitu Port A, Port B, Port C, dan Port D yang masing-masing mempunyai 8 pin I/O.
Deskripsi masing-masing port
·         Port A (PA7.. PA0) merupakan port yang digunakan sebagai input ADC (Analog to Digital Converter). jika ADC tidak digunakan maka port A merupakan 8-bit port I/O dua arah. Pada PortA terdapat internal Pull-up resistor. Ketika pin di portA disetting low “0” maka arus akan mengalir jika resistor pull-up internal diaktifkan.
·         Port B (PB7..PB0) merupakan 8-bit port I/O dua arah. Pada PortB terdapat internal Pull-up resistor. Ketika pin di portB disetting low “0” maka arus akan mengalir jika resistor pull-up internal diaktifkan.
·         Port C (PC7..PC0) merupakan 8-bit port I/O dua arah. Pada PortC terdapat internal Pull-up resistor. Ketika pin di portC disetting low “0” maka arus akan mengalir jika resistor pull-up internal diaktifkan.
·         Port D (PD7..PD0) merupakan 8-bit port I/O dua arah. Pada PortD terdapat internal Pull-up resistor. Ketika pin di portD disetting low “0” maka arus akan mengalir jika resistor pull-up internal diaktifkan.
RESET merupakan pin jika diberikan inputan low “0” maka program yang telah dibuat akan kembali dari awal.
Spesifikasi Masing-Masing Port
a.       PORTA
Sebagai fungsi tambahan:
PA.0    ADC0 ( input ADC channel 0 )
PA.1    ADC1 ( input ADC channel 1 )
PA.2    ADC2 ( input ADC channel 2 )
PA.3    ADC3 ( input ADC channel 3 )
PA.4    ADC4 ( input ADC channel 4 )
PA.5    ADC5 ( input ADC channel 5 )
PA.6    ADC6 ( input ADC channel 6 )
PA.7    ADC7 ( input ADC channel 7 )
Fungsi khusus PORTA
Pada seri AVR ATMEGA8535 telah dilengkapi 8 saluran ADC internal dengan fidelitas 10 bit. Dalam mode operasinya, ADC dapat dikonfigurasi baik secara single ended input maupun differrential input. Selain itu, ADC ATMEGA 8535 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau yang sangat dleksibel, sehingga mudah disesuaikan dengan kebutuhan ADC itu sendiri.

b.   PORTB
      Sebagai fungsi tambahan:
PB.0    T0 (Timer/Counter0 External Counter Input)
XCK (USART External Clock Input/Output)
PB.1    T1 (Timer/Counter1 External Counter Input)
PB.2    AIN0 (Analog Comparator Positive Input)
INT2 (External Interrupt 2 Input)
PB.3    AIN1 (Analog Comparator Negative Input)
OC0 (Timer/Counter0 Output Compare Match Output)
PB.4    SS (SPI Slave Select Input)
PB.5    MOSI (SPI Bus Master Output/Slave Input)
PB.6    MISO (SPI Bus Master Input/Slave Output)
PB.7    SCK (SPI Bus Serial Clock)
                  Fungsi khusus PORT B
1.   MOSI, MISO, SCK berguna sebagai inputan downloader ISP.
2.   T0/T1 sebagai inputan timer atau counter external.
3.   AIN0 dan AIN1 sebagai inputan komparator, AIN0 sebagai inputan positif (+)  sedangkan AIN1 sebagai inputan (-).

c.      PORTC
       
Sebagai fungsi tambahan:
PC.0    SCL (Two-wire Serial Bus Clock Line)
PC.1    SDA (Two-wire Serial Bus Data Input/Output Line)
PC.2    TCK (JTAG Test Clock)
PC.3    TMS (JTAG Test Mode Select)
PC.4    TDO (JTAG Test Data Out)
PC.5    TDI (JTAG Test Data In)
PC.6    TOSC1 (Timer Oscillator Pin 1)
PC.7    TOSC2 (Timer Oscillator Pin 2)
      Fungsi Khusus PORTC
1.   SCL dan SDA merupakan pin yang dapat berfungsi sebagai mengatur interface serial 2 jalur.
2.   TCK merupakan pin yang dapat berfungsi sebagai operasi sinkronisasi dari JTAG ke TCK.  Jika pin ini digunakan seperti fungsi periferal tersebut maka pin ini tidak dapat berfungsi sebagai I/O.
3.   TMS merupakan pin yang dapat berfungsi sebagai pengontrol navigasi mesin TAP. Jika pin ini digunakan seperti fungsi periferal tersebut maka pin ini tidak dapat berfungsi sebagai I/O.
4.   TD0 merupakan pin yang dapat berfungsi sebagai output data serial dari data register. Jika pin ini digunakan seperti fungsi periferal tersebut maka pin ini tidak dapat berfungsi sebagai I/O.
5.   TD1 merupakan pin yang dapat berfungsi sebagai input data serial ke register atau data register. Jika pin ini digunakan seperti fungsi periferal tersebut maka pin ini tidak dapat berfungsi sebagai I/O.
6.   TOSC1 dan TOSC2 jika disambungkan dengan kristal dan bit ASR serta bit ASSR diset “1” (high) untuk mengaktifkan asyncronous clocking dari Timer/Counter2 maka pin ini dapat digunakan sebagai inputan penguat amplifier osilator. Dalam keadaan ini pin tidak dapat berfungsi sebagai I/O.



d.   PORTD
      Sebagai fungsi tambahan:
PD.0 RXD (USART Input Pin)
PD.1 TXD (USART Output Pin)
PD.2 INT0 (External Interrupt 0 Input)
PD.3 INT1 (External Interrupt 1 Input)
PD.4 OC1B (Timer/Counter1 Output Compare B Match Output)
PD.5 OC1A (Timer/Counter1 Output Compare A Match Output)
PD.6 ICP1 (Timer/Counter1 Input Capture Pin)
PD.7 OC2 (Timer/Counter2 Output Compare Match Output)
                  Fungsi Khusus PORTD
1.      RXD dan TXD merupakan pin yang digunakan untuk komnikasi serial.
2.      INT0 dan INT1 merupakan pin yang digunakan sebagai inputan interupsi eksternal 0 dan inputan interupsi eksternal 1.
3.   OC1A dan OC1B merupakan output untuk PWM mode fungsi timer dan OC1A juga berfungsi sebagai output eksternal dari pembanding timer/counter A serta OC1B juga berfungsi sebagai output eksternal dari pembanding timer/counter B.
4.   ICP1 merupakan pin yang dapat berfungsi sebagai penampung input timer/ counter 1.
5.   OC2 merupakan pin yang dapat berfungsi sebagai output untuk PWM mode fungsi timer dan OC2 juga berfungsi sebagai output eksternal dari pembanding timer/counter.

            Peta Memory ATMega8535
            ATMega8535 memiliki ruang pengalamatan memori data dan memori program yang terpisah. Memori  data terbagi menjadi 3 bagian yaitu : 32 buah register umum, 64 buah register I/O, dan 512 byte SRAM internal.
                  Register untuk keperluan umum menempati space data pada alamat terbawah, yaitu $00 sampai $1F. Register khusus untuk menangani I/O dan kontrol mikrokontroler menempati 64 alamat berikutnya, yaitu mulai dari $20 sampai $5F.  Register tersebut merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai peripheral mikrokontroler, seperti kontrol register, timer/counter,  fungsi fungsi I/O, dan sebagainya. Alamat memori berikutnya digunakan untuk SRAM 512 byte, yaitu pada lokasi $60 sampai dengan $25F
Register khusus alamat memori secara lengkap dapat dilihat pada tabel dibawah .




   


Gambar 10-3   Memori Data ATMega8535
Memori program yang terletak pada Flash Perom tersusun dalam word atau 2 byte karena setiap instruksi memiliki lebar 16-bit atau 32bit. AVR ATMega8535 memiliki 4KByte x 16 Bit Flash Perom dengan alamat mulai dari $000 sampai $FFF. AVR tersebut memiliki 12 bit Program Counter (PC) sehingga mampu mengalamati isi Flash












Gambar 10-4   Memori Program ATMega8535
Selain itu AVR ATmega8535 juga memilki memori data berupa EEPROM 8-bit sebanyak 512 byte. Alamat EEPROM dimulai dari $000 sampai $1FF.
Status Register
Status register adalah register berisi status yang dihasilkan pada setiap operasi yang dilakukan ketika suatu instruksi dieksekusi. SREG merupakan bagian dari inti CPU mikrokontroler.


 



Gambar 10-5   Status Register ATMega8535

·         Bit7 --> I (Global Interrupt Enable), Bit harus di Set untuk mengenable semua jenis interupsi.
·         Bit6 --> T (Bit Copy Storage), Instruksi BLD dan BST menggunakan bit T sebagai sumber atau tujuan dalam operasi bit. Suatu bit dalam sebuah register GPR dapat disalin ke bit T menggunakan instruksi BST, dan sebaliknya bit T dapat disalin kembali kesuatu bit dalam register GPR dengan menggunakan instruksi BLD.
·         Bi5 --> H (Half Cary Flag)
·         Bit4 --> S (Sign Bit) merupakan hasil operasi EOR antara flag -N (negatif) dan flag V (komplemen dua overflow).
·         Bit3 --> V (Two's Component Overflow Flag) Bit ini berfungsi untuk mendukung operasi matematis.
·         Bit2 --> N (Negative Flag) Flag N akan menjadi Set, jika suatu operasi matematis menghasilkan bilangan negatif.
·         Bit1 --> Z (Zero Flag) Bit ini akan menjadi Set apabila hasil operasi matematis menghasilkan bilangan 0.
·         Bit0 --> C (Cary Flag) Bit ini akan menjadi set apabila suatu operasi menghasilkan carry.

Pemrograman AVR
Mikrokontroler jenis AVR dapat diprogram menggunakan bahasa pemrograman C, visual basic, Assembler,dll. Untuk setiap bahasa pemrograman tersebut digunakan beberapa software yang berbeda. Seperti mikrokontroler jenis MCS dimana bahasa pemrograman assembler digunakan software Topview Simulator, untuk mikrokontroler jenis AVR bahasa pemrograman assembler digunakan software AVR Studio 4 sedangkan jika menggunakan bahasa pemrograman C digunakan CVAVR
Pengarah Assembler
Pengarah assembler berguna untuk mengubah penunjuk kode assembly. Berikut adalah daftar beberapa sintaks pengarah assembler yang terdapat pada ATMega8535.
·         .cseg (code segment) pengarah ini berguna sebagai penunjuk bahwa kode atau ekspresi dibawahnya diletakkan pada memori program pengarah ini biasanya diletakkan setelah pengarah .deseg
·         .db (data byte) pengarah ini memungkinkan kita dapat meletakkan konstanta seperti serial number, dan lookup table di memory program pada alamat tertentu.
·         .dw (data word) pengarah ini seperti data byte, tetapi dalam ukuran word.
·         .org digunakan untuk mengeset program counter pada alamat tertentu
·         .byte digunakan untuk inisialisasi besar byte yang digunakan pada SRAM untuk label tertentu
·         .dseg (data segment) pengarah ini berguna sebagai penunjuk bahwa kode dibawahnya berfungsi untuk melakukan seting SRAM
·         .def (define) pengarah ini memungkinkan suatu register dapat didefinisikan.
·         .equ berguna untuk memberi nama suatu konstanta yang tidak dapat berubah.
·         .set sama seperti .equ tetapi konstantanya dapat diubah.
·         .endm (end macro) untuk mengakhiri macro.
·         .include untuk mengincludekan sebuah file kedalam program agar program lebih cepat dimengerti atau memisahkan kedo dalam dua file terpisah.
·         .device sebagai penunjuk jenis AVR yang digunakan.
·         .exit sebagai penunjuk agar berhenti melakukan assembly pada file saat ini.
·         .list berguna membangkitkan file list.
·         .listmac berguna agar penambahan macro ditampilkan pada file list yang dibangkitkan.
·         .nolist berguna agar suatu runtun instruksi tidak dimasukkan dalam file list yang dibangkitkan.




Wiring Downloader
Untuk melakukan penyimpanan program Hex atau Cof yang merupakan hasil build project CVAVR, pin yang digunakan pada modul AVR_8535 adalah J10 atau ISP.














 Gambar 7-7   Antarmuka DB25 dengan Mikrokontroler AVR ATmega8535

 




Gambar 7-8   Jalur DB25 dengan pin ISP/J10









  

Gambar 7-9   Penggunaan Kabel Pelangi / Line 10