Selasa, 20 Januari 2015

Arsitektur atmega16

 ARSITEKTUR  ATmega16


               Mikrokontroler adalah sebuah sistem komputer lengkap dalam satu chip.  Mikrokontroler lebih dari sekedar sebuah mikroprosesor karena sudah terdapat atau berisikan ROM (Read-Only Memory), RAM (Read-Write Memory), beberapa port masukan maupun keluaran, dan beberapa peripheral seperti pencacah/pewaktu, ADC (Analog to Digital converter), DAC (Digital to Analog converter) dan serial komunikasi.  Salah satu mikrokontroler yang banyak digunakan saat ini yaitu mikrokontroler AVR.  AVR adalah mikrokontroler RISC (Reduce Instuction Set Compute) 8 bit berdasarkan arsitektur Harvard.  Secara umum mikrokontroler AVR dapat dapat dikelompokkan menjadi 3 kelompok, yaitu keluarga AT90Sxx, ATMega dan ATtiny.  Pada dasarnya yang membedakan masing-masing kelas adalah memori, peripheral, dan fiturnya Seperti mikroprosesor pada umumnya, secara internal mikrokontroler ATMega16 terdiri atas unit-unit fungsionalnya Arithmetic and Logical Unit (ALU), himpunan register kerja, register dan dekoder instruksi, dan pewaktu serta komponen kendali lainnya.  Berbeda dengan mikroprosesor, mikrokontroler menyediakan memori dalam chip yang sama dengen prosesornya (in chip).


  • Arsitektur ATMega16


          Mikrokontroler ini menggunakan arsitektur Harvard yang memisahkan memori program dari memori data, baik bus alamat maupun bus data, sehingga pengaksesan program dan data dapat dilakukan secara bersamaan (concurrent), adapun blog diagram arsitektur ATMega16.  Secara garis besar mikrokontroler ATMega16 terdiri dari :

1.  Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16Mhz.
2.  Memiliki kapasitas Flash memori 16Kbyte, EEPROM 512 Byte, dan SRAM 1Kbyte
3.  Saluran I/O 32 buah, yaitu Port A, Port B, Port C, dan Port D.
4.  CPU yang terdiri dari 32 buah register.
5.  User interupsi internal dan eksternal
6.  Port antarmuka SPI dan Port USART sebagai komunikasi serial
7.  Fitur Peripheral
  •     •    Dua buah 8-bit timer/counter dengan prescaler terpisah dan mode compare
        •    Satu buah 16-bit timer/counter dengan prescaler terpisah, mode compare, dan mode capture
        •    Real time counter dengan osilator tersendiri
        •    Empat kanal PWM dan Antarmuka komparator analog
        •    8 kanal, 10 bit ADC
        •    Byte-oriented Two-wire Serial Interface
        •    Watchdog timer dengan osilator internal
Blok Diagram ATMega16


  • Konfigurasi Pin ATMega16
    Konfigurasi pin mikrokontroler Atmega16 dengan kemasan 40.

 Dari gambar tersebut dapat terlihat ATMega16 memiliki 8 Pin untuk masing-masing Port A, Port B, Port  C, dan Port D.


Konfigurasi PIN ATMega16  SMD

Konfigurasi PIN ATMega16  PDIP

  • Deskripsi Mikrokontroler ATMega16


•    VCC (Power Supply) dan GND(Ground)

•    Port A (PA7..PA0)
Port A berfungsi sebagai input analog pada konverter A/D.  Port A juga sebagai suatu port I/O 8-bit dua arah, jika A/D konverter tidak digunakan.  Pin - pin Port dapat menyediakan resistor internal pull-up (yang dipilih untuk masing-masing bit).  Port A output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber.  Ketika pin PA0 ke PA7 digunakan sebagai input dan secara eksternal ditarik rendah, pin–pin akan memungkinkan arus sumber jika resistor internal pull-up diaktifkan.  Port A adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.

•    Port B (PB7..PB0)
Pin B adalah suatu pin I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit).  Pin B output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber.  Sebagai input, Pin B yang secara eksternal ditarik rendah akan arus sumber jika resistor pull-up diaktifkan.  Pin B adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.

