Atmel

Atmel 8-bit AVR Mikrokontroler sareng 2/4/8K Bytes In-System Programmable Flashchip

 

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 Konfigurasi

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 Diagram blok

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 Arsitéktur

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. Tujuan umum

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.

Ngadaptar

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é.

Gbr4.4

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

Gbr4.5

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 Peta mémori

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 Peta mémori 2

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 Dina data chip 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

Sebaran jam

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. Jam PCK

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. Sistem jam

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

Gbr6.4

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 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 Gbr8.4

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. Gbr8.5

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 Anjing pangawas

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

Gbr10

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)

Gbr10

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

RSTDISBL(1) • DWEN(1)

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
HUJAN Résistansi Input Analog 100
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
HUJAN Résistansi Input Analog 100
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
HUJAN Résistansi Input Analog 100
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.

Rujukan

Ninggalkeun komentar

alamat surélék anjeun moal diterbitkeun. Widang diperlukeun ditandaan *