Anda di halaman 1dari 9

Fitur Kinerja tinggi, rendah daya AVR 8-bit Microcontroller Advanced RISC Arsitektur - 131 Instruksi Powerfull - Kebanyakan

kan Single-jam Siklus Eksekusi - 32 x 8 Register General Purpose Working - Operasi Penuh Static - Sampai dengan 16 MIPS throughput pada 16 MHz - On-chip 2-siklus Multiplier Nonvolatile Program dan Data Kenangan - 32K Bytes In-System Self-Programmable flash Endurance: 10.000 Tulis / Erase Cycles - Boot Kode Bagian Opsional dengan Bits Lock Independen In-System Programming secara On-chip Program Boot Benar Baca-Tulis-Sementara Operasi - 1024 Bytes EEPROM Endurance: 100.000 Tulis / Erase Cycles - 2K Byte internal SRAM - Programming Lock untuk Keamanan Software JTAG (IEEE std 1149,1 Compliant.) Interface - Batas-scan Kemampuan Menurut Standar JTAG - Ekstensif On-chip Debug Dukungan - Pemrograman Flash, EEPROM, Sekering, dan Lock Bits melalui Antarmuka JTAG Peripheral Fitur - Dua 8-bit Timer / Counter dengan Prescalers terpisah dan Bandingkan Mode - Satu 16-bit Timer / Counter dengan Prescaler terpisah, Bandingkan Mode, 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 dengan terpisah On-chip Oscillator - On-chip Analog Comparator Fitur Mikrokontroler Khusus - Power-on Reset dan Programmable Brown-out Detection - RC Oscillator internal 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 Garis - 40-pin PDIP, 44-lead TQFP, dan 44-pad MLF Operasi Tegangan - 2.7 - 5.5V untuk ATmega32L - 4.5 - 5.5V untuk ATmega32 Kecepatan Kelas - 0 - 8 MHz untuk ATmega32L

- 0 - 16 MHz untuk ATmega32 Konsumsi Daya pada 1 MHz, 3V, 25 C untuk ATmega32L - Aktif: 1,1 mA - Diam Mode: 0,35 mA - Power-down Mode: <1 A

Overview

ATmega32 adalah kekuatan rendah CMOS 8-bit mikrokontroler berdasarkan ditingkatkan AVR Arsitektur RISC. Dengan mengeksekusi instruksi yang kuat dalam satu siklus clock tunggal, ATmega32 mencapai throughputs mendekati 1 MIPS per MHz memungkinkan sistem desainer untuk mengoptimalkan konsumsi daya dibandingkan kecepatan pemrosesan.

Inti AVR menggabungkan instruksi yang kaya set dengan 32 register tujuan umum bekerja. Semua register 32 secara langsung terhubung ke Logic Unit Arithmetic (ALU), yang memungkinkan dua register independen untuk diakses dalam satu instruksi tunggal dieksekusi dalam satu jam siklus. Arsitektur yang dihasilkan adalah kode lebih efisien sementara mencapai throughputs sampai dengan sepuluh kali lebih cepat daripada mikrokontroler CISC konvensional. ATmega32 menyediakan fitur berikut: 32K byte In-System Programmable Program flash memori dengan Baca-Tulis-Sementara kemampuan, 1024 byte EEPROM, 2K byte SRAM, 32 tujuan umum I / O baris, 32 register tujuan umum bekerja, sebuah JTAG interface untuk Batas-scan dukungan, On-chip Debugging dan pemrograman, tiga Timer yang fleksibel / Counter dengan membandingkan mode, Interrupts Internal dan Eksternal, serial diprogram USART, yang berorientasi byte Dua-kawat Serial Interface, sebuah 8-channel, 10-bit ADC dengan masukan diferensial panggung opsional dengan gain diprogram (TQFP paket saja), Timer Programmable Watchdog dengan Osilator internal, port SPI serial, dan enam