•    Port C (PC7..PC0)
Pin C adalah suatu pin I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit).  Pin C output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber.  Sebagai input, pin C yang secara eksternal ditarik rendah akan arus sumber jika resistor pull-up diaktifkan.  pin C adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.

•    Port D (PD7..PD0)
Pin D adalah suatu pin I/O 8-bit dua arah dengan resistor internal pull-up (yang dipilih untuk beberapa bit).  Pin D output buffer mempunyai karakteristik gerakan simetris dengan keduanya sink tinggi dan kemampuan sumber.  Sebagai input, pin D yang secara eksternal ditarik rendah akan arus sumber jika resistor pull-up diaktifkan.  Pin D adalah tri-stated manakala suatu kondisi reset menjadi aktif, sekalipun waktu habis.
•    RESET (Reset input) 
•    XTAL1 (Input Oscillator)
•    XTAL2 (Output Oscillator)
•    AVCC adalah pin penyedia tegangan untuk Port A dan Konverter A/D.
•    AREF adalah pin referensi analog untuk konverter A/D.

  • Peta Memori ATMega16
             Memori Program    Arsitektur ATMega16 mempunyai dua memori utama, yaitu memori data dan memori program.  Selain itu, ATMega16 memiliki memori EEPROM untuk menyimpan data.  ATMega16 memiliki 16K byte On-chip In-System Reprogrammable Flash Memory untuk menyimpan program.  Instruksi ATMega16 semuanya memiliki format 16 atau 32 bit, maka memori flash diatur dalam 8K x 16 bit.  Memori flash dibagi kedalam dua bagian, yaitu bagian program boot dan aplikasi. Bootloader adalah program kecil yang bekerja pada saat sistem dimulai yang dapat memasukkan seluruh program aplikasi ke dalam memori prosesor.

  •   Memori Data (SRAM)


             Memori data AVR ATMega16 terbagi menjadi 3 bagian, yaitu 32 register umum, 64 buah register I/O dan 1 Kbyte SRAM internal.  General purpose register menempati alamat data terbawah, yaitu $00 sampai $1F.  Sedangkan memori I/O menempati 64 alamat berikutnya mulai dari $20 hingga $5F.  Memori I/O merupakan register yang khusus digunakan untuk mengatur fungsi terhadap berbagai fitur mikrokontroler seperti kontrol register, timer/counter, fungsi-fungsi I/O, dan sebagainya.  1024 alamat berikutnya mulai dari $60 hingga $45F digunakan untuk SRAM internal.

Peta Memori Data ATMega16

  •   Memori Data EEPROM
               ATMega16 terdiri dari 512 byte memori data EEPROM 8 bit, data dapat ditulis/dibaca dari memori ini, ketika catu daya dimatikan, data terakhir yang ditulis pada memori EEPROM masih tersimpan pada memori ini, atau dengan kata lain memori EEPROM bersifat nonvolatile.  Alamat EEPROM mulai dari $000 sampai $1FF.

  •   Analog To Digital Converter
   AVR ATMega16 merupakan tipe AVR yang telah dilengkapi dengan 8 saluran ADC internal dengan resolusi 10 bit.  Dalam mode operasinya, ADC dapat dikonfigurasi, baik single ended input maupun differential input.  Selain itu, ADC ATMega16 memiliki konfigurasi pewaktuan, tegangan referensi, mode operasi, dan kemampuan filter derau (noise) yang amat fleksibel sehingga dapat dengan mudah disesuaikan dengan kebutuhan dari ADC itu sendiri.  ADC pada ATMega16 memiliki fitur-fitur antara lain :

  •     •    AREF adalah pin referensi analog untuk konverter A/D.
        •    Resolusi mencapai 10-bit
        •    Akurasi mencapai ± 2 LSB
        •    Waktu konversi 13-260μs
        •    8 saluran ADC dapat digunakan secara bergantian
        •    Jangkauan tegangan input ADC bernilai dari 0 hingga VCC
        •    Disediakan 2,56V tegangan referensi internal ADC
        •    Mode konversi kontinyu atau mode konversi tunggal
        •    Interupsi ADC complete
        •    Sleep Mode Noise canceler

