Atmel 8-bit AVR Mikrokontroler sareng 2/4/8K Bytes In-System Programmable Flash
Fitur
- Performance High, Low Power AVR® 8-Bit Mikrokontroler
- Arsitéktur RISC Canggih
- 120 Pitunjuk anu Kuat - Kalolobaan Eksekusi Siklus Jam
- 32 x 8 Pendaptaran Tujuan Umum
- Operasi Statis Sapinuhna
- Program sareng Kenangan Data anu henteu stabil
- 2/4 / 8K Bait tina In-System Programmable Flash Memory Memory
- Daya tahan: 10,000 Tulis / Hapus Siklus
- 128/256/512 Bait Dina-System Programmable EEPROM
- Daya tahan: 100,000 Tulis / Hapus Siklus
- 128/256/512 bait Internal SRAM
- Kunci Programming pikeun Program Flash Programming Diri sareng Kaamanan Data EEPROM
Fitur Periferal
- 8-bit Timer / Counter sareng Prescaler sareng Dua Saluran PWM
- 8-bit High Speed Timer / Counter sareng Pisahkeun Prescaler
- 2 Kaluaran PWM Frékuénsi Luhur sareng Kaluaran Pamisah Bandingkeun Daptar
- Programmable Dead Time generator
- USI - Universal Serial Interface with Start Kaayaan Detektor
- 10-bit ADC
4 Saluran Anu Henteu Tunggal
2 Pasangan Channel ADC Bédana sareng Programmable Gain (1x, 20x)
Pangukuran Suhu
Programmable Watchdog Timer sareng Oscillator On-chip Pisah
Dina-chip Analog Babandingan
Fitur Mikrokontroler Husus
debugWIRE Di-chip Sistem debug
Dina-Sistem Programmable via SPI Port
Sumber Panganteur Éksternal sareng Internal
Nganggurkeun Daya Rendah, Réduksi Noise ADC, sareng Modeu Daya-handap
Enhanced Power-on Reset Circuit
Sirkuit Detéksi Brown-out Programmable
Osilator Kalibrasi Internal
I / O sareng Paket
Genep Diprogram I / O Garis
8-pin PDIP, 8-pin SOIC, 20-pad QFN / MLF, sareng 8-pin TSSOP (ngan ATtiny45 / V)
Operasi Voltage
- 1.8 - 5.5V pikeun ATtiny25V / 45V / 85V
- 2.7 - 5.5V pikeun ATtiny25 / 45/85
Kelas Laju
- ATtiny25V / 45V / 85V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V
- ATtiny25 / 45/85: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V
Rentang Suhu Industrial
Konsumsi Daya Lemah
Modeu Aktip:
1 MHz, 1.8V: 300 µA
Modeu kakuatan-handap:
Konfigurasi Pin
Pinout ATtiny25 / 45/85
Katerangan Pin
VCC: suplai voltage.
GND: Taneuh.
Port B (PB5: PB0): Port B nyaéta 6-bit bi-arah I / O port jeung internal pull-up resistors (dipilih pikeun tiap bit). Buffers kaluaran Port B gaduh ciri drive simetris sareng kamampuan tilelep sareng sumber anu luhur. Salaku inputs, pin Port B nu externally ditarik low bakal sumber ayeuna lamun resistors pull-up diaktipkeun. Port B pin anu tri-nyatakeun lamun kaayaan reset jadi aktip, sanajan jam teu jalan.
Port B ogé ngagaduhan fungsi sababaraha fitur khusus tina ATtiny25 / 45/85 sakumaha didaptarkeun
Dina ATtiny25, portél I / O anu tiasa diprogram PB3 sareng PB4 (pin 2 sareng 3) ditukeurkeun dina ATtiny15 Compatibility Mode kanggo ngadukung kasaluyuan mundur sareng ATtiny15.
RESET: Reset input. A tingkat low on pin ieu leuwih panjang batan panjang pulsa minimum bakal ngahasilkeun reset a, sanajan jam teu ngajalankeun sarta disadiakeun pin reset teu acan ditumpurkeun. Panjang pulsa minimum dirumuskeun dina Méja 21-4 dina kaca 165. Pulsa anu langkung pondok henteu dijamin pikeun ngahasilkeun reset.
Pin ngareset ogé tiasa dianggo salaku pin lemah (lemah) I / O.
Leuwihview
ATtiny25 / 45/85 mangrupikeun mikrokontroler CMOS 8-bit kakuatan rendah dumasar kana arsitektur AVIS ditingkatkeun RISC. Ku ngaeksekusi pitunjuk anu kuat dina hiji siklus jam, ATtiny25 / 45/85 ngahontal hasil anu ngadeukeutan 1 MIPS per MHz ngamungkinkeun desainer sistem ngaoptimalkeun konsumsi kakuatan dibanding speed pamrosésan.
Blok Diagram
Inti AVR ngagabungkeun susunan instruksi anu euyeub ku 32 panggunaan tujuan umum. Sadayana 32 register langsung nyambung kana Arithmetic Logic Unit (ALU), ngamungkinkeun dua register bebas diaksés dina hiji instruksi anu dilaksanakeun dina hiji siklus jam. Arsitéktur anu dihasilkeun langkung éfisién kode bari ngahontal throughputs dugi ka sapuluh kali langkung gancang tibatan microcontrollers CISC konvensional.
ATtiny25 / 45/85 nyayogikeun fitur-fitur ieu: 2/4 / 8K bait In-System Programmable Flash, 128/256/512 bytes EEPROM, 128/256/256 bytes SRAM, 6 garis umum I / O waé, 32 umum register kerja tujuan, hiji Timer / Counter 8-bit kalayan modeu ngabandingkeun, hiji Timer / Counter kecepatan tinggi 8-bit, Universal Serial Interface, Internal and External Interrupts, 4-channel, 10-bit ADC, a programmable Watchdog Timer with internal Osilator, sareng tilu perangkat lunak modeu hemat daya anu tiasa dipilih. Modeu dianggurkeun ngeureunkeun CPU bari ngamungkinkeun sistem SRAM, Timer / Counter, ADC, Analog Comparator, sareng Interrupt pikeun neraskeun fungsina. Modeu power-down nyimpen konperénsi register, nganonaktipkeun sadaya fungsi chip dugi ka Interrupt atanapi Hardware Reset salajengna. Mode ADC Noise Reduction ngeureunkeun CPU sareng sadaya modul I / O kecuali ADC, pikeun ngaleutikan noise switching nalika konversi ADC.
Alatna didamel nganggo téknologi mémori non-volatilitas tinggi Atmel. Dina-chip ISP Flash ngamungkinkeun mémori Program tiasa diprogram deui dina-Sistem ngalangkungan antarbeungeut serial SPI, ku programer mémori non-volatil konvensional atanapi ku kode boot On-chip anu dijalankeun dina inti AVR.
ATtiny25 / 45/85 AVR dirojong ku sapinuh alat sareng alat pangembangan sistem diantarana: C Com- pilers, Macro Assemblers, Program Debugger / Simulator and Evaluation kit.
Ngeunaan Sumberdaya
Sakumpulan alat pangembangan, catetan aplikasi sareng lembar data komprehensif sayogi pikeun diunduh http://www.atmel.com/avr.
Kode Examples
Dokuméntasi ieu ngandung kode basajan examples nu sakeudeung nembongkeun kumaha carana make sagala rupa bagian alat. Kode ieu examples nganggap yén lulugu bagian husus file kaasup saméméh kompilasi. Sadar yén henteu sadayana padagang kompiler C kalebet definisi bit dina header files jeung interupsi penanganan dina C gumantung kompiler. Mangga konfirmasi sareng dokuméntasi kompiler C kanggo langkung rinci.
Pikeun I / O Registr anu aya dina peta I / O anu ngalegaan, "IN", "OUT", "SBIS", "SBIC", "CBI", sareng "SBI" pitunjuk kedah diganti ku paréntah anu ngamungkinkeun aksés ka I diperpanjang / O. Ilaharna, ieu hartosna "LDS" sareng "STS" digabungkeun sareng "SBRS", "SBRC", "SBR", sareng "CBR". Catet yén henteu sadaya alat AVR kalebet peta I / O anu ngalegaan.
Capacitive Touch Sensing
Atmel QTouch Perpustakaan nyadiakeun basajan ngagunakeun solusi pikeun interfaces sénsitip touch on microcontrollers Atmel AVR. Perpustakaan QTouch kalebet dukungan pikeun metode akuisisi QTouch® sareng QMatrix®.
Touch sensing gampang ditambihkeun kana aplikasi naon waé ku cara ngahubungkeun Perpustakaan QTouch sareng nganggo Program Application- ming Interface (API) perpustakaan pikeun ngahartikeun saluran touch sareng sénsor. Aplikasi éta teras nyauran API pikeun kéngingkeun inpormasi saluran sareng nangtoskeun kaayaan sénsor touch.
Perpustakaan QTouch gratis sareng tiasa diunduh tina Atmel websitus. Kanggo inpo nu leuwih lengkep tur rinci palaksanaan, tingal QTouch Perpustakaan Guide pamaké - ogé sadia tina Atmel websitus.
Panyimpenan Data
Hasil Kualifikasi reliabilitas nunjukkeun yén laju kagagalan retensi data anu diproyeksikeun langkung kirang ti 1 PPM salami 20 taun dina 85 ° C atanapi 100 taun dina 25 ° C.
Core AVR CPU
Bubuka
Bagéan ieu ngabahas arsitektur inti AVR sacara umum. Fungsi utama inti CPU nyaéta mastikeun palaksanaan program anu leres. CPU na kedah tiasa ngakses kenangan, ngalakukeun itungan, ngadalikeun périferal, sareng nanganan gangguan.
Arsitéktur Leuwihview
Dina raraga ngamaksimalkeun kinerja sareng paralelisme, AVR nganggo arsitektur Harvard - kalayan kenangan sareng beus anu misah pikeun program sareng data. Pitunjuk dina mémori Program dilaksanakeun kalayan pipelining tingkat tunggal. Nalika hiji instruksi nuju dilaksanakeun, pitunjuk salajengna sateuacanna dicandak tina mémori Program. Konsép ieu ngamungkinkeun instruksi pikeun dieksekusi dina unggal siklus jam. Memori Program mangrupikeun In-System Memori Flash Reprogrammable.
The gancang-aksés ngadaptar File ngandung 32 x 8-bit tujuan umum registers gawé kalawan waktu aksés siklus jam tunggal. Hal ieu ngamungkinkeun hiji siklus Arithmetic Logic Unit (ALU) operasi. Dina operasi ALU has, dua operan kaluaran tina Register File, operasi dieksekusi, sarta hasilna disimpen deui dina ngadaptar File- dina hiji siklus jam.
Genep tina 32 register tiasa dianggo salaku tilu petunjuk alamat teu langsung 16-bit pikeun alamat Data Space - ngamungkinkeun perhitungan alamat anu épisién. Salah sahiji petunjuk alamat ieu ogé tiasa dianggo salaku panunjuk alamat pikeun milarian tabel dina mémori Program Flash. Daptar fungsi anu ditambihkeun nyaéta 16-bit X-, Y-, sareng Z-register, dijelaskeun engké dina bagian ieu.
ALU ngadukung operasi aritmatika sareng logika antara register atanapi antara konstanta sareng register. Operasi daptar tunggal ogé tiasa dilaksanakeun di ALU. Saatos operasi aritmatika, Daptar Status diperbarui pikeun ngagambarkeun inpormasi ngeunaan hasil operasi.
Aliran program disayogikeun ku cara luncat sareng sarat paréntah luncat sareng télépon, tiasa langsung alamat sadayana ruang alamat. Kaseueuran paréntah AVR gaduh hiji format kecap 16-bit, tapi ogé aya 32-bit paréntah.
Nalika gangguan sareng telepon subroutin, alamat balik Program Counter (PC) disimpen dina Tumpukan. Tumpukan sacara épéktip dialokasikan dina SRAM data umum, sareng akibatna ukuran Stack ngan ukur dibatesan ku total ukuran SRAM sareng panggunaan SRAM. Sadaya program pangguna kedah ngainisialkeun SP dina rutinkeun Reset (sateuacan sub-rutin atanapi interrupts dilaksanakeun). Stack Pointer (SP) dibaca / nyerat tiasa diaksés dina rohangan I / O. Data SRAM tiasa sacara gampang diaksés ngalangkungan lima modus alamat anu béda anu didukung dina arsitektur AVR.
Ruang mémori dina arsitéktur AVR sadayana aya mémori linier sareng mémori biasa.
Modul panganteur fléksibel ngagaduhan kadali kontrol na dina rohangan I / O kalayan tambahan Global Interrupt Enable bit dina Status Register. Sadaya gangguan ngagaduhan Véktor Gangguan misah dina méja Gangguan Véktor. Gangguan gaduh prioritas saluyu sareng posisi Interrupt Vector na. Handap alamat Interrupt Vector, langkung ageung prioritasna.
Rohangan mémori I/O ngandung 64 alamat pikeun pungsi periferal CPU salaku Control Registers, SPI, jeung fungsi I/O séjén. Mémori I/O bisa diaksés langsung, atawa salaku lokasi Data Spasi sanggeus nu pendaptaran File, 0x20 – 0x5F.
ALU - Unit Logika Aritmatika
Kinerja tinggi AVR ALU beroperasi langsung dina sambungan sareng sadaya 32 panggunaan tujuan umum. Dina hiji siklus jam, operasi aritmatika antara panggunaan tujuan umum atanapi antara daptar sareng waktos langsung dilaksanakeun. Operasi ALU dibagi kana tilu kategori utama - fungsi aritmatika, logis, sareng bit-. Sababaraha palaksanaan arsitéktur ogé nyayogikeun multiplier anu kuat pikeun ngadukung boh multiplikasi anu ditandatanganan / teu ditandatanganan sareng format fraksi. Tingali bagian "Atur Parentah" kanggo katerangan anu lengkep.
Ngadaptar status
Status register ngandung inpormasi ngeunaan hasil paréntah aritmatika anu paling anyar dilaksanakeun. Inpormasi ieu tiasa dianggo pikeun ngarobih aliran program dina urutan ngalakukeun operasi kondisional. Catet yén Daptar Status diperbarui saatos sadayana operasi ALU, sakumaha anu parantos ditangtoskeun dina Rujukan Set Instruksi. Hal ieu dina kaseueuran kasus bakal ngaleungitkeun kabutuhan panggunaan paréntah ngabandingkeun khusus, hasilna kode anu langkung gancang sareng langkung kompak.
Status Registrasi henteu disimpen sacara otomatis nalika ngalebetkeun rutinitas ngaganggu sareng disimpen deui nalika mulih ti gangguan. Ieu kedah diurus ku parangkat lunak.
SREG - Daptar Status AVR
Daptar Status AVR - SREG - dihartikeun salaku:
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3f | I | T | H | S | V | N | Z | C | SREG |
Maca/Tulis | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - I: Global Interrupt Enable
Global Interrupt Enable bit kedah disetél supados gangguan tiasa diaktipkeun. Gangguan individu ngaktipkeun kendali teras dilakukeun dina daptar kontrol anu misah. Upami Global Interrupt Enable Registrasi diberesihan, moal aya gangguan anu diaktipkeun sacara bébas tina setélan aktip anu ngaganggu individu. I-bit diberesihan ku perangkat keras saatos gangguan parantos kajantenan, sareng diatur ku paréntah RETI pikeun ngaktipkeun gangguan salajengna. I-bit ogé tiasa disetél sareng diberesihan ku aplikasi nganggo instruksi SEI sareng CLI, sakumaha anu dijelaskeun dina rujukan instruksi.
Bit 6 - T: Panyimpenan Salin Bit
Parentah Bit Copy BLD (Bit LoaD) sareng BST (Bit Store) nganggo T-bit salaku sumber atanapi tujuan pikeun bit anu dioperasikeun. A bit ti register dina ngadaptar File bisa disalin kana T ku instruksi BST, sarta bit dina T bisa disalin kana bit dina register dina Register File ku parentah BLD.
Bit 5 - H: Bandéra Satengah Mawa
Bandéra Satengah Mawa H nunjukkeun Satengah Mawa dina sababaraha operasi aritmatika. Half Carry aya gunana dina aritmatika BCD. Tingali "Instruction Set Pedaran" kanggo inpormasi lengkep.
Bit 4 – S: Bit Sign, S = N ⊕ V
S-bit sok ekslusif atanapi antara Panji négatip N sareng Dua urang Kompléks Overflow Flag V. Tingali "Instruction Set Deskripsi" kanggo inpormasi lengkep.
Bit 3 - V: Dua urang Lengkepna Bendéra
The Two's Complement Overflow Flag V ngadukung aritmatika pelengkap dua urang. Tingali "Instruction Set Deskripsi" kanggo inpormasi lengkep.
Bit 2 - N: Bendéra Negatif
Bendéra Negatif N nunjukkeun akibat négatip dina operasi aritmatika atanapi logika. Tingali "Instruction Set Deskripsi" kanggo inpormasi lengkep.
Bit 1 - Z: Bandéra Nol
Zero Flag Z nunjukkeun hasil nol dina operasi aritmatika atanapi logika. Tingali "Instruction Set Pedaran" kanggo inpormasi lengkep.
Bit 0 - C: Mawa Bandéra
The Carry Flag C nunjukkeun ayana operasi aritmatika atanapi logika. Tingali "Instruction Set Deskripsi" kanggo inpormasi lengkep.
Tujuan umum ngadaptar File
The ngadaptar File dioptimalkeun pikeun set instruksi AVR Enhanced RISC. Pikeun ngahontal kinerja sareng kalenturan anu diperyogikeun, skéma input/output di handap ieu dirojong ku Register File:
Hiji operan kaluaran 8-bit sareng hiji input hasil 8-bit
Dua kaluaran 8-bit operand sareng hiji input hasil 8-bit
Dua kaluaran 8-bit operand sareng hiji input hasil 16-bit
Hiji operan kaluaran 16-bit sareng hiji input hasil 16-bit
Gambar 4-2 nembongkeun struktur 32 panggunaan tujuan umum dina CPU.
Salaku ditémbongkeun dina Gambar 4-2, unggal register ogé ditugaskeun alamat memori Data, pemetaan aranjeunna langsung kana 32 lokasi mimiti Spasi Data pamaké. Sanajan teu dilaksanakeun sacara fisik salaku lokasi SRAM, organisasi memori ieu nyadiakeun kalenturan hébat dina aksés ka registers, sakumaha X-, Y- jeung Z-pointer registers bisa disetel ka indéks sagala register dina. file.Lolobana parentah operasi dina ngadaptar File boga aksés langsung ka sadaya registers, sarta lolobana ti maranéhanana mangrupakeun instruksi siklus tunggal.
X-register, Y-register, sareng Z-register
Pendaptaran R26..R31 gaduh sababaraha fungsi tambahan pikeun panggunaan tujuan umum. Daptar ieu mangrupikeun pitunjuk alamat 16-bit pikeun henteu langsung alamat rohangan data. Tilu alamat anu henteu langsung ngadaptar X, Y, sareng Z didefinisikeun sakumaha anu dijelaskeun dina Gambar 4-3.
Dina modeu alamat anu béda alamat ieu alamat ngagaduhan fungsi salaku pamindahan tetep, paningkatan otomatis, sareng panurunan otomatis (tingali rujukan instruksi pikeun detil).
Tumpukan Panunjuk
Tumpukan utamina dianggo pikeun nyimpen data samentawis, pikeun nyimpen variabel lokal sareng pikeun nyimpen alamat balik saatos gangguan sareng telepon subroutin. The Stack Pointer Registrasi teras nunjuk ka luhur Stack. Catet yén Tumpukan dilaksanakeun sakumaha ngembang ti lokasi mémori anu langkung luhur kana lokasi mémori anu langkung handap. Ieu ngakibatkeun yén paréntah Stack PUSH ngirangan Stack Pointer.
The Stack Pointer nunjuk kana data SRAM Stack area tempat ayana Subroutine sareng Interrupt Stacks. Spasi tumpukan ieu dina data SRAM kedah dihartikeun ku program sateuacan aya panggilan subroutin dieksekusi atanapi antar-buruan diaktipkeun. Stack Pointer kedah disetél ka titik di luhur 0x60. The Stack Pointer dikurangan ku hiji nalika data kadorong kana tumpukan kalayan instruksi PUSH, sareng éta dikurangan ku dua nalika alamat balik didorong kana Stack kalayan panggero subroutine atanapi ngaganggu. Stack Pointer ditambahan ku hiji nalika data dicandak tina tumpukan ku instruksi POP, sareng éta ditambahan ku dua nalika data muncul tina Stack kalayan balikna tina RET subroutin atanapi balik tina RETI ngaganggu.
AVR Stack Pointer dilaksanakeun salaku dua register 8-bit dina rohangan I / O. Jumlah bit anu leres-leres dianggo gumantung kana implementasi. Catet yén rohangan data dina sababaraha palaksanaan arsitéktur AVR sakedik alit sahingga ngan ukur SPL anu diperyogikeun. Dina hal ieu, Daftar SPH moal aya.
SPH sareng SPL - Stack Pointer register
Bit | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | |
0x3E | SP15 | SP14 | SP13 | SP12 | SP11 | SP10 | SP9 | SP8 | SPH |
0x3D | SP7 | SP6 | SP5 | SP4 | SP3 | SP2 | SP1 | SP0 | SPL |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | ||
Maca/Tulis | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | |
Maca/Tulis | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | |
Nilai awal | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND |
Parentah Laksanakeun Waktos
Bagian ieu ngajelaskeun konsép waktos aksés umum pikeun palaksanaan instruksi. CPU AVR disetir ku clkCPU jam CPU, langsung dihasilkeun tina sumber jam dipilih pikeun chip. Taya division jam internal dipaké.
Gambar 4-4 nembongkeun fetches instruksi paralel jeung executions instruksi diaktipkeun ku arsitektur Harvard sarta aksés gancang ngadaptar File konsép. Ieu konsép pipelining dasar pikeun ménta nepi ka 1 MIPS per MHz kalawan hasil unik pakait pikeun fungsi per ongkos, fungsi per jam, sarta fungsi per kakuatan-unit.
Gambar 4-5. Operasi ALU Siklus Tunggal
Reset sareng Ngatur Interrupt
AVR nyayogikeun sababaraha sumber gangguan anu béda. Gangguan ieu sareng Véktor Reset anu misah masing-masing gaduh Program Véktor anu misah dina rohangan mémori Program. Sadaya gangguan ditugaskeun masing-masing ngaktifkeun bit anu kedah ditulis logika hiji sasarengan sareng Global Interrupt Enable bit dina Status Register supados tiasa ngaganggu.
Alamat anu panghandapna dina rohangan mémori Program sacara standar ditetepkeun salaku Reset and Interrupt Vectors. Daptar lengkep vektor dipidangkeun dina "Ngaganggu" dina kaca 48. Daptar ogé nangtoskeun tingkat prioritas pikeun gangguan anu sanés. Nurunkeun alamat langkung luhur nyaéta tingkat prioritas. RESET gaduh prioritas pangluhurna, sareng salajengna nyaéta INT0 - External Interrupt Request 0.
Nalika ayana gangguan, Global Interrupt Enable I-bit diberesihan sareng sadaya gangguan ditumpurkeun. Pamaké anu lemes tiasa nyerat logika hiji kana I-bit pikeun ngaktipkeun gangguan anu bersarang. Sadaya gangguan anu diaktipkeun teras tiasa ngaganggu rutinitas ngaganggu anu ayeuna. I-bit sacara otomatis disetél nalika Return from Interrupt instruksi - RETI - dilaksanakeun.
Dasarna aya dua jinis gangguan. Jinis anu munggaran dipicu ku kajadian anu netepkeun Bendera Gangguan. Pikeun gangguan ieu, Program Counter di-vector kana Interrupt Vector anu leres pikeun ngajalankeun rutinitas interrupt handling, sareng pakakas ngabersihan Flag of Interrupt. Gangguan Panji ogé tiasa diberesihan ku nyerat logika kana posisi bit flag (s) anu bakal diberesihan. Upami kaayaan ngaganggu kajantenan bari ngaganggu anu tiasa ngaktipkeun bit diberesihan, Gangguan Gendéra bakal disetél sareng émut dugi ka gangguanna diaktipkeun, atanapi bendéra diberesihan ku parangkat lunak. Nya kitu, upami salah sahiji atanapi langkung kaayaan ngaganggu kajantenan nalika Global Interrupt Enable bit diberesihan, Flag of Interrupt anu pakait bakal disetél sareng émut dugi ka Global Interrupt Enable bit parantos disetél, sareng teras bakal dilaksanakeun ku urutan prioritas.
Jinis kadua gangguan bakal micu salami kaayaan ngaganggu aya. Gangguan ieu henteu kedah-leres aya Gendéra Ganggu. Upami kaayaan ngaganggu ngaleungit sateuacan ngaganggu diaktipkeun, gangguan éta moal dipicu.
Nalika AVR kaluar tina gangguan, éta bakal teras-terasan balik kana program anu utami sareng ngaéksekusi hiji deui instruksi sateuacan gangguan anu ditunda.
Catet yén Daptar Status henteu sacara otomatis disimpen nalika ngalebetkeun rutinitas ngaganggu, atanapi henteu disimpen deui nalika balik tina rutinitas ngaganggu. Ieu kedah diurus ku parangkat lunak.
Nalika nganggo paréntah CLI pikeun nganonaktipkeun interrupts, interrupts bakal langsung ditumpurkeun. Taya interupsi bakal dieksekusi sanggeus instruksi CLI, sanajan eta lumangsung sakaligus kalawan instruksi CLI. Ex di handapample nunjukeun kumaha ieu bisa dipaké pikeun nyegah interrupts salila urutan nulis EEPROM timed.
Kode Majelis Example |
dina r16, SREG; nyimpen nilai SREG
cli ; mareuman interrupts salila runtuyan timed sbi EECR, EEMPE ; ngamimitian EEPROM nulis sbi EECR, EEPE kaluar SREG, r16; mulangkeun nilai SREG (I-bit) |
Kode C Example |
char cSREG;
cSREG = SREG; /* nyimpen nilai SREG */ /* mareuman interrupts salila runtuyan timed */ _CLI (); EECR |= (1< EECR | = (1 < SREG = cSREG; /* mulangkeun nilai SREG (I-bit) */ |
Nalika ngagunakeun instruksi SEI pikeun ngaktipkeun interrupts, instruksi di handap SEI bakal dieksekusi sateuacan aya interrupts pending, sakumaha ditémbongkeun dina ex ieu.ample.
Kode Majelis Example |
sei ; set Global Interrupt Aktipkeun
sare; asup sare, nungguan interupsi ; catetan: bakal asup ka bobo sateuacan ditunda ; ngaganggu |
Kode C Example |
_SEI(); /* set Global Interrupt Aktipkeun */
_Saré(); /* lebet sare, ngantosan interupsi */ / * catetan: bakal asupkeun bobo sateuacan gangguan anu ditunda * / / |
Ngaganggu Waktos Tanggapan
Réspon palaksanaan ngaganggu pikeun sadaya gangguan AVR anu diaktipkeun nyaéta opat siklus jam minimum. Saatos opat jam alamat Program Véktor pikeun rutinitas penanganan ngaganggu saleresna dilaksanakeun. Salami waktos siklus opat jam ieu, Program Counter didorong kana Tumpukan. Véktor biasana luncat kana rutinitas ngaganggu, sareng luncat ieu peryogi tilu siklus jam. Upami gangguan lumangsung nalika ngajalankeun instruksi multi-siklus, paréntah ieu réngsé sateuacan gangguan éta dilayanan. Upami gangguan ngaganggu nalika MCU dina modeu bobo, waktos réspon palaksanaan interupsi ningkat ku opat siklus jam. Kanaékan ieu mangrupikeun salian ti waktos ngamimitian tina modeu bobo anu dipilih.
Balik ti rutinitas penanganan ngaganggu butuh opat siklus jam. Salami opat siklus jam ieu, Program Counter (dua bait) muncul deui ti Stack, Stack Pointer ditingkatan ku dua, sareng I-bit dina SREG parantos disetel.
Kenangan AVR
Bagéan ieu ngajelaskeun kenangan anu béda dina ATtiny25 / 45/85. Arsitektur AVR ngagaduhan dua ruang mémori utami, mémori Data sareng ruang mémori Program. Salaku tambahan, ATtiny25 / 45/85 ngagaduhan Memori EEPROM pikeun neundeun data. Katiluna rohangan mémori liniér sareng biasa.
In-System Mémori Program Flash Anu Diprogram ulang
ATtiny25 / 45/85 ngandung 2/4 / 8K bait Dina-chip In-System Mémori Flash Reprogrammable Dina-System pikeun umur program. Kusabab sadaya paréntah AVR lébar 16 atanapi 32 bit, Flash diayakeun salaku 1024/2048/4096 x 16.
Mémori Flash ngagaduhan daya tahan sahenteuna 10,000 siklus nulis / mupus. ATtiny25 / 45/85 Program Counter (PC) lega tina 10/11/12 bit, sahingga alamat lokasi mémori Program 1024/2048/4096. "Program Mémori- ming ”dina kaca 147 ngandung pedaran lengkep dina Flash data unduh sérial nganggo pin SPI.
Tabel konstan tiasa dialokeun dina sadaya ruang alamat mémori Program (tingali pedaran paréntah mémori Program LPM - Load Program).
Gambar 5-1. Peta Mémori Program
Memori Data SRAM
Gambar 5-2 nunjukkeun kumaha ATtiny25 / 45/85 SRAM Mémori diatur.
The handap 224/352/607 lokasi memori Data alamat duanana Register File, mémori I/O jeung SRAM data internal. 32 lokasi munggaran alamat ngadaptar File, salajengna 64 lokasi baku I / memori O, jeung panungtungan 128/256/512 lokasi alamat SRAM data internal.
Lima mode alamat anu béda pikeun nutupan mémori Data: Langsung, Teu Langsung sareng Pamindahan, Teu Langsung, Teu Langsung sareng Pra-decrement, sareng Teu Langsung sareng Post-increment. Dina ngadaptar File, registers R26 mun R31 Fitur nu teu langsung alamat pointer registers.
Alamat langsung ngahontal sadaya rohangan data.
Modeu Henteu langsung sareng Kapindahan ngahontal 63 lokasi alamat tina alamat dasar anu dibérékeun ku register Y- atanapi Z-.
Nalika ngagunakeun modus alamat henteu langsung ngadaptar kalayan pre-decrement otomatis sareng post-increment, alamat registrasi X, Y, sareng Z dikirangan atanapi ditambahan.
32 registers fungsi tujuan umum, 64 I / O Registers, sarta 128/256/512 bait SRAM data internal dina ATtiny25/45/85 sadayana tiasa diaksés ngaliwatan sagala mode alamat ieu. The ngadaptar File digambarkeun dina "Gen- eral Tujuan ngadaptar File” dina kaca 10.
Gambar 5-2. Data Mémori Peta
Aksés Mémori Data Kali
Bagian ieu ngajelaskeun konsép waktos aksés umum pikeun aksés mémori internal. Aksés SRAM data internal dilakukeun dina dua siklus clkCPU sakumaha dijelaskeun dina Gambar 5-3.
Gambar 5-3. Dina-chip Data SRAM Aksés Siklus Memori Data EEPROM
ATtiny25 / 45/85 ngandung 128/256/512 bait mémori EEPROM data. Éta diayakeun salaku rohangan data anu misah, dimana bait tunggal tiasa dibaca sareng ditulis. EEPROM ngagaduhan daya tahan sahenteuna 100,000 siklus nulis / mupus. Akses antara EEPROM sareng CPU didadarkeun di handap ieu, khususkeun ngadaptar EEPROM Address, EEPROM Data Register, sareng EEPROM Control Register. Pikeun detil tingali "Ngunduh Serial" dina kaca 151.
EEPROM Baca / Tulis Aksés
Ngadaptar EEPROM Access tiasa diaksés dina rohangan I / O.
Waktu aksés nyerat pikeun EEPROM aya dina Tabel 5-1 dina kaca 21. Fungsi timer timer, kumaha oge, ngidinan software pamaké ngadeteksi lamun bait salajengna bisa ditulis. Lamun kode pamaké ngandung parentah nu nulis EEPROM, sababaraha precautions kudu dilaksanakeun. Dina catu daya anu disaring pisan, VCC kamungkinan naek atanapi turun lalaunan
Power-up / handap. Ieu ngabalukarkeun alat pikeun sawatara waktu ngajalankeun di vol atage leuwih handap tina nu ditangtukeun salaku minimum pikeun frékuénsi jam dipaké. Tingali "Nyegah Korupsi EEPROM" dina kaca 19 pikeun detil ngeunaan cara nyingkahan masalah dina kaayaan sapertos kieu.
Pikeun nyegah nyerat EEPROM anu teu dihaja, prosedur nyerat khusus kedah dituturkeun. Ngarujuk kana "Atom Byte Programming ”dina kaca 17 jeung "Pamrograman Pamisah Bait" dina kaca 17 pikeun detil ngeunaan ieu.
Nalika EEPROM dibaca, CPU dieureunkeun pikeun opat siklus jam sateuacan pitunjuk salajengna dilaksanakeun. Nalika EEPROM ditulis, CPU dieureunkeun pikeun dua siklus jam sateuacan pitunjuk salajengna dilaksanakeun.
Programming Atomic Byte
Ngagunakeun Atomic Byte Programming mangrupikeun modeu pangbasajanna. Nalika nyerat bait ka EEPROM, pangguna kedah nyerat alamatna kana EEAR Registrasi sareng data kana EEDR Registrasi. Upami bit EEPMn enol, nyerat EEPE (dina opat siklus saatos EEMPE ditulis) bakal micu operasi mupus / nyerat. Boh siklus mupus sareng nyerat dilakukeun dina hiji operasi sareng waktos pemrograman total parantos dipasihkeun Tabel 5-1 dina kaca 21. Bit EEPE tetep disetél dugi operasi mupus sareng nyerat réngsé. Nalika alat sibuk sareng pemrograman, teu mungkin pikeun ngalakukeun operasi EEPROM anu sanés.
Pamrograman Pamisah byte
Kasebut nyaéta dimungkinkeun pikeun ngabagi siklus ngahapus sareng nyerat dina dua operasi anu béda. Ieu bisa jadi mangpaat lamun sistem merlukeun waktu aksés pondok pikeun sawatara waktu kawates (ilaharna lamun catu daya voltage ragrag). Pikeun nyandak kauntungan- tagDina metoda ieu, diperlukeun lokasi nu bakal ditulis geus erased saméméh operasi nulis. Tapi saprak operasi mupus jeung nulis dibeulah, kasebut nyaéta dimungkinkeun pikeun ngalakukeun operasi mupus lamun sistem ngamungkinkeun ngalakonan operasi waktos-kritis (ilaharna sanggeus Power-up).
mupus
Pikeun mupus bait, alamatna kedah ditulis kana TAUN. Upami bit EEPMn nyaéta 0b01, nyerat EEPE (dina opat siklus saatos EEMPE ditulis) bakal micu waé operasi mupus (waktos pamrograman dirumuskeun dina Tabel 5-1 dina kaca 21). Bit EEPE tetep disetél dugi operasi mupus réngsé. Nalika alatna sibuk program, teu mungkin pikeun ngalakukeun operasi EEPROM anu sanés.
Tulis
Pikeun nyerat lokasi, pangguna kedah nyerat alamatna kana EEAR sareng data kana EEDR. Upami bit EEPMn nyaéta 0b10, nyerat EEPE (dina opat siklus saatos EEMPE ditulis) bakal micu waé operasi nyerat (waktos program- ming dirumuskeun dina Tabel 5-1 dina kaca 21). Bit EEPE tetep disetél dugi operasi nyerat réngsé. Upami lokasi anu bakal diserat teu acan dihapus sateuacan nyerat, data anu disimpen kedah dianggap leungit. Nalika alat sibuk sareng pemrograman, teu mungkin pikeun ngalakukeun operasi EEPROM anu sanés.
Osilator dikalibrasi dipaké pikeun waktos aksés EEPROM. Pastikeun frékuénsi Osilator aya dina sarat anu ditétélakeun dina "OSCCAL - ngadaptar Kalibrasi Osilator" dina kaca 31.
Kodeu handap examples nembongkeun hiji assembly sarta hiji fungsi C pikeun mupus, nulis, atawa nulis atom tina EEPROM. MantanampNganggap yén interrupts dikadalikeun (contona, ku nganonaktipkeun interrupts sacara global) supados henteu aya interrupts anu lumangsung nalika ngalaksanakeun fungsi ieu.
Kode Majelis Example |
EEPROM_nulis:
; Ngantosan parantosan nyeratna sateuacanna sbic EECR,EEPE rjmp EEPROM_write ; Atur modeu Programming ldi r16, (0<<EEPM1)|(0<<EEPM0) kaluar EECR, r16 ; Nyetél alamat (r18: r17) dina alamat ngadaptar kaluar EEARH, r18 kaluar EEARL, r17 ; Tulis data (r19) kana data register kaluar EEDR, r19 ; Tulis anu logis kana EEMPE sbi EECR,EEMPE ; Mimitian eeprom nyerat ku netepkeun EEPE sbi EECR,EEPE rét |
Kode C Example |
batal EEPROM_write(unsigned char ucAddress, unsigned char ucData)
{ /* Antosan parantosan nyerat sateuacana */ bari(EECR & (1< ; /* Atur mode Programming */ EECR = (0 < / * Siapkeun alamat sareng data register * / EEAR = ucAddress; EEDR = ucData; /* Tulis hiji logis kana EEMPE */ EECR | = (1 < / * Mimitian eeprom nyerat ku netepkeun EEPE * / EECR | = (1 < } |
Kode salajengna examples acara assembly sarta C fungsi pikeun EEPROM dibaca. MantanampLes nganggap yén interrupts dikawasa ku kituna euweuh interrupts bakal lumangsung salila palaksanaan fungsi ieu.
Kode Majelis Example |
EEPROM_baca:
; Ngantosan parantosan nyeratna sateuacanna sbic EECR,EEPE rjmp EEPROM_read ; Nyetél alamat (r18: r17) dina alamat ngadaptar kaluar EEARH, r18 kaluar EEARL, r17 ; Mimitian eeprom dibaca ku nyerat EERE sbi EECR,EERE ; Maca data tina data register dina r16,EEDR rét |
Kode C Example |
unsigned char EEPROM_read(unsigned char ucAddress)
{ / * Antosan parantosan panulis samemehna * / sedengkeun (EECR & (1 < ; / * Siapkeun alamat register * / EEAR = ucAddress; /* Mimitian eeprom dibaca ku tulisan EERE */ EECR | = (1 < / * Balikkeun data tina data register * / balikkeun EEDR; } |
Nyegah Korupsi EEPROM
Salila période low VCC, data EEPROM bisa ruksak sabab suplai voltage teuing low pikeun CPU jeung EEPROM ka beroperasi leres. Masalah ieu sami sareng sistem tingkat dewan anu nganggo EEPROM, sareng solusi desain anu sami kedah diterapkeun.
Korupsi data EEPROM tiasa disababkeun ku dua kaayaan nalika voltage handap teuing. Kahiji, urutan nulis biasa mun EEPROM merlukeun vol minimumtage pikeun beroperasi leres. Bréh, CPU sorangan bisa ngaéksekusi parentah leres, lamun suplai voltage handap teuing.
Korupsi data EEPROM tiasa sacara gampang dihindari ku nuturkeun rekomendasi desain ieu:
Tetep AVR RESET aktip (rendah) salila période catu daya teu cukup voltage. Ieu bisa dilakukeun ku cara ngaktipkeun internal Brown-out Detector (BOD). Upami tingkat deteksi BOD internal henteu cocog sareng
tingkat deteksi diperlukeun, hiji sirkuit panyalindungan ulang VCC low éksternal bisa dipaké. Lamun reset lumangsung bari operasi nulis keur lumangsung, operasi nulis bakal réngsé disadiakeun yén catu daya voltage geus cukup.
Abdi / O Mémori
Definisi rohangan I / O tina ATtiny25 / 45/85 dipidangkeun dina "Ringkesan Daptar" dina kaca 200.
Sadaya ATtiny25 / 45/85 I / Os sareng périferal disimpen dina rohangan I / O. Sadaya lokasi I / O tiasa diaksés ku pitunjuk LD / LDS / LDD sareng ST / STS / STD, mindahkeun data antara 32 panggunaan tujuan umum sareng rohangan I / O. I / O ngadaptar dina kisaran alamat 0x00 - 0x1F langsung diaksés langsung nganggo paréntah SBI sareng CBI. Dina register ieu, nilai bit tunggal tiasa diparios ku ngagunakeun paréntah SBIS sareng SBIC. Tingali kana bagian set instruksi pikeun langkung seueur detil. Nalika nganggo I / O paréntah khusus IN sareng OUT, alamat I / O 0x00 - 0x3F kedah dianggo. Nalika alamat I / O ngadaptar salaku rohangan data nganggo pitunjuk LD sareng ST, 0x20 kedah ditambihkeun ka alamat ieu.
Kanggo kasaluyuan sareng alat anu bakal datang, bit anu ditangtoskeun kedah ditulis kana nol upami diakses. Alamat mémori I / O anu ditangtoskeun kedah pernah ditulis.
Sababaraha Panji Status diberesihan ku nyerat anu logis ka aranjeunna. Catet yén paréntah CBI sareng SBI ngan ukur bakal beroperasi dina bit anu ditetepkeun, sareng ku sabab éta tiasa dianggo dina daptar anu ngandung Bendéra Status sapertos kitu. Parentah CBI sareng SBI tiasa dianggo ngan ukur ngadaptarkeun 0x00 dugi ka 0x1F.
I / O sareng Pendaptaran Kontrol Periferal dipedar dina bagian engké.
Ngadaptar Pedaran
TAUN - Daptar Alamat EEPROM
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1f | – | – | – | – | – | – | – | TAHUN8 | TAUN |
Maca/Tulis | R | R | R | R | R | R | R | Urang Sunda/W | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
Bit 7: 1 - Res: Bit Cadangan
Bit-bit ieu ditangtoskeun pikeun dianggo kahareup sareng bakal teras dibaca salaku nol.
Bit 0 - TAHUN8: Alamat EEPROM
Ieu mangrupikeun alamat alamat EEPROM paling penting tina ATtiny85. Dina alat anu kirang EEPROM, nyaéta ATtiny25 / ATtiny45, bit ieu ditangtayungan sareng bakal teras maca nol. Nilai awal EEPROM Address Regis- ter (EEAR) teu ditangtoskeun sareng nilai anu saéna kedah ditulis sateuacan EEPROM diaksés.
EEARL - EEPROM Alamat Ngadaptar
Bit
0x1E | TAHUN7 | TAHUN6 | TAHUN5 | TAHUN4 | TAHUN3 | TAHUN2 | TAHUN1 | TAHUN0 | TAUN |
Rear / Writing | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | X | X | X | X | X | X | X | X |
Bit 7 - TAHUN7: Alamat EEPROM
Ieu mangrupikeun alamat EEPROM paling penting bit ATtiny45. Dina alat anu kirang EEPROM, nyaéta ATtiny25, bit ieu ditangtayungan sareng bakal teras maca nol. Nilai awal Daptar Alamat EEPROM (EEAR) teu ditangtoskeun sareng nilai anu saéna kedah ditulis sateuacan EEPROM diakses.
Bit 6: 0 - TAUN [6: 0]: Alamat EEPROM
Ieu mangrupikeun (low) bit tina EEPROM Address Register. Bait data EEPROM ditujukeun sacara linier dina kisaran 0… (128/256 / 512-1). Nilai awal TAHUN teu ditangtoskeun sareng nilai anu pas kedah diserat sateuacan EEPROM tiasa diaksés.
EEDR - EEPROM Data ngadaptar
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | EEDR7 | EEDR6 | EEDR5 | EEDR4 | EEDR3 | EEDR2 | EEDR1 | EEDR0 | EEDR |
Maca/Tulis | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Pikeun operasi nyerat EEPROM, EEDR Registrasi ngandung data anu bakal ditulis ka EEPROM dina alamat anu dibérékeun ku ngadaptar EEAR. Pikeun operasi maca EEPROM, EEDR ngandung data anu dibaca tina
EEPROM di alamat anu dipasihkeun ku TAUN.
5.5.4 EECR - EEPROM Kontrol ngadaptar |
|||||||||
Bit 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0 x 1C – | – | EEPM1 | EEPM0 | EERIE | EEMPE | EEPE | DIDIEU | EECR | |
Maca / Nulis aksara Sunda Sunda / W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | ||||
Nilai Awal 0 0 X | X | 0 | 0 | X | 0 |
Bit 7 - Res: Ditangtoskeun Bit
Bit ieu dikhususkeun pikeun dianggo kahareup sareng bakal teras dibaca salaku 0 dina ATtiny25 / 45/85. Kanggo kasaluyuan sareng alat AVR kahareup, sok tulis sakedik-sakedik ieu dugi ka nol. Saatos maca, masker kaluar saeutik ieu.
Bit 6 - Res: Ditangtoskeun Bit
Bit ieu ditangtoskeun dina ATtiny25 / 45/85 sareng bakal teras dibaca salaku nol.
Bit 5: 4 - EEPM [1: 0]: EEPROM Mode Mode Bit
Setélan modél EEPROM bit setting netepkeun tindakan pamrograman mana anu bakal dipicu nalika nyerat EEPE. Tiasa pikeun program data dina hiji operasi atom (mupus nilai lami sareng program nilai anyar) atanapi ngabagi operasi Hapus sareng Tulis dina dua operasi anu béda. Waktu Programming pikeun modeu anu béda ditingalikeun dina Méja 5-1. Nalika EEPE diatur, nyerat naon ka EEPMn moal dipaliré. Salila ngareset, bit EEPMn bakal disetel deui ka 0b00 kacuali EEPROM sibuk program.
tabél 5-1. EEPROM Mode Bits
EEPM1 | EEPM0 | Waktos Programming | Operasi |
0 | 0 | 3.4 ms | Hapus sareng Tulis dina hiji operasi (Operasi Atom) |
0 | 1 | 1.8 ms | Hapus Hungkul |
1 | 0 | 1.8 ms | Nulis Hungkul |
1 | 1 | – | Ditangtayungan pikeun pamakéan hareup |
Bit 3 - EERIE: EEPROM Siap Ngaganggu Aktipkeun
Nulis EERIE ka hiji ngamungkinkeun EEPROM Ready Interrupt upami I-bit dina SREG parantos disetel. Nulis EERIE ka nol teu tiasa nga- ganggu. Gangguan Siap EEPROM ngahasilkeun gangguan anu konstan nalika mémori Non-volatil siap diprogram.
Bit 2 - EEMPE: Program Master EEPROM Aktipkeun
Bit EEMPE nangtoskeun naha nyerat EEPE ka hiji bakal pangaruh atanapi henteu.
Nalika EEMPE disetél, netepkeun EEPE dina opat siklus jam bakal program EEPROM dina alamat anu dipilih. Upami EEMPE nol, netepkeun EEPE moal aya pangaruhna. Nalika EEMPE parantos nyerat kana hiji ku parangkat lunak, pakakasna mupus saeutik dugi ka enol saatos opat siklus jam.
Bit 1 - EEPE: Program EEPROM Aktipkeun
Program EEPROM Aktipkeun Signal EEPE mangrupikeun sinyal anu ngamungkinkeun pemrograman ka EEPROM. Nalika EEPE ditulis, EEPROM bakal diprogram numutkeun setélan EEPMn bit. Bit EEMPE kedah ditulis ka hiji sateuacan anu logis dituliskeun ka EEPE, upami henteu henteu aya tulisan EEPROM. Nalika waktos aksés nyerat parantos kalangkungan, bit EEPE bakal diberesihan ku pakakas hardware. Nalika EEPE parantos disetél, CPU dieureunkeun pikeun dua siklus sateuacan instruksi salajengna dilaksanakeun.
Bit 0 - EERE: EEPROM Read Enable
EEPROM Read Enable Signal - EERE - mangrupikeun strobo anu dibaca pikeun EEPROM. Nalika alamat anu leres parantos disiapkeun dina Daptar EEAR, bit EERE kedah ditulis pikeun hiji kanggo memicu maca EEPROM. Aksés EEPROM maca butuh hiji instruksi, sareng data anu dipénta sayogi langsung aya. Nalika EEPROM dibaca, CPU dieureunkeun salami opat siklus sateuacan pitunjuk salajengna dilaksanakeun. Pamaké kedah nyebatkeun bit EEPE sateuacan ngamimitian operasi baca. Upami operasi nyerat aya dina prosés, moal mungkin maca EEPROM, atanapi ngarobih ngadaptar EEAR.
Jam Sistem sareng Pilihan Jam
Sistem Jam sareng Distribusi na
Jam CPU
Jam CPU dialihkeun ka bagéan sistem anu aya hubunganana sareng operasi inti AVR. MisalampModél sapertos kitu nyaéta Daptar Tujuan Umum File, Status ngadaptar jeung mémori Data nyekel Pointer tumpukan. Halting jam CPU nyegah inti tina ngajalankeun operasi umum jeung itungan.
Abdi / O Jam - clkI / O
Jam I / O dianggo ku seuseueurna modul I / O, sapertos Timer / Counter. Jam I / O ogé dianggo ku modul Interrupt External, tapi perhatoskeun yén sababaraha gangguan éksternal dideteksi ku logika asinkron, ngamungkinkeun gangguan sapertos kitu dideteksi sanaos jam I / O dieureunkeun.
Jam Jam - clkFLASH
Jam Flash ngontrol operasi antarbeungeut Flash. Jam Flash biasana aktip sakaligus sareng jam CPU.
Jam ADC - clkADC
ADC disayogikeun ku domain jam anu khusus. Hal ieu ngamungkinkeun ngeureunkeun jam CPU sareng I / O pikeun ngirangan noise anu dihasilkeun ku sirkuit digital. Ieu masihan hasil konversi ADC langkung akurat.
PLL internal pikeun Generasi Jam Periferal Gancang - clkPCK
PLL internal dina ATtiny25 / 45/85 ngahasilkeun frekuensi jam anu 8x dikali tina input sumber. Sacara standar, PLL ngagunakeun kaluaran internal, 8.0 MHz RC osilator salaku sumber. Alternatipna, upami bit LSM tina PLLCSR diatur PLL bakal nganggo kaluaran osilator RC dibagi dua. Maka kaluaran PLL, jam periferal gancang nyaéta 64 MHz. Jam periferal gancang, atanapi jam anu dikaluarkeun tina éta, tiasa dipilih salaku sumber jam kanggo Timer / Counter1 atanapi salaku jam sistem. Tingali Gambar 6-2. Frékuénsi jam periferal gancang dibagi dua nalika LSM of PLLCSR disetel, hasilna frékuénsi jam 32 MHz. Catet, yén LSM teu tiasa diatur upami PLLCLK dianggo salaku jam sistem.
Gambar 6-2. PCK Clocking System.
PLL dikonci dina osilator RC sareng nyaluyukeun osilator RC ngalangkungan OSCCAL bakal nyetél jam periferal anu gancang dina waktos anu sami. Nanging, sanajan osilator RC dicandak kana frékuénsi anu langkung luhur tibatan 8 MHz, frékuénsi jam periferal gancang jenuh dina 85 MHz (kasus anu paling parah) sareng tetep ayun dina frekuensi maksimum. Perlu dicatet yén PLL dina hal ieu henteu dikonci deui ku jam osilator RC. Kusabab kitu, disarankeun henteu nyandak pangaluyuan OSCCAL kana frékuénsi langkung luhur tibatan 8 MHz supados PLL tetep dina rentang operasi anu leres.
PLL internal diaktipkeun nalika:
Bit PLLE dina register PLLCSR parantos disetél.
Sekering CKSEL diprogram janten '0001'.
Sekering CKSEL diprogram janten '0011'.
PLOCK bit PLLCSR disetel nalika PLL dikonci. Duanana osilator RC internal sareng PLL dipareuman dina modeu sare turun sareng stand-by.
PLL internal dina ATtiny15 Mode Kasaluyuan
Kusabab ATtiny25 / 45/85 mangrupikeun alat hijrah pikeun pangguna ATtiny15 aya modeu kasaluyuan ATtiny15 pikeun kasaluyuan tukang. Modeu kasaluyuan ATtiny15 dipilih ku program CKSEL sekering janten '0011'.
Dina modeu kasaluyuan ATtiny15 frékuénsi osilator RC internal dikalibrasi dugi ka 6.4 MHz sareng faktor perkalian PLL disetél ka 4x. Tingali Gambar 6-3. Kalayan pangaturan ieu sistem jarum jam ATtiny15-cocog sareng jam periferal gancang anu hasilna gaduh frekuensi 25.6 MHz (sami sareng ATtiny15).
Gambar 6-3. Sistem Jam PCK dina Modeu kasaluyuan ATtiny15.
Sumber Jam
Alat ieu ngagaduhan pilihan sumber jam ieu, tiasa dipilih ku Flash Fuse bit sapertos anu dipidangkeun di handap ieu. Jam tina sumber anu dipilih nyaéta input kana generator jam AVR, sareng dialihkeun kana modul anu saluyu.
tabél 6-1. Pilihan Jaman Alat Pilih
Pilihan Clocking Device | CKSEL[3:0](1) |
Jam éksternal (tingali kaca 26) | 0000 |
Jam PLL Frékuénsi luhur (tingali kaca 26) | 0001 |
Calibrated internal Osilator (tingali kaca 27) | 0010(2) |
Calibrated internal Osilator (tingali kaca 27) | 0011(3) |
Internal osilator 128 kHz (tingali kaca 28) | 0100 |
Osilator Kristal Frékuénsi Rendah (tingali kaca 29) | 0110 |
Kristal osilator / résonator keramik (tingali kaca 29) | 1000 – 1111 |
Ditangtayungan | 0101, 0111 |
Pikeun sadaya sekering "1" hartosna henteu diprogram bari "0" hartosna diprogram.
Alatna dikirim ku pilihan ieu dipilih.
Ieu bakal milih Mode Kasaluyuan ATtiny15, dimana jam sistem dibagi ku opat, hasilna frekuensi jam 1.6 MHz. Kanggo inormasi langkung seueur, tingali "Osilator Internal Kalibrasi" dina kaca 27.
Rupa-rupa pilihan pikeun tiap pilihan jam dirumuskeun dina bagian ieu. Nalika CPU gugah tina Power-down, sumber jam anu dipilih dianggo pikeun waktos ngamimitian, mastikeun operasi Osilator stabil sateuacan palaksanaan instruksi dimimitian. Nalika CPU dimimitian ti reset, aya tunda tambahan anu ngamungkinkeun kakuatan pikeun ngahontal tingkat anu stabil sateuacan ngamimitian operasi normal. Watchdog Oscillator digunakeun pikeun waktos ieu bagian waktos langsung tina waktos ngamimitian. Jumlah siklus WDT Oscillator anu dianggo pikeun tiap waktos kaluar dipidangkeun dina Méja 6-2.
Tabél 6-2. Jumlah Siklus osilator Watchdog
Tip Waktos-kaluar | Jumlah Siklus |
4 ms | 512 |
64 ms | 8K (8,192) |
Jam éksternal
Pikeun nyetir alat tina sumber jam éksternal, CLKI kedah disetir sapertos anu ditingalikeun dina Gambar 6-4. Pikeun ngajalankeun alat dina jam éksternal, sekering CKSEL kedah diprogram janten "00".
Gambar 6-4. Éksternal Jam Drive Konfigurasi
Nalika sumber jam ieu dipilih, waktos ngamimitian ditangtoskeun ku SUT Fuse sapertos anu dipidangkeun dina Méja 6-3.
Tabél 6-3. Waktu ngamimitian pikeun Pamilihan Jam éksternal
SUT[1:0] | Waktos Ngamimitian ti Power-down | Reureuh Tambahan tina Reset | Dianjurkeun Dianggo |
00 | 6 CK | 14CK | BOD diaktipkeun |
01 | 6 CK | 14CK + 4 mdet | Kakuatan gancang naék |
10 | 6 CK | 14CK + 64 mdet | Lalaunan naek kakuatan |
11 | Ditangtayungan |
Nalika nerapkeun jam éksternal, diperyogikeun ulah aya parobahan anu ngadadak dina frékuénsi jam anu diterapkeun pikeun mastikeun operasi MCU anu stabil. Variasi dina frékuénsi langkung ti 2% tina hiji siklus jam ka anu salajengna tiasa nyababkeun kalakuan anu teu bisa diprediksi. Diperyogikeun pikeun mastikeun yén MCU disimpen dina Reset salami parobihan sapertos frékuénsi jam.
Catet yén System Clock Presale tiasa dianggo pikeun nerapkeun parobihan waktos-waktos frekuensi jam internal bari tetep mastikeun operasi anu mantep. Ngarujuk kana "System Clock Prescaler" dina kaca 31 pikeun detil.
Jam PLL Frékuénsi luhur
Aya PLL internal anu nyayogikeun nominal angka jam MHz 64 anu dikonci kana RC Oscillator pikeun panggunaan Peripheral Timer / Counter1 sareng pikeun sumber jam sistem. Nalika dipilih salaku sumber jam sistem, ku program- CKSEL ngahiji janten '0001', éta dibagi ku opat sapertos anu ditingalikeun dina Méja 6-4.
tabél 6-4. Modeu Operasi Jam PLL Frékuénsi Tinggi
CKSEL[3:0] | Frékuénsi Nominal |
0001 | 16 MHz |
Nalika sumber jam ieu dipilih, waktos ngamimitian ditangtoskeun ku sekering SUT sapertos anu dipidangkeun dina Méja 6-5.
tabél 6-5. Waktu ngamimitian pikeun Jam PLL Frékuénsi Luhur
SUT[1:0] | Waktos Mimitian ti Power Down | Tunda tambahan tina Reset Power-On (VCC = 5.0V) | Dianjurkeun pamakéan |
00 | 14CK + 1K (1024) CK + 4 mdet | 4 ms | BOD diaktipkeun |
tabél 6-5. Waktu ngamimitian pikeun Jam PLL Frékuénsi Luhur
SUT[1:0] | Waktos Mimitian ti Power Down | Tunda tambahan tina Reset Power-On (VCC = 5.0V) | Dianjurkeun pamakéan |
01 | 14CK + 16K (16384) CK + 4 mdet | 4 ms | Kakuatan gancang naék |
10 | 14CK + 1K (1024) CK + 64 mdet | 4 ms | Lalaunan naek kakuatan |
11 | 14CK + 16K (16384) CK + 64 mdet | 4 ms | Lalaunan naek kakuatan |
Calibrated internal Osilator
Sacara standar, internal RC osilator nyadiakeun perkiraan 8.0 jam MHz. Padahal voltage sarta gumantung hawa, jam ieu bisa pisan akurat calibrated ku pamaké. Tingali "Kalibrasi Internal RC Osilator Accu racy ”dina kaca 164 jeung "Kecepatan Osilator Internal" dina kaca 192 kanggo langkung jelasna. Alatna dikirim ku CKDIV8 Fuse anu diprogram. Tingali "System Clock Prescaler" dina kaca 31 pikeun leuwih rinci.
Jam ieu tiasa dipilih salaku jam sistem ku program anu CKSEL Fuse sapertos anu dipidangkeun dina Tabel 6-6 dina kaca
27. Upami kapilih, éta bakal beroperasi tanpa komponén éksternal. Salami ngareset, perangkat keras beban nilai kalibrasi anu tos diprogram kana OSCCAL Registrasi teras otomatis calibrates RC Oscillator. Akurasi kalibrasi ieu ditampilkeun salaku Pabrik kalibrasi di Tabel 21-2 dina kaca 164.
Ku ngarobah OSCCAL register ti SW, tingali "OSCCAL - ngadaptar Kalibrasi Osilator" dina kaca 31, dimungkinkeun pikeun kéngingkeun akurasi kalibrasi langkung luhur tibatan ku ngagunakeun kalibrasi pabrik. Akurasi kalibrasi ieu dipidangkeun salaku Kalibrasi pangguna dina Tabel 21-2 dina kaca 164.
Nalika Osilator ieu dianggo salaku jam chip, osilator Watchdog tetep bakal dianggo pikeun Watchdog Timer sareng kanggo Reset Time-out. Kanggo inpormasi lengkep ngeunaan nilai kalibrasi anu tos diprogram, tingali bagian na "Cali- bration Bytes ”dina kaca 150.
Osilator internal ogé tiasa disetél pikeun nyayogikeun jam 6.4 MHz ku nyerat sekering CKSEL ka "0011", sapertos anu ditingalikeun dina Méja 6-6 di handap. Setelan ieu ditetepkeun salaku ATtiny15 Compatibility Mode sareng dimaksudkeun pikeun nyayogikeun sumber jam anu dikalibrasi dina 6.4 MHz, sapertos dina ATtiny15. Dina ATtiny15 Compatibility Mode PLL nganggo osilator internal dijalankeun dina 6.4 MHz kanggo ngahasilkeun sinyal jam periferal 25.6 MHz kanggo Timer / Counter1 (tingali "8-bit Timer / Counter1 di Mode ATtiny15 "dina kaca 95). Catet yén dina modeu operasi ieu sinyal jam 6.4 MHz sok dibagi ku opat, nyayogikeun jam sistem 1.6 MHz.
tabél 6-6. Internal Calibrated RC osilator Modeu Operasi
CKSEL[3:0] | Frékuénsi Nominal |
0010(1) | 8.0 MHz |
0011(2) | 6.4 MHz |
Alatna dikirim ku pilihan ieu dipilih.
Setelan ieu bakal milih Mode Kasaluyuan ATtiny15, dimana jam sistem dibagi ku opat, hasilna frekuensi jam 1.6 MHz.
Nalika osilator internal 8 MHz anu dikalibrasi dipilih salaku sumber jam, waktos ngamimitian ditangtoskeun ku SUT Fuse sapertos anu dipidangkeun dina Méja 6-7 handap.
tabél 6-7. Mimitian-up Times pikeun internal Calibrated RC osilator Jam
SUT[1:0] | Waktos Ngamimitian ti Power-down | Tunda tambahan tina Reset (VCC = 5.0V) | Dianjurkeun Dianggo |
00 | 6 CK | 14CK(1) | BOD diaktipkeun |
01 | 6 CK | 14CK + 4 mdet | Kakuatan gancang naék |
10(2) | 6 CK | 14CK + 64 mdet | Lalaunan naek kakuatan |
11 | Ditangtayungan |
1. Upami sekering RSTDISBL diprogram, waktos ngamimitian ieu bakal ningkat janten 14CK + 4 mdet pikeun mastikeun modeu pamrograman tiasa dilebetkeun.
2. Alat anu dikirim ku pilihan ieu dipilih.
Dina ATtiny15 Mode Kompatibilitas mode ngamimitian-waktos ditangtukeun ku sekering SUT sapertos anu dipidangkeun dina Méja 6-8 handap.
tabél 6-8. Waktu ngamimitian pikeun Jam Osilator RC Dikalibrasi Internal (dina Modeu ATtiny15)
SUT[1:0] | Waktos Ngamimitian ti Power-down | Tunda tambahan tina Reset (VCC = 5.0V) | Dianjurkeun Dianggo |
00 | 6 CK | 14CK + 64 mdet | |
01 | 6 CK | 14CK + 64 mdet | |
10 | 6 CK | 14CK + 4 mdet | |
11 | 1 CK | 14CK(1) |
Catetan: Upami sekering RSTDISBL diprogram, waktos ngamimitian ieu bakal ningkat kana 14CK + 4 mdet pikeun mastikeun mode program tiasa diasupkeun.
Dina kasimpulan, langkung seueur inpormasi ngeunaan ATtiny15 Compatibility Mode tiasa dipendakan dina bagian-bagian "Port B (PB5: PB0)" dina kaca 2, "Internal PLL dina Mode Kasaluyuan ATtiny15" dina kaca 24, "8-bit Timer / Counter1 dina Mode ATtiny15" dina kaca 95, "Watesan debugWIRE" dina kaca 140, "Bait Kalibrasi" dina kaca 150 sareng dina méja "Jam Prescaler Pilih ”dina kaca 33.
Internal osilator 128 kHz
Osilator internal 128 kHz mangrupikeun osilator kakuatan rendah anu nyayogikeun jam 128 kHz. Frékuénsina nominal dina 3V sareng 25°C. Jam ieu tiasa dipilih salaku jam sistem ku program CKSEL Fuses ka "0100".
Nalika sumber jam ieu dipilih, waktos ngamimitian ditangtoskeun ku SUT Fuse sapertos anu dipidangkeun dina Méja 6-9.
tabél 6-9. Waktu ngamimitian pikeun osilator internal 128 kHz
SUT[1:0] | Waktos Ngamimitian ti Power-down | Reureuh Tambahan tina Reset | Dianjurkeun Dianggo |
00 | 6 CK | 14CK(1) | BOD diaktipkeun |
01 | 6 CK | 14CK + 4 mdet | Kakuatan gancang naék |
10 | 6 CK | 14CK + 64 mdet | Lalaunan naek kakuatan |
11 | Ditangtayungan |
Catetan: Upami sekering RSTDISBL diprogram, waktos ngamimitian ieu bakal ningkat kana 14CK + 4 mdet pikeun mastikeun mode program tiasa diasupkeun.
Osilator Kristal Frékuénsi Rendah
Pikeun nganggo kristal nonton 32.768 kHz salaku sumber jam pikeun alatna, Osilator Kristal frékuénsi low kedah dipilih ku netepkeun sekering CKSEL janten '0110'. Kristal kedah disambungkeun sapertos anu ditingalikeun dina Gambar 6-5. Pikeun milarian kapasitansi beban anu cocog pikeun crysal 32.768 kHz, mangga konsultasi ka lembar data pabrikan.
Nalika osilator ieu dipilih, kali ngamimitian ditangtoskeun ku sekering SUT sapertos anu dipidangkeun dina Méja 6-10.
tabél 6-10. Waktos ngamimitian pikeun Pamilihan Jam Osilator Kristal Frékuénsi Rendah
SUT[1:0] | Waktos Mimitian ti Power Down | Tunda tambahan tina Reset (VCC = 5.0V) | Dianjurkeun pamakéan |
00 | 1K (1024) CK(1) | 4 ms | Kakuatan gancang naék atanapi BOD diaktipkeun |
01 | 1K (1024) CK(1) | 64 ms | Lalaunan naek kakuatan |
10 | 32K (32768) CK | 64 ms | Frékuénsi stabil nalika ngamimitian |
11 | Ditangtayungan |
Catetan: Pilihan ieu ngan ukur dianggo upami stabilitas frekuensi nalika ngamimitian henteu penting.
Osilator Kristal frékuénsi low nyayogikeun kapasitas internal, tingali Méja 6-11 dina unggal pin TOSC.
tabél 6-11. Kapasitansi osilator Kristal Frékuénsi Low
Paranti | 32 kHz Osc. Jenis | Cap (Xtal1 / Tosc1) | Cap (Xtal2 / Tosc2) |
ATtiny25 / 45/85 | Sistem Osc. | 16 pf | 6 pf |
Kristal osilator / résonator keramik
XTAL1 sareng XTAL2 masing-masing mangrupikeun input sareng kaluaran tina inverting amplifier nu bisa ngonpigurasi keur dipake salaku On-chip osilator, ditémbongkeun saperti dina Gambar 6-5. Boh kristal quartz atanapi résonator keramik tiasa dianggo.
C1 jeung C2 kedah salawasna sarua pikeun duanana kristal sarta resonators. Nilai optimal tina kapasitor gumantung kana kristal atawa resonator dipaké, jumlah kapasitansi stray, sarta noise éléktromagnétik lingkungan. Sababaraha tungtunan awal pikeun milih kapasitor pikeun pamakéan ku kristal dirumuskeun dina Méja 6-12 di handap. Pikeun résonator keramik, nilai kapasitor anu dipasihkeun ku pabrikna kedah dianggo.
tabél 6-12. Modeu Operasi osilator Kristal
CKSEL[3:1] | Jangkauan Frékuénsi (MHz) | Rentang anu Disarankeun pikeun Kapasitor C1 sareng C2 pikeun Paké sareng Kristal (pF) |
100(1) | 0.4 – 0.9 | – |
101 | 0.9 – 3.0 | 12 – 22 |
110 | 3.0 – 8.0 | 12 – 22 |
111 | 8.0 – | 12 – 22 |
Catetan: Pilihan ieu henteu kedah dianggo sareng kristal, ngan ukur nganggo resonator keramik.
Osilator tiasa dianggo dina tilu modeu anu béda-béda, masing-masing dioptimalkeun pikeun kisaran frekuensi anu khusus. Modeu operasi dipilih ku sekering CKSEL [3: 1] sapertos anu dipidangkeun dina Méja 6-12.
Sekering CKSEL0 sasarengan sareng SUT [1: 0] Sekering milih waktos ngamimitian sapertos anu dipidangkeun dina Méja 6-13.
tabél 6-13. Waktos Mimitian pikeun Pamilihan Jam Osilator Kristal
CKSEL0 | SUT[1:0] | Waktos Ngamimitian ti Power-down | Reureuh Tambahan tina Reset | Dianjurkeun Dianggo |
0 | 00 | 258 CK(1) | 14CK + 4 mdet | Résonator keramik, kakuatan naékna gancang |
0 | 01 | 258 CK(1) | 14CK + 64 mdet | Résonator keramik, lalaunan naek kakuatan |
0 | 10 | 1K (1024) CK(2) | 14CK | Résonator keramik, BOD diaktipkeun |
0 | 11 | 1K (1024) CK(2) | 14CK + 4 mdet | Résonator keramik, kakuatan naékna gancang |
1 | 00 | 1K (1024) CK(2) | 14CK + 64 mdet | Résonator keramik, lalaunan naek kakuatan |
1 | 01 | 16K (16384) CK | 14CK | Kristal Osilator, BOD diaktipkeun |
1 | 10 | 16K (16384) CK | 14CK + 4 mdet | Kristal Osilator, kakuatan naékna gancang |
1 | 11 | 16K (16384) CK | 14CK + 64 mdet | Kristal Osilator, lalaunan naék tanaga |
Catetan
Pilihan ieu kedahna waé dianggo nalika henteu operasi caket kana frékuénsi maksimum alat, sareng ngan upami stabilitas frékuénsi dina ngamimitian henteu penting pikeun aplikasi. Pilihan ieu henteu cocog pikeun kristal.
Pilihan ieu dimaksudkeun pikeun digunakeun ku résonator keramik sareng bakal mastikeun stabilitas frékuénsi dina ngamimitian. Éta ogé tiasa dianggo nganggo kristal nalika henteu ngoperasikeun caket kana frékuénsi maksimum alat, sareng upami stabilitas frékuénsi dina ngamimitian henteu penting pikeun aplikasi.
Sumber Jam Default
Alat ieu dikirimkeun ku CKSEL = "0010", SUT = "10", sareng CKDIV8 diprogram. Setélan sumber jam standar nyaéta Internal RC Oscillator anu dijalankeun dina 8 MHz kalayan waktos ngamimitian pangpanjangna sareng prescaling jam sistem awal 8, hasilna jam sistem 1.0 MHz. Setelan standar ieu mastikeun yén sadaya pangguna tiasa ngadamel setélan sumber jam anu dipikahoyong nganggo In-System atanapi High-vol.tage Programmer.
Sistem Jam Prescaler
Jam sistem ATtiny25 / 45/85 tiasa dibagi ku netepkeun "CLKPR - Clock Prescale Register" dina kaca 32. Fitur ieu tiasa dianggo pikeun ngirangan konsumsi kakuatan nalika sarat pikeun ngolah kakuatan rendah. Ieu bisa dipaké kalawan sagala pilihan sumber jam, sarta eta bakal mangaruhan frékuénsi jam tina CPU jeung sagala périferal sinkron. clkI/O, clkADC, clkCPU, jeung clkFLASH dibagi ku faktor saperti ditémbongkeun dina Tabel 6-15 dina kaca 33.
Ngalihkeun Waktos
Nalika ngaganti antara setélan prescaler, System Clock Prescaler mastikeun yén teu aya gangguan dina sistem jam sareng teu aya frékuénsi panengah anu langkung luhur tibatan frékuénsi jam anu saluyu sareng setélan sateuacanna, atanapi frékuénsi jam anu saluyu sareng setélan énggal.
Konter riak anu nerapkeun prescaler ngalir dina frékuénsi jam anu teu dibagi, anu tiasa langkung gancang tibatan frékuénsi jam CPU. Maka, teu mungkin pikeun nangtoskeun kaayaan prescaler - sanaos éta tiasa dibaca, sareng waktos anu pas pikeun ngalih ti hiji divisi jam ka anu sanés henteu tiasa leres-leres diprediksi.
Ti saprak nilai CLKPS ditulis, dibutuhkeun antara T1 + T2 sareng T1 + 2 * T2 sateuacan frekuénsi jam énggal aktip. Dina interval ieu, 2 ujung jam aktif dihasilkeun. Di dieu, T1 mangrupikeun waktos jam sateuacanna, sareng T2 mangrupikeun waktos anu saluyu sareng setting prescaler énggal.
Buffer Kaluaran Jam
Alatna tiasa ngaluarkeun jam sistem dina pin CLKO (nalika henteu dianggo salaku XTAL2 pin). Pikeun ngaktipkeun kaluaranana, CKOUT Fuse kudu diprogram. Modeu ieu cocog nalika jam chip dianggo pikeun ngajalankeun sirkuit sanés dina sistem. Catet yén jam moal kaluaran nalika ngareset sareng operasi normal pin I / O bakal ditindes nalika sekering diprogram. Internal RC Oscillator, WDT Oscillator, PLL, sareng jam éksternal (CLKI) tiasa dipilih nalika jamna kaluaran dina CLKO. Osilator kristal (XTAL1, XTAL2) henteu tiasa dianggo pikeun kaluaran jam dina CLKO. Upami System Clock Prescaler digunakeun, nyaéta jam sistem anu dibagi nyaéta kaluaran.
Ngadaptar Pedaran
OSCCAL - Osilator Kalibrasi ngadaptar
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | OSCCAL |
Maca/Tulis | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W |
Bit 7: 0 - CAL [7: 0]: Nilai Kalibrasi Osilator
The Oscillator Calibration Register digunakeun pikeun motong Calibrated Internal RC Oscillator pikeun ngaleungitkeun prosés varia tina frékuénsi osilator. Nilai kalibrasi anu tos diprogram sacara otomatis ditulis dina register ieu salami chip reset, masihan frékuénsi dikalibrasi Factory sakumaha anu parantos ditangtukeun dina Tabel 21-2 dina kaca 164. Parangkat lunak aplikasi tiasa nyerat daptar ieu pikeun ngarobih frékuénsi osilator. Osilator tiasa dikalibrasi kana frekuensi sapertos anu parantos ditangtoskeun Tabel 21-2 dina kaca 164. Kalibrasi luar jajaran éta henteu dijamin.
Catet yén osilator ieu dipaké pikeun waktos aksés EEPROM sareng Flash nyerat, sareng waktos nyerat ieu bakal kapangaruhan sasuai. Upami EEPROM atanapi Flash ditulis, tong kalibrasi langkung ti 8.8 MHz. Upami teu kitu, tulisan EEPROM atanapi Flash tiasa gagal.
Bit CAL7 tangtoskeun kisaran operasi kanggo osilator. Nyetél sakedik ieu kana 0 masihan kisaran frékuénsi panghandapna, netepkeun sakedik ieu kana 1 masihan rentang frékuénsi luhur. Dua rentang frékuénsi tumpang tindih, dina basa sanésna setting OSCCAL = 0x7F masihan frékuénsi langkung luhur tibatan OSCCAL = 0x80.
Bit CAL [6: 0] dipaké pikeun nyetél frékuénsi dina kisaran anu dipilih. Setélan 0x00 masihan frekuénsi panghandapna dina kisaran éta, sareng setting 0x7F masihan frékuénsi luhur dina kisaran.
Pikeun mastikeun operasi MCU anu stabil, nilai kalibrasi kedah dirobih sakedik. Variasi dina frékuénsi langkung ti 2% tina hiji siklus ka siklus salajengna tiasa nyababkeun perilaku henteu lami. Parobihan dina OSCCAL kedah henteu langkung ti 0x20 pikeun unggal kalibrasi. Diperyogikeun pikeun mastikeun yén MCU disimpen dina Reset salami parobihan sapertos frékuénsi jam
tabél 6-14. Internal RC osilator rentang Frékuénsi
Nilai OSCCAL | Frékuénsi Terendah Normal sareng Hormat Frékuénsi Nominal | Frékuénsi Luhur Luhur sareng Hormat Frékuénsi Nominal |
0x00 | 50% | 100% |
0x3f | 75% | 150% |
0x7f | 100% | 200% |
CLKPR - Jam Prescale ngadaptar
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x26 | CLKPCE | – | – | – | CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | CLKPR |
Maca/Tulis | Urang Sunda/W | R | R | R | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W |
Nilai Awal 0 0 0 0 Tingali Pedaran Bit
Bit 7 - CLKPCE: Robah Prescaler Jam Aktipkeun
Bit CLKPCE kedah nyerat kana logika hiji supados tiasa dirobih tina bit CLKPS. Bit CLKPCE ngan ukur diénggalan nalika bit-bit anu sanés dina CLKPR sacara simultanios ditulis dugi ka nol. CLKPCE diberesihan ku perangkat keras opat siklus saatos ditulis atanapi nalika bit CLKPS ditulis. Nulis deui bit CLKPCE dina jangka waktu kaluar-waktos ieu henteu manjangan jangka waktu kaluar-kaluar, atanapi mupus CLKPCE bit.
Bit 6: 4 - Res: Bit Cadangan
Bit-bit ieu ditangtoskeun pikeun bit dina ATtiny25 / 45/85 sareng bakal teras dibaca salaku nol.
Bit 3: 0 - CLKPS [3: 0]: Jam Prescaler Pilih Bit 3 - 0
Bit ieu ngahartikeun faktor pambagi antara sumber jam anu dipilih sareng jam sistem internal. Bit-bit ieu tiasa ditulis run-time pikeun ngarobih frekuensi jam pikeun nyocogkeun sareng sarat aplikasi. Nalika divider ngabagi input jam master kana MCU, laju sadaya periferal sinkron dikirangan nalika faktor pembagian dianggo. Faktor pembagian dirumuskeun dina Méja 6-15.
Pikeun ngahindarkeun parobihan frekuensi jam anu teu dihaja, prosedur nyerat khusus kedah dituturkeun pikeun ngarobih bit CLKPS:
Tulis Clock Prescaler Change Enable (CLKPCE) sakedik kana hiji sareng sadaya bit anu sanés dina CLKPR janten nol.
Dina opat siklus, tulis nilai anu dipikahoyong kana CLKPS bari nyerat nol kana CLKPCE.
Gangguan kedah ditumpurkeun nalika ngarobah setting prescaler pikeun mastikeun prosedur nyeratna henteu kaganggu.
CKDIV8 Fuse nangtukeun nilai awal bit CLKPS. Upami CKDIV8 henteu diprogram, bit CLKPS bakal direset ka "0000". Upami CKDIV8 diprogram, bit CLKPS direset ka "0011", masihan faktor pembagian dalapan nalika ngamimitian. Fitur ieu kedah dianggo upami sumber jam anu dipilih gaduh frekuensi anu langkung luhur tibatan frékuénsi maksimal alat dina kaayaan operasi ayeuna. Catet yén nilai nu mana wae nu bisa ditulis kana bit CLKPS paduli setelan CKDIV8 Fuse. Parangkat lunak Aplikasi kedah mastikeun yén faktor pembagian anu cekap nyaéta
dipilih upami sumber jam anu dipilih ngagaduhan frekuensi anu langkung luhur tibatan frékuénsi maksimum alat dina kaayaan operasi ayeuna. Alatna dikirim ku CKDIV8 Fuse anu diprogram.
tabél 6-15. Jam Prescaler Pilih
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | Faktor Divisi Jam |
0 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 2 |
0 | 0 | 1 | 0 | 4 |
0 | 0 | 1 | 1 | 8 |
0 | 1 | 0 | 0 | 16 |
0 | 1 | 0 | 1 | 32 |
0 | 1 | 1 | 0 | 64 |
0 | 1 | 1 | 1 | 128 |
1 | 0 | 0 | 0 | 256 |
1 | 0 | 0 | 1 | Ditangtayungan |
1 | 0 | 1 | 0 | Ditangtayungan |
1 | 0 | 1 | 1 | Ditangtayungan |
1 | 1 | 0 | 0 | Ditangtayungan |
1 | 1 | 0 | 1 | Ditangtayungan |
1 | 1 | 1 | 0 | Ditangtayungan |
1 | 1 | 1 | 1 | Ditangtayungan |
Catetan: Prescaler dipareuman dina modeu kasaluyuan ATtiny15 sareng henteu nyerat kana CLKPR, atanapi program sekering CKDIV8 gaduh pangaruh kana jam sistem (anu bakal janten 1.6 MHz).
Manajemén Kakuatan sareng Modeu Bobo
Kinerja tinggi sareng efisiensi kode ngarah industri ngajadikeun mikrokontroler AVR hiji pilihan idéal pikeun aplikasi kakuatan low. Salaku tambahan, modeu bobo ngaktipkeun aplikasi pikeun mareuman modul anu henteu dianggo dina MCU, sahingga tiasa ngahémat listrik. AVR nyayogikeun sababaraha modeu bobo anu ngamungkinkeun pangguna pikeun ngarobih konsumsi kakuatan pikeun syarat aplikasi.
Modeu Sare
Gambar 6-1 dina kaca 23 nampilkeun sistem jam anu béda sareng distribusi na di ATtiny25 / 45/85. Angka éta ngabantosan dina milih modeu bobo anu pas. Méja 7-1 nembongkeun modeu bobo anu béda sareng sumber hudangna.
tabél 7-1. Domain Jam Aktif sareng Sumber Wake-up dina Modeu Saré Béda
Jam Jam aktip | Osilator | Sumber Ngahudangkeun | ||||||||||
Mode Saré | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | Sumber Jam Utama Diaktipkeun | INT0 sareng Pin Change | SPM / EEPROM
Siap |
Kaayaan Mimitian USI |
ADC | I/O séjén | Anjing pangawas ngaganggu |
dianggurkeun | X | X | X | X | X | X | X | X | X | X | ||
Réduksi Noise ADC | X | X | X(1) | X | X | X | X | |||||
Kakuatan-handap | X(1) | X | X |
Catetan: Pikeun INT0, ngan tingkat interupsi.
Pikeun ngalebetkeun salah sahiji tina tilu modeu bobo, SE bit dina MCUCR kedah nyerat kana logika hiji sareng paréntah TIDAK kedah dilaksanakeun. The SM [1: 0] bit dina MCUCR Registrasi milih modeu bobo (Bobo, ADC Noise Reduction atanapi Power-down) anu bakal diaktipkeun ku paréntah SLEEP. Tingali Méja 7-2 pikeun kasimpulan.
Upami gangguan anu diaktipkeun nalika MCU dina mode sare, MCU hudang. MCU teras dihentikan pikeun opat siklus salian waktos ngamimitian, ngalaksanakeun rutin interupsi, sareng neraskeun palaksanaan tina instruksi saatos SLEEP. Eusi ngadaptar File sarta SRAM teu robah nalika alat hudang tina sare. Upami reset lumangsung salami mode sare, MCU hudang sareng ngajalankeun tina Reset Vector.
Catetan: yén lamun tingkat dipicu interupsi dipaké pikeun hudang-up tingkat robah kudu dilaksanakeun pikeun sawatara waktu pikeun hudang MCU (jeung MCU asup kana rutin jasa interupsi). Tingali "Gangguan Éksternal" dina kaca 49 pikeun detil.
Modeu dianggurkeun
Nalika bit SM[1:0] ditulis kana 00, instruksi SLEEP ngajadikeun MCU asup kana mode Idle, ngeureunkeun CPU tapi ngamungkinkeun Analog Comparator, ADC, USI, Timer/Counter, Watchdog, jeung sistem interupsi neruskeun operasi. ating. Mode sare ieu dasarna ngeureunkeun clkCPU sareng clkFLASH, bari ngamungkinkeun jam-jam anu sanés dijalankeun.
Modeu dianggurkeun ngamungkinkeun MCU hudang tina gangguan anu dipicu éksternal ogé anu internal sapertos Timer Overflow. Upami gugah tina gangguan Analog Comparator henteu diperyogikeun, Analog Comparator tiasa dijalankeun ku netepkeun bit ACD dina "ACSR - Analog Comparator Control and Status Register" dina kaca 120. Ieu bakal ngirangan konsumsi listrik dina modeu dianggurkeun. Upami ADC diaktipkeun, konvérsi dimimitian sacara otomatis nalika modeu ieu diasupkeun.
Modeu Réduksi Noise ADC
Nalika bit SM [1: 0] ditulis ka 01, instruksi SLEEP ngajadikeun MCU asup kana mode ADC Noise Reduction, ngeureunkeun CPU tapi ngamungkinkeun ADC, interrupts éksternal, sareng Watchdog pikeun terus beroperasi (upami diaktipkeun). Mode sare ieu ngeureunkeun clkI/O, clkCPU, jeung clkFLASH, bari ngidinan jam séjén pikeun ngajalankeun.
Ieu ningkatkeun lingkungan noise pikeun ADC, ngamungkinkeun pangukuran résolusi langkung luhur. Upami ADC diaktipkeun, konvérsi dimimitian sacara otomatis nalika modeu ieu diasupkeun. Salain ngabentuk ADC Conversion Lengkap ngaganggu, ngan ukur Reset Éksternal, Watchdog Reset, Brown-out Reset, SPM / EEPROM siap ngaganggu, interrupt tingkat éksternal dina INT0 atanapi gangguan pin ngaganggu tiasa ngahudangkeun MCU tina ADC Noise Reduction modeu.
Modeu kakuatan-handap
Nalika bit SM [1: 0] dituliskeun kana 10, paréntah SLEEP ngajadikeun MCU asup kana mode Power-down. Dina modeu ieu, Osilator dieureunkeun, bari ngaganggu éksternal, USI ngamimitian deteksi kaayaan sareng Watchdog teras-terasan dijalankeun (upami diaktipkeun). Ngan ukur Reset Éksternal, Watchdog Reset, a Brown-out Reset, USI ngamimitian kaayaan ngaganggu, tingkat éksternal ngaganggu INT0 atanapi gangguan pin ngaganggu tiasa ngahudangkeun MCU. Modeu bobo ieu ngeureunkeun sadaya jam anu dihasilkeun, ngamungkinkeun operasi modul Asynronis hungkul.
Parangkat lunak BOD Pareuman
Nalika Brown-out Detector (BOD) diaktipkeun ku BODLEVEL sekering (tingali Tabel 20-4 dina kaca 148), BOD aktip ngawaskeun suplai voltage salila periode sare. Dina sababaraha alat tiasa ngahemat daya ku cara nganonaktipkeun BOD ku parangkat lunak dina modeu sare Power-Down. Konsumsi daya mode sare lajeng bakal dina tingkat nu sarua sakumaha nalika BOD sacara global ditumpurkeun ku sekering.
Upami BOD ditumpurkeun ku parangkat lunak, pungsi BOD dipareuman langsung saatos lebet kana mode sare. Saatos hudang ti sare, BOD otomatis diaktipkeun deui. Ieu ensures operasi aman bisi tingkat VCC geus turun salila periode sare.
Nalika BOD parantos ditumpurkeun, waktos hudang tina modeu bobo bakal sami sareng anu kanggo gugah tina RESET. Pangguna kedah sacara manual ngatur waktos gugah sapertos rujukan bandgap gaduh waktos kanggo ngamimitian sareng BOD damel leres sateuacan MCU neraskeun ngaéksekusi kode. Tingali SUT [1: 0] sareng CKSEL [3: 0] bit sekering dina tabel "Fuse Low Byte" dina kaca 149
Pareuman BOD dikawasa ku BODS (BOD Sleep) bit tina MCU Control Register, tingali "MCUCR - MCU Kontrol Daptar ”dina kaca 37. Nuliskeun sakedik-sakedik ieu mareuman BOD dina Power-Down, nalika nyerat nol janten BOD aktip. Setélan standarna nol, nyaéta BOD aktip.
Nulis kana bit BODS dikawasa ku sekuen anu parantos waktos sareng bit anu ngamungkinkeun, tingali “MCUCR - MCU Control Regis- ter ”dina kaca 37.
Watesan
Pungsi nganonaktifkeun BOD parantos dilaksanakeun dina alat-alat ieu, ngan ukur:
ATtiny25, révisi E, sareng anu langkung énggal
ATtiny45, révisi D, sareng anu langkung énggal
ATtiny85, révisi C, sareng anu langkung énggal
Révisi ditandaan dina bungkus alat sareng tiasa ditempatan sapertos kieu:
Bagian handap bungkus 8P3 sareng 8S2
Sisi luhur paket 20M1
Daptar Pangurangan Kakuatan
Daptar Pangurangan Daya (PRR), tingali "PRR - Daptar Pangurangan Daya" dina kaca 38, Nyayogikeun metode pikeun ngirangan konsumsi kakuatan ku ngeureunkeun jam kana periferal masing-masing. Kaayaan periferal ayeuna beku sareng register I / O henteu tiasa dibaca atanapi ditulis. Sumberdaya anu dianggo ku periferal nalika ngeureunkeun jam bakal tetep diilikan, maka periferal dina kalolobaan kasus dinonaktipkeun sateuacan ngeureunkeun jam. Bangun modul, anu dilakukeun ku méréskeun bit dina PRR, nempatkeun modul dina kaayaan anu sami sareng sateuacan mareuman.
Modél shutdown tiasa dianggo dina mode Idle sareng mode Active pikeun nyata ngirangan konsumsi listrik sacara umum. Dina sadaya modeu bobo sanés, jam parantos lirén. Tingali "Pasokan arus modul I / O" dina kaca 177 pikeun examples.
Ngaminimalkeun Konsumsi Daya
Aya sababaraha masalah anu kedah diperhatoskeun nalika nyobian ngaleutikan konsumsi kakuatan dina sistem anu dikawasa AVR. Sacara umum, modeu bobo kedah dianggo sabisa-bisa, sareng modeu bobo kedah dipilih sahingga sabisa-bisa fungsi alatna tiasa dioperasikeun. Sadaya fungsi anu henteu diperyogikeun kedah dinonaktipkeun. Khususna, modul ieu di handap panginten peryogi tinimbangan khusus nalika nyobian ngahontal konsumsi kakuatan anu panghandapna.
Analog ka Digital Parabot Parobah
Upami diaktipkeun, ADC bakal diaktipkeun dina sadaya modeu bobo. Pikeun ngahémat listrik, ADC kedah dinonaktipkeun sateuacan lebet modeu bobo naon waé. Nalika ADC dipareuman sareng dihurungkeun deui, konvérsi salajengna janten konversi anu diperpanjang. Ngarujuk kana "Analog to Digital Converter" dina kaca 122 pikeun detil ngeunaan operasi ADC.
Babandingan analog
Nalika asup kana mode Idle, Comparator Analog kedah ditumpurkeun upami henteu dianggo. Nalika asup kana mode ADC Noise Reduction, Comparator Analog kedah ditumpurkeun. Dina modeu sare anu sanés, Comparator Analog sacara otomatis ditumpurkeun. Sanajan kitu, lamun Comparator Analog diatur ngagunakeun Vol internaltage Referensi salaku input, Comparator Analog kudu ditumpurkeun dina sakabéh mode sare. Upami teu kitu, internal Voltage Rujukan bakal diaktipkeun, bebas tina mode sare. ngarujuk kana "Babanding Analog" dina kaca 119 pikeun detil ngeunaan kumaha ngonpigurasikeun Analog Comparator.
Detektor Brown-out
Upami Detektor Brown-out henteu diperyogikeun dina aplikasi, modul ieu kedah dipareuman. Upami Detektor Brown-out diaktipkeun ku BODLEVEL Fuse, éta bakal diaktipkeun dina sadaya modeu bobo, sareng ku sabab éta, sok meakeun kakuatan. Dina modeu bobo anu langkung jero, ieu bakal nyumbang sacara signifikan kana total konsumsi ayeuna. Tingali "Brown-kaluar Detec- tion ”dina kaca 41 jeung "Parangkat lunak BOD Pareuman" dina kaca 35 pikeun detil ngeunaan cara ngonpigurasikeun Brown-out Detector.
Internal Voltage Rujukan
The internal Voltage Rujukan bakal diaktipkeun lamun diperlukeun ku Deteksi Brown-out, Analog Comparator atawa ADC. Lamun modul ieu ditumpurkeun sakumaha ditétélakeun dina bagian luhur, vol internaltage rujukan bakal ditumpurkeun sarta eta moal consuming kakuatan. Lamun dihurungkeun deui, pamaké kudu ngidinan rujukan pikeun ngamimitian up saméméh kaluaran dipaké. Upami rujukan tetep dina mode sare, kaluaran tiasa langsung dianggo. ngarujuk kana "Internal Voltage Rujukan” dina kaca 42 pikeun detil ngeunaan waktos ngamimitian.
Watchdog Timer
Upami Watchdog Timer henteu diperyogikeun dina aplikasi, modul ieu kedah dipareuman. Upami Watchdog Timer diaktipkeun, éta bakal diaktipkeun dina sadaya modeu bobo, sareng ku sabab éta, sok meakeun kakuatan. Dina modeu bobo anu langkung jero, ieu bakal nyumbang sacara signifikan kana total konsumsi ayeuna. Ngarujuk kana "Watchdog Timer" dina kaca 42 pikeun detil ngeunaan kumaha ngonpigurasikeun Watchdog Timer.
Palabuhan Pin
Nalika ngasupkeun mode sare, sadaya pin port kudu ngonpigurasi ngagunakeun kakuatan minimum. Hal anu paling penting nyaéta pikeun mastikeun yén henteu aya pin anu ngajalankeun beban résistif. Dina mode sare dimana duanana jam I / O (clkI / O) jeung jam ADC (clkADC) dieureunkeun, panyangga input alat bakal ditumpurkeun. Ieu mastikeun yén teu aya kakuatan anu dikonsumsi
ku logika input nalika henteu diperyogikeun. Dina sababaraha kasus, logika input diperyogikeun pikeun ngadeteksi kaayaan gugah, sareng
éta bakal teras diaktipkeun. Tingal kana bagian "Digital Input Enable and Sleep Mode" dina kaca 57 pikeun detil ngeunaan nu pin diaktipkeun. Lamun panyangga input diaktipkeun jeung sinyal input ditinggalkeun ngambang atawa boga tingkat sinyal analog deukeut VCC / 2, panyangga input bakal ngagunakeun kakuatan kaleuleuwihan.
Pikeun pin input analog, panyangga input digital kedah ditumpurkeun unggal waktos. Hiji tingkat sinyal analog deukeut VCC / 2 on hiji pin input bisa ngabalukarkeun arus signifikan sanajan dina modeu aktip. Panyangga input digital tiasa ditumpurkeun ku nyerat kana Digital Input Disable Register (DIDR0). ngarujuk kana "DIDR0 - Digital Input Pareuman ngadaptar 0" dina kaca 121 pikeun detil.
Ngadaptar Pedaran
MCUCR - MCU Kontrol ngadaptar
MCU Control Register ngandung bit kontrol pikeun manajemén kakuatan.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | Awak | ISC01 | ISC00 | MCUCR |
Maca/Tulis | R | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | R | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - BODS: BOD Saré
Pungsi nganonaktifkeun BOD sayogi dina sababaraha alat, hungkul. Tingali "Watesan" dina kaca 36.
Dina raraga nganonaktifkeun BOD nalika bobo (tingali Tabel 7-1 dina kaca 34) bit BODS kedah ditulis pikeun logika hiji. Ieu dikawasa ku sekuen waktos sareng bit anu ngamungkinkeun, BODSE dina MCUCR. Mimiti, duanana BODS sareng BODSE kedah disetel ka hiji. Kadua, dina opat siklus jam, BODS kedah disetel ka hiji sareng BODSE kedah disetel ka nol. Bit BODS aktip tilu siklus jam saatos disetél. Parentah bobo kedah dilaksanakeun nalika BODS aktip pikeun mareuman BOD pikeun modeu bobo anu saleresna. Bit BODS sacara otomatis diberesihan saatos tilu siklus jam.
Dina alat anu BOD Bobo teu acan dilaksanakeun bit ieu henteu dianggo sareng bakal teras maca nol.
Bit 5 - SE: Saré Aktipkeun
Bit SE kudu ditulis kana logika hiji sangkan MCU asup kana mode sare nalika instruksi SLEEP dieksekusi. Pikeun ngahindarkeun MCU asup kana mode sare kacuali tujuan programer, disarankeun pikeun nyerat bit Sleep Enable (SE) ka hiji sateuacan palaksanaan instruksi SLEEP sareng mupus langsung saatos hudang.
Bit 4: 3 - SM [1: 0]: Mode Bobo Pilih Bit 1 sareng 0
Bit ieu milih antara tilu modeu bobo anu sayogi sapertos anu dipidangkeun dina Méja 7-2.
Tabél 7-2. Pilih Mode Saré
SM1 | SM0 | Mode Saré |
0 | 0 | dianggurkeun |
0 | 1 | Réduksi Noise ADC |
1 | 0 | Kakuatan-handap |
1 | 1 | Ditangtayungan |
Bit 2 - BODSE: BOD Sleep Enable
Pungsi nganonaktifkeun BOD sayogi dina sababaraha alat, hungkul. Tingali "Watesan" dina kaca 36.
Bit BODSE ngamungkinkeun setting bit kontrol BODS, sakumaha anu dijelaskeun dina pedaran bit BODS. Nonaktipkeun BOD dikawasa ku sekuen waktos.
Bit ieu henteu dianggo dina alat-alat anu software BOD nganonaktifkeun henteu acan dilaksanakeun sareng bakal dibaca salaku nol dina alat-alat éta.
PRR - Daptar Réduksi Daya
Daptar Réduksi Daya nyayogikeun padika pikeun ngirangan panggunaan listrik ku cara ngantepkeun sigir jam periferal ditumpurkeun.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRTIM1 | PRTIM0 | PRUSI | PRADC | PRR |
Maca/Tulis | R | R | R | R | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7: 4 - Res: Bit Cadangan
Bit-bit ieu ditangtoskeun pikeun bit dina ATtiny25 / 45/85 sareng bakal teras dibaca salaku nol.
Bit 3 - PRTIM1: Timer Pangurangan Daya / Counter1
Nulis logika pikeun sakedik ieu nutup modul Timer / Counter1. Nalika Timer / Counter1 diaktipkeun, operasi bakal neraskeun sapertos sateuacan mareuman.
Bit 2 - PRTIM0: Timer Pangurangan Daya / Counter0
Nulis logika pikeun sakedik ieu nutup modul Timer / Counter0. Nalika Timer / Counter0 diaktipkeun, operasi bakal neraskeun sapertos sateuacan mareuman.
Bit 1 - PRUSI: Pangurangan Daya USI
Nulis logika pikeun sakedik ieu mareuman USI ku ngeureunkeun jam kana modul. Nalika hudang deui USI, USI kedah diinisialisasi deui pikeun mastikeun operasi anu saé.
Bit 0 - PRADC: Power Reduction ADC
Nulis logika pikeun sakedik ieu nutup ADC. ADC kedah dinonaktipkeun sateuacan dipareuman. Catet yén jam ADC ogé dianggo ku sababaraha bagéan komparator analog, anu hartosna yén komparator analog teu tiasa dianggo nalika bit ieu tinggi.
Kontrol Sistem sareng Reset
Ngareset AVR
Salami disetél ulang, sadaya Registrasi I / O disetél kana nilai awalna, sareng program mimiti dijalankeun ti Reset Vec- tor. Pitunjuk anu disimpen dina Reset Vector kedahna RJMP - Relative Jump - paréntah pikeun rutin ngatur ulang. Upami program henteu pernah ngaktipkeun sumber ngaganggu, anu ngaganggu Véktor henteu dianggo, sareng kode program anu biasa tiasa ditempatkeun di lokasi ieu. Diagram sirkuit dina Gambar 8-1 nembongkeun logika reset. Parame listrik tina sirkuit ngareset dirumuskeun dina "Sistem sareng Ngareset Karakteristik" dina kaca 165.
angka 8-1 Reset Logika
Palabuhan I / O tina AVR langsung disetel deui kana kaayaan awalna nalika sumber reset janten aktip. Ieu henteu meryogikeun sumber jam mana waé pikeun ngajalankeun.
Saatos sadaya sumber ngareset parantos teu aktip, konter reureuh disebat, manteng ngareset internal. Ieu ngamungkinkeun kakuatan pikeun ngahontal tingkat anu stabil sateuacan operasi normal dimimitian. Mangsa waktos kaluar tina counter reureuh dihartikeun ku pangguna ngalangkungan SUT sareng CKSEL Fuse. Pilihan anu sanés pikeun waktos reureuh ditampilkeun dina “Jam Sumber ”dina kaca 25.
Reset Sumber
ATtiny25 / 45/85 ngagaduhan opat sumber ngareset:
Power-on Reset. MCU direset nalika suplai voltage handap ambang Power-on Reset (VPOT).
Reset éksternal. MCU direset nalika tingkat handap aya dina RESET pin langkung lami tibatan panjang minimum nadi.
Watchdog Reset. MCU direset nalika jaman Watchdog Timer kadaluarsana sareng Watchdog diaktipkeun.
Brown-kaluar Reset. MCU direset nalika suplai voltage VCC aya di handapeun bangbarung Reset Brown-out (VBOT) sareng Detektor Brown-out diaktipkeun.
Reset Kakuatan
Pulsa Power-on Reset (POR) dihasilkeun ku sirkuit deteksi Dina-chip. Tingkat deteksi dihartikeun dina "Sys- tem sareng Reset Karakteristik ”dina kaca 165. POR diaktipkeun iraha waé VCC sahandapeun tingkat deteksi. Sirkuit POR bisa dipaké pikeun memicu Reset Mimitian-up, kitu ogé pikeun ngadeteksi gagalna dina suplai voltage.
Sirkuit Power-on Reset (POR) mastikeun yén alat direset tina Power-on. Ngahontal Power-on Reset bangbarung voltage invokes counter reureuh, nu nangtukeun sabaraha lila alat disimpen dina RESET sanggeus VCC naék. Sinyal RESET diaktipkeun deui, tanpa reureuh, nalika VCC turun di handap tingkat deteksi.
Gambar 8-2. MCU Mimitian-up, RESET dihijikeun ka VCC
RESET INTERNAL
Gambar 8-3. Mimitian MCU, RESET Dipanjangkeun Jaba
Reset éksternal
Reset Éksternal dihasilkeun ku tingkat handap dina pin RESET upami diaktipkeun. Reset pulsa langkung panjang tibatan lébar minimum pulsa (tempo "Sistem sareng Ngareset Karakteristik" dina kaca 165) bakal ngahasilkeun reset, sanajan jam teu jalan. pulsa pondok teu dijamin ngahasilkeun reset a. Nalika sinyal anu diterapkeun ngahontal Reset Threshold Voltage - VRST - dina positipna, counter tunda ngamimitian MCU saatos periode Time-out parantos kadaluwarsa.
Gambar 8-4. Reset éksternal Salila Operasi
Deteksi Brown-out
ATtiny25/45/85 gaduh sirkuit On-chip Brown-out Detection (BOD) pikeun ngawas tingkat VCC salami operasi ku ngabandingkeun kana tingkat pemicu anu tetep. Tingkat pemicu pikeun BOD tiasa dipilih ku BODLEVEL Fuses. Tingkat pemicu ngagaduhan histeresis pikeun mastikeun Deteksi Brown-out gratis spike. Histeresis dina tingkat deteksi kedah diinterpretasi salaku VBOT + = VBOT + VHYST / 2 sareng VBOT- = VBOT - VHYST / 2.
Nalika BOD diaktipkeun, sarta VCC turun ka nilai handap tingkat pemicu (VBOT-in Gambar 8-5), Reset Brown-out langsung diaktipkeun. Nalika VCC naek di luhur tingkat pemicu (VBOT+ in Gambar 8-5), counter tunda ngamimitian MCU saatos periode Time-out tTOUT parantos kadaluwarsa.
Sirkuit BOD ngan bakal ngadeteksi serelek di VCC lamun voltage tetep handap tingkat pemicu pikeun leuwih panjang batan tBOD dibikeun dina "Sistem sareng Ngareset Karakteristik" dina kaca 165.
Watchdog Reset
Nalika Watchdog kali kaluar, bakal ngahasilkeun pulsa reset pondok tina hiji durasi siklus CK. Di ujung ragrag pulsa ieu, timer reureuh dimimitian cacah tTOUT periode Time-out. ngarujuk kana "Watchdog Timer" dina kaca 42 pikeun detil ngeunaan operasi Watchdog Timer.
Voltage Referensi Aktipkeun Sinyal sareng Waktu Mimitian
Voltage rujukan boga waktu ngamimitian-up nu bisa mangaruhan cara eta kudu dipake. Waktu ngamimitian dirumuskeun dina "Sistem sareng Ngareset Karakteristik" dina kaca 165. Pikeun ngahémat listrik, rujukanana henteu teras-terasan dihurungkeun. Réfinisina salami kaayaan sapertos kieu:
Nalika BOD diaktipkeun (ku program BODLEVEL [2: 0] Fuse Bits).
Nalika rujukan bandgap disambungkeun kana Analog Comparator (ku netepkeun ACBG bit dina ACSR).
Nalika ADC diaktipkeun.
Janten, nalika BOD henteu diaktipkeun, saatos netepkeun bit ACBG atanapi ngamungkinkeun ADC, pangguna kedah teras-terasan ngijinkeun rujukan pikeun ngamimitian sateuacan kaluaran ti Analog Comparator atanapi ADC dianggo. Pikeun ngirangan pasokan listrik dina modeu Daya-handap, pangguna tiasa nyingkahan tilu kaayaan di luhur pikeun mastikeun yén acuan dipareuman sateuacan lebet modeu Power-down.
Watchdog Timer
Watchdog Timer jam tina Oscillator On-chip anu ngalir dina 128 kHz. Ku ngadalikeun préditor Watchdog Timer, interval Watchdog Reset tiasa disaluyukeun sapertos anu ditingalikeun dina Tabel 8-3 dina kaca 46. The WDR - Watchdog Reset - instruksi ngareset Watchdog Timer. Watchdog Timer ogé ngareset nalika dinonaktipkeun sareng nalika Resep Chip lumangsung. Sapuluh période siklus jam anu béda tiasa dipilih pikeun nangtoskeun periode ngareset. Upami periode reset kadaluarsana tanpa Watchdog Reset anu sanés, ATtiny25 / 45/85 ngareset sareng ngajalankeun ti Reset Vector. Kanggo detil waktos dina Watchdog Reset, tingali Tabel 8-3 dina kaca 46.
Watchdog Timer ogé tiasa ngonpigurasi pikeun ngahasilkeun gangguan tibatan ngareset. Ieu tiasa ngabantosan pisan nalika nganggo Watchdog pikeun hudang tina Power-down.
Pikeun nyegah teu dihaja tina Watchdog atanapi parobihan teu dihaja dina jangka waktu kaluar, dua tingkat kaamanan anu béda dipilih ku sekering WDTON sapertos anu ditingalikeun dina Méja 8-1 ngarujuk kana "Runut Waktos pikeun Ngarobih Kon- gambar tina Watchdog Timer ”dina kaca 43 pikeun detil.
tabél 8-1. Konfigurasi WDT salaku Fungsi tina Setélan sekering of WDTON
WDTON | Tingkat Kasalametan | WDT Kaayaan Awal | Kumaha Pareuman WDT | Kumaha Ngarobih Time- out |
Teu diprogram | 1 | ditumpurkeun | Runtuyan waktos | Taya watesan |
Diprogram | 2 | Diaktipkeun | Sok diaktipkeun | Runtuyan waktos |
Gambar 8-7. Watchdog Timer
Urutan Waktos pikeun Ngarobih Konfigurasi Timer Watchdog
Urutan pikeun ngarobih konfigurasi rada béda antara dua tingkat kaamanan. Prosedur misah dijelaskeun pikeun tiap tingkatan.
Tingkat Kasalametan 1: Dina mode ieu, Watchdog Timer mimitina ditumpurkeun, tapi tiasa diaktipkeun ku nyerat bit WDE ka hiji tanpa aya larangan. Runtuyan waktosna diperyogikeun nalika nganonaktipkeun Timer Watchdog anu diaktipkeun. Pikeun nganonaktipkeun Watchdog Timer, prosedur ieu kedah dituturkeun:
Dina operasi anu sami, nyerat logika kana WDCE sareng WDE. Hiji logika kedah diserat pikeun WDE perkawis- kirang tina nilai sateuacanna tina WDE bit.
Dina opat siklus jam salajengna, dina operasi anu sami, nyerat bit WDE sareng WDP sakumaha anu dipikahoyong, tapi ku bit WDCE diberesihan.
Tingkat Kasalametan 2: Dina mode ieu, Watchdog Timer salawasna diaktipkeun, sarta bit WDE bakal salawasna dibaca salaku hiji. A runtuyan timed diperlukeun nalika ngarobah Watchdog Time-out perioda. Pikeun ngarobah Watchdog Time-out, prosedur ieu kedah dituturkeun:
Dina operasi anu sami, nyerat anu logis pikeun WDCE sareng WDE. Sanaos WDE salawasna diatur, WDE kedah diserat kanggo hiji kanggo ngamimitian sekuen waktos.
Dina opat siklus jam salajengna, dina operasi anu sami, nyerat bit WDP sakumaha anu dipikahoyong, tapi ku bit WDCE diberesihan. Nilai anu ditulis kana bit WDE henteu relevan.
Kode Example
Kodeu handap example nembongkeun hiji assembly sarta hiji fungsi C pikeun mareuman WDT. MantanampLe nganggap yén interrupts dikadalikeun (contona, ku nganonaktipkeun interrupts sacara global) ku kituna teu aya interrupts anu bakal lumangsung nalika palaksanaan fungsi ieu.
Kode Majelis Example(1) |
WDT_off:
wdr ; Hapus WDRF dina MCUSR ldi r16, (0< kaluar MCUSR, r16 ; Tulis anu logis pikeun WDCE sareng WDE ; Tetep setélan prescaler lami kanggo nyegah Watchdog Reset anu teu dihaja dina r16, WDTCR ori r16, (1< kaluar WDTCR, r16 ; Pareuman WDT ldi r16, (0< kaluar WDTCR, r16 rét |
Kode C Example(1) |
void WDT_off(void)
{ _WDR (); /* Hapus WDRF dina MCUSR */ MCUSR = 0x00 /* Tulis logis kana WDCE sareng WDE */ WDTCR |= (1< / * Pareuman WDT * / WDTCR = 0x00; } |
Catetan: 1. Tingali "Kode Examples” dina kaca 6.
Ngadaptar Pedaran
MCUSR - Daptar Status MCU
Daptar Status MCU nyayogikeun inpormasi anu mana sumber ulang sabab MCU Reset.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | BORF | LUCU | PORF | MCUSR |
Maca/Tulis | R | R | R | R | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W |
Nilai Awal 0 0 0 0 Tingali Pedaran Bit
Bit 7: 4 - Res: Bit Cadangan
Bit-bit ieu ditangtoskeun pikeun bit dina ATtiny25 / 45/85 sareng bakal teras dibaca salaku nol.
Bit 3 - WDRF: Bandéra Reset Bandéra
Bit ieu diatur upami Watchdog Reset kajantenan. Sakedik direset ku Power-on Reset, atanapi ku nyerat logika enol kana bendera.
Bit 2 - BORF: Bandéra Reset Brown-out
Bit ieu diatur upami Brown-out Reset lumangsung. Sakedik direset ku Power-on Reset, atanapi ku nyerat logika enol kana bendera.
Bit 1 - EXTRF: Bandéra Reset Éksternal
Bit ieu diatur upami External Reset lumangsung. Sakedik direset ku Power-on Reset, atanapi ku nyerat logika enol kana bendera.
Bit 0 - PORF: Bandéra Reset Daya
Bit ieu diatur upami Power-on Reset lumangsung. Sakedik direset ukur ku nyerat logika enol kana bendera.
Pikeun ngamangpaatkeun Reset Flags pikeun ngaidentipikasi kaayaan anu direset, pangguna kedah maca teras ngareset MCUSR sakitar mungkin dina program. Upami register parantos diberesihan sateuacan reset anu sanés, sumber resét tiasa dipendakan ku nalungtik Bandéra Reset.
WDTCR - Watchdog Timer Kontrol ngadaptar
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x21 | WDIF | WDIE | WDP3 | WDCE | WDE | WDP2 | WDP1 | WDP0 | WDTCR |
Maca/Tulis | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | 0 | 0 | 0 | 0 | X | 0 | 0 | 0 |
Bit 7 - WDIF: Bandéra Ngabéréskeun Bandéra ngaganggu
Bit ieu diatur nalika waktos kaluar di Watchdog Timer sareng Watchdog Timer dikonfigurasi pikeun ngaganggu. WDIF diberesihan ku perangkat keras nalika ngajalankeun vektor panganteur ngaganggu anu saluyu. Alternatipna, WDIF diberesihan ku nyerat logika kana bendera. Nalika I-bit dina SREG sareng WDIE diatur, Watchdog Time-out Interrupt dieksekusi.
Bit 6 - WDIE: Watchdog Timeout ngaganggu Aktipkeun
Nalika sakedik ieu dituliskeun ka hiji, WDE diberesihan, sareng I-bit dina ngadaptar Status disetél, gangguan Watchdog Time-out Interrupt diaktipkeun. Dina modeu ieu, gangguan anu saluyu dilaksanakeun tibatan ngareset upami waktos di Watchdog Timer kajantenan.
Upami WDE diatur, WDIE sacara otomatis diberesihan ku pakakas hardware nalika waktos kaluar-waktos lumangsung. Ieu kapaké pikeun ngajaga kaamanan Watchdog Reset bari nganggo gangguan. Saatos bit WDIE diberesihan, waktos kaluar-waktos salajengna bakal ngahasilkeun reset. Pikeun ngahindar tina Watchdog Reset, WDIE kedah disetél saatos masing-masing ngaganggu.
Tabél 8-2. Konfigurasi Timer Watchdog
WDE | WDIE | Watchdog Timer Propinsi | Peta dina Time-out |
0 | 0 | Dieureunkeun | Euweuh |
0 | 1 | Lumpat | ngaganggu |
1 | 0 | Lumpat | Reset |
1 | 1 | Lumpat | ngaganggu |
Bit 4 - WDCE: Watchdog Change Ngaktipkeun
Bit ieu kedah diatur nalika bit WDE ditulis kana logika nol. Upami teu kitu, Watchdog moal ditumpurkeun. Sakali ditulis kana hiji, hardware bakal mupus saeutik ieu saatos opat siklus jam. Tingali kana katerangan bit WDE pikeun prosedur nganonaktifkeun Watchdog. Bit ieu ogé kedah disetél nalika ngarobah bit prescaler. Tingali “Réntép seureuh pikeun Ngarobih Konfigurasi Timer Watchdog ”dina kaca 43.
Bit 3 - WDE: Watchdog Aktipkeun
Nalika WDE ditulis kana logika hiji, Watchdog Timer diaktipkeun, sareng upami WDE ditulis kana logika enol, fungsi Watchdog Timer ditumpurkeun. WDE ngan ukur tiasa diberesihan upami bit WDCE ngagaduhan tingkat logika hiji. Pikeun nganonaktipkeun Watchdog Timer anu diaktipkeun, prosedur ieu kedah dituturkeun:
Dina operasi anu sami, nyerat logika kana WDCE sareng WDE. Logika kedah ditulis kana WDE sanaos disetél ka hiji sateuacan operasi nganonaktifkeun dimimitian.
Dina opat siklus jam salajengna, nyerat logika 0 kana WDE. Ieu nganonaktifkeun Watchdog.
Dina tingkat kaamanan 2, henteu mungkin pikeun nganonaktipkeun Watchdog Timer, bahkan kalayan algoritma anu dijelaskeun di luhur. Tingali "Urutan Waktos pikeun Ngarobih Konfigurasi Timer Watchdog" dina kaca 43.
Dina tingkat kaamanan 1, WDE ditindes ku WDRF dina MCUSR. Tingali "MCUSR - ngadaptar Status MCU" dina kaca 44 pikeun katerangan WDRF. Ieu ngandung harti yén WDE sok disetél nalika WDRF disetél. Pikeun mupus WDE, WDRF kedah diberesihan sateuacan mareuman Watchdog kalayan prosedur anu ditétélakeun di luhur. Fitur ieu mastikeun sababaraha reset salami kaayaan anu nyababkeun kagagalan, sareng aman pikeun ngamimitian saatos kagagalan.
Catetan: Upami timer watchdog teu bade dipaké dina aplikasi, hal anu penting pikeun ngaliwatan prosedur nganonaktipkeun watchdog dina initialization alat. Upami Watchdog ngahaja diaktipkeun, contonaample ku pointer runaway atawa kaayaan coklat-kaluar, alat bakal ngareset, anu dina gilirannana bakal ngakibatkeun reset watchdog anyar. Pikeun ngahindarkeun kaayaan ieu, parangkat lunak aplikasi kedah salawasna mupus bandéra WDRF sareng bit kontrol WDE dina rutin inisialisasi.
Bit 5, 2: 0 - WDP [3: 0]: Watchdog Timer Prescaler 3, 2, 1, sareng 0
WDP [3: 0] bit nangtukeun Watchdog Timer prescaling nalika Watchdog Timer diaktipkeun. Nilai prescaling anu bénten sareng Periode Waktos anu saluyu ditingalikeun dina Méja 8-3.
Tabél 8-3. Watchdog Timer Prescale Pilih
WDP3 | WDP2 | WDP1 | WDP0 | Jumlah Siklus Osilator WDT | Biasa Time-out di VCC = 5.0V |
0 | 0 | 0 | 0 | Siklus 2 (2048) | 16 ms |
0 | 0 | 0 | 1 | Siklus 4 (4096) | 32 ms |
0 | 0 | 1 | 0 | Siklus 8 (8192) | 64 ms |
0 | 0 | 1 | 1 | Siklus 16 (16384) | 0.125 s |
0 | 1 | 0 | 0 | Siklus 32 (32764) | 0.25 s |
0 | 1 | 0 | 1 | Siklus 64 (65536) | 0.5 s |
0 | 1 | 1 | 0 | Siklus 128 (131072) | 1.0 s |
0 | 1 | 1 | 1 | Siklus 256 (262144) | 2.0 s |
1 | 0 | 0 | 0 | Siklus 512 (524288) | 4.0 s |
1 | 0 | 0 | 1 | Siklus 1024 (1048576) | 8.0 s |
tabél 8-3. Watchdog Timer Prescale Select (Terus)
WDP3 | WDP2 | WDP1 | WDP0 | Jumlah Siklus Osilator WDT | Biasa Time-out di VCC = 5.0V |
1 | 0 | 1 | 0 | Ditangtayungan(1) | |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 |
Catetan: 1. Lamun dipilih, salah sahiji setélan valid handap 0b1010 bakal dipaké.
Nyampeurkeun
Bagéan ieu ngajelaskeun spésifikasi penanganan ngaganggu sakumaha anu dilakukeun dina ATtiny25 / 45/85. Pikeun nagara penjelasan umum tina AVR interrupt handling, tingal "Reset and Interrupt Handling" dina kaca 12.
Ngaganggu Véktor dina ATtiny25 / 45/85
Véktor gangguan ATtiny25 / 45/85 dijelaskeun dina Méja 9-1handap.
tabél 9-1. Reset jeung ngaganggu Véktor
Véktor No. | Alamat Program | Sumber | Ngaganggu Harti |
1 | 0x0000 | RESET | Pin Éksternal, Reset Power-on, Brown-out Reset, Watchdog Reset |
2 | 0x0001 | INT0 | Permintaan Gangguan Éksternal 0 |
3 | 0x0002 | PCINT0 | Pin Ganti Permintaan Gangguan 0 |
4 | 0x0003 | TIMER1_COMPA | Timer / Counter1 Bandingkeun Pertandingan A |
5 | 0x0004 | TIMER1_OVF | Timer / Counter1 Ngabahekeun |
6 | 0x0005 | TIMER0_OVF | Timer / Counter0 Ngabahekeun |
7 | 0x0006 | EE_RDY | EEPROM Siap |
8 | 0x0007 | ANA_COMP | Babandingan analog |
9 | 0x0008 | ADC | ADC Konversi lengkep |
10 | 0x0009 | TIMER1_COMPB | Timer / Counter1 Bandingkeun Pertandingan B |
11 | 0x000A | TIMER0_COMPA | Timer / Counter0 Bandingkeun Pertandingan A |
12 | 0x000B | TIMER0_COMPB | Timer / Counter0 Bandingkeun Pertandingan B |
13 | 0 x 000C | WDT | Watchdog Waktos-kaluar |
14 | 0x000D | USI_START | USI Mimitian |
15 | 0x000E | USI_OVF | USI Ngabahekeun |
Upami program henteu pernah ngaktipkeun sumber ngaganggu, anu ngaganggu Véktor henteu dianggo, sareng kode program anu biasa tiasa ditempatkeun di lokasi ieu.
Setélan has sareng umum pikeun alamat vektor interupsi di ATtiny25/45/85 dipidangkeun dina program ex.ample handap.
Kode Majelis Example | ||
.org 0x0000 | ; Atur alamat salajengna | pernyataan |
rjmp RESET | ; Alamat 0x0000 | |
rjmp INT0_ISR | ; Alamat 0x0001 | |
rjmp PCINT0_ISR | ; Alamat 0x0002 | |
rjmp TIM1_COMPA_ISR | ; Alamat 0x0003 | |
rjmp TIM1_OVF_ISR | ; Alamat 0x0004 | |
rjmp TIM0_OVF_ISR | ; Alamat 0x0005 | |
rjmp EE_RDY_ISR | ; Alamat 0x0006 | |
rjmp ANA_COMP_ISR | ; Alamat 0x0007 | |
rjmp ADC_ISR | ; Alamat 0x0008 | |
rjmp TIM1_COMPB_ISR | ; Alamat 0x0009 | |
rjmp TIM0_COMPA_ISR | ; Alamat 0x000A | |
rjmp TIM0_COMPB_ISR | ; Alamat 0x000B | |
rjmp WDT_ISR | ; Alamat 0x000C | |
rjmp USI_START_ISR | ; Alamat 0x000D | |
rjmp USI_OVF_ISR | ; Alamat 0x000E | |
ResET: | ; Program utama ngamimitian | |
; Alamat 0x000F | ||
… |
Catetan: Tingali "Kode Examples” dina kaca 6.
Ngaganggu Éksternal
The External Interrupts dipicu ku INT0 pin atanapi salah sahiji PCINT [5: 0] pin. Perhatoskeun yén, upami diaktipkeun, gangguan bakal micu sanaos pin INT0 atanapi PCINT [5: 0] ngonpigurasi salaku kaluaran. Fitur ieu nyayogikeun cara ngahasilkeun gangguan perangkat lunak. Ganti pin ngaganggu PCI bakal micu upami diaktipkeun PCINT [5: 0] pin toggles. Kontrol PCMSK Registrasi anu pin nyumbang kana gangguan pin ngaganggu. Ganti parobahan pin dina PCINT [5: 0] kauninga sacara sinkron. Ieu ngandung harti yén gangguan ieu tiasa dianggo pikeun ngahudangkeun bagianna ogé tina modeu bobo salain ti modeu dianggurkeun.
Gangguan INT0 tiasa dipicu ku ragrag atanapi naékna ujung atanapi tingkat anu handap. Ieu diatur sakumaha anu dituduhkeun dina spésifikasi MCU Control Registr - MCUCR. Nalika gangguan INT0 diaktipkeun sareng ngonpigurasi salaku tingkat anu dipicu, gangguan éta bakal dipicu salami pin dijaga lemah. Catet yén pangakuan tina ragrag atanapi ngaganggu ujung ngaganggu dina INT0 peryogi ayana jam I / O, dijelaskeun dina "Sistem Jam sareng Distribusi na" dina kaca 23.
Gangguan Tingkat Rendah
Gangguan tingkat handap dina INT0 kauninga sacara teu sinkron. Ieu ngakibatkeun yén gangguan ieu tiasa dianggo pikeun ngahudangkeun bagianna ogé tina modeu bobo salain ti modeu dianggurkeun. Jam I / O dieureunkeun dina sadaya modeu bobo kecuali modeu dianggurkeun.
Catet yén upami interupsi anu dipicu tingkat dianggo pikeun hudang tina Power-down, tingkat anu dibutuhkeun kedah dicekel cukup lila pikeun MCU ngabéréskeun bangun pikeun memicu interupsi tingkat. Upami tingkatna ngaleungit sateuacan ahir Waktos Mimitian, MCU bakal tetep hudang, tapi henteu aya gangguan anu bakal dibangkitkeun. Waktu ngamimitian ditetepkeun ku SUT sareng CKSEL Fuses sakumaha anu dijelaskeun dina "Sistem Jam sareng Pilihan Jam" dina kaca 23.
Upami tingkat handap pin ngaganggu dihapus sateuacan alatna hudang maka palaksanaan program moal dialihkeun kana rutin jasa ngaganggu tapi teraskeun tina paréntah nuturkeun paréntah SLEEP.
Pin Ngarobih Gangguan Waktos
Tilasample of timing of a ngaganggu robah pin ditémbongkeun dina Gambar 9-1.
Ngadaptar Pedaran
MCUCR - MCU Kontrol ngadaptar
Édisi Control Interrupt External A ngandung bit control pikeun interrupt control.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | Awak | ISC01 | ISC00 | MCUCR |
Maca/Tulis | R | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | R | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 1: 0 - ISC0 [1: 0]: Ngaganggu Rasa Kontrol 0 Bit 1 sareng Bit 0
The External Interrupt 0 diaktipkeun ku pin éksternal INT0 upami SREG I-flag sareng topeng interrupt anu cocog disetél. Tingkat sareng sisina dina pin INT0 éksternal anu ngaktipkeun gangguan parantos dihartikeun dina Méja 9-2. Nilai dina pin INT0 nyaeta sampdipingpin saméméh detecting edges. Upami interupsi ujung atanapi toggle dipilih, pulsa anu tahan langkung lami ti hiji période jam bakal ngahasilkeun interupsi. Pulsa pondok teu dijamin ngahasilkeun interupsi. Lamun interupsi tingkat low dipilih, tingkat low kudu dilaksanakeun nepi ka parantosan instruksi ayeuna executing pikeun ngahasilkeun interupsi.
tabél 9-2. Ngaganggu 0 Rasa Control
ISC01 | ISC00 | Katerangan |
0 | 0 | Tingkat INT0 anu handap ngahasilkeun paménta gangguan. |
0 | 1 | Parobihan logis naon waé dina INT0 ngahasilkeun pamundut ngaganggu. |
1 | 0 | Ujung ragrag INT0 ngahasilkeun paménta ngaganggu. |
1 | 1 | Ujung naékna INT0 ngahasilkeun paménta gangguan. |
GIMSK - Umum ngadaptar Topeng ngadaptar
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | INT0 | PCIe | – | – | – | – | – | GIMSK |
Maca/Tulis | R | Urang Sunda/W | Urang Sunda/W | R | R | R | R | R | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7, 4: 0 - Res: Bit Cadangan
Bit-bit ieu ditangtoskeun pikeun bit dina ATtiny25 / 45/85 sareng bakal teras dibaca salaku nol.
Bit 6 - INT0: Request Interrupt External 0 Aktipkeun
Nalika INT0 bit parantos disetél (hiji) sareng I-bit dina Status Register (SREG) disetél (hiji), gangguan pin éksternal diaktipkeun. The Interrupt Sense Control0 bit 1/0 (ISC01 sareng ISC00) dina MCU Control Register (MCUCR) ngahartikeun naha gangguan éksternal diaktipkeun dina naékna atanapi / atanapi ragrag ujung INT0 pin atanapi level sensed. Aktivitas dina pin bakal nyababkeun pamundut ngaganggu sanaos INT0 ngonpigurasi salaku kaluaran. Gangguan anu cocog pikeun Exter- nal Interrupt Request 0 dieksekusi ti INT0 Interrupt Vector.
Bit 5 - PCIE: Pin Change Change Ganggu Aktipkeun
Nalika bit PCIE parantos disetél (hiji) sareng I-bit dina Status register (SREG) disetél (hiji), gangguan ngaganti pin diaktipkeun. Parobihan naon waé dina pin PCINT anu diaktipkeun [5: 0] bakal nyababkeun gangguan. Gangguan anu saluyu tina Pin Change Interrupt Request dieksekusi ti PCI Interrupt Vector. PCINT [5: 0] pin diaktipkeun masing-masing ku PCMSK0 Registrasi.
Kado - Umum Gendéra Gangguan ngadaptar
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3A | – | INTF0 | PCIF | – | – | – | – | – | HADIAH |
Maca/Tulis | R | Urang Sunda/W | Urang Sunda/W | R | R | R | R | R | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7, 4: 0 - Res: Bit Cadangan
Bit-bit ieu ditangtoskeun pikeun bit dina ATtiny25 / 45/85 sareng bakal teras dibaca salaku nol.
Bit 6 - INTF0: Bandéra Mangrupikeun Éksternal 0
Nalika ujung atanapi robih logika dina pin INT0 micu pamenta ngaganggu, INTF0 janten set (hiji). Upami I-bit dina SREG sareng INT0 bit dina GIMSK diatur (hiji), MCU bakal luncat kana Interrupt Vector anu pakait. Bandéra diberesihan nalika rutin ngaganggu dilaksanakeun. Cara anu sanésna, bandéra tiasa diberesihan ku nyerat hiji anu logis. Bendéra ieu teras-terasan diberesihan nalika INT0 ngonpigurasi salaku gangguan tingkat.
Bit 5 - PCIF: Pin Ganti Ganggu Bandéra
Nalika logika robih kana pin PCINT [5: 0] janten pemicu ngaganggu, PCIF janten atos (hiji). Upami I-bit dina SREG sareng PCIE bit dina GIMSK diatur (hiji), MCU bakal luncat kana Interrupt Vector anu pakait. Bandéra diberesihan nalika rutin ngaganggu dilaksanakeun. Cara anu sanésna, bandéra tiasa diberesihan ku nyerat salah sahiji anu logis.
PCMSK - Pin Robah Topéng ngadaptar
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | PCMSK |
Maca/Tulis | R | R | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7: 6 - Res: Bit Cadangan
Bit-bit ieu ditangtoskeun pikeun bit dina ATtiny25 / 45/85 sareng bakal teras dibaca salaku nol.
Bit 5: 0 - PCINT [5: 0]: Pin Change Change Aktipkeun Topéng 5: 0
Unggal PCINT [5: 0] bit milih naha pin change interrupt diaktipkeun dina I / O pin anu cocog. Upami PCINT [5: 0] disetél sareng PCIE bit dina GIMSK disetél, gangguan panganteur pin diaktipkeun dina pin I / O anu saluyu. Upami PCINT [5: 0] diberesihan, pin robih ngaganggu dina pin I / O anu dinonaktipkeun.
I / O palabuhan
Bubuka
Sadaya palabuhan AVR gaduh fungsionalitas Baca-Modifikasi-Tulis anu leres nalika dianggo salaku palabuhan I / O digital umum. Ieu ngandung harti yén arah hiji pin port bisa dirobah tanpa ngahaja ngarobah arah sagala pin lianna kalayan parentah SBI na CBI. Sami lumaku lamun ngarobah nilai drive (lamun ngonpigurasi salaku output) atawa ngaktipkeun / nganonaktipkeun resistors pull-up (lamun ngonpigurasi salaku input). Unggal panyangga kaluaran gaduh ciri drive simetris sareng kamampuan tilelep sareng sumber anu luhur. Supir pin cukup kuat pikeun ngajalankeun tampilan LED langsung. Kabéh pin port gaduh resistors pull-up individual selectable kalawan suplai-voltage lalawanan invarian. Sadaya pin I/O gaduh dioda panyalindungan ka VCC sareng Ground sakumaha anu dituduhkeun dina Gambar 10-1. ngarujuk kana "Karakteristik Listrik" dina kaca 161 pikeun daptar lengkep parameter.
Gambar 10-1. I / O Pin Sarimbag Schematic
Kabéh registers na rujukan bit dina bagian ieu ditulis dina formulir umum. Huruf leutik "x" ngagambarkeun hurup panomeran pikeun port, sareng huruf leutik "n" ngagambarkeun jumlah bit. Nanging, nalika nganggo register atanapi bit defines dina program, bentuk anu tepat kedah dianggo. Pikeun example, PORTB3 pikeun bit euweuh. 3 di Port B, di dieu didokumentasikeun umumna salaku PORTxn. Registers I / O fisik sareng lokasi bit didaptarkeun dina "Ngadaptar Pedaran" dina kaca 64.
Tilu lokasi alamat mémori I / O dialokasikeun pikeun unggal palabuan, masing-masing pikeun Data Data - PORTx, Data Diréktori - DDRx, sareng Pin Input Port - PINx. Lokasi Input Pins I / O dibaca hungkul, sedengkeun Data Data sareng Data Diréktur ngadaptar dibaca / nyerat. Nanging, nyerat logika hiji sakedik dina PINx Reg- ister, bakal ngahasilkeun saklar dina bit anu saluyu dina Data register. Salaku tambahan, Pull-up Nonaktipkeun - PUD bit dina MCUCR nganonaktipkeun fungsi tarikan-pikeun sadaya pin di sadaya palabuhan nalika disetél.
Ngagunakeun port I / O salaku General Digital I / O dijelaskeun dina "Pelabuhan salaku Umum Digital I / O" dina kaca 53. Kaseueuran pin port multiplexed sareng fungsi anu sanés pikeun fitur periferal dina alat. Kumaha unggal fungsi silih sambungkeun sareng pin port dijelaskeun dina "Fungsi Port Silih" dina kaca 57. Tingali ka bagian modul masing-masing kanggo pedaran lengkep ngeunaan fungsi alternatip.
Catet yén ngaktipkeun fungsi alternatip tina sababaraha pin port henteu mangaruhan panggunaan pin séjén dina port salaku digital I / O umum.
Palabuan salaku Umum Digital I / O
Palabuhan mangrupikeun palabuhan I / O bi-arah sareng internal internal opsional. Gambar 10-2 nembongkeun katerangan fungsional tina hiji pin I / O-port, di dieu sacara umum disebut Pxn.
Gambar 10-2. Umum Digital I/O(1)
Konpigurasikeun Pin
Unggal pin port diwangun ku tilu bit register: DDxn, PORTxn, sareng PINxn. Sakumaha ditembongkeun dina "Ngadaptar Pedaran" dina kaca 64, bit DDxn diaksés dina alamat DDRx I / O, bit PORTxn di alamat PORTx I / O, sareng bit PINxn di alamat PINx I / O.
Bit DDxn dina DDRx Registrasi milih arah pin ieu. Upami DDxn ditulis logika hiji, Pxn ngonpigurasi salaku pin kaluaran. Upami DDxn ditulis logika nol, Pxn ngonpigurasi salaku pin input.
Upami PORTxn ditulis logika hiji nalika pin ngonpigurasi salaku pin input, résistor resist-up diaktipkeun. Pikeun mareuman résistansi tarikan-pareum, PORTxn kedah ditulis logika enol atanapi pin kedahna dikonfigurasi salaku pin kaluaran. Pin palabuhan parantos dinyatakeun nalika kaayaan ngareset janten aktip, sanaos teu aya jam anu ngajalankeun.
Upami PORTxn ditulis logika hiji nalika pin ngonpigurasi salaku pin output, pin port disetir luhur (hiji). Upami PORTxn ditulis logika enol nalika pin ngonpigurasi salaku pin output, pin port disetir handap (nol).
Ngalihkeun Pin
Nulis logika salah kana PINxn ngaganti nilai PORTxn, bebas tina nilai DDRxn. Catet yén paréntah SBI tiasa dianggo pikeun ngalihkeun sakedik port.
Ngalihkeun Antara Input sareng Kaluaran
Nalika pindah antara kaayaan tri-nagara ({DDxn, PORTxn} = 0b00) sareng kaluaran luhur ({DDxn, PORTxn} = 0b11), kaayaan perantara kalayan boh pull-up diaktipkeun {DDxn, PORTxn} = 0b01) atanapi kaluaran low ({DDxn, PORTxn} = 0b10) kudu lumangsung. Biasana, kaayaan diaktipkeun pull-up téh bisa ditarima pinuh, sabab lingkungan-impedan tinggi moal aya bewara bédana antara supir tinggi kuat sarta pull-up. Upami ieu sanés masalahna, bit PUD dina MCUCR Register tiasa disetél pikeun nganonaktipkeun sadaya pull-up dina sadaya palabuhan.
Ngalihkeun antara input ku pull-up sareng output low ngahasilkeun masalah anu sami. Pamaké kedah nganggo tri-state ({DDxn, PORTxn} = 0b00) atanapi state high output ({DDxn, PORTxn} = 0b10) salaku léngkah panengah.
Méja 10-1 nyimpulkeun sinyal kontrol pikeun nilai pin.
Méja 10-1. Port Pin Konfigurasi
DDxn | PORTxn | PUD
(dina MCUCR) |
Abdi / O | Tarik-up | mairan |
0 | 0 | X | Input | No | Tri-nagara (Hi-Z) |
0 | 1 | 0 | Input | Sumuhun | Pxn bakal sumber ayeuna upami ext. ditarik handap. |
0 | 1 | 1 | Input | No | Tri-nagara (Hi-Z) |
1 | 0 | X | Kaluaran | No | Kaluaran Rendah (Tilelep) |
1 | 1 | X | Kaluaran | No | Kaluaran Tinggi (Sumber) |
Maca Nilai Pin
Bebas tina setting Data Direction bit DDxn, pin port tiasa dibaca ngalangkungan bit PINxn Registrasi. Sakumaha ditembongkeun dina Gambar 10-2, bit PINxn Registrasi sareng kancing sateuacana mangrupikeun sinkronisasi. Ieu diperyogikeun pikeun nyingkahan metastabilitas upami pin fisik ngarobih nilai caket ujung jam internal, tapi ogé ngenalkeun reureuh. Gambar 10-3 nembongkeun diagram timing tina sinkronisasi nalika maca hiji nilai pin dilarapkeun externally. Telat rambatan maksimum sareng minimum dilambangkeun tpd, max sareng tpd, mnt masing-masing.
Pertimbangkeun periode jam dimimitian teu lami saatos ujungna mimiti murag tina jam sistem. Selak ditutup nalika jam kirang, sareng transparan nalika jamna luhur, sakumaha anu ditunjukkeun ku daérah anu teduh tina sinyal "SYNC LATE" Nilai sinyalna dipasang nalika jam sistem janten lemah. Éta dipasang kana PINxn Registrasi dina ujung jam anu positip. Sakumaha dituduhkeun ku dua panah tpd, max sareng tpd, mnt, transisi sinyal tunggal dina pin bakal ditunda antara clock sareng 1½ periode jam sistem gumantung kana waktos negeskeun.
Nalika maca deui parangkat lunak anu ditugaskeun nilai pin, instruksi anu henteu kedah dilebetkeun sapertos anu dituduhkeun dina Gambar 10-4. Parentah kaluar netepkeun sinyal "SYNC LATCH" dina ujung positip jam. Dina hal ieu, tunda waktos tp liwat sinkronisasi mangrupikeun salah sahiji waktos jam sistem.
Kodeu handap example nembongkeun kumaha carana nyetél port B pin 0 jeung 1 luhur, 2 jeung 3 low, jeung nangtukeun pin port tina 4 ka 5 salaku input kalawan pull-up ditugaskeun ka port pin 4. nilai pin hasilna dibaca deui, tapi sakumaha dibahas saméméhna, a instruksi nop kaasup pikeun bisa maca deui nilai nembe ditugaskeun ka sababaraha pin.
Kode Majelis Example(1) |
…
; Nangtukeun pull-up tur nyetel kaluaran luhur ; Nangtukeun arah pikeun pin port ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0) ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) kaluar PORTB, r16 kaluar DDRB, r17 ; Selapkeun nop pikeun singkronisasi henteu ; Baca pin port dina r16,PINB … |
Catetan: Pikeun program assembly, dua registers samentara dipaké pikeun ngaleutikan waktu ti pull-up diatur dina pin 0, 1 jeung 4, nepi ka bit arah diatur bener, nangtukeun bit 2 jeung 3 salaku low jeung ngartikeun ulang bit 0 jeung 1 salaku supir tinggi anu kuat.
Kode C Example |
unsigned char i;
… /* Nangtukeun pull-up tur nyetel kaluaran luhur */ /* Nangtukeun arah pikeun pin port */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Selapkeun nop pikeun singkronisasi*/ _NOP (); /* Baca pin port */ abdi = PINB; … |
Masukan Digital Aktipkeun sareng Modeu Bobo
Salaku ditémbongkeun dina Gambar 10-2, sinyal input digital tiasa clamped ka taneuh di input tina schmitt-pemicu. Sinyal anu dilambangkeun SLEEP dina gambar, diatur ku MCU Sleep Controller dina modeu Power-down pikeun nyegah konsumsi kakuatan anu luhur upami sababaraha sinyal input ditinggalkeun ngambang, atanapi gaduh tingkat sinyal analog anu caket sareng VCC / 2.
SLEEP diganti pikeun pin port diaktipkeun salaku pin interrupt external. Upami pamundut ngaganggu éksternal henteu diaktipkeun, TURUN aktip ogé pikeun pin ieu. TIDU ogé digulingkeun ku sababaraha rupa fungsi alternatip sapertos ditétélakeun dina "Fungsi Port Silih" dina kaca 57.
Upami logika tingkat luhur ("hiji") aya dina pin interupsi éksternal asinkron anu dikonpigurasi salaku "Interrupt on Rising Edge, Falling Edge, atanapi Sakur Robah Logika dina Pin" samentawis interupsi éksternal henteu diaktipkeun, Bandéra Interrupt Eksternal anu pakait bakal diatur nalika resuming tina mode Saré didadarkeun di luhur, sakumaha clampDina mode sare ieu ngahasilkeun parobahan logika anu dipénta.
Pin henteu nyambung
Upami sababaraha pin henteu dianggo, disarankeun pikeun mastikeun yén pin ieu gaduh tingkat anu ditetepkeun. Sanaos kaseueuran input digital dinonaktipkeun dina modeu bobo anu jero sapertos anu ditétélakeun di luhur, masukan anu ngambang kedah dihindari pikeun ngirangan konsumsi ayeuna dina sadaya modeu sanés dimana input digital diaktipkeun (Reset, Mode aktif sareng mode Idle)
Metodeu pangbasajanna pikeun mastikeun tingkat diartikeun tina hiji pin henteu kapake, nyaéta ngaktipkeun internal pull-up. Dina hal ieu, pull-up bakal ditumpurkeun salila reset. Lamun konsumsi kakuatan low salila reset penting, eta disarankeun pikeun ngagunakeun hiji pull-up éksternal atawa pulldown. Nyambungkeun pin henteu kapake langsung ka VCC atanapi GND henteu dianjurkeun, sabab ieu bisa ngabalukarkeun arus kaleuleuwihan lamun pin kasebut ngahaja ngonpigurasi salaku kaluaran.
Fungsi Port Silih
Kaseueuran pin palabuhan ngagaduhan fungsi alternatip salian ti digital digital I / Os. Gambar 10-5 nunjukkeun kumaha sinyal kontrol pin port ti anu disederhanakeun Gambar 10-2 tiasa ditindes ku fungsi alternatip. Sinyal anu overriding tiasa henteu aya dina sadaya pin port, tapi gambarna mangrupikeun gambaran umum anu diterapkeun pikeun sadaya pin port di kulawarga mikrokontroler AVR.
Méja 10-2. Pedaran Umum Sinyal Overriding pikeun Fungsi Silih
Ngaran Sinyal | Nami lengkep | Katerangan |
PUOE | Pull-up Override Aktipkeun | Upami sinyal ieu disetél, aktipitas pull-up dikawasa ku sinyal PUOV. Upami sinyal ieu diberesihan, pull-up diaktipkeun sawaktos
{DDxn, PORTxn, PUD} = 0b010. |
PUOV | Narik-up Nilai Override | Upami PUOE disetél, pull-up diaktipkeun / dinonaktipkeun nalika PUOV disetél / diberesihan, henteu paduli setélan bit DDxn, PORTxn, sareng PUD Register. |
DDOE | Ngalihkeun Pitunjuk Data Aktipkeun | Upami sinyal ieu disetél, Output Driver Enable dikawasa ku sinyal DDOV. Upami sinyal ieu diberesihan, supir Kaluaran diaktipkeun ku bit Daptar DDxn. |
DDOV | Nilai Override Pitunjuk Data | Upami DDOE disetél, Supir Kaluaran diaktipkeun / dinonaktipkeun nalika DDOV disetél / diberesihan, henteu paduli setélan tina bit DDxn Registrasi. |
PVOE | Nolak Nilai Pelabuhan Aktipkeun | Upami sinyal ieu disetél sareng Supir Kaluaran diaktipkeun, nilai port dikawasa ku sinyal PVOV. Upami PVOE diberesihan, sareng Supir Kaluaran diaktipkeun, port Value dikawasa ku bit PORTxn Registrasi. |
PVOV | Nilai Nimpa Nilai Pelabuhan | Upami PVOE disetél, nilai port disetél ka PVOV, henteu paduli setélan tina bit PORTxn Registrasi. |
PTOE | Port Toggle Override Aktipkeun | Upami PTOE parantos disetel, sakedik PORTxn ngadaptar tibalik. |
DIEOE | Masukan Digital Aktipkeun Override Aktipkeun | Upami bit ieu diatur, Digital Input Enable dikawasa ku sinyal DIEOV. Upami sinyal ieu diberesihan, Digital Input Enable ditangtukeun ku kaayaan MCU (Modeu normal, modeu bobo). |
DIEOV | Masukan Digital Aktipkeun Nilai Nimpa | Upami DIEOE diatur, Digital Input diaktipkeun / dinonaktipkeun nalika DIEOV disetél / diberesihan, henteu paduli kaayaan MCU (Modeu normal, modeu bobo). |
DI | Masukan Digital | Ieu Input Digital pikeun fungsi anu péngkolan. Dina gambar, sinyalna disambungkeun kana kaluaran schmitt-pemicu tapi sateuacan sinkronisasi. Kacuali Masukan Digital dianggo salaku sumber jam, modul anu ngagaduhan fungsi alternatip bakal nganggo sinkronisasi nyalira. |
AIO | Input / Kaluaran Analog | Ieu mangrupikeun Analog Input / Kaluaran ka / tina fungsi alternatip. Sinyalna nyambung langsung kana dampal, sareng tiasa dianggo sacara langsung. |
Bagéan ieu di handap ngajelaskeun fungsi-fungsi alternatip pikeun unggal palabuhan, sareng hubunganana sinyal-sinyal overriding kana fungsi alternatip. Tingali kana pedaran fungsi alternatip pikeun langkung jelasna.
Fungsi Silih Port B
Pin Port B kalayan fungsi alternatip ditampilkeun dina Méja 10-3.
tabél 10-3. Port B Pins Fungsi Silih
Port Pin | Fungsi alternatip |
PB5 | ![]() RESET: Reset Pin dW: debugWIRE I / O ADC0: ADC Input Channel 0 PCINT5: Pin Change Interrupt, Sumber 5 |
PB4 | XTAL2: Crystal Oscillator Kaluaran CLKO: Sistem Jam Kaluaran ADC2: ADC Input Channel 2
OC1B: Timer / Counter1 Bandingkeun Pertandingan B Kaluaran PCINT4: Pin Change Interrupt 0, Source 4 |
PB3 | XTAL1: Input osilator Kristal CLKI: Input Jam éksternal ADC3: Saluran Input ADC 3
OC1B: Timer Komplementér / Counter1 Bandingkeun Pertandingan B Kaluaran PCINT3: Pin Change Interrupt 0, Source 3 |
PB2 | SCK: Serial Clock Input ADC1: ADC Input Channel 1
T0: Timer / Counter0 Clock Source USCK: USI Clock (Three Wire Mode) SCL: USI Clock (Two Wire Mode) INT0: External Interrupt 0 Input PCINT2: Pin Change Interrupt 0, Source 2 |
PB1 | MISO: SPI Master Data Input / Slave Data Output AIN1: Analog Comparator, Negative Input OC0B: Timer / Counter0 Compare Match B Output OC1A: Timer / Counter1 Compare Match A Output DO: USI Data Output (Three Wire Mode) PCINT1: Pin Change Interrupt 0, Sumber 1 |
PB0 | MOSI :: Kaluaran Data Master SPI / Masukan Data Budak AIN0: Babandingan Analog, Masukan Positip
OC0A: Timer / Counter0 Bandingkeun cocok A kaluaran OC1A: Komplérérérér Timer / Counter1 Bandingkeun Pertandingan A Kaluaran DI: Masukan Data USI (Mode Kawat Tilu) SDA: USI Data Input (Two Wire Mode) AREF: Éksternal Analog Rujukan PCINT0: Pin Change Interrupt 0, Source 0 |
Port B, Bit 5 - RESET / dW / ADC0 / PCINT5
RESET: Input Reset Éksternal aktip lemah sareng diaktipkeun ku teu diprogram ("1") RSTDISBL Fuse. Pullup diaktipkeun sareng supir kaluaran sareng input digital dipareuman nalika pin dianggo salaku pin RESET.
dW: Nalika debugWIRE Aktipkeun (DWEN) Fuse diprogram sareng Lock bit henteu diprogram, sistem debugWIRE dina alat target diaktipkeun. PIN port RESET dikonfigurasi salaku kawat-AND (open-drain) bi-directional I / O pin kalayan pull-up diaktipkeun sareng janten gateway komunikasi antara target sareng émulator.
ADC0: Parabot Parobah Analog ka Digital, Saluran 0.
PCINT5: Pin Robah Ngaganggu sumber 5.
Port B, Bit 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: Chip Clock Oscillator pin 2. Dipaké salaku pin jam pikeun sadaya sumber jam chip kecuali calibrateble internal RC Oscillator sareng jam éksternal. Nalika dianggo salaku pin jam, pin éta henteu tiasa dianggo salaku pin I / O. Nalika nganggo RC Oscillator kalebet internal atanapi jam Éksternal salaku sumber jam Chip, PB4 janten pin I / O biasa.
CLKO: Jam sistem anu tiasa janten kaluaran dina pin PB4. Jam sistem anu dibagi bakal kaluaran upami CKOUT Fuse diprogram, henteu paduli setélan PORTB4 sareng DDB4. Éta ogé bakal kaluaran nalika ngareset.
ADC2: Parabot Parobah Analog ka Digital, Saluran 2.
OC1B: Output Compare Match output: Pin PB4 tiasa janten kaluaran éksternal pikeun Timer / Counter1 Compare Match B nalika ngonpigurasi salaku output (set DDB4). PIN OC1B ogé pin kaluaran kanggo fungsi pamasa modeu PWM.
PCINT4: Pin Robah Ngaganggu sumber 4.
Port B, Bit 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: Chip Clock Oscillator pin 1. Dipaké pikeun sadaya sumber jam chip kecuali calibrateble RC osilator internal. Nalika dianggo salaku pin jam, pin éta henteu tiasa dianggo salaku pin I / O.
CLKI: Jam Input tina sumber jam éksternal, tingali "Jam Éksternal" dina kaca 26.
ADC3: Parabot Parobah Analog ka Digital, Saluran 3.
OC1B: Kaluaran Terbalik Bandingkeun kaluaran Pertandingan: Pin PB3 tiasa dianggo salaku kaluaran éksternal pikeun Timer / Counter1 Bandingkeun Pertandingan B nalika ngonpigurasi salaku kaluaran (set DDB3). PIN OC1B ogé pin kaluaran tibalik pikeun fungsi timer modeu PWM.
PCINT3: Pin Robah Ngaganggu sumber 3.
Port B, Bit 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: kaluaran Master Jam, pin input Jam Budak pikeun kanal SPI. Nalika SPI diaktipkeun salaku Budak, pin ieu ngonpigurasi salaku input paduli setélan DDB2. Nalika SPI diaktipkeun salaku Master, arah data pin ieu dikawasa ku DDPB2. Nalika pin dipaksa ku SPI janten input, pull-up masih tiasa dikontrol ku bit PORTB2.
ADC1: Parabot Parobah Analog ka Digital, Saluran 1.
T0: Sumber counter Timer / Counter0.
USCK: Modeu tilu-kawat Universal Serial Interface Clock.
SCL: Modeu dua kawat Jam Serial pikeun modeu Dua-kawat USI.
INT0: Sumber Interrupt External.
PCINT2: Pin Robah Ngaganggu sumber 2.
Port B, Bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: Input Data Master, pin kaluaran Data Budak pikeun kanal SPI. Nalika SPI diaktipkeun salaku Master, pin ieu ngonpigurasi salaku input paduli setélan DDB1. Nalika SPI diaktipkeun salaku Budak, arah data pin ieu dikawasa ku DDB1. Nalika pin dipaksa ku SPI janten input, pull-up masih tiasa dikontrol ku bit PORTB1.
AIN1: Input Babandingan Analog Negatip. Konpigurasikeun pin port salaku input ku internal pull-up dipareuman pikeun nyegah fungsi port digital tina ngaganggu fungsi Analog Comparator.
OC0B: Kaluaran Bandingkeun kaluaran Pertandingan. Pin PB1 tiasa dianggo salaku kaluaran éksternal pikeun Timer / Counter0 Compare Match B. Pin PB1 kedah ngonpigurasi salaku kaluaran (set DDB1 (hiji)) kanggo ngalaksanakeun fungsi ieu. PIN OC0B ogé pin kaluaran pikeun fungsi modeu PWM mode.
OC1A: Output Compare Match output: Pin PB1 tiasa janten kaluaran éksternal pikeun Timer / Counter1 Compare Match B nalika ngonpigurasi salaku output (set DDB1). PIN OC1A ogé pin kaluaran kanggo fungsi timer modeu PWM.
DO: Modeu tilu-kawat Universal Serial Interface Data output. Modeu tilu kawat Kaluaran data nimpa nilai PORTB1 sareng éta disetir ka port nalika arah data bit DDB1 diatur (hiji). PORTB1 masih ngamungkinkeun tarikan-up, upami arahna masukan sareng PORTB1 diatur (hiji).
PCINT1: Pin Robah Ngaganggu sumber 1.
Port B, Bit 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: SPI Master Data output, Slave Data input pikeun SPI channel. Nalika SPI diaktipkeun salaku Budak, pin ieu ngonpigurasi salaku input paduli setélan DDB0. Nalika SPI diaktipkeun salaku Master, arah data pin ieu dikawasa ku DDB0. Nalika pin dipaksa ku SPI janten input, pull-up masih tiasa dikontrol ku bit PORTB0.
AIN0: Analog Comparator Positive Input. Konpigurasikeun pin port salaku input ku internal pull-up dipareuman pikeun nyegah fungsi port digital tina ngaganggu fungsi Analog Comparator.
OC0A: Kaluaran Bandingkeun kaluaran Pertandingan. Pin PB0 tiasa dianggo salaku kaluaran éksternal pikeun Timer / Counter0 Compare Match A nalika ngonpigurasi salaku kaluaran (set DDB0 (hiji)). PIN OC0A ogé pin kaluaran kanggo fungsi pamasa modeu PWM.
OC1A: Kaluaran Terbalik Bandingkeun kaluaran Pertandingan: Pin PB0 tiasa dianggo salaku kaluaran éksternal pikeun Timer / Counter1 Bandingkeun Pertandingan B nalika ngonpigurasi salaku kaluaran (set DDB0). PIN OC1A ogé pin kaluaran tibalik pikeun fungsi timer modeu PWM.
SDA: Modeu Dua-kawat Serial Interface Data.
AREF: Rujukan Analog éksternal pikeun ADC. Pullup jeung supir kaluaran ditumpurkeun on PB0 nalika pin dipaké salaku rujukan éksternal atanapi internal Voltage Rujukan jeung kapasitor éksternal dina pin AREF.
DI: Input Data dina modeu Three-wire USI. Modeu USI Three-wire henteu ngagentos fungsi port normal, janten pin kedah dikonfigurasi salaku input kanggo fungsi DI.
PCINT0: Pin Robah Ngaganggu sumber 0.
Méja 10-4 jeung Méja 10-5 nyaritakeun fungsi alternatip tina Port B kana sinyal overriding anu dipidangkeun dina Gambar 10-5 dina kaca 58.
tabél 10-4. Sinyal Overriding pikeun Fungsi Alternatif dina PB[5:3]
Ngaran Sinyal | PB5 / RESET / ADC0 / PCINT5 | PB4/ADC2/XTAL2/ OC1B/PCINT4 | PB3/ADC3/XTAL1/ OC1B/PCINT3 |
PUOE | ![]() |
0 | 0 |
PUOV | 1 | 0 | 0 |
DDOE | RSTDISBL(1) • DWEN(1) | 0 | 0 |
DDOV | debugWire Transmit | 0 | 0 |
PVOE | 0 | OC1B Aktipkeun | ![]() OC1B Aktipkeun |
PVOV | 0 | OC1B | OC1B |
PTOE | 0 | 0 | 0 |
DIEOE | ![]() RSTDISBL(1) + (PCINT5 • PCIE + ADC0D) |
PCINT4 • PCIE + ADC2D | PCINT3 • PCIE + ADC3D |
DIEOV | ADC0D | ADC2D | ADC3D |
DI | Input PCINT5 | Input PCINT4 | Input PCINT3 |
AIO | Masang RESET, Masukan ADC0 | Masukan ADC2 | Masukan ADC3 |
Catetan: nalika sekering "0" (diprogram).
tabél 10-5. Sinyal Overriding pikeun Fungsi Alternatif dina PB[2:0]
Ngaran Sinyal | PB2/SCK/ADC1/T0/ USCK/SCL/INT0/PCINT2 | PB1/MISO/DO/AIN1/ OC1A/OC0B/PCINT1 | PB0/MOSI/DI/SDA/AIN0/AR EF/OC1A/OC0A/
PCINT0 |
PUOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
PUOV | 0 | 0 | 0 |
DDOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
DDOV | (USI_SCL_HOLD + PORTB2) • DDB2 | 0 | ![]() ![]() (SDA + PORTB0) • DDB0 |
PVOE | USI_TWO_WIRE • DDB2 | OC0B Aktipkeun + OC1A Aktipkeun + USI_THREE_WIRE | ![]() OC0A Aktipkeun + OC1A Aktipkeun + (USI_TWO_WIRE DDB0) |
PVOV | 0 | OC0B + OC1A + DO | ![]() OC0A + OC1A |
PTOE | USITC | 0 | 0 |
DIEOE | PCINT2 • PCIE + ADC1D + USISIE | PCINT1 • PCIE + AIN1D | PCINT0 • PCIE + AIN0D + USISIE |
DIEOV | ADC1D | AIN1D | AIN0D |
DI | T0 / USCK / SCL / INT0 /
Input PCINT2 |
Input PCINT1 | DI / SDA / PCINT0 Input |
AIO | Masukan ADC1 | Input Babandingan Analog Negatip | Masukan Peunteun Analog Positip |
Ngadaptar Pedaran
MCUCR - MCU Kontrol ngadaptar
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | Awak | ISC01 | ISC00 | MCUCR |
Maca/Tulis | R | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | R | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 6 - PUD: Tarik-up Pareuman
Nalika bit ieu dituliskeun ka hiji, pull-up dina port I / O ditumpurkeun sanajan DDxn sareng PORTxn Registrés dikonfigurasi pikeun ngaktipkeun pull-up ({DDxn, PORTxn} = 0b01). Tingali "Konpigurasikeun Pin" dina kaca 54 pikeun langkung jelasna ngeunaan fitur ieu.
PORTB - Port B Data ngadaptar
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 | PORTB |
Maca/Tulis | R | R | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - Daptar Arah Data Port B
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | DDRB |
Maca/Tulis | R | R | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - Alamat Input Pins B
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 | PINB |
Maca/Tulis | R | R | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | Urang Sunda/W | |
Nilai awal | 0 | 0 | N/A | N/A | N/A | N/A | N/A | N/A |
8-bit Timer / Counter0 sareng PWM
Fitur
Dua Kaluaran Banding Bebas
Kaluaran Buffered Kaluaran Bandingkeun ngadaptar
Hapus Timer dina Bandingkeun Pertandingan (Otomatis Muat Ulang)
Glitch Free, Phase True Pulse Width Modulator (PWM)
Mangsa PWM anu variabel
Generator Frékuénsi
Tilu Sumber Interrupt Independent (TOV0, OCF0A, sareng OCF0B)
Leuwihview
Timer / Counter0 mangrupikeun tujuan umum modul 8-bit Timer / Counter, sareng dua Unit Bandingkeun Kaluaran bebas, sareng dukungan PWM. Éta ngamungkinkeun waktos pelaksanaan program anu akurat (manajemén acara) sareng generasi gelombang.
Diagram blok saderhana tina Timer / Counter 8-bit dipidangkeun dina Gambar 11-1. Pikeun panempatan pin I / O saleresna, tingal "Pinout ATtiny25 / 45/85" dina kaca 2. Daptar I / O anu tiasa diaksés ku CPU, kalebet bitis I / O sareng pin I / O, ditingalikeun dina kandel. Khusus pikeun ngadaptar I / O khusus alat sareng lokasi bit didaptarkeun di "Déskripsi Daptar" dina kaca 77.
Timer / Counter (TCNT0) sareng Output Compare Registers (OCR0A sareng OCR0B) mangrupikeun register 8-bit. Paménta interupsi (disingget jadi Int.Req. dina gambar) Sinyal sadayana katingali dina Timer Interrupt Flag Register (TIFR). Kabéh interrupts anu individual masked kalawan Timer Interrupt Mask Register (TIMSK). TIFR na TIMSK teu ditémbongkeun dina gambar.
Timer / Counter tiasa di-clocked sacara internal, ngalangkungan prescaler, atanapi ku sumber jam éksternal dina pin T0. Blok logika Clock Select ngadalikeun sumber jam sareng ujung mana anu dianggo ku Timer / Counter pikeun ningkatkeun (atanapi ngirangan) nilaina. Timer / Counter teu aktip lamun euweuh sumber jam dipilih. Kaluaran tina logika Clock Select disebut jam timer (clkT0).
Dobel Kaluaran Bandingkeun buffered dobel (OCR0A sareng OCR0B) dibandingkeun sareng nilai Timer / Counter sepanjang waktos. Hasil tina ngabandingkeun tiasa dianggo ku Waveform Generator pikeun ngahasilkeun PWM atanapi kaluaran fre- quency kaluaran dina pin Output Compare (OC0A sareng OC0B). Tingali "Output Compare Unit" dina kaca 69. pikeun detil. Acara Bandingkeun Pertandingan ogé bakal nyetél Bandingkeun Bandéra (OCF0A atanapi OCF0B) anu tiasa dianggo pikeun ngahasilkeun paménta ngaganggu Kaluaran.
Watesan
Seueur referensi daptar sareng bit dina bagian ieu anu ditulis dina bentuk umum. Bilangan handap "n" ngagantikeun nomer Timer / Counter, dina hal ieu 0. Bilangan handap "x" ngagantikeun Output Compare Unit, dina hal ieu Bandingkeun Unit A atanapi Bandingkeun Unit B. Nanging, nalika nganggo register atanapi bit ngahartikeun dina program, bentuk anu pasti kedah dianggo, nyaéta, TCNT0 kanggo ngakses nilai counter Timer / Counter0 sareng sajabina.
Definisi dina Méja 11-1 ogé dipaké sacara éksténsif sapanjang dokumén.
Tabél 11-1. Watesan
Angger | Katerangan |
BURUK | Konter na ngahontal BOTTOM nalika janten 0x00 |
MAX | Konter na ngahontal MAXimum nalika janten 0xFF (decimal 255) |
TOP | Konter ngahontal TOP nalika janten sami sareng nilai pangluhurna dina sekuen hitungan. Nilai TOP tiasa ditugaskeun janten nilai tetep 0xFF (MAX) atanapi nilai anu disimpen dina ngadaptar OCR0A. Ngerjakeunana gumantung kana modél operasi |
Timer / Kontra Prescaler sareng Sumber Jam
Timer / Counter tiasa diukur ku sumber jam internal atanapi éksternal. Sumber jam dipilih ku logika Clock Select anu dikawasa ku Clock Select (c) bit anu aya dina Timer / Counter0 Control Register (TCCR0B).
Sumber Jam Internal sareng Prescaler
Timer / Counter0 tiasa clock langsung ku jam sistem (ku netepkeun CS0 [2: 0] = 1). Ieu nyadiakeun operasi panggancangna, kalawan timer maksimum / frékuénsi jam counter sarua jeung frékuénsi jam sistem (fCLK_I / O). Alternatipna, salah sahiji tina opat ketok ti prescaler bisa dipaké salaku sumber jam. Jam prescaled boga frékuénsi boh
Reset prescaler
Prescaler bébas ngajalankeun, nyaéta beroperasi sacara mandiri tina logika Clock Select of Timer/Counter0. Kusabab prescaler teu kapangaruhan ku timer / counter urang pilih jam, kaayaan prescaler bakal boga implikasi pikeun situasi dimana hiji jam prescaled dipaké. Hiji exampLe tina artefak prescaling nyaéta nalika timer / counter diaktipkeun jeung clocked ku prescaler nu (6 > CS0[2:0] > 1). Jumlah siklus jam sistem ti nalika timer diaktipkeun ka cacah kahiji lumangsung bisa jadi ti 1 nepi ka N + 1 siklus sistem jam, dimana N sarua prescaler divisor (8, 64, 256, atawa 1024).
Tiasa waé nganggo Prescaler Reset pikeun singkronisasi Timer / Counter pikeun ngajalankeun program.
Sumber Jam Éksternal
Hiji sumber jam éksternal dilarapkeun ka pin T0 bisa dipaké salaku timer / counter jam (clkT0). Pin T0 nyaéta sampdipingpin sakali unggal siklus jam sistem ku logika sinkronisasi pin. Anu disingkronkeun (sampled) sinyal lajeng diliwatan
ngaliwatan detektor tepi. Gambar 11-2 nembongkeun diagram blok sarua fungsi tina sinkronisasi T0 jeung logika detektor ujung. The registers nu clocked di ujung positif jam sistem internal (clkI / O). Kancingna transparan dina période luhur jam sistem internal.
Detektor ujung ngahasilkeun hiji pulsa clkT0 pikeun unggal positip (CS0 [2: 0] = 7) atanapi négatip (CS0 [2: 0] = 6) ujung anu dideteksi.
Daptar OCR0x dobel disangga nalika nganggo modeu Pulse Width Modulation (PWM). Pikeun modeu operasi normal sareng Clear Timer on Compare (CTC), buffering dobel dinonaktipkeun. Buffing ganda nyinkronkeun pembaruan tina OCR0x Compare Register ka luhur atanapi handap tina urutan cacah. Sinkronisasi nyegah ayana pulsa ganjil, non-simétris PWM, sahingga ngajantenkeun kaluaran bebas glitch.
Aksés OCR0x Registri sigana rumit, tapi ieu henteu leres. Nalika buffering dobel diaktipkeun, CPU ngagaduhan aksés kana OCR0x Buffer Registrasi, sareng upami buffering dobel dinonaktipkeun CPU bakal aksés langsung kana OCR0x.
Kaluaran Kaluaran Bandingkeun
Dina modeu generasi gelombang non-PWM, kaluaran pertandingan tina komparator tiasa dipaksakeun ku nyerat hiji kana bit Force Output Compare (FOC0x). Forcing Compare Match moal nyetél Bandéra OCF0x atanapi ngamuat deui / mupus waktosna, tapi pin OC0x bakal diénggalan saolah-olah aya Bandingkeun Pertandingan anu nyata parantos lumangsung (setélan bit COM0x [1: 0] ngahartikeun naha pin OC0x parantos disetél, diberesihan atanapi togel).
Bandingkeun Blok Pertandingan ku TCNT0 Tulis
Sadaya operasi nyerat CPU kana ngadaptar TCNT0 bakal ngahalangan sagala Bandingkeun Pertandingan anu kajantenan dina siklus jam otomatis salajengna, bahkan nalika timer dieureunkeun. Fitur ieu ngamungkinkeun OCR0x tiasa diinisialisasi kana nilai anu sami sareng TCNT0 tanpa micu ngaganggu nalika jam Timer / Counter diaktipkeun.
Ngagunakeun Output Compare Unit
Kusabab nyerat TCNT0 dina modeu operasi naon waé bakal ngahalangan sadaya Bandingkeun Pertandingan pikeun hiji siklus jam otomatis, aya résiko dilebetkeun nalika ngarobah TCNT0 nalika ngagunakeun Kaluaran Bandingkeun Unit, sacara mandiri naha Timer / Counter ngajalankeun atanapi henteu. Upami nilai anu ditulis kana TCNT0 sami sareng nilai OCR0x, Bandingkeun Pertandingan bakal lasut, ngahasilkeun generasi gelombang anu teu leres. Nya kitu, entong nyerat nilai TCNT0 sami sareng BOTTOM nalika loketna turun-kaitung.
Setup tina OC0x kedah dilakukeun sateuacan netepkeun Data Diréktori ngadaptar pikeun pin port pikeun kaluaran. Cara panggampangna pikeun netepkeun nilai OC0x nyaéta ngagunakeun bit strobo Force Output Compare (FOC0x) dina modeu Normal. Nu ngadaptar OC0x ngajaga nilaina sanajan ngarobah antara modeu Waveform Generation.
Ati-ati yén COM0x [1: 0] bit henteu disangga dua kali sasarengan sareng nilai ngabandingkeun. Ngarobih bit COM0x [1: 0] bakal langsung pangaruh.
Bandingkeun Unit Kaluaran Pertandingan
Bit Compare Mode output (COM0x [1: 0]) bit gaduh dua fungsi. Waveform Generator ngagunakeun bit COM0x [1: 0] pikeun nangtoskeun kaayaan Output Compare (OC0x) dina Bandingkeun Pertandingan salajengna. Ogé, bit COM0x [1: 0] ngatur sumber kaluaran pin OC0x. Gambar 11-6 nembongkeun skéma saderhana tina logika anu kapangaruhan ku setting COM0x [1: 0] bit. I / O Register, I / O bit, sareng I / O pin dina gambar ditampilkeun dina kandel. Ukur bagian-bagian umum tina I / O Port Control Register (DDR sareng PORT) anu kapangaruhan ku COM0x [1: 0] bit anu ditingalikeun. Nalika ngarujuk kana kaayaan OC0x, référénsi na pikeun internal ngadaptar OC0x, sanés pin OC0x. Upami sistem reset lumangsung, ngadaptar OC0x disetél deui ka "0".
Nalika OC0A / OC0B disambungkeun kana pin I / O, fungsi bit COM0A [1: 0] / COM0B [1: 0] gumantung kana setting bit WGM0 [2: 0]. Méja 11-2 nembongkeun fungsionalitas bit COM0x [1: 0] nalika bit WGM0 [2: 0] disetel ka modeu normal atanapi CTC (non-PWM).
tabél 11-2. Bandingkeun Output Mode, non-PWM Mode
COM0A1 COM0B1 | COM0A0 COM0B0 | Katerangan |
0 | 0 | Operasi port normal, OC0A / OC0B dipegatkeun. |
0 | 1 | Toggle OC0A / OC0B dina Bandingkeun Pertandingan |
1 | 0 | Hapus OC0A / OC0B dina Bandingkeun Pertandingan |
1 | 1 | Atur OC0A / OC0B dina Bandingkeun Pertandingan |
Méja 11-3 nembongkeun fungsionalitas bit COM0x [1: 0] nalika bit WGM0 [2: 0] disetel ka modeu PWM gancang.
tabél 11-3. Bandingkeun Mode Kaluaran, Mode PWM Gancang(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Katerangan |
0 | 0 | Operasi port normal, OC0A / OC0B dipegatkeun. |
0 | 1 | Ditangtayungan |
1 | 0 | Hapus OC0A / OC0B dina Bandingkeun Pertandingan, atur OC0A / OC0B di BOTTOM (modeu non-inverting) |
1 | 1 | Atur OC0A / OC0B dina Compare Match, jelas OC0A / OC0B di BOTTOM (mode inverting) |
Catetan: Kasus khusus lumangsung nalika OCR0A atanapi OCR0B sami sareng TOP sareng COM0A1/COM0B1 disetel. Dina hal ieu, patandingan banding teu dipalire, tapi set atanapi jelas dilakukeun di BOTTOM. Tingali "Mode PWM Gancang" dina kaca 73 pikeun leuwih rinci.
Méja 11-4 nembongkeun fungsionalitas bit COM0x [1: 0] nalika bit WGM0 [2: 0] disetel kana fase modeu PWM anu leres.
tabél 11-4. Bandingkeun Mode Kaluaran, Fase Mode PWM Bener(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Katerangan |
0 | 0 | Operasi port normal, OC0A / OC0B dipegatkeun. |
0 | 1 | Ditangtayungan |
1 | 0 | Hapus OC0A / OC0B dina Bandingkeun Pertandingan nalika diitung-up. Atur OC0A / OC0B dina Bandingkeun Pertandingan nalika turun-ngetang. |
1 | 1 | Atur OC0A / OC0B dina Bandingkeun Pertandingan nalika diitung-up. Hapus OC0A / OC0B dina Bandingkeun Pertandingan nalika turun-ngetung. |
Catetan: 1. Kasus husus lumangsung nalika OCR0A atanapi OCR0B sarua TOP tur COM0A1 / COM0B1 diatur. Dina hal ieu, Pertandingan Bandingkeun teu dipalire, tapi set atanapi jelas dilakukeun dina TOP. Tingali "Mode PWM Leres Fase" dina kaca 74 pikeun leuwih rinci.
Bit 3: 2 - Res: Bit Cadangan
Bit-bit ieu ditangtoskeun pikeun bit dina ATtiny25 / 45/85 sareng bakal teras dibaca salaku nol.
Bit 1: 0 - WGM0 [1: 0]: Modeu Generasi Waveform
Digabungkeun sareng bit WGM02 anu aya dina TCCR0B Registrasi, bit-bit ieu ngatur urutan cacah tina lokét, sumber pikeun nilai counter maksimum (TOP), sareng jinis generasi gelombang naon anu tiasa dianggo, tingali Méja 11-5. Modeu operasi anu dirojong ku unit Timer / Counter nyaéta: Modeu normal (counter), Clear Timer on Compare Match (CTC) mode, sareng dua jinis mode Pulse Width Modulation (PWM) (tingali "Modeu Operasi" dina kaca 71).
tabél 11-5. Waveform Generation Mode Bit Katerangan
Modus | WGM 02 | WGM 01 | WGM 00 | Timer / Mode Kontra Operasi | TOP | Pembaruan OCRx di | Bendera TOV disetél |
0 | 0 | 0 | 0 | Biasa | 0xFF | Geura | MAX(1) |
1 | 0 | 0 | 1 | PWM, Fase Leres | 0xFF | TOP | BURUK(2) |
2 | 0 | 1 | 0 | CTC | OCRA | Geura | MAX(1) |
3 | 0 | 1 | 1 | PWM gancang | 0xFF | BURUK(2) | MAX(1) |
4 | 1 | 0 | 0 | Ditangtayungan | – | – | – |
5 | 1 | 0 | 1 | PWM, Fase Leres | OCRA | TOP | BURUK(2) |
6 | 1 | 1 | 0 | Ditangtayungan | – | – | – |
7 | 1 | 1 | 1 | PWM gancang | OCRA | BURUK(2) | TOP |
Bit 7 - FOC0A: Output Force Bandingkeun A
Bit FOC0A ngan aktif nalika bit WGM netepkeun modeu non-PWM.
Nanging, pikeun mastikeun kasaluyuan sareng alat kahareup, bit ieu kedah disetel ka nol nalika TCCR0B ditulis nalika operasi dina modeu PWM. Nalika nyerat anu logis kana bit FOC0A, Bandingkeun Match langsung dipaksa dina unit Waveform Generation. Kaluaran OC0A dirobah numutkeun setting COM0A [1: 0] bit na. Catet yén bit FOC0A dilaksanakeun salaku strobol. Kusabab éta mangrupikeun nilai anu aya dina bit COM0A [1: 0] anu nangtoskeun pangaruh tina ngabandingkeun paksaan.
Strobo FOC0A moal ngahasilkeun gangguan, ogé moal mupus timer dina modeu CTC nganggo OCR0A salaku TOP. Bit FOC0A sok dibaca salaku nol.
Bit 6 - FOC0B: Output Force Bandingkeun B
Bit FOC0B ngan aktip nalika bit WGM netepkeun modeu non-PWM.
Nanging, pikeun mastikeun kasaluyuan sareng alat kahareup, bit ieu kedah disetel ka nol nalika TCCR0B ditulis nalika operasi dina modeu PWM. Nalika nyerat anu logis kana bit FOC0B, Pertandingan Bandingkeun langsung dipaksa dina unit Waveform Generation. Kaluaran OC0B dirobah numutkeun setting COM0B na [1: 0] bit. Catet yén bit FOC0B dilaksanakeun salaku strobol. Ku sabab éta mangrupikeun nilai anu aya dina bit COM0B [1: 0] anu nangtoskeun pangaruh bandingkeun paksa.
Strobo FOC0B moal ngahasilkeun gangguan, ogé bakal mupus timer dina modeu CTC nganggo OCR0B salaku TOP.
Bit FOC0B sok dibaca salaku nol.
Bit 5: 4 - Res: Bit Cadangan
Bit-bit ieu ditangtoskeun pikeun bit dina ATtiny25 / 45/85 sareng bakal teras dibaca salaku nol.
Bit 3 - WGM02: Waveform Generation Mode
Tingali pedaran dina "TCCR0A - Timer / Counter Control register A" dina kaca 77.
Bit 2: 0 - CS0 [2: 0]: Jam Pilih
Tilu bit Clock Select milih sumber jam anu bakal dianggo ku Timer / Counter.
tabél 11-6. Jam Pilih Pedaran Bit
CS02 | CS01 | CS00 | Katerangan |
0 | 0 | 0 | Teu aya sumber jam (Timer / Counter dieureunkeun) |
0 | 0 | 1 | clkI/O/(No prescaling) |
0 | 1 | 0 | clkI/O/8 (Ti prescaler) |
0 | 1 | 1 | clkI/O/64 (Ti prescaler) |
1 | 0 | 0 | clkI/O/256 (Ti prescaler) |
1 | 0 | 1 | clkI/O/1024 (Ti prescaler) |
1 | 1 | 0 | Sumber jam éksternal dina pin T0. Jam dina ujung murag. |
1 | 1 | 1 | Sumber jam éksternal dina pin T0. Jam dina ujung naék. |
Upami modeu pin éksternal dianggo pikeun Timer / Counter0, transisi dina pin T0 bakal jarum jam counter sanajan pin na ngonpigurasi salaku kaluaran. Fitur ieu ngamungkinkeun kontrol parangkat lunak pikeun ngitung.
Counter sareng Bandingkeun Unit
Operasi umum Timer / Counter1 dijelaskeun dina modeu asinkron sareng operasi dina modeu synchro- nous disebatkeun ngan upami aya bédana antara dua modeu ieu. Gambar 12-2 nembongkeun Timer / Counter 1 sinkronisasi register block diagram sareng telat sinkronisasi di antara register. Catet yén sadaya detil gerbang jam teu ditampilkeun dina gambar. Nilai daptar Timer / Counter1 ngaliwat daptar pendaptaran sinkronisasi internal, anu nyababkeun reureuh sinkronisasi input, sateuacan mangaruhan operasi lokét. Anu ngadaptar TCCR1, GTCCR, OCR1A, OCR1B, sareng OCR1C tiasa dibaca deui saatos nyerat daptar. Nilai baca deui ditunda pikeun daptar Timer / Counter1 (TCNT1) sareng panji (OCF1A, OCF1B, sareng TOV1), kusabab sinkronisasi input sareng output.
Timer / Counter1 nampilkeun resolusi luhur sareng panggunaan akurasi tinggi kalayan kasempetan prescaling anu langkung handap. Éta ogé tiasa ngadukung dua akurat, kecepatan luhur, 8-bit Pulsa Width Modulator nganggo jam gancang dugi ka 64 MHz (atanapi 32 MHz dina Mode Laju Rendah). Dina modeu ieu, Timer / Counter1 sareng kaluaran ngabandingkeun pendaptaran janten PWM nyalira dual sareng kaluaran non-tumpang tindih sareng inverted Ngarujuk kana kaca 86 pikeun pedaran lengkep ngeunaan fungsi ieu. Nya kitu, kasempetan prescaling anu luhur ngajantenkeun unit ieu berguna kanggo fungsi kecepatan handap atanapi fungsi waktos anu tepat kalayan tindakan anu jarang.
Gambar 12-2. Timer / counter 1 Sinkronisasi ngadaptar Blok Diagram.
Timer / Counter1 sareng prescaler ngamungkinkeun ngajalankeun CPU tina sumber jam mana waé samentawis prescaler dioperasikeun dina gancang 64 MHz (atanapi 32 MHz dina Mode Speed Low) jam PCK dina modeu asinkron.
Catet yén frékuénsi jam sistem kedah langkung handap tina sapertilu frékuénsi PCK. Mékanisme sinkronisasi Timer / Counter1 asinkron peryogi sahenteuna dua ujung PCK nalika jam sistem tinggi. Upami frékuénsi jam sistem teuing, éta mangrupikeun résiko data atanapi nilai kontrol leungit.
Nyaéta Gambar 12-3 nembongkeun diagram blok pikeun Timer / Counter1.
tabél 12-1. Bandingkeun Mode Pilih dina PWM Mode
COM1x1 | COM1x0 | Pangaruh kana Kaluaran Bandingkeun Pin |
0 | 0 | OC1x teu nyambung. OC1x teu nyambung. |
0 | 1 | OC1x diberesihan dibandingkeun pertandingan. Atur irahaTCNT1 = $ 00. OC1x disetél dina ngabandingkeun pertandingan. Diberesihan nalika TCNT1 = $ 00. |
1 | 0 | OC1x diberesihan dibandingkeun pertandingan. Atur nalika TCNT1 = $ 00. OC1x teu nyambung. |
1 | 1 | OC1x Atur dina ngabandingkeun pertandingan. Diberesihkeun nalika TCNT1 = $ 00. OC1x teu nyambung. |
Ciri ADC
tabél 21-8. Ciri ADC, Saluran Tunggal. TA = -40°C nepi ka +85°C
Lambang | Parameter | kaayaan | Min | Tip | Max | Hijian |
Resolusi | 10 | bit | ||||
Akurasi mutlak (Kalebet INL, DNL, sareng Quantization, Gain sareng kasalahan Offset) | VREF = 4V, VCC = 4V,
Jam ADC = 200 kHz |
2 | LSB | |||
VREF = 4V, VCC = 4V,
Jam ADC = 1 MHz |
3 | LSB | ||||
VREF = 4V, VCC = 4V,
Jam ADC = 200 kHz Mode Réduksi Noise |
1.5 | LSB | ||||
VREF = 4V, VCC = 4V,
Jam ADC = 1 MHz Mode Réduksi Noise |
2.5 | LSB | ||||
Integral Non-linearity (INL) (Akurasi saatos offset sareng kéngingkeun kalibrasi) | VREF = 4V, VCC = 4V,
Jam ADC = 200 kHz |
1 | LSB | |||
Bédana Non-linearity (DNL) | VREF = 4V, VCC = 4V,
Jam ADC = 200 kHz |
0.5 | LSB | |||
Ngala Kasalahan | VREF = 4V, VCC = 4V,
Jam ADC = 200 kHz |
2.5 | LSB | |||
Kasalahan Offset | VREF = 4V, VCC = 4V,
Jam ADC = 200 kHz |
1.5 | LSB | |||
Waktos Konversi | Konversi Ngajalankeun Gratis | 14 | 280 | s | ||
Frékuénsi Jam | 50 | 1000 | kHz | |||
VIN | Masukan Voltage | GND | VREF | V | ||
Lebetkeun Bandwidth | 38.4 | kHz | ||||
AREF | Rujukan éksternal Voltage | 2.0 | VCC | V | ||
VINT | Internal Voltage Rujukan | 1.0 | 1.1 | 1.2 | V | |
Rujukan 2.56V internal (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | 32 | kΩ | ||||
HUJAN | Résistansi Input Analog | 100 | MΩ | |||
Kaluaran ADC | 0 | 1023 | LSB |
Catetan: 1. Niley ngan ukur pedoman.
tabél 21-9. Ciri ADC, Saluran diferensial (Mode Unipolar). TA = -40°C nepi ka +85°C
Lambang | Parameter | kaayaan | Min | Tip | Max | Hijian |
Resolusi | Keuntungan = 1x | 10 | bit | |||
Keuntungan = 20x | 10 | bit | ||||
Akurasi mutlak (Kalebet INL, DNL, sareng
Quantization, Gain sareng Kasalahan Offset) |
Keuntungan = 1x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
10.0 | LSB | |||
Keuntungan = 20x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
20.0 | LSB | ||||
Integral Non-Linearity (INL) (Akurasi saatos offset sareng Gain Calibration) | Keuntungan = 1x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
4.0 | LSB | |||
Keuntungan = 20x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
10.0 | LSB | ||||
Ngala Kasalahan | Keuntungan = 1x | 10.0 | LSB | |||
Keuntungan = 20x | 15.0 | LSB | ||||
Kasalahan Offset | Keuntungan = 1x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
3.0 | LSB | |||
Keuntungan = 20x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
4.0 | LSB | ||||
Waktos Konversi | Konversi Ngajalankeun Gratis | 70 | 280 | s | ||
Frékuénsi Jam | 50 | 200 | kHz | |||
VIN | Masukan Voltage | GND | VCC | V | ||
VDIFF | Input diferensial Voltage | VREF / gain | V | |||
Lebetkeun Bandwidth | 4 | kHz | ||||
AREF | Rujukan éksternal Voltage | 2.0 | VCC - 1.0 | V | ||
VINT | Internal Voltage Rujukan | 1.0 | 1.1 | 1.2 | V | |
Rujukan 2.56V internal (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Résistansi Input Rujukan | 32 | kΩ | |||
HUJAN | Résistansi Input Analog | 100 | MΩ | |||
Kaluaran Konversi ADC | 0 | 1023 | LSB |
Catetan: Nilai ngan ukur pedoman.
tabél 21-10. Ciri ADC, Saluran diferensial (Mode Bipolar). TA = -40°C nepi ka +85°C
Lambang | Parameter | kaayaan | Min | Tip | Max | Hijian |
Resolusi | Keuntungan = 1x | 10 | bit | |||
Keuntungan = 20x | 10 | bit | ||||
Akurasi mutlak (Kalebet INL, DNL, sareng
Quantization, Gain sareng Kasalahan Offset) |
Keuntungan = 1x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
8.0 | LSB | |||
Keuntungan = 20x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
8.0 | LSB | ||||
Integral Non-Linearity (INL) (Akurasi saatos offset sareng Gain Calibration) | Keuntungan = 1x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
4.0 | LSB | |||
Keuntungan = 20x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
5.0 | LSB | ||||
Ngala Kasalahan | Keuntungan = 1x | 4.0 | LSB | |||
Keuntungan = 20x | 5.0 | LSB | ||||
Kasalahan Offset | Keuntungan = 1x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
3.0 | LSB | |||
Keuntungan = 20x
VREF = 4V, VCC = 5V Jam ADC = 50 - 200 kHz |
4.0 | LSB | ||||
Waktos Konversi | Konversi Ngajalankeun Gratis | 70 | 280 | s | ||
Frékuénsi Jam | 50 | 200 | kHz | |||
VIN | Masukan Voltage | GND | VCC | V | ||
VDIFF | Input diferensial Voltage | VREF / gain | V | |||
Lebetkeun Bandwidth | 4 | kHz | ||||
AREF | Rujukan éksternal Voltage | 2.0 | VCC - 1.0 | V | ||
VINT | Internal Voltage Rujukan | 1.0 | 1.1 | 1.2 | V | |
Rujukan 2.56V internal (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Résistansi Input Rujukan | 32 | kΩ | |||
HUJAN | Résistansi Input Analog | 100 | MΩ | |||
Kaluaran Konversi ADC | -512 | 511 | LSB |
Ringkesan Pitunjuk
Mnemonics | Operasi | Katerangan | Operasi | Bandéra | # Jam |
Pitunjuk ARITMETIK JEUNG LOGIK | |||||
TAMBAHAN | Rd, Rr | Tambahkeun dua ngadaptar | Rd ← Rd + Rr | Z, C, N, V, H. | 1 |
ADC | Rd, Rr | Tambahkeun sareng Mawa dua Daptar | Rd ← Rd + Rr + C | Z, C, N, V, H. | 1 |
ADIW | Rdl, K | Tambihkeun Langsung kana Kecap | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
SUB | Rd, Rr | Ngurangan dua Registrasi | Rd ← Rd – Rr | Z, C, N, V, H. | 1 |
SUBI | Rd, K | Ngurangan Konstanta tina ngadaptar | Rd ← Rd – K | Z, C, N, V, H. | 1 |
SBC | Rd, Rr | Kurangan ku Mawa dua Daptar | Rd ← Rd – Rr – C | Z, C, N, V, H. | 1 |
SBCI | Rd, K | Kurangan ku Carry Constant ti Reg. | Rd ← Rd – K – C | Z, C, N, V, H. | 1 |
SBIW | Rdl, K | Ngurangan Geura tina Firman | Rdh:Rdl ← Rdh:Rdl – K | Z, C, N, V, S | 2 |
AND | Rd, Rr | Logis JEUNG ngadaptar | Rd ← Rd ∙ Rr | Z, N, V | 1 |
ANDI | Rd, K | Logis AND ngadaptar sareng Konstanta | Rd ← Rd ∙ K | Z, N, V | 1 |
OR | Rd, Rr | Logis ATAWA Ngadaptar | Rd ← Rd v Rr | Z, N, V | 1 |
ORI | Rd, K | Logis ATAWA ngadaptar sareng Konstanta | Rd ← Rd v K | Z, N, V | 1 |
EOR | Rd, Rr | Édaptar OR OR | Rd ← Rd ⊕ Rr | Z, N, V | 1 |
COM | Rd | Salah urang Pelengkap | Rd ← 0xFF − Rd | Z, C, N, V | 1 |
NEG | Rd | Komplemén Dua | Rd ← 0x00 − Rd | Z, C, N, V, H. | 1 |
SBR | Rd, K | Atur Bit (s) dina ngadaptar | Rd ← Rd v K | Z, N, V | 1 |
CBR | Rd, K | Hapus Bit (s) dina ngadaptar | Rd ← Rd ∙ (0xFF – K) | Z, N, V | 1 |
Inc | Rd | Nambahan | Rd ← Rd + 1 | Z, N, V | 1 |
DEC | Rd | Pengurangan | Rd ← Rd − 1 | Z, N, V | 1 |
TST | Rd | Tés pikeun Nol atanapi Minus | Rd ← Rd ∙ Rd | Z, N, V | 1 |
CLR | Rd | Hapus ngadaptar | Rd ← Rd ⊕ Rd | Z, N, V | 1 |
SER | Rd | Atur ngadaptar | Rd ← 0xFF | Euweuh | 1 |
Pitunjuk Cabang | |||||
RJMP | k | Luncat relatif | PC ← PC + k + 1 | Euweuh | 2 |
IJMP | Langsung Langsung ka (Z) | PC ← Z | Euweuh | 2 | |
RCALL | k | Telepon Subroutin relatif | PC ← PC + k + 1 | Euweuh | 3 |
ABDI NELEPON | Telepon Teu langsung ka (Z) | PC ← Z | Euweuh | 3 | |
RET | Subroutine Balik deui | PC ← tumpukan | Euweuh | 4 | |
RETI | Ngaganggu Balik deui | PC ← tumpukan | I | 4 | |
CPSE | Rd, Rr | Bandingkeun, Langkung upami Sarua | lamun (Rd = Rr) PC ← PC + 2 atawa 3 | Euweuh | 1/2/3 |
CP | Rd, Rr | Bandingkeun | Rd − Rr | Z, N, V, C, H | 1 |
BPK | Rd, Rr | Bandingkeun sareng Mawa | Rd − Rr − C | Z, N, V, C, H | 1 |
CPI | Rd, K | Bandingkeun ngadaptar sareng Geura | Rd − K | Z, N, V, C, H | 1 |
SBRC | Rr, b | Langkung upami Bit dina ngadaptar diberesihan | lamun (Rr(b)=0) PC ← PC + 2 atawa 3 | Euweuh | 1/2/3 |
SBRS | Rr, b | Langkung upami Bit dina ngadaptar parantos ditangtoskeun | lamun (Rr(b)=1) PC ← PC + 2 atawa 3 | Euweuh | 1/2/3 |
SBIC | P, b | Langkung upami Bit dina I / O Registrasi diberesihan | lamun (P(b)=0) PC ← PC + 2 atawa 3 | Euweuh | 1/2/3 |
SBIS | P, b | Langkung upami Bit dina I / O ngadaptar parantos disetél | lamun (P(b)=1) PC ← PC + 2 atawa 3 | Euweuh | 1/2/3 |
BRBS | s, k | Cabang upami Status Bandéra Set | upami (SREG(s) = 1) teras PC←PC+k + 1 | Euweuh | 1/2 |
BRBC | s, k | Cabang upami Bandéra Status Diberesihkeun | upami (SREG(s) = 0) teras PC←PC+k + 1 | Euweuh | 1/2 |
BREQ | k | Cabang lamun Sarua | upami (Z = 1) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRNE | k | Cabang lamun Teu Sarua | upami (Z = 0) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRCS | k | Cabang upami Ngalaksanakeun | upami (C = 1) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRCC | k | Cabang upami Mawa diberesihan | upami (C = 0) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRSH | k | Cabang upami Sarua atanapi Luhur | upami (C = 0) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRLO | k | Cabang upami Handap | upami (C = 1) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRMI | k | Cabang upami Minus | upami (N = 1) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRPL | k | Cabang upami Ditambah | upami (N = 0) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRGE | k | Cabang upami Greater atanapi Sarua, Ditandatanganan | lamun (N ⊕ V= 0) lajeng PC ← PC + k + 1 | Euweuh | 1/2 |
BRLT | k | Cabang upami Kirang Ti Nol, Ditandatanganan | lamun (N ⊕ V= 1) lajeng PC ← PC + k + 1 | Euweuh | 1/2 |
BRHS | k | Cabang upami Setengah Mawa Bendera | upami (H = 1) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRHC | k | Cabang upami Bandéra Satengah Mawa diberesihan | upami (H = 0) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRTS | k | Cabang upami T Bandéra Set | upami (T = 1) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRTC | k | Cabang upami T Bendera Diberesihkeun | upami (T = 0) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRVS | k | Cabang upami Bendéra Overflow Atos Ditetepkeun | upami (V = 1) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRVC | k | Cabang upami Bendéra Overflow Dibersihkeun | upami (V = 0) teras PC ← PC + k + 1 | Euweuh | 1/2 |
SORENG | k | Cabang upami ngaganggu Diaktipkeun | upami (I = 1) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BRID | k | Cabang upami ngaganggu Cacad | upami (I = 0) teras PC ← PC + k + 1 | Euweuh | 1/2 |
BIT JEUNG Parentah Tes-bit | |||||
SBI | P, b | Atur Bit dina I / O ngadaptar | I/O(P,b) ← 1 | Euweuh | 2 |
CBI | P, b | Hapus Bit dina I / O Registrasi | I/O(P,b) ← 0 | Euweuh | 2 |
LSL | Rd | Logis Shift Kénca | Rd(n+1) ← Rd(n), Rd(0) ← 0 | Z, C, N, V | 1 |
LSR | Rd | Logis Shift Katuhu | Rd(n) ← Rd(n+1), Rd(7) ← 0 | Z, C, N, V | 1 |
peran | Rd | Muter Kénca Ngalangkungan Mawa | Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) | Z, C, N, V | 1 |
ROR | Rd | Puterkeun Katuhu Ngalangkungan Mawa | Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) | Z, C, N, V | 1 |
ASR | Rd | Aritmatika Pergeseran Katuhu | Rd(n) ← Rd(n+1), n=0..6 | Z, C, N, V | 1 |
Mnemonics | Operasi | Katerangan | Operasi | Bandéra | # Jam |
SWAP | Rd | Tukeuran Nibbles | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Euweuh | 1 |
BSET | s | Bandéra Set | SREG(s) ← 1 | SREG | 1 |
BCLR | s | Bandéra Hapus | SREG(s) ← 0 | SREG | 1 |
BST | Rr, b | Bit Store tina ngadaptar ka T | T ← Rr(b) | T | 1 |
BLD | Rd, b | Beban bit tina T pikeun ngadaptar | Rd(b) ← T | Euweuh | 1 |
SEK | Atur Mawa | C ← 1 | C | 1 | |
CLC | Hapus Mawa | C ← 0 | C | 1 | |
SEN | Atur Bandéra Negatip | N ← 1 | N | 1 | |
CLN | Bendéra Negatip Hapus | N ← 0 | N | 1 | |
SEZ | Atur Bandéra Nol | Z ← 1 | Z | 1 | |
CLZ | Hapus Bandéra Nol | Z ← 0 | Z | 1 | |
SEI | Ngaganggu Global Aktipkeun | Abdi ← 1 | I | 1 | |
CLI | Gangguan Global Pareuman | Abdi ← 0 | I | 1 | |
SES | Atur Bandéra Tés Ditandatanganan | S ← 1 | S | 1 | |
CLS | Batalkeun Tanda Tandatangan Hapus | S ← 0 | S | 1 | |
SEV | Atur Twos Komplementer Overflow. | V ← 1 | V | 1 | |
CLV | Jelas Twos Komplementer Overflow | V ← 0 | V | 1 | |
SET | Atur T dina SREG | T ← 1 | T | 1 | |
CLT | Hapus T dina SREG | T ← 0 | T | 1 | |
SEH | Atur Setengah Mawa Bandéra di SREG | H ← 1 | H | 1 | |
CLH | Hapus Setengah Mawa Bandéra di SREG | H ← 0 | H | 1 | |
Parentah Mindahkeun DATA | |||||
MOV | Rd, Rr | Pindahkeun Antara ngadaptar | Rd ← Rr | Euweuh | 1 |
Pindah | Rd, Rr | Salin Kecap ngadaptar | Rd+1:Rd ← Rr+1:Rr | Euweuh | 1 |
LDI | Rd, K | Beban Geura | Rd ← K | Euweuh | 1 |
LD | Rd, X | Beban Henteu langsung | Rd ← (X) | Euweuh | 2 |
LD | Rd, X + | Beban Henteu langsung sareng Post-Inc. | Rd ← (X), X ← X + 1 | Euweuh | 2 |
LD | Rd, - X | Beban Henteu Langsung sareng Pra-Des. | X ← X – 1, Rd ← (X) | Euweuh | 2 |
LD | Rd, Y | Beban Henteu langsung | Rd ← (Y) | Euweuh | 2 |
LD | Rd, Y + | Beban Henteu langsung sareng Post-Inc. | Rd ← (Y), Y ← Y + 1 | Euweuh | 2 |
LD | Rd, - Y | Beban Henteu Langsung sareng Pra-Des. | Y ← Y – 1, Rd ← (Y) | Euweuh | 2 |
LDD | Rd, Y + q | Beban Henteu Langsung sareng Kapindahan | Rd ← (Y + q) | Euweuh | 2 |
LD | Rd, Z | Beban Henteu langsung | Rd ← (Z) | Euweuh | 2 |
LD | Rd, Z + | Beban Henteu langsung sareng Post-Inc. | Rd ← (Z), Z ← Z+1 | Euweuh | 2 |
LD | Rd, -Z | Beban Henteu Langsung sareng Pra-Des. | Z ← Z – 1, Rd ← (Z) | Euweuh | 2 |
LDD | Rd, Z + q | Beban Henteu Langsung sareng Kapindahan | Rd ← (Z + q) | Euweuh | 2 |
LDS | Rd, k | Beban Langsung ti SRAM | Rd ← (k) | Euweuh | 2 |
ST | X, Rr | Toko Henteu langsung | (X) ← Rr | Euweuh | 2 |
ST | X +, Rr | Toko Henteu langsung sareng Post-Inc. | (X) ← Rr, X ← X + 1 | Euweuh | 2 |
ST | - X, Rr | Toko Henteu Langsung sareng Pra-Des. | X ← X – 1, (X) ← Rr | Euweuh | 2 |
ST | Y, Rr | Toko Henteu langsung | (Y) ← Rr | Euweuh | 2 |
ST | Y +, Rr | Toko Henteu langsung sareng Post-Inc. | (Y) ← Rr, Y ← Y + 1 | Euweuh | 2 |
ST | - Y, Rr | Toko Henteu Langsung sareng Pra-Des. | Y ← Y – 1, (Y) ← Rr | Euweuh | 2 |
STD | Y + q, Rr | Toko Henteu langsung sareng Kapindahan | (Y + q) ← Rr | Euweuh | 2 |
ST | Z, Rr | Toko Henteu langsung | (Z) ← Rr | Euweuh | 2 |
ST | Z +, Rr | Toko Henteu langsung sareng Post-Inc. | (Z) ← Rr, Z ← Z + 1 | Euweuh | 2 |
ST | -Z, Rr | Toko Henteu Langsung sareng Pra-Des. | Z ← Z – 1, (Z) ← Rr | Euweuh | 2 |
STD | Z + q, Rr | Toko Henteu langsung sareng Kapindahan | (Z + q) ← Rr | Euweuh | 2 |
STS | k, rr | Toko Langsung ka SRAM | (k) ← Rr | Euweuh | 2 |
LPM | Mémori Program Beban | R0 ← (Z) | Euweuh | 3 | |
LPM | Rd, Z | Mémori Program Beban | Rd ← (Z) | Euweuh | 3 |
LPM | Rd, Z + | Memori Program Beban sareng Post-Inc. | Rd ← (Z), Z ← Z+1 | Euweuh | 3 |
SPM | Memori Program Toko | (z) ← R1:R0 | Euweuh | ||
IN | Rd, P | Di Palabuhan | Rd ← P | Euweuh | 1 |
KALUAR | P, Rr | Kaluar Pelabuhan | P ← Rr | Euweuh | 1 |
TEKEN | Rr | Push ngadaptar on tumpukan | Tumpukan ← Rr | Euweuh | 2 |
POP | Rd | Pop ngadaptar ti Stack | Rd ← tumpukan | Euweuh | 2 |
Parentah Kontrol MCU | |||||
NOP | Taya Operasi | Euweuh | 1 | ||
SARE | Saré | (tingali desk khusus pikeun fungsi Sare) | Euweuh | 1 | |
WDR | Watchdog Reset | (tingali desk khusus pikeun WDR / Timer) | Euweuh | 1 | |
BREAK | Pegat |
Laju (MHz) (1) | Pasokan Voltage (V) | Rentang Suhu | Bungkusan (2) | Kode pesenan (3) |
10 | 1.8 – 5.5 | Industri
(-40 ° C nepi ka + 85 ° C) (4) |
8P3 | ATtiny45V-10PU |
8S2 | ATtiny45V-10SU ATtiny45V-10SUR ATtiny45V-10SH ATtiny45V-10SHR | |||
8X | ATtiny45V-10XU ATtiny45V-10XUR | |||
20M1 | ATtiny45V-10MU ATtiny45V-10MUR | |||
20 | 2.7 – 5.5 | Industri
(-40 ° C nepi ka + 85 ° C) (4) |
8P3 | ATtiny45-20PU |
8S2 | ATtiny45-20SU ATtiny45-20SUR
ATtiny45-20SH ATtiny45-20SHR |
|||
8X | ATtiny45-20XU ATtiny45-20XUR | |||
20M1 | ATtiny45-20MU ATtiny45-20MUR |
Catetan: 1. Pikeun speed vs suplai voltage, tingali bagian 21.3 "Laju" dina kaca 163.
Sadaya bungkusan bebas Pb, bébas halida sareng héjo lengkep sareng éta saluyu sareng arahan Éropa pikeun Watesan Bahan Bahaya (RoHS).
Indikator kode
H: NiPdAu timbal finish
U: timah matte
Urang Sunda: tape & reel
Alat-alat ieu ogé tiasa disayogikeun dina bentuk wafer. Mangga taroskeun ka kantor penjualan Atmel lokal anjeun kanggo inpormasi pangaturan rinci sareng jumlah minimum.
Érté
Errata ATtiny25
Surat révisi dina bagian ieu ngarujuk kana révisi alat ATtiny25.
Rev D - F
Teu aya errata anu dipikaterang.
Rev B - C
EEPROM maca bisa gagal dina suplai low voltage / frékuénsi jam low
EEPROM maca bisa gagal dina suplai low voltage / frékuénsi jam low
Nyobian maca EEPROM dina frékuénsi jam low jeung / atawa low suplai voltage bisa ngakibatkeun data teu valid.
Ngalereskeun Masalah / Ngungkulan
Ulah make EEPROM lamun frékuénsi jam handap 1MHz jeung suplai voltage handap 2V. Lamun frékuénsi operasi teu bisa di luhur 1MHz lajeng suplai voltage kudu leuwih ti 2V. Nya kitu, lamun suplai voltage teu bisa diangkat luhur 2V mangka frékuénsi operasi kudu leuwih ti 1MHz.
Fitur ieu dipikaterang gumantung kana suhu tapi henteu acan tiasa dicirikeun. Pitunjuk anu dipasihkeun pikeun suhu kamar, hungkul.
Rev A
Henteu sampLED.
Errata ATtiny45
Surat révisi dina bagian ieu ngarujuk kana révisi alat ATtiny45.
Rev F - G
Teu aya errata anu dikenal
Rev D - E.
EEPROM maca bisa gagal dina suplai low voltage / frékuénsi jam low
EEPROM maca bisa gagal dina suplai low voltage / frékuénsi jam low
Nyobian maca EEPROM dina frékuénsi jam low jeung / atawa low suplai voltage bisa ngakibatkeun data teu valid.
Ngalereskeun Masalah / Ngungkulan
Ulah make EEPROM lamun frékuénsi jam handap 1MHz jeung suplai voltage handap 2V. Lamun frékuénsi operasi teu bisa di luhur 1MHz lajeng suplai voltage kudu leuwih ti 2V. Nya kitu, lamun suplai voltage teu bisa diangkat luhur 2V mangka frékuénsi operasi kudu leuwih ti 1MHz.
Fitur ieu dipikaterang gumantung kana suhu tapi henteu acan tiasa dicirikeun. Pitunjuk anu dipasihkeun pikeun suhu kamar, hungkul.
Rev B - C
PLL henteu ngonci
EEPROM maca tina kode aplikasi henteu jalan dina Lock Bit Mode 3
EEPROM maca bisa gagal dina suplai low voltage / frékuénsi jam low
Timer Counter 1 PWM kaluaran kaluaran dina OC1B- XOC1B henteu tiasa leres
PLL henteu ngonci
Nalika dina frékuénsi di handap 6.0 MHz, PLL moal ngonci
Ngalereskeun masalah / Ngungkulan
Nalika nganggo PLL, lumpat dina 6.0 MHz atanapi langkung luhur.
EEPROM maca tina kode aplikasi henteu jalan dina Lock Bit Mode 3
Nalika Memory Lock Bits LB2 sareng LB1 diprogram kana modeu 3, maca EEPROM henteu tiasa dianggo tina kode aplikasi.
Ngalereskeun Masalah / Gawé sakitar
Entong nyetél Lock Bit Protection Mode 3 nalika kode aplikasi kedah dibaca ti EEPROM.
EEPROM maca bisa gagal dina suplai low voltage / frékuénsi jam low
Nyobian maca EEPROM dina frékuénsi jam low jeung / atawa low suplai voltage bisa ngakibatkeun data teu valid.
Ngalereskeun Masalah / Ngungkulan
Ulah make EEPROM lamun frékuénsi jam handap 1MHz jeung suplai voltage handap 2V. Lamun frékuénsi operasi teu bisa di luhur 1MHz lajeng suplai voltage kudu leuwih ti 2V. Nya kitu, lamun suplai voltage teu bisa diangkat luhur 2V mangka frékuénsi operasi kudu leuwih ti 1MHz.
Fitur ieu dipikaterang gumantung kana suhu tapi henteu acan tiasa dicirikeun. Pitunjuk anu dipasihkeun pikeun suhu kamar, hungkul.
Timer Counter 1 PWM kaluaran kaluaran dina OC1B - XOC1B henteu tiasa leres
Timer Counter1 PWM kaluaran OC1B-XOC1B henteu tiasa leres. Ngan dina kasus nalika bit kontrol, COM1B1 sareng COM1B0 aya dina modeu anu sami sareng COM1A1 sareng COM1A0, masing-masing kaluar OC1B-XOC1B tiasa leres.
Ngalereskeun Masalah / Gawé sakitar
Hiji-hijina jalan kaluar nyaéta nganggo setélan pangendali anu sami dina COM1A [1: 0] sareng COM1B [1: 0] bit kontrol, tingali tabel 14- 4 dina lambaran data. Masalahna parantos dibéréskeun pikeun Tiny45 rev D.
Rev A
Kakuatan teuing konsumsi kakuatan handap
DebugWIRE ngaleungitkeun komunikasi nalika tunggal nincak kana kaganggu
PLL henteu ngonci
EEPROM maca tina kode aplikasi henteu jalan dina Lock Bit Mode 3
EEPROM maca bisa gagal dina suplai low voltage / frékuénsi jam low
Kakuatan teuing konsumsi kakuatan handap
Tilu kaayaan bakal ngakibatkeun konsumsi kakuatan tanaga listrik anu luhur teuing. Ieu nyaéta:
Jam éksternal dipilih ku sekering, tapi port I / O masih diaktipkeun salaku kaluaran.
EEPROM dibaca sateuacan ngalebetkeun kakuatan.
VCC nyaéta 4.5 volt atanapi langkung luhur.
Bantahan: Informasi dina dokumén ieu disadiakeun dina sambungan jeung produk Atmel. Taya lisénsi, express atanapi tersirat, ku estoppel atawa lamun heunteu, kana sagala hak cipta intelektual ieu dibales ku dokumén ieu atanapi dina sambungan jeung diobral produk Atmel. Iwal sakumaha diatur dina ATMEL SYARAT JEUNG SYARAT PENJUALAN TEMPAT DI ATMEL. WEBsitus, ATMEL nganggap euweuh liabilities nanaon jeung disclaims sagala nyata, tersirat atawa jaminan statutory patali jeung produk na kaasup, tapi teu diwatesan ku, jaminan tersirat OF MERCHANTABILITY, kabugaran pikeun tujuan husus-,. Dina sagala kajadian ATMEL moal nanggungjawaban kana sagala LANGSUNG, teu langsung, konsékuansi, hukuman, KHUSUS ATAWA KARUSAKAN INSIDENTAL (kaasup, TANPA watesan, RUSAK KERUGIAN jeung kauntungan, gangguan usaha, atawa leungitna informasi pamakéan pamakéan) DOKUMEN ieu, sanajan ATMEL geus dibere nyaho kamungkinan karuksakan misalna.
Atmel henteu ngawakilan atanapi ngajamin ngeunaan katepatan atanapi kasampurnaan eusi dokumen ieu sareng ngagaduhan hak pikeun ngarobih spésifikasi sareng déskripsi produk iraha waé tanpa aya bewara. Atmel henteu ngalakukeun komitmen pikeun ngapdet inpormasi anu aya di dieu. Iwal husus disadiakeun disebutkeun, produk Atmel teu cocog pikeun, jeung teu kudu dipaké dina, aplikasi otomotif. Produk Atmel henteu dimaksudkeun, otorisasi, atanapi dijamin pikeun dianggo salaku komponén dina aplikasi anu dimaksudkeun pikeun ngadukung atanapi ngadukung kahirupan.