Atmel

Atmel 8 biteko AVR Mikrokontroladorea 2/4/8K byte-rekin Sisteman Flash programagarriarekintxipa

 

Ezaugarriak

  • Errendimendu handiko eta potentzia baxuko AVR® 8 biteko mikrokontroladorea
  • RISC Arkitektura Aurreratua
  • 120 argibide indartsu - Erlojuaren ziklo bakarreko exekuzio gehienak
  • 32 x 8 helburu orokorreko lan erregistroak
  • Eragiketa guztiz estatikoa
  • Programa ezegonkorrak eta datuen oroitzapenak
  • 2/4 / 8K sistemako programa programagarriaren memoria flash byte
  • Erresistentzia: 10,000 Idatzi/Ezabatu Ziklo
  • 128/256/512 byte-sisteman EEPROM programagarria
  • Erresistentzia: 100,000 Idatzi/Ezabatu Ziklo
  • 128/256/512 Byte Barne SRAM
  • Programazio Blokeoa Autoprogramazio Flash Programa eta EEPROM Datuen Segurtasunerako

Ezaugarri periferikoak

  • 8 biteko tenporizadorea / kontagailua prekalagailuarekin eta bi PWM kanalekin
  • 8 biteko abiadura handiko tenporizadorea / kontagailua aurrez aldatutako bereizlearekin
  • Maiztasun handiko 2 PWM irteera bereizitako irteerekin alderatu erregistroekin
  • Dead Time Generator programagarria
  • USI - Serieko Interfaze Unibertsala Hasiera Egoera Detektagailuarekin
  • 10 biteko ADC

Bukatutako 4 kanal

2 diferentzial ADC kanal bikoteak irabazi programagarriarekin (1x, 20x)

Tenperaturaren Neurketa

Zaintza Txakurren Tenporizadore Programagarria Txip Osziladore Bereiztuarekin

Txipeko konparatzaile analogikoa

Mikrokontrolagailuaren ezaugarri bereziak

debugWIRE txipean arazteko sistema

Sistemako programagarria SPI ataka bidez

Kanpoko eta Barne Eten Iturriak

Potentzia txikiko inaktibitatea, ADC zarata murriztea eta itzaltzeko moduak

Pizteko berrezartzeko zirkuitu hobetua

Brown-out detektatzeko zirkuitu programagarria

Barne Kalibratutako Osziladorea

I / O eta paketeak

Sei I / O linea programagarri

8 pineko PDIP, 8 pin SOIC, 20 pad QFN / MLF eta 8 pin TSSOP (ATtiny45 / V soilik)

Bolumen eragileatage
- 1.8 - 5.5 V ATtiny25V / 45V / 85V
- 2.7 - 5.5 V ATtiny25 / 45/85-entzat

Abiadura Kalifikazioa
- 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

Tenperatura industriala

Energia-kontsumo baxua

Modu aktiboa:

1 MHz, 1.8 V: 300 µA

Itzali modua:

Pin konfigurazioak

Pinout ATtiny25 / 45/85 Konfigurazioa

Pinen deskribapenak

VCC: Supply voltage.
GND: Lurra.
B ataka (PB5:PB0): B ataka 6 biteko noranzko biko I/O ataka bat da, barne-erresistentziak dituena (bit bakoitzeko hautatua). B Portuko irteera-buffer-ek disko-ezaugarri simetrikoak dituzte, bai hondoratzeko eta baita iturri-gaitasun handikoak ere. Sarrera gisa, kanpotik behera ateratzen diren B atakako pinek korrontea sortuko dute tira-erresistentziak aktibatzen badira. B atakako pinak hiru adierazten dira berrezarri baldintza bat aktibatuta dagoenean, nahiz eta erlojua martxan ez egon.

B atariak zerrendatutako ATtiny25 / 45/85 ezaugarri berezien funtzioak betetzen ditu
ATtiny25-en, PB3 eta PB4 I / O portu programagarriak (2. eta 3. pinak) ATtiny15 Bateragarritasun Moduan trukatzen dira ATtiny15-rekin bateragarritasuna atzeratzeko.

RESET: sarrera berrezarri. Pin honen gutxieneko pultsu-luzera baino luzeagoa den maila baxuak berrezartzea sortuko du, nahiz eta erlojua martxan ez egon eta berrezartzeko pina desgaitu ez bada ere. Pultsuaren gutxieneko iraupena barne ematen da 21-4 taula 165. orrialdean. Pultsazio laburragoek ez dute bermatzen berrezarpena sortzeko.

Berrezartzeko pin-a I / O pin (ahula) gisa ere erabil daiteke.

Amaituview

ATtiny25 / 45/85 potentzia txikiko CMOS 8 biteko mikrokontrolagailua da, AVR hobetutako RISC arkitekturan oinarrituta. Erloju ziklo bakarrean argibide indartsuak exekutatuz, ATtiny25 / 45/85-k MHz bakoitzeko 1 MIPSera hurbiltzen diren sarrerak lortzen ditu sistemaren diseinatzaileari energia kontsumoa eta prozesatzeko abiadura optimizatzeko.

Blokearen diagrama Bloke-diagrama

AVR nukleoak instrukzio multzo aberatsa eta helburu orokorreko 32 lan erregistro konbinatzen ditu. 32 erregistro guztiak Aritmetika Logika Unitatearekin (ALU) zuzenean daude lotuta, eta horri esker, bi erregistro independente sar daitezke erloju ziklo bakarrean exekutatutako instrukzio bakarrean. Lortutako arkitektura kode eraginkorragoa da eta CISC ohiko mikrokontrolagailuak baino hamar aldiz azkarrago lortzen ditu.

ATtiny25 / 45/85 funtzioak honako ezaugarri hauek eskaintzen ditu: 2/4 / 8K byte sistemako Flash programagarria, 128/256/512 byte EEPROM, 128/256/256 byte SRAM, 6 helburu orokorreko I / O lerroak, 32 orokorrak laneko erregistroak, 8 biteko tenporizadorea / kontagailua konparatzeko moduak, 8 biteko abiadura handiko tenporizadorea / kontagailua, serieko interfaze unibertsala, barneko eta kanpoko etenak, 4 kanaleko, 10 biteko ADC bat, zaindari programagarria, barne Osziladorea, eta softwareak hautatutako hiru aurrezteko moduak. Modu inaktiboan CPUa gelditzen da SRAM, Tenporizadorea / Kontagailua, ADCa, Konparagailu Analogikoa eta Eten sistemak funtzionatzen jarraitzea ahalbidetzen duen bitartean. Itzali moduak erregistroaren edukiak gordetzen ditu, txiparen funtzio guztiak desgaituz hurrengo etenaldira edo hardwarearen berrezarpenera arte. ADC Zarata Murrizteko moduak PUZa eta I / O modulu guztiak gelditzen ditu ADC izan ezik, kommutazio-zarata minimizatzeko ADC bihurketetan.

Gailua Atmel-en dentsitate handiko memoria ez lurrunkorreko teknologia erabiliz fabrikatzen da. Txipeko ISP flashari esker, Programa memoria berriro sisteman programatu daiteke SPI serieko interfazearen bidez, memoria ez-lurrunkorreko ohiko programatzaile baten bidez edo AVR nukleoan exekutatzen den txiparen abio kodearen bidez.

ATtiny25 / 45/85 AVR programa eta sistemak garatzeko tresnen multzo osoarekin onartzen da, besteak beste: C konpiladoreak, Makro Muntatzaileak, Programa arazketa / Simulatzaileak eta Ebaluazio kitak.

Baliabideei buruz

Deskargatzeko eskuragarri daude garapen tresnak, aplikazioen oharrak eta fitxa teknikoak http://www.atmel.com/avr.

Kodea Adibamples

Dokumentazio honek kode sinplea dauka adibidezampGailuaren hainbat atal nola erabili laburki erakusten duten liburuak. Kode hauek adibidezampzatiaren goiburu zehatza dela suposatzen dute file bildu aurretik sartzen da. Kontuan izan C konpiladoreen saltzaile guztiek ez dutela bit definiziorik sartzen goiburuan files eta C-n etenen kudeaketa konpiladorearen menpe dago. Mesedez, berretsi C konpilatzailearen dokumentazioarekin xehetasun gehiago lortzeko.

I / O hedapeneko mapan kokatutako I / O erregistroetarako, "IN", "OUT", "SBIS", "SBIC", "CBI" eta "SBI" argibideak I hedatuetarako sarbidea ahalbidetzen duten argibideekin ordezkatu behar dira. / O. Normalean, horrek "LDS" eta "STS" "SBRS", "SBRC", "SBR" eta "CBR "ekin konbinatuta esan nahi du. Kontuan izan AVR gailu guztiek ez dutela I / O mapa zabalik.

Ukimenaren sentsazioa ahalbidetiboa

Atmel QTouch Liburutegiak Atmel AVR mikrokontrolagailuetan ukipen sentikorrak diren interfazeetarako soluzio erraz bat eskaintzen du. QTouch Liburutegiak QTouch® eta QMatrix® eskuratze-metodoetarako laguntza eskaintzen du.

Ukipen bidezko detekzioa edozein aplikaziori erraz gehitzen zaio QTouch Liburutegia estekatuz eta liburutegiko Aplikazio Programazio Interfazea (API) erabiliz ukipen kanalak eta sentsoreak definitzeko. Ondoren, aplikazioak APIari deitzen dio kanalaren informazioa berreskuratzeko eta ukipen-sentsorearen egoera zehazteko.

QTouch Liburutegia doakoa da eta Atmel-etik deskargatu daiteke webgunea. Informazio gehiago eta ezarpenaren xehetasunak lortzeko, jo QTouch Liburutegiaren Erabiltzailearen Gidara, Atmel-en ere eskuragarri webgunea.

Datuen atxikipena

Fidagarritasuna Kualifikazioaren emaitzek erakusten dutenez, aurreikusitako datuen atxikipenaren porrot tasa 1 PPm baino askoz txikiagoa da 20 urtean 85 ° C-tan edo 100 urte 25 ° C-tan.

AVR CPU Core

Sarrera

Atal honetan AVR oinarrizko arkitektura aztertzen da orokorrean. PUZaren nukleoaren funtzio nagusia programaren exekuzio zuzena ziurtatzea da. PUZak, beraz, memoriara sartzeko, kalkuluak egiteko, periferikoak kontrolatzeko eta etenak kudeatzeko gai izan behar du.

Arkitektura Gaineanview Arkitektura

Errendimendua eta paralelismoa maximizatzeko, AVR-k Harvard arkitektura erabiltzen du, memoria eta autobus bereiziekin, programa eta datuetarako. Programaren memorian argibideak maila bakarreko kanalizazioarekin exekutatzen dira. Instrukzio bat exekutatzen ari den bitartean, hurrengo instrukzioa Programa memoriatik aurrez jasotzen da. Kontzeptu horri esker, jarraibideak erlojuaren ziklo guztietan exekutatu daitezke. Programaren memoria sistemako Flash memoria programagarria da.

Sarbide azkarreko Erregistroa File 32 x 8 biteko helburu orokorreko lan-erregistro ditu erloju-ziklo bakarreko sarbide-denbora batekin. Honek ziklo bakarreko Unitate Logiko Aritmetikoa (ALU) funtzionamendua ahalbidetzen du. ALU eragiketa tipiko batean, Erregistrotik bi eragiketa ateratzen dira File, eragiketa exekutatzen da, eta emaitza berriro Erregistroan gordetzen da File- erlojuaren ziklo bakarrean.

32 erregistroetatik sei 16 biteko zeharkako hiru helbide erregistro erakusle gisa erabil daitezke Data Space helbideratzeko - helbideen kalkulu eraginkorrak ahalbidetuz. Helbide erakusle horietako bat Flash Programaren memorian taulak bilatzeko helbide erakusle gisa ere erabil daiteke. Gehitutako funtzio erregistro hauek 16 biteko X-, Y- eta Z-erregistroak dira, atal honetan aurrerago deskribatuko direnak.

ALUk erregistroen arteko edo konstante baten eta erregistro baten arteko eragiketa aritmetikoak eta logikoak onartzen ditu. Erregistro bakarreko eragiketak ALUan ere egin daitezke. Eragiketa aritmetikoa egin ondoren, Egoera Erregistroa eguneratzen da eragiketaren emaitzari buruzko informazioa islatzeko.

Programaren fluxua baldintzazko eta baldintzarik gabeko jauzi eta dei argibideen bidez ematen da, helbide espazio osoa zuzenean zuzentzeko gai dena. AVR argibide gehienek 16 biteko hitz formatu bakarra dute, baina badaude 32 biteko argibideak ere.

Eten eta azpiprogramen deietan, helbide elektronikoa Programa kontagailua (PC) pilatuta gordetzen da. Pila modu eraginkorrean SRAM datu orokorretan esleitzen da, eta, ondorioz, pilaren tamaina SRAM tamaina osoak eta SRAMren erabilerak soilik mugatzen dute. Erabiltzaile programa guztiek SP hasieratu behar dute Berrezarri errutinan (azpierrutinak edo etenak exekutatu aurretik). Stack Pointer (SP) irakurgai / idazketa eskuragarria da I / O espazioan. SRAM datuetara erraz sar daiteke AVR arkitekturan onartzen diren bost helbideratze modu desberdinen bidez.

AVR arkitekturako memoria espazioak memoria mapa linealak eta erregularrak dira.

Etenaldi modulu malgu batek bere kontrol erregistroak I / O espazioan ditu Eten Etengabeko Global Gaitzeko bit osagarriarekin Egoera Erregistroan. Eten guztiek bereizitako eten bektorea dute eten bektorearen taulan. Etenek lehentasuna dute eten bektorearen posizioaren arabera. Zenbat eta beherapen bektoreen helbidea txikiagoa izan, orduan eta lehentasun handiagoa izango da.

I/O memoria espazioak 64 helbide ditu CPU periferikoen funtzioetarako, Kontrol Erregistroak, SPI eta beste I/O funtzioak. I/O memoriara zuzenean atzi daiteke, edo Datu-espazioko kokapen gisa, Erregistroaren ondoren File, 0x20 - 0x5F.

ALU - Unitate Logiko Aritmetikoa

Errendimendu handiko AVR ALUak helburu orokorreko 32 lan erregistro guztiekin zuzenean lotzen du. Erloju ziklo bakar baten barruan, helburu orokorreko erregistroen arteko edo erregistro baten eta berehalako baten arteko eragiketa aritmetikoak gauzatzen dira. ALU eragiketak hiru kategoria nagusitan banatzen dira: aritmetika, logikoa eta bit funtzioak. Arkitekturaren inplementazio batzuek biderkatzaile indartsua ere ematen dute, bai sinatutako / sinatu gabeko biderkadura bai zatikizko formatua onartzen dutenak. Ikusi "Instrukzio multzoa" atala deskribapen zehatza lortzeko.

Egoera Erregistroa

Egoera Erregistroan exekutatu berri den instrukzio aritmetikoaren emaitzari buruzko informazioa dago. Informazio hori programa-fluxua aldatzeko erabil daiteke baldintzapeko eragiketak egiteko. Kontuan izan Egoera Erregistroa ALU eragiketa guztien ondoren eguneratzen dela, Instrukzio Multzoaren Erreferentzian zehazten den moduan. Kasu askotan konparazio dedikazioko argibideak erabiltzeko beharra kenduko da, kode azkarragoa eta trinkoagoa lortuz.

Egoera Erregistroa ez da automatikoki gordetzen eten errutina sartzean eta leheneratzen da etenetik itzultzean. Software honek kudeatu behar du.

SREG - AVR Status Register

AVR Status Register (SREG) honela definitzen da:

Bit 7 6 5 4 3 2 1 0
0x3F I T H S V N Z C SREG
Irakurri/Idatzi R/W R/W R/W R/W R/W R/W R/W R/W
Hasierako balioa 0 0 0 0 0 0 0 0

Bit 7 - I: eten globala gaitzea

Eten globalak gaitzeko bitak ezarri behar dira etenaldiak gaitu ahal izateko. Banakako etenen gaitze kontrola kontrol erregistro bereizietan egiten da. Eten orokorra gaitzeko erregistroa ezabatzen bada, etenetako bat ere ez da gaitzen etenaldi gaitzeko ezarpen indibidualetatik aparte. I-bita hardwareak garbitzen du etenaldi bat gertatu ondoren, eta RETI instrukzioak ezartzen du ondorengo etenak gaitzeko. Aplikazioak I bitak ezar ditzake eta garbitu SEI eta CLI argibideekin, instrukzio multzoaren erreferentzian deskribatzen den moduan.

Bit 6 - T: Bit kopia biltegiratzea

Bit Copy instrukzioak BLD (Bit LoaD) eta BST (Bit STore) T-bit-a erabiltzen dute operatutako bitaren iturri edo helmuga gisa. Erregistroko erregistro batetik pixka bat File BST instrukzioaren bidez T-n kopia daiteke, eta T-ko bit bat Erregistroko erregistro batean bit batean kopiatu daiteke. File BLD instrukzioaren arabera.

5 bit - H: Half Carry Bandera

Half Carry banderak H erdi portua adierazten du zenbait eragiketa aritmetikotan. Half Carry erabilgarria da BCD aritmetikoan. Informazio zehatza lortzeko, ikusi "Instrukzio multzoaren deskribapena".

4. bit - S: seinale bit, S = N ⊕ V

S bitea beti da esklusiboa edo N bandera negatiboaren eta bi osagarrien gainezkatze banderaren artekoa. Ikusi "Instrukzio multzoaren deskribapena" informazio zehatza lortzeko.

Bit 3 - V: Bi osagarrien gainezkatze bandera

Two's Complement Overflow Flag V-ek bi osagarrien aritmetika onartzen du. Informazio zehatza lortzeko, ikusi "Instrukzio multzoaren deskribapena".

2 bit - N: bandera negatiboa

N bandera negatiboak emaitza negatiboa adierazten du eragiketa aritmetiko edo logiko batean. Informazio zehatza lortzeko, ikusi "Instrukzio Multzoaren Deskribapena".

Bit 1 - Z: Zero Bandera

Zero Bandera Z-k zero emaitza adierazten du eragiketa aritmetiko edo logiko batean. Informazio zehatza lortzeko, ikusi "Instrukzio multzoaren deskribapena".

0 bit - C: eraman bandera

C Carry banderak eragiketa aritmetiko edo logiko batean eramaten duela adierazten du. Informazio zehatza lortzeko, ikusi "Instrukzio multzoaren deskribapena".

Xede Orokorreko Erregistroa File

Erregistroa File AVR Enhanced RISC instrukzio-multzorako optimizatuta dago. Beharrezko errendimendua eta malgutasuna lortzeko, honako sarrera/irteera eskema hauek onartzen ditu Erregistroak File:

8 biteko irteera operando bat eta 8 biteko emaitza sarrera bat

8 biteko bi irteera operando eta 8 biteko emaitza sarrera bat

8 biteko bi irteera operando eta 16 biteko emaitza sarrera bat

16 biteko irteera operando bat eta 16 biteko emaitza sarrera bat

4-2 irudia PUZeko 32 helburu orokorreko lan erregistroen egitura erakusten du. Helburu orokorra

atalean erakusten den bezala 4-2 irudia, erregistro bakoitzari Datu-memoriaren helbide bat ere esleitzen zaio, erabiltzailearen Datu-espazioko lehen 32 kokapenetan zuzenean mapatuz. SRAM kokapen gisa fisikoki inplementatu ez bada ere, memoria-antolaketa honek malgutasun handia ematen du erregistroetarako sarbidean, izan ere, X-, Y- eta Z-erakusleen erregistroak edozein erregistro indexatzeko ezarri daitezke. file.Erregistroan funtzionatzen duten jarraibide gehienak File erregistro guztietarako sarbide zuzena dute, eta gehienak ziklo bakarreko argibideak dira.

X erregistroa, Y erregistroa eta Z erregistroa

R26..R31 erregistroek funtzio erantsi batzuk dituzte erabilera orokorrerako. Erregistro hauek 16 biteko helbide erakusleak dira datu espazioaren zeharkako helbideratzeko. Zeharkako hiru helbide erregistroak X, Y eta Z erregistroetan deskribatzen dira 4-3 irudia.

Izena eman

Helbideratze modu desberdinetan helbide erregistro hauek desplazamendu finkoa, gehikuntza automatikoa eta txikitze automatikoa bezalako funtzioak dituzte (ikusi argibide multzoaren erreferentzia xehetasunetarako).

Pila erakuslea

Stack batez ere aldi baterako datuak gordetzeko, aldagai lokalak gordetzeko eta etenen eta azpiprogramen deien ondoren itzultzeko helbideak gordetzeko erabiltzen da. Stack Pointer Register-ek beti pilaren goialdera seinalatzen du. Kontuan izan Stack memoria handiagoaren kokapenetatik memoria baxuagoetara hazten dela inplementatzen dela. Horrek esan nahi du Stack PUSH komandoak Stack Pointer txikiagotzen duela.

Stack Pointer-ek SRAM Stack datuak azpierrutina eta Interrupt Stacks dauden tokira zuzentzen du. Datuen SRAM pila espazio hau programak definitu behar du azpierrutinako deiak exekutatu edo etenaldiak gaitu aurretik. Pila erakuslea 0x60 puntutik gora jarri behar da. Pila erakuslea bat gutxitzen da datuak PUSH instrukzioarekin Stackera bultzatzen direnean, eta bi gutxitu egiten da itzulera helbidea pilara igortzen denean azpierrutina deiarekin edo etenarekin. Pila erakuslea bat handitzen da datuak Stack-etik POP instrukzioarekin ateratzen direnean, eta bi handitzen dira datuak Stack-etik RET azpierrutinatik itzultzen direnean edo RETI etenetik itzultzen direnean.

AVR Stack Pointer 8 / biteko bi erregistro gisa inplementatzen da I / O espazioan. Benetan erabiltzen den bit kopurua inplementazioaren menpe dago. Kontuan izan AVR arkitekturaren inplementazio batzuetako datuen espazioa hain txikia dela SPL bakarrik behar dela. Kasu honetan, SPH Erregistroa ez da egongo.

SPH eta SPL - Stack Pointer Register

Bit 15 14 13 12 11 10 9 8
0x3E SP15 SP14 SP13 SP12 SP11 SP10 SP9 SP8 SPH
0x3D SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0 SPL
7 6 5 4 3 2 1 0
Irakurri/Idatzi R/W R/W R/W R/W R/W R/W R/W R/W
Irakurri/Idatzi R/W R/W R/W R/W R/W R/W R/W R/W
Hasierako balioa RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND
Hasierako balioa RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND

Instrukzioak gauzatzeko denbora

Atal honek instrukzioen exekuziorako sarbide-denborizazio kontzeptu orokorrak deskribatzen ditu. AVR CPU PUZaren erloju clkCPU-k gidatzen du, txiparentzat hautatutako erloju-iturburutik zuzenean sortutakoa. Ez da barneko erlojuaren zatiketa erabiltzen.

4.4. irudia

4-4 irudia Harvard arkitekturak eta sarbide azkarreko Erregistroak gaitutako instrukzioen bilatze paraleloak eta instrukzio-exekuzioak erakusten ditu File kontzeptua. Hau da oinarrizko kanalizazio-kontzeptua MHz bakoitzeko MIPS 1 lortzeko kostu bakoitzeko funtzioen, erloju bakoitzeko funtzioen eta potentzia-unitate bakoitzeko funtzioen emaitza esklusiboekin.

4-5 irudia. Ziklo bakarreko ALU Eragiketa

4.5. irudia

Berrezarri eta eten manipulazioa

AVRak eten iturri desberdinak eskaintzen ditu. Eten hauek eta Reset Vector bereiziak Programaren Bektore bana dute Programaren memoria espazioan. Eten guztiei banakako gaitze-bitak esleitzen zaizkie, eta logika bat idatzi behar da Eteneko Erregistro Globaleko Egoera Erregistroan bitarekin batera etenaldia gaitu ahal izateko.

Programako memoria espazioko helbide baxuenak lehenespenez berrezarri eta eten bektore gisa definitzen dira. Bektoreen zerrenda osoa hemen agertzen da 48. orrialdeko "Etenak". Zerrendan eten desberdinen lehentasun mailak ere zehazten dira. Zenbat eta helbide baxuagoa orduan eta handiagoa da lehentasun maila. RESETek du lehentasun handiena, eta hurrengoa INT0 da - Kanpoko eten eskaera 0.

Etenaldi bat gertatzen denean, Global Interrupt Enable I-bit garbitu egiten da eta eten guztiak desgaituta daude. Erabiltzaile softwareak I-bitean logika bat idatz dezake habiaratutako etenak gaitzeko. Gaitutako eten guztiek uneko eten errutina eten dezakete. I-bita automatikoki ezartzen da Etenetik itzultzeko instrukzioa (RETI) exekutatzen denean.

Funtsean bi eten mota daude. Lehenengo mota eten bandera ezartzen duen gertaera batek eragiten du. Eten hauen kasuan, Programa kontagailua benetako eten bektorera bektorizatzen da etenak kudeatzeko errutina exekutatzeko eta hardwareak dagokion eten bandera garbitzen du. Eten banderak ere garbitu daitezke garbitu beharreko bandaren bit posizioan logika bat idatziz. Dagokion eten gaitze bitak garbitu bitartean eten baldintza gertatzen bada, eten bandera ezarri eta gogoratuko da etenaldia gaitu arte edo banderak softwareak garbitu arte. Era berean, eten baldintza bat edo gehiago gertatzen badira Global Interrupt Enable bit garbitzen den bitartean, dagozkion eten bandak ezarriko dira eta gogoratuko dira Global Interrupt Enable bit gaitu arte, eta orduan lehentasun ordenaren arabera exekutatuko dira.

Bigarren eten motak eten baldintza dagoen bitartean abiaraziko dira. Etenaldi hauek ez dute nahitaez eten banderarik. Etenaldia baldintza desagertzen bada etenaldia gaitu aurretik, etena ez da eragingo.

AVR eten batetik irteten denean, beti programa nagusira itzuliko da eta instrukzio bat gehiago exekutatuko du zain dagoen etenaldia eman aurretik.

Kontuan izan Egoera Erregistroa ez dela automatikoki gordetzen eten errutina sartzean, ezta berreskuratzen eten errutinatik itzultzean. Software honek kudeatu behar du.

Etenaldiak desgaitzeko CLI instrukzioa erabiltzean, etenaldiak berehala desgaituko dira. CLI instrukzioaren ondoren ez da etenik exekutatuko, nahiz eta CLI instrukzioarekin aldi berean gertatu. Hurrengo example-ek erakusten du nola erabil daitekeen EEPROM denborazko idazketa-sekuentzian etenaldiak saihesteko.