Proses inisialisasi ADC meliputi proses penentuan clock, tegangan referensi, formal data keluaran, dan modus pembacaan.  Register-register yang perlu diatur adalah sebagai berikut:
•    ADC Control and Status Register A – ADCSRA.
ADEN :      1 = adc enable, 0 = adc disable
ADCS :     1 = mulai konversi, 0 = konversi belum terjadi
ADATE :    1 = auto trigger diaktifkan, trigger berasal dari sinyal yang dipilih (set pada trigger SFIOR bit ADTS).  ADC akan start konversi pada edge positif   sinyal trigger.
ADIF :     Diset ke 1, jika konversi ADC selesai dan data register ter-update.  Namun ADC Conversion Complete Interrupt dieksekusi jika bit ADIE dan bit-I dalam register SREG diset.
ADIE :     Diset 1, jika bit-I dalam register SREG di-set.
ADPS[0..2]:    Bit pengatur clock ADC, faktor pembagi 0 … 7 = 2, 4, 8, 16, 32, 64, 128.

•    ADC Multiplexer-ADMUX
REFS 0, 1 : Pemilihan tegangan referensi ADC
00 : Vref   = Aref
01 : vref    = AVCC dengan eksternal capasitor pada AREF
10 : vref = internal 2.56 volt dengan eksternal kapasitor pada AREF
ADLAR : Untuk setting format data hasil konversi ADC, default = 0

•    Special Function IO Register-SFIOR
SFIOR merupakan register 8 bit pengatur sumber picu konversi ADC, apakah dari picu eksternal atau dari picu internal.

ADTS[0...2] : Pemilihan trigger (pengatur picu) untuk konversi ADC, bit-bit ini akan berfungsi jika bit ADATE pada register ADCSRA bernilai 1.  Konfigurasi bit
ADTS[0...2] : dapat dilihat pada Tabel 2.1.
ADHSM    : 1.  ADC high speed mode enabled.  Untuk operasi ADC, bit ACME, PUD, PSR2 dan PSR10 tidak diaktifkan.
Pemilihan Sumber Picu ADC
 Fitur :
• Kinerja tinggi, rendah daya AVR ® 8-bit Microcontroller
• Advanced RISC Arsitektur
- 131 Instruksi Powerfull - Most Single-clock Cycle Execution
- 32 x 8 Register General Purpose Working
- Operasi Statis Penuh
- Sampai dengan 16 MIPS throughput pada 16 MHz
- 2-siklus Multiplier berada pada chipnya

• Ketahanan Tinggi segmen memori Non-volatile
- 16K Bytes pemograman memori flash didalam sistemnya
- 512 Bytes EEPROM
- 1K Byte internal SRAM
- Menulis / Menghapus dengan Siklus: 10.000 Flash/100, 000 EEPROM
- Data retensi: 20 tahun pada 85 ° C/100 tahun pada 25 ° C (1)
- Boot Kode Bagian Opsional dengan Bits Lock Independen
  • Pemrograman didalam sistem secara On-chip Program Boot
  • Baca-Tulis-Saat beroperasi
- Programming Lock untuk Keamanan Software

• JTAG (IEEE std 1149,1 Compliant.) Interface
- Batas-scan Kemampuan Menurut Standar JTAG
- Ekstensif On-chip Dukungan Debug
- Pemrograman Flash, EEPROM, Sekering, dan Lock Bits melalui Antarmuka JTAG

• Fitur Peripheral
- Dua 8-bit Timer / Counter dengan Prescalers terpisah dan Mode Bandingkan
- Satu 16-bit Timer / Counter dengan Prescaler terpisah, Mode Bandingkan, dan Capture
Mode
- Counter Real Time dengan Osilator terpisah
- Empat PWM Channels
- 8-channel, 10-bit ADC
  • 8 Single-ended Saluran
  • 7 Differential Saluran dalam Paket TQFP Hanya
  • 2 Differential Saluran dengan Gain Programmable pada 1x, 10x, atau 200x
