Atmel

Atmel 8-bit AVR Microcontroller na may 2/4/8K Bytes In-System Programmable Flashchip

 

Mga tampok

  • Mataas na Pagganap, Mababang Power AVR® 8-Bit Microcontroller
  • Advanced na RISC Architecture
  • 120 Napakahusay na Tagubilin - Karamihan sa Single Clock Cycle Pagpapatupad
  • 32 x 8 Mga Pangkalahatang Layunin sa Paggawa ng Mga Rehistro
  • Ganap na Static na Operasyon
  • Hindi pabagu-bago ng Program at Mga Alaala ng Data
  • 2/4 / 8K Bytes ng In-System Programmable Program Memory Flash
  • Pagtitiis: 10,000 Sumulat/Burahin ang mga Siklo
  • 128/256/512 Bytes In-System Programmable EEPROM
  • Pagtitiis: 100,000 Sumulat/Burahin ang mga Siklo
  • 128/256/512 Bytes Panloob na SRAM
  • Lock ng Programming para sa Self-Programming Flash Program at EEPROM Data Security

Mga Tampok na Peripheral

  • 8-bit Timer / Counter na may Prescaler at Dalawang Mga PWM Channel
  • 8-bit High Speed ​​Timer / Counter na may Separate Prescaler
  • 2 Mataas na Frequency PWM Output na may magkahiwalay na Output Paghambingin ang Mga Rehistro
  • Programmable Patay na Tagabuo ng Oras
  • USI - Universal Serial Interface na may Start Condition Detector
  • 10-bit na ADC

4 Mga Single na Natapos na Channel

2 Pagkakaiba ng Mga Pares ng Channel sa ADC na may Programmable Gain (1x, 20x)

Pagsukat ng Temperatura

Programmable Watchdog Timer na may Separate On-chip Oscillator

On-chip Analog Comparator

Mga Espesyal na Tampok ng Microcontroller

debugWIRE On-chip Debug System

In-System Programmable sa pamamagitan ng SPI Port

Mga Pinagmulan ng Panlabas at Panloob na Nakagambala

Mababang Power Idle, ADC Noise Reduction, at Power-down Mode

Pinahusay na Power-on Reset Circuit

Programmable na Brown-out Detection Circuit

Panloob na Calibrated Oscillator

I / O at Mga Pakete

Anim na Programmable I / O Mga Linya

8-pin PDIP, 8-pin SOIC, 20-pad QFN / MLF, at 8-pin TSSOP (ATtiny45 / V lamang)

Ang Operating Voltage
- 1.8 - 5.5V para sa ATtiny25V / 45V / 85V
- 2.7 - 5.5V para sa ATtiny25 / 45/85

Bilis ng Baitang
- 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

Saklaw ng Temperatura ng Pang-industriya

Mababang Konsumo ng kuryente

Aktibong Mode:

1 MHz, 1.8V: 300 µA

Mode na Power-down:

I-configure ang mga pin

Pinout ATtiny25 / 45/85 Configuration

Mga Paglalarawan ng Pin

VCC: Supply voltage.
GND: Lupa.
Port B (PB5:PB0): Ang Port B ay isang 6-bit bi-directional I/O port na may panloob na pull-up resistors (pinili para sa bawat bit). Ang mga output buffer ng Port B ay may simetriko na mga katangian ng drive na may parehong mataas na lababo at kakayahan sa pinagmulan. Bilang mga input, ang mga Port B pin na panlabas na pulled low ay magmumula sa kasalukuyang kung ang mga pull-up resistors ay isinaaktibo. Ang mga pin ng Port B ay tatlong nakasaad kapag naging aktibo ang kondisyon ng pag-reset, kahit na hindi tumatakbo ang orasan.

Naghahain din ang Port B ng mga pagpapaandar ng iba't ibang mga espesyal na tampok ng ATtiny25 / 45/85 na nakalista
Sa ATtiny25, ang nai-program na mga port ng I / O na PB3 at PB4 (mga pin 2 at 3) ay ipinagpapalit sa ATtiny15 Compatibility Mode para sa pagsuporta sa paatras na pagiging tugma sa ATtiny15.

I-RESET: I-reset ang input. Ang mababang antas sa pin na ito nang mas mahaba kaysa sa pinakamababang haba ng pulso ay bubuo ng pag-reset, kahit na ang orasan ay hindi tumatakbo at kung ang reset pin ay hindi na-disable. Ang pinakamababang haba ng pulso ay ibinibigay sa Talahanayan 21-4 sa pahina 165. Ang mga mas maikling pulso ay hindi ginagarantiyahan upang makabuo ng isang pag-reset.

Ang reset pin ay maaari ding gamitin bilang isang (mahina) I / O pin.

Tapos naview

Ang ATtiny25 / 45/85 ay isang mababang-kapangyarihan na CMOS 8-bit microcontroller batay sa AVR na pinahusay na arkitektura ng RISC. Sa pamamagitan ng pagpapatupad ng malakas na mga tagubilin sa isang solong cycle ng orasan, nakakamit ng ATtiny25 / 45/85 ang mga throughput na papalapit sa 1 MIPS bawat MHz na pinapayagan ang taga-disenyo ng system na i-optimize ang pagkonsumo ng kuryente kumpara sa bilis ng pagproseso.

I-block ang Diagram Block diagram

Ang AVR core ay pinagsasama ang isang rich set ng pagtuturo na may 32 pangkalahatang layunin na nagtatrabaho na mga rehistro. Ang lahat ng 32 mga rehistro ay direktang konektado sa Arithmetic Logic Unit (ALU), na pinapayagan ang dalawang independiyenteng rehistro na ma-access sa isang solong tagubilin na naisakatuparan sa isang ikot ng orasan. Ang nagresultang arkitektura ay mas mahusay ang code habang nakakamit ang mga throughput hanggang sampung beses na mas mabilis kaysa sa maginoo na CISC microcontrollers.

Nagbibigay ang ATtiny25 / 45/85 ng mga sumusunod na tampok: 2/4 / 8K bytes ng In-System Programmable Flash, 128/256/512 bytes EEPROM, 128/256/256 bytes SRAM, 6 pangkalahatang layunin ng mga linya ng I / O, 32 pangkalahatan layunin na nagtatrabaho na mga rehistro, isang 8-bit Timer / Counter na may mga mode na ihambing, isang 8-bit na bilis ng Timer / Counter, Universal Serial Interface, Panloob at Panlabas na Mga Pagkagambala, isang 4-channel, 10-bit ADC, isang programmable na Watchdog Timer na may panloob Oscillator, at tatlong mapipiling mga mode ng pag-save ng kuryente ng software. Itinigil ng idle mode ang CPU habang pinapayagan ang SRAM, Timer / Counter, ADC, Analog Comparator, at Interrupt system na magpatuloy sa paggana. Sine-save ng mode na power-down ang mga rehistro ng rehistro, hindi pinapagana ang lahat ng mga pagpapaandar ng maliit na tilad hanggang sa susunod na Interrupt o Hardware Reset. Ang mode ng ADC Noise Reduction ay tumitigil sa CPU at lahat ng mga module na I / O maliban sa ADC, upang mabawasan ang paglipat ng ingay sa panahon ng mga conversion ng ADC.

Ang aparato ay panindang gamit ang teknolohiyang memorya ng memory na hindi mataas ang density ng Atmel. Pinapayagan ng On-chip ISP Flash ang memorya ng Program na muling mai-program In-System sa pamamagitan ng isang serial interface ng SPI, ng isang maginoo na hindi pabagu-bago ng memory programmer o ng isang On-chip boot code na tumatakbo sa core ng AVR.

Ang ATtiny25 / 45/85 AVR ay suportado ng isang buong suite ng mga tool sa pag-unlad ng programa at system kasama ang: C Com- pilers, Macro Assemblers, Program Debugger / Simulator at Evaluation kit.

Tungkol sa Mga Mapagkukunan

Ang isang komprehensibong hanay ng mga tool sa pag-unlad, mga tala ng application at mga datasheet ay magagamit para sa pag-download sa http://www.atmel.com/avr.

Ang Code Halamples

Naglalaman ang dokumentasyong ito ng simpleng code examples na maikling ipinapakita kung paano gamitin ang iba't ibang bahagi ng aparato. Ang code na ito halamples ipinapalagay na ang bahagi tiyak na header file ay kasama bago ang pagtitipon. Magkaroon ng kamalayan na hindi lahat ng mga vendor ng C compiler ay nagsasama ng kaunting mga kahulugan sa header files at makagambala ang paghawak sa C ay umaasa sa tagatala. Mangyaring kumpirmahin sa dokumentasyong C compiler para sa higit pang mga detalye.

Para sa mga Rehistro ng I / O na matatagpuan sa pinalawig na mapa ng I / O, "IN", "OUT", "SBIS", "SBIC", "CBI", at "SBI" na mga tagubilin ay dapat mapalitan ng mga tagubilin na nagpapahintulot sa pag-access sa pinalawak na I / O. Karaniwan, nangangahulugan ito ng "LDS" at "STS" na sinamahan ng "SBRS", "SBRC", "SBR", at "CBR". Tandaan na hindi lahat ng mga aparatong AVR ay nagsasama ng isang pinalawak na I / O na mapa.

Capacitive Touch Sensing

Nagbibigay ang Atmel QTouch Library ng simpleng gamitin na solusyon para sa mga touch sensitive na interface sa mga microcontroller ng Atmel AVR. Kasama sa QTouch Library ang suporta para sa mga pamamaraan ng pagkuha ng QTouch® at QMatrix®.

Madaling maidagdag ang touch sensing sa anumang aplikasyon sa pamamagitan ng pag-link sa QTouch Library at paggamit ng Application Program- ming Interface (API) ng library upang tukuyin ang mga touch channel at sensor. Tinatawagan ng application ang API upang makuha ang impormasyon sa channel at matukoy ang estado ng touch sensor.

Ang QTouch Library ay libre at maaaring ma-download mula sa Atmel weblugar. Para sa karagdagang impormasyon at mga detalye ng pagpapatupad, sumangguni sa Patnubay sa Gumagamit ng QTouch Library - magagamit din mula sa Atmel website.

Pagpapanatili ng Data

Ipinapakita ng mga resulta sa Pagiging Karapat-dapat na ang inaasahang rate ng kabiguan sa pagpapanatili ng data ay mas mababa sa 1 PPM sa loob ng 20 taon sa 85 ° C o 100 taon sa 25 ° C.

Core ng AVR CPU

Panimula

Tinalakay sa seksyong ito ang pangunahing arkitektura ng AVR sa pangkalahatan. Ang pangunahing pagpapaandar ng core ng CPU ay upang matiyak ang wastong pagpapatupad ng programa. Samakatuwid dapat ma-access ng CPU ang mga alaala, magsagawa ng mga kalkulasyon, makontrol ang mga peripheral, at hawakan ang mga pagkagambala.

Over Architecturalview Arkitektura

Upang ma-maximize ang pagganap at parallelism, gumagamit ang AVR ng arkitektura ng Harvard - na may magkakahiwalay na alaala at bus para sa programa at data. Ang mga tagubilin sa memorya ng Program ay naisakatuparan na may isang solong antas ng pipelining. Habang ang isang tagubilin ay naisakatuparan, ang susunod na tagubilin ay paunang nakuha mula sa memorya ng Program. Ang konseptong ito ay nagbibigay-daan sa mga tagubilin upang maipatupad sa bawat ikot ng orasan. Ang memorya ng Program ay memorya ng In-System Reprogrammable Flash memory.

Ang rehistro ng mabilis na pag-access File naglalaman ng 32 x 8-bit na pangkalahatang layunin na gumaganang mga rehistro na may isang oras ng pag-access sa ikot ng orasan. Nagbibigay-daan ito sa operasyon ng single-cycle Arithmetic Logic Unit (ALU). Sa isang tipikal na operasyon ng ALU, dalawang operand ang output mula sa Register File, ang pagpapatakbo ay naisakatuparan, at ang resulta ay nakaimbak pabalik sa Magrehistro File- sa isang ikot ng orasan.

Anim sa 32 na rehistro ay maaaring magamit bilang tatlong 16-bit na hindi direktang mga rehistro ng rehistro para sa pag-address sa Data Space - na nagbibigay-daan sa mahusay na mga kalkulasyon ng address. Ang isa sa mga pahiwatig ng address na ito ay maaari ding magamit bilang isang pointer ng address para sa mga talahanayan ng pagtingin sa memorya ng Flash Program. Ang mga idinagdag na pagrehistro ng pag-andar ay ang 16-bit X-, Y-, at Z-register, na inilarawan sa paglaon sa seksyong ito.

Sinusuportahan ng ALU ang mga pagpapatakbo ng arithmetic at lohika sa pagitan ng mga rehistro o sa pagitan ng isang pare-pareho at isang rehistro. Ang pagpapatakbo ng solong rehistro ay maaari ding maisagawa sa ALU. Matapos ang isang pagpapatakbo sa aritmetika, ang Pagrehistro ng Katayuan ay na-update upang ipakita ang impormasyon tungkol sa resulta ng operasyon.

Ang daloy ng programa ay ibinibigay ng may kondisyon at walang pasubaling pagtalon at mga tagubilin sa pagtawag, na direktang matugunan ang buong puwang ng address. Karamihan sa mga tagubilin sa AVR ay may isang solong 16-bit na format ng salita, ngunit mayroon ding mga tagubilin na 32-bit.

Sa mga pagkakagambala at tawag sa subroutine, ang return address na Program Counter (PC) ay nakaimbak sa Stack. Ang Stack ay mabisang inilalaan sa pangkalahatang data ng SRAM, at dahil dito ang laki ng Stack ay limitado lamang ng kabuuang laki ng SRAM at paggamit ng SRAM. Ang lahat ng mga programa ng gumagamit ay dapat na gawing una ang SP sa nakagawiang I-reset (bago pa isagawa ang mga sub-routine o pagkagambala). Ang Stack Pointer (SP) ay nababasa / naa-access sa puwang ng I / O. Ang data na SRAM ay madaling ma-access sa pamamagitan ng limang magkakaibang mga mode sa pag-address na sinusuportahan sa arkitektura ng AVR.

Ang mga puwang ng memorya sa arkitektura ng AVR ay lahat ng mga linear at regular na memorya ng memorya.

Ang isang nababaluktot na module ng nakakagambala ay may mga rehistro ng kontrol sa puwang ng I / O na may karagdagang Global Interrupt Enable bit sa Rehistro ng Katayuan. Ang lahat ng mga nakakagambala ay may hiwalay na Interrupt Vector sa talahanayan ng Interrupt Vector. Ang mga pagkagambala ay may priyoridad alinsunod sa kanilang posisyon ng Interrupt Vector. Mas mababa ang address ng Interrupt Vector, mas mataas ang priyoridad.

Ang puwang ng memorya ng I / O ay naglalaman ng 64 mga address para sa mga function ng peripheral ng CPU bilang Mga Rehistro ng Control, SPI, at iba pang mga pagpapaandar ng I / O. Ang memorya ng I / O ay maaaring direktang ma-access, o bilang mga lokasyon ng Data Space na sumusunod sa mga Regista File, 0x20 - 0x5F.

ALU - Arithmetic Logic Unit

Ang mataas na pagganap na AVR ALU ay nagpapatakbo nang direktang koneksyon sa lahat ng 32 pangkalahatang layunin na mga rehistro ng pagtatrabaho. Sa loob ng isang solong pag-ikot ng orasan, ang pagpapatakbo ng arithmetic sa pagitan ng pangkalahatang mga rehistro ng layunin o sa pagitan ng isang rehistro at isang agarang ay naisagawa. Ang pagpapatakbo ng ALU ay nahahati sa tatlong pangunahing mga kategorya - aritmetika, lohikal, at bit-function. Ang ilang mga pagpapatupad ng arkitektura ay nagbibigay din ng isang malakas na multiplier na sumusuporta sa parehong naka-sign / unsigned multiplikasyon at format na praksyonal. Tingnan ang seksyong "Hanay ng Pagtuturo" para sa isang detalyadong paglalarawan.

Rehistro sa Katayuan

Naglalaman ang Rehistro ng Katayuan ng impormasyon tungkol sa resulta ng pinakabagong naipatupad na tagubiling aritmetika. Ang impormasyong ito ay maaaring magamit para sa pagbabago ng daloy ng programa upang maisagawa ang kondisyong pagpapatakbo. Tandaan na ang Pagrehistro ng Katayuan ay na-update pagkatapos ng lahat ng pagpapatakbo ng ALU, tulad ng tinukoy sa Sanggunian na Itakda ng Tagubilin. Tatanggalin nito sa maraming kaso ang pangangailangan para sa paggamit ng nakatuon na paghahambing ng mga tagubilin, na nagreresulta sa mas mabilis at mas compact na code.

Ang Rehistro sa Katayuan ay hindi awtomatikong nakaimbak kapag pumapasok sa isang nakakagambala na gawain at naibalik kapag bumalik mula sa isang nakakagambala. Dapat itong hawakan ng software.

SREG - Rehistro ng Katayuan ng AVR

Ang Rehistro ng Katayuan ng AVR - SREG - ay tinukoy bilang:

bit 7 6 5 4 3 2 1 0
0x3F I T H S V N Z C SREG
Basahin/Isulat R/W R/W R/W R/W R/W R/W R/W R/W
Paunang Halaga 0 0 0 0 0 0 0 0

Bit 7 - I: Global Interrupt Paganahin

Ang Global Interrupt Enable bit ay dapat na itakda para ma-enable ang mga nakakagambala. Ang indibidwal na makagambala paganahin ang kontrol ay pagkatapos ay isinasagawa sa magkakahiwalay na mga rehistro ng kontrol. Kung ang Global Interrupt Enable Register ay na-clear, wala sa mga nakagagambala na pinapagana nang malaya sa indibidwal na mga setting ng pag-abala ng pag-enable. Ang I-bit ay na-clear ng hardware pagkatapos ng isang nakakagambala na naganap, at itinakda ng tagubilin ng RETI upang paganahin ang mga kasunod na pagkagambala. Ang I-bit ay maaari ding itakda at i-clear ng application na may mga tagubilin na SEI at CLI, tulad ng inilarawan sa sanggunian ng hanay ng pagtuturo.

Bit 6 - T: Pag-iimbak ng Bit Copy

Ang mga tagubilin sa Bit Copy na BLD (Bit LoaD) at BST (Bit STore) ay gumagamit ng T-bit bilang mapagkukunan o patutunguhan para sa pinapatakbo na bit. Medyo mula sa isang pagrehistro sa Rehistro File maaaring makopya sa T ng tagubilin ng BST, at medyo sa T ay maaaring makopya nang kaunti sa isang rehistro sa Rehistro File ng tagubilin ng BLD.

Bit 5 - H: Half Carry Flag

Ang Half Carry Flag H ay nagpapahiwatig ng isang Half Carry sa ilang mga operasyon sa arithmetic. Ang Half Carry ay kapaki-pakinabang sa BCD arithmetic. Tingnan ang "Paglalarawan ng Itakda ng Pagtuturo" para sa detalyadong impormasyon.

Bit 4 – S: Sign Bit, S = N ⊕ V

Ang S-bit ay palaging isang eksklusibo o sa pagitan ng Negatibong Flag N at ng Kompletong Overflow Flag V. Tingnan ang "Paglalarawan ng Itakda ng Tagubilin" para sa detalyadong impormasyon.

Bit 3 - V: I-flag ang Overplement ng Overflow Flag

Sinusuportahan ng Two's Complement Overflow Flag V ang kompletong arithmetic ng dalawa. Tingnan ang "Paglalarawan ng Itakda ng Pagtuturo" para sa detalyadong impormasyon.

Bit 2 - N: Negatibong Flag

Ang Negatibong Flag N ay nagpapahiwatig ng isang negatibong resulta sa isang operasyon ng arithmetic o lohika. Tingnan ang "Paglalarawan ng Itakda ng Pagtuturo" para sa detalyadong impormasyon.

Bit 1 - Z: Zero Flag

Ang Zero Flag Z ay nagpapahiwatig ng isang zero na resulta sa isang operasyon ng arithmetic o lohika. Tingnan ang "Paglalarawan ng Itakda ng Pagtuturo" para sa detalyadong impormasyon.

Bit 0 - C: Magdala ng Bandila

Ang Carry Flag C ay nagpapahiwatig ng pagdala sa isang operasyon ng arithmetic o lohika. Tingnan ang "Paglalarawan ng Itakda ng Pagtuturo" para sa detalyadong impormasyon.

Pangkalahatang Layunin ng Rehistro File

Ang Register File ay na-optimize para sa hanay ng pagtuturo ng AVR Enhanced RISC. Upang makamit ang kinakailangang pagganap at kakayahang umangkop, ang mga sumusunod na iskema ng input / output ay sinusuportahan ng Rehistro File:

Isang 8-bit output operand at isang 8-bit na resulta ng input

Dalawang 8-bit na output ang nagpapatakbo at isang 8-bit na input ng resulta

Dalawang 8-bit na output ang nagpapatakbo at isang 16-bit na input ng resulta

Isang 16-bit output operand at isang 16-bit na resulta ng input

Larawan 4-2 ipinapakita ang istraktura ng 32 pangkalahatang layunin na nagtatrabaho mga rehistro sa CPU. Pangkalahatang layunin

Gaya ng ipinapakita sa Larawan 4-2, ang bawat rehistro ay bibigyan din ng isang memorya ng Data address, pagmamapa sa kanila nang direkta sa unang 32 mga lokasyon ng Data Space ng gumagamit. Bagaman hindi ipinatupad nang pisikal bilang mga lokasyon ng SRAM, ang samahang ito ng memorya ay nagbibigay ng mahusay na kakayahang umangkop sa pag-access ng mga rehistro, dahil ang mga rehistro ng X-, Y- at Z-pointer ay maaaring maitakda upang ma-index ang anumang rehistro sa file.Karamihan sa mga tagubiling gumagana sa Register File may direktang pag-access sa lahat ng mga rehistro, at karamihan sa mga ito ay mga tagubilin sa ikot ng sinle.

Ang X-register, Y-register, at Z-register

Ang mga rehistro R26..R31 ay may ilang idinagdag na mga pag-andar sa kanilang pangkalahatang paggamit ng layunin. Ang mga rehistro na ito ay 16-bit na mga pointer ng address para sa hindi direktang pagtugon sa puwang ng data. Ang tatlong hindi direktang address na rehistro ng X, Y, at Z ay tinukoy tulad ng inilarawan sa Larawan 4-3.

Magrehistro

Sa iba't ibang mga mode sa pagtugon sa mga rehistro ng address na ito ay may mga function bilang nakapirming pag-aalis, awtomatikong pagdaragdag, at awtomatikong pagbawas (tingnan ang sanggunian na itinakda ng tagubilin para sa mga detalye).

Stack Pointer

Pangunahing ginagamit ang Stack para sa pagtatago ng pansamantalang data, para sa pag-iimbak ng mga lokal na variable at para sa pagtatago ng mga pagbalik ng address pagkatapos ng mga nakakagambala at subroutine na tawag. Ang Registrong Stack Pointer ay laging tumuturo sa tuktok ng Stack. Tandaan na ang Stack ay ipinatupad bilang lumalaking mula sa mas mataas na mga lokasyon ng memorya sa mas mababang mga lokasyon ng memorya. Ipinapahiwatig nito na ang isang utos ng Stack PUSH ay binabawasan ang Stack Pointer.

Itinuturo ng Stack Pointer ang data na lugar ng SRAM Stack kung saan matatagpuan ang Subroutine at Interrupt Stacks. Ang puwang na Stack sa data ng SRAM ay dapat na tinukoy ng programa bago ang anumang mga tawag sa subroutine ay naisakatuparan o pinagana ang mga pagkagambala. Dapat itakda ang Stack Pointer upang ituro sa itaas ng 0x60. Ang Stack Pointer ay nabawasan ng isa kapag ang data ay itinulak papunta sa Stack gamit ang tagubilin ng PUSH, at ito ay nabawasan ng dalawa kapag ang address ng pagbabalik ay itinulak papunta sa Stack na may subroutine call o makagambala. Ang Stack Pointer ay nadagdagan ng isa kapag ang data ay na-pop mula sa Stack na may tagubilin sa POP, at nadagdagan ito ng dalawa kapag ang data ay na-pop mula sa Stack na may pagbabalik mula sa subroutine RET o pagbabalik mula sa makagambala RETI.

Ang AVR Stack Pointer ay ipinatupad bilang dalawang 8-bit na rehistro sa puwang ng I / O. Ang bilang ng mga piraso ng tunay na ginamit ay umaasa sa pagpapatupad. Tandaan na ang puwang ng data sa ilang pagpapatupad ng arkitekturang AVR ay napakaliit na ang SPL lamang ang kinakailangan. Sa kasong ito, ang rehistro ng SPH ay wala.

SPH at SPL - Rehistro ng Stack Pointer

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
Basahin/Isulat R/W R/W R/W R/W R/W R/W R/W R/W
Basahin/Isulat R/W R/W R/W R/W R/W R/W R/W R/W
Paunang Halaga RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND
Paunang Halaga RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND

Oras ng Pagpapatupad ng Tagubilin

Inilalarawan ng seksyong ito ang pangkalahatang mga konsepto ng timing ng pag-access para sa pagpapatupad ng pagtuturo. Ang AVR CPU ay hinihimok ng CPU clock clkCPU, direktang nabuo mula sa napiling source ng orasan para sa chip. Walang ginagamit na internal clock division.

Fig4.4

Larawan 4-4 ipinapakita ang mga parallel na pagkuha ng tagubilin at pagpapatupad ng pagtuturo na pinagana ng arkitektura ng Harvard at ang mabilis na pag-access sa Rehistro File konsepto. Ito ang pangunahing konsepto ng pipelining upang makakuha ng hanggang sa 1 MIPS bawat MHz na may kaukulang natatanging mga resulta para sa mga pagpapaandar sa bawat gastos, pag-andar bawat orasan, at pag-andar bawat power-unit.

Larawan 4-5. Pagpapatakbo ng ALU na Isang Ikot

Fig4.5

I-reset at Makagambala sa Paghawak

Nagbibigay ang AVR ng maraming magkakaibang mapagkukunang nakakagambala. Ang mga nakakagambala at ang magkakahiwalay na I-reset ang Vector bawat isa ay may hiwalay na Program Vector sa puwang ng memorya ng Program. Ang lahat ng mga pagkagambala ay nakatalaga sa bawat isa na paganahin ang mga bits na dapat nakasulat na lohika isa kasama ang Global Interrupt Paganahin ang bit sa Rehistro ng Katayuan upang paganahin ang abala.

Ang pinakamababang mga address sa puwang ng memorya ng Program ay sa pamamagitan ng default na tinukoy bilang I-reset at Makagambala Mga Vector. Ang kumpletong listahan ng mga vector ay ipinapakita sa "Nakagambala" sa pahina 48. Tinutukoy din ng listahan ang mga antas ng priyoridad ng iba't ibang mga pagkagambala. Ang mas mababang address na mas mataas ay ang antas ng priyoridad. Ang RESET ay may pinakamataas na priyoridad, at ang susunod ay INT0 - ang External Interrupt Request 0.

Kapag nangyari ang isang nakakagambala, ang Global Interrupt Enable I-bit ay malinis at ang lahat ng mga nakakagambala ay hindi pinagana. Ang gumagamit na soft-ware ay maaaring magsulat ng lohika isa sa I-bit upang paganahin ang mga pugad na pagkagambala. Ang lahat ng pinagana na mga pagkagambala ay maaaring makagambala sa kasalukuyang nakakagambala na gawain. Ang I-bit ay awtomatikong itinakda kapag ang isang Return mula sa Nakagambalang tagubilin - RETI - ay naisakatuparan.

Mayroong karaniwang dalawang uri ng mga nakakagambala. Ang unang uri ay na-trigger ng isang kaganapan na nagtatakda ng Interrupt Flag. Para sa mga pagkagambala na ito, ang Program Counter ay naka-vector sa aktwal na Interrupt Vector upang maipatupad ang nakagagambala na gawain sa paghawak, at nililinis ng hardware ang kaukulang Bandila sa Pag-abala. Ang paggambala ng Mga Bandila ay maaari ring malinis sa pamamagitan ng pagsulat ng isang lohika sa (mga) posisyon ng flag bit upang mai-clear. Kung ang isang nakakagambala na kundisyon ay nangyayari habang ang katumbas na makagambala na paganahin ang bit ay na-clear, ang Makagambala na I-flag ay maitatakda at maaalala hanggang sa paganahin ang abala, o ang watawat ay malinis ng software. Katulad nito, kung ang isa o higit pang mga nakakagambalang kundisyon ay nagaganap habang ang Global Interrupt Enable bit ay na-clear, ang kaukulang (mga) Interrupt Flag ay maitatakda at maaalala hanggang sa maitakda ang Global Interrupt Enable bit, at pagkatapos ay isagawa sa pamamagitan ng pagkakasunud-sunod ng priyoridad.

Ang pangalawang uri ng mga nakakagambala ay mag-uudyok hangga't mayroon ang nakakagambala na kondisyon. Ang mga pagkakagambala na ito ay hindi kinakailangang magkaroon ng mga Interrupt Flags. Kung ang kondisyon ng nakakagambala ay nawala bago paganahin ang pagkagambala, ang maantala ay hindi ma-trigger.

Kapag ang AVR ay lumabas mula sa isang nakakagambala, palagi itong babalik sa pangunahing programa at magpatupad ng isa pang tagubilin bago maihatid ang anumang nakabinbing pagkagambala.

