You are on page 1of 16

Atmega32

Arsyad Fahmi 21060111060053

Fitur Atmega 32 Fitur 8 Bit Mikrokontroller: • 3 separate on-chip memories (Harvard architecture) • • • 2KB SRAM (untuk penyimpanan data yang hilang saat power mati) 1KB EEPROM (untuk penyimpanan sementara setelah mode off) 32KB Flash (untuk kode pemrograman yang berjumlah 16Kbit) • • • Ukuran Data sebenarnya 1 byte (SRAM and EEPROM) 16-bit alamat data • • • • • • Lebih dari 64 KB (216 bytes) dari data yang bias digunakan Mempunyai 8-pin I/O PORT A. yang dapat dikonfigurasi program : Digital input (untuk membaca sinyal eksternal pada setiap pin (0V atau 5V) dengan nilai data 0 / 1) Digital output (untuk menulis nilai data biner sebagai sinyal keluaran (0V atau 5V)) Analog input (untuk membaca sinyal eksternal kontinyu (0V-5V) sebagai nilai data) Serial/Parallel (untuk membaca atau menulis serial byte) Pulse accumulator (untuk menghitung perubahan sinyal eksternal) . and D. C. B.

Komponen didalam mikrokontroller .

EEPROM. video. USB.Atmel Atmega32 Central Processing Unit Arithmetic Logic Unit (ALU) untuk aritmatika.logika. dll . serial. SCSI.dan fungsi bit Memory – SRAM. Flash Clock circuit – internal/external I/O – Input/Output. parallel.

individual program instructions generally take 2 bytes. but some take 4 bytes • setiap kode disimpan di 16 alamat unik(0-0x3FFF) • proses pembacaan dan penyimpanan cepat • hanya dapat menyimpan sekali dalam 1 blok memori dalam waktu yang bersamaan 2KB SRAM untuk penyimpanan data sementara • • • • Data akan hilang saat power mati (volatile) Proses Pembacaan dan penyimpanan cepat Jumlah data 8 bits (1 byte) Setiap bit mempunyai 16 alamat unik (0x60-0x85F) 1KB EEPROM untuk penyimpanan data CS-280 Dr. Hornick • • • • Data akan tetap tersimpan saat power mati Proses pembacaan dan penyimpanan cepat Jumlah data 8 bits (1 byte) Setiap bit mempunyai alamat unik 5 .3 jenis on-chip memori Program disimpan dalam memori 32KB Program Flash • Persistent: data akan tetap tersimpan saat power off (non-volatile) • Organized as 2-byte words. Mark L.

Flash Program dan desain Memori Reset and interrupt vector section 42 words (84 bytes) $002A  Terdapat 32 KB untuk memori program (Flash memory)   Your programs go here! Dibagi menjadi 16K 2-byte kode Karena instruksi program. mempunyai panjang kode antara 2 (common) atau 4 (less common) bytes  Setiap kode (bukan bit) dalam Flash memori mempunyai alamat unik   Diawali alamat $0000 Diakhiri alamat $3FFF  $3C00 Sebagian Flash Memori ada yang bisa di isi kembali (reserved) dan ada yang terkunci (protected)   Number of bytes depends on user-definable configuration Awal 42 kode (reserved) Diakhiri NNN kode (protected) 6 .

Didalam beberapa kasus kesalahan pemrograman dapat dieksekusi 3. Data dan instruksi disimpan dalam satu memori utama 2. Isi dari setiap bagian memori mempunyai alamat untuk lokasi penyimpanan tanpa memperhatikan apa yang disimpan.Kebanyakan tujuan umum mikroprosesor (seperti di PC ) menggunakan arsitektur von Neumann 1. Data CPU + Program Memori utama 7 .apakah program atau data Instruksi di eksekusi secara berurutan.

Pada desain Atmega32 menggunakan Arsitektur Harvard : • • Memberikan data dan instruksi program untuk ruang memori yang berbeda. terpisah yang memungkinkan untuk : 1. • Program data menempati memori yang berbeda dan terpisah dari program itu sendiri Setiap ruang memori memiliki Alamat. Instruksi partisi data (untuk keamanan) • Kelemahan: Sulit untuk Program 8 . dan struktur untuk instruksi program dan data 2. Instruksi akses data secara bersamaan (untuk mempercepar proses) 3. Waktu yang berbeda. ukuran.

CS-280 Dr.Mesin instruksi dijalankan oleh Central Processing Unit • • • Saat alat keadaan ON. Instruksi yang terdapat pada Flash Memori akan ditunjukkan oleh Penghitungan Program yang diambil dan ditempatkan pada Instruction Register The opcode and operands within the instruction are extracted by the Instruction Decoder • • The control lines from the I. activate the particular circuitry within the ALU that is capable of processing that particular opcode. Hornick 9 . The ALU executes the instruction.D. Mark L. The Program Counter is automatically incremented and the cycle repeats. penghitungan program dimulai dari 0.

Instruction execution timing 10 .

the instruction can also be written as 11 . R5 case is not important. • • Example: Substitute any actual register (R0-R31) for rS and rD : add r20.An Assembler converts human-readable assembly language instructions into machine-executable instruction that are stored in Program Flash Memory Consider the assembly language instruction add rD. storing the sum in rD. rS • add is a reserved assembly language instruction mnemonic • • rS and rD are operands that refer to source and destination general-purpose registers This instruction adds the contents of register rS to register rD. r5 ADD R20.

R5 • A 16-bit machine instruction is generated (by the assembler) for this particular case • • • Machine instructions consist of an numeric opcode and operands The opcode in this case is 000011 (3) Each register operand is represented by 5 bits • • • 5 bits are required to represent all possible register values from 0-31 ddddd represent the 5 bits that represent the destination register value (20) rrrrr represent the 5 bits that represent the source register value (5) 0000 11rd dddd rrrr Note: The bits ddddd and rrrrr are “split” in this instruction 12 add r20. r5 is assembled to: 0000 1101 0100 0101 This 16-bit binary word can be expressed in hexadecimal as 0x450d (with the “high” byte being rightmost) .Let’s consider the case of how the ADD instruction is represented as a machine-executable instruction Example: ADD R20.

result is in r20 Following the add. r5 . load value at SRAM addr 0x60 into r5 add r20. load value 2 into r20 lds r5. 0x60 . we normally store the sum (the value in r20) someplace (like in SRAM). r5 • We (the programmer) must first load some values into these registers. More on how to do that later…how would you guess it might work? 13 . Once way of doing this is with the following instructions: ldi r20. 2 . add them. It cannot directly operate on SRAM or EEPROM data. In the assembly language instruction add r20.The ALU can only directly operate on data that has been fetched into the Registers.

Z are 16-bit registers that overlap R26-R31 • • Used as address pointers Or to contain larger values (>255) 14 .General Purpose Registers • There are 32 8-bit GP registers R0R31 • Used as accumulators – for most math and logic • X. Y.

Special-purpose Registers can also be operated upon directly by the ALU (with certain specific instructions) Stack pointer (SP. 8-bit)  Contains information of result of most recent ALU operation 15 . 16-bit)   Stores return address of subroutine/interrupt calls Storing temporary data and local variables Program counter (PC. 16-bit)  Holds address of next program instruction to be loaded and executed  Automatically incremented when the ALU executes an instruction Status Register (SREG.

Yet another Development System: AVRStudio • • • • Editor (for writing programs in assembly language) Assembler (like a compiler. but much simpler) Program downloader (loads the assembled code to the Atmega32) Debugger • • Monitor – (remote debugging on the actual Atmega32) Simulator – (local dubugging using a simulation of the running Atmega32) 16 .