- Byte-oriented Antarmuka Dua-kawat Serial
- Serial USART Programmable
- Master / Slave SPI Serial Interface
- Timer Programmable Watchdog On-chip dengan Oscillator terpisah 
- Komparator Analog On-chip 

• Fitur Khusus Mikrokontroler
- Power-on Reset dan Programmable Brown-out Detection
- RC Oscillator internal yang Dikalibrasi
- Interrupt Sumber Eksternal dan Internal
- Enam Sleep Mode: Idle, ADC Noise Reduction, Power-save, Power-down, Standby
dan siaga diperpanjang

• I / O dan Paket
- 32 Programmable I / O
- 40-pin PDIP, 44-lead TQFP, dan 44-pad QFN / MLF

• Operasi Tegangan
- 2.7 - 5.5V untuk ATmega16L
- 4.5 - 5.5V untuk ATmega16

• Kelas Kecepatan
- 0 - 8 MHz untuk ATmega16L
- 0 - 16 MHz untuk ATmega16

• Konsumsi Daya @ 1 MHz, 3V, dan 25 ° C untuk ATmega16L
- Aktif: 1,1 mA
- Diam Mode: 0,35 mA
- Power-down Mode: <1 p="p">


Mode Pengalamatan

MODE PENGALAMATAN

         Metode pengalamatan adalah bagaimana cara menunjuk dan  mengalamati suatu lokasi memori pada  sebuah alamat di mana operand akan diambil. Mode pengalamatan diterapkan pada set instruksi, pengalamatan memberikan fleksibilitas khusus yang sangat penting. Mode pengalamatan ini meliputi direct addressing, indirect addressing, dan immediate addressing. Tujuan yang mempengaruhi arsitektur komputer ketika memilih mode pengalamatan:
  • Mengurangi panjang instruksi dengan mempunyai medan yang pendek untuk alamat.
  • Menyediakan bantuan yang tangguh kepada pemrogram untuk penanganan data kompleks seperti pengindeksan sebuah array, control loop, relokasi program dan sebagainya.
Teknik Pengalamatan
  1. Immediate Addressing
  2. Direct Addressing
  3. Indirect Addressing
  4. Register addressing
  5. Register indirect addressing
  6. Displacement addressing
  7. Stack addressing
tabel basic aderssing model
gambar addressing modeA. Immediate Addressing (Pengalamatan Segera)
Adalah bentuk pengalamatan yang paling sederhana.
Penjelasan :
  • Operand benar-benar ada dalam instruksi atau bagian dari intsruksi
  • Operand sama dengan field alamat
  • Umumnya bilangan akan disimpan dalam bentuk complement dua
  • Bit paling kiri sebagai bit tanda
  • Ketika operand dimuatkan ke dalam register data, bit tanda digeser ke kiri hingga maksimum word data
Keuntungan :
  • Tidak adanya referensi memori selain dari instruksi yang diperlukan untuk memperoleh operand
  • Menghemat siklus instruksi sehingga proses keseluruhanakan akan cepat
Kekurangan :
  • Ukuran bilangan dibatasi oleh ukuran field
Contoh :
ADD 7 ; tambahkan 7 pada akumulator
B. Direct Addressing (Pengalamatan Langsung)
Penjelasan :
  • Teknik ini banyak digunakan pada komputer lama dan komputer kecil
  • Hanya memerlukan sebuah referensi memori dan tidak memerlukan kalkulus khusus
Kelebihan :
  • Field alamat berisi efektif address sebuah operand
Kekurangan :
  • Keterbatasan field alamat karena panjang field alamat biasanya lebih kecil dibandingkan panjang word
Contoh :
ADD A ; tambahkan isi pada lokasi alamat A ke akumulator
b
C. Indirect Addressing (Pengalamatan tak langsung)
Penjelasan :
  • Merupakan mode pengalamatan tak langsung
  • Field alamat mengacu pada alamat word di alamat memori, yang pada gilirannya akan berisi alamat operand yang panjang