Tandaan na ang Pagrehistro ng Katayuan ay hindi awtomatikong nakaimbak kapag pumapasok sa isang nakakagambalang gawain, o naibalik kapag bumalik mula sa isang nakakagambalang gawain. Dapat itong hawakan ng software.

Kapag ginagamit ang tagubilin ng CLI upang huwag paganahin ang mga nakakagambala, ang mga nakakagambala ay agad na hindi pagaganahin. Walang interrupt na naisakatuparan pagkatapos ng tagubilin sa CLI, kahit na nangyayari ito nang sabay-sabay sa tagubilin ng CLI. Ang sumusunod na datingampipinapakita ng le kung paano ito magagamit upang maiwasan ang mga pagkakagambala sa oras ng pagkakasunud-sunod ng pagsulat ng EEPROM.

Assembly Code Halample
sa r16, SREG ; mag-imbak ng halaga ng SREG

cli ; huwag paganahin ang mga pagkagambala sa panahon ng pagkakasunud-sunod ng oras

sbi EECR, EEMPE ; simulan ang pagsulat ng EEPROM

sbi EECR, EEPE

palabas ng SREG, r16 ; ibalik ang halaga ng SREG (I-bit)

C Code Halample
char cSREG;

cSREG = SREG; /* store SREG value */

/* huwag paganahin ang mga interrupt sa panahon ng pagkakasunod-sunod ng oras */

_CLI ();