software mode penghematan daya dipilih. Modus Diam berhenti CPU sementara memungkinkan USART, Dua-kawat antarmuka, A / D Converter, SRAM, Counters Timer /, SPI port, dan mengganggu sistem untuk terus berfungsi. The mode Power-down menghemat isi mendaftar namun membeku Osilator, menonaktifkan semua fungsi chip yang lain sampai Eksternal berikutnya Mengganggu atau Atur ulang Hardware. Dalam Power-save mode, Timer Asynchronous terus untuk menjalankan, memungkinkan pengguna untuk mempertahankan basis waktu sementara sisa perangkat tidur. Kebisingan ADC modus Pengurangan menghentikan CPU dan semua modul I / O kecuali Asynchronous Timer dan ADC, untuk meminimalkan beralih kebisingan selama konversi ADC. Dalam Siaga modus, Oscillator kristal / resonator berjalan sedangkan sisanya dari perangkat tidur. Hal ini memungkinkan sangat cepat start-up dikombinasikan dengan konsumsi daya rendah. Dalam Diperpanjang Modus siaga, baik Oscillator utama dan Timer Asynchronous terus berjalan. Perangkat ini diproduksi dengan menggunakan kepadatan tinggi Atmel teknologi nonvolatile memori. On-chip ISP Flash memungkinkan memori program untuk diprogram ulang dalam sistem melalui antarmuka SPI serial, oleh seorang programmer memory nonvolatile konvensional, atau oleh program Boot On-chip berjalan pada inti AVR. Program boot dapat menggunakan antarmuka untuk men-download program aplikasi dalam memori Flash Application. Perangkat lunak di bagian flash Boot akan terus berjalan sementara bagian Aplikasi Flash adalah diperbarui, memberikan benar Baca-Tulis-Sementara operasi. Dengan menggabungkan sebuah 8-bit RISC CPU dengan In-System Self-Programmable Flash pada chip monolitik, yang ATmega32 Atmel adalah mikrokontroler yang kuat yang memberikan solusi yang sangat-fleksibel dan biayaefektif untuk banyak tertanam aplikasi kontrol. AVR ATmega32 didukung dengan rangkaian lengkap dari pengembangan program dan sistem alat termasuk: C kompiler, assemblers makro, program debugger / simulator, di-sirkuit emulator, dan evaluasi kit. Pin Deskripsi VCC tegangan Digital pasokan. GND Ground. (PA7.. PA0) Port A berfungsi sebagai input analog ke Converter A / D. Port A juga berfungsi sebagai 8-bit bi-directional I / O port, jika A / D Converter tidak digunakan. Pin port dapat menyediakan internal pull-up resistor (dipilih untuk setiap bit). Port output A buffer memiliki karakteristik drive yang simetris dengan baik wastafel tinggi dan kemampuan sumber. Ketika pin PA0 ke PA7 digunakan sebagai input dan secara eksternal ditarik rendah,