Kelebihan :
  • Ruang bagi alamat menjadi besar sehingga semakin banyak alamat yang dapat referensi
Kekurangan :
  • Diperlukan referensi memori ganda dalam satu fetch sehingga memperlambat proses operasi
Contoh :
ADD (A) ; tambahkan isi memori yang ditunjuk oleh isi alamat A ke akumulator
c
D. Register addressing (Pengalamatan Register)
Penjelasan :
  • Metode pengalamatan register mirip dengan mode pengalamatan langsung
  • Perbedaanya terletak pada field alamat yang mengacu pada register, bukan pada memori utama
  • Field yang mereferensi register memiliki panjang 3 atau 4 bit, sehingga dapat mereferensi 8 atau 16 register general purpose
Keuntungan :
  • Diperlukan field alamat berukuran kecil dalam instruksi dan tidak diperlukan referensi memori
  • Akses ke register lebih cepat daripada akses ke memori, sehingga proses eksekusi akan lebih cepat
Kerugian :
  • Ruang alamat menjadi terbatas
Contoh :
d
E. Register indirect addressing (Pengalamatan tak-langsung register)
Penjelasan :
  • Metode pengalamatan register tidak langsung mirip dengan mode pengalamatan tidak langsung
  • Perbedaannya adalah field alamat mengacu pada alamat register
  • Letak operand berada pada memori yang dituju oleh isi register
  • Keuntungan dan keterbatasan pengalamatan register tidak langsung pada dasarnya sama dengan pengalamatan tidak langsung
  • Keterbatasan field alamat diatasi dengan pengaksesan memori yang tidak langsung sehingga alamat yang dapat direferensi makin banyak
  • Dalam satu siklus pengambilan dan penyimpanan, mode pengalamatan register tidak langsung hanya menggunakan satu referensi memori utama sehingga lebih cepat daripada mode pengalamatan tidak langsung
Contoh :
e
F. Displacement addressing
Penjelasan :
  • Menggabungkan kemampuan pengalamatan langsung dan pengalamatan register tidak langsung
  • Mode ini mensyaratkan instruksi memiliki dua buah field alamat, sedikitnya sebuah field yang eksplisit
  • Operand berada pada alamat A ditambahkan isi register
  • Tiga model displacement
    • Relative addressing : register yang direferensi secara implisit adalah Program Counter (PC)
      • Alamat efektif didapatkan dari alamat instruksi saat itu ditambahkan ke field alamat
      • Memanfaatkan konsep lokalitas memori untuk menyediakan operand-operand berikutnya
    • Base register addressing : register yang direferensi berisi sebuah alamat memori dan field alamat berisi perpindahan dari alamat itu
      • Referensi register dapat eksplisit maupun implisit
      • Memanfaatkan konsep lokalitas memori
    • Indexing  : field alamat mereferensi alamat memori utama, dan register yang direferensikan berisi pemindahan positif dari alamat tersebut
      • Merupakan kebalikan dari mode base register
      • Field alamat dianggap sebagai alamat memori dalam indexing
      • Manfaat penting dari indexing adalah untuk eksekusi program-pprogram iteratif
Contoh :
Field eksplisit bernilai A dan field imlisit mengarah pada register
f
G. Stack addressing
Penjelasan :
  • Stack adalah array lokasi yang linier = pushdown list = last-in-firs-out
  • Stack merupakan blok lokasi yang terbaik
    • Btir ditambahkan ke puncak stack sehingga setiap blok akan terisi secara parsial
  • Yang berkaitan dengan stack adalah pointer yang nilainya merupakan alamat bagian paling atas stack
  • Dua elemen teratas stack dapat berada di dalam register CPU, yang dalam hal ini stack pointer mereferensi ke elemen ketiga stack
  • Stack pointer tetap berada dalam register
  • Dengan demikian, referensi-referensi ke lokasi stack di dalam memori pada dasarnya merupakan pengalamatan register tidak langsun

Blogger templates

Powered By Blogger