EECR |= (1<

EECR | = (1 <

SREG = cSREG; /* ibalik ang halaga ng SREG (I-bit) */

Kapag ginagamit ang tagubilin ng SEI upang paganahin ang mga pagkagambala, ang sumusunod na tagubilin sa SEI ay papatayin bago ang anumang nakakagambala na pagkagambala, tulad ng ipinakita sa dating itoample.

Assembly Code Halample
sei ; itakda ang Global Interrupt Enable

matulog; pumasok sa pagtulog, naghihintay ng interrupt

; tala: papasok sa pagtulog bago ang anumang nakabinbin

; makagambala (mga)

C Code Halample
_SEI(); /* set Global Interrupt Enable */

_SLEEP(); /* pumasok sa pagtulog, naghihintay ng interrupt */

/ * tala: papasok sa pagtulog bago ang anumang nakabinbing (mga) nakakagambala * /

Makagambala sa Oras ng Tugon

Ang sagabal na tugon sa pagpapatupad para sa lahat ng pinapagana na AVR interrupts ay minimum na apat na orasan ng orasan. Matapos ang apat na pag-ikot ng orasan ang address ng Program Vector para sa aktwal na nakagagambala na gawain sa paghawak ay naisakatuparan. Sa panahon ng apat na orasan ng pag-ikot na ito, ang Program Counter ay itinutulak papunta sa Stack. Ang vector ay karaniwang isang pagtalon sa nakakagambala na gawain, at ang pagtalon na ito ay tumatagal ng tatlong mga cycle ng orasan. Kung naganap ang isang nakakagambala sa panahon ng pagpapatupad ng isang multi-cycle na tagubilin, ang tagubiling ito ay nakumpleto bago maihatid ang pagkagambala. Kung ang isang nakakagambala ay nangyayari kapag ang MCU ay nasa mode ng pagtulog, ang oras ng pagtugon sa pagkagambala ng pagpapatupad ay nadagdagan ng apat na mga cycle ng orasan. Ang pagtaas na ito ay idinagdag bilang karagdagan sa oras ng pagsisimula mula sa napiling mode ng pagtulog.

Ang pagbabalik mula sa isang nakakagambala na gawain sa paghawak ay tumatagal ng apat na mga cycle ng orasan. Sa panahon ng apat na cycle ng orasan, ang Program Counter (dalawang bytes) ay naibalik mula sa Stack, ang Stack Pointer ay nadagdagan ng dalawa, at ang I-bit sa SREG ay naitakda.

Mga Alaala ng AVR

Inilalarawan ng seksyong ito ang iba't ibang mga alaala sa ATtiny25 / 45/85. Ang arkitektura ng AVR ay may dalawang pangunahing puwang sa memorya, ang memorya ng Data at puwang ng memorya ng Program. Bilang karagdagan, nagtatampok ang ATtiny25 / 45/85 ng isang EEPROM Memory para sa pag-iimbak ng data. Ang lahat ng tatlong mga puwang sa memorya ay linear at regular.

In-System Re-programmable Flash Program Memory

Ang ATtiny25 / 45/85 ay naglalaman ng 2/4 / 8K bytes On-chip In-System Reprogrammable Flash memory para sa pag-iimbak ng programa. Dahil ang lahat ng mga tagubilin sa AVR ay 16 o 32 bits ang lapad, ang Flash ay naayos bilang 1024/2048/4096 x 16.

Ang memorya ng Flash ay may pagtitiis ng hindi bababa sa 10,000 pagsulat / burahin ang mga siklo. Ang ATtiny25 / 45/85 Program Counter (PC) ay may lapad na 10/11/12, kaya't hinarap ang mga lokasyon ng memorya ng 1024/2048/4096. "Memory Program- ming ”sa pahina 147 naglalaman ng isang detalyadong paglalarawan sa Flash data serial na pag-download gamit ang mga SPI pin.

Ang mga patuloy na talahanayan ay maaaring ilaan sa loob ng buong puwang ng address ng memorya ng Program (tingnan ang paglalarawan sa tagubilin sa memorya ng memorya ng Load).

Larawan 5-1. Mapa ng Memorya ng Programa Mapa ng memorya

Memorya ng data ng SRAM

Larawan 5-2 ipinapakita kung paano nakaayos ang ATtiny25 / 45/85 SRAM Memory.

Ang mas mababang 224/352/607 Mga lokasyon ng memorya ng data ay tumutugon sa parehong Pagrehistro File, ang memorya ng I / O at ang panloob na data na SRAM. Ang unang 32 mga lokasyon ay tumutugon sa Rehistro File, ang susunod na 64 na lokasyon ng karaniwang memorya ng I / O, at ang huling 128/256/512 na mga lokasyon ay tumutugon sa panloob na data na SRAM.

Ang limang magkakaibang mga mode sa pag-address para sa takip ng memorya ng Data: Direkta, Hindi Direkta sa Paglipat, Hindi Direkta, Hindi tuwid na may Paunang pagbawas, at Hindi Direkta na may Post-increment. Sa Rehistro File, ang mga rehistro ng R26 hanggang R31 ay nagtatampok ng hindi direktang pagtugon sa mga rehistro ng pointer.

Naaabot ng direktang pag-address ang buong puwang ng data.

Ang mode na Indirect with Displaced ay umabot sa 63 mga lokasyon ng address mula sa base address na ibinigay ng Y- o Z- register.

Kapag gumagamit ng rehistro ng hindi direktang mga mode sa pagtugon sa mga awtomatikong pre-decrement at post-increment, ang address na nagparehistro ng X, Y, at Z ay nabawasan o nadagdagan.

Ang 32 pangkalahatang layunin na nagtatrabaho na mga rehistro, 64 na Rehistro ng I / O, at ang 128/256/512 byte ng panloob na data na SRAM sa ATtiny25 / 45/85 ay maa-access sa lahat ng mga mode na ito sa pagtugon. Ang rehistro File ay inilarawan sa "Gen- hindi wastong Pagrehistro sa Layunin File”Sa pahina 10.

Larawan 5-2. Mapa ng Memorya ng Data Mapa ng memorya 2

Access sa Memorya ng Data Mga oras

Inilalarawan ng seksyong ito ang pangkalahatang mga konsepto ng timing ng access para sa internal memory access. Ang panloob na data SRAM access ay ginagawa sa dalawang clkCPU cycle tulad ng inilarawan sa Larawan 5-3.

Larawan 5-3. On-chip Data SRAM Access cycles Sa chip data Memory ng Data ng EEPROM

Naglalaman ang ATtiny25 / 45/85 ng 128/256/512 bytes ng data ng memorya ng EEPROM. Isinaayos ito bilang isang hiwalay na puwang ng data, kung saan ang mga solong byte ay maaaring mabasa at maisulat. Ang EEPROM ay may pagtitiis ng hindi bababa sa 100,000 magsulat / burahin ang mga cycle. Ang pag-access sa pagitan ng EEPROM at ng CPU ay inilarawan sa sumusunod, na tumutukoy sa Mga Rehistro ng Address ng EEPROM, ang Rehistro ng Data ng EEPROM, at ang Rehistro ng Control ng EEPROM. Para sa mga detalye tingnan “Serial Downloading” sa pahina 151.

Basahin / I-access ang EEPROM

Maa-access ang EEPROM Access Registro sa puwang ng I / O.

Ang mga oras ng pagsulat ng pag-access para sa EEPROM ay ibinibigay sa Talahanayan 5-1 sa pahina 21. Ang isang self-timing function, gayunpaman, ay nagbibigay-daan sa software ng user na matukoy kung kailan maisusulat ang susunod na byte. Kung ang user code ay naglalaman ng mga tagubilin na nagsusulat ng EEPROM, ilang mga pag-iingat ang dapat gawin. Sa mabigat na na-filter na mga supply ng kuryente, ang VCC ay malamang na tumaas o bumagsak nang dahan-dahan

Power-up / down. Ito ay sanhi ng aparato para sa ilang tagal ng panahon upang tumakbo sa isang voltage mas mababa kaysa sa tinukoy bilang minimum para sa dalas ng orasan na ginamit. Tingnan mo "Pag-iwas sa Korupsyon ng EEPROM" sa pahina 19 para sa mga detalye sa kung paano maiiwasan ang mga problema sa mga sitwasyong ito.

Upang mapigilan ang hindi sinasadyang pagsulat ng EEPROM, dapat sundin ang isang tukoy na pamamaraan sa pagsulat. Sumangguni sa "Atomiko Byte Programming ”sa pahina 17 at "Split Byte Programming" sa pahina 17 para sa mga detalye tungkol dito.

Kapag nabasa ang EEPROM, ang CPU ay ihinto para sa apat na cycle ng orasan bago ang susunod na tagubilin ay naisakatuparan. Kapag nakasulat ang EEPROM, ang CPU ay ihinto para sa dalawang mga cycle ng orasan bago ang susunod na tagubilin ay naisakatuparan.

Atomic Byte Programming

Ang paggamit ng Atomic Byte Programming ay ang pinakasimpleng mode. Kapag nagsusulat ng isang byte sa EEPROM, dapat isulat ng gumagamit ang address sa EEAR Rehistro at data sa EEDR Register. Kung ang mga piraso ng EEPMn ay zero, ang pagsulat ng EEPE (sa loob ng apat na siklo pagkatapos isulat ang EEMPE) ay magpapalitaw sa pagpapatanggal / pagsulat ng operasyon. Parehong ang burahin at isulat ang ikot ay tapos na sa isang operasyon at ang kabuuang oras ng programa ay ibinigay sa Talahanayan 5-1 sa pahina 21. Ang EEPE bit ay nananatiling nakatakda hanggang sa burahin at isulat ang mga pagpapatakbo. Habang ang aparato ay abala sa pagprograma, hindi posible na gumawa ng iba pang mga pagpapatakbo ng EEPROM.

Split Byte Programming

Posibleng hatiin ang burahin at isulat ang ikot sa dalawang magkakaibang operasyon. Maaari itong maging kapaki-pakinabang kung ang system ay nangangailangan ng maikling oras ng pag-access para sa ilang limitadong tagal ng oras (karaniwang kung ang power supply voltagbumagsak e). Upang makakuha ng advance- tage ng pamamaraang ito, kinakailangan na ang mga lokasyon na isusulat ay nabura bago ang operasyon ng pagsusulat. Ngunit dahil ang pagbura at pagsulat ng mga pagpapatakbo ay nahahati, posible na gawin ang burahin ang mga operasyon kapag pinapayagan ng system ang paggawa ng mga operasyon na kritikal sa oras (karaniwang pagkatapos ng Power-up).

Burahin

Upang burahin ang isang byte, ang address ay dapat na nakasulat sa EEAR. Kung ang mga piraso ng EEPMn ay 0b01, ang pagsulat ng EEPE (sa loob ng apat na siklo pagkatapos isulat ang EEMPE) ay magpapalitaw lamang sa burahin ang operasyon (ang oras ng pagprograma ay ibinigay Talahanayan 5-1 sa pahina 21). Ang EEPE bit ay nananatiling nakatakda hanggang sa makumpleto ang pagpapatakbo ng burado. Habang ang aparato ay abala sa pagprograma, hindi posible na gumawa ng anumang iba pang mga pagpapatakbo ng EEPROM.

Sumulat

Upang magsulat ng isang lokasyon, dapat isulat ng gumagamit ang address sa EEAR at ang data sa EEDR. Kung ang EEPMn bits ay 0b10, ang pagsulat ng EEPE (sa loob ng apat na cycle pagkatapos isulat ang EEMPE) ay mag-uudyok lamang sa operasyon ng pagsusulat (ang oras ng program- ming ay ibinigay sa Talahanayan 5-1 sa pahina 21). Ang EEPE bit ay nananatiling nakatakda hanggang sa makumpleto ang operasyon ng pagsusulat. Kung ang lugar na isusulat ay hindi nabura bago isulat, ang data na nakaimbak ay dapat isaalang-alang bilang nawala. Habang ang aparato ay abala sa pagprograma, hindi posible na gumawa ng anumang iba pang mga pagpapatakbo ng EEPROM.

Ang naka-calibrate na Oscillator ay ginagamit upang i-time ang pag-access ng EEPROM. Tiyaking ang dalas ng Oscillator ay nasa loob ng mga kinakailangang inilarawan sa “OSCCAL - Oscillator Calibration Rehistro” sa pahina 31.

Ang sumusunod na code exampIpinapakita ng les ang isang pagpupulong at isang pag-andar ng C para sa burahin, pagsulat, o pagsulat ng atomiko ng EEPROM. Ang datingampIpinapalagay ng les na ang mga pagkagambala ay kinokontrol (hal., sa pamamagitan ng hindi pagpapagana ng mga nakakagambala sa buong mundo) upang walang mga pagkakagambala na magaganap habang isinasagawa ang mga pagpapaandar na ito.

Assembly Code Halample
EEPROM_write:

; Maghintay para sa pagkumpleto ng nakaraang pagsulat

sbic EECR,EEPE

rjmp EEPROM_write

; Itakda ang Programming mode

ldi        r16, (0<<EEPM1)|(0<<EEPM0)

labas ng EECR, r16

; I-set up ang address (r18: r17) sa address register

out EEARH, r18

labas ng EEARL, r17

; Sumulat ng data (r19) sa pagrehistro ng data

labas ng EEDR, r19

; Sumulat ng isang lohikal sa EEMPE

sbi EECR,EEMPE

; Simulan ang pagsulat ng eeprom sa pamamagitan ng pagtatakda ng EEPE

sbi EECR,EEPE

ret

C Code Halample
void EEPROM_write(unsigned char ucAddress, unsigned char ucData)

{

/* Maghintay para sa pagkumpleto ng nakaraang pagsulat */ habang(EECR & (1<

;

/* Itakda ang Programming mode */

EECR = (0 <

/ * I-set up ang mga rehistro ng address at data * / EEAR = ucAddress;

EEDR = ucData;

/* Sumulat ng lohikal na isa sa EEMPE */

EECR | = (1 <

/ * Simulan ang pagsulat ng eeprom sa pamamagitan ng pagtatakda ng EEPE * /

EECR | = (1 <

}

Ang susunod na code examples ipakita ang pagpupulong at C function para sa pagbabasa ng EEPROM. Ang datingampipinapalagay ng les na ang mga pagkagambala ay kinokontrol upang walang mga pagkakagambala na magaganap habang isinasagawa ang mga pagpapaandar na ito.

Assembly Code Halample
EEPROM_read:

; Maghintay para sa pagkumpleto ng nakaraang pagsulat

sbic EECR,EEPE

rjmp EEPROM_read

; I-set up ang address (r18: r17) sa address register

out EEARH, r18

labas ng EEARL, r17

; Simulang basahin ang eeprom sa pamamagitan ng pagsulat DITO

sbi EECR,EERE

; Basahin ang data mula sa pagrehistro ng data

sa r16,EEDR

ret

C Code Halample
unsigned char EEPROM_read(unsigned char ucAddress)

{

/ * Maghintay para sa pagkumpleto ng nakaraang pagsulat * /

habang (EECR & (1 <

;

/ * I-set up ang rehistro ng address * / EEAR = ucAddress;

/* Simulan ang pagbabasa ng eeprom sa pamamagitan ng pagsulat ng EERE */

EECR | = (1 <

/ * Ibalik ang data mula sa pagrehistro ng data * /

ibalik ang EEDR;

}

Pag-iwas sa Korapsyon sa EEPROM

Sa panahon ng mababang VCC, ang EEPROM data ay maaaring masira dahil ang supply voltage ay masyadong mababa para sa CPU at sa EEPROM upang gumana nang maayos. Ang mga isyung ito ay kapareho ng para sa mga system ng antas ng board na gumagamit ng EEPROM, at ang parehong solusyon sa disenyo ay dapat na mailapat.

Ang isang katiwalian sa data ng EEPROM ay maaaring sanhi ng dalawang sitwasyon kung ang voltage sobrang baba. Una, ang isang regular na pagkakasunud-sunod ng pagsulat sa EEPROM ay nangangailangan ng isang minimum na voltage upang gumana nang tama. Pangalawa, ang CPU mismo ay maaaring magpatupad ng maling mga tagubilin, kung ang supply voltage ay masyadong mababa.

Ang katiwalian sa EEPROM data ay madaling maiiwasan sa pamamagitan ng pagsunod sa rekomendasyong ito sa disenyo:

Panatilihing aktibo (mababa) ang AVR RESET sa mga panahon ng hindi sapat na suplay ng kuryente voltage. Maaari itong magawa sa pamamagitan ng pagpapagana ng panloob na Brown-out Detector (BOD). Kung ang antas ng pagtuklas ng panloob na BOD ay hindi tumutugma sa

kinakailangang antas ng pagtuklas, maaaring gumamit ng panlabas na mababang VCC reset protection circuit. Kung ang isang pag-reset ay nangyari habang ang isang write operation ay isinasagawa, ang write operation ay makukumpleto sa kondisyon na ang power supply voltage ay sapat na.

Memorya ng I / O

Ang kahulugan ng puwang I / O ng ATtiny25 / 45/85 ay ipinakita sa "Buod ng Pagrehistro" sa pahina 200.

Lahat ng ATtiny25 / 45/85 I / Os at mga peripheral ay inilalagay sa puwang ng I / O. Ang lahat ng mga lokasyon ng I / O ay maaaring ma-access ng mga tagubilin sa LD / LDS / LDD at ST / STS / STD, paglilipat ng data sa pagitan ng 32 mga rehistro na nagtatrabaho sa pangkalahatang layunin at puwang ng I / O. Ang I / O Mga Rehistro sa loob ng saklaw ng address na 0x00 - 0x1F ay direktang na-a-access gamit ang mga tagubilin ng SBI at CBI. Sa mga rehistro na ito, ang halaga ng mga solong piraso ay maaaring masuri sa pamamagitan ng paggamit ng mga tagubilin sa SBIS at SBIC. Sumangguni sa seksyon ng hanay ng pagtuturo para sa higit pang mga detalye. Kapag ginagamit ang tiyak na mga utos na I / O na IN at OUT, dapat gamitin ang I / O na mga address na 0x00 - 0x3F. Kapag tinutugunan ang I / O Mga Pagrehistro bilang puwang ng data gamit ang mga tagubilin sa LD at ST, 0x20 ay dapat idagdag sa mga address na ito.

Para sa pagiging tugma sa mga hinaharap na aparato, ang mga nakareserba na piraso ay dapat na nakasulat sa zero kung na-access. Ang nakareserba na mga memorya ng I / O ay hindi dapat naisulat.

Ang ilan sa Mga Flag ng Katayuan ay na-clear sa pamamagitan ng pagsulat ng isang lohikal sa kanila. Tandaan na ang mga tagubilin ng CBI at SBI ay gagana lamang sa tinukoy na bit, at samakatuwid ay maaaring magamit sa mga rehistro na naglalaman ng naturang Mga Status Flags. Ang mga tagubilin sa CBI at SBI ay gumagana lamang sa mga pagrehistro ng 0x00 hanggang 0x1F lamang.

Ang I / O at Peripherals Control Registro ay ipinaliwanag sa mga susunod na seksyon.

Paglalarawan ng Paglalarawan

TAON - Rehistro ng Address ng EEPROM

bit 7 6 5 4 3 2 1 0
0x1F TAON8 TAON
Basahin/Isulat R R R R R R R R/W
Paunang Halaga 0 0 0 0 0 0 0 X/0

Mga Bits 7: 1 - Res: Nakareserba na Mga Bits

Ang mga piraso na ito ay nakalaan para magamit sa hinaharap at palaging basahin bilang zero.

Mga Bits 0 - EEAR8: Address ng EEPROM

Ito ang pinaka makabuluhang address ng EEPROM na bit ng ATtiny85. Sa mga aparato na may mas kaunting EEPROM, ie ATtiny25 / ATtiny45, ang bit na ito ay nakalaan at palaging basahin ang zero. Ang paunang halaga ng EEPROM Address Regis- ter (EEAR) ay hindi natukoy at ang isang wastong halaga samakatuwid ay dapat na nakasulat bago ma-access ang EEPROM.

EEARL - Rehistro ng Address ng EEPROM

bit

0x1E TAON7 TAON6 TAON5 TAON4 TAON3 TAON2 TAON1 TAON0 TAON
Rear / Sumulat R/W R/W R/W R/W R/W R/W R/W R/W
Paunang Halaga X X X X X X X X

Bit 7 - EEAR7: Address ng EEPROM

Ito ang pinaka makabuluhang address ng EEPROM na bit ng ATtiny45. Sa mga aparato na may mas kaunting EEPROM, ie ATtiny25, ang bit na ito ay nakalaan at palaging basahin ang zero. Ang paunang halaga ng EEPROM Address Register (EEAR) ay hindi natukoy at ang isang wastong halaga samakatuwid ay dapat na nakasulat bago ma-access ang EEPROM.

Mga Bits 6: 0 - TAON [6: 0]: EEPROM Address

Ito ang mga (mababang) piraso ng EEPROM Address Register. Ang mga byte ng data ng EEPROM ay tuwid na nakalagay sa saklaw na 0… (128/256 / 512-1). Ang paunang halaga ng EEAR ay hindi natukoy at ang isang wastong halaga ay dapat na nakasulat sa gayon bago ma-access ang EEPROM.

EEDR - Rehistro ng Data ng EEPROM

bit 7 6 5 4 3 2 1 0
0x1D EEDR7 EEDR6 EEDR5 EEDR4 EEDR3 EEDR2 EEDR1 EEDR0 EEDR
Basahin/Isulat R/W R/W R/W R/W R/W R/W R/W R/W
Paunang Halaga 0 0 0 0 0 0 0 0

Para sa pagpapatakbo ng pagsulat ng EEPROM ang EEDR Register ay naglalaman ng data na isusulat sa EEPROM sa address na ibinigay ng EEAR Register. Para sa operasyon na basahin ang EEPROM, naglalaman ang EEDR ng data na basahin mula sa

EEPROM sa address na ibinigay ng EEAR.

 

5.5.4 EECR - Rehistro ng Control ng EEPROM

Bit 7 6 5 4 3 2 1 0
0x1C        – EEPM1 EEPM0 EERIE EEMPE EEPE EERE EECR
Basahin / Isulat ang R R R / W R/W R/W R/W R/W R/W
Paunang Halaga 0 0 X X 0 0 X 0

Bit 7 - Res: Nakareserba na Bit

Ang bit na ito ay nakalaan para magamit sa hinaharap at palaging basahin bilang 0 sa ATtiny25 / 45/85. Para sa pagiging tugma sa mga aparatong AVR sa hinaharap, palaging isulat ang bit na ito hanggang sa zero. Pagkatapos basahin, i-mask ang kaunti.

Bit 6 - Res: Nakareserba na Bit

Ang bit na ito ay nakalaan sa ATtiny25 / 45/85 at palaging basahin bilang zero.

Mga Bits 5: 4 - EEPM [1: 0]: Mga EEPROM Programming Mode Bits

Tinutukoy ng setting ng mga mode ng EEPROM mode na tumutukoy sa aling pagkilos sa programa ang mai-trigger kapag nagsusulat ng EEPE. Posibleng i-program ang data sa isang operasyon ng atomic (burahin ang dating halaga at i-program ang bagong halaga) o upang hatiin ang pagpapatakbo ng Burahin at Isulat sa dalawang magkakaibang operasyon. Ang mga oras ng Programming para sa iba't ibang mga mode ay ipinapakita sa Talahanayan 5-1. Habang nakatakda ang EEPE, ang anumang pagsulat sa EEPMn ay hindi papansinin. Sa panahon ng pag-reset, ang EEPMn bits ay mare-reset sa 0b00 maliban kung ang EEPROM ay abala sa pag-program.

Talahanayan 5-1. Mga Bit ng EEPROM Mode

EEPM1 EEPM0 Oras ng Programming Operasyon
0 0 3.4 ms Burahin at Isulat sa isang operasyon (Atomic Operation)
0 1 1.8 ms Burahin Lamang
1 0 1.8 ms Sumulat Lamang
1 1 Nakalaan para magamit sa hinaharap

Bit 3 - EERIE: EEPROM Ready Interrupt Enable

Ang pagsulat ng EERIE sa isa ay nagbibigay-daan sa EEPROM Ready Interrupt kung ang I-bit sa SREG ay nakatakda. Ang pagsulat sa EERIE sa zero ay hindi nagpapagana ng nakakagambala. Ang EEPROM Ready Interrupt ay bumubuo ng isang pare-pareho makagambala kapag ang Non-pabagu-bago ng memorya ay handa na para sa pag-program.

Bit 2 - EEMPE: Paganahin ang EEPROM Master Program

Tinutukoy ng EEMPE bit kung ang pagsulat ng EEPE sa isa ay magkakaroon ng epekto o hindi.

Kapag nakatakda ang EEMPE, ang pagtatakda ng EEPE sa loob ng apat na mga cycle ng orasan ay i-program ang EEPROM sa napiling address. Kung ang EEMPE ay zero, ang setting ng EEPE ay walang epekto. Kapag ang EEMPE ay nakasulat sa isa sa pamamagitan ng software, nalilimas ng hardware ang kaunti hanggang sa zero pagkatapos ng apat na cycle ng orasan.

Bit 1 - EEPE: Paganahin ang EEPROM Program

Ang Programang EEPROM Paganahin ang Signal EEPE ay ang pagpapagana ng signal ng programa sa EEPROM. Kapag nakasulat ang EEPE, mai-program ang EEPROM ayon sa setting ng mga EEPMn bits. Ang bit ng EEMPE ay dapat na nakasulat sa isa bago ang isang lohikal na nakasulat sa EEPE, kung hindi man walang EEPROM na isulat na maganap. Kapag lumipas ang oras ng pag-access sa pagsulat, ang EEPE bit ay nalilimas ng hardware. Kapag ang EEPE ay naitakda, ang CPU ay ihinto para sa dalawang mga pag-ikot bago ang susunod na tagubilin ay naisakatuparan.

Bit 0 - EERE: Paganahin ang EEPROM Paganahin

Ang EEPROM Basahin Paganahin ang Signal - EERE - ay ang basahin na strobo sa EEPROM. Kapag ang tamang address ay na-set up sa EEAR Rehistro, ang EERE bit ay dapat na nakasulat sa isa upang mapalitaw na basahin ang EEPROM. Ang access sa EEPROM na nabasa ay tumatagal ng isang tagubilin, at ang hiniling na data ay magagamit kaagad. Kapag nabasa ang EEPROM, ang CPU ay ihinto para sa apat na cycle bago ang susunod na tagubilin ay naisakatuparan. Dapat i-poll ng gumagamit ang EEPE bit bago simulan ang pagbasa na operasyon. Kung ang isang pagpapatakbo ng pagsulat ay isinasagawa, hindi posible na basahin ang EEPROM, o baguhin ang Pagrehistro ng EEAR.

Mga Pagpipilian sa Clock ng System at Clock

Mga Clock System at ang kanilang Pamamahagi

Pamamahagi ng orasan

Orasan ng CPU

Ang orasan ng CPU ay inilalagay sa mga bahagi ng system na nag-aalala sa pagpapatakbo ng AVR core. Halamples ng naturang mga modo ay ang Pangkalahatang Layunin ng Rehistro File, ang Rehistro sa Katayuan at ang memorya ng Data na humahawak ng Stack Pointer. Pinipigilan ng paghinto sa orasan ng CPU ang core mula sa pagsasagawa ng mga pangkalahatang operasyon at kalkulasyon.

I / O Clock - clkI / O

Ang orasan ng I / O ay ginagamit ng karamihan ng mga module na I / O, tulad ng Timer / Counter. Ang orasan ng I / O ay ginagamit din ng module ng Panlabas na Nakagambala, ngunit tandaan na ang ilang mga panlabas na pagkagambala ay napansin ng asynchronous na lohika, na pinapayagan ang mga naturang pagkagambala na makita kahit na tumigil ang I / O na orasan.

Flash Clock - clkFLASH

Kinokontrol ng orasan ng Flash ang pagpapatakbo ng interface ng Flash. Ang orasan ng Flash ay karaniwang aktibo nang sabay-sabay sa orasan ng CPU.

ADC Clock - clkADC

Ang ADC ay binigyan ng isang nakalaang domain ng orasan. Pinapayagan nitong ihinto ang CPU at I / O na orasan upang mabawasan ang ingay na nabuo ng digital circuitry. Nagbibigay ito ng mas tumpak na mga resulta ng conversion ng ADC.

Panloob na PLL para sa Mabilis na Pagbuo ng Orasan ng Peripheral - clkPCK

Ang panloob na PLL sa ATtiny25 / 45/85 ay bumubuo ng isang dalas ng orasan na 8x na pinarami mula sa isang mapagkukunan na input. Bilang default, ginagamit ng PLL ang output ng panloob, 8.0 MHz RC oscillator bilang mapagkukunan. Bilang kahalili, kung nakatakda ang bit LSM ng PLLCSR ang PLL ay gagamit ng output ng RC oscillator na hinati sa dalawa. Sa gayon ang output ng PLL, ang mabilis na peripheral na orasan ay 64 MHz. Ang mabilis na peripheral na orasan, o isang orasan na prescaled mula doon, ay maaaring mapili bilang mapagkukunan ng orasan para sa Timer / Counter1 o bilang isang orasan ng system. Tingnan mo Larawan 6-2. Ang dalas ng mabilis na peripheral na orasan ay nahahati sa dalawa kapag ang LSM ng PLLCSR ay nakatakda, na nagreresulta sa isang dalas ng orasan na 32 MHz. Tandaan, hindi maaaring itakda ang LSM kung gagamitin ang PLLCLK bilang system clock.

Larawan 6-2. PCK Clocking System. Pag-orasan ng PCK

Ang PLL ay naka-lock sa oscillator ng RC at ang pag-aayos ng oscillator ng RC sa pamamagitan ng pagrehistro ng OSCCAL ay ayusin ang mabilis na peripheral na orasan nang sabay. Gayunpaman, kahit na ang oscillator ng RC ay dadalhin sa isang mas mataas na dalas kaysa sa 8 MHz, ang mabilis na peripheral na dalas ng orasan ay nababad sa 85 MHz (pinakamasamang kaso) at nananatiling nakakilos sa pinakamataas na dalas. Dapat pansinin na ang PLL sa kasong ito ay hindi na naka-lock nang mas matagal sa orasan ng oscillator ng RC. Samakatuwid, inirerekumenda na huwag gawin ang mga pagsasaayos ng OSCCAL sa isang mas mataas na dalas kaysa sa 8 MHz upang mapanatili ang PLL sa tamang saklaw ng operating.

Pinapagana ang panloob na PLL kapag:

Ang PLLE bit sa rehistro na PLLCSR ay nakatakda.

Ang piyus ng CKSEL ay nai-program sa '0001'.

Ang piyus ng CKSEL ay nai-program sa '0011'.

Ang PLLCSR bit PLOCK ay nakatakda kapag ang PLL ay naka-lock. Parehong panloob na RC oscillator at PLL ay naka-off sa power down at stand-by sleep mode.

Panloob na PLL sa Mode ng Pagkatugma sa ATtiny15

Dahil ang ATtiny25 / 45/85 ay isang aparato ng paglipat para sa mga gumagamit ng ATtiny15 mayroong isang mode ng pagiging tugma ng ATtiny15 para sa pagiging tugma sa likuran. Ang mode ng pagiging tugma ng ATtiny15 ay napili sa pamamagitan ng pag-program ng CKSEL na piyus sa '0011'.

Sa mode ng pagiging tugma ng ATtiny15 ang dalas ng panloob na oscillator ng RC ay na-calibrate pababa sa 6.4 MHz at ang kadahilanan ng pagpaparami ng PLL ay nakatakda sa 4x. Tingnan mo Larawan 6-3. Sa mga pagsasaayos na ito ang sistema ng orasan ay ATtiny15-katugma at ang nagresultang mabilis na peripheral na orasan ay may dalas na 25.6 MHz (katulad ng sa ATtiny15).

Larawan 6-3. PCK Clocking System sa ATtiny15 Compatibility Mode. Sistema ng orasan

Mga Pinagmulan ng Orasan

Ang aparato ay may mga sumusunod na pagpipilian ng mapagkukunan ng orasan, mapipili ng mga Flash Fuse bits tulad ng ipinakita sa ibaba. Ang orasan mula sa napiling mapagkukunan ay pag-input sa generator ng orasan ng AVR, at isinasakay sa naaangkop na mga module.

Talahanayan 6-1. Piliin ang Opsyon sa Pag-orasan ng Device

Pagpipilian sa Clocking ng Device CKSEL[3:0](1)
Panlabas na Orasan (tingnan pahina 26) 0000
Mataas na Frequency PLL Clock (tingnan pahina 26) 0001
Naka-calibrate na Panloob na Oscillator (tingnan pahina 27) 0010(2)
Naka-calibrate na Panloob na Oscillator (tingnan pahina 27) 0011(3)
Panloob na 128 kHz Oscillator (tingnan pahina 28) 0100
Mababang Dalas ng Crystal Oscillator (tingnan pahina 29) 0110
Crystal Oscillator / Ceramic Resonator (tingnan pahina 29) 1000 – 1111
Nakareserba 0101, 0111

Para sa lahat ng mga piyus na "1" ay nangangahulugang walang programa habang ang "0" ay nangangahulugang naka-program.

Naipadala ang aparato sa napiling opsyong ito.

Pipiliin nito ang ATtiny15 Compatibility Mode, kung saan ang sistema ng orasan ay nahahati sa apat, na nagreresulta sa isang 1.6 MHz na dalas ng orasan. Para sa karagdagang inormation, kita n'yo "Calibrated Internal Oscillator" sa pahina 27.

Ang iba't ibang mga pagpipilian para sa bawat pagpipilian sa orasan ay ibinibigay sa mga sumusunod na seksyon. Kapag nagising ang CPU mula sa Power-down, ang napiling mapagkukunan ng orasan ay ginagamit upang i-time ang pagsisimula, na tinitiyak ang matatag na operasyon ng Oscillator bago magsimula ang pagpapatupad ng tagubilin. Kapag nagsimula ang CPU mula sa pag-reset, mayroong isang karagdagang pagkaantala na pinapayagan ang lakas na maabot ang isang matatag na antas bago simulan ang normal na operasyon. Ang Watchdog Oscillator ay ginagamit para sa pag-oras sa real-time na bahagi ng oras ng pagsisimula. Ang bilang ng mga WDT Oscillator cycle na ginamit para sa bawat time-out ay ipinapakita sa Talahanayan 6-2.

Talahanayan 6-2. Bilang ng Watchdog Oscillator cycle

Tipong Time-out Bilang ng mga Siklo
4 ms 512
64 ms 8K (8,192)

Panlabas na Orasan

Upang himukin ang aparato mula sa isang panlabas na mapagkukunan ng orasan, dapat itulak ang CLKI tulad ng ipinakita sa Larawan 6-4. Upang patakbuhin ang aparato sa isang panlabas na orasan, ang CKSEL Fuse ay dapat na program sa "00".

Larawan 6-4. Panlabas na Clock Drive Configuration

Fig6.4

Kapag napili ang mapagkukunang orasan na ito, ang mga oras ng pagsisimula ay natutukoy ng mga SUT Fuse tulad ng ipinakita sa Talahanayan 6-3.

Talahanayan 6-3. Mga Oras ng Pagsisimula para sa Panlabas na Pagpili ng Orasan

SUT[1:0] Start-up na Oras mula sa Power-down Karagdagang pagkaantala mula sa I-reset Inirerekomendang Paggamit
00 6 CK 14CK Pinagana ang BOD
01 6 CK 14CK + 4 ms Mabilis na tumataas na lakas
10 6 CK 14CK + 64 ms Dahan-dahang tumataas na lakas
11 Nakareserba

Kapag naglalapat ng isang panlabas na orasan, kinakailangan upang maiwasan ang mga biglaang pagbabago sa inilapat na dalas ng orasan upang matiyak ang matatag na pagpapatakbo ng MCU. Ang isang pagkakaiba-iba sa dalas ng higit sa 2% mula sa isang pag-ikot ng orasan hanggang sa susunod ay maaaring humantong sa hindi mahuhulaan na pag-uugali. Kinakailangan upang matiyak na ang MCU ay itinatago sa I-reset sa panahon ng naturang mga pagbabago sa dalas ng orasan.

Tandaan na ang System Clock Presale ay maaaring magamit upang ipatupad ang mga pagbabago sa run-time ng dalas ng panloob na orasan habang tinitiyak pa rin ang matatag na operasyon. Sumangguni sa "System Clock Prescaler" sa pahina 31 para sa mga detalye.

Mataas na Frequency PLL Clock

Mayroong isang panloob na PLL na nagbibigay ng nominally 64 MHz na rate ng orasan na naka-lock sa RC Oscillator para sa paggamit ng Peripheral Timer / Counter1 at para sa mapagkukunan ng orasan ng system. Kapag napili bilang isang mapagkukunan ng orasan ng system, sa pamamagitan ng programa- ang CKSEL ay nag-fuse sa '0001', nahahati ito sa apat na tulad ng ipinakita sa Talahanayan 6-4.

Talahanayan 6-4. High Frequency PLL Clock Operating Modes

CKSEL[3:0] Nominal na Dalas
0001 16 MHz

Kapag napili ang mapagkukunang orasan na ito, ang mga oras ng pagsisimula ay natutukoy ng mga SUT fuse tulad ng ipinakita sa Talahanayan 6-5.

Talahanayan 6-5. Mga Oras ng Pagsisimula para sa High Frequency na PLL Clock

SUT[1:0] Oras ng Pagsisimula mula sa Power Down Karagdagang Pagkaantala mula sa Pag-reset ng Power-On (VCC = 5.0V) Inirerekomendang paggamit
00 14CK + 1K (1024) CK + 4 ms 4 ms Pinagana ang BOD

Talahanayan 6-5. Mga Oras ng Pagsisimula para sa High Frequency na PLL Clock

SUT[1:0] Oras ng Pagsisimula mula sa Power Down Karagdagang Pagkaantala mula sa Pag-reset ng Power-On (VCC = 5.0V) Inirerekomendang paggamit
01 14CK + 16K (16384) CK + 4 ms 4 ms Mabilis na tumataas na lakas
10 14CK + 1K (1024) CK + 64 ms 4 ms Dahan-dahang tumataas na lakas
11 14CK + 16K (16384) CK + 64 ms 4 ms Dahan-dahang tumataas na lakas

Naka-calibrate na Panloob na Oscillator

Bilang default, ang Panloob na RC Oscillator ay nagbibigay ng isang tinatayang 8.0 MHz na orasan. Kahit na voltage at nakasalalay sa temperatura, ang orasan na ito ay maaaring maging tumpak na na-calibrate ng gumagamit. Tingnan mo "Na-calibrate ang Panloob na RC Oscillator Accu- racy ”sa pahina 164 at "Bilis ng Panloob na Oscillator" sa pahina 192 para sa karagdagang detalye. Ang aparato ay naipadala sa naka-program na CKDIV8 Fuse. Tingnan mo "System Clock Prescaler" sa pahina 31 para sa karagdagang detalye.

Ang orasan na ito ay maaaring mapili bilang orasan ng system sa pamamagitan ng pagprograma sa mga CKSEL Fuse tulad ng ipinakita sa Talahanayan 6-6 sa pahina

27. Kung napili, gagana ito nang walang mga panlabas na sangkap. Sa panahon ng pag-reset, na-load ng hardware ang pre-programmed na halaga ng pagkakalibrate sa Rehistro ng OSCCAL at dahil doon awtomatikong ini-calibrate ang RC Oscillator. Ang kawastuhan ng pagkakalibrate na ito ay ipinapakita bilang pag-calibrate ng Factory sa Talahanayan 21-2 sa pahina 164.

Sa pamamagitan ng pagbabago ng rehistro ng OSCCAL mula sa SW, tingnan ang “OSCCAL - Oscillator Calibration Rehistro” sa pahina 31, posible na makakuha ng isang mas mataas na kawastuhan ng pagkakalibrate kaysa sa pamamagitan ng paggamit ng pag-calibrate ng pabrika. Ang kawastuhan ng pagkakalibrate na ito ay ipinapakita bilang pag-calibrate ng User sa Talahanayan 21-2 sa pahina 164.

Kapag ang Oscillator na ito ay ginamit bilang chip clock, gagamitin pa rin ang Watchdog Oscillator para sa Watchdog Timer at para sa Reset Time-out. Para sa karagdagang impormasyon sa pre-program na halaga ng pagkakalibrate, tingnan ang seksyon "Cali- bration Bytes ”sa pahina 150.

Ang panloob na oscillator ay maaari ring maitakda upang magbigay ng isang 6.4 MHz na orasan sa pamamagitan ng pagsulat ng mga piyus ng CKSEL sa "0011", tulad ng ipinakita sa Talahanayan 6-6 sa ibaba. Ang setting na ito ay binago bilang ATtiny15 Mode ng Pagkatugma at inilaan upang magbigay ng isang naka-calibrate na mapagkukunan ng orasan sa 6.4 MHz, tulad ng sa ATtiny15. Sa ATtiny15 Compatibility Mode PLL ay gumagamit ng panloob na oscillator na tumatakbo sa 6.4 MHz upang makabuo ng isang 25.6 MHz peripheral na orasan signal para sa Timer / Counter1 (tingnan ang “8-bit Timer / Counter1 sa ATtiny15 Mode ”sa pahina 95). Tandaan na sa mode na ito ng pagpapatakbo ang signal ng orasan na 6.4 MHz ay ​​laging nahahati sa apat, na nagbibigay ng isang 1.6 MHz system na orasan.

Talahanayan 6-6. Panloob na Naka-calibrate na RC Oscillator Operating Mode

CKSEL[3:0] Nominal na Dalas
0010(1) 8.0 MHz
0011(2) 6.4 MHz

Naipadala ang aparato sa napiling opsyong ito.

Ang setting na ito ay pipiliin ang Mode ng Pagkatugma sa ATtiny15, kung saan ang orasan ng system ay nahahati sa apat, na nagreresulta sa dalas ng orasan na 1.6 MHz.

Kapag ang naka-calibrate na 8 MHz internal oscillator ay napili bilang mapagkukunan ng orasan ang mga oras ng pagsisimula ay natutukoy ng mga SUT Fuse tulad ng ipinakita sa Talahanayan 6-7 sa ibaba.

Talahanayan 6-7. Mga Oras ng Pagsisimula para sa Panloob na Naka-calibrate na RC Oscillator Clock

SUT[1:0] Start-up na Oras mula sa Power-down Karagdagang Pagkaantala mula sa Pag-reset (VCC = 5.0V) Inirerekomendang Paggamit
00 6 CK 14CK(1) Pinagana ang BOD
01 6 CK 14CK + 4 ms Mabilis na tumataas na lakas
10(2) 6 CK 14CK + 64 ms Dahan-dahang tumataas na lakas
11 Nakareserba

1. Kung ang programang RSTDISBL ay na-program, ang oras ng pagsisimula na ito ay tataas sa 14CK + 4 ms upang matiyak na maipapasok ang mode ng programa.
2. Ang aparato ay naipadala sa pagpipiliang ito napili.

Sa mga oras ng pagsisimula ng ATtiny15 Mode ng Pagkakatugma ay natutukoy ng mga SUT fuse tulad ng ipinakita sa Talahanayan 6-8 sa ibaba.

Talahanayan 6-8. Mga Oras ng Pagsisimula para sa Panloob na Naka-calibrate na RC Oscillator Clock (sa ATtiny15 Mode)

SUT[1:0] Start-up na Oras mula sa Power-down Karagdagang Pagkaantala mula sa Pag-reset (VCC = 5.0V) Inirerekomendang Paggamit
00 6 CK 14CK + 64 ms
01 6 CK 14CK + 64 ms
10 6 CK 14CK + 4 ms
11 1 CK 14CK(1)

Tandaan: Kung naka-program ang RSTDISBL fuse, ang oras ng pagsisimula na ito ay tataas sa 14CK + 4 ms upang matiyak na maipasok ang programming mode.

Sa buod, mas maraming impormasyon sa Mode ng Pagkatugma sa ATtiny15 ay matatagpuan sa mga seksyon "Port B (PB5: PB0)" sa pahina 2"Panloob na PLL sa Mode ng Pagkatugma sa ATtiny15" sa pahina 24"8-bit Timer / Counter1 sa ATtiny15 Mode" sa pahina 95"Mga limitasyon ng debugWIRE" sa pahina 140"Mga Calculation Bytes" sa pahina 150 at sa mesa "Clock Prescaler Piliin ”sa pahina 33.

Panloob na 128 kHz Oscillator

Ang 128 kHz internal Oscillator ay isang mababang power Oscillator na nagbibigay ng orasan na 128 kHz. Ang dalas ay nominal sa 3V at 25°C. Ang orasan na ito ay maaaring mapili bilang system clock sa pamamagitan ng pagprograma ng CKSEL Fuse sa "0100".

Kapag napili ang mapagkukunang orasan na ito, ang mga oras ng pagsisimula ay natutukoy ng mga SUT Fuse tulad ng ipinakita sa Talahanayan 6-9.

Talahanayan 6-9. Mga Oras ng Pagsisimula para sa 128 kHz Internal Oscillator

SUT[1:0] Start-up na Oras mula sa Power-down Karagdagang pagkaantala mula sa I-reset Inirerekomendang Paggamit
00 6 CK 14CK(1) Pinagana ang BOD
01 6 CK 14CK + 4 ms Mabilis na tumataas na lakas
10 6 CK 14CK + 64 ms Dahan-dahang tumataas na lakas
11 Nakareserba

Tandaan: Kung naka-program ang RSTDISBL fuse, ang oras ng pagsisimula na ito ay tataas sa 14CK + 4 ms upang matiyak na maipasok ang programming mode.

Mababang Dalas ng Crystal Oscillator

Upang magamit ang isang 32.768 kHz na kristal na panonood bilang mapagkukunan ng orasan para sa aparato, ang Low-frequency Crystal Oscillator ay dapat mapili sa pamamagitan ng pagtatakda ng mga piyus ng CKSEL sa '0110'. Ang kristal ay dapat na konektado tulad ng ipinakita sa Larawan 6-5. Upang makahanap ng naaangkop na kapasidad sa pag-load para sa isang 32.768 kHz crysal, mangyaring kumunsulta sa datasheet ng gumawa.

Kapag napili ang oscillator na ito, ang mga oras ng pagsisimula ay natutukoy ng mga piyus ng SUT tulad ng ipinakita sa Talahanayan 6-10.

Talahanayan 6-10. Mga Oras ng Start-up para sa Mababang Dalas na Crystal Oscillator na Pagpili ng Orasan

SUT[1:0] Oras ng Pagsisimula mula sa Power Down Karagdagang Pagkaantala mula sa Pag-reset (VCC = 5.0V) Inirerekomendang paggamit
00 1K (1024) CK(1) 4 ms Mabilis na tumataas na lakas o pinagana ang BOD
01 1K (1024) CK(1) 64 ms Dahan-dahang tumataas na lakas
10 32K (32768) CK 64 ms Matatag na dalas sa pagsisimula
11 Nakareserba

Tandaan: Ang mga opsyong ito ay dapat gamitin lamang kung ang katatagan ng dalas sa pagsisimula ay hindi mahalaga.

Ang Mababang dalas na Crystal Oscillator ay nagbibigay ng isang panloob na capacitance ng pag-load, kita n'yo Talahanayan 6-11 sa bawat pin ng TOSC.

Talahanayan 6-11. Capacitance ng Low-Frequency Crystal Oscillator

Device 32 kHz Osc. Uri Cap (Xtal1 / Tosc1) Cap (Xtal2 / Tosc2)
ATtiny25 / 45/85 System Osc. 16 pF 6 pF

Crystal Oscillator / Ceramic Resonator

Ang XTAL1 at XTAL2 ay input at output, ayon sa pagkakabanggit, ng isang pagbabaliktad amplifier na maaaring mai-configure para magamit bilang isang On-chip Oscillator, tulad ng ipinakita sa Larawan 6-5. Maaaring gamitin ang alinman sa isang kristal na kuwarts o isang ceramic resonator.

Ang C1 at C2 ay dapat palaging pantay para sa parehong mga kristal at resonator. Ang pinakamainam na halaga ng mga capacitor ay nakasalalay sa kristal o resonator na ginagamit, ang dami ng stray capacitance, at ang electromagnetic na ingay ng kapaligiran. Ang ilang mga paunang alituntunin para sa pagpili ng mga capacitor para sa paggamit sa mga kristal ay ibinigay sa Talahanayan 6-12 sa ibaba. Para sa mga ceramic resonator, ang mga halaga ng capacitor na ibinigay ng tagagawa ay dapat gamitin.

Talahanayan 6-12. Mga Mode ng Operating na Crystal Oscillator

CKSEL[3:1] Saklaw ng Frequency (MHz) Inirekumendang Saklaw para sa mga Capacitor C1 at C2 para sa Paggamit sa Mga 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

Mga Tala: Ang opsyong ito ay hindi dapat gamitin sa mga kristal, sa mga ceramic na resonator lamang.

Ang Oscillator ay maaaring gumana sa tatlong magkakaibang mga mode, ang bawat isa ay na-optimize para sa isang tukoy na saklaw ng dalas. Ang operating mode ay pinili ng mga piyus na CKSEL [3: 1] tulad ng ipinakita sa Talahanayan 6-12.

Ang CKSEL0 Fuse kasama ang SUT [1: 0] Pinili ng mga piyus ang mga oras ng pagsisimula tulad ng ipinakita sa Talahanayan 6-13.

Talahanayan 6-13. Mga Oras ng Pagsisimula para sa Crystal Oscillator Clock Selection

CKSEL0 SUT[1:0] Start-up na Oras mula sa Power-down Karagdagang pagkaantala mula sa I-reset Inirerekomendang Paggamit
0 00 258 CK(1) 14CK + 4 ms Ceramic resonator, mabilis na tumataas na lakas
0 01 258 CK(1) 14CK + 64 ms Ceramic resonator, dahan-dahang tumataas na lakas
0 10 1K (1024) CK(2) 14CK Ceramic resonator, pinagana ang BOD
0 11 1K (1024) CK(2) 14CK + 4 ms Ceramic resonator, mabilis na tumataas na lakas
1 00 1K (1024) CK(2) 14CK + 64 ms Ceramic resonator, dahan-dahang tumataas na lakas
1 01 16K (16384) CK 14CK Ang Crystal Oscillator, pinagana ang BOD
1 10 16K (16384) CK 14CK + 4 ms Crystal Oscillator, mabilis na tumataas na lakas
1 11 16K (16384) CK 14CK + 64 ms Crystal Oscillator, dahan-dahang tumataas na lakas

Mga Tala

Ang mga opsyong ito ay dapat lamang gamitin kapag hindi tumatakbo malapit sa maximum na dalas ng aparato, at kung ang katatagan sa dalas sa pagsisimula ay hindi mahalaga para sa aplikasyon. Ang mga pagpipiliang ito ay hindi angkop para sa mga kristal.

Ang mga pagpipiliang ito ay inilaan para magamit sa mga ceramic resonator at masisiguro ang katatagan ng dalas sa pagsisimula. Maaari din silang magamit sa mga kristal kapag hindi tumatakbo malapit sa maximum na dalas ng aparato, at kung ang lakas ng dalas sa pagsisimula ay hindi mahalaga para sa aplikasyon.

Default na Pinagmulan ng Orasan

Ang aparato ay naipadala sa CKSEL = "0010", SUT = "10", at naka-program na CKDIV8. Ang default na pagtatakda ng mapagkukunan ng orasan ay samakatuwid ang Panloob na RC Oscillator na tumatakbo sa 8 MHz na may pinakamahabang oras ng pagsisimula at paunang presksyong orasan ng system na 8, na nagreresulta sa 1.0 MHz system na orasan. Tinitiyak ng setting ng default na ito na ang lahat ng mga gumagamit ay maaaring gumawa ng kanilang nais na setting ng mapagkukunan ng orasan gamit ang isang In-System o High-voltage Programmer.

System Clock Prescaler

Ang ATtiny25 / 45/85 system na orasan ay maaaring hatiin sa pamamagitan ng pagtatakda ng “CLKPR - Clock Prescale Register” sa pahina 32. Maaaring gamitin ang feature na ito upang bawasan ang pagkonsumo ng kuryente kapag mababa ang kinakailangan para sa kapangyarihan sa pagproseso. Magagamit ito sa lahat ng opsyon sa source ng orasan, at makakaapekto ito sa dalas ng orasan ng CPU at lahat ng mga kasabay na peripheral. Ang clkI/O, clkADC, clkCPU, at clkFLASH ay nahahati sa isang salik tulad ng ipinapakita sa Talahanayan 6-15 sa pahina 33.

Oras ng Paglipat

Kapag lumilipat sa pagitan ng mga setting ng prescaler, tinitiyak ng System Clock Prescaler na walang mga glitches na nangyayari sa system ng orasan at walang intermediate frequency na mas mataas kaysa sa dalas ng orasan na tumutugma sa nakaraang setting, o dalas ng orasan na naaayon sa bagong setting.

Ang ripple counter na nagpapatupad ng prescaler ay tumatakbo sa dalas ng hindi nababahaging orasan, na maaaring mas mabilis kaysa sa dalas ng orasan ng CPU. Samakatuwid, hindi posible na matukoy ang estado ng prescaler - kahit na nababasa ito, at ang eksaktong oras na kinakailangan upang lumipat mula sa isang dibisyon ng orasan patungo sa isa pa ay hindi eksaktong mahuhulaan.

Mula sa oras na nakasulat ang mga halaga ng CLKPS, tumatagal ito sa pagitan ng T1 + T2 at T1 + 2 * T2 bago pa aktibo ang bagong frequency ng orasan. Sa agwat na ito, 2 aktibong mga gilid ng orasan ang ginawa. Dito, ang T1 ay ang nakaraang panahon ng orasan, at ang T2 ay ang panahon na naaayon sa bagong setting ng prescaler.

Buffer ng Output ng Orasan

Maaaring i-output ng aparato ang orasan ng system sa CLKO pin (kapag hindi ginamit bilang XTAL2 pin). Upang paganahin ang output, ang CKOUT Fuse ay dapat na program. Angkop ang mode na ito kapag ginamit ang chip clock upang magmaneho ng iba pang mga circuit sa system. Tandaan na ang orasan ay hindi magiging output sa panahon ng pag-reset at ang normal na pagpapatakbo ng I / O pin ay ma-override kapag na-program ang piyus. Ang panloob na RC Oscillator, WDT Oscillator, PLL, at panlabas na orasan (CLKI) ay maaaring mapili kapag ang orasan ay output sa CLKO. Ang mga Crystal oscillator (XTAL1, XTAL2) ay hindi maaaring gamitin para sa output ng orasan sa CLKO. Kung ginagamit ang System Clock Prescaler, ito ang hinati na orasan ng system na output.

Paglalarawan ng Paglalarawan

OSCCAL - Pagrehistro ng Oscillator Calibration

bit 7 6 5 4 3 2 1 0
0x31 CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 OSCCAL
Basahin/Isulat R/W R/W R/W R/W R/W R/W R/W R/W

Mga Bits 7: 0 - CAL [7: 0]: Halaga ng Pag-calibrate ng Oscillator

Ang Oscillator Calibration Register ay ginagamit upang putulin ang Calibrated Internal RC Oscillator upang matanggal ang mga pag-iiba-iba ng proseso mula sa dalas ng oscillator. Ang isang pre-program na halaga ng pagkakalibrate ay awtomatikong nakasulat sa rehistro na ito sa panahon ng pag-reset ng chip, na nagbibigay sa dalas ng naka-calibrate na Pabrika tulad ng tinukoy sa Talahanayan 21-2 sa pahina 164. Maaaring isulat ng software ng application ang rehistro na ito upang mabago ang dalas ng oscillator. Ang oscillator ay maaaring mai-calibrate sa mga frequency tulad ng tinukoy sa Talahanayan 21-2 sa pahina 164. Ang pagkakalibrate sa labas ng saklaw na iyon ay hindi garantisado.

Tandaan na ang oscillator na ito ay ginagamit upang i-time ang mga pag-access ng EEPROM at Flash, at ang mga oras ng pagsulat na ito ay maaapektuhan nang naaayon. Kung nakasulat ang EEPROM o Flash, huwag i-calibrate sa higit sa 8.8 MHz. Kung hindi man, maaaring mabigo ang pagsulat ng EEPROM o Flash.

Tinutukoy ng CAL7 bit ang saklaw ng operasyon para sa oscillator. Ang pagtatakda ng bit na ito sa 0 ay nagbibigay ng pinakamababang saklaw ng dalas, ang pagtatakda ng bit na ito sa 1 ay nagbibigay ng pinakamataas na saklaw ng dalas. Ang dalawang mga saklaw ng dalas ay nag-o-overlap, sa madaling salita ang isang setting ng OSCCAL = 0x7F ay nagbibigay ng isang mas mataas na dalas kaysa sa OSCCAL = 0x80.

Ang mga CAL [6: 0] na mga piraso ay ginagamit upang ibagay ang dalas sa loob ng napiling saklaw. Ang isang setting na 0x00 ay nagbibigay ng pinakamababang dalas sa saklaw na iyon, at ang isang setting na 0x7F ay nagbibigay ng pinakamataas na dalas sa saklaw.

Upang matiyak ang matatag na pagpapatakbo ng MCU ang halaga ng pagkakalibrate ay dapat mabago nang kaunti. Ang isang pagkakaiba-iba sa dalas ng higit sa 2% mula sa isang pag-ikot hanggang sa susunod ay maaaring humantong sa walang pag-uugali na pag-uugali. Ang mga pagbabago sa OSCCAL ay hindi dapat lumagpas sa 0x20 para sa bawat pagkakalibrate. Kinakailangan upang matiyak na ang MCU ay itinatago sa I-reset sa panahon ng naturang mga pagbabago sa dalas ng orasan

Talahanayan 6-14. Saklaw ng Dalas ng Panloob na RC Oscillator

Halaga ng OSCCAL Karaniwang Pinakababang Frequency na may Paggalang sa Nominal Frequency Karaniwang Pinakamataas na Dalas na may Paggalang sa Nominal Frequency
0x00 50% 100%
0x3F 75% 150%
0x7F 100% 200%

CLKPR - Clock Prescale Rehistro

bit 7 6 5 4 3 2 1 0
0x26 CLKPCE CLKPS3 CLKPS2 CLKPS1 CLKPS0 CLKPR
Basahin/Isulat R/W R R R R/W R/W R/W R/W

Paunang Halaga 0 0 0 0 Tingnan ang Bit Paglalarawan

Bit 7 - CLKPCE: Paganahin ang Pagbabago ng Clock Prescaler

Ang bit ng CLKPCE ay dapat na nakasulat sa isang lohika upang paganahin ang pagbabago ng mga piraso ng CLKPS. Ang CLKPCE bit ay nai-update lamang kapag ang iba pang mga piraso sa CLKPR ay simultaniosly nakasulat sa zero. Ang CLKPCE ay na-clear ng hardware ng apat na cycle matapos itong isulat o kapag isinulat ang mga piraso ng CLKPS. Ang muling pagsusulat ng bit ng CLKPCE sa loob ng tagal ng paglipas ng panahong ito ay hindi nagpapahaba sa tagal ng pag-time out, o i-clear ang CLKPCE bit.

Mga Bits 6: 4 - Res: Nakareserba na Mga Bits

Ang mga bit na ito ay nakareserba ng mga piraso sa ATtiny25 / 45/85 at palaging basahin bilang zero.

Mga Bit 3: 0 - CLKPS [3: 0]: Clock Prescaler Select Bits 3 - 0

Tinutukoy ng mga bit na ito ang kadahilanan ng paghahati sa pagitan ng napiling mapagkukunan ng orasan at panloob na orasan ng system. Ang mga piraso ay maaaring nakasulat na run-time upang maiiba ang dalas ng orasan upang umangkop sa mga kinakailangan sa aplikasyon. Habang hinahati ng divider ang input ng master orasan sa MCU, ang bilis ng lahat ng mga magkasabay na peripheral ay nabawasan kapag ginamit ang isang factor ng dibisyon. Ang mga kadahilanan ng paghahati ay ibinibigay sa Talahanayan 6-15.

Upang maiwasan ang mga hindi sinasadyang pagbabago ng dalas ng orasan, dapat sundin ang isang espesyal na pamamaraan ng pagsulat upang mabago ang mga CLKPS bits:

Isulat ang Clock Prescaler Change Enable (CLKPCE) na bit sa isa at lahat ng iba pang mga piraso sa CLKPR hanggang sa zero.

Sa loob ng apat na siklo, isulat ang nais na halaga sa CLKPS habang nagsusulat ng isang zero sa CLKPCE.

Ang mga pagkagambala ay dapat na hindi pinagana kapag binabago ang setting ng prescaler upang matiyak na ang pamamaraan ng pagsulat ay hindi nagambala.

Tinutukoy ng CKDIV8 Fuse ang paunang halaga ng CLKPS bits. Kung ang CKDIV8 ay hindi na-program, ang CLKPS bits ay ire-reset sa “0000”. Kung ang CKDIV8 ay naka-program, ang CLKPS bits ay ni-reset sa "0011", na nagbibigay ng division factor na walo sa pagsisimula. Dapat gamitin ang feature na ito kung ang napiling source ng orasan ay may mas mataas na frequency kaysa sa maximum frequency ng device sa kasalukuyang mga kondisyon ng operating. Tandaan na ang anumang halaga ay maaaring isulat sa CLKPS bits anuman ang setting ng CKDIV8 Fuse. Ang Application software ay dapat tiyakin na ang isang sapat na kadahilanan sa paghahati ay

napili kung ang napiling mapagkukunan ng orasan ay may mas mataas na dalas kaysa sa maximum na dalas ng aparato sa kasalukuyang mga kundisyon ng pagpapatakbo. Ang aparato ay naipadala sa naka-program na CKDIV8 Fuse.

Talahanayan 6-15. Clock Prescaler Select

CLKPS3 CLKPS2 CLKPS1 CLKPS0 Kadahilanan ng Clock Division
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 Nakareserba
1 0 1 0 Nakareserba
1 0 1 1 Nakareserba
1 1 0 0 Nakareserba
1 1 0 1 Nakareserba
1 1 1 0 Nakareserba
1 1 1 1 Nakareserba

Tandaan: Ang prescaler ay hindi pinagana sa ATtiny15 compatibility mode at walang pagsusulat sa CLKPR, o pagprograma ng CKDIV8 fuse ay may anumang epekto sa system clock (na palaging magiging 1.6 MHz).

Pamamahala ng Mga Power at Mode ng Pagtulog

Ang mataas na pagganap at nangungunang kahusayan sa code ng industriya ay ginagawang isang perpektong pagpipilian para sa mga mababang aplikasyon ng kuryente ang AVR microcontrollers. Bilang karagdagan, pinahihintulutan ng mga mode ng pagtulog ang application upang isara ang mga hindi nagamit na mga module sa MCU, sa ganyang paraan makatipid ng lakas. Nagbibigay ang AVR ng iba't ibang mga mode sa pagtulog na pinapayagan ang gumagamit na maiangkop ang pagkonsumo ng kuryente sa mga kinakailangan ng application.

Mga Mode ng Pagtulog

Larawan 6-1 sa pahina 23 ipinapakita ang iba't ibang mga system ng orasan at ang kanilang pamamahagi sa ATtiny25 / 45/85. Ang pigura ay kapaki-pakinabang sa pagpili ng isang naaangkop na mode ng pagtulog. Talahanayan 7-1 ipinapakita ang iba't ibang mga mode ng pagtulog at ang kanilang mga mapagkukunan ng paggising.

Talahanayan 7-1. Mga Active Clock Domain at Wake-up Source sa Iba't ibang Sleep Mode

Mga Aktibong Orihinal na Orasan Mga oscillator Mga Pinagmulan ng Wake-up
Sleep Mode clkCPU clkFLASH clkIO clkADC clkPCK Pinagana ang Pangunahing Pinagmulan ng Orasan Pagbabago ng INT0 at Pin SPM / EEPROM

handa na

 

Kondisyon ng Pagsisimula ng USI

ADC Iba pang I/O asong nagbabantay Makagambala
Idle X X X X X X X X X X
Pagbabawas ng Ingay ng ADC X X X(1) X X X X
Power-down X(1) X X

Tandaan: Para sa INT0, level interrupt lang.

Upang ipasok ang anuman sa tatlong mga mode sa pagtulog, ang SE bit sa MCUCR ay dapat na nakasulat sa isa sa lohika at dapat isagawa ang isang tagubilin sa pagtulog. Ang SM [1: 0] na mga piraso sa Pagparehistro ng MCUCR ay pumili kung aling mode ng pagtulog (Idle, ADC Noise Reduction o Power-down) ang isasaaktibo ng tagubilin ng SLEEP. Tingnan mo Talahanayan 7-2 para sa isang buod.

Kung ang isang pinagana na nagagambala ay nangyayari habang ang MCU ay nasa isang mode ng pagtulog, ang MCU ay nagising. Pagkatapos ay ihihinto ang MCU para sa apat na siklo bilang karagdagan sa oras ng pagsisimula, isinasagawa ang nakakagambala na gawain, at ipagpatuloy ang pagpapatupad mula sa tagubiling sumusunod sa SLEEP. Ang nilalaman ng Rehistro File at ang SRAM ay hindi nabago kapag ang aparato ay nagising mula sa pagtulog. Kung ang isang pag-reset ay nangyayari sa panahon ng mode ng pagtulog, ang MCU ay nagising at nagsasagawa mula sa I-reset ang Vector.

Tandaan: na kung ang isang level na na-trigger na interrupt ay ginagamit para sa paggising, ang binagong antas ay dapat na i-hold nang ilang oras upang magising ang MCU (at para sa MCU na pumasok sa interrupt service routine). Tingnan mo "Mga Panlabas na Pagkagambala" sa pahina 49 para sa mga detalye.

Idle Mode

Kapag ang SM[1:0] bits ay isinulat sa 00, pinapasok ng SLEEP instruction ang MCU sa Idle mode, na humihinto sa CPU ngunit pinapayagan ang Analog Comparator, ADC, USI, Timer/Counter, Watchdog, at ang interrupt system na magpatuloy sa operasyon. ating. Ang sleep mode na ito ay karaniwang humihinto sa clkCPU at clkFLASH, habang pinapayagan ang iba pang mga orasan na tumakbo.

Nagbibigay-daan ang idle mode sa MCU na magising mula sa panlabas na na-trigger na pagkagambala pati na rin mga panloob na tulad ng Timer Overflow. Kung ang paggising mula sa pagkagambala ng Analog Comparator ay hindi kinakailangan, ang Analog Comparator ay maaaring mapagana sa pamamagitan ng pagtatakda ng ACD sa "ACSR - Pagkontrol ng Analog Comparator at Pagrehistro ng Katayuan" sa pahina 120. Bawasan nito ang pagkonsumo ng kuryente sa Idle mode. Kung pinagana ang ADC, awtomatikong magsisimula ang isang conversion kapag naipasok ang mode na ito.

ADC Noise Reduction Mode

Kapag ang SM[1:0] bits ay isinulat sa 01, pinapasok ng SLEEP instruction ang MCU na pumasok sa ADC Noise Reduction mode, ihihinto ang CPU ngunit pinapayagan ang ADC, ang mga panlabas na interrupt, at ang Watchdog na magpatuloy sa paggana (kung pinagana). Ang sleep mode na ito ay humihinto sa clkI/O, clkCPU, at clkFLASH, habang pinapayagan ang iba pang mga orasan na tumakbo.

Pinapabuti nito ang kapaligiran ng ingay para sa ADC, na nagpapagana ng mas mataas na mga sukat sa resolusyon. Kung pinagana ang ADC, awtomatikong magsisimula ang isang conversion kapag naipasok ang mode na ito. Bukod sa form ang ADC Conversion Kumpleto makagambala, isang Panlabas na I-reset, isang Watchdog Reset, isang Brown-out Reset, isang handa nang magambala ang SPM / EEPROM, isang panlabas na antas na makagambala sa INT0 o makagambala ng isang pagbabago ng pin ay maaaring gisingin ang MCU mula sa ADC Noise Reduction mode

Mode na Power-down

Kapag ang SM [1: 0] na mga piraso ay nakasulat sa 10, ang tagubilin sa pagtulog ay gumagawa ng MCU na ipasok ang Power-down mode. Sa mode na ito, ang Oscillator ay tumitigil, habang ang panlabas na nakakagambala, ang USI ay nagsisimulang makita ang kundisyon at ang Watchdog ay patuloy na tumatakbo (kung pinagana). Isang External Reset lamang, isang Watchdog Reset, isang Brown-out Reset, USI na nagsisimulang makagambala ng kundisyon, isang panlabas na antas na nakakagambala sa INT0 o makagambala ng isang pagbabago ng pin na maaaring gumising sa MCU. Ang mode ng pagtulog na ito ay humihinto sa lahat ng nabuong mga orasan, pinapayagan ang pagpapatakbo ng mga asynchronous na module lamang.

Huwag paganahin ang Software BOD

Kapag ang Brown-out Detector (BOD) ay pinagana ng mga BODLEVEL fuse (tingnan Talahanayan 20-4 sa pahina 148), ang BOD ay aktibong sinusubaybayan ang supply voltage sa panahon ng pagtulog. Sa ilang mga aparato posible na makatipid ng kuryente sa pamamagitan ng pag-disable ng BOD ng software sa mode na pagtulog na Power-Down. Ang pagkonsumo ng kuryente sa mode ng pagtulog ay magkakaroon sa parehong antas tulad ng kapag ang BOD ay pandaigdigang hindi pinagana ng mga piyus.

Kung ang BOD ay hindi pinagana ng software, ang BOD function ay agad na naka-off pagkatapos pumasok sa sleep mode. Sa paggising mula sa pagtulog, awtomatikong pinapagana muli ang BOD. Tinitiyak nito ang ligtas na operasyon kung sakaling bumaba ang antas ng VCC sa panahon ng pagtulog.

Kapag na-disable ang BOD, ang oras ng paggising mula sa mode ng pagtulog ay magiging kapareho nito para sa paggising mula sa RESET. Dapat manu-manong i-configure ng gumagamit ang mga oras ng paggising tulad ng ang sanggunian ng bandgap ay may oras upang magsimula at ang BOD ay gumagana nang tama bago magpatuloy ang MCU sa pagpapatupad ng code. Tingnan ang SUT [1: 0] at CKSEL [3: 0] mga piyus na piraso sa talahanayan "Fuse Low Byte" sa pahina 149

Ang hindi paganahin ang BOD ay kinokontrol ng BODS (BOD Sleep) na piraso ng Pagrehistro ng MCU Control, kita n'yo “MCUCR - MCU Control Magrehistro ”sa pahina 37. Ang pagsulat ng kaunting ito sa isa ay naka-off ang BOD sa Power-Down, habang ang pagsulat ng isang zero ay nagpapanatili ng BOD na aktibo. Ang default na setting ay zero, ibig sabihin, aktibo ang BOD.

Ang pagsusulat sa bit ng BODS ay kinokontrol ng isang oras na pagkakasunud-sunod at isang paganahin ang kaunti, kita n'yo “MCUCR - MCU Control Regis- ter ”sa pahina 37.

Mga Limitasyon

Ang pag-andar ng BOD na hindi pinagana ay ipinatupad sa mga sumusunod na aparato, lamang:

ATtiny25, rebisyon E, at mas bago

ATtiny45, rebisyon D, at mas bago

ATtiny85, rebisyon C, at mas bago

Ang mga pagbabago ay minarkahan sa pakete ng aparato at maaaring matagpuan ang mga sumusunod:

Ibabang bahagi ng mga pakete 8P3 at 8S2

Nangungunang bahagi ng package 20M1

Rehistro sa Pagbawas ng Lakas

Ang Pagrehistro ng Power Reduction (PRR), kita n'yo “PRR - Pagrehistro ng Power Reduction” sa pahina 38, ay nagbibigay ng isang paraan upang mabawasan ang pagkonsumo ng kuryente sa pamamagitan ng pagpapahinto ng orasan sa mga indibidwal na peripheral. Ang kasalukuyang estado ng paligid ay frozen at ang I / O na rehistro ay hindi mabasa o maisulat. Ang mga mapagkukunang ginamit ng peripheral kapag pinahinto ang orasan ay mananatiling abala, samakatuwid ang peripheral ay dapat na sa karamihan ng mga kaso ay hindi pinagana bago ihinto ang orasan. Ang paggising ng isang module, na kung saan ay tapos na sa pamamagitan ng pag-clear ng kaunti sa PRR, inilalagay ang module sa parehong estado tulad ng bago i-shutdown.

Maaaring gamitin ang shutdown ng module sa Idle mode at Active mode upang makabuluhang bawasan ang pangkalahatang pagkonsumo ng kuryente. Sa lahat ng iba pang mga mode sa pagtulog, ang orasan ay tumigil na. Tingnan mo "Kasalukuyang Paghahatid ng mga modyul na I / O" sa pahina 177 para kay examples.

Pinapaliit ang Pagkonsumo ng Lakas

Mayroong maraming mga isyu na isasaalang-alang kapag sinusubukang i-minimize ang pagkonsumo ng kuryente sa isang kinokontrol na system ng AVR. Sa pangkalahatan, ang mga mode ng pagtulog ay dapat gamitin hangga't maaari, at ang mode ng pagtulog ay dapat mapili upang ang ilang mga posible ng mga pagpapaandar ng aparato ay tumatakbo. Dapat hindi paganahin ang lahat ng mga pagpapaandar na hindi kinakailangan. Sa partikular, ang mga sumusunod na modyul ay maaaring mangailangan ng espesyal na pagsasaalang-alang kapag sinusubukang makamit ang pinakamababang posibleng pagkonsumo ng kuryente.

Analog to Digital Converter

Kung pinagana, paganahin ang ADC sa lahat ng mga mode ng pagtulog. Upang makatipid ng kuryente, dapat na hindi paganahin ang ADC bago pumasok sa anumang mode ng pagtulog. Kapag ang ADC ay naka-patay at naka-on muli, ang susunod na conversion ay isang pinalawak na conversion. Sumangguni sa "Analog sa Digital Converter" sa pahina 122 para sa mga detalye sa pagpapatakbo ng ADC.

Tagapaghambing ng Analog

Kapag pumapasok sa Idle mode, ang Analog Comparator ay dapat na hindi paganahin kung hindi ginamit. Kapag pumapasok sa ADC Noise Reduction mode, ang Analog Comparator ay dapat na hindi paganahin. Sa ibang mga mode ng pagtulog, ang Analog Comparator ay awtomatikong hindi pinagana. Gayunpaman, kung ang Analog Comparator ay naka-set up upang magamit ang Panloob na Voltage Sanggunian bilang input, ang Analog Comparator ay dapat na hindi paganahin sa lahat ng mga mode ng pagtulog. Kung hindi man, ang Panloob na Voltage Paganahin ang sanggunian, malaya sa mode ng pagtulog. Sumangguni sa "Analog Comparator" sa pahina 119 para sa mga detalye sa kung paano i-configure ang Analog Comparator.

Brown-out Detector

Kung ang Brown-out Detector ay hindi kinakailangan sa application, dapat patayin ang modyul na ito. Kung ang Brown-out Detector ay pinagana ng mga BODLEVEL Fuse, paganahin ito sa lahat ng mga mode sa pagtulog, at samakatuwid, palaging ubusin ang lakas. Sa mas malalim na mga mode sa pagtulog, malaki ang maiaambag nito sa kabuuang kasalukuyang pagkonsumo. Tingnan mo "Brown-out Detec- tion ”sa pahina 41 at “Huwag paganahin ang BOD software” sa pahina 35 para sa mga detalye sa kung paano i-configure ang Brown-out Detector.

Panloob na Voltage Sanggunian

Ang Panloob na Voltage Mapapagana ang sanggunian kung kinakailangan ng Brown-out Detection, ang Analog Comparator o ang ADC. Kung ang mga modyul na ito ay hindi pinagana tulad ng inilarawan sa mga seksyon sa itaas, ang panloob na voltagang sanggunian ay hindi pagaganahin at hindi ito gumagamit ng lakas. Kapag naka-on muli, dapat payagan ng gumagamit na mag-umpisa ang sanggunian bago magamit ang output. Kung ang sanggunian ay itinatago sa mode ng pagtulog, ang output ay maaaring magamit kaagad. Sumangguni sa "Panloob na Voltage Sanggunian ”sa pahina 42 para sa mga detalye sa oras ng pagsisimula.

Watchdog Timer

Kung ang Watchdog Timer ay hindi kinakailangan sa application, dapat patayin ang modyul na ito. Kung pinagana ang Watchdog Timer, paganahin ito sa lahat ng mga mode ng pagtulog, at samakatuwid, palaging ubusin ang lakas. Sa mas malalim na mga mode sa pagtulog, malaki ang maiaambag nito sa kabuuang kasalukuyang pagkonsumo. Sumangguni sa "Timer ng Watchdog" sa pahina 42 para sa mga detalye sa kung paano i-configure ang Watchdog Timer.

Mga Port Pin

Kapag pumapasok sa sleep mode, dapat na i-configure ang lahat ng port pin upang gumamit ng pinakamababang kapangyarihan. Ang pinakamahalagang bagay ay upang matiyak na walang mga pin ang nagtutulak ng mga resistive load. Sa mga sleep mode kung saan ang I/O clock (clkI/O) at ang ADC clock (clkADC) ay nakahinto, ang input buffer ng device ay idi-disable. Tinitiyak nito na walang natupok na kuryente

sa pamamagitan ng input lohika kapag hindi kinakailangan. Sa ilang mga kaso, kinakailangan ang input na lohika para sa pagtuklas ng mga kundisyon ng paggising, at

paganahin ito pagkatapos Sumangguni sa seksyon "Paganahin ang Digital na Pag-input at Mga Mode sa Pagtulog" sa pahina 57 para sa mga detalye kung aling mga pin ang pinagana. Kung ang input buffer ay pinagana at ang input signal ay naiwang lumulutang o may analog signal level na malapit sa VCC/2, ang input buffer ay gagamit ng sobrang lakas.

Para sa mga analog input pin, ang digital input buffer ay dapat na hindi pinagana sa lahat ng oras. Ang isang antas ng analog na signal na malapit sa VCC/2 sa isang input pin ay maaaring magdulot ng makabuluhang kasalukuyang kahit na sa aktibong mode. Maaaring i-disable ang mga digital input buffer sa pamamagitan ng pagsulat sa Digital Input Disable Register (DIDR0). Sumangguni sa "DIDR0 - Hindi Paganahin ang Digital Input Magrehistro 0" sa pahina 121 para sa mga detalye.

Paglalarawan ng Paglalarawan

MCUCR - Rehistro ng MCU Control

Naglalaman ang Rehistro ng MCU Control ng mga bit ng kontrol para sa pamamahala ng kuryente.

bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Basahin/Isulat R R/W R/W R/W R/W R R/W R/W
Paunang Halaga 0 0 0 0 0 0 0 0

Bit 7 - BODS: BOD Sleep

Ang pag-andar ng BOD ay hindi magagamit sa ilang mga aparato, lamang. Tingnan mo "Mga Limitasyon" sa pahina 36.

Upang hindi paganahin ang BOD habang natutulog (kita Talahanayan 7-1 sa pahina 34) ang bit ng BODS ay dapat na nakasulat sa isa sa lohika. Kinokontrol ito ng isang oras na pagkakasunud-sunod at ang paganahin ang bit, BODSE sa MCUCR. Una, ang parehong BODS at BODSE ay dapat itakda sa isa. Pangalawa, sa loob ng apat na cycle ng orasan, ang BODS ay dapat itakda sa isa at ang BODSE ay dapat itakda sa zero. Ang bit ng BODS ay aktibo ng tatlong mga cycle ng orasan matapos itong maitakda. Ang isang tagubilin sa pagtulog ay dapat na ipatupad habang ang BODS ay aktibo upang patayin ang BOD para sa aktwal na mode ng pagtulog. Ang bit ng BODS ay awtomatikong na-clear pagkatapos ng tatlong mga cycle ng orasan.

Sa mga aparato kung saan ang Sleeping BOD ay hindi naipatupad ng kaunti ay hindi ginagamit at palaging basahin ang zero.

Bit 5 - SE: Paganahin ang Sleep

Ang SE bit ay dapat na isulat sa logic one upang maipasok ang MCU sa sleep mode kapag ang pagtuturo ng SLEEP ay naisakatuparan. Upang maiwasan ang pagpasok ng MCU sa sleep mode maliban kung ito ang layunin ng programmer, inirerekumenda na isulat ang Sleep Enable (SE) bit sa isa bago ang pagpapatupad ng pagtuturo ng SLEEP at i-clear ito kaagad pagkatapos magising.

Mga Bits 4: 3 - SM [1: 0]: Sleep Mode Piliin ang Bits 1 at 0

Ang mga bit na ito ay pumili sa pagitan ng tatlong magagamit na mga mode sa pagtulog tulad ng ipinakita sa Talahanayan 7-2.

Talahanayan 7-2. Piliin ang Sleep Mode

SM1 SM0 Sleep Mode
0 0 Idle
0 1 Pagbabawas ng Ingay ng ADC
1 0 Power-down
1 1 Nakareserba

Bit 2 - BODSE: Paganahin ang BOD Sleep

Ang pag-andar ng BOD ay hindi magagamit sa ilang mga aparato, lamang. Tingnan mo "Mga Limitasyon" sa pahina 36.

Nagbibigay-daan ang bit BODSE sa setting ng BODS control bit, tulad ng ipinaliwanag sa paglalarawan ng bit ng BODS. Ang pag-disable sa BOD ay kinokontrol ng isang naorasan ng oras.

Ang bit na ito ay hindi ginagamit sa mga aparato kung saan hindi pinagana ng software BOD ay hindi naipatupad at mababasa bilang zero sa mga aparatong iyon.

PRR - Pagrehistro ng Power Reduction

Nagbibigay ang rehistro ng Power Reduction ng isang pamamaraan upang mabawasan ang pagkonsumo ng kuryente sa pamamagitan ng pagpapahintulot na hindi paganahin ang mga peripheral na orasan

bit 7 6 5 4 3 2 1 0
0x20 PRTIM1 PRTIM0 PRUSI PRADC PRR
Basahin/Isulat R R R R R/W R/W R/W R/W
Paunang Halaga 0 0 0 0 0 0 0 0

Mga Bits 7: 4 - Res: Nakareserba na Mga Bits

Ang mga bit na ito ay nakareserba ng mga piraso sa ATtiny25 / 45/85 at palaging basahin bilang zero.

Bit 3 - PRTIM1: Timer / Counter ng Pagbawas ng Lakas1

Ang pagsulat ng isang lohika sa kaunting ito ay nagpapasara sa module ng Timer / Counter1. Kapag pinagana ang Timer / Counter1, magpapatuloy ang pagpapatakbo tulad ng bago ang shutdown.

Bit 2 - PRTIM0: Timer / Counter ng Pagbawas ng Lakas0

Ang pagsulat ng isang lohika sa kaunting ito ay nagpapasara sa module ng Timer / Counter0. Kapag pinagana ang Timer / Counter0, magpapatuloy ang pagpapatakbo tulad ng bago ang shutdown.

Bit 1 - PRUSI: Power Reduction USI

Ang pagsulat ng isang lohika sa isang bit na ito ay nagpapasara sa USI sa pamamagitan ng pagtigil sa orasan sa modyul. Kapag ginising muli ang USI, ang USI ay dapat na gawing una upang matiyak ang wastong operasyon.

Bit 0 - PRADC: Power Reduction ADC

Ang pagsulat ng isang lohika sa kaunting ito ay nagpapasara sa ADC. Dapat na hindi paganahin ang ADC bago isara. Tandaan na ang orasan ng ADC ay ginagamit din ng ilang mga bahagi ng analog comparator, na nangangahulugang ang analogue comparator ay hindi maaaring gamitin kapag ang bit na ito ay mataas.

Pagkontrol at I-reset ng System

Pag-reset ng AVR

Sa panahon ng pag-reset, ang lahat ng I / O Rehistro ay nakatakda sa kanilang mga paunang halaga, at ang programa ay nagsisimulang ipatupad mula sa Reset Vector. Ang tagubilin na inilagay sa Reset Vector ay dapat na isang RJMP - Relative Jump - tagubilin sa pag-reset ng gawain sa paghawak. Kung ang programa ay hindi kailanman nagbibigay-daan sa isang makagambalang mapagkukunan, ang Mga Nakagambala na Vector ay hindi ginagamit, at ang regular na code ng programa ay maaaring mailagay sa mga lokasyong ito. Ang circuit diagram sa Larawan 8-1 ipinapakita ang pag-reset ng lohika. Ang mga parehong elektrikal ng pag-reset ng circuitry ay ibinibigay sa "Sistema at I-reset ang Mga Katangian" sa pahina 165.

Figure 8-1 I-reset ang Logic I-reset-lohika

Ang mga port ng I / O ng AVR ay agad na naka-reset sa kanilang paunang estado kapag ang isang mapagkukunan ng pag-reset ay naging aktibo. Hindi ito nangangailangan ng anumang pagpapatakbo ng orasan upang tumakbo.

Matapos ang lahat ng mga mapagkukunan ng pag-reset ay hindi naging aktibo, isang counter ng pagkaantala ang naimbitahan, na umaabot sa panloob na pag-reset. Pinapayagan nitong maabot ang lakas sa isang matatag na antas bago magsimula ang normal na operasyon. Ang tagal ng pagtatapos ng counter ng pagkaantala ay tinukoy ng gumagamit sa pamamagitan ng SUT at CKSEL Fuse. Ang iba't ibang mga pagpipilian para sa panahon ng pagkaantala ay ipinakita sa “Orasan Mga Pinagmulan "sa pahina 25.

I-reset ang Mga Pinagmulan

Ang ATtiny25 / 45/85 ay may apat na mapagkukunan ng pag-reset:

Pag-reset ng Power-on. Ang MCU ay na-reset kapag ang supply voltage ay nasa ibaba ng Power-on Reset threshold (VPOT).

Panlabas na Pag-reset. Ang MCU ay na-reset kapag ang isang mababang antas ay naroroon sa RESET pin para sa mas mahaba kaysa sa minimum na haba ng pulso.

Watchdog Reset. Na-reset ang MCU kapag nag-expire ang panahon ng Watchdog Timer at pinagana ang Watchdog.

Brown-out Reset. Ang MCU ay na-reset kapag ang supply voltage ang VCC ay nasa ibaba ng Brown-out Reset threshold (VBOT) at ang Brown-out Detector ay pinagana.

Pag-reset ng Power-on

Ang isang Power-on Reset (POR) na pulso ay nabuo ng isang On-chip detection circuit. Ang antas ng pagtuklas ay tinukoy sa "Sys- tem at I-reset ang Mga Katangian ”sa pahina 165. Ang POR ay isinaaktibo kapag ang VCC ay mas mababa sa antas ng pagtuklas. Ang POR circuit ay maaaring gamitin upang ma-trigger ang Start-up Reset, gayundin upang makita ang isang pagkabigo sa supply voltage.

Ang isang Power-on Reset (POR) circuit ay nagsisiguro na ang aparato ay nai-reset mula sa Power-on. Pag-abot sa Power-on Reset threshold voltage tinatawag ang delay counter, na tumutukoy kung gaano katagal ang device ay pinananatili sa RESET pagkatapos tumaas ang VCC. Ang RESET signal ay muling isasaaktibo, nang walang anumang pagkaantala, kapag ang VCC ay bumaba sa ibaba ng antas ng pagtuklas.

Larawan 8-2. MCU Start-up, RESET Nakatali sa VCC

INTERNAL RESET

Larawan 8-3. MCU Start-up, RESET Extended Externally

Panlabas na Pag-reset

Ang isang Panlabas na I-reset ay nabuo ng isang mababang antas sa RESET pin kung pinagana. I-reset ang mga pulso na mas mahaba kaysa sa minimum na lapad ng pulso (tingnan "Sistema at I-reset ang Mga Katangian" sa pahina 165) ay bubuo ng isang pag-reset, kahit na ang orasan ay hindi tumatakbo. Ang mga mas maikling pulso ay hindi ginagarantiyahan upang makabuo ng isang pag-reset. Kapag naabot ng inilapat na signal ang Reset Threshold Voltage – VRST – sa positibong gilid nito, sisimulan ng delay counter ang MCU pagkatapos mag-expire ang Time-out period.

Larawan 8-4. Panlabas na Pag-reset sa Panahon ng Operasyon Fig8.4

Brown-out Detection

Ang ATtiny25/45/85 ay mayroong On-chip Brown-out Detection (BOD) na circuit para sa pagsubaybay sa antas ng VCC sa panahon ng operasyon sa pamamagitan ng paghahambing nito sa isang nakapirming antas ng pag-trigger. Ang antas ng trigger para sa BOD ay maaaring piliin ng BODLEVEL Fuse. Ang antas ng pag-trigger ay may hysteresis upang matiyak na walang spike na Brown-out Detection. Ang hysteresis sa antas ng pagtuklas ay dapat bigyang-kahulugan bilang VBOT+ = VBOT + VHYST/2 at VBOT- = VBOT – VHYST/2.

Kapag ang BOD ay pinagana, at ang VCC ay bumaba sa isang halaga sa ibaba ng antas ng pag-trigger (VBOT-in Larawan 8-5), ang Brown-out Reset ay agad na isinaaktibo. Kapag tumaas ang VCC sa antas ng trigger (VBOT+ in Larawan 8-5), sinisimulan ng delay counter ang MCU pagkatapos mag-expire ang Time-out period tTOUT.

Ang BOD circuit ay makakakita lamang ng pagbaba sa VCC kung ang voltage nananatili sa ibaba ng antas ng pag-trigger nang mas mahaba kaysa sa ibinigay na tBOD "Sistema at I-reset ang Mga Katangian" sa pahina 165. Fig8.5

Pag-reset ng asong tagapagbantay

Kapag nag-time out ang Watchdog, bubuo ito ng maikling reset pulse ng isang tagal ng CK cycle. Sa bumabagsak na gilid ng pulso na ito, ang delay timer ay magsisimulang bilangin ang Time-out period tTOUT. Sumangguni sa "Timer ng Watchdog" sa pahina 42 para sa mga detalye sa pagpapatakbo ng Watchdog Timer.

Voltage Reference Paganahin ang Mga Signal at Oras ng Pagsisimula

Ang voltagang sanggunian ay may oras ng pagsisimula na maaaring maka-impluwensya sa paraang dapat gamitin. Ang oras ng pagsisimula ay ibinigay sa "Sistema at I-reset ang Mga Katangian" sa pahina 165. Upang makatipid ng kuryente, ang sanggunian ay hindi laging nakabukas. Ang sanggunian ay nasa mga sumusunod na sitwasyon:

Kapag pinagana ang BOD (sa pamamagitan ng pagprograma ng BODLEVEL [2: 0] Fuse Bits).

Kapag ang sanggunian ng bandgap ay konektado sa Analog Comparator (sa pamamagitan ng pagtatakda ng ACBG bit sa ACSR).

Kapag pinagana ang ADC.

Kaya, kapag ang BOD ay hindi pinagana, pagkatapos itakda ang ACBG bit o paganahin ang ADC, dapat palaging payagan ng gumagamit ang sanggunian na magsimula bago gamitin ang output mula sa Analog Comparator o ADC. Upang mabawasan ang koneksyon ng kuryente sa mode na Power-down, maiiwasan ng gumagamit ang tatlong mga kundisyon sa itaas upang matiyak na naka-patay ang sanggunian bago pumasok sa Power-down mode.

Watchdog Timer

Ang Watchdog Timer ay nai-orasan mula sa isang On-chip Oscillator na tumatakbo sa 128 kHz. Sa pamamagitan ng pagkontrol sa prescaler ng Watchdog Timer, ang agwat ng Watchdog Reset ay maaaring iakma tulad ng ipinakita sa Talahanayan 8-3 sa pahina 46. Ang WDR - Watchdog Reset - reset ng tagubilin ang Watchdog Timer. Ang Watchdog Timer ay naka-reset din kapag ito ay hindi pinagana at kapag nangyari ang isang Chip Reset. Sampung magkakaibang mga yugto ng cycle ng orasan ay maaaring mapili upang matukoy ang pag-reset ng panahon. Kung mag-e-expire ang panahon ng pag-reset nang walang isa pang Pag-reset ng Watchdog, ang ATtiny25 / 45/85 ay nagre-reset at nagpapatupad mula sa Reset Vector. Para sa mga detalye ng tiyempo sa Watchdog Reset, sumangguni Talahanayan 8-3 sa pahina 46.

Maaari ring mai-configure ang Watchdog Timer upang makabuo ng isang nakakagambala sa halip na isang reset. Maaari itong maging kapaki-pakinabang kapag ginagamit ang Watchdog upang magising mula sa Power-down.

Upang maiwasan ang hindi sinasadyang pag-disable ng Watchdog o hindi sinasadyang pagbabago ng oras ng pag-time-out, dalawang magkakaibang antas ng kaligtasan ang napili ng piyus na WDTON tulad ng ipinakita sa Talahanayan 8-1 Sumangguni sa "Nag-time na Mga Hanay para sa Pagbabago ng Con- pagbuo ng Watchdog Timer ”sa pahina 43 para sa mga detalye.

Talahanayan 8-1. WDT Configuration bilang isang Function ng Fuse Settings ng WDTON

WDTON Antas ng Kaligtasan WDT Paunang Estado Paano Huwag paganahin ang WDT Paano baguhin ang Time-out
Hindi naka-program 1 Hindi pinagana Pagsunud-sunod ng oras Walang limitasyon
Naka-program 2 Pinagana Palaging pinagana Pagsunud-sunod ng oras

Larawan 8-7. Watchdog Timer asong nagbabantay

Mga Hanay na Sequence para sa Pagbabago ng Configuration ng Watchdog Timer

Ang pagkakasunud-sunod para sa pagbabago ng pagsasaayos ay naiiba nang kaunti sa pagitan ng dalawang antas ng kaligtasan. Ang mga magkakahiwalay na pamamaraan ay inilarawan para sa bawat antas.

Antas ng Kaligtasan 1: Sa mode na ito, ang Watchdog Timer sa una ay hindi pinagana, ngunit maaaring paganahin sa pamamagitan ng pagsulat ng WDE bit sa isa nang walang anumang paghihigpit. Kailangan ng naka-time na pagkakasunud-sunod kapag hindi pinapagana ang isang naka-enable na Watchdog Timer. Upang hindi paganahin ang isang pinaganang Watchdog Timer, dapat sundin ang sumusunod na pamamaraan:

Sa parehong operasyon, sumulat ng isang lohika sa WDCE at WDE. Ang isang lohika ay dapat na nakasulat sa WDE na walang gaanong sa dating halaga ng WDE bit.

Sa loob ng susunod na apat na mga cycle ng orasan, sa parehong operasyon, isulat ang mga WDE at WDP na mga piraso tulad ng ninanais, ngunit sa bit na WDCE na-clear.

Antas ng Kaligtasan 2: Sa mode na ito, ang Watchdog Timer ay palaging pinapagana, at ang WDE bit ay palaging mababasa bilang isa. Kailangan ng naka-time na pagkakasunud-sunod kapag binabago ang panahon ng Watchdog Time-out. Upang baguhin ang Watchdog Time-out, ang sumusunod na pamamaraan ay dapat sundin:

Sa parehong operasyon, sumulat ng isang lohikal sa WDCE at WDE. Kahit na ang WDE palaging nakatakda, ang WDE ay dapat na nakasulat sa isa upang simulan ang oras na pagkakasunud-sunod.

Sa loob ng susunod na apat na cycle ng orasan, sa parehong operasyon, isulat ang mga WDP bit tulad ng ninanais, ngunit sa pag-clear ng WDCE bit. Ang halaga na nakasulat sa WDE bit ay hindi nauugnay.

Ang Code Halample

Ang sumusunod na code exampnagpapakita ang le ng isang pagpupulong at isang pag-andar ng C para sa pag-patay sa WDT. Ang datingampipinapalagay ng le na ang mga pagkagambala ay kinokontrol (hal., sa pamamagitan ng hindi pagpapagana ng mga nakakagambala sa buong mundo) upang walang mga pagkakagambala na magaganap habang isinasagawa ang mga pagpapaandar na ito.

Assembly Code Halample(1)
WDT_off:

wdr

; I-clear ang WDRF sa MCUSR

ldi r16, (0<

palabas ng MCUSR, r16

; Sumulat ng isang lohikal sa WDCE at WDE

; Panatilihin ang lumang setting ng prescaler upang maiwasan ang hindi sinasadyang Pag-reset ng Watchdog

sa r16, WDTCR

ori r16, (1<

palabas ng WDTCR, r16

; Patayin ang WDT

ldi r16, (0<

palabas ng WDTCR, r16

ret

C Code Halample(1)
void WDT_off(void)

{

_WDR ();

/* I-clear ang WDRF sa MCUSR */ MCUSR = 0x00

/* Sumulat ng lohikal na isa sa WDCE at WDE */ WDTCR |= (1<

/ * Patayin ang WDT * / WDTCR = 0x00;

}

Tandaan: 1. Tingnan “Ang Code Halamples ”sa pahina 6.

Paglalarawan ng Paglalarawan

MCUSR - Rehistro ng Katayuan ng MCU

Ang Rehistro ng Katayuan ng MCU ay nagbibigay ng impormasyon kung aling mga mapagkukunan ng pag-reset ang sanhi ng isang Pag-reset ng MCU.

bit 7 6 5 4 3 2 1 0
0x34 WDRF BORF SAKIT PORF MCUSR
Basahin/Isulat R R R R R/W R/W R/W R/W

Paunang Halaga 0 0 0 0 Tingnan ang Bit Paglalarawan

Mga Bits 7: 4 - Res: Nakareserba na Mga Bits

Ang mga bit na ito ay nakareserba ng mga piraso sa ATtiny25 / 45/85 at palaging basahin bilang zero.

Bit 3 - WDRF: Watchdog Reset Flag

Itinakda ang bit na ito kung magaganap ang isang Watchdog Reset. Ang bit ay na-reset ng isang Power-on Reset, o sa pamamagitan ng pagsulat ng isang zero na lohika sa bandila.

Bit 2 - BORF: Brown-out Reset Flag

Ang bit na ito ay nakatakda kung ang isang Brown-out Reset ay nangyayari. Ang bit ay na-reset ng isang Power-on Reset, o sa pamamagitan ng pagsulat ng isang zero na lohika sa bandila.

Bit 1 - EXTRF: Panlabas na I-reset ang I-flag

Ang bit na ito ay nakatakda kung ang isang Panlabas na Pag-reset ay nangyayari. Ang bit ay na-reset ng isang Power-on Reset, o sa pamamagitan ng pagsulat ng isang zero na lohika sa bandila.

Bit 0 - PORF: I-reset ang I-flag ang Power

Itinakda ang bit na ito kung magaganap ang isang Power-on Reset. Ang bit ay na-reset lamang sa pamamagitan ng pagsulat ng isang lohika na zero sa bandila.

Upang magamit ang Reset Flags upang makilala ang isang kundisyon ng pag-reset, dapat basahin ng gumagamit at pagkatapos ay i-reset ang MCUSR nang maaga hangga't maaari sa programa. Kung ang rehistro ay nalinis bago maganap ang isa pang pag-reset, ang mapagkukunan ng pag-reset ay matatagpuan sa pamamagitan ng pagsusuri sa I-reset ang Mga Flags.

WDTCR - Watchdog Timer Control Rehistro

bit 7 6 5 4 3 2 1 0
0x21 WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0 WDTCR
Basahin/Isulat R/W R/W R/W R/W R/W R/W R/W R/W
Paunang Halaga 0 0 0 0 X 0 0 0

Bit 7 - WDIF: Ang Watchdog Timeout ay makagambala sa I-flag

Ang bit na ito ay itinakda kapag ang isang pag-time-out ay nangyayari sa Watchdog Timer at ang Watchdog Timer ay na-configure para makagambala. Ang WDIF ay na-clear ng hardware kapag nagpapatupad ng kaukulang nakakaabala na paghawak ng vector. Bilang kahalili, ang WDIF ay nabura sa pamamagitan ng pagsulat ng isang lohika sa watawat. Kapag ang I-bit sa SREG at WDIE ay nakatakda, ang Watchdog Time-out Interrupt ay naisagawa.

Bit 6 - WDIE: Ang Watchdog Timeout ay Nakagambala Paganahin

Kapag ang bit na ito ay nakasulat sa isa, ang WDE ay malilinaw, at ang I-bit sa Rehistro ng Katayuan ay nakatakda, pinagana ang Watchdog Time-out Interrupt. Sa mode na ito ang kaukulang pagkagambala ay naisakatuparan sa halip na isang pag-reset kung may isang timeout sa Watchdog Timer.

Kung ang WDE ay itinakda, ang WDIE ay awtomatikong nalilimas ng hardware kapag nangyari ang isang time-out. Kapaki-pakinabang ito para sa pagpapanatili ng seguridad ng Watchdog Reset habang ginagamit ang nakakagambala. Matapos ang pag-clear ng WDIE bit, ang susunod na time-out ay bubuo ng isang pag-reset. Upang maiwasan ang Watchdog Reset, dapat itakda ang WDIE pagkatapos ng bawat nakakagambala.

Talahanayan 8-2. Configuration ng Watchdog Timer

WDE WDIE Estado ng Watchdog Timer Pagkilos sa Time-out
0 0 Huminto wala
0 1 Tumatakbo Makagambala
1 0 Tumatakbo I-reset
1 1 Tumatakbo Makagambala

Bit 4 - WDCE: Paganahin ang Pagbabago ng Watchdog

Ang bit na ito ay dapat itakda kapag ang WDE bit ay nakasulat sa lohika zero. Kung hindi man, hindi maa-disable ang Watchdog. Kapag nakasulat sa isa, malilinaw ng hardware ang kaunting ito pagkatapos ng apat na cycle ng orasan. Sumangguni sa paglalarawan ng WDE bit para sa isang pamamaraan ng pag-disable ng Watchdog. Ang bit na ito ay dapat ding itakda kapag binabago ang mga prescaler na piraso. Tingnan mo "Mga Oras na Oras para sa Pagbabago ng Configuration ng Watchdog Timer ”sa pahina 43.

Bit 3 - WDE: Paganahin ang Watchdog

Kapag ang WDE ay nakasulat sa isang lohika, ang Watchdog Timer ay pinagana, at kung ang WDE ay nakasulat sa lohika zero, ang function ng Watchdog Timer ay hindi pinagana. Ang WDE ay malilinaw lamang kung ang WDCE bit ay may antas ng lohika na isa. Upang hindi paganahin ang isang pinagana na Timer ng Watchdog, dapat sundin ang sumusunod na pamamaraan:

Sa parehong operasyon, sumulat ng isang lohika sa WDCE at WDE. Ang isang lohika ay dapat na nakasulat sa WDE kahit na itinakda ito sa isa bago magsimula ang hindi paganahin ang operasyon.

Sa loob ng susunod na apat na mga cycle ng orasan, magsulat ng isang lohika 0 sa WDE. Hindi pinagagana nito ang Watchdog.

Sa antas ng kaligtasan 2, hindi posible na huwag paganahin ang Watchdog Timer, kahit na ang algorithm na inilarawan sa itaas. Tingnan mo "Mga Nakasunod na Pagkakasunud-sunod para sa Pagbabago ng Pag-configure ng timer ng Watchdog" sa pahina 43.

Sa antas ng kaligtasan 1, ang WDE ay na-override ng WDRF sa MCUSR. Tingnan mo “MCUSR - Rehistro ng Katayuan ng MCU” sa pahina 44 para sa paglalarawan ng WDRF. Nangangahulugan ito na ang WDE ay laging nakatakda kapag ang WDRF ay nakatakda. Upang i-clear ang WDE, dapat i-clear ang WDRF bago i-disable ang Watchdog gamit ang pamamaraang inilarawan sa itaas. Tinitiyak ng tampok na ito ang maraming pag-reset sa mga kundisyon na nagdudulot ng pagkabigo, at isang ligtas na pagsisimula pagkatapos ng pagkabigo.

Tandaan: Kung ang watchdog timer ay hindi gagamitin sa application, mahalagang dumaan sa watchdog disable procedure sa pagsisimula ng device. Kung hindi sinasadyang na-enable ang asong tagapagbantay, halimbawaampsa pamamagitan ng isang runaway pointer o brown-out na kondisyon, ang aparato ay mai-reset, na siya namang ay hahantong sa isang bagong pag-reset ng watchdog. Upang maiwasan ang sitwasyong ito, dapat palaging linisin ng application software ang watawat ng WDRF at ang kontrol ng WDE nang kaunti sa gawain ng pagsisimula.

Mga Bits 5, 2: 0 - WDP [3: 0]: Watchdog Timer Prescaler 3, 2, 1, at 0

Tinutukoy ng mga bitaw ng WDP [3: 0] ang Pag-presdong Timer ng Watchdog kapag pinagana ang Watchdog Timer. Ang magkakaibang mga halaga ng prescaling at ang kanilang kaukulang Mga Panahon ng Pag-timeout ay ipinapakita sa Talahanayan 8-3.

Talahanayan 8-3. Watchdog Timer Prescale Select

WDP3 WDP2 WDP1 WDP0 Bilang ng mga WDT Oscillator Cycle Karaniwang Time-out sa VCC = 5.0V
0 0 0 0 Ang mga pag-ikot ng 2K (2048) 16 ms
0 0 0 1 Ang mga pag-ikot ng 4K (4096) 32 ms
0 0 1 0 Ang mga pag-ikot ng 8K (8192) 64 ms
0 0 1 1 Ang mga pag-ikot ng 16K (16384) 0.125 s
0 1 0 0 Ang mga pag-ikot ng 32K (32764) 0.25 s
0 1 0 1 Ang mga pag-ikot ng 64K (65536) 0.5 s
0 1 1 0 Ang mga pag-ikot ng 128K (131072) 1.0 s
0 1 1 1 Ang mga pag-ikot ng 256K (262144) 2.0 s
1 0 0 0 Ang mga pag-ikot ng 512K (524288) 4.0 s
1 0 0 1 Ang mga pag-ikot ng 1024K (1048576) 8.0 s

Talahanayan 8-3. Watchdog Timer Prescale Select (Ipinagpapatuloy)

WDP3 WDP2 WDP1 WDP0 Bilang ng mga WDT Oscillator Cycle Karaniwang Time-out sa VCC = 5.0V
1 0 1 0 Nakareserba(1)
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

Tandaan: 1. Kung pinili, isa sa mga wastong setting sa ibaba 0b1010 ang gagamitin.

Mga agwat

Inilalarawan ng seksyong ito ang mga detalye ng makagambalang paghawak tulad ng isinagawa sa ATtiny25 / 45/85. Para sa isang pangkalahatang paliwanag ng AVR nakakagambala paghawak, sumangguni sa "I-reset at Makagambala sa Paghawak" sa pahina 12.

Makagambala sa Mga Vector sa ATtiny25 / 45/85

Ang mga nakakagambala na vector ng ATtiny25 / 45/85 ay inilarawan sa Talahanayan 9-1sa ibaba.

Talahanayan 9-1. I-reset at I-interrupt ang mga Vector

Vector Blg. Address ng Programa Pinagmulan Makagambala Kahulugan
1 0x0000 I-RESET Panlabas na Pin, Power-on Reset, Brown-out Reset, Watchdog Reset
2 0x0001 INT0 Panlabas na Kahilingan sa Nakagambala 0
3 0x0002 PCINT0 I-pin ang Pagbabago ng Kahilingan sa Nakagambala 0
4 0x0003 TIMER1_COMPA Timer / Counter1 Paghambingin ang Tugma A
5 0x0004 TIMER1_OVF Timer / Counter1 Overflow
6 0x0005 TIMER0_OVF Timer / Counter0 Overflow
7 0x0006 EE_RDY Handa na ang EEPROM
8 0x0007 ANA_COMP Tagapaghambing ng Analog
9 0x0008 ADC Nakumpleto ang Conversion ng ADC
10 0x0009 TIMER1_COMPB Timer / Counter1 Ihambing ang Tugma B
11 0x000A TIMER0_COMPA Timer / Counter0 Paghambingin ang Tugma A
12 0x000B TIMER0_COMPB Timer / Counter0 Ihambing ang Tugma B
13 0x000C WDT Watchdog Time-out
14 0x000D USI_START USI MAGSIMULA
15 0x000E USI_OVF Overflow ng USI

Kung ang programa ay hindi kailanman nagbibigay-daan sa isang makagambalang mapagkukunan, ang Mga Nakagambala na Vector ay hindi ginagamit, at ang regular na code ng programa ay maaaring mailagay sa mga lokasyong ito.

Ang isang tipikal at pangkalahatang pag-setup para sa makagambala na mga vector address sa ATtiny25 / 45/85 ay ipinapakita sa ex ng programaampsa ibaba.

Assembly Code Halample
.org 0x0000 ; Itakda ang address ng susunod pahayag
rjmp RESET ; Address 0x0000
rjmp INT0_ISR ; Address 0x0001
rjmp PCINT0_ISR ; Address 0x0002
rjmp TIM1_COMPA_ISR ; Address 0x0003
rjmp TIM1_OVF_ISR ; Address 0x0004
rjmp TIM0_OVF_ISR ; Address 0x0005
rjmp EE_RDY_ISR ; Address 0x0006
rjmp ANA_COMP_ISR ; Address 0x0007
rjmp ADC_ISR ; Address 0x0008
rjmp TIM1_COMPB_ISR ; Address 0x0009
rjmp TIM0_COMPA_ISR ; Address 0x000A
rjmp TIM0_COMPB_ISR ; Address 0x000B
rjmp WDT_ISR ; Address 0x000C
rjmp USI_START_ISR ; Address 0x000D
rjmp USI_OVF_ISR ; Address 0x000E
I-reset: ; Pangunahing programa ng pagsisimula
; Address 0x000F

Tandaan: Tingnan “Ang Code Halamples ”sa pahina 6.

Panlabas na Pagkagambala

Ang Mga Panlabas na Pagkagambala ay pinalitaw ng INT0 pin o alinman sa mga PCINT [5: 0] na mga pin. Pagmasdan na, kung pinagana, ang mga nakakagambala ay magti-trigger kahit na ang mga INT0 o PCINT [5: 0] na mga pin ay naka-configure bilang mga output. Ang tampok na ito ay nagbibigay ng isang paraan ng pagbuo ng isang makagambala ng software. Ang pagpapalit ng pin ay nakakagambala sa PCI ay mag-uudyok kung may anumang pinagana ang PCINT [5: 0] na mga toggle. Ang kontrol ng Rehistro ng PCMSK kung aling mga pin ang nag-aambag sa mga pagbabago ng pagbabago ng pin. Ang mga pagkagambala sa pagbabago ng pin sa PCINT [5: 0] ay napansin nang hindi magkasabay. Ipinapahiwatig nito na ang mga pagkakagambala na ito ay maaaring gamitin para sa paggising ng bahagi din mula sa mga mode ng pagtulog bukod sa Idle mode.

Ang mga pagkagambala ng INT0 ay maaaring ma-trigger ng isang pagbagsak o pagtaas ng gilid o isang mababang antas. Naka-set up ito tulad ng ipinahiwatig sa detalye para sa MCU Control Rehistro - MCUCR. Kapag ang pag-abala ng INT0 ay pinagana at na-configure bilang antas na na-trigger, mag-uudyok ang abala hangga't ang pin ay gaganapin mababa. Tandaan na ang pagkilala sa pagbagsak o pagtaas ng gilid na nakakagambala sa INT0 ay nangangailangan ng pagkakaroon ng isang I / O na orasan, na inilarawan sa "Mga Clock System at ang kanilang Pamamahagi" sa pahina 23.

Mababang Antas na Nakagambala

Ang isang mababang antas ng nakakagambala sa INT0 ay napansin nang hindi magkakasabay. Ipinapahiwatig nito na ang makagambala na ito ay maaaring gamitin para sa paggising ng bahagi din mula sa mga mode ng pagtulog bukod sa Idle mode. Ang orasan ng I / O ay nahinto sa lahat ng mga mode sa pagtulog maliban sa Idle mode.

Tandaan na kung ang isang level na na-trigger na interrupt ay ginagamit para sa pag-wake-up mula sa Power-down, ang kinakailangang antas ay dapat na matagalan upang makumpleto ng MCU ang wake-up upang ma-trigger ang level interrupt. Kung mawawala ang level bago matapos ang Oras ng Start-up, magigising pa rin ang MCU, ngunit walang interrupt na bubuo. Ang oras ng pagsisimula ay tinukoy ng SUT at CKSEL Fuse gaya ng inilarawan sa "Mga Pagpipilian sa Clock ng System at Clock" sa pahina 23.

Kung ang mababang antas sa makagambala na pin ay tinanggal bago magising ang aparato pagkatapos ay hindi maililipat ang pagpapatupad ng programa sa nakagambala na gawain sa serbisyo ngunit magpatuloy mula sa tagubilin na sumusunod sa utos ng SLEEP.

Pin Baguhin ang Makagambala na Oras

Isang datingample ng tiyempo ng isang pagbabago ng pagbabago ng pin ay ipinapakita sa Larawan 9-1.

Paglalarawan ng Paglalarawan

MCUCR - Rehistro ng MCU Control

Naglalaman ang Panlabas na Rehistro ng Pagkagambala ng Pagkagambala Isang mga control bit para sa pagkagambala ng kontrol sa pakiramdam.

bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Basahin/Isulat R R/W R/W R/W R/W R R/W R/W
Paunang Halaga 0 0 0 0 0 0 0 0

Mga Bit 1: 0 - ISC0 [1: 0]: Makagambala sa Pagkontrol ng Sense 0 Bit 1 at Bit 0

Ang External Interrupt 0 ay naaktibo ng panlabas na pin INT0 kung ang SREG I-flag at ang kaukulang interrupt mask ay nakatakda. Ang antas at mga gilid sa panlabas na INT0 pin na nagpapagana ng makagambala ay tinukoy sa Talahanayan 9-2. Ang halaga sa INT0 pin ay samppinangunahan bago makita ang mga gilid. Kung napili ang pag-abala ng gilid o toggle, ang mga pulso na tumatagal kaysa sa isang oras ng orasan ay makakabuo ng isang nakakagambala. Ang mga mas maikling pulso ay hindi ginagarantiyahan upang makabuo ng isang nakakagambala. Kung napili ang mababang antas ng pagkagambala, ang mababang antas ay dapat na gaganapin hanggang sa makumpleto ang kasalukuyang pagpapatupad ng tagubilin upang makabuo ng isang nakakagambala.

Talahanayan 9-2. Interrupt 0 Sense Control

ISC01 ISC00 Paglalarawan
0 0 Ang mababang antas ng INT0 ay bumubuo ng isang nakakagambalang kahilingan.
0 1 Anumang lohikal na pagbabago sa INT0 ay bumubuo ng isang nakakagambalang kahilingan.
1 0 Ang bumabagsak na gilid ng INT0 ay bumubuo ng isang nakakagambalang kahilingan.
1 1 Ang tumataas na gilid ng INT0 ay bumubuo ng isang nakakagambalang kahilingan.

GIMSK - Pangkalahatang Nagrerehistro sa Mask na Mag-abala

bit 7 6 5 4 3 2 1 0
0x3B INT0 PCIE GIMSK
Basahin/Isulat R R/W R/W R R R R R
Paunang Halaga 0 0 0 0 0 0 0 0

Mga Bits 7, 4: 0 - Res: Nakareserba na Mga Bits

Ang mga bit na ito ay nakareserba ng mga piraso sa ATtiny25 / 45/85 at palaging basahin bilang zero.

Bit 6 - INT0: External Interrupt Request 0 Paganahin

Kapag ang INT0 bit ay nakatakda (isa) at ang I-bit sa Status Register (SREG) ay nakatakda (isa), pinapagana ang panlabas na pin na nakakagambala. Ang Interrupt Sense Control0 bits 1/0 (ISC01 at ISC00) sa MCU Control Register (MCUCR) ay tumutukoy kung ang panlabas na pagkagambala ay naaktibo sa pagtaas at / o pagbagsak na gilid ng INT0 pin o level sensed. Ang aktibidad sa pin ay magdudulot ng isang nakakagambalang kahilingan kahit na ang INT0 ay na-configure bilang isang output. Ang katumbas na pagkagambala ng Exteral Interrupt Request 0 ay naisakatuparan mula sa INT0 Interrupt Vector.

Bit 5 - PCIE: Pin Baguhin ang Makagambala Paganahin

Kapag ang PCIE bit ay nakatakda (isa) at ang I-bit sa Status Register (SREG) ay nakatakda (isa), pinapagputol ang pag-abala ng pin ay pinagana. Anumang pagbabago sa anumang pinaganang PCINT [5: 0] na pin ay magiging sanhi ng isang nakakagambala. Ang kaukulang pagkaabala ng Pin Change Interrupt Request ay naisakatuparan mula sa PCI Interrupt Vector. Ang mga PCINT [5: 0] na mga pin ay paisa-isa na pinagana ng Rehistro ng PCMSK0.

GIFR - Pangkalahatang Pag-abala sa Rehistro ng Flag

bit 7 6 5 4 3 2 1 0
0x3A INTF0 PCIF GIFR
Basahin/Isulat R R/W R/W R R R R R
Paunang Halaga 0 0 0 0 0 0 0 0

Mga Bits 7, 4: 0 - Res: Nakareserba na Mga Bits

Ang mga bit na ito ay nakareserba ng mga piraso sa ATtiny25 / 45/85 at palaging basahin bilang zero.

Bit 6 - INTF0: External Interrupt Flag 0

Kapag ang isang gilid o pagbabago ng lohika sa INT0 pin ay nagpapalitaw ng isang nakakagambalang kahilingan, ang INTF0 ay magiging set (isa). Kung ang I-bit sa SREG at ang INT0 bit sa GIMSK ay nakatakda (isa), ang MCU ay tatalon sa kaukulang Interrupt Vector. Nilinaw ang watawat kapag naisagawa ang gumagambala na gawain. Bilang kahalili, ang flag ay maaaring malinis sa pamamagitan ng pagsulat ng isang lohikal dito. Ang watawat na ito ay palaging nalilinaw kapag ang INT0 ay na-configure bilang isang antas na nakakagambala.

Bit 5 - PCIF: Pin Baguhin ang Gumambala sa I-flag

Kapag nagbago ang isang lohika sa anumang PCINT [5: 0] na pin na nag-trigger ng isang nakakagambalang kahilingan, ang PCIF ay magiging isang set (isa). Kung ang I-bit sa SREG at ang PCIE bit sa GIMSK ay nakatakda (isa), ang MCU ay tatalon sa kaukulang Interrupt Vector. Nilinaw ang watawat kapag naisagawa ang gumagambala na gawain. Bilang kahalili, ang flag ay maaaring malinis sa pamamagitan ng pagsulat ng isang lohikal dito.

PCMSK - Pin Baguhin ang Pagrehistro ng Mask

bit 7 6 5 4 3 2 1 0
0x15 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 PCMSK
Basahin/Isulat R R R/W R/W R/W R/W R/W R/W
Paunang Halaga 0 0 0 0 0 0 0 0

Mga Bits 7: 6 - Res: Nakareserba na Mga Bits

Ang mga bit na ito ay nakareserba ng mga piraso sa ATtiny25 / 45/85 at palaging basahin bilang zero.

Mga Bits 5: 0 - PCINT [5: 0]: Pin Baguhin Paganahin ang Mask 5: 0

Ang bawat PCINT [5: 0] ay pipiliin kung ang pagpapalit ng pag-abala ng pin ay pinagana sa kaukulang I / O pin. Kung ang PCINT [5: 0] ay nakatakda at ang PCIE bit sa GIMSK ay nakatakda, ang pagpapalit ng pag-abala ng pin ay pinagana sa kaukulang I / O pin. Kung ang PCINT [5: 0] ay na-clear, ang pagbabago ng pin na nakakagambala sa kaukulang I / O pin ay hindi pinagana.

I/O Ports

Panimula

Ang lahat ng mga AVR port ay may tunay na Read-Modify-Writing na pag-andar kapag ginamit bilang pangkalahatang mga digital I / O port. Nangangahulugan ito na ang direksyon ng isang port pin ay maaaring mabago nang hindi sinasadyang binago ang direksyon ng anumang iba pang pin na may mga tagubilin sa SBI at CBI. Nalalapat ang pareho kapag binabago ang halaga ng drive (kung na-configure bilang output) o pagpapagana / hindi pagpapagana ng mga pull-up resistor (kung na-configure bilang input). Ang bawat output buffer ay may mga simetriko na katangian ng drive na may parehong mataas na lababo at kakayahan sa mapagkukunan. Ang driver ng pin ay sapat na malakas upang himukin ang mga LED na nagpapakita nang direkta. Ang lahat ng mga port pin ay may indibidwal na mapipiling resistors ng pull-up na may supply-voltage invariant resistance. Ang lahat ng I/O pin ay may mga protection diode sa parehong VCC at Ground gaya ng ipinahiwatig sa Larawan 10-1. Sumangguni sa "Mga Katangian ng Elektrikal" sa pahina 161 para sa kumpletong listahan ng mga parameter.

Larawan 10-1. I/O Pin Equivalent Schematic

Fig10

Ang lahat ng mga rehistro at bit sanggunian sa seksyong ito ay nakasulat sa pangkalahatang form. Ang isang mas mababang case na "x" ay kumakatawan sa numero ng letra para sa port, at ang isang mas mababang case na "n" ay kumakatawan sa bit number. Gayunpaman, kapag gumagamit ng rehistro o tumutukoy sa kaunti sa isang programa, dapat gamitin ang tumpak na form. Para kay example, PORTB3 para sa bit no. 3 sa Port B, narito ang dokumentong pangkalahatan bilang PORTxn. Ang pisikal na Rehistro ng I / O at mga lokasyon ng bit ay nakalista sa "Paglalarawan ng Paglalarawan" sa pahina 64.

Tatlong lokasyon ng memorya ng I / O ang inilaan para sa bawat port, isa bawat isa para sa Rehistro ng Data - PORTx, Rehistro ng Direksyon ng Data - DDRx, at mga Port Input Pins - PINx. Ang lokasyon ng Port Input P / I / O ay nababasa lamang, habang ang Rehistro ng Data at ang Rehistro ng Direksyon ng Data ay binabasa / isulat. Gayunpaman, ang pagsulat ng isang lohika nang kaunti sa PINx Reg- ister, ay magreresulta sa isang pag-toggle sa kaukulang bit sa Rehistro ng Data. Bilang karagdagan, ang Pull-up Disable - PUD bit sa MCUCR ay hindi pinagana ang function na pull-up para sa lahat ng mga pin sa lahat ng mga port kapag itinakda.

Ang paggamit ng I / O port bilang General Digital I / O ay inilarawan sa "Mga Port bilang Pangkalahatang Digital I / O" sa pahina 53. Karamihan sa mga port pin ay multiplexed na may kahaliling mga pag-andar para sa mga peripheral na tampok sa aparato. Paano inilarawan ang bawat alternatibong pagpapaandar na pagpapaandar sa port pin sa "Mga Alternatibong Pag-andar ng Port" sa pahina 57. Sumangguni sa mga indibidwal na seksyon ng module para sa isang buong paglalarawan ng mga kahaliling pag-andar.

Tandaan na ang pagpapagana ng kahaliling pagpapaandar ng ilan sa mga port pin ay hindi nakakaapekto sa paggamit ng iba pang mga pin sa port bilang pangkalahatang digital I / O.

Mga Port bilang Pangkalahatang Digital I / O

Ang mga port ay bi-directional na I / O port na may opsyonal na panloob na mga pull-up. Larawan 10-2 ay nagpapakita ng isang gumaganang paglalarawan ng isang I / O-port pin, dito pangkalahatang tinatawag na Pxn.

Larawan 10-2. Pangkalahatang Digital I/O(1)

Fig10

Pag-configure ng Pin

Ang bawat port pin ay binubuo ng tatlong mga register bit: DDxn, PORTxn, at PINxn. Tulad ng ipinakita sa "Paglalarawan ng Paglalarawan" sa pahina 64, ang mga bitbit na DDxn ay na-access sa DDRx I / O address, ang mga PORTxn na bit sa PORTx I / O address, at ang mga PINxn na bit sa PINx I / O address.

Ang bit ng DDxn sa Rehistro ng DDRx ay pipiliin ang direksyon ng pin na ito. Kung ang DDxn ay nakasulat sa isang lohika, ang Pxn ay na-configure bilang isang output pin. Kung ang DDxn ay nakasulat na lohika zero, ang Pxn ay na-configure bilang isang input pin.

Kung ang PORTxn ay nakasulat na lohika isa kapag ang pin ay na-configure bilang isang input pin, ang pull-up risistor ay isinaaktibo. Upang patayin ang pull-up risistor, kailangang isulat ang PORTxn na lohika na zero o ang pin ay dapat na mai-configure bilang isang output pin. Ang mga port pin ay tri-nakasaad kapag ang kondisyon ng pag-reset ay naging aktibo, kahit na walang mga orasan na tumatakbo.

Kung ang PORTxn ay nakasulat na lohika isa kapag ang pin ay na-configure bilang isang output pin, ang port pin ay hinihimok ng mataas (isa). Kung ang PORTxn ay nakasulat na lohika zero kapag ang pin ay na-configure bilang isang output pin, ang port pin ay hinihimok ng mababa (zero).

Pag-toggle ng Pin

Ang pagsulat ng isang lohika na isa sa PINxn ay nagpapalipat-lipat sa halaga ng PORTxn, na independyente sa halaga ng DDRxn. Tandaan na ang tagubilin ng SBI ay maaaring magamit upang i-toggle ang isang solong piraso sa isang port.

Paglipat sa Pagitan ng Input at Output

Kapag nagpalipat-lipat sa pagitan ng tri-state ({DDxn, PORTxn} = 0b00) at mataas na output ({DDxn, PORTxn} = 0b11), isang inter-mediate na estado kung saan naka-enable ang pull-up {DDxn, PORTxn} = 0b01) o mababa ang output ({DDxn, PORTxn} = 0b10) ay dapat mangyari. Karaniwan, ang pull-up enabled state ay ganap na katanggap-tanggap, dahil ang isang high-impedant na kapaligiran ay hindi mapapansin ang pagkakaiba sa pagitan ng isang malakas na high driver at isang pull-up. Kung hindi ito ang kaso, ang PUD bit sa MCUCR Register ay maaaring itakda upang i-disable ang lahat ng pull-up sa lahat ng port.

Ang paglipat sa pagitan ng input na may pull-up at output na mababa ay bumubuo ng parehong problema. Dapat gamitin ng gumagamit ang alinman sa tri- state ({DDxn, PORTxn} = 0b00) o ang output high state ({DDxn, PORTxn} = 0b10) bilang isang intermediate na hakbang.

Talahanayan 10-1 binubuod ang mga signal ng control para sa halagang pin.

Talahanayan 10-1. Mga Configuration ng Port Pin

DDxn PORTxn PUD

(sa MCUCR)

I/O Pull-up Magkomento
0 0 X Input Hindi Tri-state (Hi-Z)
0 1 0 Input Oo Pxn ay magmumula kasalukuyang kung ext. hinila pababa.
0 1 1 Input Hindi Tri-state (Hi-Z)
1 0 X Output Hindi Mababang Output (Sink)
1 1 X Output Hindi Mataas na Output (Pinagmulan)

Pagbasa ng Halaga ng Pin

Malaya sa setting ng Direksyon ng Data bit DDxn, ang port pin ay maaaring mabasa sa pamamagitan ng PINxn Rehistro bit. Tulad ng ipinakita sa Larawan 10-2, ang PINxn Rehistro na bit at ang naunang pagdidikit ay bumubuo ng isang synchronizer. Kailangan ito upang maiwasan ang metastability kung ang pisikal na pin ay nagbabago ng halaga malapit sa gilid ng panloob na orasan, ngunit nagpapakilala din ito ng pagkaantala. Larawan 10-3 nagpapakita ng timing diagram ng pag-synchronize kapag nagbabasa ng external na inilapat na pin value. Ang maximum at minimum na pagkaantala sa pagpapalaganap ay tinutukoy na tpd, max at tpd, min ayon sa pagkakabanggit.

Isaalang-alang ang tagal ng orasan na nagsisimula ilang sandali pagkatapos ng unang pagbagsak na gilid ng system clock. Ang aldado ay sarado kapag ang orasan ay mababa, at magiging transparent kapag mataas ang orasan, tulad ng ipinahiwatig ng may kulay na rehiyon ng signal na "SYNC LATCH". Ang halaga ng signal ay nai-latched kapag bumababa ang orasan ng system. Naka-orasan ito sa Rehistro ng PINxn sa sumusunod na positibong gilid ng orasan. Tulad ng ipinahiwatig ng dalawang arrow tpd, max at tpd, min, ang isang solong paglipat ng signal sa pin ay maaantala sa pagitan ng ½ at 1½ na oras ng orasan ng system depende sa oras ng paggigiit.

Kapag binabasa muli ang isang naitalagang halaga ng pin, ang isang nop na tagubilin ay dapat na ipasok tulad ng ipinahiwatig sa Larawan 10-4. Itinatakda ng tagubilin sa labas ang signal na "SYNC LATCH" sa positibong gilid ng orasan. Sa kasong ito, ang pagkaantala tpd sa pamamagitan ng synchronizer ay isang panahon ng orasan ng system.

Ang sumusunod na code example ay nagpapakita kung paano itakda ang port B pin 0 at 1 mataas, 2 at 3 mababa, at tukuyin ang port pin mula 4 hanggang 5 bilang input na may pull-up na nakatalaga sa port pin 4. Ang mga resultang pin value ay binabasa muli, ngunit gaya ng naunang napag-usapan, may kasamang nop na pagtuturo upang mabasang muli ang halagang itinalaga kamakailan sa ilan sa mga pin.

Assembly Code Halample(1)

; Tukuyin ang mga pull-up at itakda ang mataas na mga output

; Tukuyin ang mga direksyon para sa mga port pin

ldi        r16,(1<<PB4)|(1<<PB1)|(1<<PB0)

ldi        r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0)

palabas ng PORTB,r16

labas ng DDRB,r17

; Ipasok ang nop para sa pag-synchronize

nop

; Basahin ang mga port pin

sa r16,PINB

Tandaan: Para sa programa ng pagpupulong, dalawang pansamantalang rehistro ang ginagamit upang i-minimize ang oras mula sa mga pull-up ay nakatakda sa mga pin 0, 1 at 4, hanggang ang mga bit ng direksyon ay naitakda nang tama, na tinutukoy ang bit 2 at 3 bilang mababa at muling tukuyin ang mga bit 0 at 1 bilang malakas na mataas na driver.

C Code Halample
unsigned char i;

/* Tukuyin ang mga pull-up at itakda ang mataas na mga output */

/* Tukuyin ang mga direksyon para sa mga port pin */ PORTB = (1<

DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);

/* Ipasok ang nop para sa pag-synchronize*/

_NOP ();

/* Basahin ang mga port pin */ i = PINB;

Paganahin ang Digital Input at Mga Mode ng Pagtulog

Gaya ng ipinapakita sa Larawan 10-2, ang digital input signal ay maaaring maging clamped sa ground sa input ng schmitt-trigger. Ang signal na nakasaad na SLEEP sa figure, ay itinakda ng MCU Sleep Controller sa Power-down mode upang maiwasan ang mataas na paggamit ng kuryente kung ang ilang input signal ay naiwang lumulutang, o may analog signal level na malapit sa VCC/2.

Ang pagtulog ay na-override para sa mga port pin na pinagana bilang panlabas na nakakagambala na mga pin. Kung hindi pinapagana ang panlabas na kahilingan ng nakakagambala, ang SLEEP ay aktibo din para sa mga pin na ito. Ang pagtulog ay na-override din ng iba't ibang iba pang mga kahaliling pag-andar tulad ng inilarawan sa "Mga Alternatibong Pag-andar ng Port" sa pahina 57.

Kung may mataas na antas ng logic (“isa”) sa isang asynchronous na external interrupt na pin na na-configure bilang “Interrupt on Rising Edge, Falling Edge, o Any Logic Change on Pin” habang hindi naka-enable ang external interrupt, ang katumbas na External Interrupt Flag ay itakda kapag nagpapatuloy mula sa nabanggit na Sleep mode, bilang ang clampang sa mode ng pagtulog na ito ay gumagawa ng hiniling na pagbabago sa lohika.

Mga Hindi Nakakonektang Pins

Kung ang ilang mga pin ay hindi nagamit, inirerekumenda na tiyakin na ang mga pin na ito ay may isang tinukoy na antas. Kahit na ang karamihan sa mga digital na input ay hindi pinagana sa malalim na mga mode sa pagtulog tulad ng inilarawan sa itaas, dapat na iwasan ang mga lumulutang na input upang mabawasan ang kasalukuyang pagkonsumo sa lahat ng iba pang mga mode kung saan pinagana ang mga digital na input (I-reset, Aktibong mode at Idle mode).

Ang pinakasimpleng paraan upang matiyak ang isang tinukoy na antas ng isang hindi nagamit na pin, ay upang paganahin ang panloob na pull-up. Sa kasong ito, idi-disable ang pull-up sa panahon ng pag-reset. Kung ang mababang paggamit ng kuryente sa panahon ng pag-reset ay mahalaga, inirerekomendang gumamit ng panlabas na pull-up o pulldown. Ang pagkonekta ng mga hindi nagamit na pin nang direkta sa VCC o GND ay hindi inirerekomenda, dahil ito ay maaaring magdulot ng labis na agos kung ang pin ay hindi sinasadyang na-configure bilang isang output.

Kahaliling Mga Pag-andar ng Port

Karamihan sa mga port pin ay may kahaliling mga pag-andar bilang karagdagan sa pagiging pangkalahatang digital I / Os. Larawan 10-5 ipinapakita kung paano ang mga signal ng control ng port pin mula sa pinasimple Larawan 10-2 maaaring ma-override ng mga kahaliling pagpapaandar. Ang mga overriding signal ay maaaring wala sa lahat ng mga pin ng port, ngunit ang figure ay nagsisilbing isang pangkalahatang paglalarawan na nalalapat sa lahat ng mga port pin sa pamilya ng AVR microcontroller.

Talahanayan 10-2. Pangkalahatang Paglalarawan ng Mga Overriding na Signal para sa Mga Kahaliling Function

Pangalan ng Signal Buong Pangalan Paglalarawan
PUOE Pag-override ng Pag-pull-up Paganahin Kung ang signal na ito ay itinakda, ang pag-pull-up paganahin ay kinokontrol ng signal ng PUOV. Kung ang signal na ito ay nabura, ang pull-up ay pinagana kapag

{DDxn, PORTxn, PUD} = 0b010.

PUOV Hugot ng Override na Hilaw Kung ang PUOE ay itinakda, ang pull-up ay pinagana / hindi pinagana kapag ang PUOV ay itinakda / na-clear, hindi alintana ang setting ng DDxn, PORTxn, at PUD Register bit.
DDOE Paganahin ang Override ng Direksyon ng Data Kung ang signal na ito ay itinakda, ang Output Driver Enable ay kinokontrol ng signal ng DDOV. Kung ang signal na ito ay nabura, ang driver ng Output ay pinagana ng bit ng DDxn Rehistro.
DDOV Halaga ng Override ng Direksyon ng Data Kung ang DDOE ay nakatakda, ang Output Driver ay pinagana / hindi pinagana kapag ang DDOV ay itinakda / na-clear, hindi alintana ang setting ng DDxn Register bit.
PVOE Paganahin ang Pag-override sa Halaga ng Port Kung ang senyas na ito ay itinakda at pinagana ang Output Driver, ang halaga ng port ay kinokontrol ng signal ng PVOV. Kung ang PVOE ay nabura, at ang Output Driver ay pinagana, ang Halaga ng port ay kinokontrol ng bit ng Rehistro ng PORTxn.
PVOV Halaga ng Override na Halaga ng Port Kung ang PVOE ay nakatakda, ang halaga ng port ay nakatakda sa PVOV, hindi alintana ang setting ng PORTxn Register bit.
PTOE Paganahin ang Overggide ng Port Toggle Kung ang PTOE ay nakatakda, ang PORTxn Register bit ay baligtad.
DIEOE Paganahin ang Digital Input Paganahin ang Pag-override Paganahin Kung ang bit na ito ay itinakda, ang Digital Input Enable ay kinokontrol ng signal ng DIEOV. Kung ang signal na ito ay nabura, ang Digital Input Enable ay natutukoy ng estado ng MCU (Normal mode, mode ng pagtulog).
DIEOV Paganahin ng Digital Input ang Halaga ng Override Kung ang DIEOE ay itinakda, ang Digital Input ay pinagana / hindi pinagana kapag ang DIEOV ay nakatakda / na-clear, anuman ang estado ng MCU (Normal mode, mode ng pagtulog).
DI Digital na Input Ito ang Digital Input sa mga kahaliling pag-andar. Sa figure, ang signal ay konektado sa output ng schmitt-trigger ngunit bago ang synchronizer. Maliban kung ang Digital Input ay ginamit bilang isang mapagkukunan ng orasan, ang module na may kahaliling pag-andar ay gagamit ng sarili nitong synchronizer.
AIO Pag-input / Paglabas ng Analog Ito ang Analog Input / Output sa / mula sa mga kahaliling pag-andar. Ang signal ay konektado direkta sa pad, at maaaring magamit nang direkta.

Ang mga sumusunod na subseksyon ay maikling naglalarawan sa mga kahaliling pag-andar para sa bawat port, at naiugnay ang mga overriding signal sa kahaliling pagpapaandar. Sumangguni sa kahaliling paglalarawan ng pagpapaandar para sa karagdagang mga detalye.

Mga Kahaliling Pag-andar ng Port B

Ang mga Port B pin na may kahaliling pagpapaandar ay ipinapakita sa Talahanayan 10-3.

Talahanayan 10-3. Mga Kahaliling Function ng Port B Pins

Port Pin Kahaliling Pag-andar
PB5

I-RESET: I-reset ang Pin

dW: debugWIRE I / O ADC0: ADC Input Channel 0

PCINT5: Pin Change Interrupt, Source 5

PB4 XTAL2: Crystal Oscillator Output CLKO: System Clock Output ADC2: ADC Input Channel 2

OC1B: Timer / Counter1 Paghambingin ang Match B Output PCINT4: Pin Change Interrupt 0, Source 4

PB3 XTAL1: Crystal Oscillator Input CLKI: External Clock Input ADC3: ADC Input Channel 3

OC1B: Komplementaryong Timer / Counter1 Ihambing ang Tugma B Output PCINT3: Pin Baguhin ang Makagambala 0, Pinagmulan 3

PB2 SCK: Input ng Serial Clock 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, Pinagmulan 1
PB0 MOSI :: Paglabas ng Data ng Master ng SPI / Pag-input ng Data ng Alipin AIN0: Paghahambing ng Analog, Positibong Pag-input

OC0A: Timer/Counter0 Ihambing ang Match A na output

OC1A: Komplementaryong Timer / Counter1 Paghambingin ang Pagtutugma ng Isang Output DI: USI Data Input (Tatlong Wire Mode)

SDA: USI Data Input (Two Wire Mode) AREF: External Analog Reference PCINT0: Pin Change Interrupt 0, Source 0

Port B, Bit 5 - I-RESET / dW / ADC0 / PCINT5

I-reset: Ang panlabas na pag-input ng reset ay aktibo mababa at pinagana ng walang pag-program ("1") ang RSTDISBL Fuse. Aktibo ang paghugot at ang driver ng output at digital input ay na-deactivate kapag ginamit ang pin bilang RESET pin.

dW: Kapag ang debugWIRE Paganahin (DWEN) Fuse ay na-program at ang Lock bits ay walang programa, ang debugWIRE system sa loob ng target na aparato ay aktibo. Ang RESET port pin ay naka-configure bilang isang wire-AND (open-drain) na bi-directional na I / O pin na may naka-pull-up na at naging gateway ng komunikasyon sa pagitan ng target at emulator.

ADC0: Analog to Digital Converter, Channel 0.

PCINT5: Pin Baguhin ang Makagambala mapagkukunan 5.

Port B, Bit 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4

XTAL2: Chip Clock Oscillator pin 2. Ginamit bilang orasan ng pin para sa lahat ng mapagkukunan ng maliit na tilad maliban sa panloob na calibrateble RC Oscillator at panlabas na orasan. Kapag ginamit bilang isang pin na orasan, ang pin ay hindi maaaring gamitin bilang isang I / O pin. Kapag gumagamit ng panloob na calibratable RC Oscillator o Panlabas na orasan bilang isang mapagkukunan ng orasan ng Chip, ang PB4 ay nagsisilbing isang ordinaryong I / O pin.

CLKO: Ang devided system na orasan ay maaaring maging output sa pin PB4. Ang nahahati na orasan ng system ay magiging output kung ang CKOUT Fuse ay na-program, hindi alintana ang mga setting ng PORTB4 at DDB4. Magiging output din ito sa panahon ng pag-reset.

ADC2: Analog to Digital Converter, Channel 2.

OC1B: Output Compare Match output: Ang PB4 pin ay maaaring maglingkod bilang isang panlabas na output para sa Timer / Counter1 Paghambingin ang Tugma B kapag na-configure bilang isang output (set ng DDB4). Ang pin ng OC1B din ang output pin para sa pagpapaandar ng timer ng PWM mode.

PCINT4: Pin Baguhin ang Makagambala mapagkukunan 4.

Port B, Bit 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3

XTAL1: Chip Clock Oscillator pin 1. Ginagamit para sa lahat ng mapagkukunan ng chip orasan maliban sa panloob na calibrateble oscillator RC. Kapag ginamit bilang isang pin na orasan, ang pin ay hindi maaaring gamitin bilang isang I / O pin.

CLKI: Clock Input mula sa isang panlabas na mapagkukunan ng orasan, kitaan "Panlabas na Orasan" sa pahina 26.

ADC3: Analog to Digital Converter, Channel 3.

OC1B: Inverted Output Ihambing ang output ng Tugma: Ang PB3 pin ay maaaring magsilbing isang panlabas na output para sa Timer / Counter1 Paghambingin ang Tugma B kapag na-configure bilang isang output (set ng DDB3). Ang pin ng OC1B din ang inverted output pin para sa pagpapaandar ng timer ng PWM mode.

PCINT3: Pin Baguhin ang Makagambala mapagkukunan 3.

Port B, Bit 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2

SCK: Master Clock output, Slave Clock input pin para sa SPI channel. Kapag ang SPI ay pinagana bilang isang Alipin, ang pin na ito ay na-configure bilang isang input anuman ang setting ng DDB2. Kapag ang SPI ay pinagana bilang isang Master, ang direksyon ng data ng pin na ito ay kinokontrol ng DDPB2. Kapag ang pin ay pinilit ng SPI na maging isang input, ang pull-up ay maaari pa ring makontrol ng PORTB2 bit.

ADC1: Analog to Digital Converter, Channel 1.

T0: Pinagmulan ng counter ng timer / Counter0.

USCK: Three-wire mode Universal Serial Interface Clock.

SCL: Serye ng Dalawang-kawad na Serial Clock para sa USI Two-wire mode.

INT0: Panlabas na makagagaling na mapagkukunan 0.

PCINT2: Pin Baguhin ang Makagambala mapagkukunan 2.

Port B, Bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1

MISO: Input ng Master Data, pin ng output ng Slave Data para sa SPI channel. Kapag ang SPI ay pinagana bilang isang Master, ang pin na ito ay na-configure bilang isang input anuman ang setting ng DDB1. Kapag ang SPI ay pinagana bilang isang Alipin, ang direksyon ng data ng pin na ito ay kinokontrol ng DDB1. Kapag ang pin ay pinilit ng SPI na maging isang input, ang pull-up ay maaari pa ring makontrol ng PORTB1 bit.

AIN1: Negatibong Input ng Analog Comparator. I-configure ang port pin bilang input na may panloob na pull-up na nakasara upang maiwasan ang pag-andar ng digital port mula sa makagambala sa pagpapaandar ng Analog Comparator.

OC0B: Output Ihambing ang output ng Tugma. Ang PB1 pin ay maaaring magsilbing isang panlabas na output para sa Timer / Counter0 Compare Match B. Ang PB1 pin ay dapat na mai-configure bilang isang output (set ng DDB1 (isa)) upang maihatid ang pagpapaandar na ito. Ang pin ng OC0B din ang output pin para sa pagpapaandar ng timer ng PWM mode.

OC1A: Output Compare Match output: Ang PB1 pin ay maaaring maglingkod bilang isang panlabas na output para sa Timer / Counter1 Paghambingin ang Tugma B kapag na-configure bilang isang output (set ng DDB1). Ang pin ng OC1A din ang output pin para sa pagpapaandar ng timer ng PWM mode.

GAWIN: Three-wire mode Universal Serial Interface Data output. Three-wire mode Ang output ng data ay nag-o-override sa halaga ng PORTB1 at ito ay hinihimok sa port kapag ang direksyon ng data bit DDB1 ay nakatakda (isa). Pinapayagan pa rin ng PORTB1 ang pull-up, kung ang direksyon ay input at ang PORTB1 ay nakatakda (isa).

PCINT1: Pin Baguhin ang Makagambala mapagkukunan 1.

Port B, Bit 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0

MOSI: output ng SPI Master Data, Slave Data input para sa SPI channel. Kapag ang SPI ay pinagana bilang isang Alipin, ang pin na ito ay na-configure bilang isang input anuman ang setting ng DDB0. Kapag ang SPI ay pinagana bilang isang Master, ang direksyon ng data ng pin na ito ay kinokontrol ng DDB0. Kapag ang pin ay pinilit ng SPI na maging isang input, ang pull-up ay maaari pa ring makontrol ng PORTB0 bit.

AIN0: Analog Comparator Positive Input. I-configure ang port pin bilang input na may panloob na pull-up na nakasara upang maiwasan ang pag-andar ng digital port mula sa makagambala sa pagpapaandar ng Analog Comparator.

OC0A: Output Paghambingin ang output ng Tugma. Ang PB0 pin ay maaaring magsilbing isang panlabas na output para sa Timer / Counter0 Compare Match A kapag na-configure bilang isang output (set ng DDB0 (isa)). Ang pin ng OC0A din ang output pin para sa pagpapaandar ng timer ng PWM mode.

OC1A: Inverted Output Paghambingin ang output ng Tugma: Ang PB0 pin ay maaaring magsilbing isang panlabas na output para sa Timer / Counter1 Paghambingin ang Tugma B kapag na-configure bilang isang output (set ng DDB0). Ang pin ng OC1A din ang inverted output pin para sa pagpapaandar ng timer ng PWM mode.

SDA: Data ng Serial Interface na Dalawang-wire mode.

AREF: Panlabas na Sanggunian ng Analog para sa ADC. Ang driver ng pullup at output ay hindi pinagana sa PB0 kapag ginamit ang pin bilang isang panlabas na sanggunian o Panloob na Voltage Sanggunian na may panlabas na kapasitor sa mga pin ng AREF.

DI: Input ng Data sa USI Three-wire mode. Ang USI Three-wire mode ay hindi nag-o-override ng normal na pagpapaandar ng port, kaya dapat na i-configure ang pin bilang isang input para sa DI function.

PCINT0: Pin Baguhin ang Makagambala mapagkukunan 0.

Talahanayan 10-4 at Talahanayan 10-5 iugnay ang mga kahaliling pagpapaandar ng Port B sa mga overriding signal na ipinakita sa Larawan 10-5 sa pahina 58.

Talahanayan 10-4. Mga Overriding na Signal para sa Mga Kahaliling Function sa PB[5:3]

Pangalan ng Signal 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 Paghahatid ng debugWire 0 0
PVOE 0 Paganahin ang OC1B

Paganahin ang OC1B

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 ng PCINT5 Input ng PCINT4 Input ng PCINT3
AIO I-reset ang Input, ADC0 Input ADC2 Input ADC3 Input

Tandaan: kapag ang Fuse ay “0” (Programmed).

Talahanayan 10-5. Mga Overriding na Signal para sa Mga Kahaliling Function sa PB[2:0]

Pangalan ng Signal 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 Paganahin ang OC0B + OC1A Paganahin ang + USI_THREE_WIRE

Paganahin ang OC0A + OC1A Paganahin ang + (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 ng PCINT2

Input ng PCINT1 DI / SDA / PCINT0 Input
AIO ADC1 Input Negatibong Input ng Maghahambing na Analog Positive Input ng Maghahambing na Analog

Paglalarawan ng Paglalarawan

MCUCR - Rehistro ng MCU Control

bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Basahin/Isulat R R/W R/W R/W R/W R R/W R/W
Paunang Halaga 0 0 0 0 0 0 0 0

Bit 6 - PUD: Pull-up Huwag paganahin

Kapag ang bit na ito ay nakasulat sa isa, ang mga pull-up sa mga port ng I / O ay hindi pinagana kahit na ang DDxn at PORTxn Registro ay na-configure upang paganahin ang mga pull-up ({DDxn, PORTxn} = 0b01). Tingnan mo "Pag-configure ng Pin" sa pahina 54 para sa karagdagang detalye tungkol sa tampok na ito.

PORTB - Pagrehistro sa Data ng Port B

bit 7 6 5 4 3 2 1 0
0x18 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
Basahin/Isulat R R R/W R/W R/W R/W R/W R/W
Paunang Halaga 0 0 0 0 0 0 0 0

DDRB - Rehistro sa Direksyon ng Port B

bit 7 6 5 4 3 2 1 0
0x17 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Basahin/Isulat R R R/W R/W R/W R/W R/W R/W
Paunang Halaga 0 0 0 0 0 0 0 0

PINB - Port B Input Pins Address

bit 7 6 5 4 3 2 1 0
0x16 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Basahin/Isulat R R R/W R/W R/W R/W R/W R/W
Paunang Halaga 0 0 N/A N/A N/A N/A N/A N/A

8-bit Timer / Counter0 kasama ang PWM

Mga tampok

Dalawang Independent Output Compare Units

Dobleng Buffered Output Paghambing Mga Rehistro

I-clear ang Timer sa Compare Match (Auto Reload)

Libreng Glitch, Phase Tamang Pulse Width Modulator (PWM)

Variable PWM Panahon

Tagabuo ng Frequency

Tatlong Malayang Mga Pinagmumulan ng Makagambala (TOV0, OCF0A, at OCF0B)

Tapos naview

Ang timer / Counter0 ay isang pangkalahatang layunin 8-bit Timer / Counter module, na may dalawang independiyenteng Output Compare Units, at may suporta sa PWM. Pinapayagan nito ang tumpak na oras ng pagpapatupad ng programa (pamamahala ng kaganapan) at pagbuo ng alon.

Ang isang pinasimple na diagram ng block ng 8-bit Timer / Counter ay ipinapakita sa Larawan 11-1. Para sa aktwal na paglalagay ng I / O pin, sumangguni sa "Pinout ATtiny25 / 45/85" sa pahina 2. Ma-access ang mga Rehistro ng I / O ng CPU, kabilang ang mga I / O bit at I / O na pin, ay ipinapakita nang naka-bold. Ang rehistro na I / O na tukoy sa aparato at nakalista ang mga lokasyon sa "Paglalarawan ng Pagrehistro" sa pahina 77.

Ang Timer/Counter (TCNT0) at Output Compare Registers (OCR0A at OCR0B) ay 8-bit registers. Ang mga signal ng interrupt request (pinaikling Int.Req. sa figure) ay makikita lahat sa Timer Interrupt Flag Register (TIFR). Ang lahat ng mga interrupts ay indibidwal na naka-mask sa Timer Interrupt Mask Register (TIMSK). Ang TIFR at TIMSK ay hindi ipinapakita sa figure.

Ang Timer/Counter ay maaaring i-clock sa loob, sa pamamagitan ng prescaler, o sa pamamagitan ng panlabas na mapagkukunan ng orasan sa T0 pin. Kinokontrol ng Clock Select logic block kung aling pinagmulan at gilid ng orasan ang ginagamit ng Timer/Counter para dagdagan (o bawasan) ang halaga nito. Ang Timer/Counter ay hindi aktibo kapag walang piniling pinagmulan ng orasan. Ang output mula sa Clock Select logic ay tinutukoy bilang timer clock (clkT0).

Ang dobleng buffered Output Compare Registro (OCR0A at OCR0B) ay inihambing sa Timer / Counter na halaga sa lahat ng oras. Ang resulta ng paghahambing ay maaaring gamitin ng Waveform Generator upang makabuo ng isang PWM o variable na output ng frekuency sa mga Output Compare pin (OC0A at OC0B). Tingnan ang "Output Compare Unit" sa pahina 69. para sa mga detalye. Itatakda din ng kaganapan ng Compare Match ang Compare Flag (OCF0A o OCF0B) na maaaring magamit upang makabuo ng isang Output Compare interrupt na kahilingan.

Mga Kahulugan

Maraming rehistro at bit na sanggunian sa seksyong ito ay nakasulat sa pangkalahatang porma. Ang isang mas mababang kaso na "n" ay pumapalit sa numero ng Timer / Counter, sa kasong ito 0. Ang isang mas mababang kaso na "x" ay pumapalit sa Output Compare Unit, sa kasong ito Paghambingin ang Unit A o Paghambingin ang Unit B. Gayunpaman, kapag ginagamit ang rehistro o medyo tumutukoy sa sa isang programa, dapat gamitin ang tumpak na form, ibig sabihin, TCNT0 para sa pag-access sa halaga ng counter ng Timer / Counter0 at iba pa.

Ang mga kahulugan sa Talahanayan 11-1 Malawakang ginagamit din sa buong dokumento.

Talahanayan 11-1. Mga Kahulugan

pare-pareho Paglalarawan
IBABA Ang counter ay umabot sa BOTTOM kapag ito ay naging 0x00
MAX Naabot ng counter ang MAXimum nito kapag naging 0xFF (decimal 255)
TOP Naabot ng counter ang TOP kapag naging pantay ito sa pinakamataas na halaga sa pagkakasunud-sunod ng bilang. Ang TOP halaga ay maaaring italaga upang maging ang nakapirming halaga 0xFF (MAX) o ang halagang nakaimbak sa Rehistro ng OCR0A. Ang pagtatalaga ay nakasalalay sa mode ng pagpapatakbo

Mga Pinagmulan ng Timer / Counter Prescaler at Clock

Ang timer / Counter ay maaaring mai-orasan ng isang panloob o isang panlabas na mapagkukunan ng orasan. Ang mapagkukunan ng orasan ay pinili ng Clock Select logic na kinokontrol ng Clock Select (c) na mga bit na matatagpuan sa Timer / Counter0 Control Register (TCCR0B).

Panloob na Pinagmulan ng Orasan na may Prescaler

Ang Timer/Counter0 ay maaaring direktang i-clock ng system clock (sa pamamagitan ng pagtatakda ng CS0[2:0] = 1). Nagbibigay ito ng pinakamabilis na operasyon, na may maximum na timer/counter clock frequency na katumbas ng system clock frequency (fCLK_I/O). Bilang kahalili, ang isa sa apat na pag-tap mula sa prescaler ay maaaring gamitin bilang mapagkukunan ng orasan. Ang prescaled na orasan ay may dalas ng alinman

Pag-reset ng Prescaler

Ang prescaler ay libreng pagpapatakbo, ibig sabihin, nagpapatakbo ito nang nakapag-iisa sa Clock Select logic ng Timer / Counter0. Dahil ang prescaler ay hindi apektado ng pagpili ng orasan ng timer / counter, ang estado ng prescaler ay magkakaroon ng mga implikasyon para sa mga sitwasyon kung saan ginagamit ang isang prescaled na orasan. Isang datingample ng isang prescaling artifact ay kapag ang timer / counter ay pinagana at nai-orasan ng prescaler (6> CS0 [2: 0]> 1). Ang bilang ng mga pag-ikot ng orasan ng system mula kapag ang timer ay pinagana sa unang bilang ay nangyayari ay maaaring mula 1 hanggang N + 1 na mga cycle ng system ng orasan, kung saan ang N ay katumbas ng prescaler divisor (8, 64, 256, o 1024).

Posibleng gamitin ang Prescaler Reset para sa pagsabay sa Timer / Counter sa pagpapatupad ng programa.

Pinagmulan ng Panloob na Orasan

Ang panlabas na mapagkukunan ng orasan na inilapat sa T0 pin ay maaaring gamitin bilang timer/counter clock (clkT0). Ang T0 pin ay samphumantong isang beses sa bawat system cycle ng orasan sa pamamagitan ng pin synchronization lohika. Ang mga naka-synchronize (samphumantong) signal ay pagkatapos ay naipasa

sa pamamagitan ng detektor ng gilid. Larawan 11-2 nagpapakita ng functional na katumbas na block diagram ng T0 synchronization at edge detector logic. Ang mga rehistro ay naka-clock sa positibong gilid ng internal system clock (clkI/O). Ang latch ay transparent sa mataas na panahon ng internal system clock.

Bumubuo ang edge detector ng isang clkT0 pulse para sa bawat positibong (CS0[2:0] = 7) o negatibo (CS0[2:0] = 6) na gilid na nakikita nito.

Ang Mga Rehistro ng OCR0x ay dobleng nai-buffer kapag gumagamit ng alinman sa mga mode ng Pulse Width Modulation (PWM). Para sa normal at Clear Timer on Compare (CTC) na mga mode ng pagpapatakbo, ang dobleng buffering ay hindi pinagana. Ang dobleng pag-buffer ay sinasabay ang pag-update ng OCR0x Ihambing ang Mga Rehistro sa alinman sa tuktok o ibaba ng pagkakasunud-sunod ng bilang. Pinipigilan ng pagsabay ang paglitaw ng mga kakatwang haba, di-simetriko na pulso ng PWM, sa gayong paraan ay walang output na walang glitch.

Ang pag-access sa Rehistro ng OCR0x ay maaaring mukhang kumplikado, ngunit hindi ito ang kaso. Kapag pinagana ang dobleng buffering, may access ang CPU sa Rehistro ng buffer ng OCR0x, at kung hindi pinagana ang dobleng buffering, direktang maa-access ng CPU ang OCR0x.

Paghahambing ng Output ng puwersa

Sa mga mode na pagbuo ng di-PWM alonform, ang output ng tugma ng kumpare ay maaaring sapilitang sa pamamagitan ng pagsulat ng isa sa bit ng Force Output Compare (FOC0x). Ang Pagpipilit ng Paghambingin ng Pagtutugma ay hindi magtatakda ng I-flag ang OCF0x o i-reload / i-clear ang timer, ngunit ang pin ng OC0x ay maa-update na kung ang isang tunay na Paghambing ng Tugma ay naganap (ang mga setting ng COM0x [1: 0] na tinukoy ng mga setting kung ang OC0x pin ay itinakda, na-clear o na-toggle).

Paghambingin ang Paghaharang sa Pagtutugma ng Sumulat sa TCNT0

Ang lahat ng pagpapatakbo ng pagsusulat ng CPU sa Pagrehistro sa TCNT0 ay hahadlangan ang anumang Paghambing na Tugma na nagaganap sa susunod na ikot ng orasan ng timer, kahit na tumigil ang timer. Pinapayagan ng tampok na ito ang OCR0x na ma-initialize sa parehong halaga tulad ng TCNT0 nang hindi nagpapalitaw ng isang nakakagambala kapag pinagana ang orasan ng Timer / Counter.

Paggamit ng Output Compare Unit

Dahil ang pagsusulat ng TCNT0 sa anumang mode ng pagpapatakbo ay hahadlangan ang lahat ng Paghambing ng Mga Tugma para sa isang ikot ng timer na orasan, may mga panganib na kasangkot kapag binabago ang TCNT0 kapag ginagamit ang Output Compare Unit, nang nakapag-iisa kung tumatakbo ang Timer / Counter o hindi. Kung ang halagang nakasulat sa TCNT0 ay katumbas ng halaga ng OCR0x, mawawala ang Paghahambing na Tugma, na magreresulta sa maling pagbuo ng waveform. Katulad nito, huwag isulat ang halagang TCNT0 na katumbas ng BOTTOM kapag ang counter ay pababang pagbibilang.

Ang pag-set up ng OC0x ay dapat gumanap bago itakda ang Data Direction Register para sa output ng port pin. Ang pinakamadaling paraan ng pagtatakda ng halaga ng OC0x ay ang paggamit ng Force Output Compare (FOC0x) na mga strober bit sa Normal mode. Ang mga Rehistro ng OC0x ay pinapanatili ang kanilang mga halaga kahit na nagbabago sa pagitan ng mga mode ng Pagbuo ng Waveform.

Magkaroon ng kamalayan na ang mga COM0x [1: 0] na mga piraso ay hindi doble na nai-buffer kasama ang ihambing na halaga. Ang pagbabago ng COM0x [1: 0] na mga bits ay magkakabisa kaagad.

Paghambingin ang Yunit ng Output ng Tugma

Ang Compare Output mode (COM0x [1: 0]) na mga bit ay mayroong dalawang pagpapaandar. Gumagamit ang Waveform Generator ng mga COM0x [1: 0] na mga bit para sa pagtukoy sa estado ng Output Compare (OC0x) sa susunod na Paghambing ng Pagtugma. Gayundin, kinokontrol ng mga COM0x [1: 0] na bit ang pinagmulan ng output ng pin na OC0x. Larawan 11-6 nagpapakita ng isang pinasimple na eskematiko ng lohika na apektado ng COM0x [1: 0] na setting ng kaunti. Ang Mga Rehistro ng I / O, mga piraso ng I / O, at mga I / O na pin sa pigura ay ipinapakita nang naka-bold. Ang mga bahagi lamang ng pangkalahatang I / O Port Control Registro (DDR at PORT) na apektado ng COM0x [1: 0] na mga bit ay ipinapakita. Kapag tumutukoy sa estado ng OC0x, ang sanggunian ay para sa panloob na Rehistro ng OC0x, hindi ang OC0x pin. Kung maganap ang isang pag-reset ng system, ang Rehistro ng OC0x ay nai-reset sa "0".

Kapag ang OC0A / OC0B ay konektado sa I / O pin, ang pagpapaandar ng mga COM0A [1: 0] / COM0B [1: 0] na mga bit ay nakasalalay sa setting ng bit na WGM0 [2: 0]. Talahanayan 11-2 ipinapakita ang pag-andar ng COM0x [1: 0] kapag ang mga WGM0 [2: 0] na mga piraso ay itinakda sa isang normal o CTC mode (hindi PWM).

Talahanayan 11-2. Ihambing ang Output Mode, non-PWM Mode

COM0A1 COM0B1 COM0A0 COM0B0 Paglalarawan
0 0 Karaniwang pagpapatakbo ng port, naka-disconnect ang OC0A / OC0B.
0 1 I-toggle ang OC0A / OC0B sa Ihambing ang Tugma
1 0 I-clear ang OC0A / OC0B sa Paghahambing ng Tugma
1 1 Itakda ang OC0A / OC0B sa Paghambingin ng Pareha

Talahanayan 11-3 ipinapakita ang pag-andar ng COM0x [1: 0] kapag ang WGM0 [2: 0] na mga piraso ay nakatakda sa mabilis na mode na PWM.

Talahanayan 11-3. Ihambing ang Output Mode, Mabilis na PWM Mode(1)

COM0A1 COM0B1 COM0A0 COM0B0 Paglalarawan
0 0 Karaniwang pagpapatakbo ng port, naka-disconnect ang OC0A / OC0B.
0 1 Nakareserba
1 0 I-clear ang OC0A / OC0B sa Compare Match, itakda ang OC0A / OC0B sa BOTTOM (non-inverting mode)
1 1 Itakda ang OC0A / OC0B sa Compare Match, i-clear ang OC0A / OC0B sa BOTTOM (inverting mode)

Tandaan: Ang isang espesyal na kaso ay nangyayari kapag ang OCR0A o OCR0B ay katumbas ng TOP at ang COM0A1/COM0B1 ay nakatakda. Sa kasong ito, binabalewala ang paghahambing na tugma, ngunit ang set o clear ay ginagawa sa BOTTOM. Tingnan mo "Mabilis na PWM Mode" sa pahina 73 para sa karagdagang detalye.

Talahanayan 11-4 ipinapakita ang pag-andar ng COM0x [1: 0] kapag ang mga WGM0 [2: 0] na mga piraso ay nakatakda sa phase wastong mode na PWM.

Talahanayan 11-4. Ihambing ang Output Mode, Phase Correct PWM Mode(1)

COM0A1 COM0B1 COM0A0 COM0B0 Paglalarawan
0 0 Karaniwang pagpapatakbo ng port, naka-disconnect ang OC0A / OC0B.
0 1 Nakareserba
1 0 I-clear ang OC0A / OC0B sa Paghambingin ng Tugma kapag pataas ang bilang. Itakda ang OC0A / OC0B sa Paghambingin ng Tugma kapag binibilang ang down.
1 1 Itakda ang OC0A / OC0B sa Paghambingin ng Tugma kapag binibilang ang bilang. I-clear ang OC0A / OC0B sa Paghambingin ng Tugma kapag binibilang ang down.

Tandaan: 1. Ang isang espesyal na kaso ay nangyayari kapag ang OCR0A o OCR0B ay katumbas ng TOP at ang COM0A1/COM0B1 ay nakatakda. Sa kasong ito, ang Compare Match ay binabalewala, ngunit ang set o clear ay ginagawa sa TOP. Tingnan mo "Phase Tamang PWM Mode" sa pahina 74 para sa karagdagang detalye.

Mga Bits 3: 2 - Res: Nakareserba na Mga Bits

Ang mga bit na ito ay nakareserba ng mga piraso sa ATtiny25 / 45/85 at palaging basahin bilang zero.

Mga Bit 1: 0 - WGM0 [1: 0]: Waveform Generation Mode

Isinasama sa WGM02 bit na natagpuan sa TCCR0B Rehistro, kinokontrol ng mga bit na ito ang pagkakasunud-sunod ng pagbibilang ng counter, ang mapagkukunan para sa maximum (TOP) na halaga ng counter, at kung anong uri ng henerasyon ng alon ang gagamitin, tingnan Talahanayan 11-5. Ang mga mode ng pagpapatakbo na suportado ng Timer / Counter unit ay: Normal mode (counter), Clear Timer sa Compare Match (CTC) mode, at dalawang uri ng Pulse Width Modulation (PWM) mode (tingnan ang "Mga Mode ng Pagpapatakbo" sa pahina 71).

Talahanayan 11-5. Waveform Generation Mode Bit Paglalarawan

Mode WGM 02 WGM 01 WGM 00 Timer / Counter Mode ng Operasyon TOP Update ng OCRx sa Itakda ang Flag ng TOV
0 0 0 0 Normal 0xFF Agad-agad MAX(1)
1 0 0 1 PWM, Tamang Phase 0xFF TOP IBABA(2)
2 0 1 0 CTC OCRA Agad-agad MAX(1)
3 0 1 1 Mabilis na PWM 0xFF IBABA(2) MAX(1)
4 1 0 0 Nakareserba
5 1 0 1 PWM, Tamang Phase OCRA TOP IBABA(2)
6 1 1 0 Nakareserba
7 1 1 1 Mabilis na PWM OCRA IBABA(2) TOP

Bit 7 - FOC0A: Paglabas ng Pilit na Paghahambing A

Ang FOC0A bit ay aktibo lamang kapag tinukoy ng mga WGM bit ang isang mode na hindi PWM.

Gayunpaman, para matiyak ang pagiging tugma sa mga aparatong hinaharap, ang bit na ito ay dapat itakda sa zero kapag nakasulat ang TCCR0B kapag nagpapatakbo sa PWM mode. Kapag nagsusulat ng isang lohikal sa FOC0A na bit, isang agarang Paghahambing ang Match ay sapilitang sa yunit ng Henerasyon ng Waveform. Ang output ng OC0A ay binago alinsunod sa setting ng COM0A [1: 0] na mga piraso nito. Tandaan na ang FOC0A bit ay ipinatupad bilang isang strobar. Samakatuwid ito ang halaga na naroroon sa mga COM0A [1: 0] na mga piraso na tumutukoy sa epekto ng sapilitang paghambing.

Ang isang FOC0A strobo ay hindi makakabuo ng anumang nakakagambala, at hindi rin nito i-clear ang timer sa mode ng CTC gamit ang OCR0A bilang TOP. Ang FOC0A bit ay palaging binabasa bilang zero.

Bit 6 - FOC0B: Paghahambing ng Output ng puwersa B

Ang FOC0B bit ay aktibo lamang kapag tinukoy ng mga WGM bit ang isang mode na hindi PWM.

Gayunpaman, para matiyak ang pagiging tugma sa mga aparatong hinaharap, ang bit na ito ay dapat itakda sa zero kapag nakasulat ang TCCR0B kapag nagpapatakbo sa PWM mode. Kapag nagsusulat ng isang lohikal sa FOC0B bit, isang agarang Paghahambing ang Match ay sapilitang sa yunit ng Henerasyon ng Waveform. Ang output ng OC0B ay binago alinsunod sa setting ng COM0B [1: 0] na mga ito. Tandaan na ang FOC0B bit ay ipinatupad bilang isang strobar. Samakatuwid ito ang halaga na naroroon sa mga COM0B [1: 0] na mga piraso na tumutukoy sa epekto ng sapilitang paghambing.

Ang isang FOC0B strobo ay hindi makakabuo ng anumang nakakagambala, at hindi rin nito buburahin ang timer sa CTC mode gamit ang OCR0B bilang TOP.

Ang bit ng FOC0B ay palaging binabasa bilang zero.

Mga Bits 5: 4 - Res: Nakareserba na Mga Bits

Ang mga bit na ito ay nakareserba ng mga piraso sa ATtiny25 / 45/85 at palaging basahin bilang zero.

Bit 3 - WGM02: Mode ng Pagbuo ng Waveform

Tingnan ang paglalarawan sa “TCCR0A - Pagrehistro ng Timer / Counter Control A” sa pahina 77.

Mga Bits 2: 0 - CS0 [2: 0]: Select Clock

Ang tatlong mga Pinili ng Orasan ay pumili ng mapagkukunan ng orasan na gagamitin ng Timer / Counter.

Talahanayan 11-6. Clock Select Bit Description

CS02 CS01 CS00 Paglalarawan
0 0 0 Walang pinagmulan ng orasan (Huminto ang Timer / Counter)
0 0 1 clkI/O/(Walang prescaling)
0 1 0 clkI/O/8 (Mula sa prescaler)
0 1 1 clkI/O/64 (Mula sa prescaler)
1 0 0 clkI/O/256 (Mula sa prescaler)
1 0 1 clkI/O/1024 (Mula sa prescaler)
1 1 0 Panlabas na mapagkukunan ng orasan sa T0 pin. Clock sa pagbagsak ng gilid.
1 1 1 Panlabas na mapagkukunan ng orasan sa T0 pin. Clock sa tumataas na gilid.

Kung ang mga panlabas na mode ng pin ay ginagamit para sa Timer / Counter0, ang mga paglilipat sa T0 pin ay isasara ang counter kahit na ang pin ay naka-configure bilang isang output. Pinapayagan ng tampok na ito ang kontrol ng software sa pagbibilang.

Counter at Compare Units

Ang pangkalahatang operasyon ng Timer / Counter1 ay inilarawan sa asynchronous mode at ang operasyon sa synchro- nous mode ay nabanggit lamang kung may mga pagkakaiba sa pagitan ng dalawang mode na ito. Larawan 12-2 Ipinapakita ang Timer / Counter 1 pag-synchronize rehistro ng bloke ng bloke at mga pagkaantala sa pagsabay sa pagitan ng mga rehistro. Tandaan na ang lahat ng mga detalye sa pag-gatas ng orasan ay hindi ipinakita sa pigura. Ang mga halaga ng rehistro ng Timer / Counter1 ay dumaan sa mga panloob na pagrehistro sa pag-synchronize, na sanhi ng pagkaantala ng pag-syncing ng pag-input, bago makaapekto sa operasyon ng counter. Ang mga rehistro ng TCCR1, GTCCR, OCR1A, OCR1B, at OCR1C ay maaaring basahin pabalik kaagad pagkatapos isulat ang rehistro. Ang mga halaga ng read back ay naantala para sa pagrehistro ng Timer / Counter1 (TCNT1) at mga flag (OCF1A, OCF1B, at TOV1), dahil sa input at output na pagsasabay.

Nagtatampok ang Timer / Counter1 ng isang mataas na resolusyon at isang mataas na paggamit ng kawastuhan na may mas mababang mga pagkakataon sa prescaling. Maaari rin itong suportahan ang dalawang tumpak, mataas na bilis, 8-bit Pulse Width Modulator na gumagamit ng mga bilis ng orasan hanggang sa 64 MHz (o 32 MHz sa Low Speed ​​Mode). Sa mode na ito, ang Timer / Counter1 at ang output ay naghahambing ng mga rehistro ay nagsisilbing dalawahang mga stand-alone na PWM na may di-overlap na hindi inverted at inverted na output. Sumangguni sa pahina 86 para sa isang detalyadong paglalarawan sa pagpapaandar na ito. Katulad nito, ang mataas na mga pagkakataon sa prescaling ay ginagawang kapaki-pakinabang ang yunit na ito para sa mas mababang mga pagpapaandar ng bilis o eksaktong pag-andar ng tiyempo na may madalas na mga aksyon.

Larawan 12-2. Timer/Counter 1 Synchronization Register Block Diagram.

Pinapayagan ng timer / Counter1 at ng prescaler na patakbuhin ang CPU mula sa anumang mapagkukunan ng orasan habang ang prescaler ay tumatakbo sa mabilis na 64 MHz (o 32 MHz sa Mababang Bilis na Mode) PCK na orasan sa asynchronous mode.

Tandaan na ang dalas ng orasan ng system ay dapat na mas mababa sa isang katlo ng dalas ng PCK. Ang mekanismo ng pag-synchronize ng asynchronous na Timer / Counter1 ay nangangailangan ng hindi bababa sa dalawang gilid ng PCK kapag mataas ang orasan ng system. Kung ang dalas ng orasan ng system ay masyadong mataas, peligro na mawala ang data o mga halaga ng kontrol.

Ang mga sumusunod Larawan 12-3 ipinapakita ang block diagram para sa Timer / Counter1.

Talahanayan 12-1. Ihambing ang Mode Piliin sa PWM Mode

COM1x1 COM1x0 Epekto sa Paghahambing ng Mga Pin
0 0 Hindi nakakonekta ang OC1x. Hindi nakakonekta ang OC1x.
0 1 Na-clear ang OC1x sa paghahambing ng tugma. Itakda kung kailanTCNT1 = $ 00. Nakatakda ang OC1x sa paghahambing ng tugma. Nilinaw kapag TCNT1 = $ 00.
1 0 Na-clear ang OC1x sa paghahambing ng tugma. Itakda kung kailan TCNT1 = $ 00. Hindi nakakonekta ang OC1x.
1 1 Itakda ang OC1x sa paghahambing ng tugma. Nilinaw kapag TCNT1 = $ 00. Hindi nakakonekta ang OC1x.

Mga Katangian ng ADC

Talahanayan 21-8. Mga Katangian ng ADC, Mga Single Ended Channel. TA = -40°C hanggang +85°C

Simbolo Parameter Kundisyon Min Typ Max Mga yunit
Resolusyon 10 Bits
Ganap na kawastuhan (Kabilang ang mga error sa INL, DNL, ​​at Quantization, Gain at Offset) VREF = 4V, VCC = 4V,

Orasan ng ADC = 200 kHz

2 LSB
VREF = 4V, VCC = 4V,

Orasan ng ADC = 1 MHz

3 LSB
VREF = 4V, VCC = 4V,

Orasan ng ADC = 200 kHz

Mode ng Pagbawas ng Ingay

1.5 LSB
VREF = 4V, VCC = 4V,

Orasan ng ADC = 1 MHz

Mode ng Pagbawas ng Ingay

2.5 LSB
Integral Non-linearity (INL) (Katumpakan pagkatapos ng offset at makakuha ng pagkakalibrate) VREF = 4V, VCC = 4V,

Orasan ng ADC = 200 kHz

1 LSB
Pagkakaiba ng Hindi Linya (DNL) VREF = 4V, VCC = 4V,

Orasan ng ADC = 200 kHz

0.5 LSB
Makakuha ng Error VREF = 4V, VCC = 4V,

Orasan ng ADC = 200 kHz

2.5 LSB
Error sa Offset VREF = 4V, VCC = 4V,

Orasan ng ADC = 200 kHz

1.5 LSB
Oras ng Conversion Libreng Pagpapatakbo ng Conversion 14 280 µs
Dalas ng Orasan 50 1000 kHz
VIN Input Voltage GND VREF V
Input na Bandwidth 38.4 kHz
AREF Panlabas na Sanggunian Voltage 2.0 VCC V
VINT Panloob na Voltage Sanggunian 1.0 1.1 1.2 V
Panloob na 2.56V Sanggunian (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF 32
ULAN Paglaban ng Analog Input 100
Output ng ADC 0 1023 LSB

Tandaan: 1. Ang mga halaga ay mga patnubay lamang.

Talahanayan 21-9. Mga Katangian ng ADC, Mga Differential na Channel (Unipolar Mode). TA = -40°C hanggang +85°C

Simbolo Parameter Kundisyon Min Typ Max Mga yunit
Resolusyon Makita = 1x 10 Bits
Makita = 20x 10 Bits
Ganap na kawastuhan (Kasama ang INL, DNL, ​​at

Mga Error sa Quantization, Gain at Offset)

Makita = 1x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

10.0 LSB
Makita = 20x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

20.0 LSB
Integral Non-Linearity (INL) (Katumpakan pagkatapos ng Offset at Gain Calibration) Makita = 1x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

4.0 LSB
Makita = 20x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

10.0 LSB
Makakuha ng Error Makita = 1x 10.0 LSB
Makita = 20x 15.0 LSB
Error sa Offset Makita = 1x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

3.0 LSB
Makita = 20x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

4.0 LSB
Oras ng Conversion Libreng Pagpapatakbo ng Conversion 70 280 µs
Dalas ng Orasan 50 200 kHz
VIN Input Voltage GND VCC V
VDIFF Pagkaiba ng Input Voltage VREF/Gain V
Input na Bandwidth 4 kHz
AREF Panlabas na Sanggunian Voltage 2.0 VCC – 1.0 V
VINT Panloob na Voltage Sanggunian 1.0 1.1 1.2 V
Panloob na 2.56V Sanggunian (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF Paglaban sa Input ng Sanggunian 32
ULAN Paglaban ng Analog Input 100
Output ng Conversion ng ADC 0 1023 LSB

Tandaan: Ang mga halaga ay mga alituntunin lamang.

Talahanayan 21-10. Mga Katangian ng ADC, Mga Differential Channel (Bipolar Mode). TA = -40°C hanggang +85°C

Simbolo Parameter Kundisyon Min Typ Max Mga yunit
Resolusyon Makita = 1x 10 Bits
Makita = 20x 10 Bits
Ganap na kawastuhan (Kasama ang INL, DNL, ​​at

Mga Error sa Quantization, Gain at Offset)

Makita = 1x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

8.0 LSB
Makita = 20x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

8.0 LSB
Integral Non-Linearity (INL) (Katumpakan pagkatapos ng Offset at Gain Calibration) Makita = 1x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

4.0 LSB
Makita = 20x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

5.0 LSB
Makakuha ng Error Makita = 1x 4.0 LSB
Makita = 20x 5.0 LSB
Error sa Offset Makita = 1x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

3.0 LSB
Makita = 20x

VREF = 4V, VCC = 5V

Orasan ng ADC = 50 - 200 kHz

4.0 LSB
Oras ng Conversion Libreng Pagpapatakbo ng Conversion 70 280 µs
Dalas ng Orasan 50 200 kHz
VIN Input Voltage GND VCC V
VDIFF Pagkaiba ng Input Voltage VREF/Gain V
Input na Bandwidth 4 kHz
AREF Panlabas na Sanggunian Voltage 2.0 VCC – 1.0 V
VINT Panloob na Voltage Sanggunian 1.0 1.1 1.2 V
Panloob na 2.56V Sanggunian (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF Paglaban sa Input ng Sanggunian 32
ULAN Paglaban ng Analog Input 100
Output ng Conversion ng ADC -512 511 LSB

Buod ng Itakda ng Tagubilin

Mnemonics Mga pagpapatakbo Paglalarawan Operasyon Mga bandila #Mga Orasan
ARINMETIC AT LOGIC INSTRUCTIONS
ADD Rd, Rr Magdagdag ng dalawang Rehistro Rd ← Rd + Rr Z, C, N, V, H 1
ADC Rd, Rr Idagdag kasama ang Magdala ng dalawang Rehistro Rd ← Rd + Rr + C Z, C, N, V, H 1
ADIW Rdl, K Magdagdag ng Agarang sa Salita Rdh:Rdl ← Rdh:Rdl + K Z, C, N, V, S 2
SUB Rd, Rr Ibawas ang dalawang Rehistro Rd ← Rd – Rr Z, C, N, V, H 1
UP Rd, K Ibawas ang Constant mula sa Rehistro Rd ← Rd – K Z, C, N, V, H 1
SBC Rd, Rr Ibawas kasama ang Magdala ng dalawang Rehistro Rd ← Rd – Rr – C Z, C, N, V, H 1
SBCI Rd, K Ibawas kasama si Carry Constant mula sa Reg. Rd ← Rd – K – C Z, C, N, V, H 1
SBIW Rdl, K Ibawas Kaagad mula sa Salita Rdh:Rdl ← Rdh:Rdl – K Z, C, N, V, S 2
AT Rd, Rr Lohikal AT Mga Rehistro Rd ← Rd ∙ Rr Z, N, V 1
ANDI Rd, K Lohikal AT Magrehistro at Patuloy Rd ← Rd ∙ K Z, N, V 1
OR Rd, Rr Lohikal O Rehistro Rd ← Rd v Rr Z, N, V 1
ORI Rd, K Lohikal O Magrehistro at Patuloy Rd ← Rd v K Z, N, V 1
EOR Rd, Rr Eksklusibo O Rehistro Rd ← Rd ⊕ Rr Z, N, V 1
COM Rd Ang Kakumpleto ng Isa Rd ← 0xFF − Rd Z, C, N, V 1
NEG Rd Dalawang's Complement Rd ← 0x00 − Rd Z, C, N, V, H 1
SBR Rd, K Itakda ang (mga) Bit sa Rehistro Rd ← Rd v K Z, N, V 1
CBR Rd, K I-clear ang (mga) Bit sa Magrehistro Rd ← Rd ∙ (0xFF – K) Z, N, V 1
INC Rd Pagtaas Rd ← Rd + 1 Z, N, V 1
DEC Rd Pagbabawas Rd ← Rd − 1 Z, N, V 1
TST Rd Pagsubok para sa Zero o Minus Rd ← Rd ∙ Rd Z, N, V 1
CLR Rd Malinaw na Magrehistro Rd ← Rd ⊕ Rd Z, N, V 1
SER Rd Itakda ang Magrehistro Rd ← 0xFF wala 1
PANUTO NG BRANCH
RJMP k Kamag-anak na Pagtalon PC ← PC + k + 1 wala 2
IJMP Hindi Direktang Tumalon sa (Z) PC ← Z wala 2
RCALL k Kamag-anak na Subroutine Call PC ← PC + k + 1 wala 3
TALAGA Hindi Direktang Tawag sa (Z) PC ← Z wala 3
RET Subroutine na Pagbabalik PC ← STACK wala 4
MGA NETWORKS Makagambala sa Pagbabalik PC ← STACK I 4
CPSE Rd, Rr Paghambingin, Laktawan kung Pantay kung (Rd = Rr) PC ← PC + 2 o 3 wala 1/2/3
CP Rd, Rr Ikumpara Rd − Rr Z, N, V, C, H 1
CPC Rd, Rr Ihambing kay Carry Rd − Rr − C Z, N, V, C, H 1
CPI Rd, K Paghambingin ang Pagrehistro sa Kaagad Rd − K Z, N, V, C, H 1
SBRC Rr, b Laktawan kung ang Bit sa Rehistro ay Nabura kung (Rr(b)=0) PC ← PC + 2 o 3 wala 1/2/3
SBRS Rr, b Laktawan kung Itinakda ang Bit sa Pagrehistro kung (Rr(b)=1) PC ← PC + 2 o 3 wala 1/2/3
SBIC P, b Laktawan kung Bit sa I / O Magrehistro Na-clear kung (P(b)=0) PC ← PC + 2 o 3 wala 1/2/3
SBIS P, b Laktawan kung ang Bit sa I / O Magrehistro ay Itinakda kung (P(b)=1) PC ← PC + 2 o 3 wala 1/2/3
BRBS s, k Sangay kung Itakda ang Katayuan ng Bandila kung (SREG(s) = 1) pagkatapos ay PC←PC+k + 1 wala 1/2
BRBC s, k Sangay kung Nalinis ang Flag ng Katayuan kung (SREG(s) = 0) pagkatapos ay PC←PC+k + 1 wala 1/2
BREQ k Sangay kung Pantay kung (Z = 1) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRNE k Sangay kung Hindi Pantay kung (Z = 0) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRCS k Sangay kung Carry Set kung (C = 1) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRCC k Sangay kung Carry Cleared kung (C = 0) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRSH k Sangay kung Parehas o Mas Mataas kung (C = 0) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRLO k Sangay kung Mababa kung (C = 1) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRMI k Sangay kung Minus kung (N = 1) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRPL k Sangay kung Plus kung (N = 0) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRGE k Sangay kung Mas Malaki o Pantay, Nilagdaan kung (N ⊕ V= 0) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRLT k Sangay kung Mas Mababa Sa Zero, Naka-sign kung (N ⊕ V= 1) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRHS k Sangay kung Half Carry Flag Set kung (H = 1) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRHC k Sangay kung Kinalinis ang Half Carry Flag kung (H = 0) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRTS k Sangay kung T Flag Set kung (T = 1) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRTC k Sangay kung nalinis ang T Flag kung (T = 0) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRVS k Sangay kung ang Overflow Flag ay Itinakda kung (V = 1) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRVC k Sangay kung ang Overflow Flag ay Nilinaw kung (V = 0) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRIE k Sangay kung Pinagana ang Nakagambala kung ( I ​​= 1) pagkatapos ay PC ← PC + k + 1 wala 1/2
BRID k Sangay kung Hindi Magagambala kung ( I ​​= 0) pagkatapos ay PC ← PC + k + 1 wala 1/2
Mga tagubilin sa BIT AT BIT-TEST
SBI P, b Itakda ang Bit sa I / O Magrehistro I/O(P,b) ← 1 wala 2
CBI P, b I-clear ang Bit sa I / O Magrehistro I/O(P,b) ← 0 wala 2
LSL Rd Logical Shift Pakaliwa Rd(n+1) ← Rd(n), Rd(0) ← 0 Z, C, N, V 1
LSR Rd Lohikal na Paglipat Pakanan Rd(n) ← Rd(n+1), Rd(7) ← 0 Z, C, N, V 1
TUNGKOL Rd Paikutin ang Kaliwa Sa Dala Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) Z, C, N, V 1
ROR Rd Paikutin pakanan sa Dala Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) Z, C, N, V 1
ASR Rd Kanan ng Shift ng Arithmetic Rd(n) ← Rd(n+1), n=0..6 Z, C, N, V 1
Mnemonics Mga pagpapatakbo Paglalarawan Operasyon Mga bandila #Mga Orasan
SWAP Rd Ipagpalit ang Mga Nibble Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) wala 1
BSET s I-set ang Flag (Mga) SREG ← 1 (Mga) SREG 1
BCLR s I-flag ang I-clear (Mga) SREG ← 0 (Mga) SREG 1
BST Rr, b Bit Store mula sa Pagrehistro hanggang sa T T ← Rr(b) T 1
BLD Rd, b Bit load mula sa T upang Magrehistro Rd(b) ← T wala 1
SINASABI ni SEC Itakda ang Dalhin C ← 1 C 1
CLC Malinaw na Dalhin C ← 0 C 1
SEN Itakda ang Negatibong Watawat N ← 1 N 1
CLN Malinaw na Negatibong Bandila N ← 0 N 1
SEZ Itakda ang Zero Flag Z ← 1 Z 1
CLZ I-clear ang Zero Flag Z ← 0 Z 1
SEI Paganahin ang Global Interrupt Ako ← 1 I 1
CLI I-disable ang Global Interrupt Ako ← 0 I 1
SES Itakda ang Signed Flag ng Pagsubok S ← 1 S 1
CLS I-clear ang I-sign na Flag ng Pagsubok S ← 0 S 1
SEV Itakda ang Twos Komplemento Overflow. V ← 1 V 1
CLV I-clear ang Overflow ng Komplimentong Twos V ← 0 V 1
SET Itakda ang T sa SREG T ← 1 T 1
CLT I-clear ang T sa SREG T ← 0 T 1
SEH Itakda ang Half Carry Flag sa SREG H ← 1 H 1
CLH I-clear ang Half Carry Flag sa SREG H ← 0 H 1
INSTRUCTIONS NG TRANSFER NG DATA
MOV Rd, Rr Lumipat sa Pagitan ng Mga Rehistro Rd ← Rr wala 1
GUSTO Rd, Rr Kopyahin ang Word ng Pagrehistro Rd+1:Rd ← Rr+1:Rr wala 1
LDI Rd, K Mag-load Kaagad Rd ← K wala 1
LD Rd, X Mag-load ng Hindi Direkta Rd ← (X) wala 2
LD Rd, X + Mag-load ng Hindi Direkta at Post-Inc. Rd ← (X), X ← X + 1 wala 2
LD Rd, - X Mag-load ng Hindi Direkta at Paunang Dis. X ← X – 1, Rd ← (X) wala 2
LD Rd, Y Mag-load ng Hindi Direkta Rd ← (Y) wala 2
LD Rd, Y + Mag-load ng Hindi Direkta at Post-Inc. Rd ← (Y), Y ← Y + 1 wala 2
LD Rd, - Y Mag-load ng Hindi Direkta at Paunang Dis. Y ← Y – 1, Rd ← (Y) wala 2
LDD Rd, Y + q Mag-load ng Hindi Direkta sa Paglipat Rd ← (Y + q) wala 2
LD Rd, Z Mag-load ng Hindi Direkta Rd ← (Z) wala 2
LD Rd, Z + Mag-load ng Hindi Direkta at Post-Inc. Rd ← (Z), Z ← Z+1 wala 2
LD Rd, -Z Mag-load ng Hindi Direkta at Paunang Dis. Z ← Z – 1, Rd ← (Z) wala 2
LDD Rd, Z + q Mag-load ng Hindi Direkta sa Paglipat Rd ← (Z + q) wala 2
LDS Rd, k Mag-direkta ng Load mula sa SRAM Rd ← (k) wala 2
ST X, Rr Hindi Direkta ng Tindahan (X) ← Rr wala 2
ST X +, Rr Tindahan na Hindi Direkta at Post-Inc. (X) ← Rr, X ← X + 1 wala 2
ST - X, Rr Mag-store ng Hindi Direkta at Paunang Dis. X ← X – 1, (X) ← Rr wala 2
ST Y, Rr Hindi Direkta ng Tindahan (Y) ← Rr wala 2
ST Y +, Rr Tindahan na Hindi Direkta at Post-Inc. (Y) ← Rr, Y ← Y + 1 wala 2
ST - Y, Rr Mag-store ng Hindi Direkta at Paunang Dis. Y ← Y – 1, (Y) ← Rr wala 2
STD Y + q, Rr Mag-store ng Hindi Direkta gamit ang Paglipat (Y + q) ← Rr wala 2
ST Z, Rr Hindi Direkta ng Tindahan (Z) ← Rr wala 2
ST Z +, Rr Tindahan na Hindi Direkta at Post-Inc. (Z) ← Rr, Z ← Z + 1 wala 2
ST -Z, Rr Mag-store ng Hindi Direkta at Paunang Dis. Z ← Z – 1, (Z) ← Rr wala 2
STD Z + q, Rr Mag-store ng Hindi Direkta gamit ang Paglipat (Z + q) ← Rr wala 2
STS k, Rr Tindahan Direkta sa SRAM (k) ← Rr wala 2
LPM Pag-load ng memorya ng Program R0 ← (Z) wala 3
LPM Rd, Z Pag-load ng memorya ng Program Rd ← (Z) wala 3
LPM Rd, Z + Pag-load ng Memory ng Program at Post-Inc. Rd ← (Z), Z ← Z+1 wala 3
SPM Memory ng Programa ng Tindahan (z) ← R1:R0 wala
IN Rd, P Sa Port Rd ← P wala 1
LABAS P, Rr Sa labas ng Port P ← Rr wala 1
PUSH Rr Itulak ang Rehistro sa Stack STACK ← Rr wala 2
POP Rd Pop Rehistro mula sa Stack Rd ← STACK wala 2
PANUTO NG MCU CONTROL
HINDI Walang Operasyon wala 1
TULOG Matulog (tingnan ang tukoy na paglalarawan para sa Pag-andar ng Pagtulog) wala 1
WDR Pag-reset ng asong tagapagbantay (tingnan ang tukoy na paglalarawan para sa WDR / Timer) wala 1
BREAK Break
Bilis (MHz) (1) Supply Voltage (V) Saklaw ng Temperatura Package (2) Code ng Pag-order (3)
10 1.8 – 5.5 Pang-industriya

(-40 ° C hanggang + 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 Pang-industriya

(-40 ° C hanggang + 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

Mga Tala: 1. Para sa bilis kumpara sa supply voltage, tingnan ang seksyon 21.3 "Bilis" sa pahina 163.

Ang lahat ng mga pakete ay walang Pb, walang halide at ganap na berde at sumusunod sila sa direktiba ng Europa para sa Paghihigpit ng Mga Mapanganib na Substansya (RoHS).

Mga tagapagpahiwatig ng code

H: NiPdAu lead finish

U: matte na lata

R: tape at reel

Ang mga aparatong ito ay maaari ring ibigay sa wafer form. Mangyaring makipag-ugnay sa iyong lokal na tanggapan ng benta ng Atmel para sa detalyadong impormasyon sa pag-order ng order at pinakamaliit na dami.

Erratum

Errata ATtiny25

Ang sulat ng rebisyon sa seksyong ito ay tumutukoy sa pagbabago ng aparato ng ATtiny25.

Rev D - F

Walang kilalang errata.

Rev B - C

Ang nabasang EEPROM ay maaaring mabigo sa mababang supply voltage / mababang dalas ng orasan

Ang nabasang EEPROM ay maaaring mabigo sa mababang supply voltage / mababang dalas ng orasan

Sinusubukang basahin ang EEPROM sa mababang mga frequency ng orasan at / o mababang supply voltage maaaring magresulta sa hindi wastong data.

Pag-ayos ng problema / Pag-areglo

Huwag gamitin ang EEPROM kapag ang dalas ng orasan ay mas mababa sa 1MHz at supply voltage ay mas mababa sa 2V. Kung ang operating fre- quency ay hindi maaaring itaas sa itaas ng 1MHz kung gayon ang supply voltage dapat higit sa 2V. Katulad nito, kung ang supply voltage hindi maaaring itaas sa itaas ng 2V kung gayon ang dalas ng pagpapatakbo ay dapat na higit sa 1MHz.

Ang tampok na ito ay kilala na umaasa sa temperatura ngunit hindi ito nailalarawan. Ang mga alituntunin ay ibinibigay para sa temperatura ng kuwarto, lamang.

Rev A

Hindi samppinangunahan

Errata ATtiny45

Ang sulat ng rebisyon sa seksyong ito ay tumutukoy sa pagbabago ng aparato ng ATtiny45.

Rev F - G

Walang kilalang errata

Rev D - E

Ang nabasang EEPROM ay maaaring mabigo sa mababang supply voltage / mababang dalas ng orasan

Ang nabasang EEPROM ay maaaring mabigo sa mababang supply voltage / mababang dalas ng orasan

Sinusubukang basahin ang EEPROM sa mababang mga frequency ng orasan at / o mababang supply voltage maaaring magresulta sa hindi wastong data.

Pag-ayos ng problema / Pag-areglo

Huwag gamitin ang EEPROM kapag ang dalas ng orasan ay mas mababa sa 1MHz at supply voltage ay mas mababa sa 2V. Kung ang operating fre- quency ay hindi maaaring itaas sa itaas ng 1MHz kung gayon ang supply voltage dapat higit sa 2V. Katulad nito, kung ang supply voltage hindi maaaring itaas sa itaas ng 2V kung gayon ang dalas ng pagpapatakbo ay dapat na higit sa 1MHz.

Ang tampok na ito ay kilala na umaasa sa temperatura ngunit hindi ito nailalarawan. Ang mga alituntunin ay ibinibigay para sa temperatura ng kuwarto, lamang.

Rev B - C

Hindi nagla-lock ang PLL

Ang EEPROM na nabasa mula sa application code ay hindi gumagana sa Lock Bit Mode 3

Ang nabasang EEPROM ay maaaring mabigo sa mababang supply voltage / mababang dalas ng orasan

Timer Counter 1 PWM output generation sa OC1B- XOC1B ay hindi gumagana nang tama

Hindi nagla-lock ang PLL

Kapag sa mga frequency na mas mababa sa 6.0 MHz, hindi maia-lock ang PLL

Pag-aayos ng problema / Pag-areglo

Kapag ginagamit ang PLL, tumakbo sa 6.0 MHz o mas mataas.

Ang EEPROM na nabasa mula sa application code ay hindi gumagana sa Lock Bit Mode 3

Kapag ang Memory Lock Bits LB2 at LB1 ay na-program sa mode 3, ang EEPROM na basahin ay hindi gagana mula sa application code.

Pag-ayos ng Problema / Paggawa sa paligid

Huwag itakda ang Lock Bit Protection Mode 3 kapag ang application code ay kailangang basahin mula sa EEPROM.

Ang nabasang EEPROM ay maaaring mabigo sa mababang supply voltage / mababang dalas ng orasan

Sinusubukang basahin ang EEPROM sa mababang mga frequency ng orasan at / o mababang supply voltage maaaring magresulta sa hindi wastong data.

Pag-ayos ng problema / Pag-areglo

Huwag gamitin ang EEPROM kapag ang dalas ng orasan ay mas mababa sa 1MHz at supply voltage ay mas mababa sa 2V. Kung ang operating fre- quency ay hindi maaaring itaas sa itaas ng 1MHz kung gayon ang supply voltage dapat higit sa 2V. Katulad nito, kung ang supply voltage hindi maaaring itaas sa itaas ng 2V kung gayon ang dalas ng pagpapatakbo ay dapat na higit sa 1MHz.

Ang tampok na ito ay kilala na umaasa sa temperatura ngunit hindi ito nailalarawan. Ang mga alituntunin ay ibinibigay para sa temperatura ng kuwarto, lamang.

Timer Counter 1 PWM output generasi sa OC1B - XOC1B ay hindi gumagana nang tama

Timer Counter1 PWM output OC1B-XOC1B ay hindi gumagana nang tama. Sa kaso lamang kapag ang mga control bit, COM1B1 at COM1B0 ay nasa parehong mode tulad ng COM1A1 at COM1A0, ayon sa pagkakabanggit, gumagana nang tama ang labas ng OC1B-XOC1B.

Pag-ayos ng Problema / Paggawa sa paligid

Ang tanging solusyon ay ang paggamit ng parehong setting ng kontrol sa COM1A [1: 0] at COM1B [1: 0] na mga control bit, tingnan ang talahanayan 14- 4 sa sheet ng data. Ang problema ay naayos para sa Tiny45 rev D.

Rev A

Masyadong mataas na kapangyarihan down na pagkonsumo ng kuryente

Ang DebugWIRE ay nawawala ang komunikasyon kapag nag-iisang hakbang sa mga nakakagambala

Hindi nagla-lock ang PLL

Ang EEPROM na nabasa mula sa application code ay hindi gumagana sa Lock Bit Mode 3

Ang nabasang EEPROM ay maaaring mabigo sa mababang supply voltage / mababang dalas ng orasan

Masyadong mataas na kapangyarihan down na pagkonsumo ng kuryente

Tatlong mga sitwasyon ay hahantong sa isang masyadong mataas na kapangyarihan down na pagkonsumo ng kuryente. Ito ang:

Ang isang panlabas na orasan ay pinili ng mga piyus, ngunit ang I / O PORT ay pinagana pa rin bilang isang output.

Nabasa ang EEPROM bago ipasok ang power down.

Ang VCC ay 4.5 volts o mas mataas.

Disclaimer: Ang impormasyon sa dokumentong ito ay ibinigay kaugnay ng mga produkto ng Atmel. Walang lisensya, hayag o ipinahiwatig, sa pamamagitan ng estoppel o kung hindi man, sa anumang karapatan sa intelektwal na ari-arian ang ibinibigay ng dokumentong ito o kaugnay ng pagbebenta ng mga produkto ng Atmel. MALIBAN SA ITINAKDA SA MGA TUNTUNIN AT KUNDISYON NG ATMEL NG SALES NA MATATAGPUAN SA ATMEL WEBSITE, ANG ATMEL AY WALANG PANANAGUTAN KAHIT KAHIT ANO AT ITINATAWALA ANG ANUMANG TAHAS, IPINAHIWATI O STATUTORY WARRANTY NA KAUGNAY SA MGA PRODUKTO NITO KASAMA, NGUNIT HINDI LIMITADO SA, ANG IPINAHIWATIG NA WARRANTY NG KAKAYKAL, KAANGKUPAN PARA SA ISANG PARTIKULAR NA LAYUNIN. SA KAHIT KAHIT KAHIT KAHIT KAHIT KAHIT PANANAGUTAN ANG ATMEL PARA SA ANUMANG DIREKTA, DI DIREKTA, HINUNGDOL, PUNITIVE, ESPESYAL O INSIDENTAL NA MGA PINSALA (KASAMA, WALANG LIMITASYON, MGA PINSALA PARA SA PAGKAWALA AT KITA, PAGKAKAgambala sa NEGOSYO, O PAGKAWALA NG IMPORMASYON NG PAGGAMIT SA PAGGAMIT) ANG DOKUMENTONG ITO, KAHIT NAAYOS NA SI ATMEL SA POSIBILIDAD NG GANITONG MGA PINSALA.

Ang Atmel ay hindi gumagawa ng mga representasyon o warranty tungkol sa katumpakan o pagkakumpleto ng mga nilalaman ng dokumentong ito at inilalaan ang karapatang gumawa ng mga pagbabago sa mga detalye at paglalarawan ng mga produkto anumang oras nang walang abiso. Ang Atmel ay hindi gumagawa ng anumang pangako na i-update ang impormasyong nakapaloob dito. Maliban kung partikular na ibinigay kung hindi man, ang mga produkto ng Atmel ay hindi angkop para sa, at hindi dapat gamitin sa, mga automotive application. Ang mga produkto ng Atmel ay hindi inilaan, pinahintulutan, o ginagarantiyahan para sa paggamit bilang mga bahagi sa mga application na nilayon upang suportahan o mapanatili ang buhay.

Mga sanggunian

Mag-iwan ng komento

Ang iyong email address ay hindi maipa-publish. Ang mga kinakailangang field ay minarkahan *