mereka akan sumber saat ini jika pull-up internal resistor diaktifkan. The Port A pin adalah tri-dinyatakan saat kondisi ulang menjadi aktif, bahkan jika jam tidak berjalan. Port B (PB7.. PB0) Port B adalah 8-bit bi-directional I / O port dengan internal pullup resistor (dipilih untuk setiap bit). The Port B output buffer memiliki karakteristik drive yang simetris dengan kedua wastafel tinggi dan sumber kemampuan. Sebagai masukan, Port B pin eksternal yang ditarik rendah akan sumber saat ini jika pull-up resistor diaktifkan. The Port B pin adalah tri-dinyatakan saat reset Kondisi menjadi aktif, bahkan jika jam tidak berjalan. Port B juga melayani fungsi fitur khusus berbagai ATmega32 sebagaimana tercantum pada halaman 55. Port C (PC7.. PC0) Port C adalah 8-bit bi-directional I / O port dengan internal pullup resistor (dipilih untuk setiap bit). The Port C output buffer memiliki karakteristik drive yang simetris dengan kedua wastafel tinggi dan sumber kemampuan. Sebagai masukan, Port C pin eksternal yang ditarik rendah akan sumber saat ini jika pull-up resistor diaktifkan. The Port C pin adalah tri-dinyatakan saat reset Kondisi menjadi aktif, bahkan jika jam tidak berjalan. Jika antarmuka JTAG adalah diaktifkan, pull-up resistor pada pin PC5 (TDI), PC3 (TMS) dan PC2 (TCK) akan diaktifkan bahkan jika reset terjadi. Pin TD0 adalah tri-dinyatakan kecuali menyatakan TAP bahwa pergeseran keluar data yang dimasukkan. Port C juga melayani fungsi antarmuka JTAG dan fitur khusus lainnya dari ATmega32 seperti yang tercantum pada halaman 58. Port D (PD7.. PD0) Port D adalah 8-bit bi-directional I / O port dengan internal pullup resistor (dipilih untuk setiap bit). The Port D output buffer memiliki karakteristik drive yang simetris dengan kedua wastafel tinggi dan sumber kemampuan. Sebagai masukan, Port D pin eksternal yang ditarik rendah akan sumber saat ini jika pull-up resistor diaktifkan. The Port D pin adalah tri-dinyatakan saat reset Kondisi menjadi aktif, bahkan jika jam tidak berjalan. Port D juga melayani fungsi fitur khusus berbagai ATmega32 sebagaimana tercantum pada halaman 60. RESET ulang Masukan. Sebuah tingkat rendah pada pin ini selama lebih dari panjang pulsa minimum akan menghasilkan ulang, bahkan jika jam tidak berjalan. Panjang pulsa minimum diberikan dalam Tabel 15 pada halaman 35. Pulsa pendek tidak dijamin untuk menghasilkan reset. XTAL1 Masukan ke penguat osilator pembalik dan input ke sirkuit clock internal operasi. XTAL2 Output dari penguat pembalik Oscillator. AVCC AVCC adalah tegangan suplai pin untuk Port A dan A / D Converter. Ini harus eksternal terhubung ke VCC, meskipun ADC tidak digunakan. Jika ADC digunakan, harus dihubungkan

untuk VCC melalui low-pass filter. AREF AREF adalah pin referensi analog untuk A / D Converter. Tentang Kode Contoh Dokumentasi ini berisi contoh-contoh kode sederhana yang singkat menunjukkan bagaimana menggunakan berbagai bagian dari perangkat. Contoh-contoh kode mengasumsikan bahwa file header bagian tertentu adalah disertakan sebelum kompilasi. Sadarilah bahwa tidak semua vendor Compiler C meliputi definisi bit dalam file header dan penanganan interupsi dalam C compiler tergantung. Silahkan konfirmasikan dengan dokumentasi Compiler C untuk lebih jelasnya. AVR CPU Core Pendahuluan Bagian ini membahas arsitektur inti AVR pada umumnya. Fungsi utama dari CPU inti adalah untuk memastikan pelaksanaan program yang benar. CPU karena itu harus mampu kenangan akses, melakukan perhitungan, peripheral kontrol, dan menyela menangani.

Dalam rangka untuk memaksimalkan kinerja dan paralelisme, AVR menggunakan arsitektur Harvard - Dengan kenangan terpisah dan bus untuk program dan data. Instruksi dalam program memori dieksekusi dengan pipelining tingkat satu. Sementara satu instruksi sedang dieksekusi, instruksi berikutnya adalah pre-diambil dari memori program. konsep ini memungkinkan instruksi yang akan dieksekusi dalam setiap clock cycle. Memori program InSistem memori reprogrammable Flash. File Register cepat-akses mengandung 32 x 8-bit tujuan umum register bekerja dengan satu siklus jam waktu akses. Hal ini memungkinkan tunggal siklus Arithmetic Logic Unit (ALU) operasi. Dalam operasi ALU yang khas, dua operan adalah output dari file Register, operasi dijalankan, dan hasilnya disimpan kembali di file Daftar - dalam satu clock cycle. Enam dari 32 register dapat digunakan sebagai tiga 16-bit pointer mendaftar alamat tidak langsung