Muntaketa Kodea Adibample
r16n, SREG; gorde SREG balioa

cli ; desgaitu etenaldiak denbora-sekuentzian zehar

sbi EECR, EEMPE ; hasi EEPROM idazketa

sbi EECR, EEPE

atera SREG, r16; leheneratu SREG balioa (I-bit)

C kodea Adibample
char cSREG;

cSREG = SREG; /* gorde SREG balioa */

/* desgaitu etenaldiak denbora-sekuentzian */

_CLI ();

EECR |= (1<

EECR | = (1 <

SREG = cSREG; /* SREG balioa berreskuratu (I-bit) */

SEI instrukzioa etenaldiak gaitzeko erabiltzean, SEI ondorengo instrukzioa exekutatu egingo da zain dauden etenen aurretik, adibide honetan erakusten den moduan.ample.

Muntaketa Kodea Adibample
sei ; ezarri Eten Globala Gaitu

lo egin; lotan sartu, etenaren zain

; Oharra: lo sartuko da zain egon aurretik

; eten (k)

C kodea Adibample
_SEI(); /* eten globala gaituta ezarri */

_LO (); /* loan sartu, etenaren zain */

/ * oharra: lo sartuko da zain dauden etenaldien aurretik * /

Eten erantzuteko denbora

Gaitutako AVR eten guztien eten exekuzio erantzuna lau erloju ziklo gutxienez da. Lau erloju-zikloren ondoren, etenen tratamendurako errutinarako Programa Bektoreko helbidea exekutatzen da. Lau erloju-ziklo aldi honetan, Programa kontagailua pilara bultzatzen da. Bektorea normalean eten errutinarako jauzia da, eta salto horrek hiru erloju ziklo hartzen ditu. Ziklo anitzeko instrukzio bat exekutatzean eten bat gertatzen bada, instrukzio hau etenaldia eman aurretik amaitzen da. MCU lo moduan dagoenean eten bat gertatzen bada, etenaldia exekutatzeko erantzunaren denbora lau erloju ziklo handitzen da. Igoera hau hautatutako lo modutik abiatzeko denborarekin batera dator.

Etenak kudeatzeko errutinatik bueltan lau erloju ziklo behar dira. Lau erloju-ziklo hauetan, Programa-kontagailua (bi byte) pilatik itzultzen da, pilaren erakuslea bi gehitzen da eta I-bit SREG-n ezartzen da.

AVR Oroitzapenak

Atal honetan ATtiny25 / 45/85 dokumentuko oroitzapen desberdinak deskribatzen dira. AVR arkitekturak bi memoria espazio nagusi ditu, Datu memoria eta Programa memoria espazioa. Gainera, ATtiny25 / 45/85 telefonoak EEPROM memoria du datuak gordetzeko. Memoriaren hiru espazioak linealak eta erregularrak dira.

Sistemako Flash Programaren Memoria Berriro Programagarria

ATtiny25 / 45/85 kateak 2/4 / 8K byte ditu txipean sistemako Flash memoria reprogramable programa gordetzeko. AVR argibide guztiek 16 edo 32 biteko zabalera dutenez, Flash 1024/2048/4096 x 16 moduan antolatzen da.

Flash memoriak gutxienez 10,000 idazteko / ezabatzeko zikloen iraupena du. ATtiny25 / 45/85 Programa Kontagailuak (PC) 10/11/12 bit zabal da, horrela 1024/2048/4096 Programaren memoria kokapenei zuzentzen zaie. “Memoria Programa- ming ”147. orrialdean SPI pinen bidez Flash datuen deskarga serieko deskribapen zehatza dauka.

Taula konstanteak Programako memoria helbide espazio osoan sar daitezke (ikus LPM - Kargatu Programaren memoria argibideen deskribapena).

5-1 irudia. Programaren memoria-mapa Memoria mapa

SRAM datuen memoria

5-2 irudia ATtiny25 / 45/85 SRAM memoria nola antolatzen den erakusten du.

Beheko 224/352/607 Datuen memoria-kokapenek biak zuzentzen dituzte Erregistroa File, I/O memoria eta barneko datuen SRAM. Lehenengo 32 kokapenek Erregistroari zuzentzen diote File, hurrengo 64 kokapenek I/O memoria estandarra eta azken 128/256/512 kokapenek barneko datuen SRAMa zuzentzen dute.

Datu-memoriaren bost helbideratze-modu ezberdinek estaltzen dute: Zuzena, Zeharkako Desplazamenduarekin, Zeharkakoa, Zeharkakoa Aurre-gutxitzearekin eta Zeharkakoa Post-gehikuntzarekin. Erregistroan File, R26tik R31era bitarteko erregistroek zeharkako helbideratze-erakusleen erregistroak dituzte.

Zuzeneko helbideratzea datu espazio osora iristen da.

Lekuz aldatutako Zeharkako modua Y helbide edo 63 erregistroak emandako oinarrizko helbidetik XNUMX helbide kokapenetara iristen da.

Aurrez gutxitu eta ondoren gehitze automatikoekin erregistratutako zeharkako helbideratze moduak erabiltzen direnean, X, Y eta Z helbide erregistroak gutxitu edo inkrementatu egiten dira.

Helburu orokorreko 32 lan-erregistroak, 64 I/O-erregistroak eta ATtiny128/256/512-eko barne-datuen SRAM 25/45/85 byte-ak helbideratze-modu guztietatik eskura daitezke. Erregistroa File atalean deskribatzen da “Gen- Helburu orokorraren Erregistroa File” 10. orrialdean.

5-2 irudia. Datuen Memoriaren Mapa 2. memoria-mapa

Datuen memoriarako sarbidea Garaiak

Atal honek barne memoriarako sarbidearen sarbide-denbora-kontzeptu orokorrak deskribatzen ditu. Barneko datuen SRAM sarbidea bi clkCPU ziklotan egiten da, atalean deskribatzen den moduan 5-3 irudia.

5-3 irudia. On-Chip Datu SRAM Sarbide Zikloak Txip datuen gainean EEPROM datuen memoria

ATtiny25 / 45/85 telefonoak 128/256/512 byte datu EEPROM memoria ditu. Datu espazio bereizi gisa antolatuta dago eta bertan byte bakarrak irakurri eta idatzi daitezke. EEPROMak gutxienez 100,000 idazteko / ezabatzeko zikloen iraupena du. EEPROM eta PUZaren arteko sarbidea jarraian azaltzen da, EEPROM helbide erregistroak, EEPROM datuen erregistroa eta EEPROM kontrol erregistroa zehaztuz. Xehetasunak ikusteko “Serieko deskarga” 151. orrialdean.

EEPROM irakurtzeko / idazteko sarbidea

EEPROM Sarbide Erregistroak I / O espazioan eskuragarriak dira.

EEPROMerako idazteko sarbide orduak hemen ematen dira 5. orrialdeko 1-21 taula. Auto-denboratze-funtzio batek, ordea, erabiltzailearen softwareari hurrengo bytea noiz idatz daitekeen detektatzen uzten dio. Erabiltzaile-kodeak EEPROM idazten duten argibideak baditu, neurri batzuk hartu behar dira. Asko iragazitako elikadura-iturrietan, baliteke VCC astiro igotzea edo jaitsiko dela

Piztu/behera. Honek gailua denbora-tarte batean bolumen batean exekutatzen dutagErabilitako erlojuaren maiztasunerako minimo gisa zehaztutakoa baino txikiagoa. Ikusi "EEPROM ustelkeria prebenitzea" 19. orrialdean egoera horietan arazoak ekiditeko xehetasunetarako.

Nahi gabe EEPROM idazketak ekiditeko, idazketa prozedura zehatz bat jarraitu behar da. Zerbaiti erreferentzia egin “Atomikoa Byte programazioa ”17. orrialdean eta "Byte programazioa" 17. orrialdean honi buruzko xehetasunak lortzeko.

EEPROM irakurtzen denean, PUZa lau erloju ziklotan gelditzen da hurrengo instrukzioa exekutatu aurretik. EEPROM idazten denean, CPU bi erloju ziklotan gelditzen da hurrengo instrukzioa exekutatu aurretik.

Byte atomikoen programazioa

Byte atomikoen programazioa erabiltzea da modurik errazena. EEPROMean byte bat idazterakoan, erabiltzaileak helbidea EEAR Erregistroan eta datuak EEDR Erregistroan idatzi behar ditu. EEPMn bitak zero badira, EEPE idazteak (EEMPE idatzi ondoren lau ziklo barru) ezabatzeko / idazteko eragiketa eragingo du. Ezabatzeko eta idazteko zikloa eragiketa batean egiten dira eta programazio denbora osoa ematen da 5. orrialdeko 1-21 taula. EEPE bit-a ezarrita dago ezabatzeko eta idazteko eragiketak amaitu arte. Gailua programatzen lanpetuta dagoen bitartean, ezin da EEPROM beste eragiketarik egin.

Byte zatien programazioa

Ezabatu eta idazteko zikloa bi eragiketa ezberdinetan zatitu daiteke. Hau erabilgarria izan daiteke sistemak sarbide-denbora laburra behar badu denbora-tarte mugatu batean (normalean elikadura hornidura boltage erorketak). Aurrera ateratzeko tagMetodo honen arabera, idatzi beharreko kokapenak idazketa-eragiketa baino lehen ezabatu egin behar da. Baina ezabatzeko eta idazteko eragiketak zatituta daudenez, posible da ezabatzeko eragiketak egitea sistemak denbora kritikoen eragiketak egitea ahalbidetzen duenean (normalean piztu ondoren).

Ezabatu

Byte bat ezabatzeko, helbidea EEAR-n idatzi behar da. EEPMn bitak 0b01 badira, EEPE idazteak (EEMPE idatzi ondoren lau ziklo barru) ezabatzeko eragiketa eragingo du soilik (programazio denbora hemen ematen da: 5-1 taula 21. orrialdea). EEPE bitak ezarrita jarraitzen du ezabatzeko eragiketa amaitu arte. Gailua programatzen lanpetuta dagoen bitartean, ezin da EEPROM beste eragiketarik egin.

Idatzi

Kokapen bat idazteko, erabiltzaileak helbidea EEARn eta datuak EEDRn idatzi behar ditu. EEPMn bitak 0b10 badira, EEPE idazteak (EEMPE idatzi ondoren lau ziklo barru) idazketa eragiketa eragingo du soilik (programazio denbora 5. orrialdeko 1-21 taula). EEPE bit-a ezarrita dago idazketa eragiketa amaitu arte. Idatzi aurretik dagoen lekua idatzi aurretik ez bada ezabatu, gordetako datuak galdutzat jo behar dira. Gailua programatzen lanpetuta dagoen bitartean, ezin da EEPROM beste eragiketarik egin.

Kalibratutako Osziladorea EEPROM-era sartzeko denbora erabiltzen da. Ziurtatu Osziladoreen maiztasuna atalean deskribatutako baldintzen barruan dagoela "OSCCAL - Osziladoreen kalibrazio erregistroa" 31. orrialdean.

Hurrengo kodea adibidezampEEPROM-en ezabatzeko, idazteko edo idazketa atomikorako muntaketa bat eta C funtzio bat erakusten dute. Adibampetenaldiak kontrolatzen direla suposatzen dute (adibidez, etenaldiak modu orokorrean desgaituz), funtzio hauek exekutatzen diren bitartean etenik gertatuko ez dadin.

Muntaketa Kodea Adibample
EEPROM_idatzi:

; Itxaron aurreko idazketa amaitu arte

sbic EECR,EEPE

rjmp EEPROM_idatzi

; Ezarri Programazio modua

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

atera EECR, r16

; Konfiguratu helbidea (r18: r17) helbide erregistroan

atera EEARH, r18

atera EEARL, r17

; Idatzi datuak (r19) datuen erregistroan

atera EEDR, r19

; Idatzi logikoa EEMPEri

sbi EECR,EEMPE

; Hasi eeprom idazketa EEPE ezarrita

sbi EECR,EEPE

ret

C kodea Adibample
void EEPROM_write (sinatu gabeko char ucAddress, sinatu gabeko char ucData)

{

/* Aurreko idazketa amaitu arte itxaron */ while(EECR & (1<

;

/* Ezarri programazio modua */

EECR = (0 <

/ * Konfiguratu helbidea eta datuen erregistroak * / EEAR = ucAddress;

EEDR = ucData;

/* Idatzi logikoa EEMPEri */

EECR | = (1 <

/ * Hasi eeprom idazketa EEPE ezarrita * /

EECR | = (1 <

}

Hurrengo kodea adibidezampEEPROM irakurtzeko muntaia eta C funtzioak erakusten dituzte. Adibampetenaldiak kontrolatzen direla suposatzen dute, funtzio horien exekuzioan etenik gertatuko ez dadin.

Muntaketa Kodea Adibample
EEPROM_irakurri:

; Itxaron aurreko idazketa amaitu arte

sbic EECR,EEPE

rjmp EEPROM_read

; Konfiguratu helbidea (r18: r17) helbide erregistroan

atera EEARH, r18

atera EEARL, r17

; Hasi eeprom irakurtzen EERE idatziz

sbi EECR,EERE

; Irakurri datuen erregistroaren datuak

r16an, EEDR

ret

C kodea Adibample
sinatu gabeko karaktere EEPROM_read (sinatu gabeko karaktere ucHelbidea)

{

/ * Itxaron aurreko idazketa amaitu arte * /

bitartean (EECR & (1 <

;

/ * Konfiguratu helbide erregistroa * / EEAR = ucAddress;

/* Hasi eeprom irakurtzen EERE idatziz */

EECR | = (1 <

/ * Itzuli datuak erregistroan * /

itzuli EEDR;

}

EEPROM ustelkeria prebenitzea

VCC baxuko aldietan, EEPROM datuak hondatu daitezke hornidura bolumena delakotage baxuegia da CPUak eta EEPROMak behar bezala funtzionatzeko. Arazo hauek EEPROM erabiltzen duten plaka-mailako sistemen berdinak dira, eta diseinu-soluzio berdinak aplikatu behar dira.

EEPROM datuen ustelkeria bi egoerak eragin dezakete boltage baxuegia da. Lehenik eta behin, EEPROM-ra idazteko sekuentzia arrunt batek bolumen minimo bat behar dutage behar bezala funtzionatzeko. Bigarrenik, CPUak berak oker exekutatu ditzake instrukzioak, hornidura boltage baxuegia da.

EEPROM datuen ustelkeria erraz saihestu daiteke diseinu gomendio hau jarraituz:

Mantendu AVR RESET aktibatuta (baxua) elikadura-hornidura nahikoa ez den aldietantage. Barneko Brown-out detektagailua (BOD) gaituz egin daiteke. Barne BOD-aren detekzio-maila bat ez badator

behar den detekzio maila, kanpoko VCC baxua berrezartzeko babes-zirkuitu bat erabil daiteke. Idazketa-eragiketa egiten ari den bitartean berrezarri bat gertatzen bada, idazketa-eragiketa amaituko da, baldin eta elikadura-iturria boltage nahikoa da.

I / O memoria

ATtiny25 / 45/85 espazioaren I / O espazioa definitzen da hemen "Erregistratu laburpena" 200. orrialdean.

ATtiny25 / 45/85 I / S eta periferiko guztiak I / O espazioan kokatzen dira. I / O kokapen guztietara LD / LDS / LDD eta ST / STS / STD argibideen bidez sar daitezke, datuak helburu orokorreko 32 lan erregistroen eta I / O espazioaren artean transferituz. 0x00 - 0x1F helbide barrutiko I / O Erregistroak zuzenean bit-sarbidea dute SBI eta CBI argibideak erabiliz. Erregistro horietan, bit bakarren balioa SBIS eta SBIC argibideak erabiliz egiaztatu daiteke. Xehetasun gehiagorako jo argibide multzoaren atalera. I / O komando zehatzak IN eta OUT erabiltzean, I / O helbideak 0x00 - 0x3F erabili behar dira. I / O erregistroak LD eta ST argibideak erabiliz datu espazio gisa zuzentzen direnean, 0x20 gehitu behar zaie helbide horiei.

Etorkizuneko gailuekin bateragarritasuna lortzeko, erreserbatutako bitak zeroan idatzi beharko lirateke sartzen badira. Erreserbatutako I / O memoriaren helbideak ez dira inoiz idatzi behar.

Egoera bandera batzuk logiko bat idatziz garbituko dira. Kontuan izan CBI eta SBI argibideek zehaztutako bitean bakarrik funtzionatuko dutela eta, beraz, egoera bandera duten erregistroetan erabil daitezkeela. CBI eta SBI argibideek 0x00 eta 0x1F erregistroekin bakarrik funtzionatzen dute.

I / O eta Periferikoen Kontrol Erregistroak ondorengo ataletan azaltzen dira.

Erregistroaren deskribapena

EEARH - EEPROM helbide erregistroa

Bit 7 6 5 4 3 2 1 0
0x1F EEAR8 EEARH
Irakurri/Idatzi R R R R R R R R/W
Hasierako balioa 0 0 0 0 0 0 0 X/0

Bits 7: 1 - Res: Bits gordeak

Bit hauek etorkizunean erabiltzeko gordeak daude eta beti zero gisa irakurriko dira.

0 bit - EEAR8: EEPROM helbidea

Hau da ATtiny85-en EEPROM helbide bit esanguratsuena. EEPROM gutxiago duten gailuetan, hau da, ATtiny25 / ATtiny45, bit hau erreserbatuta dago eta beti zero irakurriko da. EEPROM helbide erregistroaren (EEAR) hasierako balioa zehaztu gabe dago eta, beraz, balio egokia idatzi behar da EEPROMera sartu aurretik.

EEARL - EEPROM helbide erregistroa

Bit

0x1E EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 ANGARRIA
Atzeko / Idatzi R/W R/W R/W R/W R/W R/W R/W R/W
Hasierako balioa X X X X X X X X

7 bit - EEAR7: EEPROM helbidea

Hau da ATtiny45-en EEPROM helbide bit esanguratsuena. EEPROM gutxiago duten gailuetan, hau da, ATtiny25, bit hau gordeta dago eta beti zero irakurriko da. EEPROM Helbide Erregistroaren (EEAR) hasierako balioa zehaztu gabe dago eta, beraz, balio egokia idatzi behar da EEPROMera sartu aurretik.

Bits 6: 0 - EEAR [6: 0]: EEPROM Helbidea

Hauek dira EEPROM helbide erregistroaren bitak (baxuak). EEPROM datu byteek 0 ... (128/256 / 512-1) tartean linealki zuzentzen dituzte. EEARren hasierako balioa zehaztu gabe dago eta, beraz, balio egokia idatzi behar da EEPROMera sartu aurretik.

EEDR - EEPROM datuen erregistroa

Bit 7 6 5 4 3 2 1 0
0x1D EEDR7 EEDR6 EEDR5 EEDR4 EEDR3 EEDR2 EEDR1 EEDR0 EEDR
Irakurri/Idatzi R/W R/W R/W R/W R/W R/W R/W R/W
Hasierako balioa 0 0 0 0 0 0 0 0

EEPROM idazteko eragiketarako EEDR erregistroak EEPROMean EEAR erregistroak emandako helbidean idatzi beharreko datuak biltzen ditu. EEPROM irakurtzeko eragiketarako, EEDR fitxategian irakurritako datuak biltzen ditu

EEPROM EEAR-ek emandako helbidean.

 

5.5.4 EECR - EEPROM kontrol erregistroa

Bit 7 6 5 4 3 2 1 0
0x1C        – EEPM1 EEPM0 ARRIBA EEMPE EEPE EERE EECR
Irakurri / Idatzi R R R / W R/W R/W R/W R/W R/W
Hasierako balioa 0 0 X X 0 0 X 0

Bit 7 - Res: Bit erreserbatuta

Bit hau etorkizunean erabiltzeko gordeta dago eta beti 0 bezala irakurriko da ATtiny25 / 45/85 dokumentuan. Etorkizuneko AVR gailuekin bateragarritasuna lortzeko, idatzi beti bit hau zerora. Irakurri ondoren, mozorroa moztu.

Bit 6 - Res: Bit erreserbatuta

Bit hau ATtiny25 / 45/85 fitxategian gordeta dago eta zero gisa irakurriko da beti.

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

EEPROM Programazio moduan bit ezarpenak definitzen du EEPE idazterakoan abiaraziko den programazio ekintza. Posible da datuak eragiketa atomiko batean programatzea (balio zaharra ezabatzea eta balio berria programatzea) edo Erase eta Write eragiketak bi eragiketa desberdinetan banatzea. Modu desberdinen programazio denborak hemen agertzen dira 5-1 taula. EEPE ezarrita dagoen bitartean, EEPMn idazteko edozein ez da kontuan hartuko. Berrezartzerakoan, EEPMn bitak 0b00-ra berrezarriko dira EEPROM programatzen lanpetuta egon ezean.

5-1 taula. EEPROM moduko bitak

EEPM1 EEPM0 Programazio Denbora Funtzionamendua
0 0 3.4 ms Ezabatu eta idatzi eragiketa batean (Eragiketa atomikoa)
0 1 1.8 ms Ezabatu soilik
1 0 1.8 ms Idatzi bakarrik
1 1 Etorkizuneko erabilerarako gordeta

3 bit - EERIE: EEPROM prest eten gaitzea

EERIE bat idaztean EEPROM Ready Interrupt gaitzen da SREG-ko I bit-a ezarrita badago. EERIE zerora idazteak etenaldia desgaitzen du. EEPROM Ready Interrupt etengabeko etena sortzen du memoria ez lurrunkorra programatzeko prest dagoenean.

2. bit - EEMPE: EEPROM Master Programa Gaitu

EEMPE bitak zehazten du EEPE batean idazteak eragina izango duen edo ez.

EEMPE ezarrita dagoenean, EEPE lau erloju ziklotan ezartzeak EEPROMa hautatutako helbidean programatuko du. EEMPE zero bada, EEPE ezartzeak ez du eraginik izango. Softwareak EEMPE bati idatzi dionean, hardwareak bitera zero garbitzen du lau erloju zikloen ondoren.

Bit 1 - EEPE: EEPROM programa gaitzea

EEPROM Programa Gaitu Seinalea EEPE EEPROMerako gaitzeko seinalea da. EEPE idazten denean, EEPROM EEPMn bit ezarpenaren arabera programatuko da. EEMPE bitak bat idatzi behar dio bat EEPEri logikoa idatzi aurretik, bestela ez da EEPROM idazketarik gertatzen. Idazteko sarbide denbora igarotakoan, EEPE bit-a hardwarearen bidez garbitzen da. EEPE ezarrita dagoenean, CPU bi ziklo gelditzen da hurrengo instrukzioa exekutatu aurretik.

Bit 0 - EERE: EEPROM irakurri gaituta

EEPROM Read Enable Signal - EERE - EEPROM irakurtzeko estroboskoa da. EEAR Erregistroan helbide zuzena konfiguratzen denean, EERE bitak bat idatzi behar du EEPROM irakurketa abiarazteko. EEPROM irakurtzeko sarbideak instrukzio bat hartzen du eta eskatutako datuak berehala eskuragarri daude. EEPROM irakurtzen denean, PUZa lau ziklotan gelditzen da hurrengo instrukzioa exekutatu aurretik. Erabiltzaileak EEPE bit-a galdetu beharko luke irakurtzen eragiketa hasi aurretik. Idazketa eragiketa bat egiten ari bada, ezin da EEPROM irakurri, ezta EEAR Erregistroa aldatu ere.

Sistemaren erlojua eta erlojuaren aukerak

Erloju sistemak eta horien banaketa

Erlojuaren banaketa

CPU erlojua

PUZaren erlojua AVR nukleoaren funtzionamenduari buruzko sistemaren zatietara bideratzen da. Adibampmodulu horietako lurrak Xede Orokorreko Erregistroa dira File, Egoera Erregistroa eta Stack Erakuslea duen Datu-memoria. PUZaren erlojua gelditzeak nukleoak eragiketa eta kalkulu orokorrak egitea galarazten du.

I / O Clock - clkI / O

I / O erlojua I / O modulu gehienek erabiltzen dute, Tenporizadorea / Kontagailua bezala. I / O erlojua Kanpoko eten moduluak ere erabiltzen du, baina kontuan izan kanpoko etenaldi batzuk logika asinkronoaren bidez hautematen direla, eten horiek detektatzeko aukera ematen baitute I / O erlojua geldituta badago ere.

Flash Clock - clkFLASH

Flash erlojuak Flash interfazearen funtzionamendua kontrolatzen du. Flash erlojua PUZaren erlojuarekin batera aktibo egon ohi da.

ADC Clock - clkADC

ADCri erloju domeinu dedikatua eskaintzen zaio. Horrek CPU eta I / O erlojuak geldiaraztea ahalbidetzen du zirkuitu digitalak sortutako zarata murrizteko. Honek ADC bihurketen emaitza zehatzagoak ematen ditu.

Erloju periferiko bizkorra sortzeko barne PLLa - clkPCK

ATtiny25 / 45/85 barneko PLLak iturburu sarreratik 8 aldiz biderkatutako erloju maiztasuna sortzen du. Berez, PLLak 8.0 MHz RC osziladore barneko irteera erabiltzen du iturri gisa. Bestela, PLLCSRren LSM bit-a ezartzen bada PLL-k RC osziladorearen irteera bitan zatituta erabiliko du. Horrela PLLren irteera, erloju periferiko azkarra 64 MHz da. Erloju periferiko azkarra, edo hortik aldez aurretik zehaztutako erlojua, tenporizadorearen / kontagailuaren1 erlojuaren iturri gisa edo sistemako erloju gisa hauta daiteke. Ikusi 6-2 irudia. Erloju periferiko bizkorraren maiztasuna bitan banatzen da PLLCSR-ren LSM ezartzen denean, eta ondorioz 32 MHz-eko erloju-maiztasuna lortzen da. Kontuan izan, LSM ezin dela ezarri PLLCLK sistemako erloju gisa erabiltzen bada.

6-2 irudia. PCK Erloju Sistema. PCK erlojua

PLLa RC osziladorean blokeatuta dago eta RC osziladorea OSCCAL erregistroaren bidez egokitzeak erloju periferiko azkarra aldi berean egokituko du. Hala ere, nahiz eta RC osziladorea 8 MHz baino maiztasun handiago batera eraman, erloju periferiko azkarraren maiztasuna 85 MHz-tan saturatzen da (kasurik okerrena) eta oszilazio izaten jarraitzen du gehieneko maiztasunean. Kontuan izan behar da kasu honetan PLL ez dela blokeatuta RC osziladore erlojuarekin. Hori dela eta, gomendagarria da OSCCAL doikuntzak 8 MHz baino maiztasun handiago batera ez eramatea PLLa funtzionamendu-tarte egokian mantentzeko.

Barne PLL gaituta dago:

PLLCSR erregistroan dagoen PLLE bit ezarria dago.

CKSEL metxa '0001' programatuta dago.

CKSEL metxa '0011' programatuta dago.

PLLCSR bit PLOCK ezartzen da PLL blokeatuta dagoenean. Barneko RC osziladorea eta PLL itzalita daude itzali eta stand-by lo moduetan.

Barne PLL ATtiny15 bateragarritasun moduan

ATtiny25 / 45/85 ATtiny15 erabiltzaileentzako migrazio gailua denez, ATtiny15 bateragarritasun modua dago atzera bateragarritasuna lortzeko. ATtiny15 bateragarritasun modua CKSEL fusibleak '0011' programatuz programatzen da.

ATtiny15 bateragarritasun moduan, barneko RC osziladorearen maiztasuna 6.4 MHz-ra kalibratzen da eta PLLren biderketa faktorea 4x gisa ezartzen da. Ikusi 6-3 irudia. Doikuntza hauekin erlojuaren sistema ATtiny15 bateragarria da eta ondorioz erloju periferiko azkarrak 25.6 MHz-ko maiztasuna du (ATtiny15-en bezala).

6-3 irudia. PCK erloju-sistema ATtiny15 bateragarritasun moduan. Erloju sistema

Erlojuaren iturriak

Gailuak erlojuaren iturburuko aukera hauek ditu, Flash Fuse bit-ekin hautatuta behean agertzen den moduan. Aukeratutako iturburuko erlojua AVR erloju-sorgailura sartzen da, eta dagokion moduluetara bideratzen da.

6-1 taula. Gailuaren erloju-aukerak Hautatu

Gailu Erlojua Aukera CKSEL[3:0](1)
Kanpoko Erlojua (ikus 26. orrialdea) 0000
Maiztasun handiko PLL erlojua (ikus 26. orrialdea) 0001
Barne osziladore kalibratua (ikus 27. orrialdea) 0010(2)
Barne osziladore kalibratua (ikus 27. orrialdea) 0011(3)
128 kHz-eko barne osziladorea (ikus 28. orrialdea) 0100
Maiztasun baxuko kristal osziladorea (ikus 29. orrialdea) 0110
Kristalezko Osziladorea / Zeramika Resonator (ikus 29. orrialdea) 1000-1111
Erreserbatuta 0101, 0111

Fusible guztientzat "1" programatu gabea da eta "0" programatuta dago.

Gailua aukera hau hautatuta bidaltzen da.

Honek ATtiny15 bateragarritasun modua hautatuko du, non sistemaren erlojua lau zatitzen den, 1.6 MHz erlojuaren maiztasuna lortuz. Inormation gehiago lortzeko, ikusi "Kalibratutako barne osziladorea" 27. orrialdean.

Erlojuaren aukera bakoitzerako aukerak hurrengo ataletan ematen dira. PUZa itzalita dagoenean esnatzen denean, hautatutako erlojuaren iturria abiarazteko denbora erabiltzen da, osziladoreen funtzionamendu egonkorra ziurtatuz instrukzioa exekutatzen hasi aurretik. PUZa berrezartzen hasten denean, atzerapena gehitzen da, boterea normalean hasi aurretik maila egonkorrera iristeko. Watchdog osziladorea abiarazteko denboraren denbora errealean denbora hori egikaritzeko erabiltzen da. Denbora bakoitzeko erabilitako WDT osziladoreen ziklo kopurua hemen agertzen da 6-2 taula.

6-2 taula. Watchdog Osziladore Zikloen kopurua

Idatzi Denbora-muga Ziklo kopurua
4 ms 512
64 ms 8K (8,192)

Kanpoko Erlojua

Gailua kanpoko erloju iturri batetik gidatzeko, CLKI gidatu behar da irudian agertzen den moduan 6-4 irudia. Gailua kanpoko erloju batean exekutatzeko, CKSEL fusibleak "00" programatu behar dira.

6-4 irudia. Kanpoko Erloju Unitatearen konfigurazioa

6.4. irudia

Erlojuaren iturri hau hautatzen denean, abiarazteko denborak SUT fusibleek zehazten dituzte, irudian agertzen den moduan 6-3 taula.

6-3 taula. Kanpoko erlojuaren hautapenaren abiarazte-orduak

SUT[1:0] Abiarazteko denbora itzaltzetik Berrezartzearen atzerapen osagarria Erabilera gomendatua
00 6 CK 14CK BOD gaituta
01 6 CK 14CK + 4 ms Azkar igotzen den potentzia
10 6 CK 14CK + 64 ms Poliki-poliki igotzen ari den boterea
11 Erreserbatuta

Kanpoko erlojua aplikatzean, aplikatutako erlojuaren maiztasunean bat-bateko aldaketak ekidin behar dira MCUaren funtzionamendu egonkorra bermatzeko. Erlojuaren ziklo batetik bestera maiztasunaren% 2tik gorako aldakuntzak ezusteko portaera sor dezake. Erlojuaren maiztasunean gertatzen diren aldaketetan MCUa berrezartzen dela ziurtatu behar da.

Kontuan izan System Clock Presale erabil daitekeela barneko erlojuaren maiztasunean exekutatzeko aldaketak ezartzeko, funtzionamendu egonkorra ziurtatzen den bitartean. Zerbaiti erreferentzia egin "Sistemaren erlojuaren prekalagailua" 31. orrialdean xehetasunetarako.

Maiztasun handiko PLL erlojua

RC osziladorearekin blokeatutako 64 MHz erlojuaren tasa ematen duen barne PLL bat dago Tenporizadore Periferikoa / Kontagailua1 erabiltzeko eta sistemaren erlojuaren iturrirako. Sistemaren erlojuaren iturri gisa hautatzen denean, CKSEL fusibleak '0001' programatuz, lau ataletan zatitzen da 6-4 taula.

6-4 taula. Maiztasun handiko PLL erlojuaren funtzionamendu moduak

CKSEL[3:0] Maiztasun nominala
0001 16 MHz

Erlojuaren iturri hau hautatzen denean, abiarazteko denborak SUT metxa bidez zehazten dira, irudian agertzen den moduan 6-5 taula.

6-5 taula. Maiztasun handiko PLL erlojuaren abiarazte-orduak

SUT[1:0] Abiarazteko denbora itzaltzetik Piztearen berrezartzetik atzerapen gehigarria (VCC = 5.0 V) Gomendatutako erabilera
00 14CK + 1K (1024) CK + 4 ms 4 ms BOD gaituta

6-5 taula. Maiztasun handiko PLL erlojuaren abiarazte-orduak

SUT[1:0] Abiarazteko denbora itzaltzetik Piztearen berrezartzetik atzerapen gehigarria (VCC = 5.0 V) Gomendatutako erabilera
01 14CK + 16K (16384) CK + 4 ms 4 ms Azkar igotzen den potentzia
10 14CK + 1K (1024) CK + 64 ms 4 ms Poliki-poliki igotzen ari den boterea
11 14CK + 16K (16384) CK + 64 ms 4 ms Poliki-poliki igotzen ari den boterea

Barne osziladore kalibratua

Lehenespenez, Barneko RC Osziladoreak 8.0 MHz gutxi gorabeherako erlojua eskaintzen du. Nahiz eta liburukiatageta tenperaturaren arabera, erloju hau oso zehaztasunez kalibratu dezake erabiltzaileak. Ikusi "Barne RC osziladore kalibratua zakarra ”164. orrialdean eta “Barne osziladoreen abiadura” 192 orrialdean xehetasun gehiagorako. Gailua CKDIV8 fusiblea programatuta dago. Ikusi "Sistemaren erlojuaren prekalagailua" 31. orrialdean xehetasun gehiagorako.

Erloju hau sistemako erloju gisa hauta daiteke CKSEL fusibleak programatuta agertzen den moduan 6-6 taula orrialdean

27. Hautatzen bada, kanpoko osagairik gabe funtzionatuko du. Berrezartzerakoan, hardwareak aurrez programatutako kalibrazio balioa OSCCAL Erregistroan kargatzen du eta, horrela, RC osziladorea automatikoki kalibratzen du. Kalibrazio horren zehaztasuna Fabrikako kalibrazio gisa erakusten da 21. orrialdeko 2-164 taula.

OSCCAL erregistroa SWtik aldatuta, ikusi "OSCCAL - Osziladoreen kalibrazio erregistroa" 31. orrialdean, fabrikazioko kalibrazioa erabiliz baino kalibrazio zehaztasun handiagoa lor daiteke. Kalibrazio honen zehaztasuna Erabiltzailearen kalibrazio gisa erakusten da 21. orrialdeko 2-164 taula.

Osziladore hau txip erloju gisa erabiltzen denean, Watchdog Osziladorea Watchdog Tenporizadorerako eta berrezartzeko denbora-muga erabiliko da. Aurrez programatutako kalibrazio balioari buruzko informazio gehiago lortzeko, ikusi atala "Kali- bration Bytes ”150. orrialdean.

Barne osziladorea 6.4 MHz erlojua eskaintzeko ere ezar daiteke CKSEL fusibleak "0011" idatzita, irudian agertzen den moduan 6-6 taula behean. Ezarpen hau ATtiny15 bateragarritasun modura izendatzen da eta 6.4 MHz-ko kalibratutako erloju iturria eskaintzeko asmoa du, ATtiny15-en bezala. ATtiny15 Bateragarritasun Moduan PLL-k 6.4 MHz-tan funtzionatzen duen barne osziladorea erabiltzen du 25.6 MHz-ko erloju periferiko seinalea sortzeko Timer / Counter1-erako (ikusi "8 biteko tenporizadorea / kontagailua1 ATtiny15 Mode ”95. orrialdean). Kontuan izan funtzionamendu modu honetan 6.4 MHz erlojuaren seinalea beti lau zatitzen dela, 1.6 MHz sistemako erlojua eskainiz.

6-6 taula. Barne kalibratua RC osziladorearen funtzionamendu moduak

CKSEL[3:0] Maiztasun nominala
0010(1) 8.0 MHz
0011(2) 6.4 MHz

Gailua aukera hau hautatuta bidaltzen da.

Ezarpen honek ATtiny15 Bateragarritasun modua hautatuko du, sistemaren erlojua lau zatituta dagoelarik, 1.6 MHz erlojuaren maiztasuna lortuz.

8 MHz barneko osziladore kalibratua erlojuaren iturri gisa hautatzen denean, abiarazteko denborak SUT fusibleek zehazten dituzte 6-7 taula behean.

6-7 taula. Barne-kalibratutako RC osziladorearen erlojuaren abiarazte-orduak

SUT[1:0] Abiarazteko denbora itzaltzetik Berrezartzetik atzerapen gehigarria (VCC = 5.0V) Erabilera gomendatua
00 6 CK 14CK(1) BOD gaituta
01 6 CK 14CK + 4 ms Azkar igotzen den potentzia
10(2) 6 CK 14CK + 64 ms Poliki-poliki igotzen ari den boterea
11 Erreserbatuta

1. RSTDISBL metxa programatuta badago, abiarazteko denbora hori 14CK + 4 ms-ra handituko da programazio modua sar daitekeela ziurtatzeko.
2. Gailua aukera hau hautatuta bidaltzen da.

ATtiny15 Bateragarritasun Moduan abiarazteko denborak SUT metxa bidez zehazten dira 6-8 taula behean.

6-8 taula. Barne-kalibratutako RC osziladorearen erlojuaren abiarazteko orduak (ATtiny15 moduan)

SUT[1:0] Abiarazteko denbora itzaltzetik Berrezartzetik atzerapen gehigarria (VCC = 5.0V) Erabilera gomendatua
00 6 CK 14CK + 64 ms
01 6 CK 14CK + 64 ms
10 6 CK 14CK + 4 ms
11 1 CK 14CK(1)

Oharra: RSTDISBL fusiblea programatuta badago, abiarazte-denbora hau 14CK + 4 ms-ra igoko da programazio modua sar daitekeela ziurtatzeko.

Laburbilduz, ATtiny15 bateragarritasun moduari buruzko informazio gehiago ataletan aurki daiteke "B ataka (PB5: PB0)" aktibatuta 2. orrialdea"Barne PLL ATtiny15 bateragarritasun moduan" 24. orrialdean"8 biteko tenporizadorea / kontagailua1 ATtiny15 moduan" aktibatuta 95. orrialdea"DebugWIREren mugak" 140. orrialdean150. orrialdeko “Kalibrazio Byte” eta taulan “Erloju prescaler Aukeratu ”33. orrialdean.

128 kHz-eko barne osziladorea

128 kHz barneko osziladorea potentzia baxuko osziladore bat da, 128 kHz-ko erlojua eskaintzen duena. Maiztasuna nominala da 3V eta 25°C-tan. Erloju hau sistemako erloju gisa hauta daiteke CKSEL Fusibleak "0100"-n programatuz.

Erlojuaren iturri hau hautatzen denean, abiarazteko denborak SUT fusibleek zehazten dituzte, irudian agertzen den moduan 6-9 taula.

6-9 taula. 128 kHz barneko osziladorearen abiarazte-orduak

SUT[1:0] Abiarazteko denbora itzaltzetik Berrezartzearen atzerapen osagarria Erabilera gomendatua
00 6 CK 14CK(1) BOD gaituta
01 6 CK 14CK + 4 ms Azkar igotzen den potentzia
10 6 CK 14CK + 64 ms Poliki-poliki igotzen ari den boterea
11 Erreserbatuta

Oharra: RSTDISBL fusiblea programatuta badago, abiarazte-denbora hau 14CK + 4 ms-ra igoko da programazio modua sar daitekeela ziurtatzeko.

Maiztasun baxuko kristal osziladorea

32.768 kHz-ko erloju kristala gailuaren erloju iturri gisa erabiltzeko, maiztasun baxuko kristal osziladorea hautatu behar da CKSEL fusibleak '0110' jarriz. Kristala irudian agertzen den moduan konektatu behar da 6-5 irudia. 32.768 kHz-ko krisi baterako karga-ahalmena egokia aurkitzeko, kontsultatu fabrikatzailearen fitxa.

Osziladore hau hautatzen denean, abiarazteko denborak SUT fusibleek zehazten dituzte, irudian agertzen den moduan 6-10 taula.

6-10 taula. Maiztasun baxuko kristal osziladorearen erlojuaren hautapenaren abiarazte-orduak

SUT[1:0] Abiarazteko denbora itzaltzetik Berrezartzetik atzerapen gehigarria (VCC = 5.0V) Gomendatutako erabilera
00 1K (1024) CK(1) 4 ms Bizkor igotzen den potentzia edo DBO gaituta
01 1K (1024) CK(1) 64 ms Poliki-poliki igotzen ari den boterea
10 32K (32768) CK 64 ms Maiztasun egonkorra abiaraztean
11 Erreserbatuta

Oharra: aukera hauek abiarazteko maiztasunaren egonkortasuna garrantzitsua ez bada soilik erabili behar dira.

Maiztasun baxuko kristal osziladoreak barne karga ahalmena eskaintzen du 6-11 taula TOSC pin bakoitzean.

6-11 taula. Maiztasun baxuko kristal osziladorearen kapazitatea

Gailua 32 kHz Osc. Mota Txapel (Xtal1 / Tosc1) Txapel (Xtal2 / Tosc2)
ATtiny25 / 45/85 Sistemaren Osc. 16 pF 6 pF

Kristalezko Osziladorea / Zeramika Resonator

XTAL1 eta XTAL2 inbertsio baten sarrera eta irteera dira, hurrenez hurren ampOn-Chip Osziladore gisa erabiltzeko konfiguratu daitekeen aztarnatzailea, atalean erakusten den moduan 6-5 irudia. Kuartzoko kristala edo zeramikazko erresonadorea erabil daitezke.

C1 eta C2 beti berdinak izan behar dira bai kristalentzat bai erresonatzaileentzat. Kondentsadoreen balio optimoa erabiltzen den kristalaren edo erresonagailuaren, kapazitate galduaren eta inguruneko zarata elektromagnetikoaren araberakoa da. Kristalekin erabiltzeko kondentsadoreak aukeratzeko hasierako jarraibide batzuk ematen dira 6-12 taula behean. Zeramika-erresonagailuetarako, fabrikatzaileak emandako kondentsadorearen balioak erabili behar dira.

6-12 taula. Kristal osziladorearen funtzionamendu-moduak

CKSEL[3:1] Maiztasuna Range (MHz) Gomendatutako gama C1 eta C2 kondentsadoreetarako kristalekin erabiltzeko (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

Oharrak: Aukera hau ez da kristalekin erabili behar, zeramikazko erresonatzaileekin bakarrik.

Osziladoreak hiru modu desberdinetan funtziona dezake, bakoitza maiztasun tarte jakin baterako optimizatuta. Funtzionamendu modua CKSEL [3: 1] fusibleek hautatzen dute irudian agertzen den moduan 6-12 taula.

CKSEL0 fusibleak SUT [1: 0] fusibleekin batera martxan jartzeko orduak hautatzen ditu irudian 6-13 taula.

6-13 taula. Kristalezko Osziladorearen Erlojuaren Hautaketa abiarazteko orduak

CKSEL0 SUT[1:0] Abiarazteko denbora itzaltzetik Berrezartzearen atzerapen osagarria Erabilera gomendatua
0 00 258 CK(1) 14CK + 4 ms Zeramikako erresonadorea, azkar igotzen den potentzia
0 01 258 CK(1) 14CK + 64 ms Zeramika erresonatzailea, poliki-poliki igotzen den potentzia
0 10 1K (1024) CK(2) 14CK Zeramikako erresonadorea, BOD gaituta
0 11 1K (1024) CK(2) 14CK + 4 ms Zeramikako erresonadorea, azkar igotzen den potentzia
1 00 1K (1024) CK(2) 14CK + 64 ms Zeramika erresonatzailea, poliki-poliki igotzen den potentzia
1 01 16K (16384) CK 14CK Kristalezko Osziladorea, BOD gaituta
1 10 16K (16384) CK 14CK + 4 ms Kristalezko osziladorea, azkar igotzen den potentzia
1 11 16K (16384) CK 14CK + 64 ms Kristalezko osziladorea, poliki-poliki igotzen den potentzia

Oharrak

Aukera hauek gailuaren gehieneko maiztasunetik gertu ez dabilenean bakarrik erabili behar dira eta aplikazioan abiaraztean maiztasun egonkortasuna garrantzitsua ez bada bakarrik. Aukera hauek ez dira egokiak kristaletarako.

Aukera hauek zeramika erresonagailuekin erabiltzeko pentsatuta daude eta abiaraztean maiztasun egonkortasuna bermatuko dute. Kristalekin ere erabil daitezke gailuaren gehieneko maiztasunetik gertu funtzionatzen ez dutenean, eta abiaraztean maiztasun egonkortasuna garrantzitsua ez bada aplikaziorako.

Erlojuaren iturburu lehenetsia

Gailua CKSEL = "0010", SUT = "10" eta CKDIV8 programatuta bidaltzen da. Erloju-iturburuaren ezarpen lehenetsia, beraz, Barneko RC Osziladorea da 8 MHz-n exekutatzen dena, abiarazte-denbora luzeenarekin eta sistemaren hasierako erlojuaren 8ko aurre-eskala, 1.0 MHz-ko sistemako erlojuarekin. Ezarpen lehenetsi honek bermatzen du erabiltzaile guztiek nahi duten erloju-iturburuaren ezarpena egin dezaketela Sistema barne edo bolumen handiko bat erabiliztage Programatzailea.

Sistemaren erlojuaren prescaler

ATtiny25 / 45/85 sistemaren erlojua ezarpenaren arabera bana daiteke “CLKPR - Clock Prescale Register” 32. orrialdean. Ezaugarri hau energia-kontsumoa murrizteko erabil daiteke prozesatzeko potentzia eskakizuna txikia denean. Hau erloju-iturburu-aukera guztiekin erabil daiteke, eta PUZaren eta periferiko sinkrono guztien erloju-maiztasunari eragingo dio. clkI/O, clkADC, clkCPU eta clkFLASH faktore batez zatitzen dira, atalean erakusten den moduan. 6. orrialdeko 15-33 taula.

Aldaketa Ordua

Preskalagailuaren ezarpenen artean aldatzean, System Clock Prescaler-ek ziurtatzen du erlojuaren sisteman arazorik ez gertatzea eta tarteko maiztasunik ez izatea aurreko ezarpenari dagokion erlojuaren maiztasuna eta ezarpen berriari dagokion erlojuaren maiztasuna baino handiagoa dela.

Preskalagailua inplementatzen duen ripple-kontagailua zatitu gabeko erlojuaren maiztasunarekin funtzionatzen du, eta horrek PUZaren erlojuaren maiztasuna baino azkarragoa izan daiteke. Horregatik, ezin da preskalifikatzailearen egoera zehaztu - irakurgarria izango balitz ere, eta ezin da zehazki aurreikusi erloju zatiketa batetik bestera aldatzeko behar den denbora zehatza.

CLKPS balioak idazten direnetik, T1 + T2 eta T1 + 2 * T2 arteko denbora behar da erlojuaren maiztasun berria aktibo egon aurretik. Tarte horretan, 2 erloju ertz aktibo sortzen dira. Hemen, T1 aurreko erlojuaren aldia da, eta T2 preskalagailu ezarpen berriari dagokion aldia.

Erlojuaren irteera bufferra

Gailuak sistemaren erlojua CLKO pinean eman dezake (XTAL2 pin gisa erabiltzen ez denean). Irteera gaitzeko, CKOUT fusiblea programatu behar da. Modu hau egokia da txip erlojua sistemako beste zirkuitu batzuk gidatzeko erabiltzen denean. Kontuan izan erlojua ez dela berrezartzerakoan eta I / O pinaren funtzionamendu normala gailenduko dela metxa programatuta dagoenean. Barne RC Osziladorea, WDT Osziladorea, PLL eta kanpoko erlojua (CLKI) hauta daitezke erlojua CLKOn irteten denean. Kristalezko osziladoreak (XTAL1, XTAL2) ezin dira CLKO erlojuaren irteerarako erabili. System Clock Prescaler erabiltzen bada, sistemako erloju zatitua da irteera.

Erregistroaren deskribapena

OSCCAL - Osziladoreen kalibrazio erregistroa

Bit 7 6 5 4 3 2 1 0
0x31 CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 OSKALA
Irakurri/Idatzi R/W R/W R/W R/W R/W R/W R/W R/W

Bit 7: 0 - CAL [7: 0]: Osziladoreen kalibrazio balioa

Osziladorearen Kalibrazio Erregistroa Kalibratutako Barne RC Osziladorea mozteko erabiltzen da, prozesuaren aldaketak osziladorearen maiztasunetik kentzeko. Aldez aurretik programatutako kalibrazio-balioa automatikoki idazten da erregistro horretan txipa berrezartzean, Fabrikan kalibratutako maiztasuna atalean zehaztutako moduan 21. orrialdeko 2-164 taula. Aplikazioaren softwareak erregistro hau idatz dezake osziladorearen maiztasuna aldatzeko. Osziladorea maiztasunetara kalibratu daiteke atalean zehaztutako moduan 21. orrialdeko 2-164 taula. Barruti horretatik kanpoko kalibrazioa ez dago bermatuta.

Kontuan izan osziladore hau EEPROM eta Flash idazketa sarbideak denbora erabiltzen dela, eta idazketa denbora horiek horren arabera eragingo dute. EEPROM edo Flash idatzita badaude, ez kalibratu 8.8 MHz baino gehiago. Bestela, EEPROM edo Flash idazketak huts egin dezakete.

CAL7 bitak osziladorearen funtzionamendu-eremua zehazten du. Bit hau 0an jartzeak maiztasun tarte txikiena ematen du, bit hau 1ean jartzeak maiztasun tarte altuena ematen du. Bi maiztasun tarteak gainjarriak dira, hau da, OSCCAL = 0x7F ezarpenak OSCCAL = 0x80 baino maiztasun handiagoa ematen du.

CAL [6: 0] bitak hautatutako barrutiko maiztasuna sintonizatzeko erabiltzen dira. 0x00 ezarpenak tartean dagoen maiztasun txikiena ematen du eta 0x7F ezarpenak tartean maiztasun handiena ematen du.

MCUaren funtzionamendu egonkorra bermatzeko kalibrazio balioa txikitan aldatu behar da. Ziklo batetik bestera% 2 baino gehiagoko maiztasun aldaketak ezin du portaera desegokia eragin dezake. OSCCALen aldaketek ez dute 0x20 baino handiagoa izan behar kalibrazio bakoitzeko. Erlojuaren maiztasunean gertatzen diren aldaketetan MCUa berrezartzen dela ziurtatu behar da

6-14 taula. Barneko RC osziladorearen maiztasun-tartea

OSCCAL balioa Maiztasun baxuena tipikoa maiztasun nominalari dagokionez Maiztasun altuena maiztasun nominalari dagokionez
0x00 %50 %100
0x3F %75 %150
0x7F %100 %200

CLKPR - Clock Prescale Register

Bit 7 6 5 4 3 2 1 0
0x26 CLKPCE CLKPS3 CLKPS2 CLKPS1 CLKPS0 CLKPR
Irakurri/Idatzi R/W R R R R/W R/W R/W R/W

Hasierako balioa 0 0 0 0 Ikusi Bitaren deskribapena

Bit 7 - CLKPCE: Erlojuaren aldagailua aldatzeko aukera gaitzen da

CLKPCE bitak bat logikoan idatzi behar da CLKPS bitak aldatzea ahalbidetzeko. CLKPCE bitak CLKPR-ko beste bitak zero batera idazten direnean soilik eguneratzen da. CLKPCE hardwareak garbitu egiten du idatzi ondoren lau ziklo edo CLKPS bitak idazten direnean. CLKPCE bit-a berriz idazteak denbora-tarte horretan ez du denbora-tarte hori luzatzen, ezta CLKPCE bit-a garbitzen ere.

Bits 6: 4 - Res: Bits gordeak

Bit hauek ATtiny25 / 45/85 fitxategian gordetako bitak dira eta beti zero gisa irakurriko dira.

Bits 3: 0 - CLKPS [3: 0]: Clock Prescaler Aukeratu Bits 3 - 0

Bit hauek hautatutako erlojuaren iturriaren eta barneko sistemaren erlojuaren arteko zatiketa faktorea definitzen dute. Bit hauek exekuzio-denboran idatz daitezke, erlojuaren maiztasuna aldatzeko, aplikazioen eskakizunetara egokitzeko. Banatzaileak erloju maisuaren sarrera MCUra banatzen duenez, periferiko sinkrono guztien abiadura murriztu egiten da zatiketa faktorea erabiltzen denean. Zatiketa faktoreak hemen ematen dira 6-15 taula.

Erlojuaren maiztasunaren nahigabeko aldaketak ekiditeko, idazketa prozedura berezi bat jarraitu behar da CLKPS bitak aldatzeko:

Idatzi Clock Prescaler Change Enable (CLKPCE) bit bat eta beste bit guztiak CLKPR-n zerora.

Lau zikloren barruan, idatzi nahi duzun balioa CLKPS-n zero bat CLKPCE-n idazten duzun bitartean.

Etenak desgaitu egin behar dira preskalagailuaren ezarpena aldatzean, idazketa prozedura eten ez dadin.

CKDIV8 Fuseak CLKPS biten hasierako balioa zehazten du. CKDIV8 programatu gabe badago, CLKPS bitak "0000"-ra berrezarriko dira. CKDIV8 programatzen bada, CLKPS bitak "0011"-ra berrezartzen dira, abiaraztean zortzi zatiketa-faktorea emanez. Ezaugarri hau erabili behar da hautatutako erloju-iturburuak gailuaren maiztasun maximoa baino maiztasun handiagoa badu egungo funtzionamendu-baldintzetan. Kontuan izan edozein balio idatz daitekeela CLKPS bitetan CKDIV8 Fuse ezarpena edozein dela ere. Aplikazio-softwareak zatiketa-faktorea nahikoa dela ziurtatu behar du

aukeratutako erlojuaren iturburuak gailuaren gehieneko maiztasuna baino maiztasun handiagoa badu uneko funtzionamendu baldintzetan. Gailua CKDIV8 fusiblea programatuta dago.

6-15 taula. Erlojuaren aurreskaltzailea Hautatu

CLKPS3 CLKPS2 CLKPS1 CLKPS0 Erlojuaren zatiketa faktorea
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 Erreserbatuta
1 0 1 0 Erreserbatuta
1 0 1 1 Erreserbatuta
1 1 0 0 Erreserbatuta
1 1 0 1 Erreserbatuta
1 1 1 0 Erreserbatuta
1 1 1 1 Erreserbatuta

Oharra: aurreskaltzailea ATtiny15 bateragarritasun moduan desgaituta dago eta CLKPR-n idazteak, ez CKDIV8 fusiblea programatzeak ez du inolako eraginik sistemaren erlojuan (beti 1.6 MHz izango da).

Energiaren kudeaketa eta lo egiteko moduak

Errendimendu handiko eta sektoreko kodeen eraginkortasunak AVR mikrokontrolagailuak aukera ezin hobea bihurtzen du potentzia txikiko aplikazioetarako. Gainera, lo egiteko moduek aplikazioari MCUan erabili gabeko moduluak itzaltzea ahalbidetzen diote eta, horrela, energia aurrezten da. AVRak lo egiteko hainbat modu eskaintzen ditu erabiltzaileari energia kontsumoa aplikazioaren eskakizunetara egokitzeko.

Lo egiteko moduak

6. orrialdeko 1-23 irudia erloju sistema desberdinak eta horien banaketa ATtiny25 / 45/85 dokumentuan aurkezten ditu. Irudia lagungarria da lo egiteko modu egokia hautatzeko. 7-1 taula lo moduak eta esnatzeko iturriak erakusten ditu.

7-1 taula. Erlojuaren domeinu aktiboak eta esnatzeko iturriak lo modu desberdinetan

Erloju domeinu aktiboak Osziladoreak Esnatzeko iturriak
Lo modua clkCPU clkFLASH clkIO clkADC clkPCK Erlojuaren iturburu nagusia gaituta INT0 eta Pin Change SPM / EEPROM

Prest

 

USI Hasiera Baldintza

ADC Beste I/O batzuk Zakurra Eten
Geldirik X X X X X X X X X X
ADC Zarata Murriztea X X X(1) X X X X
Itzali X(1) X X

Oharra: INT0-rako, maila eten bakarra.

Hiru lo egiteko moduetako edozein sartzeko, MCUCR-ko SE bitak bat logikoan idatzi behar du eta SLEEP instrukzioa exekutatu behar da. MCUCR Erregistroan dauden SM [1: 0] bitak hautatzen du lo egiteko modua (Idle, ADC Zarata Murriztea edo Itzaltzea) SLEEP instrukzioaren bidez aktibatuko diren. Ikusi 7-2 taula laburpen bat lortzeko.

MCU lo moduan dagoen bitartean gaituta dagoen eten bat gertatzen bada, MCU esnatuko da. Ondoren, MCU abiarazteko denboraz gain lau ziklo gelditzen da, eten-errutina exekutatzen du eta SLEEP ondorengo instrukziotik exekutatzen hasten da. Erregistroaren edukia File eta SRAM ez dira aldatzen gailua lotik esnatzen denean. Lo moduan berrezartzen bada, MCU esnatzen da eta Berrezarri Bektoretik exekutatzen da.

Oharra: abiarazitako etenaldi bat erabiltzen bada esnatzeko, aldatutako maila denbora pixka bat mantendu behar dela MCUa esnatzeko (eta MCUak eten zerbitzuaren errutinan sartzeko). Ikusi “Kanpoko etenak” 49. orrialdean xehetasunetarako.

Modu inaktiboa

SM[1:0] bitak 00-n idazten direnean, SLEEP instrukzioak MCU inaktibo moduan sartzen du, CPUa geldituz baina konparatzaile analogikoa, ADC, USI, tenporizadore/kontagailua, Watchdog eta eten sistemak funtzionatzen jarraitzeko aukera emanez. jaten. Lo modu honek, funtsean, clkCPU eta clkFLASH geldiarazten ditu, beste erlojuak martxan jartzen uzten dituen bitartean.

Modu inaktiboari esker, MCUa kanpoko eragindako etenetatik nahiz Timer Overflow bezalako barrukoetatik esnatzeko aukera ematen du. Konparagailu analogikoaren etenalditik esnatzea beharrezkoa ez bada, konparagailu analogikoa itzali daiteke ACD bit-a ezarrita “ACSR - Konparagailu analogikoaren kontrola eta egoeraren erregistroa” 120. orrialdean. Modu inaktiboan energia kontsumoa murriztuko da. ADC gaituta badago, bihurketa automatikoki hasten da modu hau sartzen denean.

ADC Zarata Murrizteko Modua

SM[1:0] bitak 01ean idazten direnean, SLEEP instrukzioak MCUa ADC Zarata Murrizteko moduan sartuko du, CPUa geldituz baina ADC-ari, kanpoko etenei eta Watchdog-ari funtzionatzen jarraitzeko aukera emanez (gaituta badago). Lo modu honek clkI/O, clkCPU eta clkFLASH geldiarazten ditu, beste erlojuak martxan jartzen uzten dituen bitartean.

Horrek ADCren zarata ingurunea hobetzen du, bereizmen handiko neurketak ahalbidetuz. ADC gaituta badago, bihurketa automatikoki hasten da modu hau sartzen denean. ADC Conversion Complete etena ez ezik, Kanpoko berrezarpenak, Watchdog berrezarpenak, Brown-out berrezartzeak, SPM / EEPROM prest etenaldiak, kanpoko maila etenaldiak INT0an edo pin aldaketa etenek MCCa piztu dezakete ADC Zarata Murriztetik. Modu.

Itzali modua

SM [1: 0] bitak 10era idazten direnean, SLEEP instrukzioak MCU pizteko moduan sartzen du. Modu honetan, Osziladorea gelditu egiten da, kanpoko etenak, USI abiapuntuko egoeraren detekzioa eta Watchdog funtzionatzen jarraitzen duten bitartean (gaituta badago) Kanpoko berrezarpenak, zaintza-txakurren berrezartzeak, Brown-out berrezartzeak, USI abiapuntuen egoera eteteak, INT0 kanpoko maila etenak edo pin aldaketa eteteak soilik piztu dezakete MCUa. Lo modu honek sortutako erloju guztiak geldiarazten ditu, modulu asinkronoen funtzionamendua soilik ahalbidetuz.

Software BOD Desgaitu

Brown-out Detektagailua (BOD) aktibatuta dagoenean BODLEVEL fusibleek (ikus 20. orrialdeko 4-148 taula), BOD hornikuntza bolumenaren jarraipena aktiboki ari datage lo garaian. Gailu batzuetan energia aurreztea posible da BOD desaktibatuta softwarearen bidez Power-Down lo moduan. Lo-moduaren energia-kontsumoa fusibleek BOD globalki desgaitzen dutenean dagoen maila berean egongo da.

Softwareak BOD desgaitzen badu, BOD funtzioa desaktibatu egingo da lo moduan sartu eta berehala. Lotik esnatzean, BOD automatikoki gaituko da berriro. Honek funtzionamendu segurua bermatzen du loaldian VCC maila jaitsi bada.

BOD desgaituta dagoenean, lo egiteko modutik esnatzeko denbora RESET-etik esnatzeko bezalakoa izango da. Erabiltzaileak eskuz konfiguratu behar ditu esnatzeko orduak, banda-tartearen erreferentziak abiarazteko denbora izan dezan eta DBOa zuzen funtzionatzen duenean MCUk kodea exekutatzen jarraitu aurretik. Ikusi SUT [1: 0] eta CKSEL [3: 0] fusible bitak taulan “Fuse Low Byte” 149. orrialdean

BOD desgaitasuna MCU kontrol erregistroaren BODS (BOD Sleep) bitak kontrolatzen du, ikusi “MCUCR - MCU Kontrola Erregistratu ”37. orrialdean. Bit hau bat idaztean BOD itzaltzen da itzalita, zeroa idaztean BOD aktibo mantentzen da. Ezarpen lehenetsia zero da, hau da, BOD aktiboa.

BODS bitean idaztea denborazko sekuentzia batek eta gaitze bit batek kontrolatzen dute, ikus “MCUCR - MCU Control Regis- ter ”37. orrialdean.

Mugak

BOD desgaitzeko funtzionalitatea gailu hauetan soilik ezarri da:

ATtiny25, E berrikuspena eta berriagoa

ATtiny45, D berrikuspena eta berriagoa

ATtiny85, C berrikuspena eta berriagoa

Berrikuspenak gailuaren paketean markatuta daude eta honela koka daitezke:

8P3 eta 8S2 paketeen beheko aldea

20M1 paketearen goiko aldea

Potentzia murrizteko erregistroa

Potentzia murrizteko erregistroa (PRR), ikus “PRR - Potentzia murrizteko erregistroa” 38. orrialdean, energia kontsumoa murrizteko metodoa eskaintzen du, erlojua periferiko bakoitzerako geldituz. Periferikoaren uneko egoera izoztuta dago eta I / O erregistroak ezin dira irakurri edo idatzi. Erlojua gelditzerakoan periferikoak erabilitako baliabideak okupatuta egongo dira; beraz, periferikoa kasu gehienetan desgaituta egon beharko litzateke erlojua gelditu aurretik. Modulu bat esnatzeak, PRR bit-ak garbituz egiten du, modulua itzali aurretik zegoen egoera berean jartzen du.

Modulua itzaltzea modu inaktiboan eta aktiboan erabil daiteke energia kontsumo orokorra nabarmen murrizteko. Lo egiteko beste modu guztietan, ordularia dagoeneko geldituta dago. Ikusi "I / O moduluen hornidura-korrontea" 177. orrialdean adibidezamples.

Energia kontsumoa minimizatzea

AVR kontrolatutako sistema batean energia kontsumoa minimizatzen saiatzerakoan kontuan hartu beharreko hainbat arazo daude. Oro har, lo egiteko moduak ahalik eta gehien erabili behar dira eta lo egiteko modua hautatu behar da gailuaren funtzioetatik ahalik eta gutxien funtziona dezaten. Behar ez diren funtzio guztiak desgaituta egon beharko lirateke. Bereziki, honako modulu hauek kontu berezia behar dute ahalik eta energia kontsumo txikiena lortu nahian.

Bihurgailu analogikoa digitala

Gaituta badago, ADC gaituta egongo da lo egiteko modu guztietan. Energia aurrezteko, ADC desgaituta egon behar da lo egiteko moduan sartu aurretik. ADC itzali eta pizten denean, hurrengo bihurketa bihurketa luzea izango da. Zerbaiti erreferentzia egin “Bihurgailu digitaletik analogikoa” 122. orrialdean ADC funtzionamenduari buruzko xehetasunak lortzeko.

Konparatzaile analogikoa

Modu inaktiboa sartzean, konparagailu analogikoa desgaitu egin behar da erabiltzen ez bada. ADC zarata murrizteko moduan sartzean, konparatzaile analogikoa desgaitu behar da. Lo egiteko beste moduetan, konparatzaile analogikoa automatikoki desgaituta dago. Hala ere, konparatzaile analogikoa barneko bolumena erabiltzeko konfiguratuta badagotage Erreferentzia sarrera gisa, konparatzaile analogikoa desgaitu behar da lo modu guztietan. Bestela, Barne Voltage Erreferentzia gaituta egongo da, lo modutik independentean. Zerbaiti erreferentzia egin “Konparatzaile analogikoa” 119 orrialdean Konparagailu analogikoa konfiguratzeko xehetasunetarako.

Brown-out detektagailua

Aplikazioan Brown-out Detektagailua behar ez bada, modulua desaktibatu beharko litzateke. BODLEVEL fusibleek Brown-out Detektagailua gaitzen badute, lo egiteko modu guztietan gaituko da eta, beraz, beti kontsumitzen da energia. Lo modu sakonenetan, horrek nabarmen lagunduko du uneko kontsumo osoa. Ikusi “Brown-out detekzioa zioa ”41. orrialdean eta "Software BOD Disable" 35. orrialdean Brown-out detektagailua konfiguratzeko moduari buruzko xehetasunak lortzeko.

Barne Voltage Erreferentzia

The Internal Voltage Erreferentzia aktibatu egingo da Brown-out-en detekzioa, Konparatzaile analogikoa edo ADC-k behar denean. Modulu hauek goiko ataletan deskribatzen den moduan desgaituta badaude, barruko voltagErreferentzia desgaitu egingo da eta ez du energia kontsumituko. Berriro pizten denean, erabiltzaileak erreferentzia abiarazten utzi behar du irteera erabili aurretik. Erreferentzia lo moduan mantentzen bada, irteera berehala erabil daiteke. Zerbaiti erreferentzia egin “Barne liburuatage Erreferentzia” 42. orrialdean abiarazteko denborari buruzko xehetasunak lortzeko.

Watchdog tenporizadorea

Aplikazioan Watchdog Tenporizadorea behar ez bada, modulua desaktibatu beharko litzateke. Watchdog tenporizadorea gaituta badago, lo egiteko modu guztietan gaituko da eta, beraz, beti kontsumitzen da energia. Lo modu sakonenetan, horrek nabarmen lagunduko du uneko kontsumo osoa. Zerbaiti erreferentzia egin "Watchdog Timer" 42. orrialdean Watchdog Tenporizadorea konfiguratzeko xehetasunetarako.

Portuko Pinak

Lo modu batean sartzean, ataka-pin guztiak konfiguratu behar dira potentzia minimoa erabiltzeko. Garrantzitsuena da, orduan, pinek ez dutela karga erresistenteak gidatzen ziurtatzea. I/O erlojua (clkI/O) eta ADC erlojua (clkADC) gelditzen diren lo moduetan, gailuaren sarrera-buffer-ak desgaitu egingo dira. Horrek energia kontsumitzen ez duela ziurtatzen du

sarrerako logikaren arabera beharrezkoa ez denean. Zenbait kasutan, sarrerako logika beharrezkoa da esnatzeko baldintzak detektatzeko eta

orduan gaituko da. Atalera jo "Sarrera digitala gaitzeko eta lo egiteko moduak" 57. orrialdean pin gaituta dauden xehetasunetarako. Sarrerako buffera gaituta badago eta sarrerako seinalea flotatzen uzten bada edo seinale analogiko maila VCC/2tik hurbil badago, sarrerako bufferak gehiegizko potentzia erabiliko du.

Sarrera analogikoko pinetarako, sarrera digitalaren buffer-a desgaitu behar da uneoro. Sarrerako pin batean VCC/2tik hurbil dagoen seinale analogiko maila batek korronte garrantzitsua sor dezake modu aktiboan ere. Sarrera digitalaren buffer-ak desgaitu daitezke Digital Input Disable Register (DIDR0) idatziz. Zerbaiti erreferentzia egin “DIDR0 - Sarrera digitala desgaitzeko erregistroa 0” 121. orrialdean xehetasunetarako.

Erregistroaren deskribapena

MCUCR - MCU Kontrol Erregistroa

MCU Kontrol Erregistroak energia kontrolatzeko kontrol bitak ditu.

Bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 GORPUTZA ISC01 ISC00 MCUCR
Irakurri/Idatzi R R/W R/W R/W R/W R R/W R/W
Hasierako balioa 0 0 0 0 0 0 0 0

Bit 7 - BODS: BOD Sleep

BOD desgaitzeko funtzionalitatea gailu batzuetan bakarrik dago erabilgarri. Ikusi 36. orrialdeko "Mugak".

Loaldian zehar DBO desgaitzeko (ikus 7. orrialdeko 1-34 taula) BODS bitak bat logikoan idatzi behar da. Hau kontrolatutako denbora-sekuentzia batek eta gaitze-bitak, BODSE MCUCR-en kontrolatzen dute. Lehenik eta behin, BODS eta BODSE bat izan behar dira. Bigarrenik, lau erloju zikloren barruan, BODS bat jarri behar da eta BODSE zeroan. BODS bit aktibo dago ezarri ondoren hiru erloju ziklo. Lo egiteko argibideak exekutatu behar dira BODS aktibo dagoen bitartean, benetako lo moduan BOD desaktibatzeko. BODS bit-a automatikoki garbitzen da hiru erloju zikloren ostean.

Sleeping BOD ezarri ez den gailuetan bit hau ez da erabiltzen eta beti zero irakurriko da.

5 bit - SE: Lo egiteko gaitu

SE bita bat logikora idatzi behar da MCUa lo moduan sartzeko SLEEP instrukzioa exekutatzen denean. MCUak lo moduan sartzea saihesteko, programatzailearen helburua ez bada, Sleep Enable (SE) bit bat idaztea gomendatzen da SLEEP instrukzioa exekutatu baino lehen eta berehala garbitzea esnatu eta berehala.

Bit 4: 3 - SM [1: 0]: Lo egiteko modua Aukeratu 1 eta 0 bitak

Bit hauek eskuragarri dauden lo egiteko moduen artean hautatzen dute irudian 7-2 taula.

7-2 taula. Lo egiteko modua Hautatu

SM1 SM0 Lo modua
0 0 Geldirik
0 1 ADC Zarata Murriztea
1 0 Itzali
1 1 Erreserbatuta

2 bit - BODSE: BOD Sleep Gaitu

BOD desgaitzeko funtzionalitatea gailu batzuetan bakarrik dago erabilgarri. Ikusi 36. orrialdeko "Mugak".

BODSE bitak BODS kontrol bitaren ezarpena gaitzen du, BODS bit deskribapenean azaltzen den moduan. BOD desgaitasuna denborazko sekuentzia batek kontrolatzen du.

Bit hau ez da erabiltzen BOD softwarearen desgaitasuna inplementatu ez den gailuetan eta zero gisa irakurriko da gailu horietan.

PRR - Potentzia murrizteko erregistroa

Potentzia murrizteko erregistroak energia kontsumoa murrizteko metodoa eskaintzen du, erloju periferikoen seinaleak desgaitzea ahalbidetuz.

Bit 7 6 5 4 3 2 1 0
0x20 PRIM1 PRIM0 PRUSI PRADC PRR
Irakurri/Idatzi R R R R R/W R/W R/W R/W
Hasierako balioa 0 0 0 0 0 0 0 0

Bits 7: 4 - Res: Bits gordeak

Bit hauek ATtiny25 / 45/85 fitxategian gordetako bitak dira eta beti zero gisa irakurriko dira.

Bit 3 - PRTIM1: Potentzia murrizteko tenporizadorea / kontagailua1

Bit honi logika bat idazteak Tenporizadorea / Kontagailua1 modulua itzaltzen du. Tenporizadorea / Kontagailua1 gaituta dagoenean, funtzionamenduak itzali aurretik bezala jarraituko du.

Bit 2 - PRTIM0: Potentzia murrizteko tenporizadorea / kontagailua0

Bit honi logika bat idazteak Tenporizadorea / Kontagailua0 modulua itzaltzen du. Tenporizadorea / Kontagailua0 gaituta dagoenean, funtzionamenduak itzali aurretik bezala jarraituko du.

Bit 1 - PRUSI: Potentzia Murrizteko USI

Bit honi logika bat idazteak USI itzaltzen du moduluko erlojua geldituz. USI berriro esnatzean, USI berriro abiarazi behar da funtzionamendu egokia ziurtatzeko.

Bit 0 - PRADC: Potentzia murrizteko ADC

Bit honi logika bat idazteak ADC itzaltzen du. ADC desaktibatu behar da itxi aurretik. Kontuan izan konparagailu analogikoaren zati batzuek ADC erlojua ere erabiltzen dutela eta horrek esan nahi du konparagailu analogikoa ezin dela erabili bit hau altua denean.

Sistemaren kontrola eta berrezarpena

AVR berrezartzea

Berrezartzerakoan, I / O erregistro guztiak hasierako balioetara ezartzen dira, eta programa berrezarri bektoretik hasten da exekutatzen. Berrezarri Bektoreetan jarritako instrukzioak RJMP - Salto erlatiboa - izan behar du berrezartzeko manipulazio errutinarako. Programak inoiz eten iturririk gaitzen ez badu, eten bektoreak ez dira erabiltzen, eta ohiko programa kodea koka daiteke toki horietan. Zirkuituaren diagrama 8-1 irudia berrezartzeko logika erakusten du. Berrezarri zirkuituaren parametro elektrikoak ematen dira “Sistemaren eta berrezarrien ezaugarriak” 165. orrialdean.

8-1 Irudia Berrezarri Logika Berrezarri logika

AVRaren I / O portuak berehala berrezartzen dira hasierako egoerara, berrezartzeko iturria aktibatzen denean. Horrek ez du erlojuaren iturririk behar exekutatzeko.

Berrezarri iturri guztiak inaktibo egon ondoren, atzerapen kontagailua deitzen da, barne berrezarpena luzatuz. Horrek potentzia maila egonkorra lortzea ahalbidetzen du funtzionamendu normala hasi aurretik. Atzeratze kontadorearen denbora-muga erabiltzaileak SUT eta CKSEL fusibleen bidez definitzen du erabiltzaileak. Atzerapen aldirako aukeraketa desberdinak hemen aurkezten dira “Erlojua Iturriak ”25. orrialdean.

Berrezarri iturriak

ATtiny25 / 45/85 telefonoak berrezartzeko lau iturri ditu:

Piztea berrezarri. MCUa berrezartzen da hornidura bolumeneantage Power-on Berrezarri atalasearen (VPOT) azpitik dago.

Kanpoko berrezarpena. MCUa berrezarri egiten da RESET pinean maila baxua dagoenean pultsuaren gutxieneko luzera baino luzeagoan.

Watchdog berrezartzea. MCUa berrezarri egiten da Watchdog Tenporizadorearen epea amaitu eta Watchdog gaituta dagoenean.

Brown-out Berrezarri. MCUa berrezartzen da hornidura bolumeneantage VCC Brown-out Berrezarri atalasearen (VBOT) azpitik dago eta Brown-out detektagailua gaituta dago.

Pizteko berrezarpena

On-chip Reset (POR) pultsua sortzen da txipean hautemateko zirkuitu batek. Urtean detekzio maila definitzen da “Sis- ten eta berrezarri ezaugarriak ”165. orrialdean. POR aktibatzen da VCC detekzio-mailaren azpitik dagoen bakoitzean. POR zirkuitua abiaraztearen berrezarpena abiarazteko erabil daiteke, baita hornidura bolumenaren hutsegite bat detektatzeko eretage.

Piztearen berrezarri (POR) zirkuitu batek gailua pizteatik berrezartzen dela ziurtatzen du. Pizteko Berrezarri atalasea iristea voltagAtzerapen-kontagailua deitzen du, gailua VCC igo ondoren zenbat denbora mantenduko den RESET-ean zehazten duena. RESET seinalea berriro aktibatzen da, inolako atzerapenik gabe, VCC detekzio-mailaren azpitik jaisten denean.

8-2 irudia. MCU martxan jartzea, VCC-ri lotuta

BARNE BERRIAK

8-3 irudia. MCU martxan jartzea, berrezarri kanpotik hedatua

Kanpoko berrezarpena

Kanpoko berrezarpena RESET pinean maila baxu batek sortzen du gaituta badago. Berrezarri pultsuen gutxieneko zabalera baino luzeagoak diren (ikus “Sistemaren eta berrezarrien ezaugarriak” 165. orrialdean) berrezarri bat sortuko du, erlojua martxan ez badago ere. Pultsu laburragoak ez daude berrezartzea berrezartzea. Aplikatutako seinalea Berrezarri Atalasea Voltage - VRST - bere ertz positiboan, atzerapen-kontagailuak MCU-a abiarazten du Denbora-muga epea igaro ondoren.

8-4 irudia. Kanpoko berrezarri funtzionamenduan zehar 8.4. irudia

Brown-out detekzioa

ATtiny25/45/85-ek On-Chip Brown-out Detection (BOD) zirkuitu bat du funtzionamenduan zehar VCC maila kontrolatzeko, abiarazte-maila finko batekin alderatuz. BOD-aren abiarazle-maila BODLEVEL Fusibleek hauta dezakete. Abiarazle-mailak histeresia du marroi-out-detekzioa bermatzeko. Detekzio mailaren histeresia VBOT+ = VBOT + VHYST/2 eta VBOT- = VBOT – VHYST/2 gisa interpretatu behar da.

BOD gaituta dagoenean eta VCC abiarazte-mailaren azpiko balio batera jaisten denean (VBOT-in 8-5 irudia), Brown-out Berrezarri berehala aktibatzen da. VCC abiarazte-mailaren gainetik hazten denean (VBOT+ sartu 8-5 irudia), atzerapen-kontagailuak MCU-a abiarazten du tTOUT Denbora-muga epea igaro ondoren.

BOD zirkuituak VCCren jaitsiera bat bakarrik hautemango du boltage trigger-mailaren azpitik geratzen da emandako tBOD baino denbora gehiagoz “Sistemaren eta berrezarrien ezaugarriak” 165. orrialdean. 8.5. irudia

Watchdog berrezartzea

Watchdog denbora amaitzen denean, CK ziklo bateko iraupeneko berrezartze pultsu laburra sortuko du. Pultsu honen beheranzko ertzean, atzerapen-tenporizadorea Time-out-aldia tTOUT zenbatzen hasten da. Zerbaiti erreferentzia egin "Watchdog Timer" 42. orrialdean Watchdog Tenporizadorearen funtzionamenduari buruzko xehetasunak ikusteko.

liburukiatage Erreferentzia Gaitzeko Seinaleak eta Abiarazteko Ordua

LiburukiatagErreferentziak abiarazte-denbora du eta horrek erabiltzeko moduan eragin dezake. Abiarazteko ordua ematen da “Sistemaren eta berrezarrien ezaugarriak” 165. orrialdean. Energia aurrezteko, erreferentzia ez da beti aktibatuta. Erreferentzia aktibo dago egoera hauetan:

BOD gaituta dagoenean (BODLEVEL [2: 0] Fuse Bits programatuta).

Bandgap erreferentzia konparagailu analogikora konektatzen denean (ACBG bit ACSR-n ezarriz).

ADC gaituta dagoenean.

Horrela, DBO gaituta ez dagoenean, ACBG bit-a ezarri edo ADC gaitu ondoren, erabiltzaileak beti utzi behar du erreferentzia abiarazteko Konparagailu analogikotik edo ADC-rako irteera erabili aurretik. Itzali moduko potentzia kontsumoa murrizteko, erabiltzaileak goiko hiru baldintzak saihestu ditzake Itzali modura sartu aurretik erreferentzia itzalita dagoela ziurtatzeko.

Watchdog tenporizadorea

Watchdog tenporizadorea 128 kHz-tan funtzionatzen duen txipeko osziladore batetik erlojua da. Watchdog Timer preskalagailua kontrolatuta, Watchdog berrezartzeko tartea egokitu daiteke irudian agertzen den moduan 8. orrialdeko 3-46 taula. WDR - Watchdog Reset - instrukzioak Watchdog Timer berrezartzen du. Watchdog Tenporizadorea berrezarri egiten da desgaituta dagoenean eta txipa berrezartzea gertatzen denean. Erlojuaren zikloaren hamar aldi desberdin hauta daitezke berrezartzeko epea zehazteko. Berrezartzeko epea zaindariaren beste berrezarpenik gabe iraungitzen bada, ATtiny25 / 45/85 berrezarri eta berrezarri egingo da Berrezarri bektoretik. Watchdog berrezartzeari buruzko denborari buruzko xehetasunak ikusteko, ikusi 8. orrialdeko 3-46 taula.

Watchdog Tenporizadorea berrezarri ordez eten bat sortzeko konfigura daiteke. Hau oso lagungarria izan daiteke Watchdog erabiltzea itzaltzetik esnatzeko.

Watchdog nahigabe desgaitzea edo nahi gabeko denbora-tartea aldatzea saihesteko, bi segurtasun maila desberdin hautatzen dira WDTON fusibleak erakusten duen moduan 8-1 taula Aipatu “Kontua aldatzeko denborazko sekuentziak Watchdog Timer-en figurazioa ”43. orrialdean xehetasunetarako.

8-1 taula. WDT konfigurazioa WDTON-en fusible ezarpenen funtzio gisa

WDTON Segurtasun Maila WDT Hasierako Egoera Nola desgaitu WDT Nola aldatu denbora muga
Programatu gabea 1 Ezindua Denborazko sekuentzia Mugarik ez
Programatua 2 Gaituta Beti gaituta Denborazko sekuentzia

8-7 irudia. Watchdog tenporizadorea Zakurra

Watchdog tenporizadorearen konfigurazioa aldatzeko denborazko sekuentziak

Konfigurazioa aldatzeko sekuentzia zertxobait desberdina da bi segurtasun mailen artean. Maila bakoitzerako prozedura bereiziak deskribatzen dira.

Segurtasun-maila 1: Modu honetan, Watchdog Tenporizadorea desgaituta dago hasieran, baina WDE bit bat batean idatziz gaitu daiteke inolako murrizketarik gabe. Gaitutako Watchdog Tenporizadore bat desgaitzen denean sekuentzia tenporizatu bat behar da. Gaitutako Watchdog tenporizadore bat desgaitzeko, prozedura hau jarraitu behar da:

Eragiketa berean, idatzi bat logikoa WDCE-ri eta WDE-ri. Logika bat WDEri idatzi behar zaio WDE bitaren aurreko balioa kontuan hartu gabe.

Hurrengo lau erloju zikloen barruan, eragiketa berean, idatzi WDE eta WDP bitak nahi bezala, baina WDCE bit garbituta.

Segurtasun-maila 2: Modu honetan, Watchdog Tenporizadorea beti gaituta dago, eta WDE bit-a beti bezala irakurriko da. Denbora-sekuentzia bat behar da Watchdog Denbora-muga-aldia aldatzean. Watchdog Denbora-muga aldatzeko, prozedura hau jarraitu behar da:

Eragiketa berean, idatzi logikoa WDCE-ri eta WDE-ri. WDE beti ezarrita badago ere, WDE bat idatzi behar zaio denbora-sekuentzia hasteko.

Hurrengo lau erloju zikloen barruan, eragiketa berean, idatzi WDP bitak nahi bezala, baina WDCE bit garbituta. WDE bitean idatzitako baloreak ez du garrantzirik.

Kodea Adibample

Hurrengo kodea adibidezample-ek muntaketa bat eta C funtzio bat erakusten ditu WDTa itzaltzeko. Adibampetenaldiak kontrolatzen direla suposatzen du (adibidez, etenaldiak orokorrean desgaituz), funtzio hauek exekutatzen diren bitartean etenik gertatuko ez dadin.

Muntaketa Kodea Adibample(1)
WDT_off:

wdr

; Garbitu WDRF MCUSR-n

ldi r16, (0<

atera MCUSR, r16

; Idatzi logikoa WDCE-ri eta WDE-ri

; Mantendu prescaler ezarpen zaharra nahi gabeko zaindariaren berrezarpena saihesteko

r16n, WDTCR

ori r16, (1<

atera WDTCR, r16

; Desaktibatu WDT

ldi r16, (0<

atera WDTCR, r16

ret

C kodea Adibample(1)
hutsik WDT_off(hutsik)

{

_WDR ();

/* Garbitu WDRF MCUSR-n */ MCUSR = 0x00

/* Idatzi logikoa WDCE eta WDE-ri */ WDTCR |= (1<

/ * Desaktibatu WDT * / WDTCR = 0x00;

}

Oharra: 1. Ikus “Kodea Adibamples” 6. orrialdean.

Erregistroaren deskribapena

MCUSR - MCU Status Register

MCU Egoera Erregistroan informazioa berrezartzeko iturburuak MCU berrezartzea eragin duen informazioa ematen du.

Bit 7 6 5 4 3 2 1 0
0x34 WDRF BORF EXTRF PORF MCUSR
Irakurri/Idatzi R R R R R/W R/W R/W R/W

Hasierako balioa 0 0 0 0 Ikusi Bitaren deskribapena

Bits 7: 4 - Res: Bits gordeak

Bit hauek ATtiny25 / 45/85 fitxategian gordetako bitak dira eta beti zero gisa irakurriko dira.

Bit 3 - WDRF: Watchdog berrezartzeko bandera

Bit hau zaindariaren berrezarpena gertatzen bada ezartzen da. Bit-a berrezarri egiten da pizteko berrezarpen baten bidez edo bandera zero logiko bat idatziz.

2 bit - BORF: Brown-out berrezartzeko bandera

Bit hau ezartzen da Brown-out Reset gertatzen bada. Bit-a berrezarri egiten da pizteko berrezarpen baten bidez edo bandera zero logiko bat idatziz.

Bit 1 - EXTRF: Kanpoko berrezarpen bandera

Bit hau Kanpoko berrezarpena gertatzen bada ezartzen da. Bit-a berrezarri egiten da pizteko berrezarpen baten bidez edo bandera zero logiko bat idatziz.

0 bit - PORF: pizteko berrezarpen bandera

Bit hau pizteko berrezarpena gertatzen bada ezartzen da. Bita berrezarri egiten da bandera zero logikoa idatziz.

Berrezarri banderak berrezartzeko egoera identifikatzeko, erabiltzaileak irakurri eta gero berrezarri beharko du MCUSR programan lehenbailehen. Erregistroa beste berrezarpen bat gertatu baino lehen garbitzen bada, berrezartzeko iturria Berrezarri banderak aztertuz aurki daiteke.

WDTCR - Watchdog Timer Control Register

Bit 7 6 5 4 3 2 1 0
0x21 WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0 WDTCR
Irakurri/Idatzi R/W R/W R/W R/W R/W R/W R/W R/W
Hasierako balioa 0 0 0 0 X 0 0 0

Bit 7 - WDIF: Watchdog Timeout Interrupt Flag

Bit hau Watchdog Tenporizadorean denbora-muga gertatzen denean eta Watchdog Timer etenaldirako konfiguratuta dagoenean ezartzen da. WDIF hardwareak garbitzen du dagokion etenen tratamendu bektorea exekutatzean. Bestela, WDIF banderari logika bat idatziz garbitzen da. SREG eta WDIE I bitak ezartzen direnean, Watchdog Time-Out Interrupt exekutatzen da.

Bit 6 - WDIE: Watchdog Timeout Interrupt Gaitu

Bit hau bat idazten denean, WDE garbitu egiten da eta Egoera Erregistroan I-bit ezartzen da, Watchdog Time-Out Interrupt aktibatuta dago. Modu honetan dagokion etena berrezarri ordez exekutatzen da Watchdog Tenporizadorearen denbora-muga gertatzen bada.

WDE ezarrita badago, WDIE automatikoki garbituko du hardwareak denbora-muga gertatzen denean. Hau erabilgarria da Watchdog Reset segurtasuna mantentzeko etena erabiltzen ari zaren bitartean. WDIE bit-a garbitu ondoren, hurrengo denbora-mugak berrezarpena sortuko du. Watchdog Reset saihesteko, etenaldi bakoitzaren ondoren WDIE ezarri behar da.

8-2 taula. Watchdog tenporizadorearen konfigurazioa

WDE WDIE Watchdog tenporizadorearen egoera Ekintza Time-out-ean
0 0 Gelditu Bat ere ez
0 1 Korrika Eten
1 0 Korrika Berrezarri
1 1 Korrika Eten

Bit 4 - WDCE: Watchdog Aldaketa Gaitu

Bit hau WDE bit-a zero logikoan idazten denean ezarri behar da. Bestela, Watchdog ez da desgaituko. Batean idatzi ondoren, hardwareak bit hori garbituko du lau erloju zikloen ondoren. Ikus WDE bitaren deskribapena Watchdog desgaitzeko prozedura lortzeko. Bit hau aurrez birziklatzeko bitak aldatzean ere ezarri behar da. Ikusi “Sekuentzia Tenporizatuak Watchdog tenporizadorearen konfigurazioa aldatzeagatik ”43. orrialdean.

Bit 3 - WDE: Watchdog Gaitu

WDE logika batean idazten denean, Watchdog Timer gaituta dago, eta WDE zero logikoan idazten bada, Watchdog Timer funtzioa desgaituta dago. WDE WDCE bitak maila logikoa badu soilik garbitu daiteke. Gaituta dagoen Watchdog tenporizadorea desgaitzeko, prozedura hau jarraitu behar da:

Eragiketa berean, idatzi bat logikoa WDCE-ri eta WDE-ri. Logika bat idatzi behar da WDEn, desgaitasuna eragiketa hasi aurretik bat ezarrita badago ere.

Hurrengo lau erloju zikloetan, idatzi 0 logikoa WDEri. Horrek Watchdog desgaitzen du.

2. segurtasun mailan, ezin da Watchdog Timer desgaitu, goian deskribatutako algoritmoarekin ere. Ikusi "Watchdog tenporizadorearen konfigurazioa aldatzeko denborazko sekuentziak" 43. orrialdean.

1. segurtasun-mailan, WDE-k WDRF gailentzen du MCUSR-n. Ikusi “MCUSR - MCU Status Register” 44. orrialdean WDRF deskribapena lortzeko. Horrek esan nahi du WDE beti ezartzen dela WDRF ezartzen denean. WDE garbitzeko, WDRF garbitu behar da goian deskribatutako prozedurarekin Watchdog desgaitu aurretik. Ezaugarri honek berrezarpen anitzak bermatzen ditu hutsegitea eragiten duten egoeretan eta huts egin ondoren abiarazte segurua izatea.

Oharra: Watchdog tenporizadorea aplikazioan erabiliko ez bada, garrantzitsua da watchdog desgaitzeko prozedura bat egitea gailua hasieratzeko. Watchdog ustekabean gaituta badago, adibidezampErakusle iheskor baten edo marroi-egoeraren arabera, gailua berrezarri egingo da, eta horrek, aldi berean, watchdog berrezarri berri bat ekarriko du. Egoera hori saihesteko, aplikazio-softwareak WDRF bandera eta WDE kontrol-bita garbitu behar ditu beti hasierako errutinan.

5, 2: 0 bitak - WDP [3: 0]: Watchdog Timer Prescaler 3, 2, 1 eta 0

WDP [3: 0] bitak zaindariaren tenporizadorea zehazten du zaindariaren tenporizadorea gaituta dagoenean. Atalean aurrez zehaztutako balio desberdinak eta dagozkien denbora-mugak erakusten dira 8-3 taula.

8-3 taula. Watchdog Tenporizadorea Aurre-eskala Hautatu

WDP3 WDP2 WDP1 WDP0 WDT osziladore zikloen kopurua Denbora-muga tipikoa VCC-n = 5.0V
0 0 0 0 2K (2048) zikloak 16 ms
0 0 0 1 4K (4096) zikloak 32 ms
0 0 1 0 8K (8192) zikloak 64 ms
0 0 1 1 16K (16384) zikloak 0.125 s
0 1 0 0 32K (32764) zikloak 0.25 s
0 1 0 1 64K (65536) zikloak 0.5 s
0 1 1 0 128K (131072) zikloak 1.0 s
0 1 1 1 256K (262144) zikloak 2.0 s
1 0 0 0 512K (524288) zikloak 4.0 s
1 0 0 1 1024K (1048576) zikloak 8.0 s

8-3 taula. Watchdog tenporizadorearen aurre-eskala hautatzea (jarraipena)

WDP3 WDP2 WDP1 WDP0 WDT osziladore zikloen kopurua Denbora-muga tipikoa VCC-n = 5.0V
1 0 1 0 Erreserbatuta(1)
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

Oharra: 1. Hautatzen bada, 0b1010 azpian dagoen baliozko ezarpenetako bat erabiliko da.

interrupzio

Atal honetan ATtiny25 / 45/85 dokumentuan egindako etenen tratamenduaren berezitasunak deskribatzen dira. AVR etenen tratamenduaren azalpen orokorra lortzeko, ikus "Berrezarri eta eten manipulazioa" 12. orrialdean.

Eten bektoreak ATtiny25 / 45/85

Atalean deskribatzen dira ATtiny25 / 45/85 9-1 taulabehean.

9-1 taula. Berrezarri eta Eten Bektoreak

Bektore zk. Programaren helbidea Iturria Eten Definizioa
1 0x0000 Berrezarri Kanpoko pin-a, pizteko berrezarpena, Brown-out berrezartzeko, Watchdog berrezartzeko
2 0x0001 INT0 Kanpoko eten eskaera 0
3 0x0002 PCINT0 Pin aldaketa eten eskaera 0
4 0x0003 TIMER1_COMPA Tenporizadorea / Kontagailua1 Alderatu A partida
5 0x0004 TIMER1_OVF Tenporizadorea / Counter1 gainezkatzea
6 0x0005 TIMER0_OVF Tenporizadorea / Counter0 gainezkatzea
7 0x0006 EE_RDY EEPROM prest
8 0x0007 ANA_COMP Konparatzaile analogikoa
9 0x0008 ADC ADC bihurketa osoa
10 0x0009 TIMER1_COMPB Tenporizadorea / Kontagailua1 Alderatu B partida
11 0x000A TIMER0_COMPA Tenporizadorea / Kontagailua0 Alderatu A partida
12 0x000B TIMER0_COMPB Tenporizadorea / Kontagailua0 Alderatu B partida
13 0x000C WDT Watchdog denbora-muga
14 0x000D USI_START USI HASI
15 0x000E USI_OVF USI gainezkapena

Programak inoiz eten iturririk gaitzen ez badu, eten bektoreak ez dira erabiltzen, eta ohiko programa kodea koka daiteke toki horietan.

ATtiny25/45/85-en eten-bektore-helbideen konfigurazio tipiko eta orokor bat ex programan erakusten da.ample behean.

Muntaketa Kodea Adibample
.org 0x0000 ; Ezarri hurrengoaren helbidea adierazpena
rjmp berrezarri ; Helbidea 0x0000
rjmp INT0_ISR ; Helbidea 0x0001
rjmp PCINT0_ISR ; Helbidea 0x0002
rjmp TIM1_COMPA_ISR ; Helbidea 0x0003
rjmp TIM1_OVF_ISR ; Helbidea 0x0004
rjmp TIM0_OVF_ISR ; Helbidea 0x0005
rjmp EE_RDY_ISR ; Helbidea 0x0006
rjmp ANA_COMP_ISR ; Helbidea 0x0007
rjmp ADC_ISR ; Helbidea 0x0008
rjmp TIM1_COMPB_ISR ; Helbidea 0x0009
rjmp TIM0_COMPA_ISR ; Helbidea 0x000A
rjmp TIM0_COMPB_ISR ; Helbidea 0x000B
rjmp WDT_ISR ; Helbidea 0x000C
rjmp USI_START_ISR ; Helbidea 0x000D
rjmp USI_OVF_ISR ; Helbidea 0x000E
RESET ; Programa nagusia hasteko
; Helbidea 0x000F

Oharra: Ikus “Kodea Adibamples” 6. orrialdean.

Kanpoko etenak

Kanpoko etenak INT0 pinak edo PCINT [5: 0] pinak eragindakoak dira. Kontuan izan, gaituta badago, etenaldiak abiaraziko direla INT0 edo PCINT [5: 0] pinak irteera gisa konfiguratuta badaude ere. Ezaugarri honek software etena sortzeko modua eskaintzen du. Pin aldaketak PCI eten egingo du gaituta dagoen PCINT [5: 0] pinak aktibatzen badira. PCMSK Erregistroak pinak pin aldaketa eteten laguntzen duten kontrolatzen du. PCINTen [5: 0] pin aldaketa etenaldiak modu asinkronoan hautematen dira. Horrek esan nahi du etenaldi hauek pieza esna egiteko erabil daitezkeela, modu inaktiboaz gain.

INT0 etenak erortzeko edo igotzeko ertzak edo maila baxuak eragin ditzakete. Hau MCU Kontrol Erregistroaren - MCUCR zehaztapenean adierazten den moduan konfiguratzen da. INT0 etena gaituta dagoenean eta maila aktibatuta dagoen moduan konfiguratuta dagoenean, etena aktibatuko da pin-a baxua mantenduz gero. Kontuan izan INT0-ean erortzeko edo igotzeko etenak aitortzeak I / O erloju bat egotea eskatzen duela deskribatuta "Clock Systems and their Distribution" aktibatuta 23. orrialdea.

Maila baxuko etena

INT0n maila baxuko etenaldi bat modu asinkronoan hautematen da. Horrek esan nahi du etenaldi hau pieza esna egiteko erabil daitekeela modu inaktiboaz gain. I / O erlojua lo egiteko modu guztietan gelditzen da, modu inaktiboan izan ezik.

Kontuan izan maila abiarazitako eten bat erabiltzen bada Power-downetik esnatzeko, behar den mailari eutsi behar zaiola MCUak esnatzea osatzeko, maila etenaldia abiarazteko. Hasierako Denbora amaitu baino lehen maila desagertzen bada, MCUa esnatuko da oraindik, baina ez da etenik sortuko. Abiarazteko denbora SUT eta CKSEL Fusibleek definitzen dute atalean deskribatzen den moduan “Sistemaren erlojua eta erlojuaren aukerak” 23. orrialdean.

Gailua esnatu aurretik eten pinaren maila baxua kentzen bada, orduan programaren exekuzioa ez da eten zerbitzuaren errutinara desbideratuko, SLEEP komandoaren ondorengo jarraibidetik jarraituko du.

Pin aldaketa etenen denbora

ExampPin-a aldatzeko etenaren denboraren fitxategia agertzen da 9-1 irudia.

Erregistroaren deskribapena

MCUCR - MCU Kontrol Erregistroa

A Kanpoko Etenen Kontrol Erregistroan etenak zentzatzeko kontrolerako kontrol-bitak daude.

Bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 GORPUTZA ISC01 ISC00 MCUCR
Irakurri/Idatzi R R/W R/W R/W R/W R R/W R/W
Hasierako balioa 0 0 0 0 0 0 0 0

Bits 1: 0 - ISC0 [1: 0]: Eten zentzumenen kontrola 0 Bit 1 eta Bit 0

Kanpoko etena 0 kanpoko INT0 pinak aktibatzen du SREG I bandera eta dagokion eten maskara ezarrita badaude. Etenaldia aktibatzen duten kanpoko INT0 pineko maila eta ertzak hemen definitzen dira 9-2 taula. INT0 pinaren balioa s daampled ertzak detektatu aurretik. Ertza edo txandakako etenaldia hautatzen bada, erloju-aldi bat baino gehiago irauten duten pultsuek eten bat sortuko dute. Pultsu laburragoak ez dira bermatzen eten bat sortzea. Maila baxuko etenaldia hautatzen bada, maila baxuari eutsi behar zaio unean exekutatzen ari den instrukzioa amaitu arte eten bat sortzeko.

9-2 taula. Eten 0 Zentzumen Kontrola

ISC01 ISC00 Deskribapena
0 0 INT0 maila baxuak eten eskaera sortzen du.
0 1 INT0-ren edozein aldaketa logikok eten eskaera sortzen du.
1 0 INT0-ren beherakadak eten eskaera sortzen du.
1 1 INT0 goranzko ertzak eten eskaera sortzen du.

GIMSK - Eten Maskara Erregistro Orokorra

Bit 7 6 5 4 3 2 1 0
0x3B INT0 PCIe GIMSK
Irakurri/Idatzi R R/W R/W R R R R R
Hasierako balioa 0 0 0 0 0 0 0 0

Bits 7, 4: 0 - Res: Bits gordeak

Bit hauek ATtiny25 / 45/85 fitxategian gordetako bitak dira eta beti zero gisa irakurriko dira.

Bit 6 - INT0: Kanpoko eten eskaera 0 gaituta

INT0 bit-a ezarrita dagoenean (bat) eta Egoera Erregistroan (SREG) I-bit ezarrita dagoenean (bat), kanpoko pin etena gaituta dago. MCUren Kontrol Erregistroan (MCUCR) Interrupt Sense Control0 bit 1/0 (ISC01 eta ISC00) definitzen dute kanpoko etena INT0 pinaren edo detektatutako mailaren ertz igotzean eta / edo jaitsieran aktibatzen den. Pinaren jarduerak eten eskaera eragingo du INT0 irteera gisa konfiguratuta badago ere. Kanpoko 0 eten eskaerari dagokion etena INT0 eten bektoretik exekutatzen da.

5. bit - PCIE: Pin aldaketa eten gaitzea

PCIE bit-a ezarrita dagoenean (bat) eta Egoera Erregistroan (SREG) I-bit ezartzen denean (bat), pin aldaketa etetea gaituta dago. Gaitutako edozein PCINT [5: 0] pin edozein aldaketak eten egingo du. Pin Aldaketa eten eskaerari dagokion etena PCI eten bektoretik exekutatzen da. PCINT [5: 0] pinak banaka gaitzen ditu PCMSK0 Erregistroak.

GIFR - Eten Bandera Erregistro Orokorra

Bit 7 6 5 4 3 2 1 0
0x3A INTF0 PCIF GIFR
Irakurri/Idatzi R R/W R/W R R R R R
Hasierako balioa 0 0 0 0 0 0 0 0

Bits 7, 4: 0 - Res: Bits gordeak

Bit hauek ATtiny25 / 45/85 fitxategian gordetako bitak dira eta beti zero gisa irakurriko dira.

Bit 6 - INTF0: Kanpoko eten bandera 0

INT0 pinaren ertz edo logika aldaketak eten eskaera bat eragiten duenean, INTF0 ezartzen da (bat). SREG-ko I-bit-a eta GIMSK-eko INT0 bit-a ezarrita badaude (bat), MCU-k dagokion eten bektorera salto egingo du. Bandera garbitu egiten da eten errutina exekutatzean. Bestela, bandera garbitu daiteke logikoa idatziz. Bandera hau beti ezabatzen da INT0 maila etenaldi gisa konfiguratzen denean.

5 bit - PCIF: Pin aldaketa eten bandera

Edozein PCINT [5: 0] pinetako logika aldaketa batek eten eskaera eragiten duenean, PCIF ezartzen da (bat). SREG-ko I-bit-a eta GIMSK-eko PCIE bit-a ezarrita badaude (bat), MCU-k dagokion eten bektorera salto egingo du. Bandera garbitu egiten da eten errutina exekutatzean. Bestela, bandera garbitu daiteke logikoa idatziz.

PCMSK - Pin Aldaketa Maskaren Erregistroa

Bit 7 6 5 4 3 2 1 0
0x15 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 PCMSK
Irakurri/Idatzi R R R/W R/W R/W R/W R/W R/W
Hasierako balioa 0 0 0 0 0 0 0 0

Bits 7: 6 - Res: Bits gordeak

Bit hauek ATtiny25 / 45/85 fitxategian gordetako bitak dira eta beti zero gisa irakurriko dira.

Bits 5: 0 - PCINT [5: 0]: Pin Aldaketa Gaitu Maskara 5: 0

PCINT [5: 0] bit bakoitzak hautatzen du pin aldaketa etetea dagokion I / O pinean gaituta dagoen ala ez. PCINT [5: 0] ezarrita badago eta GIMSK-n PCIE bit-a ezarrita badago, pin aldaketa etetea gaituta dago dagokion I / O pinean. PCINT [5: 0] ezabatzen bada, dagokion I / O pinean pin aldaketa etetea desgaituta egongo da.

I/O Portuak

Sarrera

AVR ataka guztiek benetako Irakurketa-Aldatu-Idazketa funtzionaltasuna dute I/O portu digital orokor gisa erabiltzen direnean. Horrek esan nahi du ataka bateko pin baten norabidea alda daitekeela SBI eta CBI argibideekin beste edozein pin baten norabidea nahi gabe aldatu gabe. Gauza bera aplikatzen da diskoaren balioa aldatzean (irteera gisa konfiguratuta badago) edo tira-erresistentziak gaitzen/desgaitzen (sarrera gisa konfiguratuta badago). Irteerako buffer bakoitzak disko-ezaugarri simetrikoak ditu, bai harraska eta iturri gaitasun handikoak. Pin kontrolatzailea nahikoa indartsua da LED pantailak zuzenean gidatzeko. Portu-pin guztiek banan-banan hauta daitezkeen tira-erresistentziak dituzte hornikuntza-bolarekintage erresistentzia aldaezina. I/O pin guztiek VCC eta Lurrera babesteko diodoak dituzte, atalean adierazi bezala 10-1 irudia. Aipatu "Ezaugarri elektrikoak" 161. orrialdean parametroen zerrenda osoa lortzeko.

10-1 irudia. I/O pin eskema baliokidea

10. irudia

Atal honetako erregistro eta bit-erreferentzia guztiak forma orokorrean idatzita daude. “x” minuskula batek atakaren zenbakizko letra adierazten du, eta “n” minuskula batek bit zenbakia adierazten du. Hala ere, programa batean erregistroa edo bit definituak erabiltzean, forma zehatza erabili behar da. Adibidezample, PORTB3 bit zk. 3 B portuan, hemen oro har PORTxn gisa dokumentatua. I/O Erregistro fisikoak eta bit-kokapenak hemen daude zerrendatuta "Erregistroaren deskribapena" aktibatuta 64. orrialdea.

Ataka bakoitzeko I / O memoria helbideen kokapenak banatzen dira, bana Datuen Erregistroa - PORTx, Datuen Zuzendaritza Erregistroa - DDRx eta Ataka Sarrera Pinak - PINx. Port Input Pins I / O kokapena soilik irakurtzen da, Datuen Erregistroa eta Datuen Zuzendaritza Erregistroa irakurri / idazten diren bitartean. Hala ere, PINx erregistroan logikako bit bat idaztean, datuen erregistroan dagokion bitean txandakatzea lortuko da. Horrez gain, Pull-up Disable - PUD bitak MCUCR-n portu guztietako pin guztietarako pull-up funtzioa desaktibatzen du konfiguratutakoan.

I / O ataka I / O digital orokor gisa erabiltzea atalean deskribatzen da "Portuak I / O digital orokor gisa" 53. orrialdean. Ataka-pin gehienak gailuko ezaugarri periferikoen ordezko funtzioekin multiplexatuta daude. Ordezko funtzio bakoitzak ataka-pinarekin nola interferitzen duen deskribatzen da hemen "Portu funtzio alternatiboak" 57. orrialdean. Modulu bakoitzaren ataletara jo, ordezko funtzioen deskribapen osoa lortzeko.

Kontuan izan portuko pin batzuen ordezko funtzioa gaitzeak ez duela eraginik portuko beste pinen erabileran I / S digital orokor gisa.

Portuak I / O digital orokor gisa

Portuak noranzko bikoitzeko I / O portuak dira, aukerako barne tiradak dituztenak. 10-2 irudia I / O ataka pin baten deskribapen funtzionala erakusten du, hemen Pxn deritzo generikoki.

10-2 irudia. I/O digital orokorra(1)

10. irudia

Pinaren konfigurazioa

Ataka-pin bakoitzak hiru erregistro-bit ditu: DDxn, PORTxn eta PINxn. Urtean erakusten den moduan "Erregistroaren deskribapena" aktibatuta 64. orrialdea, DDxn bitak DDRx I / O helbidean sartzen dira, PORTxn bitak PORTx I / O helbidean eta PINxn bitak PINx I / O helbidean.

DDRx Erregistroan dagoen DDxn bitak pin honen norabidea hautatzen du. DDxn bat logika idatzita badago, Pxn irteerako pin gisa konfiguratzen da. DDxn zero logikoa idatzita badago, Pxn sarrera pin gisa konfiguratzen da.

PORTxn logika bat idazten bada pin sarrera pin gisa konfiguratuta dagoenean, tira-erresistentzia aktibatzen da. Ateratzeko erresistentzia itzaltzeko, PORTxn zero logikoa idatzi behar da edo pin-a irteerako pin gisa konfiguratu behar da. Ataka-pinak hiru alditan zehazten dira berrezartzeko egoera aktibo dagoenean, erlojurik ez badago ere.

PORTxn bat logika idatzita badago pin irteerako pin gisa konfiguratuta dagoenean, portuko pin altua (bat) gidatzen da. PORTxn zero logikoa idazten bada pin irteerako pin gisa konfiguratuta dagoenean, portuko pin baxua (zero) gidatzen da.

Pin-a aktibatuta

PINxn-erako logika bat idazteak PORTxn-en balioa txandakatzen du, DDRxn-ren balioaren arabera. Kontuan izan SBI instrukzioa portu bateko bit bakarra txandakatzeko erabil daitekeela.

Sarrera eta irteera artean aldatzea

Tri-egoera ({DDxn, PORTxn} = 0b00) eta irteera altua ({DDxn, PORTxn} = 0b11) artean aldatzean, tarteko egoera bat, pull-up gaituta {DDxn, PORTxn} = 0b01) edo irteera baxua duena. ({DDxn, PORTxn} = 0b10) gertatu behar da. Normalean, pull-up gaituta dagoen egoera guztiz onargarria da, inpedente handiko ingurune batek ez baitu nabarituko goi-gidari indartsu baten eta pull-up baten arteko aldea. Horrela ez bada, MCUCR Erregistroko PUD bit-a ezar daiteke portu guztietan pull-up guztiak desgaitzeko.

Sarrera batetik bestera ateratzean eta irteeran baxua aldatzeak arazo bera sortzen du. Erabiltzaileak tri-egoera ({DDxn, PORTxn} = 0b00) edo irteerako egoera altua ({DDxn, PORTxn} = 0b10) erabili behar ditu tarteko urrats gisa.

10-1 taula pinaren balioaren kontrol-seinaleak laburbiltzen ditu.

10-1 taula. Portuko pin konfigurazioak

DDxn PORTxn PUD

(MCUCR-n)

I/O Tiraketa Iruzkina
0 0 X Sarrera Ez Triestatua (Hi-Z)
0 1 0 Sarrera Bai Pxn-ek korrontea sortuko du ext. baxu tiraka.
0 1 1 Sarrera Ez Triestatua (Hi-Z)
1 0 X Irteera Ez Irteera baxua (konketa)
1 1 X Irteera Ez Irteera altua (iturria)

Pin balioa irakurtzea

Datuen norabidearen DDxn bitaren ezarpenaren arabera, ataka pin PINxn Register bit bidez irakur daiteke. Urtean erakusten den moduan 10-2 irudia, PINxn Register bit-a eta aurreko latch-a sinkronizatzailea dira. Hori beharrezkoa da metastabilitatea ekiditeko pin fisikoak barruko erlojuaren ertzetik gertu aldatzen badu balioa, baina atzerapena ere sartzen du. 10-3 irudia sinkronizazioaren denbora-diagrama erakusten du kanpotik aplikatutako pin balio bat irakurtzean. Gehieneko eta gutxieneko hedapen-atzerapenak tpd,max eta tpd,min adierazten dira, hurrenez hurren.

Demagun sistemaren erlojuaren lehen erortzeko ertzetik gutxira hasten den erlojuaren aldia. Erlojua baxua dagoenean itxialdia itxita dago eta gardena bihurtzen da erlojua altu dagoenean, "SYNC LATCH" seinalearen itzaleko eskualdeak adierazten duen moduan. Seinalearen balioa blokeatuta dago sistemaren erlojua baxua denean. PINxn Erregistroan sartuko da ondorengo erlojuaren ertz positiboan. Bi geziak tpd, max eta tpd, min adierazten duten bezala, pinean seinale trantsizio bakarra atzeratuko da sistema erlojuaren erdi eta erdi artean, baieztapenaren arabera.

Softwarearen pinaren balioa irakurtzerakoan, nop instrukzioa sartu behar da atalean adierazitako moduan 10-4 irudia. Irteerako instrukzioak "SYNC LATCH" seinalea ezartzen du erlojuaren ertz positiboan. Kasu honetan, tpd atzerapena sinkronizatzailearen bidez sistemaren erloju aldi bat da.

Hurrengo kodea adibidezample-ek erakusten du nola ezarri B atakako pinak 0 eta 1 altua, 2 eta 3 baxua, eta 4. portuko pinak 5tik 4era nola definitzen dituen sarrera gisa XNUMX. atakako pinari esleitutako pull-up batekin. Ondoriozko pin balioak berriro irakurtzen dira, baina Lehen esan bezala, nop instrukzio bat sartzen da pin batzuei duela gutxi esleitutako balioa irakurri ahal izateko.

Muntaketa Kodea Adibample(1)

; Definitu pull-ups eta ezarri irteerak altua

; Definitu portuko pinentzako norabideak

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

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

atera PORTB,r16

atera DDRB,r17

; Txertatu nop sinkronizatzeko

ez

; Irakurri portuko pinak

r16n, PINB

Oharra: Muntaketa-programarako, aldi baterako bi erregistro erabiltzen dira pull-upetatik denbora gutxitzeko 0, 1 eta 4 pinetan ezartzen dira, norabide-bitak behar bezala ezarri arte, 2 eta 3 bitak baxu gisa definituz eta 0 eta birdefinituz. 1 goi-gidari indartsu gisa.

C kodea Adibample
sinatu gabeko char i;

/* Definitu pull-ups eta ezarri irteera altua */

/* Portuko pinetarako norabideak zehaztu */ PORTB = (1<

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

/* Txertatu nop sinkronizatzeko*/

_NOP ();

/* Irakurri ataka-pinak */ i = PINB;

Sarrera digitala gaitzeko eta lo egiteko moduak

atalean erakusten den bezala 10-2 irudia, sarrerako seinale digitala cl izan daitekeamped lurrera schmitt-trigger-aren sarreran. Irudian SLEEP adierazten den seinalea MCU Sleep Controller-ek ezartzen du itzali moduan, potentzia-kontsumo handia saihesteko, sarrerako seinale batzuk flotatzen uzten badira, edo seinale analogiko maila VCC/2-tik gertu badute.

SLEEP gainidazten da kanpoko eten pin gisa gaitutako ataka pinetarako. Kanpoko eten eskaera gaituta ez badago, SLEEP aktibo dago pin hauetarako ere. SLEEP atalean deskribatutako beste hainbat funtziok gainkargatzen dute "Portu funtzio alternatiboak" 57. orrialdean.

Maila altu logiko bat ("bat") badago kanpoko etenaldia gaituta ez dagoen bitartean "Etena goranzko ertzean, erortzen den ertzean edo pinean edozein aldaketa logiko" gisa konfiguratutako kanpoko etenaldi asinkronoaren pin batean, dagokion Kanpoko etenaren bandera izango da. goian aipatutako Sleep modutik berregitean ezarri behar da, clampLo modu hauetan egiteak eskatutako aldaketa logikoa sortzen du.

Konektatu gabeko pinak

Pin batzuk erabiltzen ez badira, pin horiek definitutako maila dutela ziurtatzea gomendatzen da. Nahiz eta sarrera digital gehienak goian deskribatutako lo modu sakonetan desgaituta egon, sarrera mugikorrak saihestu beharko lirateke sarrera digitalak gaituta dauden beste modu guztietan uneko kontsumoa murrizteko (Berrezarri, aktibo modua eta inaktibo moduan).

Erabiltzen ez den pin baten maila definitu bat ziurtatzeko metodorik errazena barne-tiroa gaitzea da. Kasu honetan, pull-up desgaitu egingo da berrezartzean. Berrezartzean energia-kontsumo baxua garrantzitsua bada, kanpoko pull-up edo pulldown bat erabiltzea gomendatzen da. Ez da gomendagarria erabiltzen ez diren pinak zuzenean VCC edo GNDra konektatzea, horrek gehiegizko korronteak eragin ditzakeelako pina ustekabean irteera gisa konfiguratuta badago.

Portu funtzio alternatiboak

Portuetako pin gehienek ordezko funtzioak dituzte I / S digital orokorrak izateaz gain. 10-5 irudia portuko pinak sinplifikatutako kontrolaren seinaleak erakusten ditu 10-2 irudia ordezko funtzioek gainidatz dezakete. Baliteke seinale nagusienak ez egotea ataka-pin guztietan, baina irudiak AVR mikrokontroladoreen familiako ataka-pin guztiei aplikatzeko deskribapen generiko gisa balio du.

10-2 taula. Ordezko funtzioetarako seinaleen deskribapen orokorra

Seinalearen izena Izen osoa Deskribapena
PUOE Pull-up Override Gaitu Seinale hau ezarrita badago, PUOV seinaleak kontrolatzen du ateratzeko gaitasuna. Seinale hau garbitzen bada, pull-up gaituta dago noiz

{DDxn, PORTxn, PUD} = 0b010.

PUOV Pull-up Gainidatzi balioa PUOE ezarrita badago, pull-up gaituta / desaktibatuta egongo da PUOV ezarrita / garbitzen denean, DDxn, PORTxn eta PUD Erregistro bitaren ezarpena edozein dela ere.
DDOE Datuen norabidea gainidazteko gaitu Seinale hau ezarrita badago, Irteerako kontrolatzailea gaitzea DDOV seinaleak kontrolatzen du. Seinale hau garbitzen bada, Irteerako kontrolatzailea DDxn Register bitaren bidez gaitzen da.
DDOV Datuen norabidea gainidatzearen balioa DDOE ezarrita badago, Irteerako kontrolatzailea gaituta / desaktibatuta egongo da DDOV ezartzen edo garbitzen denean, DDxn Erregistro bitaren ezarpena edozein dela ere.
PVOE Ataka balioa gainidazteko gaitu Seinale hau ezarrita badago eta Irteerako kontrolatzailea gaituta badago, ataka balioa PVOV seinaleak kontrolatzen du. PVOE garbitu eta Irteerako kontrolatzailea gaituta badago, ataka balioa PORTxn Register bit kontrolatzen da.
PVOV Ataka balioa gainidatzi balioa PVOE ezarrita badago, ataka balioa PVOV gisa ezartzen da, PORTxn Erregistro bitaren ezarpena edozein dela ere.
PTOE Portu txandakatu gainidazketa gaitu PTOE ezarrita badago, PORTxn Register bit alderantzikatuko da.
DIEOE Sarrera Digitala Gaitu Gainidazteko Gaitu Bit hau ezarrita badago, Sarrera Digitala Gaitzeko DIEOV seinaleak kontrolatzen du. Seinale hori garbitzen bada, Sarrera Digitala Gaitzeko MCU egoerak zehazten du (Modu normala, lo egiteko modua).
DIEOV Sarrera digitala gaitzeko gainidazteko balioa DIEOE ezarrita badago, sarrera digitala gaituta / desaktibatuta dago DIEOV ezarrita / garbituta dagoenean, MCU egoera edozein dela ere (Modu normala, lo egiteko modua).
DI Sarrera digitala Hau da funtzio alternatiboetarako sarrera digitala. Irudian, seinalea schmitt-trigger-aren irteerara konektatuta dago baina sinkronizatzailearen aurretik. Sarrera digitala erloju iturri gisa erabiltzen ez bada, ordezko funtzioa duen moduluak bere sinkronizatzailea erabiliko du.
AIO Sarrera / irteera analogikoa Hau da funtzio alternatiboetarako sarrera / irteera analogikoa. Seinalea zuzenean pad-era konektatzen da eta noranzko bikoitza erabil daiteke.

Ondorengo azpiatalak labur deskribatzen dituzte ataka bakoitzaren ordezko funtzioak, eta seinale nagusienak beste funtzioarekin erlazionatzen dituzte. Xehetasun gehiagorako, ikusi ordezko funtzioaren deskribapena.

B ataka funtzio alternatiboak

Funtzio alternatiboa duten Port B pin-ak agertzen dira 10-3 taula.

10-3 taula. B ataka Pinak Ordezko funtzioak

Portuko Pina Ordezko funtzioa
PB5

RESET: Berrezarri Pin

dW: debugWIRE I / O ADC0: ADC sarrera kanala 0

PCINT5: Pin aldaketa etetea, 5. iturria

PB4 XTAL2: Kristalezko osziladorearen irteera CLKO: Sistemaren erlojuaren irteera ADC2: ADC sarrera kanala 2

OC1B: Tenporizadorea / Kontagailua1 Alderatu Match B irteera PCINT4: Pin aldaketa etetea 0, 4. iturria

PB3 XTAL1: Kristal Osziladorearen Sarrera CLKI: Kanpoko Erlojuaren Sarrera ADC3: ADC Sarrerako 3. kanala

OC1B: Tenporizadorea / Kontagailua1 Osagarria Partiduen B irteera PCINT3: Pin aldaketa etetea 0, 3. iturria

PB2 SCK: Serial Clock Input ADC1: ADC Input Channel 1

T0: Tenporizadorea / Kontagailua0 Erlojuaren iturria USCK: USI erlojua (hiru hari modua) SCL: USI erlojua (bi hari modua) INT0: Kanpoko etena 0 Sarrera PCINT2: Pin aldaketa etena 0, 2. iturria

PB1 MISO: SPI datu nagusien sarrera / esklaboen datuen irteera AIN1: konparagailu analogikoa, sarrera negatiboa OC0B: tenporizadorea / kontagailua0 Alderatu Match B irteera OC1A: tenporizadorea / kontagailua1 Konparatu Match A irteera DO: USI datuen irteera (hiru hari modua) PCINT1: Pin aldaketa etetea 0, 1. iturria
PB0 MOSI :: SPI Master Data Output / Slave Data Input AIN0: konparagailu analogikoa, sarrera positiboa

OC0A: Tenporizadore/Kontagailua0 Konparatu Match A irteera

OC1A: Tenporizadorea / Counter1 osagarria Match A irteera DI: USI datu sarrera (hiru hari modua)

SDA: USI datu sarrera (bi hari modua) AREF: Kanpoko erreferentzia analogikoa PCINT0: Pin aldaketa etena 0, iturria 0

B ataka, 5 bit - RESET / dW / ADC0 / PCINT5

RESET: Kanpoko Reset sarrera aktibo dago eta RSTDISBL fusiblea programatu gabe ("1") gaituta dago. Pullup aktibatuta dago eta irteerako kontrolatzailea eta sarrera digitala desaktibatzen dira pinak RESET pin gisa erabiltzen direnean.

dW: debugWIRE Enable (DWEN) fusiblea programatuta dagoenean eta Blokeo bitak programatu gabe daudenean, helburu gailuko debugWIRE sistema aktibatzen da. RESET ataka pin haririk gabeko AND (open-drain) bi noranzko I / O pin gisa konfiguratuta dago, pull-up gaituta dago eta helburu eta emuladorearen arteko komunikazio atari bihurtzen da.

ADC0: Bihurgailu analogikoa digitala, 0 kanala.

PCINT5: Pin Aldatu Eten iturria 5.

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

XTAL2: Chip Clock Osziladore pin 2. Erlojuaren pin gisa erabiltzen da chip erloju iturri guztietarako, barne kalibratzeko RC oszilagailua eta kanpoko erlojua izan ezik. Erlojuaren pin gisa erabiltzen denean, pin-a ezin da I / O pin gisa erabili. Barne RC osziladore kalibragarria edo Kanpoko erlojua Chip erloju iturri gisa erabiltzerakoan, PB4 I / O pin arrunt gisa balio du.

CLKO: banatutako sistemaren erlojua PB4 pinean atera daiteke. Zatitutako sistemaren erlojua CKOUT fusiblea programatuta badago, PORTB4 eta DDB4 ezarpenak kontuan hartu gabe. Berrezarri bitartean irteera ere emango da.

ADC2: Bihurgailu analogikoa digitala, 2 kanala.

OC1B: Output Compare Match irteera: PB4 pinak kanpoko irteera gisa balio dezake Tenporizadorea / Counter1 Compare Match B irteera gisa konfiguratuta dagoenean (DDB4 multzoa). OC1B pin-a PWM moduko tenporizadorearen funtziorako irteerako pin-a ere bada.

PCINT4: Pin Aldatu Eten iturria 4.

B ataka, 3 bit - XTAL1 / CLKI / ADC3 / OC1B / PCINT3

XTAL1: txipa erlojuaren osziladore pin 1. Txip erlojuaren iturri guztietarako erabiltzen da, barne kalibratzeko RC oszilagailua izan ezik. Erlojuaren pin gisa erabiltzen denean, pin-a ezin da I / O pin gisa erabili.

CLKI: Erlojuaren kanpoko erlojuaren iturburuko sarrera, ikus “Kanpoko erlojua” 26. orrialdean.

ADC3: Bihurgailu analogikoa digitala, 3 kanala.

OC1B: alderantzizko irteera alderatzeko irteera: PB3 pinak kanpoko irteera gisa balio dezake Tenporizadorea / kontagailua1 alderatu partida B irteera gisa konfiguratuta dagoenean (DDB3 multzoa). OC1B pin PWM moduko tenporizadorearen funtziorako alderantzizko irteerako pin ere bada.

PCINT3: Pin Aldatu Eten iturria 3.

B ataka, 2 bit - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2

SCK: Master Clock irteera, Slave Clock sarrera pin SPI kanalerako. SPI Esklabo gisa gaituta dagoenean, pin hau sarrera gisa konfiguratzen da DDB2ren ezarpena edozein dela ere. SPI Master gisa gaituta dagoenean, pin honen datuen norabidea DDPB2-k kontrolatzen du. SPIk pin-a sarrera bat izatera behartzen duenean, pull-up PORTB2 bitaren bidez kontrola daiteke oraindik.

ADC1: Bihurgailu analogikoa digitala, 1 kanala.

T0: Tenporizadorea / Kontagailua0 kontagailuaren iturria.

USCK: Hiru hari moduko serieko interfaze erloju unibertsala.

SCL: Bi hari moduko erloju seriala USI Bi hari modurako.

INT0: Kanpoko eten iturria 0.

PCINT2: Pin Aldatu Eten iturria 2.

B ataka, bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1

MISO: datu nagusi sarrera, datu esklabo irteera pin SPI kanalerako. SPI Master gisa gaituta dagoenean, pin hau sarrera gisa konfiguratzen da DDB1en ezarpena edozein dela ere. SPI Esklabo gisa gaituta dagoenean, pin honen datuen norabidea DDB1-ek kontrolatzen du. SPIk pin-a sarrera bat izatera behartzen duenean, pull-up PORTB1 bitaren bidez kontrola daiteke oraindik.

AIN1: Konparazio analogikoa sarrera negatiboa. Konfiguratu ataka-pinaren sarrera gisa barneko tiraketa desaktibatuta dagoela, ataka digitalaren funtzioak Konparagailu analogikoaren funtzioa oztopatzea ekiditeko.

OC0B: Irteera alderatu partida irteera. PB1 pinak Tenporizadorea / Kontagailua0 alderatzeko B kanpoko irteera gisa balio dezake. PB1 pinak irteera gisa (DDB1 multzoa (bat)) konfiguratu behar du funtzio hau betetzeko. OC0B pin-a PWM moduko tenporizadorearen funtziorako irteerako pin-a ere bada.

OC1A: Irteerako Konparazio Partiduen irteera: PB1 pinak kanpoko irteera gisa balio dezake Tenporizadorea / Kontagailua1 Konparatu Partidua B irteera gisa konfiguratuta dagoenean (DDB1 multzoa). OC1A pin-a PWM moduko tenporizadorearen funtziorako irteerako pin-a ere bada.

EGIN: hiru hari moduko serieko interfaze unibertsaleko datuen irteera. Hiru harietako modua Datuen irteerak PORTB1 balioa gainditzen du eta portura eramaten da DDB1 datuen norabideko bit-a ezartzen denean (bat). PORTB1-ek tira egiteko aukera gaitzen du, norabidea sartu eta PORTB1 ezarrita badago (bat).

PCINT1: Pin Aldatu Eten iturria 1.

B ataka, 0 bit - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0

MOSI: SPI Master Data irteera, Slave Data sarrera SPI kanalerako. SPI Esklabo gisa gaituta dagoenean, pin hau sarrera gisa konfiguratzen da DDB0 ezarpena edozein dela ere. SPI Master gisa gaituta dagoenean, pin honen datuen norabidea DDB0-k kontrolatzen du. SPIk pin-a sarrera bat izatera behartzen duenean, pull-up PORTB0 bitaren bidez kontrola daiteke oraindik.

AIN0: Konparagailu analogikoa sarrera positiboa. Konfiguratu ataka-pinaren sarrera gisa barneko tiraketa desaktibatuta dagoela, ataka digitalaren funtzioak konparagailu analogikoaren funtzioa eragotzi ez dezan.

OC0A: Irteera alderatu partida irteera. PB0 pinak Tenporizadorea / Kontagailua0 alderatzeko A kanpoko irteera gisa balio dezake A irteera gisa konfiguratuta dagoenean (DDB0 multzoa (bat)). OC0A pin-a PWM moduko tenporizadorearen funtziorako irteerako pin-a ere bada.

OC1A: alderantzizko irteera alderatzeko irteera: PB0 pinak kanpoko irteera gisa balio dezake Tenporizadorea / Kontagailua1 alderatu partida B irteera gisa konfiguratuta dagoenean (DDB0 multzoa). OC1A pin PWM modu tenporizadorearen funtziorako alderantzizko irteerako pin ere bada.

SDA: Bi hari moduko Serial Interface Data.

AREF: ADCrako kanpoko erreferentzia analogikoa. Pullup eta irteera kontrolatzailea PB0-n desgaituta daude pina kanpoko erreferentzia gisa edo Barne Vol. gisa erabiltzen denean.tage Erreferentzia kanpoko kondentsadorearekin AREF pinean.

DI: Datuen sarrera USI Hiru hari moduan. USI Hiru hari moduak ez ditu ataka normaleko funtzioak gainidazten, beraz pinak DI funtziorako sarrera gisa konfiguratu behar du.

PCINT0: Pin Aldatu Eten iturria 0.

10-4 taula eta 10-5 taula lotu B atariaren ordezko funtzioak atalean agertzen diren seinale nagusiekin 10-5 irudia 58. orrialdea.

10-4 taula. PBko ordezko funtzioetarako seinaleak gainidaztea[5:3]

Seinalearen izena PB5 / RESET / ADC0 / PCINT5 PB4/ADC2/XTAL2/ OC1B/PCINT4 PB3/ADC3/XTAL1/ OC1B/PCINT3
PUOE

RSTDISBL(1) • DWEN(1)

0 0
PUOV 1 0 0
DDOE RSTDISBL(1) • DWEN(1) 0 0
DDOV debugWire Transmit 0 0
PVOE 0 OC1B Gaitu

OC1B Gaitu

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 PCINT5 sarrera PCINT4 sarrera PCINT3 sarrera
AIO RESET Sarrera, ADC0 Sarrera ADC2 sarrera ADC3 sarrera

Oharra: Fusiblea "0" denean (Programatua).

10-5 taula. PBko ordezko funtzioetarako seinaleak gainidaztea[2:0]

Seinalearen izena PB2/SCK/ADC1/T0/ USCK/SCL/INT0/PCINT2 PB1/MISO/DO/AIN1/ OC1A/OC0B/PCINT1 PB0/MOSI/DI/SDA/AIN0/AR EF/OC1A/OC0A/

PCINT0

PUOE USI_TWO_WIRE 0 USI_TWO_WIRE
PUOV 0 0 0
DDOE USI_TWO_WIRE 0 USI_TWO_WIRE
DDOV (USI_SCL_HOLD + PORTB2) • DDB2 0  

(SDA + PORTB0) • DDB0

PVOE USI_TWO_WIRE • DDB2 OC0B Gaitu + OC1A Gaitu + USI_THREE_WIRE

OC0A Gaitu + OC1A Gaitu + (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 /

PCINT2 sarrera

PCINT1 sarrera DI / SDA / PCINT0 Sarrera
AIO ADC1 sarrera Analog konparatzailea sarrera negatiboa Sarrera positiboaren konparatzaile analogikoa

Erregistroaren deskribapena

MCUCR - MCU Kontrol Erregistroa

Bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 GORPUTZA ISC01 ISC00 MCUCR
Irakurri/Idatzi R R/W R/W R/W R/W R R/W R/W
Hasierako balioa 0 0 0 0 0 0 0 0

Bit 6 - PUD: Pull-up Desgaitu

Bit hau bat idazten denean, E / S portuetako pull-upak desgaituta daude DDxn eta PORTxn Erregistroak pull-upak gaitzeko konfiguratuta badaude ere ({DDxn, PORTxn} = 0b01). Ikusi “Pin konfiguratzea” 54. orrialdean funtzio honi buruzko xehetasun gehiagorako.

PORTB - Portuko B datuen erregistroa

Bit 7 6 5 4 3 2 1 0
0x18 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
Irakurri/Idatzi R R R/W R/W R/W R/W R/W R/W
Hasierako balioa 0 0 0 0 0 0 0 0

DDRB - Portuko B Datuen Zuzendaritza Erregistroa

Bit 7 6 5 4 3 2 1 0
0x17 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Irakurri/Idatzi R R R/W R/W R/W R/W R/W R/W
Hasierako balioa 0 0 0 0 0 0 0 0

PINB - B ataka sarrera pin helbidea

Bit 7 6 5 4 3 2 1 0
0x16 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Irakurri/Idatzi R R R/W R/W R/W R/W R/W R/W
Hasierako balioa 0 0 N/A N/A N/A N/A N/A N/A

8 biteko tenporizadorea / kontagailua0 PWMrekin

Ezaugarriak

Bi Irteera Independenteak Konparatzeko Unitateak

Buffered bikoitzeko irteera alderatu erregistroak

Garbitu tenporizadorea alderatzeko partiduan (berriro kargatu)

Glitch Free, Fase Zuzeneko Pultsu Zabalera Modulatzailea (PWM)

PWM aldia aldagarria

Maiztasun Sorgailua

Hiru iturri independenteak (TOV0, OCF0A eta OCF0B)

Amaituview

Tenporizadorea / Kontagailua0 8 biteko Tenporizadorea / Kontagailua helburu orokorreko modulua da, bi irteera konparatzeko unitate independente dituena eta PWM euskarria duena. Programaren exekuzio denbora zehatza (gertaeren kudeaketa) eta uhinen sorrera ahalbidetzen du.

8 bit-eko tenporizadorearen / kontagailuaren bloke diagrama sinplifikatua erakusten da 11-1 irudia. I / O pinen benetako kokapenari buruz, ikus “Pinout ATtiny25 / 45/85” 2. orrialdean. PUZera sartzeko I / O erregistroak, I / O bitak eta I / O pinak barne, lodiz erakusten dira. Gailuaren berariazko I / O erregistroa eta bit kokapenak zerrendan daude “Erregistroaren deskribapena” 77. orrialdean.

Tenporizadore/Kontagailua (TCNT0) eta Irteera Konparazio Erregistroak (OCR0A eta OCR0B) 8 biteko erregistroak dira. Eten eskaera (irudian Int.Req. laburtua) seinaleak ikusgai daude Timer Interrupt Flag Register (TIFR) atalean. Eten guztiak banan-banan maskaratuta daude Timer Interrupt Mask Register-arekin (TIMSK). TIFR eta TIMSK ez dira irudian agertzen.

Tenporizadorea/Kontagailua barrutik erloju daiteke, aurreskaltzailearen bidez edo kanpoko erloju-iturri baten bidez T0 pinean. Clock Select bloke logikoak Tenporizadoreak/Kontagailuak zein erloju-iturburu eta ertz erabiltzen dituen kontrolatzen du bere balioa handitzeko (edo gutxitzeko). Tenporizadorea/Kontagailua inaktibo dago erloju-iturririk hautatzen ez denean. Clock Select logikaren irteerari tenporizadorearen erlojua (clkT0) esaten zaio.

Buffer bikoitzeko Irteerako Konparazio Erregistroak (OCR0A eta OCR0B) tenporizadorearen / kontagailuaren balioarekin alderatzen dira uneoro. Konparazioaren emaitza Waveform Generator-ek PWM edo maiztasun aldakorreko irteera bat sor dezake Irteerako Konparazio pinetan (OC0A eta OC0B). Ikus “Irteera konparatzeko unitatea” 69. orrialdean. xehetasunetarako. Compare Match gertaerak Konparatu bandera (OCF0A edo OCF0B) ere ezarriko du, Irteerako Konparaketa eten eskaera sortzeko erabil daitekeena.

Definizioak

Atal honetako erregistro eta bit erreferentzia ugari modu orokorrean idazten dira. "N" minuskulak Tenporizadorearen / Kontagailuaren zenbakia ordezkatzen du, kasu honetan 0. "X" minuskulak Irteerako Konparazio Unitatea ordezkatzen du, kasu honetan A Unitatea edo B Unitatea Konparatu. Hala ere, erregistroa edo bitak definitzen direnean programa batean, forma zehatza erabili behar da, hau da, TCNT0 Tenporizadorea / Kontagailua0 kontagailuaren balioa sartzeko eta abar.

-Ko definizioak 11-1 taula dokumentu osoan zehar asko erabiltzen dira.

11-1 taula. Definizioak

Konstantea Deskribapena
BEHEKOA Kontagailua 0x00 bihurtzen denean BEHERA iristen da
MAX Kontagailuak MAX maximoa lortzen du 0xFF bihurtzen denean (255 hamartarra)
GOIA Kontagailua TOPera iristen da zenbaketa sekuentziako balio handienaren parekoa denean. TOP balioa 0xFF (MAX) balio finkoa edo OCR0A Erregistroan gordetako balioa izan daiteke. Esleipena eragiketa moduaren araberakoa da

Tenporizadorea / Kontagailuaren prekalagailua eta erlojuaren iturriak

Tenporizadorea / kontagailua barneko edo kanpoko erloju iturri batek erlojua izan dezake. Erlojuaren iturria Clock Select logikak hautatzen du, Timer / Counter0 Control Register (TCCR0B) kokatutako Clock Select (c) bitek kontrolatzen dutena.

Prescaler-ekin barne erlojuaren iturria

Timer/Counter0 sistemaren erlojuaren bidez zuzenean erloju daiteke (CS0[2:0] = 1 ezarriz). Honek eragiketa azkarrena eskaintzen du, sistemaren erlojuaren maiztasunarekin (fCLK_I/O) gehienezko tenporizadore/kontagailuaren maiztasunarekin. Bestela, aurreskalgailuko lau kolpeetako bat erloju iturri gisa erabil daiteke. Aurreeskalatutako erlojuak bi maiztasuna du

Prescaler berrezartzea

Aurre-eskalatzailea aske dabil, hau da, Timer/Counter0-ren Clock Select logikaren arabera funtzionatzen du. Aurre-eskalatzaileari tenporizadorearen/kontagailuaren erlojuaren hautapenak eragiten ez duenez, aurre-eskalatzailearen egoerak inplikazioak izango ditu aurre-eskalatutako erlojua erabiltzen den egoeretan. AdibampAurre-eskalatze-artefaktu baten fitxategia da tenporizadorea/kontagailua gaituta eta erlojua egiten duenean aurre-eskalatzaileak (6 > CS0[2:0] > 1). Tenporizadorea gaituta dagoenetik lehen zenbaketara arte sistemako erloju-zikloen kopurua 1etik N+1era izan daiteke sistemaren erloju-zikloa, non N aurre-eskalatzaile zatitzailea (8, 64, 256 edo 1024) berdina den.

Prescaler Reset erabil daiteke Tenporizadorea / Kontagailua programaren exekuziorako sinkronizatzeko.

Kanpoko erlojuaren iturria

T0 pinari aplikatutako kanpoko erloju-iturburu bat tenporizadore/kontagailu gisa erabil daiteke (clkT0). T0 pina s daampsistemako erloju-ziklo bakoitzean behin gidatzen du pin sinkronizazio logikak. Sinkronizatua (sampled) seinalea pasatzen da orduan

ertz-detektagailuaren bidez. 11-2 irudia T0 sinkronizazioaren eta ertz-detektagailuaren logikaren bloke-diagrama baliokide funtzional bat erakusten du. Erregistroak sistema barneko erlojuaren ertz positiboan (clkI/O) erlojutzen dira. Barne-sistemako erlojuaren goi-aldiko giltza gardena da.

Ertz-detektagailuak clkT0 pultsu bat sortzen du detektatzen duen ertz positibo (CS0[2:0] = 7) edo negatibo (CS0[2:0] = 6) bakoitzeko.

OCR0x Erregistroak buffer bikoitza dira Pulse Width Modulation (PWM) edozein modutan erabiltzen direnean. Konparazioan (CTC) funtzionamendu modu normalean eta Garbitu tenporizadorean, buffer bikoitza desgaituta dago. Buffer bikoitzak OCR0x Konparazio Erregistroen eguneraketa sinkronizatzen du zenbaketa sekuentziaren goiko edo beheko aldean. Sinkronizazioak luzera bakoitiko eta simetrikoak ez diren PWM pultsuak gertatzea ekiditen du, eta, beraz, irteera arazorik gabe geratuko da.

OCR0x Erregistro sarbidea konplexua dirudi, baina ez da horrela. Buffer bikoitza gaituta dagoenean, CPUak OCR0x Buffer Erregistrora sarbidea du eta buffering bikoitza desgaituta badago, CPU-k OCR0x-ra sartuko da zuzenean.

Behartu irteera alderatzea

PWM ez diren uhin-formak sortzeko moduetan, konparagailuaren parekatze-irteera bortxatu daiteke Force Output Compare (FOC0x) bitera idatziz. Match Match behartuz ez da OCF0x bandera ezarriko edo tenporizadorea berriro kargatu / garbituko da, baina OC0x pin-a eguneratuko da Konparazio Match benetako bat gertatu balitz bezala (COM0x [1: 0] bit ezarpenak OC0x pin-a ezarrita dagoen ala ez definitzen da, garbitu edo txandakatuta).

Konparatu Match Blocking TCNT0 Write bidez

TCNT0 Erregistroan PUZaren idazketa eragiketa guztiek hurrengo tenporizadorearen erlojuaren zikloan gertatzen diren Konparazio Partidak blokeatuko dituzte, tenporizadorea geldituta dagoenean ere. Ezaugarri horri esker, OCR0x TCNT0-ren balio berbera has daiteke, tenporizadorea / kontagailuaren erlojua gaituta dagoenean etenik eragin gabe.

Irteerako Konparazio Unitatea erabiliz

TCNT0 edozein eragiketa modutan idazteak tenporizadorearen erloju ziklo baterako alderatze guztiak blokeatuko dituenez, TCNT0 aldatzean arriskuak daude irteerako konparazio unitatea erabiltzean, tenporizadorea / kontagailua martxan dagoen edo ez. TCNT0-n idatzitako balioa OCR0x balioaren berdina bada, Konparazio bat etortzea galduko da, ondorioz uhin forma okerra sortuko da. Era berean, ez idatzi TCNT0 BALDE berdina den kontagailua beherantz kontatzen ari denean.

OC0x-ren konfigurazioa ataka-pinaren irteerako Datuen Norabide Erregistroa ezarri aurretik egin behar da. OC0x balioa ezartzeko modurik errazena indar normaleko irteerako konparaketa (FOC0x) bit estrobikoak erabiltzea da. OC0x Erregistroek beren balioak mantentzen dituzte Uhin Forma Moduen artean aldatzean ere.

Kontuan izan COM0x [1: 0] bitak ez direla buffer bikoitza konparazio balioarekin batera. COM0x [1: 0] bitak aldatzeak berehala eragingo du.

Alderatu Partidaren Irteera Unitatea

Konparatu irteera modua (COM0x [1: 0]) bitak bi funtzio ditu. Waveform Generator-ek COM0x [1: 0] bitak erabiltzen ditu Irteerako Konparaketa (OC0x) egoera definitzeko hurrengo Konparazio Partiduan. Gainera, COM0x [1: 0] bitek OC0x pin irteerako iturria kontrolatzen dute. 11-6 irudia COM0x [1: 0] bit ezarpenak eragindako logikaren eskema sinplifikatua erakusten du. Irudiko I / O erregistroak, I / O bitak eta irudiko I / O pinak letra lodiz erakusten dira. COM0x [1: 0] bitak eragindako I / O Portu Kontroleko Erregistro Orokorren zatiak (DDR eta PORT) erakusten dira. OC0x egoera aipatzerakoan, erreferentzia barne OC0x Erregistroarena da, ez OC0x pinarena. Sistemaren berrezarpena gertatzen bada, OC0x Erregistroa "0" berrezartzen da.

OC0A / OC0B I / O pinera konektatzen denean, COM0A [1: 0] / COM0B [1: 0] bitaren funtzioa WGM0 [2: 0] bit ezarpenaren araberakoa da. 11-2 taula COM0x [1: 0] bit funtzionalitatea erakusten du WGM0 [2: 0] bitak normal edo CTC moduan ezartzen direnean (PWM ez direnak).

11-2 taula. Konparatu Irteera modua, ez-PWM modua

COM0A1 COM0B1 COM0A0 COM0B0 Deskribapena
0 0 Ataka normala, OC0A / OC0B deskonektatuta.
0 1 Aktibatu OC0A / OC0B alderatu alderdian
1 0 Garbitu OC0A / OC0B alderatu partiduan
1 1 Ezarri OC0A / OC0B Match Match-en

11-3 taula COM0x [1: 0] bit funtzionalitatea erakusten du WGM0 [2: 0] bitak PWM modu azkarrean ezartzen direnean.

11-3 taula. Konparatu irteera modua, PWM modu azkarra(1)

COM0A1 COM0B1 COM0A0 COM0B0 Deskribapena
0 0 Ataka normala, OC0A / OC0B deskonektatuta.
0 1 Erreserbatuta
1 0 Garbitu OC0A / OC0B alderaketa alderdian, ezarri OC0A / OC0B BEHEAN (alderantzizko modua)
1 1 Ezarri OC0A / OC0B Konparatu Partiduan, garbitu OC0A / OC0B BEHEAN (alderantzikatzeko modua)

Oharra: kasu berezi bat gertatzen da OCR0A edo OCR0B TOP berdina denean eta COM0A1/COM0B1 ezartzen denean. Kasu honetan, konparazio-partidari ez zaio jaramonik egiten, baina ezarri edo garbitu BEHEAN egiten da. Ikusi "PWM modu azkarra" 73. orrialdean xehetasun gehiagorako.

11-4 taula COM0x [1: 0] bit funtzionalitatea erakusten du WGM0 [2: 0] bitak PWM moduaren fase zuzenerako ezarrita daudenean.

11-4 taula. Konparatu irteera modua, fase zuzena PWM modua(1)

COM0A1 COM0B1 COM0A0 COM0B0 Deskribapena
0 0 Ataka normala, OC0A / OC0B deskonektatuta.
0 1 Erreserbatuta
1 0 Garbitu OC0A / OC0B Konparatu bat etortzean zenbaketa handitzerakoan. Ezarri OC0A / OC0B Konparatu bat etortzerakoan zenbaketa txikia denean.
1 1 Ezarri OC0A / OC0B Konparatu partiduan gora kontatzerakoan. Garbitu OC0A / OC0B Konparatu bat etorrita alderantziz zenbatzerakoan.

Oharra: 1. Kasu berezi bat gertatzen da OCR0A edo OCR0B TOP berdina denean eta COM0A1/COM0B1 ezartzen denean. Kasu honetan, Konparazio Match-a ez da aintzat hartzen, baina ezarri edo garbitu GOI aldean egiten da. Ikusi "Fase zuzena PWM modua" 74. orrialdean xehetasun gehiagorako.

Bits 3: 2 - Res: Bits gordeak

Bit hauek ATtiny25 / 45/85 fitxategian gordetako bitak dira eta beti zero gisa irakurriko dira.

Bits 1: 0 - WGM0 [1: 0]: Uhin forma sortzeko modua

TCCR02B Erregistroan aurkitutako WGM0 bitarekin konbinatuta, bit hauek kontagailuaren zenbaketa sekuentzia kontrolatzen dute, kontagailuaren gehieneko balioaren iturria (TOP) eta zer uhin forma sortzeko erabili behar den ikusi. 11-5 taula. Tenporizadorea / Kontagailua unitateak onartzen dituen funtzionamendu moduak hauek dira: Modu normala (kontagailua), Garbitu tenporizadorea alderatu (CTC) moduan eta bi pultsu zabalera modulatzeko (PWM) moduak (ikus "Funtzionamendu moduak" 71. orrialdean).

11-5 taula. Uhin forma sortzeko moduaren bit deskribapena

Modua WGM 02 WGM 01 WGM 00 Tenporizadorea / Kontagailua eragiketa modua GOIA OCRx-ren eguneratzea hemen TOV bandera aktibatuta
0 0 0 0 Normala 0xFF Berehala MAX(1)
1 0 0 1 PWM, Fase zuzena 0xFF GOIA BEHEKOA(2)
2 0 1 0 CTC OCRA Berehala MAX(1)
3 0 1 1 PWM azkarra 0xFF BEHEKOA(2) MAX(1)
4 1 0 0 Erreserbatuta
5 1 0 1 PWM, Fase zuzena OCRA GOIA BEHEKOA(2)
6 1 1 0 Erreserbatuta
7 1 1 1 PWM azkarra OCRA BEHEKOA(2) GOIA

Bit 7 - FOC0A: Irteera behartu konparatu A

FOC0A bit-a WGM bit-ak PWM ez den modua zehazten duenean bakarrik dago aktibo.

Hala ere, etorkizuneko gailuekin bateragarritasuna bermatzeko, bit hau zero izan behar da PWM moduan funtzionatzen duenean TCCR0B idazten denean. Logika bat FOC0A bitean idazterakoan, berehalako Konparazio Match bat behartzen da Waveform Generation unitatean. OC0A irteera COM0A [1: 0] bit ezarpenaren arabera aldatzen da. Kontuan izan FOC0A bit-a estrobo gisa ezarrita dagoela. Beraz, COM0A [1: 0] bitetan dagoen balioa da konparazio behartuaren eragina zehazten duena.

FOC0A estrobo batek ez du etenik sortuko, ezta CTC moduan tenporizadorea garbituko du OCR0A TOP gisa erabiliz. FOC0A bit-a zero gisa irakurtzen da beti.

Bit 6 - FOC0B: Bortxatzeko irteera konparatzea

FOC0B bitak WGM bitak PWM ez den modua zehazten duenean bakarrik aktibatzen da.

Hala ere, etorkizuneko gailuekin bateragarritasuna bermatzeko, bit hau zero gisa ezarri behar da TCCR0B PWM moduan funtzionatzerakoan idazten denean. Logika bat FOC0B bitean idazterakoan, berehalako Konparazio Match bat behartzen da Waveform Generation unitatean. OC0B irteera COM0B [1: 0] bit ezarpenaren arabera aldatzen da. Kontuan izan FOC0B bit-a strobe gisa ezarrita dagoela. Beraz, COM0B [1: 0] bitetan dagoen balioa da konparazio behartuaren eragina zehazten duena.

FOC0B estrobe batek ez du etenik sortuko, ezta CTC moduan tenporizadorea garbituko du OCR0B TOP gisa erabiliz.

FOC0B bit-a beti zero gisa irakurtzen da.

Bits 5: 4 - Res: Bits gordeak

Bit hauek ATtiny25 / 45/85 fitxategian gordetako bitak dira eta beti zero gisa irakurriko dira.

Bit 3 - WGM02: Uhin forma sortzeko modua

Ikusi deskribapena “TCCR0A - Tenporizadorea / Kontagailuaren kontrol erregistroa A” 77. orrialdean.

Bits 2: 0 - CS0 [2: 0]: Erlojua hautatu

Erlojua hautatzeko hiru bitek tenporizadoreak / kontagailuak erabiliko duen erlojuaren iturria hautatzen dute.

11-6 taula. Erlojua Hautatu bit deskribapena

CS02 CS01 CS00 Deskribapena
0 0 0 Ez dago erlojuaren iturririk (tenporizadorea / kontagailua geldituta)
0 0 1 clkI/O/(aurre-eskalarik gabe)
0 1 0 clkI/O/8 (preskaleretik)
0 1 1 clkI/O/64 (preskaleretik)
1 0 0 clkI/O/256 (preskaleretik)
1 0 1 clkI/O/1024 (preskaleretik)
1 1 0 Kanpoko erlojuaren iturria T0 pinean. Erlojua erortzean.
1 1 1 Kanpoko erlojuaren iturria T0 pinean. Erlojua goranzko ertzean.

Tenporizadorea / Kontagailua0 kanpoko pin moduak erabiltzen badira, T0 pineko trantsizioek kontagailua erlojua jarriko dute pinak irteera gisa konfiguratuta badaude ere. Ezaugarri honek zenbaketa kontrolatzeko softwarea ahalbidetzen du.

Kontrastatu eta alderatu unitateak

Tenporizadorea / Kontagailua1 funtzionamendu orokorra modu asinkronoan deskribatzen da eta modu sinkronikoaren funtzionamendua bi modu horien artean desberdintasunak badaude bakarrik aipatzen da. 12-2 irudia Timer / Counter 1 sinkronizazio erregistroen bloke diagrama eta sinkronizazio atzerapenak erakusten ditu erregistroen artean. Kontuan izan erlojuaren xehetasun guztiak ez direla irudian agertzen. Tenporizadorea / Kontagailua1 erregistroaren balioak barne sinkronizazio erregistroetatik pasatzen dira, eta horrek sarrerako sinkronizazio atzerapena eragiten du, kontagailuaren eragiketari eragin aurretik. TCCR1, GTCCR, OCR1A, OCR1B eta OCR1C erregistroak irakur daitezke erregistroa idatzi ondoren. Irakurritako balioak atzeratu egiten dira Tenporizadorea / Kontagailua1 (TCNT1) erregistroan eta banderetan (OCF1A, OCF1B eta TOV1), sarrerako eta irteerako sinkronizazioa dela eta.

Tenporizadoreak / kontagailuak1 bereizmen handiko eta zehaztasun handiko erabilera eskaintzen du, aurrez aurre eskalatzeko aukera txikiagoekin. Halaber, abiadura handiko 8 biteko bi pultsuko zabalera modulatzaile zehatzak onar ditzake, 64 MHz arteko erloju abiadurak erabiliz (edo 32 MHz abiadura baxuko moduan). Modu honetan, Tenporizadorea / Kontagailua1 eta irteerako konparazio erregistroak PWM autonomo bikoitz gisa balio dute alderantzizko eta alderantzizko irteera ez gainjarriekin. Zerbaiti erreferentzia egin 86. orrialdea funtzio honen deskribapen zehatza lortzeko. Era berean, eskalatzeko aukera handiek unitate hau abiadura txikiagoko funtzioetarako edo denborazko funtzio zehatzetarako baliagarria egiten dute gutxieneko ekintzekin.

12-2 irudia. Tenporizadore/Kontagailua 1 Sinkronizazio Erregistro bloke-diagrama.

Tenporizadorea / Kontagailua1 eta preskaleragailuak CPU edozein erloju-iturritatik abiarazteko aukera ematen dute preskalagailuak 64 MHz (edo 32 MHz abiadura baxuko moduan) PCK erlojuan modu asinkronoan funtzionatzen duen bitartean.

Kontuan izan sistemaren erlojuaren maiztasunak PCK maiztasunaren herena baino txikiagoa izan behar duela. Tenporizadore / Kontagailu1 asinkronoaren sinkronizazio mekanismoak gutxienez PCKaren bi ertzak behar ditu sistemaren erlojua handia denean. Sistemaren erlojuaren maiztasuna handiegia bada, datuak edo kontrol balioak galtzeko arriskua dago.

Honako hauek 12-3 irudia Tenporizadorearen / kontagailuaren1 bloke-diagrama erakusten du.

12-1 taula. Konparatu modua Hautatu PWM moduan

COM1x1 COM1x0 Efektua Irteerako Konparazio Pinetan
0 0 OC1x ez dago konektatuta. OC1x ez dago konektatuta.
0 1 OC1x garbitu da alderaketa alderatzean. Ezarri noizTCNT1 = $ 00. OC1x ezarri da alderatzeko partiduan. Garbitu denean TCNT1 = $ 00.
1 0 OC1x garbitu da alderaketa alderatzean. Ezarri TCNT1 = $ 00 denean. OC1x ez dago konektatuta.
1 1 OC1x Ezarri alderaketa alderatzean. Garbitu denean TCNT1 = $ 00. OC1x ez dago konektatuta.

ADC Ezaugarriak

21-8 taula. ADC ezaugarriak, amaiera bakarreko kanalak. TA = -40°C eta +85°C artean

Ikurra Parametroa Baldintza Min Tip Max Unitateak
Ebazpena 10 Bitsak
Erabateko zehaztasuna (INL, DNL eta kuantizazio, irabazi eta konpentsazio akatsak barne) VREF = 4V, VCC = 4V,

ADC erlojua = 200 kHz

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

ADC erlojua = 1 MHz

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

ADC erlojua = 200 kHz

Zarata murrizteko modua

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

ADC erlojua = 1 MHz

Zarata murrizteko modua

2.5 LSB
Linealtasun ez integrala (INL) (Offsetaren ondorengo zehaztasuna eta kalibrazioaren irabazia) VREF = 4V, VCC = 4V,

ADC erlojua = 200 kHz

1 LSB
Ez-linealtasun diferentziala (DNL) VREF = 4V, VCC = 4V,

ADC erlojua = 200 kHz

0.5 LSB
Irabazi errorea VREF = 4V, VCC = 4V,

ADC erlojua = 200 kHz

2.5 LSB
Offset errorea VREF = 4V, VCC = 4V,

ADC erlojua = 200 kHz

1.5 LSB
Bihurketa Denbora Korrika doako bihurketa 14 280 µs
Erlojuaren maiztasuna 50 1000 kHz
VIN Sarrera boltage GND VREF V
Sarrerako banda zabalera 38.4 kHz
AREF Kanpoko Erreferentzia Voltage 2.0 VCC V
VINT Barne Voltage Erreferentzia 1.0 1.1 1.2 V
Barneko 2.56V erreferentzia (1) VCC > 3.0V 2.3 2.56 2.8 V
ERREF 32
EURIA Sarrera analogikoaren erresistentzia 100
ADC irteera 0 1023 LSB

Oharra: 1. Balioak jarraibideak baino ez dira.

21-9 taula. ADC Ezaugarriak, Kanal Diferentzialak (Modu Unipolarra). TA = -40°C eta +85°C artean

Ikurra Parametroa Baldintza Min Tip Max Unitateak
Ebazpena Irabazia = 1x 10 Bitsak
Irabazia = 20x 10 Bitsak
Erabateko zehaztasuna (INL, DNL eta

Kuantizazioa, irabazi eta konpentsazio erroreak)

Irabazia = 1x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

10.0 LSB
Irabazia = 20x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

20.0 LSB
Linealtasun ez integrala (INL) (Offsetaren ondorengo zehaztasuna eta kalibrazio irabazia) Irabazia = 1x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

4.0 LSB
Irabazia = 20x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

10.0 LSB
Irabazi errorea Irabazia = 1x 10.0 LSB
Irabazia = 20x 15.0 LSB
Offset errorea Irabazia = 1x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

3.0 LSB
Irabazia = 20x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

4.0 LSB
Bihurketa Denbora Korrika doako bihurketa 70 280 µs
Erlojuaren maiztasuna 50 200 kHz
VIN Sarrera boltage GND VCC V
VDIFF Sarrera diferentziala Voltage VREF/Gain V
Sarrerako banda zabalera 4 kHz
AREF Kanpoko Erreferentzia Voltage 2.0 VCC - 1.0 V
VINT Barne Voltage Erreferentzia 1.0 1.1 1.2 V
Barneko 2.56V erreferentzia (1) VCC > 3.0V 2.3 2.56 2.8 V
ERREF Erreferentziako sarrerako erresistentzia 32
EURIA Sarrera analogikoaren erresistentzia 100
ADC bihurketaren irteera 0 1023 LSB

Oharra: balioak jarraibideak baino ez dira.

21-10 taula. ADC Ezaugarriak, Kanal Diferentzialak (Modu Bipolarra). TA = -40°C eta +85°C artean

Ikurra Parametroa Baldintza Min Tip Max Unitateak
Ebazpena Irabazia = 1x 10 Bitsak
Irabazia = 20x 10 Bitsak
Erabateko zehaztasuna (INL, DNL eta

Kuantizazioa, irabazi eta konpentsazio erroreak)

Irabazia = 1x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

8.0 LSB
Irabazia = 20x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

8.0 LSB
Linealtasun ez integrala (INL) (Offsetaren ondorengo zehaztasuna eta kalibrazio irabazia) Irabazia = 1x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

4.0 LSB
Irabazia = 20x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

5.0 LSB
Irabazi errorea Irabazia = 1x 4.0 LSB
Irabazia = 20x 5.0 LSB
Offset errorea Irabazia = 1x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

3.0 LSB
Irabazia = 20x

VREF = 4V, VCC = 5V

ADC erlojua = 50 - 200 kHz

4.0 LSB
Bihurketa Denbora Korrika doako bihurketa 70 280 µs
Erlojuaren maiztasuna 50 200 kHz
VIN Sarrera boltage GND VCC V
VDIFF Sarrera diferentziala Voltage VREF/Gain V
Sarrerako banda zabalera 4 kHz
AREF Kanpoko Erreferentzia Voltage 2.0 VCC - 1.0 V
VINT Barne Voltage Erreferentzia 1.0 1.1 1.2 V
Barneko 2.56V erreferentzia (1) VCC > 3.0V 2.3 2.56 2.8 V
ERREF Erreferentziako sarrerako erresistentzia 32
EURIA Sarrera analogikoaren erresistentzia 100
ADC bihurketaren irteera -512 511 LSB

Instrukzio multzoaren laburpena

Mnemoteknia Operandoak Deskribapena Funtzionamendua Banderak #Erlojuak
JARRAIBIDE ARITMETIKOAK ETA LOGIKOAK
GEHITU Rd, Rr Gehitu bi erregistro Rd ← Rd + Rr Z, C, N, V, H 1
ADC Rd, Rr Gehitu Carry bi Erregistroekin Rd ← Rd + Rr + C Z, C, N, V, H 1
ADIW Rdl, K Gehitu berehalako Word-era Rdh:Rdl ← Rdh:Rdl + K Z, C, N, V, S 2
AZPI Rd, Rr Kendu bi erregistro Rd ← Rd – Rr Z, C, N, V, H 1
SUBI kalea, K Kendu konstantea erregistroari Rd ← Rd – K Z, C, N, V, H 1
SBC Rd, Rr Kendu Eraman bi Erregistro Rd ← Rd – Rr – C Z, C, N, V, H 1
SBCI kalea, K Kendu Carry Constant-ekin Reg. Rd ← Rd – K – C Z, C, N, V, H 1
SBIW Rdl, K Kendu berehala Wordetik Rdh:Rdl ← Rdh:Rdl – K Z, C, N, V, S 2
ETA Rd, Rr Logikoa ETA Erregistroak Rd ← Rd ∙ Rr Z, N, V 1
ANDI kalea, K Logikoa ETA Erregistroa eta Etengabea Rd ← Rd ∙ K Z, N, V 1
OR Rd, Rr EDO erregistro logikoak Rd ← Rd v Rr Z, N, V 1
ORI kalea, K EDO logikoa edo erregistroa konstantea Rd ← Rd v K Z, N, V 1
EOR Rd, Rr EDO erregistro esklusiboak Rd ← Rd ⊕ Rr Z, N, V 1
COM Rd Norberaren osagarria Rd ← 0xFF − Rd Z, C, N, V 1
NEG Rd Bi osagarria Rd ← 0x00 − Rd Z, C, N, V, H 1
SBR Rd, K Ezarri Bit (k) Erregistroan Rd ← Rd v K Z, N, V 1
CBR Rd, K Garbitu bitak Erregistroan Rd ← Rd ∙ (0xFF – K) Z, N, V 1
INC Rd Gehitu Rd ← Rd + 1 Z, N, V 1
AB Rd txikitze Rd ← Rd − 1 Z, N, V 1
TST Rd Zero edo Minus probarako Rd ← Rd ∙ Rd Z, N, V 1
CLR Rd Garbitu erregistroa Rd ← Rd ⊕ Rd Z, N, V 1
SER Rd Ezarri Erregistroa Rd ← 0xFF Bat ere ez 1
ADAR JARRAIBIDEAK
RJMP k Salto erlatiboa PC ← PC + k + 1 Bat ere ez 2
IJMP Zeharkako saltoa (Z) PC ← Z Bat ere ez 2
RCALL k Azpierrutinaren deia erlatiboa PC ← PC + k + 1 Bat ere ez 3
ICALL Zeharkako deia (Z) PC ← Z Bat ere ez 3
RET Azpierrutinaren itzulera PC ← PILA Bat ere ez 4
RETI Itzulera eten PC ← PILA I 4
CPSE Rd, Rr Konparatu, Saltatu berdin bada bada (Rd = Rr) PC ← PC + 2 edo 3 Bat ere ez 1/2/3
CP Rd, Rr Konparatu Rd − Rr Z, N, V, C, H 1
CPC Rd, Rr Alderatu Carry-rekin Rd − Rr − C Z, N, V, C, H 1
KPI Rd, K Konparatu Erregistratu Berehalakoarekin Rd - K Z, N, V, C, H 1
SBRC Rr, b Saltatu Bit Erregistroan garbitu bada baldin (Rr(b)=0) PC ← PC + 2 edo 3 Bat ere ez 1/2/3
SBRS Rr, b Saltatu Bit in Register ezarrita badago baldin (Rr(b)=1) PC ← PC + 2 edo 3 Bat ere ez 1/2/3
SBIC P, b Saltatu Bit I / O erregistroan garbitu bada baldin (P(b)=0) PC ← PC + 2 edo 3 Bat ere ez 1/2/3
SBIS P, b Saltatu Bit I / O erregistroan ezarrita badago baldin (P(b)=1) PC ← PC + 2 edo 3 Bat ere ez 1/2/3
BRBS s, k Adarra egoera bandera ezarrita badago bada (SREG(s) = 1) orduan PC←PC+k + 1 Bat ere ez 1/2
BRBC s, k Adar Egoera bandera ezabatzen bada bada (SREG(s) = 0) orduan PC←PC+k + 1 Bat ere ez 1/2
BREQ k Adarra berdina bada (Z = 1) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRNE k Adarra berdina ez bada (Z = 0) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRCS k Adarra Carry Set bada (C = 1) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRCC k Adarra eraman bada garbituta (C = 0) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRSH k Adarra berdina edo handiagoa bada (C = 0) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRLO k Adarra txikiagoa bada (C = 1) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRMI k Adarra Minus bada (N = 1) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRPL k Adarra Plus bada (N = 0) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRGE k Adarra handiagoa edo berdina bada, Sinatuta (N ⊕ V= 0) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRLT k Adarra Zero baino gutxiago bada, Sinatuta (N ⊕ V= 1) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRHS k Adarra Half Carry Band Ezarri bada (H = 1) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRHC k Adarra Half Carry Bandera garbitu bada (H = 0) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRTS k Adarra T bandera ezarri bada (T = 1) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRTC k Adarra T bandera garbitu bada (T = 0) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRVS k Adarkatu Gainezkatze bandera ezarrita badago (V = 1) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRVC k Adarkatu Gainezkatze bandera ezabatzen bada (V = 0) bada, PC ← PC + k + 1 Bat ere ez 1/2
BRIE k Adarra eten gaituta badago (I = 1) bada, PC ← PC + k + 1 Bat ere ez 1/2
EMAKUMEA k Adarra eten desgaituta badago (I = 0) bada, PC ← PC + k + 1 Bat ere ez 1/2
BIT ETA BIT-TEST JARRAIBIDEAK
SBI P, b Ezarri Bit I / O erregistroan I/O(P,b) ← 1 Bat ere ez 2
CBI P, b Garbitu bit I / O erregistroan I/O(P,b) ← 0 Bat ere ez 2
LSL Rd Desplazamendu logikoa ezkerrera Rd(n+1) ← Rd(n), Rd(0) ← 0 Z, C, N, V 1
LSR Rd Desplazamendu logikoa eskuinera Rd(n) ← Rd(n+1), Rd(7) ← 0 Z, C, N, V 1
ROLE Rd Biratu ezkerrera Carry Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) Z, C, N, V 1
ROR Rd Biratu eskuinera Carry bidez Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) Z, C, N, V 1
ASR Rd Aldaketa aritmetikoa eskuinera Rd(n) ← Rd(n+1), n=0..6 Z, C, N, V 1
Mnemoteknia Operandoak Deskribapena Funtzionamendua Banderak #Erlojuak
TRUKATU Rd Trukatu Nibbles Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) Bat ere ez 1
BSET s Bandera multzoa SREG(k) ← 1 SREG (k) 1
BCLR s Bandera Garbitu SREG(k) ← 0 SREG (k) 1
BST Rr, b Bit denda Erregistrotik T-ra T ← Rr(b) T 1
BLD kalea, b Bit karga Ttik Erregistroa arte Rd(b) ← T Bat ere ez 1
SEK Ezarri Carry C ← 1 C 1
CLC Garbitu Carry C ← 0 C 1
SEN Ezarri bandera negatiboa N ← 1 N 1
CLN Garbitu bandera negatiboa N ← 0 N 1
SEZ Ezarri Zero Bandera Z ← 1 Z 1
CLZ Garbitu zero bandera Z ← 0 Z 1
SEI Eten globala gaitu I ← 1 I 1
CLI Eten globala desgaitu I ← 0 I 1
SES Ezarri sinatutako probaren bandera S ← 1 S 1
CLS Garbitu sinatutako probaren bandera S ← 0 S 1
SEV Ezarri bi osagarrien gainezkapena. V ← 1 V 1
CLV Garbitu bi osagarrien gainezkapena V ← 0 V 1
EZARTU Ezarri T SREG-n T ← 1 T 1
CLT Garbitu T SREG-n T ← 0 T 1
SEH Ezarri Half Carry Band SREG-n H ← 1 H 1
CLH Garbitu Half Carry Band SREG-en H ← 0 H 1
DATUAK TRANSFERENTZEKO JARRAIBIDEAK
MOV Rd, Rr Erregistroen artean mugitu Rd ← Rr Bat ere ez 1
MOVW Rd, Rr Kopiatu Erregistro Hitza Rd+1:Rd ← Rr+1:Rr Bat ere ez 1
LDI kalea, K Karga Berehala Rd ← K Bat ere ez 1
LD kalea, X Kargatu zeharka Rd ← (X) Bat ere ez 2
LD Rd, X + Kargatu zeharkakoa eta posta-gehikuntza. Rd ← (X), X ← X + 1 Bat ere ez 2
LD Rd, - X Kargatu zeharkakoa eta abenduaren aurrekoa. X ← X – 1, Rd ← (X) Bat ere ez 2
LD kalea, Y Kargatu zeharka Rd ← (Y) Bat ere ez 2
LD Rd, Y + Kargatu zeharkakoa eta posta-gehikuntza. Rd ← (Y), Y ← Y + 1 Bat ere ez 2
LD Rd, - Y Kargatu zeharkakoa eta abenduaren aurrekoa. Y ← Y – 1, Rd ← (Y) Bat ere ez 2
LDD Rd, Y + q Kargatu zeharka desplazamenduarekin Rd ← (Y + q) Bat ere ez 2
LD kalea, Z Kargatu zeharka Rd ← (Z) Bat ere ez 2
LD Rd, Z + Kargatu zeharkakoa eta posta-gehikuntza. Rd ← (Z), Z ← Z+1 Bat ere ez 2
LD kalea, -Z Kargatu zeharkakoa eta abenduaren aurrekoa. Z ← Z – 1, Rd ← (Z) Bat ere ez 2
LDD Rd, Z + q Kargatu zeharka desplazamenduarekin Rd ← (Z + q) Bat ere ez 2
LDS kalea, k Kargatu zuzenean SRAMetik Rd ← (k) Bat ere ez 2
ST X, Rr Zeharka gorde (X) ← Rr Bat ere ez 2
ST X +, Rr Denda zeharkakoa eta post-inc. (X) ← Rr, X ← X + 1 Bat ere ez 2
ST - X, Rr Denda zeharkakoa eta abenduaren aurrekoa. X ← X – 1, (X) ← Rr Bat ere ez 2
ST Y, Rr Zeharka gorde (Y) ← Rr Bat ere ez 2
ST Y +, Rr Denda zeharkakoa eta post-inc. (Y) ← Rr, Y ← Y + 1 Bat ere ez 2
ST - Bai, Rr Denda zeharkakoa eta abenduaren aurrekoa. Y ← Y – 1, (Y) ← Rr Bat ere ez 2
STD Y + q, Rr Gorde zeharkako desplazamenduarekin (Y + q) ← Rr Bat ere ez 2
ST Z, Rr Zeharka gorde (Z) ← Rr Bat ere ez 2
ST Z +, Rr Denda zeharkakoa eta post-inc. (Z) ← Rr, Z ← Z + 1 Bat ere ez 2
ST -Z, Rr Denda zeharkakoa eta abenduaren aurrekoa. Z ← Z – 1, (Z) ← Rr Bat ere ez 2
STD Z + q, Rr Gorde zeharkako desplazamenduarekin (Z + q) ← Rr Bat ere ez 2
STS k, Rr Gorde SRAM zuzenean (k) ← Rr Bat ere ez 2
LPM Kargatu Programa Memoria R0 ← (Z) Bat ere ez 3
LPM kalea, Z Kargatu Programa Memoria Rd ← (Z) Bat ere ez 3
LPM Rd, Z + Kargatu Programaren Memoria eta Post-Inc Rd ← (Z), Z ← Z+1 Bat ere ez 3
SPM Programaren memoria gorde (z) ← R1:R0 Bat ere ez
IN kalea, P Portuan Rd ← P Bat ere ez 1
KANPO P, Rr Portutik kanpora P ← Rr Bat ere ez 1
BULTZATU Rr Push Erregistratu pilan PILA ← Rr Bat ere ez 2
POP Rd Pop Erregistratu pilatik Rd ← PILA Bat ere ez 2
MCU KONTROLARAKO JARRAIBIDEAK
NOP Eragiketarik ez Bat ere ez 1
LO Lo egin (ikusi deskripzio zehatza Lo egiteko funtzioarentzat) Bat ere ez 1
WDR Watchdog berrezartzea (ikusi deskribapen zehatza WDR / Tenporizadorearentzako) Bat ere ez 1
ATSEDEN Atsedenaldia
Abiadura (MHz) (1) Hornidura Boltage (V) Tenperatura tartea Paketea (2) Agindu Kodea (3)
10 1.8-5.5 Industriala

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

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

Oharrak: 1. Abiadura vs hornidura boltage, ikusi atala 21.3 "Abiadura" 163. orrialdean.

Pakete guztiak Pbrik gabeak, halogenurarik gabeak eta guztiz berdeak dira eta Substantzia Arriskutsuak Murrizteko Europako Zuzentaraua (RoHS) betetzen dute.

Kode adierazleak

H: NiPdAu berunezko akabera

U: lata matea

R: zinta eta bobina

Gailu hauek obleak moduan ere hornitu daitezke. Mesedez, jarri harremanetan Atmeleko tokiko salmenta bulegoarekin, eskaera xehetasunetarako eta gutxieneko kantitateetarako.

Erratea

Errata ATtiny25

Atal honetako berrikuspen gutunak ATtiny25 gailuaren berrikuspenari egiten dio erreferentzia.

D Rev - F

Errata ezagunik ez.

B Rev - C

EEPROM irakurketak huts egin dezake hornidura bolumen baxuantage / erloju-maiztasun baxua

EEPROM irakurketak huts egin dezake hornidura bolumen baxuantage / erloju-maiztasun baxua

EEPROM erloju-maiztasun baxuetan eta/edo hornikuntza bolumen baxuetan irakurtzen saiatzeatagDatu baliogabeak sor ditzake.

Arazo konponketa / konponbidea

Ez erabili EEPROM erlojuaren maiztasuna 1MHz-tik behera dagoenean eta hornitu bolumena deneantage 2V azpitik dago. Funtzionamendu-maiztasuna ezin bada 1MHz-tik gora igo, hornitu bolumenatage 2V baino gehiago izan behar du. Era berean, hornidura boltagEzin da 2V-tik gora igo, orduan funtzionamendu-maiztasuna 1MHz baino gehiago izan behar da.

Ezaugarri hau tenperaturaren menpe dagoela jakin da, baina ez da ezaugarririk izan. Giroaren tenperaturari buruzko jarraibideak ematen dira soilik.

A Rev.

Ez sampLed.

Errata ATtiny45

Atal honetako berrikuspen gutunak ATtiny45 gailuaren berrikuspenari egiten dio erreferentzia.

F Rev - G

Errata ezagunik ez

Rev. D - E

EEPROM irakurketak huts egin dezake hornidura bolumen baxuantage / erloju-maiztasun baxua

EEPROM irakurketak huts egin dezake hornidura bolumen baxuantage / erloju-maiztasun baxua

EEPROM erloju-maiztasun baxuetan eta/edo hornikuntza bolumen baxuetan irakurtzen saiatzeatagDatu baliogabeak sor ditzake.

Arazo konponketa / konponbidea

Ez erabili EEPROM erlojuaren maiztasuna 1MHz-tik behera dagoenean eta hornitu bolumena deneantage 2V azpitik dago. Funtzionamendu-maiztasuna ezin bada 1MHz-tik gora igo, hornitu bolumenatage 2V baino gehiago izan behar du. Era berean, hornidura boltagEzin da 2V-tik gora igo, orduan funtzionamendu-maiztasuna 1MHz baino gehiago izan behar da.

Ezaugarri hau tenperaturaren menpe dagoela jakin da, baina ez da ezaugarririk izan. Giroaren tenperaturari buruzko jarraibideak ematen dira soilik.

B Rev - C

PLL ez blokeatzen

Aplikazio kodetik irakurritako EEPROMak ez du funtzionatzen Blokeo Bit 3 moduan

EEPROM irakurketak huts egin dezake hornidura bolumen baxuantage / erloju-maiztasun baxua

Tenporizadorearen kontagailuak 1 PWM irteera sortzeak OC1B-XOC1B-n ez du behar bezala funtzionatzen

PLL ez blokeatzen

6.0 MHz-tik beherako maiztasunetan, PLLa ez da blokeatuko

Arazo konponketa / konponbidea

PLLa erabiltzean, exekutatu 6.0 MHz edo handiagoa.

Aplikazio kodetik irakurritako EEPROMak ez du funtzionatzen Blokeo Bit 3 moduan

Memoria blokeatzeko bitak LB2 eta LB1 3. modura programatuta daudenean, EEPROM irakurketak ez du funtzionatzen aplikazioaren kodetik.

Arazoa konpondu / inguruan lan egin

Ez konfiguratu Blokeo Biteko Babeserako Modua 3 aplikazioaren kodeak EEPROMetik irakurri behar duenean.

EEPROM irakurketak huts egin dezake hornidura bolumen baxuantage / erloju-maiztasun baxua

EEPROM erloju-maiztasun baxuetan eta/edo hornikuntza bolumen baxuetan irakurtzen saiatzeatagDatu baliogabeak sor ditzake.

Arazo konponketa / konponbidea

Ez erabili EEPROM erlojuaren maiztasuna 1MHz-tik behera dagoenean eta hornitu bolumena deneantage 2V azpitik dago. Funtzionamendu-maiztasuna ezin bada 1MHz-tik gora igo, hornitu bolumenatage 2V baino gehiago izan behar du. Era berean, hornidura boltagEzin da 2V-tik gora igo, orduan funtzionamendu-maiztasuna 1MHz baino gehiago izan behar da.

Ezaugarri hau tenperaturaren menpe dagoela jakin da, baina ez da ezaugarririk izan. Giroaren tenperaturari buruzko jarraibideak ematen dira soilik.

Tenporizadorearen kontagailua 1 PWM irteera sortzea OC1B-n - XOC1B-k ez du ondo funtzionatzen

Tenporizadorearen kontagailua1 PWM irteerak OC1B-XOC1B ez du ondo funtzionatzen. Kontrol-bitak, COM1B1 eta COM1B0, COM1A1 eta COM1A0 moduen moduan daudenean soilik, OC1B-XOC1B irteerak behar bezala funtzionatzen du.

Arazoa konpondu / inguruan lan egin

Konponbide bakarra COM1A [1: 0] eta COM1B [1: 0] kontrol bitetan kontrol ezarpen bera erabiltzea da, ikusi 14-4 taula datu orrian. Arazoa konpondu da Tiny45 rev D-rako.

A Rev.

Energia kontsumo handiegia

DebugWIRE-k komunikazioa galtzen du etenetara urrats bakarra egitean

PLL ez blokeatzen

Aplikazio kodetik irakurritako EEPROMak ez du funtzionatzen Blokeo Bit 3 moduan

EEPROM irakurketak huts egin dezake hornidura bolumen baxuantage / erloju-maiztasun baxua

Energia kontsumo handiegia

Hiru egoerek botere kontsumo handiegia murriztuko dute. Hauek dira:

Fusibleen bidez kanpoko erlojua hautatzen da, baina I / O PORT gaituta dago irteera gisa.

EEPROM irakurtzen da itzali aurretik.

VCC 4.5 volt edo handiagoa da.

Lege-oharra: dokumentu honetako informazioa Atmel produktuekin lotuta dago. Dokumentu honek edo Atmel produktuen salmentarekin lotutako lizentziarik, espresuki edo inplizituki, ezeztatzeko edo bestela, jabetza intelektualeko eskubiderik ez du ematen. ATMEL-EN KOKATUTAKO SALMENTA-BALDINTZA ETA BALDINTZAK EZATUTAKOA IZAN EZ WEBGUNEA, ATMEL-ek EZ DU EZ DIO ERABILKIZUN ERABILTZEN ETA BERE PRODUKTUEI BURUZKO BERME ESPALIZIKO, INPLIZITU ETA LEGEZKO BERME EZ DU BEHAR, MERKATARITZAREN, HELBURU BATEKO EGOKITASUNAREN, ERABILTZEKO BERME INPLIZITUA BARNE. ATMEL EZ DA INOLA EZ DUTE ERABILTZEKO GALERAK ERABILTZEKO GAITASUNAK SORTZEN DITUZTEN KALTE ZUZENEKO, ZEHHENAK, ONDORIOZKO, ZIGARRIK, BEREZI EDO BEHARREKO KALTEEN ERANTZUKIZUNA (MUGA GABE, GALERAK ETA IRABAZKETAK, NEGOZIO-ETENA EDO INFORMAZIOA GALTZEKOA BARNE). DOKUMENTU HAU, ATMEL-I KALTE HONEK EGITEKO AUKERA EGON IZAN IZAN BADIEREN.

Atmel-ek ez du inolako adierazpenik edo bermerik ematen dokumentu honen edukiaren zehaztasunari edo osotasunari buruz eta edozein unetan zehaztapenetan eta produktuen deskribapenetan aldaketak egiteko eskubidea gordetzen du, jakinarazi gabe. Atmel-ek ez du inongo konpromisorik hartzen hemen jasotako informazioa eguneratzeko. Berariaz bestelakorik xedatu ezean, Atmel produktuak ez dira egokiak automobilgintzako aplikazioetarako eta ez dira erabiliko. Atmel-eko produktuak ez daude diseinatuta, baimenduta edo bermatuta osagai gisa erabiltzeko bizitzari eusteko edo iraunarazteko xedea duten aplikazioetan.

Erreferentziak

Utzi iruzkin bat

Zure helbide elektronikoa ez da argitaratuko. Beharrezko eremuak markatuta daude *