untuk Data Ruang menangani - memungkinkan perhitungan alamat yang efisien. Salah satu ini pointer alamat juga dapat digunakan sebagai pointer alamat untuk mencari tabel dalam Program Flash memori. Register fungsi ditambahkan adalah 16-bit X-, Y-, dan Z-register, dijelaskan dalam bagian ini. The ALU mendukung operasi aritmatika dan logika antara register atau antara konstanta dan mendaftar. Operasi register tunggal juga dapat dijalankan dalam ALU. Setelah operasi aritmatika, Register Status diperbarui untuk mencerminkan informasi tentang hasil operasi. Aliran program disediakan oleh lompatan bersyarat dan bersyarat dan instruksi panggilan, mampu untuk secara langsung menjawab seluruh ruang alamat. Instruksi AVR Kebanyakan memiliki satu 16-bit word format. Setiap alamat memori program berisi 16 - atau 32-bit instruksi. Program Flash ruang memori dibagi dalam dua bagian, bagian Program Boot dan bagian Application Program. Kedua bagian telah mendedikasikan bit Lock untuk menulis dan membaca / menulis perlindungan. Instruksi SPM yang menulis ke dalam memori Flash Aplikasi Bagian harus berada di bagian Program Boot. Selama interupsi dan subroutine panggilan, alamat pengirim Program Counter (PC) adalah disimpan pada Stack. Stack secara efektif dialokasikan dalam SRAM data umum, dan akibatnya ukuran Stack hanya dibatasi oleh ukuran SRAM total dan penggunaan dari SRAM. Semua program pengguna harus menginisialisasi SP dalam rutinitas ulang (sebelum subrutin atau mengganggu dieksekusi). Stack The Pointer SP adalah membaca / menulis diakses di I / O ruang. The SRAM data dengan mudah dapat diakses melalui menangani lima yang berbeda mode yang didukung dalam arsitektur AVR. Ruang memori dalam arsitektur AVR adalah semua peta memori linear dan teratur. Sebuah modul mengganggu fleksibel memiliki kontrol register di ruang I / O dengan tambahan interrupt global memungkinkan bit dalam Daftar Status. Semua menyela memiliki interupsi yang terpisah vektor dalam tabel vektor interupsi. Menyela memiliki prioritas sesuai dengan mereka mengganggu posisi vektor. Alamat yang rendah vektor interupsi, prioritas tinggi. Ruang memori I / O berisi 64 alamat untuk fungsi perangkat CPU sebagai Kontrol Register, SPI, dan lainnya I / O fungsi. Memori I / O dapat diakses secara langsung, atau sebagai lokasi Ruang Data mengikuti mereka dari File Register, $ 20 - $ 5F.

ALU - Arithmetic Logic satuan Performa tinggi AVR ALU beroperasi dalam hubungan langsung dengan semua jenderal 32 Tujuan kerja register. Dalam siklus operasi tunggal jam aritmatika, antara register tujuan umum atau antara register dan langsung dieksekusi. itu Operasi ALU dibagi menjadi tiga kategori utama - aritmatika, logis, dan bit-fungsi. Beberapa implementasi dari arsitektur juga menyediakan multiplier yang kuat mendukung kedua ditandatangani perkalian / unsigned dan bentuk pecahan. Lihat Instruksi " Set "untuk penjelasan rinci. Status Register Register Status berisi informasi tentang hasil yang paling baru-baru dieksekusi aritmatika instruksi. Informasi ini dapat digunakan untuk mengubah aliran program dalam rangka melakukan operasi bersyarat. Perhatikan bahwa Register Status diperbarui setelah semua ALU operasi, sebagaimana ditentukan dalam Referensi Instruction Set. Ini akan dalam banyak kasus menghapus kebutuhan untuk menggunakan petunjuk membandingkan khusus, sehingga lebih cepat dan lebih kompak kode. The Register Status tidak secara otomatis disimpan ketika memasuki sebuah rutin interupsi dan dikembalikan ketika kembali dari interupsi. Hal ini harus ditangani oleh perangkat lunak. Status AVR Register - sreg - didefinisikan sebagai:

Bit 7 - I: Interrupt global Aktifkan Bit Interrupt Enable global harus ditetapkan untuk menyela harus diaktifkan. Individu mengganggu memungkinkan kontrol selanjutnya dilakukan dalam register kontrol terpisah. Jika Global Interrupt Enable Register dibersihkan, tidak ada interupsi diaktifkan independen mengganggu individu mengaktifkan pengaturan. I-bit dihapus oleh hardware setelah interrupt telah terjadi, dan diatur oleh instruksi RETI untuk mengaktifkan interupsi berikutnya. Ibit The juga dapat diatur dan dibersihkan oleh aplikasi dengan SEI dan instruksi CLI, seperti dijelaskan dalam referensi set instruksi. Bit 6 - T: Penyimpanan Salin Bit Salin Bit Instruksi BLD (Load Bit) dan BST (toko Bit) menggunakan T-bit sebagai sumber atau tujuan untuk bit dioperasikan. Sedikit dari register dalam file Daftar dapat disalin ke T oleh instruksi BST, dan sedikit di T dapat disalin ke sedikit di register di Daftar file oleh instruksi BLD. Bit 5 - H: Half Carry Flag The Carry Flag Setengah H menunjukkan carry setengah dalam beberapa operasi aritmatika. Carry setengah berguna dalam aritmatika BCD. Lihat "Instruksi Keterangan Set" untuk informasi rinci. Bit 4 - S: Sign Bit, S = N V The S-bit selalu merupakan N eksklusif atau antara Bendera negatif dan Pelengkap Dua s Bendera Overflow V. Lihat "Instruksi Keterangan Set" untuk informasi rinci. Bit 3 - V: Pelengkap Flag Overflow Two Pelengkap Overflow Two Flag V mendukung arithmetics melengkapi dua itu. Lihat yang "Instruksi Set Deskripsi" untuk informasi rinci. Bit 2 - N: Bendera Negatif Bendera N Negatif menunjukkan hasil negatif dalam aritmatika atau operasi logika. Lihat yang "Instruksi Set Deskripsi" untuk informasi rinci. Bit 1 - Z: Zero Flag The Flag Nol Z menunjukkan hasil nol dalam aritmatika atau operasi logika. Lihat "Instruksi Set Deskripsi" untuk informasi rinci.
Bit 0 - C: Bendera Carry Carry Flag C menunjukkan carry dalam operasi aritmatika atau logika. Lihat Instruksi " Set Deskripsi "untuk informasi rinci. General Purpose Daftar Berkas File Register dioptimalkan untuk set instruksi RISC Ditingkatkan AVR. Agar mencapai kinerja yang diperlukan dan fleksibilitas, input / output mengikuti skema yang didukung oleh file Register: Satu keluaran operan 8-bit dan satu 8-bit input hasil Dua keluaran operan 8-bit dan satu 8-bit input hasil Dua keluaran operan 8-bit dan 16-bit satu masukan hasil Satu 16-bit output operan dan satu 16-bit input hasil Gambar 4 menunjukkan struktur dari tujuan umum register 32 yang bekerja dalam CPU.

Sebagian besar instruksi pengoperasian pada File Register memiliki akses langsung ke semua register, dan kebanyakan dari mereka adalah petunjuk siklus tunggal. Seperti ditunjukkan dalam Gambar 4, setiap register juga diberi alamat memori data, pemetaan mereka langsung ke 32 lokasi pertama dari Ruang Data pengguna. Meskipun tidak secara fisik diimplementasikan sebagai lokasi SRAM, organisasi memori menyediakan besar fleksibilitas dalam akses register, seperti X-, Y-, dan Z-Registers pointer dapat diatur untuk Indeks pun mendaftar di file.

Anda mungkin juga menyukai