Atmel 8-bita AVR örstýringur með 2/4/8K bætum forritanlegt flass í kerfinu
Eiginleikar
- Afkastamikil, lágt afl AVR® 8-bita örstýri
- Háþróaður RISC arkitektúr
- 120 Öflugar leiðbeiningar - Flestar klukkur hringrás framkvæmd
- 32 x 8 Vinnuskrár fyrir almennan tilgang
- Algjörlega stöðug aðgerð
- Óstöðug dagskrá og gagnaminningar
- 2/4 / 8K bæti af forritanlegu forritaminni flassi innan kerfisins
- Þol: 10,000 ritunar-/eyðalotur
- 128/256/512 Bytes forritanlegur EEPROM í kerfinu
- Þol: 100,000 ritunar-/eyðalotur
- 128/256/512 Bytes Innra SRAM
- Forritunarlæsing fyrir sjálfsforritunarflassforrit og EEPROM gagnaöryggi
Útlægir eiginleikar
- 8-bita tímastillir / teljari með Prescaler og tveimur PWM rásum
- 8 bita háhraðatímastillir / teljari með aðskildum forritara
- 2 hátíðni PWM framleiðsla með aðskildum samanburðarskrám
- Forritanlegur dauðatíma rafall
- USI - alhliða raðtengi með byrjunarskynjara
- 10 bita ADC
4 einstök rásir
2 mismunandi ADC rásapör með forritanlegum ávinningi (1x, 20x)
Hitamæling
Forritanlegur varðhundatími með aðskildum sveiflujöfnun á flís
Analog samanburður á flís
Sérstakar aðgerðir örstýringar
debugWIRE kembiforrit á flögu
Forritanlegt innan kerfisins um SPI-tengi
Ytri og innri truflunarheimildir
Aðgerðarleysi með lágum afköstum, ADC hávaðaminnkun og slökkt á ham
Aukið endurstilla hringrás
Forritanlegur Brown-out uppgötvun hringrás
Innri kvarðaðri oscillator
I / O og pakkar
Sex forritanlegar I / O línur
8 pinna PDIP, 8 pinna SOIC, 20 púða QFN / MLF og 8 pinna TSSOP (aðeins ATtiny45 / V)
Operation Voltage
- 1.8 - 5.5V fyrir ATtiny25V / 45V / 85V
- 2.7 - 5.5V fyrir ATtiny25 / 45/85
Hraðaeinkunn
- 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
Iðnaðarhitastig
Lítil orkunotkun
Virkur háttur:
1 MHz, 1.8V: 300 µA
Slökkt á ham:
Pin stillingar
Pinout ATtiny25 / 45/85
Pinnalýsingar
VCC: Framboð binditage.
GND: Jörð.
Port B (PB5:PB0): Port B er 6 bita tvíátta I/O tengi með innri uppdráttarviðnám (valið fyrir hvern bita). Port B úttaksbuffarnir hafa samhverfa drifeiginleika með bæði mikilli vaski og uppsprettugetu. Sem inntak munu Port B pinnar sem eru dregnir lágt að utan gefa straum ef uppdráttarviðnámið er virkjað. Port B pinnarnir eru þrígreindir þegar endurstillingarástand verður virkt, jafnvel þó að klukkan sé ekki í gangi.
Gátt B þjónar einnig hlutverkum ýmissa sérkennum ATtiny25 / 45/85 eins og skráð er
Á ATtiny25 er skipt um forritanlegu I / O tengin PB3 og PB4 (pinna 2 og 3) í ATtiny15 samhæfingarhamnum til að styðja við afturvirkni við ATtiny15.
RESET: Núllstilla inntak. Lágt stig á þessum pinna lengur en lágmarkspúlslengd mun framleiða endurstillingu, jafnvel þótt klukkan sé ekki í gangi og að því gefnu að endurstillingspinninn hafi ekki verið óvirkur. Lágmarks púlslengd er gefin upp Tafla 21-4 á síðu 165. Ekki er tryggt að styttri pulsur myndi endurstillingu.
Endurstillingarpinninn er einnig hægt að nota sem (veikan) I / O pinna.
Yfirview
ATtiny25 / 45/85 er CMOS 8-bita örstýring með litlu afli byggt á AVR aukinni RISC arkitektúr. Með því að framkvæma öflugar leiðbeiningar í einni klukkuhring ná ATtiny25 / 45/85 afköstum sem nálgast 1 MIPS á hvert MHz sem gerir kerfishönnuðinum kleift að hámarka orkunotkun á móti vinnsluhraða.
Loka skýringarmynd
AVR kjarninn sameinar mikið leiðbeiningasett með 32 almennum vinnuskrám. Allar 32 skrárnar eru tengdar beint við reikniaðferðareininguna (ALU), sem gerir kleift að nálgast tvær óháðar skrár í einni leiðbeiningu sem framkvæmd er í einni klukkuhring. Sú arkitektúr sem myndast er skilvirkari með kóða meðan hann nær framstreymi allt að tífalt hraðar en venjulegir CISC örstýringar.
ATtiny25 / 45/85 býður upp á eftirfarandi eiginleika: 2/4 / 8K bæti af forritanlegu flassi innan kerfisins, 128/256/512 bæti EEPROM, 128/256/256 bæti SRAM, 6 almennar I / O línur, 32 almennar tilgangur vinnuskrá, einn 8-bita tímamælir / teljari með samanburðarhamum, einn 8-bita háhraða teljari / teljari, alhliða raðtengi, innri og ytri truflanir, 4 rásir, 10 bita ADC, forritanlegur varðhundur með innri Oscillator og þrír hugbúnaðarvaldir orkusparnaðarstillingar. Aðgerðalaus stilling stöðvar örgjörvann meðan SRAM, tímastillirinn / teljarinn, ADC, Analog Comparator og Interrupt kerfið halda áfram að virka. Rafmagnstilling vistar skrána innihald og gerir allar flísaðgerðir óvirkar þar til næsta truflun eða endurstilling vélbúnaðar er gerð. ADC hávaðaminnkun stöðvar örgjörvann og alla I / O einingar nema ADC, til að lágmarka rofaskipti við ADC viðskipti.
Tækið er framleitt með því að nota Atmel háþéttni minni ótvíræðu minni tækni. ISP-flassið á flís gerir kleift að forrita forritaminnið í kerfinu í gegnum SPI raðtengi, af hefðbundnum órólegum forritara eða með ræsikóða á flögu sem keyrir á AVR-kjarna.
ATTiny25 / 45/85 AVR er studd með fullum forritum og kerfisþróunartækjum þar á meðal: C hjálparforrit, makrósambönd, forritskembuleiðbeiningar / hermir og matsett.
Um auðlindir
Ítarlegt safn þróunarverkfæra, umsóknarnótur og gagnablöð er hægt að hlaða niður á http://www.atmel.com/avr.
Kóði Examples
Þessi skjöl innihalda einfaldan kóða examples sem sýna stuttlega hvernig nota á ýmsa hluta tækisins. Þessir kóðar fyrrvamples gera ráð fyrir að hluti tiltekinn haus file er innifalin fyrir samantekt. Vertu meðvitaður um að ekki allir C þýðendur birgja innihalda bitaskilgreiningar í hausnum files og truflun á meðhöndlun í C er háð þýðanda. Vinsamlegast staðfestu með C þýðandaskjölunum til að fá frekari upplýsingar.
Fyrir I / O-skrár sem staðsettar eru í útvíkkaða I / O-kortinu, verður að skipta um „IN“, „OUT“, „SBIS“, „SBIC“, „CBI“ og „SBI“ með leiðbeiningum sem leyfa aðgang að lengri I / O. Venjulega þýðir þetta „LDS“ og „STS“ ásamt „SBRS“, „SBRC“, „SBR“ og „CBR“. Athugaðu að ekki eru öll AVR tæki með útbreitt I / O kort.
Rafrýmd snertiskynjun
Atmel QTouch Library býður upp á einfalda í notkun fyrir snertiviðmót á Atmel AVR örstýringum. QTouch bókasafnið inniheldur stuðning við QTouch® og QMatrix® kaupaðferðir.
Snertiskynjun er auðveldlega bætt við hvaða forrit sem er með því að tengja saman QTouch bókasafnið og nota forrit forritunarviðmót (API) bókasafnsins til að skilgreina snertirásir og skynjara. Forritið kallar síðan á API til að sækja rásarupplýsingar og ákvarða stöðu snertiskynjarans.
QTouch bókasafnið er ókeypis og hægt er að hlaða því niður frá Atmel websíðu. Nánari upplýsingar og upplýsingar um framkvæmd má finna í notendahandbók QTouch bókasafnsins - einnig fáanleg hjá Atmel websíða.
Varðveisla gagna
Áreiðanleikaniðurstöður úr hæfni sýna að áætlað bilunarhlutfall gagnageymslu er mun minna en 1 PPM á 20 árum við 85 ° C eða 100 ár við 25 ° C.
AVR CPU algerlega
Inngangur
Þessi hluti fjallar almennt um AVR kjarna arkitektúr. Meginhlutverk CPU algerlega er að tryggja rétta forritaframkvæmd. Örgjörvinn verður því að geta nálgast minningar, framkvæmt útreikninga, stjórnað jaðartæki og séð um truflanir.
Arkitektúr lokiðview
Til að hámarka afköst og samhliða notkun notar AVR Harvard arkitektúr - með aðskildum minningum og strætisvögnum fyrir forrit og gögn. Leiðbeiningar í forritaminni eru framkvæmdar með eins stigs leiðslum. Á meðan ein kennsla er framkvæmd er næsta kennsla fyrirfram sótt úr forritsminni. Þetta hugtak gerir kleift að framkvæma leiðbeiningar í hverri klukkuhringrás. Forritaminnið er endurforritanlegt í Flash-minni.
Skjót aðgangsskrá File inniheldur 32 x 8 bita almennar vinnuskrár með einum aðgangstíma klukkulotu. Þetta gerir kleift að nota einlota ALU (Aritmetic Logic Unit) aðgerð. Í dæmigerðri ALU-aðgerð eru tvær operendur sendar út úr skránni File, aðgerðin er framkvæmd og niðurstaðan er geymd aftur í skránni File- í einni klukkuhringrás.
Sex af 32 skrám er hægt að nota sem þrjá 16 bita óbeina veffangaskrárbendingar fyrir gagnaflutningsstýringu - sem gerir skilvirka heimilisfangútreikninga kleift. Einn af þessum veffangsbendingum er einnig hægt að nota sem veffang til að fletta upp töflum í Flash Program minni. Þessar viðbótaraðgerðarskrár eru 16 bita X-, Y- og Z-skráin, sem lýst er síðar í þessum kafla.
ALU styður reikniaðgerðir og rökfræðilegar aðgerðir á milli skrár eða milli fastrar og skrár. Einnig er hægt að framkvæma aðgerðir í einum skrá í ALU. Eftir reikniaðgerð er stöðuskrá uppfærð til að endurspegla upplýsingar um niðurstöðu aðgerðarinnar.
Flæði dagskrár er veitt með skilyrtum og skilyrðislausum stökk- og hringingarleiðbeiningum sem geta beint beint til alls heimilisfangssvæðisins. Flestar AVR leiðbeiningar eru með eitt 16 bita orðsnið, en það eru líka 32 bita leiðbeiningar.
Meðan á truflunum og undirrútusímtölum stendur, er skilfangið Program Counter (PC) geymt á Stackanum. Staflinum er í raun úthlutað í almennu gögnum SRAM og þar af leiðandi er Staflastærð aðeins takmörkuð af heildar SRAM stærð og notkun SRAM. Öll notendaforritin verða að frumstilla SP í Reset venjunni (áður en undirrútínur eða truflanir eru framkvæmdar). Stack Pointer (SP) er lesinn / skrifaður aðgengilegur í I / O rýminu. Auðvelt er að nálgast gögnin SRAM í gegnum fimm mismunandi heimilisfangsaðstæður sem studdir eru í AVR arkitektúr.
Minni rýmin í AVR arkitektúrnum eru öll línuleg og venjuleg minniskort.
Sveigjanleg truflunareining hefur stjórnaskrár sínar í I / O-rýminu með viðbótar Global Interrupt Enable bit í stöðuskránni. Öll truflun hefur sérstaka truflunarveikju í töflu truflunarveikrunnar. Truflanirnar hafa forgang í samræmi við stöðu Truflunarveiku. Því lægra sem truflunarvefsetfangið er, því hærra er forgangurinn.
I/O minnisrýmið inniheldur 64 vistföng fyrir útlægar aðgerðir CPU sem stjórnaskrár, SPI og aðrar I/O aðgerðir. Hægt er að nálgast I/O-minnið beint eða sem staðsetningar gagna- rýmisins í kjölfar staðsetningar skráningarstjóra File, 0x20 - 0x5F.
ALU - Rökfræðileg rökfræðieining
Hágæða AVR ALU starfar í beinni tengingu við alla 32 vinnuskrána í almennum tilgangi. Innan einnar klukkuhringrásar eru reikniaðgerðir milli almennra notkunarskrár eða milli skráar og tafarlausar framkvæmdar. ALU aðgerðunum er skipt í þrjá meginflokka - reikning, rökrétt og bitastarfsemi. Sumar útfærslur á arkitektúrnum veita einnig öflugan margfaldara sem styður bæði undirritaðan / óundirritaðan margföldun og brotasnið. Sjá hlutann „Leiðbeiningar“ fyrir nánari lýsingu.
Stöðuskrá
Stöðuskráin inniheldur upplýsingar um niðurstöðu reiknikennslu sem síðast var framkvæmd. Þessar upplýsingar er hægt að nota til að breyta flæði dagskrár til að framkvæma skilyrta aðgerð. Athugaðu að stöðuskráin er uppfærð eftir allar aðgerðir ALU, eins og tilgreint er í leiðbeiningum um leiðbeiningasett. Þetta mun í mörgum tilfellum fjarlægja þörfina á því að nota sérstakar samanburðarleiðbeiningar, sem leiðir til hraðari og þéttari kóða.
Stöðuskráin er ekki sjálfkrafa geymd þegar farið er í truflana og endurheimt þegar hún snýr aftur úr truflun. Þetta verður að vera meðhöndlað af hugbúnaði.
SREG - AVR Stöðuskrá
AVR stöðuskráin - SREG - er skilgreind sem:
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | SREG |
Lesa/skrifa | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - I: Global Interrupt Enable
Setja þarf Global Interrupt Enable bitann til að truflanirnar verði virkjaðar. Einstaka truflunarvirkjunarstýringin er síðan framkvæmd í aðskildum stjórnskrám. Ef Global Interrupt Enable Register er hreinsað er ekkert af truflunum gert virkt óháð einstökum truflunarstillingum. I-bitinn er hreinsaður af vélbúnaði eftir að truflun hefur átt sér stað og er stilltur með RETI leiðbeiningunum til að gera síðari truflanir kleift. I-bitann er einnig hægt að stilla og hreinsa með forritinu með SEI og CLI leiðbeiningunum, eins og lýst er í tilvísun leiðbeiningasettsins.
Bit 6 - T: Bit Copy geymsla
Bitafritunarleiðbeiningarnar BLD (Bit LoaD) og BST (Bit STore) nota T-bita sem uppspretta eða ákvörðunarstað fyrir rekna bita. Svolítið frá skrá í Register File er hægt að afrita inn í T með BST kennslu og hægt er að afrita hluti í T í hluti í skrá í skránni File með BLD kennslu.
Bit 5 - H: Half Carry Flag
Half Carry Flag H gefur til kynna Half Carry í sumum reikniaðgerðum. Half Carry er gagnlegt í BCD reiknifræði. Sjá „Lýsingarsamstæðulýsing“ fyrir nánari upplýsingar.
Bit 4 – S: Sign Bit, S = N ⊕ V
S-bitinn er alltaf einkarétt eða á milli neikvæða fánans N og viðbótarflæðisfána tveggja. Sjá „Lýsingarsettalýsing“ fyrir nánari upplýsingar.
Bit 3 - V: Fylgihlutfall Two's Complement
Fylgihlutfall tveggja fylgjna tveggja styður viðbótarreikning. Sjá „Lýsingarsamstæðulýsing“ fyrir nánari upplýsingar.
Bit 2 - N: Neikvæður fáni
Neikvæði fáninn N gefur til kynna neikvæða niðurstöðu í reikningsaðgerð eða rökfræðilegri aðgerð. Sjá „Lýsingarsamstæðulýsing“ fyrir nánari upplýsingar.
Bit 1 - Z: Núll fáni
Núll fáninn Z gefur til kynna að niðurstaðan sé núll í reiknings- eða rökfræðilegri aðgerð. Sjá „Lýsingarsamstæðulýsing“ fyrir nánari upplýsingar.
Bit 0 - C: Carry Flag
Carry Flag C táknar flutning í reiknings- eða rökfræðilegri aðgerð. Sjá „Lýsing leiðarlýsingar“ fyrir nánari upplýsingar.
Skrá um almenna tilgang File
Skráin File er fínstillt fyrir AVR Enhanced RISC kennslusettið. Til að ná fram nauðsynlegum árangri og sveigjanleika eru eftirfarandi inntaks-/úttaksáætlanir studdar af skránni File:
Ein 8 bita útgangsaðgerð og ein 8 bita útkoma
Tvær 8-bita framleiðsluaðgerðir og ein 8-bita niðurstöður
Tvær 8-bita framleiðsluaðgerðir og ein 16-bita niðurstöður
Ein 16 bita útgangsaðgerð og ein 16 bita útkoma
Mynd 4-2 sýnir uppbyggingu 32 almennu vinnuskráa í örgjörva.
Eins og sýnt er í Mynd 4-2, hverri skrá er einnig úthlutað gagnaminnisfangi, sem kortleggur þau beint á fyrstu 32 staðina í gagnasvæði notandans. Þó að þetta sé ekki útfært líkamlega sem SRAM staðsetningar, þá veitir þetta minni skipulag mikinn sveigjanleika í aðgangi að skrám, þar sem hægt er að stilla X-, Y- og Z-bendilaskrána til að skrá hvaða skrá sem er í file.Flestar leiðbeiningar sem starfa á skránni File hafa beinan aðgang að öllum skrám og flest þeirra eru leiðbeiningar um eina hringrás.
X-skrá, Y-skrá og Z-skrá
Skrárnar R26..R31 hafa nokkrar auknar aðgerðir við almenna notkun þeirra. Þessar skrár eru 16 bita veffang til að beina óbeinum gögnum. Þrjár óbeinu heimilisfangaskrárnar X, Y og Z eru skilgreindar eins og lýst er í Mynd 4-3.
Í mismunandi takmörkunaraðferðum hafa þessar heimilisfangaskrár virk sem fasta tilfærslu, sjálfvirka aukningu og sjálfvirka lækkun (sjá upplýsingar um leiðbeiningasettið).
Stafla bendi
Stakkinn er aðallega notaður til að geyma tímabundin gögn, til að geyma staðbundnar breytur og til að geyma skilanetföng eftir truflanir og undirútköll. Stafur bendilinn skrá bendir alltaf á toppinn á staflinum. Athugaðu að Stack er útfærð sem vaxandi frá hærri minnisstöðum til lægri minnistaða. Þetta felur í sér að Stack PUSH skipun lækkar Stack Pointer.
Stafla bendillinn vísar til gagna SRAM staflasvæðisins þar sem undirútgáfan og trufla stafla eru. Þetta stafla rými í gögnum SRAM verður að skilgreina af forritinu áður en einhverjar undirútköll eru framkvæmd eða truflun er virk. Stafla bendi verður að vera stillt yfir 0x60. Stafla bendillinn er minnkaður af einum þegar gögnum er ýtt á Staflann með PUSH leiðbeiningunni, og það er minnkað af tveimur þegar heimtanfanginu er ýtt á Staflann með undirferðarkalli eða truflun. Stafla bendillinn er aukinn með einum þegar gögnum er skotið úr staflinum með POP leiðbeiningunni, og það er aukið með tveimur þegar gögnum er skotið úr staflinum með endurkomu frá undirútgáfu RET eða aftur frá truflun RETI.
AVR Stack Pointer er útfærður sem tveir 8-bita skrár í I / O rýminu. Fjöldi bita sem raunverulega er notaður er háð útfærslu. Athugaðu að gagnarýmið í sumum útfærslum á AVR arkitektúrnum er svo lítið að aðeins SPL er þörf. Í þessu tilfelli verður SPH-skráin ekki til staðar.
SPH og 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 | ||
Lesa/skrifa | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Lesa/skrifa | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Upphafsgildi | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | |
Upphafsgildi | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND |
Tímasetning á framkvæmd framkvæmdar
Þessi hluti lýsir almennum aðgangstímahugmyndum fyrir framkvæmd leiðbeininga. AVR CPU er knúin áfram af CPU klukkunni clkCPU, sem er beint myndaður frá völdum klukkugjafa fyrir flísinn. Engin innri klukkuskipting er notuð.
Mynd 4-4 sýnir samhliða kennsluhagnað og kennsluútfærslur sem Harvard arkitektúr og hröð aðgangsskrá gera kleift File hugtak. Þetta er grundvallar leiðsluhugtakið til að fá allt að 1 MIPS á MHz með tilheyrandi einstökum niðurstöðum fyrir aðgerðir á kostnað, aðgerðir á klukku og aðgerðir á orkueiningu.
Mynd 4-5. Einlota ALU aðgerð
Endurstilla og trufla meðhöndlun
AVR veitir nokkrar mismunandi truflunarheimildir. Þessar truflanir og aðskilinn Reset Vector hafa hvor sinn sér Program Vector í forritsminni. Öllum truflunum er úthlutað einstökum virkjunarbitum sem verða að vera skrifaðir rökfræðilega einn ásamt Global Interrupt Enable bitanum í stöðuskránni til að gera truflunina kleift.
Lægstu heimilisföngin í forritsminnisrýminu eru sjálfgefin skilgreind sem endurstillingar- og truflunarferlar. Heill listi yfir vektorana er sýndur í „Truflanir“ á bls. 48. Listinn ákvarðar einnig forgangsstig mismunandi truflana. Því lægra heimilisfang því hærra er forgangsstigið. RESET hefur mestan forgang og næst er INT0 - Beiðni um ytri truflun 0.
Þegar truflun á sér stað er Global Interrupt Enable I-bit hreinsaður og öll truflun óvirk. Hugbúnaður notandans getur skrifað lógík í I-bitann til að virkja truflanir. Öll truflanir geta þá truflað núverandi truflunarreglu. I-bitinn er stilltur sjálfkrafa þegar Return from Interrupt kennsla - RETI - er framkvæmd.
Það eru í grundvallaratriðum tvenns konar truflanir. Fyrsta tegundin er kölluð af atburði sem setur Truflunarfánann. Fyrir þessar truflanir er forritateljarinn myndaður í raunverulegan truflunarveika til að framkvæma truflana meðhöndlunartíma og vélbúnaður hreinsar samsvarandi truflunarfána. Einnig er hægt að hreinsa truflunarfána með því að skrifa rökfræði í fánabitastöðu (r) til að hreinsa. Ef truflunarástand kemur fram meðan samsvarandi hlé á virkjunarhreinsun er hreinsað verður Truflunarmerki stillt og munað þar til hlé er gert virkt, eða fáninn er hreinsaður af hugbúnaði. Á sama hátt, ef eitt eða fleiri truflunarskilyrði eiga sér stað meðan Global Interrupt Enable bit er hreinsað, verða samsvarandi Truflunarfánar settir og munaðir þar til Global Interrupt Enable bitinn er stilltur og verður þá keyrður eftir forgangsröð.
Önnur gerð truflana kemur af stað svo framarlega sem truflunarástandið er til staðar. Þessar truflanir hafa ekki nauðsynlega truflunarfána. Ef truflunarástandið hverfur áður en truflunin er gerð virk verður truflunin ekki virkjuð.
Þegar AVR hættir við hlé mun það alltaf snúa aftur að aðalforritinu og framkvæma eina leiðbeiningu í viðbót áður en hlé er gert á bið.
Athugaðu að stöðuskráin er ekki sjálfkrafa geymd þegar farið er í truflunarreglu né endurheimt þegar hún snýr aftur úr truflunum. Þetta verður að vera meðhöndlað af hugbúnaði.
Þegar CLI leiðbeiningar eru notaðar til að slökkva á truflunum verða truflanirnar gerðar óvirkar strax. Engin truflun verður framkvæmd eftir CLI kennsluna, jafnvel þótt hún gerist samtímis CLI kennslunni. Eftirfarandi fyrrvample sýnir hvernig hægt er að nota þetta til að forðast truflanir meðan á tímasettri EEPROM ritröð stendur.
Samsetningarreglur Example |
í r16, SREG; geyma SREG gildi
cli ; slökkva á truflunum á tímasettri röð sbi EECR, EEMPE ; byrjaðu að skrifa EEPROM sbi EECR, EEPE út SREG, r16; endurheimta SREG gildi (I-bita) |
C kóða Example |
bleikju cSREG;
cSREG = SREG; /* geyma SREG gildi */ /* slökkva á truflunum á tímasettri röð */ _CLI (); EECR |= (1< EECR | = (1 < SREG = cSREG; /* endurheimta SREG gildi (I-bita) */ |
Þegar SEI leiðbeiningar eru notaðar til að gera truflanir mögulegar, verður kennslan á eftir SEI framkvæmd áður en hlé verða á, eins og sýnt er í þessu frv.ample.
Samsetningarreglur Example |
sei ; stilltu Global Interrupt Enable
sofa; fara í svefn, bíða eftir truflun ; athugið: mun fara í svefn áður en nokkur bíður ; trufla (s) |
C kóða Example |
_SEI(); /* stilla Global Interrupt Enable */
_SVEFN(); /* fara í svefn, bíða eftir truflun */ / * athugasemd: mun fara í svefn áður en truflanir eru í bið * / |
Truflaðu viðbragðstíma
Viðbrögð við stöðvun framkvæmdar fyrir öll virkt AVR-truflanir eru að lágmarki fjórar klukkur. Eftir fjórar klukkuferðir er heimilisfang veffangsins fyrir raunverulegu truflunaraðferðina framkvæmt. Á þessu fjóra klukku hringrásartímabili er dagskrárborðinu ýtt á stafla. Vigurinn er venjulega stökk til truflana og þetta stökk tekur þrjár klukkuferðir. Ef truflun á sér stað við framkvæmd fjölrása leiðbeiningar er þessari leiðbeiningu lokið áður en hléinu er þjónað. Ef truflun á sér stað þegar MCU er í svefnham, er svörunartími truflunar aukinn um fjórar klukkuferðir. Þessi aukning kemur til viðbótar við upphafstíma úr völdum svefnham.
Aftur frá truflana meðhöndlun venja tekur fjórar klukku lotur. Á þessum fjórum klukkuhringum er forritateljaranum (tveimur bætum) skotið til baka frá staflinum, Stack bendillinn er aukinn með tveimur og I-bitinn í SREG er stilltur.
AVR minningar
Þessi hluti lýsir mismunandi minningum í ATtiny25 / 45/85. AVR arkitektúrinn hefur tvö aðalminnisrými, Gagnaminnið og Forritsminnið. Að auki er ATtiny25 / 45/85 með EEPROM minni til geymslu gagna. Öll minni rýmin eru línuleg og regluleg.
Endurforritanlegt Flash Program minni í kerfinu
ATtiny25 / 45/85 inniheldur 2/4 / 8K bæti In-System endurforritanlegt Flash-minni fyrir forritageymslu. Þar sem allar AVR leiðbeiningar eru 16 eða 32 bitar á breidd er flassið skipað sem 1024/2048/4096 x 16.
Flash minnið hefur þol að lágmarki 10,000 skrifa / eyða lotum. ATtiny25 / 45/85 forritateljarinn (PC) er 10/11/12 bitar á breidd og tekur þannig á 1024/2048/4096 minnisstöðum forritsins. „Minni forrit- ming “á blaðsíðu 147 inniheldur nákvæma lýsingu á Flash gagna niðurhali með SPI pinna.
Hægt er að úthluta föstum töflum innan alls veffangsrýmis forritsins (sjá lýsingu á LPM - hlaða forritaminni).
Mynd 5-1. Forrita minniskort
SRAM gagnaminni
Mynd 5-2 sýnir hvernig ATtiny25 / 45/85 SRAM minni er skipulagt.
Neðri 224/352/607 gagnaminni staðsetningarnar fjalla bæði um skráninguna File, I/O minni og innri gögn SRAM. Fyrstu 32 staðirnir snúa að skránni File, næstu 64 staðsetningar staðlaða I/O minni, og síðustu 128/256/512 staðsetningarnar fjalla um innri gögn SRAM.
Fimm mismunandi vistunarhamir fyrir gagnaminnihlífina: Bein, óbein með tilfærslu, óbein, óbein með forfækkun og óbein með eftirhækkun. Í skránni File, skrár R26 til R31 eru með óbeina vistunarbendillaskrána.
Bein takmörkun nær til alls gagnasvæðisins.
Óbeinn með tilfærsluhamur nær 63 heimilisfang staðsetningar frá grunnnetfanginu sem gefið er upp af Y- eða Z-skránni.
Þegar notaðir eru óbeinir viðtakunaraðferðir með sjálfvirkri fyrirfram lækkun og eftir aukningu, eru heimilisfangaskrárnar X, Y og Z minnkaðar eða auknar.
32 vinnuskrárnar fyrir almenna notkun, 64 I/O -skrár og 128/256/512 bæti innra gagna SRAM í ATtiny25/45/85 eru öll aðgengileg með öllum þessum vistunarhamum. Skráin File er lýst í „Gen- eral Tilgangsskrá File“Á síðu 10.
Mynd 5-2. Gagnaminniskort
Aðgangur að gagnaminni Tímar
Þessi hluti lýsir almennum aðgangstímahugmyndum fyrir aðgang að innra minni. Innri gögn SRAM aðgangur er framkvæmdur í tveimur clkCPU lotum eins og lýst er í Mynd 5-3.
Mynd 5-3. Gögn á flís SRAM Access Cycles EEPROM gagnaminni
ATtiny25 / 45/85 inniheldur 128/256/512 bæti af gögnum EEPROM minni. Það er skipulagt sem sérstakt gagnarými þar sem hægt er að lesa og skrifa eitt bæti. EEPROM hefur þol að minnsta kosti 100,000 skrifa / þurrka hringrásir. Aðganginum milli EEPROM og örgjörva er lýst í eftirfarandi, þar sem EEPROM heimilisfangaskrár, EEPROM gagnaskrá og EEPROM stjórnaskrá eru tilgreind. Fyrir frekari upplýsingar sjá „Raðanhal“ á blaðsíðu 151.
EEPROM Lesa / Skrifaaðgangur
Aðgangsskrár EEPROM eru aðgengilegar í I / O rýminu.
Skriftaraðgangstímar EEPROM eru gefnir upp í Tafla 5-1 á blaðsíðu 21. Sjálftímastillingaraðgerð gerir notandahugbúnaðinum hins vegar kleift að greina hvenær hægt er að skrifa næsta bæti. Ef notendakóði inniheldur leiðbeiningar sem skrifa EEPROM þarf að gera nokkrar varúðarráðstafanir. Í mjög síuðum aflgjafa er líklegt að VCC hækki eða lækki hægt á
Rafmagn upp/niður. Þetta veldur því að tækið keyrir í nokkurn tíma á voltage lægra en tilgreint er sem lágmark fyrir klukkutíðnina sem notuð er. Sjá „Að koma í veg fyrir EEPROM-spillingu“ á blaðsíðu 19 til að fá upplýsingar um hvernig hægt er að forðast vandamál við þessar aðstæður.
Til að koma í veg fyrir að EEPROM skrifi óviljandi þarf að fylgja sérstakri ritunaraðferð. Vísa til „Atómískt Forritun bita “á bls. 17 og „Forritun með skiptibita“ á bls. 17 til að fá nánari upplýsingar um þetta.
Þegar EEPROM er lesinn er örgjörvinn stöðvaður í fjórar klukkuferðir áður en næsta leiðbeining er framkvæmd. Þegar EEPROM er skrifað er örgjörvinn stöðvaður í tvær klukkuferðir áður en næsta leiðbeining er framkvæmd.
Atomic Byte Forritun
Notkun Atomic Byte forritunar er einfaldasti hátturinn. Þegar skrifað er bæti í EEPROM verður notandinn að skrifa heimilisfangið í EEAR-skrána og gögn í EEDR-skrána. Ef EEPMn bitarnir eru núll, þá mun skrif EEPE (innan fjögurra lota eftir að EEMPE er skrifað) kveikja á eyðingar- / skrifaðgerðinni. Bæði eyðingar- og skrifhringrásin er gerð í einni aðgerð og heildar forritunartími er gefinn upp Tafla 5-1 á blaðsíðu 21. EEPE bitinn er áfram stilltur þar til eyðingar- og skrifaðgerðum er lokið. Meðan tækið er upptekið við forritun er ekki hægt að framkvæma aðrar EEPROM aðgerðir.
Skipting forskipta með skiptibæti
Það er hægt að skipta eyðingar- og ritferlinu í tvær mismunandi aðgerðir. Þetta getur verið gagnlegt ef kerfið krefst stuttan aðgangstíma í einhvern takmarkaðan tíma (venjulega ef aflgjafi binditage fellur). Til að taka advan- tage af þessari aðferð er þess krafist að staðsetningunum sem á að skrifa hafi verið eytt fyrir skrifaðgerðina. En þar sem eyðingar- og skrifaðgerðum er skipt er hægt að framkvæma eyðingaraðgerðirnar þegar kerfið leyfir að gera tímaáhrifaríkar aðgerðir (venjulega eftir ræsingu).
Eyða
Til að eyða bæti verður heimilisfangið að vera skrifað í EEAR. Ef EEPMn bitarnir eru 0b01, mun skrifa EEPE (innan fjögurra lota eftir að EEMPE er skrifað) kveikja aðeins á eyðingaraðgerðinni (forritunartími er gefinn í Tafla 5-1 um síðu 21). EEPE bitinn er áfram stilltur þar til eyðingaraðgerð lýkur. Meðan tækið er upptekið af forritun er ekki hægt að framkvæma aðrar EEPROM aðgerðir.
Skrifaðu
Til að skrifa staðsetningu þarf notandinn að skrifa heimilisfangið í EEAR og gögnin í EEDR. Ef EEPMn bitarnir eru 0b10, mun skrifa EEPE (innan fjögurra lota eftir að EEMPE er skrifað) kveikja aðeins á skrifaðgerðinni (forritunartími er gefinn í Tafla 5-1 á blaðsíðu 21). EEPE bitinn er áfram stilltur þar til skrifaðgerð lýkur. Ef staðsetningunni sem á að skrifa hefur ekki verið eytt áður en skrifað er, verður að líta á gögnin sem eru geymd sem týnd. Meðan tækið er upptekið við forritun er ekki hægt að framkvæma aðrar EEPROM aðgerðir.
Kvörðaði sveiflujöfnunin er notuð til að tímasetja aðgang EEPROM. Gakktu úr skugga um að tíðni Oscillator sé innan kröfanna sem lýst er í „OSCCAL - kvörðunarskrá oscillator“ á bls. 31.
Eftirfarandi kóði examples sýna eina samsetningu og eina C -virkni til að eyða, skrifa eða atómskrifa EEPROM. Fyrrverandiamples gera ráð fyrir að truflunum sé stjórnað (td með því að gera truflanir óvirkar á heimsvísu) þannig að engar truflanir komi fram við framkvæmd þessara aðgerða.
Samsetningarreglur Example |
EEPROM_skrifaðu:
; Bíddu eftir að fyrri skrifum er lokið sbic EECR,EEPE rjmp EEPROM_write ; Stilltu forritunarham ldi r16, (0<<EEPM1)|(0<<EEPM0) út EECR, r16 ; Settu upp heimilisfang (r18: r17) í heimilisfangaskrá út EEARH, r18 út EEARL, r17 ; Skrifaðu gögn (r19) í gagnaskrá út EEDR, r19 ; Skrifaðu rökrétt til EEMPE sbi EECR,EEMPE ; Byrjaðu eeprom skrifa með því að stilla EEPE sbi EECR,EEPE ret |
C kóða Example |
ógilt EEPROM_write (óundirritað char ucAddress, óundirritað char ucData)
{ /* Bíddu eftir að fyrri skrifa */ while(EECR & (1< ; /* Stilltu forritunarham */ EECR = (0 < / * Setja upp heimilisfang og gagnaskrár * / EEAR = ucAddress; EEDR = ucData; /* Skrifaðu rökrétt í EEMPE */ EECR | = (1 < / * Byrjaðu eeprom skrifa með því að stilla EEPE * / EECR | = (1 < } |
Næsta kóða examples sýna samsetningu og C aðgerðir til að lesa EEPROM. FyrrverandiampLes gera ráð fyrir að truflunum sé stjórnað þannig að engar truflanir komi fram við framkvæmd þessara aðgerða.
Samsetningarreglur Example |
EEPROM_read:
; Bíddu eftir að fyrri skrifum er lokið sbic EECR,EEPE rjmp EEPROM_read ; Settu upp heimilisfang (r18: r17) í heimilisfangaskrá út EEARH, r18 út EEARL, r17 ; Byrjaðu eeprom lesa með því að skrifa EERE sbi EECR,EERE ; Lestu gögn úr gagnaskrá í r16,EEDR ret |
C kóða Example |
óundirrituð char EEPROM_read(óundirrituð char ucAddress)
{ / * Bíddu eftir að fyrri skrifum er lokið * / meðan (EECR & (1 < ; / * Setja upp heimilisfangaskrá * / EEAR = ucAddress; /* Byrjaðu eeprom lestur með því að skrifa EERE */ EECR | = (1 < / * Skila gögnum úr gagnaskrá * / skila EEDR; } |
Koma í veg fyrir spillingu EEPROM
Á tímabilum þar sem VCC er lágt geta EEPROM gögnin skemmst vegna þess að framboðiðtage er of lágt til að örgjörvi og EEPROM virki sem skyldi. Þessi atriði eru þau sömu og fyrir stjórnborð sem nota EEPROM og nota ætti sömu hönnunarlausnir.
EEPROM gagna spilling getur stafað af tveimur aðstæðum þegar voltage er of lágt. Í fyrsta lagi þarf venjuleg ritröð til EEPROM lágmarks voltage til að starfa rétt. Í öðru lagi getur örgjörvinn sjálfur framkvæmt rangar leiðbeiningar ef framboð binditage er of lágt.
EEPROM gagnaspilling er auðveldlega hægt að forðast með því að fylgja þessum tillögum um hönnun:
Haltu AVR RESET virkt (lágt) á tímabilum þar sem aflgjafinn er ekki nægurtage. Þetta er hægt að gera með því að gera innri Brown-out Detector (BOD) virka. Ef uppgötvunarstig innri BOD passar ekki við
nauðsynlegt greiningarstig, er hægt að nota ytri lága VCC endurstillingarhringrás. Ef endurstilling á sér stað á meðan skrifaðgerð er í gangi, verður rituninni lokið að því tilskildu að aflgjafinn voltage er nóg.
I / O minni
I / O rýmisskilgreiningin á ATtiny25 / 45/85 er sýnd á „Skrá yfirlit“ á blaðsíðu 200.
Öllum ATtiny25 / 45/85 I / O og jaðartækjum er komið fyrir í I / O rýminu. Hægt er að nálgast allar staðsetningar inn / út með LD / LDS / LDD og ST / STS / STD leiðbeiningum og flytja gögn á milli 32 almennu vinnuskráninganna og I / O rýmisins. I / O skrár innan heimilisfangsviðsins 0x00 - 0x1F eru beint aðgengilegar með leiðbeiningum SBI og CBI. Í þessum skrám er hægt að athuga gildi staka bita með því að nota leiðbeiningar SBIS og SBIC. Vísað er í leiðbeiningarhlutann fyrir frekari upplýsingar. Þegar I / O sérstakar skipanir IN og OUT eru notaðar verður að nota I / O heimilisföngin 0x00 - 0x3F. Þegar tekið er á I / O-skrám sem gagnarými með leiðbeiningum LD og ST, verður að bæta 0x20 við þessi heimilisföng.
Til að vera samhæfður við framtíðartæki, á að skrifa frátekna bita í núll ef aðgangur er að þeim. Frátekin I / O minnisföng ættu aldrei að vera skrifuð.
Sumir af stöðufánunum eru hreinsaðir með því að skrifa þeim rökréttan. Athugaðu að CBI og SBI leiðbeiningarnar munu aðeins starfa á tilgreindum bita og því er hægt að nota þær í skrár sem innihalda slíka stöðufána. Leiðbeiningar CBI og SBI vinna eingöngu með skrár 0x00 til 0x1F.
Stjórnunarskrám I / O og jaðartækja er útskýrð í síðari köflum.
Lýsing á skrá
EEARH - EEPROM heimilisfangaskrá
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1F | – | – | – | – | – | – | – | ÁRAR 8 | EARA |
Lesa/skrifa | R | R | R | R | R | R | R | R/W | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
Bit 7: 1 - Res: Reserved Bit
Þessir bitar eru fráteknir til notkunar í framtíðinni og lesa alltaf sem núll.
Bits 0 - EEAR8: EEPROM heimilisfang
Þetta er mikilvægasti EEPROM heimilisfang hluti ATtiny85. Í tækjum með minna EEPROM, þ.e. ATtiny25 / ATtiny45, er þessi hluti áskilinn og mun alltaf lesa núll. Upphafsgildi EEPROM heimilisfangaskráningar (EEAR) er óskilgreint og því verður að skrifa rétt gildi áður en aðgangur er að EEPROM.
EEARL - EEPROM heimilisfangaskrá
Bit
0x1E | ÁRAR 7 | ÁRAR 6 | ÁRAR 5 | ÁRAR 4 | ÁRAR 3 | ÁRAR 2 | ÁRAR 1 | ÁRAR 0 | EARLUR |
Aftan / skrifa | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Upphafsgildi | X | X | X | X | X | X | X | X |
Bit 7 - EEAR7: EEPROM heimilisfang
Þetta er mikilvægasti EEPROM heimilisfang hluti af ATtiny45. Í tækjum með minna EEPROM, þ.e. ATtiny25, er þessi hluti áskilinn og mun alltaf lesa núll. Upphafsgildi EEPROM heimilisfangaskrár (EEAR) er óskilgreint og því verður að skrifa rétt gildi áður en aðgangur er að EEPROM.
Bits 6: 0 - EEAR [6: 0]: EEPROM heimilisfang
Þetta eru (lágir) bitar EEPROM heimilisfangaskrárinnar. EEPROM gagnabætunum er beint línulega á bilinu 0… (128/256 / 512-1). Upphafsgildi EEAR er óskilgreint og því verður að skrifa rétt gildi áður en hægt er að nálgast EEPROM.
EEDR - EEPROM gagnaskrá
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | EEDR7 | EEDR6 | EEDR5 | EEDR4 | EEDR3 | EEDR2 | EEDR1 | EEDR0 | EEDR |
Lesa/skrifa | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Fyrir EEPROM-skrifaðgerðina inniheldur EEDR-skráin gögnin sem á að skrifa til EEPROM á heimilisfanginu sem EEAR-skráin gefur upp. Fyrir lestraraðgerðir EEPROM inniheldur EEDR gögnin sem lesin hafa verið upp úr
EEPROM á heimilisfanginu sem EEAR gefur upp.
5.5.4 EBER - EEPROM eftirlitsskrá |
|||||||||
Bit 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0x1C – | – | EEPM1 | EEPM0 | HRÆÐILEGT | EEMPE | EEPE | EERE | EECR | |
Lestu / skrifaðu R R R / W | R/W | R/W | R/W | R/W | R/W | ||||
Upphafsgildi 0 0 X | X | 0 | 0 | X | 0 |
Bit 7 - Res: áskilinn Bit
Þessi hluti er frátekinn til notkunar í framtíðinni og mun alltaf lesa sem 0 í ATtiny25 / 45/85. Til að vera samhæfður við framtíðar AVR tæki skaltu alltaf skrifa þennan bit í núll. Eftir lestur skaltu gríma þennan hluta.
Bit 6 - Res: áskilinn Bit
Þessi hluti er frátekinn í ATtiny25 / 45/85 og mun alltaf lesa sem núll.
Bitar 5: 4 - EEPM [1: 0]: EEPROM forritunarhamur bitar
EEPROM forritunarhamur bitastillingin skilgreinir hvaða forritunaraðgerð verður hrundið af stað þegar EEPE er skrifað. Það er mögulegt að forrita gögn í einni lotuaðgerð (eyða gamla gildinu og forrita nýja gildið) eða að deila Erase og Write aðgerðunum í tvær mismunandi aðgerðir. Forritunartímar fyrir mismunandi stillingar eru sýndir í Tafla 5-1. Þó að EEPE sé stillt, verður hver skrif til EEPMn hunsuð. Við endurstillingu verða EEPMn bitarnir endurstilltir á 0b00 nema EEPROM sé upptekinn við forritun.
Tafla 5-1. EEPROM hambitar
EEPM1 | EEPM0 | Forritunartími | Rekstur |
0 | 0 | 3.4 ms | Eyða og skrifa í einni aðgerð (Atomic Operation) |
0 | 1 | 1.8 ms | Eyða aðeins |
1 | 0 | 1.8 ms | Aðeins skrifa |
1 | 1 | – | Frátekið til notkunar í framtíðinni |
Bit 3 - EERIE: EEPROM Ready Interrupt Enable
Að skrifa EERIE við einn gerir EEPROM Ready Interrupt kleift ef I-bitinn í SREG er stilltur. Með því að skrifa EERIE í núll gerir það truflunina óvirka. EEPROM tilbúið hlé myndar stöðugt truflun þegar minni óstöðugt minni er tilbúið til forritunar.
Bit 2 - EEMPE: EEPROM meistaranám virkt
EEMPE bitinn ákvarðar hvort að skrifa EEPE til eins mun hafa áhrif eða ekki.
Þegar EEMPE er stillt, stillir EEPE innan fjögurra klukkuhringa forritun EEPROM á völdu heimilisfangi. Ef EEMPE er núll hefur stilling EEPE engin áhrif. Þegar EEMPE hefur verið skrifað á einn af hugbúnaði þá hreinsar vélbúnaður bitann í núll eftir fjórar klukkuhringrásir.
Bit 1 - EEPE: EEPROM forrit virkt
EEPROM forritið virkja merki EEPE er forritunarvirknimerkið til EEPROM. Þegar EEPE er skrifað verður EEPROM forritað í samræmi við EEPMn bitastillinguna. EEMPE bitinn verður að vera skrifaður til þess áður en rökréttur er skrifaður til EEPE, annars fer engin EEPROM skrif út. Þegar skrifaðgangstími er liðinn er EEPE bitinn hreinsaður af vélbúnaði. Þegar EEPE hefur verið stillt er örgjörvinn stöðvaður í tvær lotur áður en næsta leiðbeining er framkvæmd.
Bit 0 - EERE: EEPROM Read Enable
EEPROM Lesa virkt merki - EERE - er aflestrarstig EEPROM. Þegar rétt heimilisfang er sett upp í EEAR-skránni verður að skrifa EERE-bitann til eins til að kveikja á EEPROM-lestri. EEPROM lesaðgangur tekur eina leiðbeiningu og umbeðin gögn liggja fyrir strax. Þegar EEPROM er lesinn er örgjörvinn stöðvaður í fjórar lotur áður en næsta leiðbeining er framkvæmd. Notandinn ætti að pæla í EEPE bitanum áður en lestraraðgerð hefst. Ef skrifað er í gangi er hvorki hægt að lesa EEPROM né að breyta EEAR-skránni.
Kerfisklukka og klukkukostir
Klukkukerfi og dreifing þeirra
Örgjörvaklukka
CPU -klukkunni er vísað í hluta kerfisins sem varða rekstur AVR -kjarnans. FyrrverandiampLes af slíkum einingum eru almenna tilgangsskráin File, stöðuskrá og gagnaminni sem geymir stafabendilinn. Að stöðva CPU -klukkuna hindrar kjarnann í að framkvæma almennar aðgerðir og útreikninga.
I / O klukka - clkI / O
I / O klukkan er notuð af meirihluta I / O eininganna, eins og Timer / Counter. I / O klukkan er einnig notuð af External Interrupt einingunni, en athugaðu að sum utanaðkomandi truflanir eru greindar með ósamstilltum rökum, sem gerir kleift að greina slíkar truflanir jafnvel þó að I / O klukkan sé stöðvuð.
Flash Clock - clkFLASH
Flash klukkan stýrir notkun Flash tengisins. Flash klukkan er venjulega virk samtímis örgjörvaklukkunni.
ADC klukka - clkADC
ADC er með sérstakt klukkulén. Þetta gerir kleift að stöðva örgjörva og I / O klukkur til að draga úr hávaða sem stafar af stafrænum hringrásum. Þetta gefur nákvæmari niðurstöður ADC umbreytinga.
Innra PLL fyrir hraðri útlæga klukkukynslóð - clkPCK
Innri PLL í ATtiny25 / 45/85 býr til klukkutíðni sem er 8x margfölduð frá upptökum. Sjálfgefið er að PLL noti afköst innri, 8.0 MHz RC sveiflujafa sem uppsprettu. Að öðrum kosti, ef bit LSM af PLLCSR er stilltur mun PLL nota framleiðsluna á RC sveiflu deilt með tveimur. Þannig er framleiðsla PLL, fljótur útlæga klukkan 64 MHz. Hraða jaðarklukkuna, eða klukka sem er forstillt frá því, er hægt að velja sem klukkugjafa fyrir Timer / Counter1 eða sem kerfisklukku. Sjá Mynd 6-2. Tíðni hröðu jaðarklukkunnar er deilt með tveimur þegar LSM af PLLCSR er stillt, sem leiðir til klukkutíðni upp á 32 MHz. Athugið að ekki er hægt að stilla LSM ef PLLCLK er notað sem kerfisklukka.
Mynd 6-2. PCK klukkukerfi.
PLL er læst á RC oscillator og stilling RC oscillator um OSCCAL skrá mun stilla hratt útlæga klukkuna á sama tíma. Hins vegar, jafnvel þó að RC sveiflan sé tekin á hærri tíðni en 8 MHz, þá mettast hröð útlæga klukkutíðnin við 85 MHz (í versta falli) og heldur áfram að sveiflast við hámarks tíðni. Það skal tekið fram að PLL í þessu tilfelli er ekki læst lengur með RC sveifluklukkunni. Þess vegna er mælt með því að taka OSCCAL leiðréttingarnar ekki hærra en 8 MHz til að halda PLL á réttu vinnusviði.
Innri PLL er virkur þegar:
PLLE bitinn í skránni PLLCSR er stilltur.
CKSEL öryggi er forritað til '0001'.
CKSEL öryggi er forritað til '0011'.
PLLCSR bitinn PLOCK er stilltur þegar PLL er læst. Slökkt er á bæði innri RC oscillator og PLL í slökkt og biðstöðu.
Innri PLL í ATtiny15 samhæfðarham
Þar sem ATtiny25 / 45/85 er flutningstæki fyrir ATtiny15 notendur er ATtiny15 samhæfileiki fyrir bakhliðarsamhæfi. ATtiny15 samhæfileikinn er valinn með því að forrita CKSEL öryggin í '0011'.
Í samhæfileikastigi ATtiny15 er tíðni innri RC sveifluhæfisins stilltur niður í 6.4 MHz og margföldunarstuðull PLL er stilltur á 4x. Sjá Mynd 6-3. Með þessum aðlögunum er klukkukerfið ATtiny15-samhæft og fljótur útlægur klukka sem myndast hefur tíðnina 25.6 MHz (sama og í ATtiny15).
Mynd 6-3. PCK klukkukerfi í ATtiny15 samhæfingarstillingu.
Klukkuheimildir
Tækið hefur eftirfarandi valkosti klukku, sem hægt er að velja með Flash Fuse bitum eins og sýnt er hér að neðan. Klukkan frá völdum uppruna er inntak í AVR klukkurafalinn og vísað til viðeigandi eininga.
Tafla 6-1. Klukkuvalkostir tækis Veldu
Valkostur við klukku tækis | CKSEL[3:0](1) |
Ytri klukka (sjá síðu 26) | 0000 |
Hátíðni PLL klukka (sjá síðu 26) | 0001 |
Kvörðuð innri sveiflujöfnun (sjá síðu 27) | 0010(2) |
Kvörðuð innri sveiflujöfnun (sjá síðu 27) | 0011(3) |
Innri 128 kHz Oscillator (sjá síðu 28) | 0100 |
Lágtíðni kristalspennu (sjá síðu 29) | 0110 |
Crystal Oscillator / Keramik resonator (sjá síðu 29) | 1000 – 1111 |
Frátekið | 0101, 0111 |
Fyrir allar öryggi þýðir „1“ óforritað en „0“ þýðir forritað.
Tækið er sent með þennan valkost valinn.
Þetta mun velja ATtiny15 samhæfileik, þar sem kerfisklukkunni er deilt með fjórum, sem leiðir til 1.6 MHz klukku tíðni. Fyrir frekari inormation, sjá „Kvörðuð innri sveiflujöfnun“ á blaðsíðu 27.
Ýmsir kostir fyrir hvern klukkukost eru gefnir í eftirfarandi köflum. Þegar örgjörvinn vaknar frá rafmagni er valinn klukkugjafi notaður til að tímasetja gangsetningu og tryggir stöðugan Oscillator rekstur áður en framkvæmd kennslu hefst. Þegar örgjörvan byrjar að endurstilla er viðbótartöf sem gerir aflinu kleift að ná stöðugu stigi áður en venjulegur gangur hefst. Varðhundasveiflan er notuð til að tímasetja þennan rauntíma hluta ræsitímans. Fjöldi WDT sveifluhringa sem notaður er við hverja stöðvun er sýndur í Tafla 6-2.
Tafla 6-2. Fjöldi Varðhunda Oscillator Cycla
Tímaprestur | Fjöldi lota |
4 ms | 512 |
64 ms | 8K (8,192) |
Ytri klukka
Til að keyra tækið frá utanaðkomandi klukkugjafa ætti að keyra CLKI eins og sýnt er á Mynd 6-4. Til að keyra tækið á ytri klukku verður að forrita CKSEL öryggin á „00“.
Mynd 6-4. Stilling ytri klukkudrifs
Þegar þessi klukkugjafi er valinn ákvarðast ræsitímar af SUT öryggjum eins og sýnt er á Tafla 6-3.
Tafla 6-3. Upphafstímar fyrir val á ytri klukku
SUT[1:0] | Ræsitími frá ræsingu | Viðbótartöf frá endurstillingu | Ráðlögð notkun |
00 | 6 CK | 14CK | BOD virkjað |
01 | 6 CK | 14CK + 4 ms | Hratt vaxandi kraftur |
10 | 6 CK | 14CK + 64 ms | Hægt vaxandi kraftur |
11 | Frátekið |
Þegar beitt er ytri klukku er nauðsynlegt að forðast skyndilegar breytingar á beittri klukkutíðni til að tryggja stöðuga notkun MCU. Breyting á tíðni sem er meira en 2% frá einni klukkuhringrás til annarrar getur leitt til ófyrirsjáanlegrar hegðunar. Það er krafist að tryggja að MCU sé haldið í Reset meðan slíkar breytingar eru á klukkutíðninni.
Athugið að hægt er að nota kerfisklukku forsölu til að framkvæma breytingar á keyrslutíma innri klukkutíðni en tryggja samt stöðugan rekstur. Vísa til „Forvörn kerfisklukku“ á bls. 31 fyrir nánari upplýsingar.
Hátíðni PLL klukka
Það er innra PLL sem veitir 64 MHz klukkuhraða að nafninu til læstum RC Oscillator til notkunar á útlægum tímamælum / teljara1 og fyrir upptök kerfisklukkunnar. Þegar það er valið sem uppspretta kerfis klukku, með því að forrita CKSEL öryggin í '0001', er honum deilt með fjórum eins og sýnt er á Tafla 6-4.
Tafla 6-4. Hátíðni PLL klukka rekstrarhamur
CKSEL[3:0] | Nafn tíðni |
0001 | 16 MHz |
Þegar þessi klukkugjafi er valinn ákvarðast ræsitímar af SUT öryggjum eins og sýnt er á Tafla 6-5.
Tafla 6-5. Ræsingartímar fyrir hátíðni PLL klukkuna
SUT[1:0] | Ræsitími frá ræsingu | Viðbótartöf frá endurstillingu virkjunar (VCC = 5.0V) | Ráðlögð notkun |
00 | 14CK + 1K (1024) CK + 4 ms | 4 ms | BOD virkjað |
Tafla 6-5. Ræsingartímar fyrir hátíðni PLL klukkuna
SUT[1:0] | Ræsitími frá ræsingu | Viðbótartöf frá endurstillingu virkjunar (VCC = 5.0V) | Ráðlögð notkun |
01 | 14CK + 16K (16384) CK + 4 ms | 4 ms | Hratt vaxandi kraftur |
10 | 14CK + 1K (1024) CK + 64 ms | 4 ms | Hægt vaxandi kraftur |
11 | 14CK + 16K (16384) CK + 64 ms | 4 ms | Hægt vaxandi kraftur |
Kvörðuð innri sveiflujöfnun
Sjálfgefið er að innri RC Oscillator veitir áætlaða 8.0 MHz klukku. Þó að voltage og háð hitastigi er hægt að stilla þessa klukku mjög nákvæmlega af notandanum. Sjá „Kvörðuð innri RC oscillator rafgeymir racy “á blaðsíðu 164 og „Innri sveifluhraði“ á bls. 192 til að fá frekari upplýsingar. Tækið er sent með CKDIV8 öryggi forritað. Sjá „Forvörn kerfisklukku“ á bls. 31 fyrir frekari upplýsingar.
Þessa klukku er hægt að velja sem kerfisklukku með því að forrita CKSEL öryggin eins og sýnt er á Tafla 6-6 á bls
27. Ef það er valið mun það starfa án utanaðkomandi íhluta. Við endurstillingu hleður vélbúnaður fyrirfram forritað kvörðunargildi í OSCCAL-skrána og kvarðar þannig sjálfkrafa RC Oscillator. Nákvæmni þessarar kvörðunar er sýnd sem verksmiðjavörun í Tafla 21-2 á blaðsíðu 164.
Með því að breyta OSCCAL skránni úr SV, sjá „OSCCAL - kvörðunarskrá oscillator“ á bls. 31, það er mögulegt að fá meiri kvörðunarnákvæmni en með því að nota kvörðun verksmiðjunnar. Nákvæmni þessarar kvörðunar er sýnd sem notandi kvörðun í Tafla 21-2 á blaðsíðu 164.
Þegar þessi Oscillator er notaður sem flísaklukka verður Watchdog Oscillator ennþá notaður fyrir Watchdog Timer og fyrir Reset Time-out. Nánari upplýsingar um fyrirfram forritað kvörðunargildi, sjá kaflann „Cali- bration Bytes “á bls. 150.
Einnig er hægt að stilla innri oscillatorinn til að veita 6.4 MHz klukku með því að skrifa CKSEL öryggi í „0011“, eins og sést á Tafla 6-6 hér að neðan. Þessari stillingu er vísað til sem ATtiny15 samhæfingarham og er ætlað að veita kvarðaða klukkugjafa við 6.4 MHz, eins og í ATtiny15. Í ATtiny15 samhæfileikanum notar PLL innri oscillatorinn sem keyrir á 6.4 MHz til að búa til 25.6 MHz útlæga klukku merki fyrir Timer / Counter1 (sjá „8 bita tímamælir / teljari1 inn ATtiny15 Mode “á bls. 95). Athugið að í þessum rekstrarmáta er 6.4 MHz klukkumerkinu alltaf deilt með fjórum og veitir 1.6 MHz kerfaklukku.
Tafla 6-6. Innri kvarðaður RC Oscillator rekstrarhamur
CKSEL[3:0] | Nafn tíðni |
0010(1) | 8.0 MHz |
0011(2) | 6.4 MHz |
Tækið er sent með þennan valkost valinn.
Þessi stilling mun velja ATtiny15 samhæfileika, þar sem kerfisklukkunni er deilt með fjórum, sem leiðir til 1.6 MHz klukkutíðni.
Þegar kvarðaði 8 MHz innri oscillator er valinn sem klukkugjafi ákvarðast ræsitímarnir af SUT-öryggjum eins og sýnt er á Tafla 6-7 hér að neðan.
Tafla 6-7. Ræsingartímar fyrir innri kvarðaða RC oscillator klukku
SUT[1:0] | Ræsitími frá ræsingu | Viðbótartöf frá endurstillingu (VCC = 5.0V) | Ráðlögð notkun |
00 | 6 CK | 14CK(1) | BOD virkjað |
01 | 6 CK | 14CK + 4 ms | Hratt vaxandi kraftur |
10(2) | 6 CK | 14CK + 64 ms | Hægt vaxandi kraftur |
11 | Frátekið |
1. Ef RSTDISBL öryggið er forritað, verður þessum ræsitíma aukinn í 14CK + 4 ms til að tryggja að hægt sé að fara í forritunarstillingu.
2. Tækið er sent með þennan valkost valinn.
Í ATtiny15 ræsitímar fyrir samhæfileika eru ákvarðaðir með SUT öryggi eins og sýnt er á Tafla 6-8 hér að neðan.
Tafla 6-8. Ræsingartímar fyrir innri kvarðaða RC Oscillator klukku (í ATtiny15 ham)
SUT[1:0] | Ræsitími frá ræsingu | Viðbótartöf frá endurstillingu (VCC = 5.0V) | Ráðlögð notkun |
00 | 6 CK | 14CK + 64 ms | |
01 | 6 CK | 14CK + 64 ms | |
10 | 6 CK | 14CK + 4 ms | |
11 | 1 CK | 14CK(1) |
Athugið: Ef RSTDISBL öryggið er forritað mun þessi ræsingartími lengjast í 14CK + 4 ms til að tryggja að hægt sé að fara í forritunarham.
Í stuttu máli má finna frekari upplýsingar um ATtiny15 samhæfileika í köflum „Port B (PB5: PB0)“ á síðu 2, „Innri PLL í ATtiny15 samhæfðarham“ á bls. 24, „8-bita tímamælir / Counter1 í ATtiny15 ham“ á síðu 95, „Takmarkanir á debugWIRE“ á bls. 140, „Kvörðunarbæti“ á bls. 150 og í töflu „Klukkuhitun Veldu ”á bls. 33.
Innri 128 kHz Oscillator
128 kHz innri Oscillator er lágstyrkur Oscillator sem gefur 128 kHz klukku. Tíðnin er nafngildi við 3V og 25°C. Hægt er að velja þessa klukku sem kerfisklukku með því að forrita CKSEL öryggin á „0100“.
Þegar þessi klukkugjafi er valinn ákvarðast ræsitímar af SUT öryggjum eins og sýnt er á Tafla 6-9.
Tafla 6-9. Ræsingartímar fyrir 128 kHz innri sveiflu
SUT[1:0] | Ræsitími frá ræsingu | Viðbótartöf frá endurstillingu | Ráðlögð notkun |
00 | 6 CK | 14CK(1) | BOD virkjað |
01 | 6 CK | 14CK + 4 ms | Hratt vaxandi kraftur |
10 | 6 CK | 14CK + 64 ms | Hægt vaxandi kraftur |
11 | Frátekið |
Athugið: Ef RSTDISBL öryggið er forritað mun þessi ræsingartími lengjast í 14CK + 4 ms til að tryggja að hægt sé að fara í forritunarham.
Lágtíðni kristalspennu
Til að nota 32.768 kHz úrskristall sem klukkugjafa tækisins verður að velja lágtíðni kristalssveiflu með því að stilla CKSEL öryggi á '0110'. Kristallinn ætti að vera tengdur eins og sýnt er á Mynd 6-5. Vinsamlegast hafðu samband við gagnablað framleiðanda til að finna viðeigandi burðarþol fyrir 32.768 kHz hita.
Þegar þessi oscillator er valinn ákvarðast ræsitímar af SUT öryggjum eins og sýnt er á Tafla 6-10.
Tafla 6-10. Ræsingartímar fyrir val á lágtíðni kristalsveifluklukku
SUT[1:0] | Ræsitími frá ræsingu | Viðbótartöf frá endurstillingu (VCC = 5.0V) | Ráðlögð notkun |
00 | 1K (1024) CK(1) | 4 ms | Hratt hækkandi máttur eða BOD virkjað |
01 | 1K (1024) CK(1) | 64 ms | Hægt vaxandi kraftur |
10 | 32K (32768) CK | 64 ms | Stöðug tíðni við gangsetningu |
11 | Frátekið |
Athugið: Þessa valkosti ætti aðeins að nota ef tíðnistöðugleiki við ræsingu er ekki mikilvægur.
Lágtíðni kristaloscillatorinn veitir innri burðargetu, sjá Tafla 6-11 við hvern TOSC pinna.
Tafla 6-11. Rýmd lágtíðni kristalsveifla
Tæki | 32 kHz Osc. Gerð | Lok (Xtal1 / Tosc1) | Lok (Xtal2 / Tosc2) |
ATtiny25 / 45/85 | Kerfis Osc. | 16 pF | 6 pF |
Crystal Oscillator / Keramik resonator
XTAL1 og XTAL2 eru inntak og úttak, í sömu röð, á hvolfi amplíflegri sem hægt er að stilla til notkunar sem á-flís Oscillator, eins og sýnt er í Mynd 6-5. Annaðhvort má nota kvars kristal eða keramik enduróm.
C1 og C2 ættu alltaf að vera jafnir fyrir bæði kristalla og resonators. Ákjósanlegt gildi þéttanna fer eftir kristalnum eða resonatornum sem er í notkun, magni flökkuþéttni og rafsegulsuð umhverfisins. Nokkrar fyrstu leiðbeiningar um val á þéttum til notkunar með kristöllum eru gefnar upp Tafla 6-12 hér að neðan. Fyrir keramikróma skal nota þéttigildi sem framleiðandinn gefur upp.
Tafla 6-12. Crystal Oscillator rekstrarhamur
CKSEL[3:1] | Tíðnisvið (MHz) | Ráðlagt svið fyrir þétta C1 og C2 til notkunar með kristöllum (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 |
Athugasemdir: Þessi valkostur ætti ekki að nota með kristöllum, aðeins með keramik resonators.
Oscillatorinn getur starfað í þremur mismunandi stillingum, hver um sig bjartsýni fyrir ákveðið tíðnisvið. Rekstrarstillingin er valin með öryggjum CKSEL [3: 1] eins og sýnt er á Tafla 6-12.
CKSEL0 öryggi ásamt SUT [1: 0] öryggjum velja upphafstíma eins og sýnt er á Tafla 6-13.
Tafla 6-13. Ræsingartímar fyrir val á Crystal Oscillator klukku
CKSEL0 | SUT[1:0] | Ræsitími frá ræsingu | Viðbótartöf frá endurstillingu | Ráðlögð notkun |
0 | 00 | 258 CK(1) | 14CK + 4 ms | Keramik endurómur, hratt hækkandi afl |
0 | 01 | 258 CK(1) | 14CK + 64 ms | Keramik endurómur, hægt vaxandi kraftur |
0 | 10 | 1K (1024) CK(2) | 14CK | Keramikómtæki, BOD virkt |
0 | 11 | 1K (1024) CK(2) | 14CK + 4 ms | Keramik endurómur, hratt hækkandi afl |
1 | 00 | 1K (1024) CK(2) | 14CK + 64 ms | Keramik endurómur, hægt vaxandi kraftur |
1 | 01 | 16K (16384) CK | 14CK | Crystal Oscillator, BOD virkt |
1 | 10 | 16K (16384) CK | 14CK + 4 ms | Crystal Oscillator, ört vaxandi kraftur |
1 | 11 | 16K (16384) CK | 14CK + 64 ms | Crystal Oscillator, hægt vaxandi kraftur |
Skýringar
Þessa valkosti ætti aðeins að nota þegar ekki er unnið nálægt hámarkstíðni tækisins og aðeins ef tíðni stöðugleiki við ræsingu er ekki mikilvægur fyrir forritið. Þessir valkostir henta ekki kristöllum.
Þessir valkostir eru ætlaðir til notkunar með keramikómum og munu tryggja tíðni stöðugleika við gangsetningu. Þeir geta einnig verið notaðir með kristöllum þegar þeir starfa ekki nálægt hámarkstíðni tækisins og ef tíðni stöðugleiki við ræsingu er ekki mikilvægur fyrir forritið.
Sjálfgefin klukkuheimild
Tækið er sent með CKSEL = “0010”, SUT = “10” og CKDIV8 forritað. Sjálfgefna stilling klukku er því innri RC sveiflur sem eru í gangi við 8 MHz með lengsta upphafstíma og upphaflega endurstilla kerfis klukku sem leiðir til 8 MHz kerfis klukku. Þessi sjálfgefna stilling tryggir að allir notendur geta gert viðeigandi klukkustundarstillingu með því að nota In-System eða High-voltage forritari.
Prescaler kerfisklukka
Skipta má ATtiny25 / 45/85 kerfaklukkunni með því að stilla “CLKPR - Skrá yfir klukku á forsölu” á bls. 32. Þessi eiginleiki er hægt að nota til að minnka orkunotkun þegar þörfin á vinnsluorku er lítil. Þetta er hægt að nota með öllum valkostum klukkugjafa og það mun hafa áhrif á klukkutíðni örgjörvans og allra samstilltra jaðartækja. clkI/O, clkADC, clkCPU og clkFLASH er deilt með stuðli eins og sýnt er í Tafla 6-15 á blaðsíðu 33.
Skiptitími
Þegar skipt er á milli stillinga forskalans, tryggir kerfisklukkusjúkirinn að engin galli komi upp í klukkukerfinu og að engin millitíðni sé hærri en hvorki klukkutíðnin sem samsvarar fyrri stillingu né klukkutíðnin sem samsvarar nýju stillingunni.
Gára mælitækið sem útfærir forðatækið keyrir á tíðni óskiptu klukkunnar, sem getur verið hraðari en klukkutíðni örgjörvans. Þess vegna er ekki mögulegt að ákvarða ástand forðagjafans - jafnvel þótt það væri læsilegt og ekki er hægt að spá nákvæmlega fyrir um þann tíma sem tekur að skipta úr einni klukkuskiptingu í aðra.
Frá því að CLKPS gildi eru skrifuð tekur það á milli T1 + T2 og T1 + 2 * T2 áður en nýja klukku tíðni er virk. Á þessu bili eru framleiddir 2 virkir klukkukantar. Hér er T1 fyrra klukkutímabilið og T2 er tímabilið sem samsvarar nýju forstillingarstillingu.
Útgáfu klukku
Tækið getur sent kerfisklukkuna á CLKO pinna (þegar það er ekki notað sem XTAL2 pinna). Til að virkja framleiðsluna þarf að forrita CKOUT öryggi. Þessi háttur er hentugur þegar flísaklukkan er notuð til að knýja aðrar hringrásir í kerfinu. Athugaðu að klukkan verður ekki gefin út meðan á endurstillingu stendur og að venjulegur gangur I / O pinna verður hafður yfir þegar öryggið er forritað. Innri RC Oscillator, WDT Oscillator, PLL og ytri klukka (CLKI) er hægt að velja þegar klukkan er gefin út á CLKO. Ekki er hægt að nota kristalsveiflur (XTAL1, XTAL2) við klukkuútgang á CLKO. Ef notaður er kerfisklukkuhitari er það skipt kerfisklukka sem er gefin út.
Lýsing á skrá
OSCCAL - Kvörðunarskrá Oscillator
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | OSCCAL |
Lesa/skrifa | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Bitar 7: 0 - CAL [7: 0]: Kvörðunargildi Oscillator
Kvarðaskrá Oscillator er notuð til að klippa kvarðaða innri RC Oscillator til að fjarlægja breytileika í ferli frá oscillator tíðni. Fyrirfram forritað kvörðunargildi er sjálfkrafa skrifað í þessa skrá meðan flís er endurstillt og gefur kvarðað tíðni verksmiðju eins og tilgreint er í Tafla 21-2 á blaðsíðu 164. Forritahugbúnaðurinn getur skrifað þessa skrá til að breyta tíðni oscillator. Hægt er að kvarða oscillatorinn að tíðnum eins og tilgreint er í Tafla 21-2 á blaðsíðu 164. Kvörðun utan þess sviðs er ekki tryggð.
Athugið að þessi oscillator er notaður til að tímasetja EEPROM og Flash skrifaðgang og þessir skrifatímar verða fyrir áhrifum í samræmi við það. Ef EEPROM eða Flash eru skrifaðir skaltu ekki kvarða í meira en 8.8 MHz. Annars gæti EEPROM eða Flash skrifað mistekist.
CAL7 bitinn ákvarðar svigrúm aðgerð fyrir oscillator. Ef þessi biti er stilltur á 0 gefur lægsta tíðnisviðið, það að setja þennan bit á 1 gefur hæsta tíðnisviðið. Tíðnisviðin tvö skarast, með öðrum orðum stilling OSCCAL = 0x7F gefur hærri tíðni en OSCCAL = 0x80.
CAL [6: 0] bitarnir eru notaðir til að stilla tíðnina innan valda sviðsins. Stillingin 0x00 gefur lægsta tíðni á því bili og stillingin 0x7F gefur hæstu tíðni á bilinu.
Til að tryggja stöðugan rekstur MCU ætti að breyta kvörðunargildinu í litlu. Breyting á tíðni sem er meira en 2% frá einni lotu til annarrar getur leitt til ófyrirsjáanlegrar hegðunar. Breytingar á OSCCAL ættu ekki að fara yfir 0x20 fyrir hverja kvörðun. Það er krafist að tryggja að MCU sé haldið í Reset meðan slíkar breytingar eru á klukkutíðninni
Tafla 6-14. Innra RC Oscillator tíðnisvið
OSCCAL gildi | Dæmigerð lægsta tíðni með tilliti til nafntíðni | Dæmigerð hæsta tíðni með tilliti til nafntíðni |
0x00 | 50% | 100% |
0x3F | 75% | 150% |
0x7F | 100% | 200% |
CLKPR - Skrá yfir klukku í forsölu
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x26 | CLKPCE | – | – | – | CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | CLKPR |
Lesa/skrifa | R/W | R | R | R | R/W | R/W | R/W | R/W |
Upphafsgildi 0 0 0 0 Sjá bitalýsingu
Bit 7 - CLKPCE: Klukka Prescaler Breyta Virkja
CLKPCE bitinn verður að vera skrifaður í rökréttri mynd til að gera kleift að breyta CLKPS bitunum. CLKPCE bitinn er aðeins uppfærður þegar aðrir bitar í CLKPR eru samtímis skrifaðir í núll. CLKPCE er hreinsað með vélbúnaði fjórum lotum eftir að það er skrifað eða þegar CLKPS bitarnir eru skrifaðir. Endurskrifun CLKPCE bitans innan þessa tímabils lengir hvorki tímatímabilið né hreinsar CLKPCE bitann.
Bit 6: 4 - Res: Reserved Bit
Þessir bitar eru fráteknir bitar í ATtiny25 / 45/85 og munu alltaf lesa sem núll.
Bits 3: 0 - CLKPS [3: 0]: Clock Prescaler Veldu Bits 3 - 0
Þessir bitar skilgreina deilingarstuðulinn milli valda klukkugjafa og innri kerfis klukku. Þessar bitar er hægt að skrifa keyrslutíma til að breyta klukkutíðninni til að uppfylla kröfur umsóknarinnar. Þegar deilir deilir inntaki aðalklukkunnar í MCU minnkar hraðinn á öllum samstilltum jaðartækjum þegar deilistuðull er notaður. Skiptingarþættirnir eru gefnir upp í Tafla 6-15.
Til að forðast óviljandi breytingar á klukkutíðni þarf að fylgja sérstakri skrifaðferð til að breyta CLKPS bitunum:
Skrifaðu Clock Prescaler Change Enable (CLKPCE) bita í einn og alla aðra bita í CLKPR í núll.
Skrifaðu viðeigandi gildi á CLKPS innan fjögurra lota meðan þú skrifar núll í CLKPCE.
Gripið verður til truflana þegar breytt er stillingu á forritara til að ganga úr skugga um að ritaðferðin sé ekki trufluð.
CKDIV8 öryggið ákvarðar upphafsgildi CLKPS bitanna. Ef CKDIV8 er óforritaður verða CLKPS bitarnir endurstilltir á „0000“. Ef CKDIV8 er forritað eru CLKPS bitar endurstilltir á „0011“, sem gefur deilingarstuðulinn átta við ræsingu. Þessi eiginleiki ætti að nota ef valinn klukkugjafi hefur hærri tíðni en hámarkstíðni tækisins við núverandi notkunarskilyrði. Athugaðu að hægt er að skrifa hvaða gildi sem er á CLKPS bitana óháð CKDIV8 Fuse stillingunni. Forritahugbúnaðurinn verður að tryggja að nægjanleg skiptingarstuðull sé
valið ef valin klukkugjafi hefur hærri tíðni en hámarkstíðni tækisins við núverandi rekstrarskilyrði. Tækið er sent með CKDIV8 öryggi forritað.
Tafla 6-15. Clock Prescaler Veldu
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | Clock Clock Factor |
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 | Frátekið |
1 | 0 | 1 | 0 | Frátekið |
1 | 0 | 1 | 1 | Frátekið |
1 | 1 | 0 | 0 | Frátekið |
1 | 1 | 0 | 1 | Frátekið |
1 | 1 | 1 | 0 | Frátekið |
1 | 1 | 1 | 1 | Frátekið |
Athugið: Forskalinn er óvirkur í ATtiny15 samhæfingarham og hvorki ritun í CLKPR né forritun CKDIV8 öryggisins hefur nein áhrif á kerfisklukkuna (sem mun alltaf vera 1.6 MHz).
Orkustjórnun og svefnstillingar
Mikil afköst og leiðandi skilvirkni kóða gerir AVR örstýringar kjörinn kostur fyrir lítið afl forrit. Að auki gera svefnhamir forritinu kleift að loka ónotuðum einingum í MCU og spara þannig rafmagn. AVR býður upp á ýmsar svefnstillingar sem gerir notandanum kleift að aðlaga orkunotkun að kröfum forritsins.
Svefnstillingar
Mynd 6-1 á blaðsíðu 23 kynnir mismunandi klukkukerfi og dreifingu þeirra í ATtiny25 / 45/85. Myndin er gagnleg við val á viðeigandi svefnham. Tafla 7-1 sýnir mismunandi svefnstillingar og uppvakningar þeirra.
Tafla 7-1. Virk klukkulén og vökuheimildir í mismunandi svefnstillingum
Virk klukkulén | Oscillators | Vakna Heimildir | ||||||||||
Svefnstilling | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | Aðal klukka uppspretta virk | INT0 og Pin Change | SPM / EEPROM
Tilbúið |
USI byrjunarástand |
ADC | Annað I/O | Varðhundur Trufla |
Aðgerðarlaus | X | X | X | X | X | X | X | X | X | X | ||
ADC hávaðaminnkun | X | X | X(1) | X | X | X | X | |||||
Slökkt | X(1) | X | X |
Athugið: Fyrir INT0, aðeins stigrof.
Til að komast í einhverja af þremur svefnhamunum verður að skrifa SE bitann í MCUCR til að rökræða einn og framkvæma SLEEP leiðbeiningar. SM [1: 0] bitarnir í MCUCR skránni velja hvaða svefnham (aðgerðalaus, ADC hávaðaminnkun eða slökkt) verður virkjað með SLEEP leiðbeiningunum. Sjá Tafla 7-2 fyrir samantekt.
Ef virkt truflun á sér stað meðan MCU er í svefnstillingu, vaknar MCU. MCU stöðvast síðan í fjórar lotur til viðbótar við upphafstíma, framkvæmir truflunarvenjuna og hefir framkvæmd að nýju frá kennslu eftir svefn. Innihald skráarinnar File og SRAM eru óbreytt þegar tækið vaknar úr svefni. Ef endurstilling á sér stað í svefnstillingu vaknar MCU og keyrir frá Reset Vector.
Athugaðu: að ef truflun sem kveikt er á stigi er notuð til að vekja upp verður breyttu stigi að halda í nokkurn tíma til að vekja upp MCU (og til að MCU fari inn í truflunarþjónusturútínu). Sjáðu „Ytri truflanir“ á bls. 49 fyrir nánari upplýsingar.
Aðgerðalaus háttur
Þegar SM[1:0] bitarnir eru skrifaðir á 00, gerir SLEEP leiðbeiningin MCU í aðgerðalausa stillingu, stöðvar örgjörvann en gerir Analog Comparator, ADC, USI, Timer/Counter, Watchdog og truflakerfið kleift að halda áfram að starfa. borða. Þessi svefnstilling stöðvar í grundvallaratriðum clkCPU og clkFLASH, en leyfir hinum klukkunum að keyra.
Aðgerðalaus stilling gerir MCU kleift að vakna frá truflunum utan af völdum sem og innri eins og Timer Overflow. Ef ekki er þörf á vakningu frá Analog Comparator trufluninni er hægt að slökkva á Analog Comparator með því að setja ACD bitann í “ACSR - Analog Comparator Control and Status Register” á bls. 120. Þetta mun draga úr orkunotkun í aðgerðalausri stillingu. Ef ADC er virkt byrjar viðskipti sjálfkrafa þegar þessi háttur er kominn á.
ADC hávaðaminnkun
Þegar SM[1:0] bitarnir eru skrifaðir á 01, gerir SLEEP leiðbeiningin MCU til að fara í ADC Noise Reduction ham, stöðva CPU en leyfa ADC, ytri truflunum og Varðhundinum að halda áfram að starfa (ef virkt). Þessi svefnstilling stöðvar clkI/O, clkCPU og clkFLASH, en leyfir hinum klukkunum að keyra.
Þetta bætir hávaðaumhverfi ADC og gerir mælingar með hærri upplausn kleift. Ef ADC er virkt byrjar viðskipti sjálfkrafa þegar þessi háttur er kominn á. Burtséð frá ADC umbreytingu heill truflun, aðeins utanaðkomandi endurstilla, varðhundur endurstilla, brúnt út endurstilla, SPM / EEPROM tilbúið truflun, ytra stig trufla á INT0 eða pinna skipta truflun geta vakið MCU frá ADC hávaði minnkun háttur.
Slökkt á ham
Þegar SM [1: 0] bitarnir eru skrifaðir í 10, fær SLEEP leiðbeiningin MCU í að slökkva. Í þessum ham er stöðvun stöðvuð meðan truflunin er utanaðkomandi, USI byrjar að greina ástand og varðhundurinn starfar áfram (ef það er virkt). Aðeins ytri endurstilla, endurstilla varðhundinn, endurstilla brúnt út, trufla USI byrjunarskilyrði, truflun á ytra stigi á INT0 eða truflun á pinnabreytingu geta vakið MCU. Þessi svefnhamur stöðvar allar klukkur sem myndast og leyfa aðeins ósamstillta einingar.
Hugbúnaður BOD óvirkur
Þegar Brown-out skynjari (BOD) er virkjaður með BODLEVEL öryggi (sjá Tafla 20-4 á blaðsíðu 148), fylgist BOD virkan með framboðitage meðan á svefn stendur. Í sumum tækjum er hægt að spara orku með því að aftengja BOD með hugbúnaði í svefnstillingu. Orkunotkun svefnstillingar verður þá á sama stigi og þegar BOD er slökkt á heimsvísu vegna öryggis.
Ef BOD er óvirkt með hugbúnaði er slökkt á BOD aðgerðinni strax eftir að farið er í svefnstillingu. Þegar þú vaknar úr svefni er BOD sjálfkrafa virkjað aftur. Þetta tryggir örugga notkun ef VCC-stigið hefur lækkað á svefntímabilinu.
Þegar BOD hefur verið gert óvirkt verður vakningartíminn úr svefnhamnum sá sami og þegar vaknað er úr RESET. Notandinn verður að stilla vakningartímana handvirkt þannig að tilvísun bandgap hafi tíma til að byrja og BOD virki rétt áður en MCU heldur áfram að framkvæma kóða. Sjá SUT [1: 0] og CKSEL [3: 0] öryggisbita í töflu „Fuse Low Byte“ á bls. 149
BOD disable er stjórnað af BODS (BOD Sleep) bita MCU Control Register, sjá „MCUCR - MCU Control Skráðu þig “á bls. 37. Með því að skrifa þennan bitann við einn slökknar á BOD í Power-Down, en meðan núll er skrifað er BOD virkur. Sjálfgefin stilling er núll, þ.e. BOD virkur.
Ritun við BODS bitann er stjórnað af tímasettri röð og virknibita, sjá “MCUCR - MCU Control Regis- ter “á bls. 37.
Takmarkanir
BOD virkjunarvirkni hefur verið innleidd í eftirfarandi tækjum, aðeins:
ATtiny25, endurskoðun E og nýrri
ATtiny45, endurskoðun D og nýrri
ATtiny85, endurskoðun C og nýrri
Endurskoðanir eru merktar á tækjapakkanum og geta verið staðsettar á eftirfarandi hátt:
Neðri hlið pakkninganna 8P3 og 8S2
Efsta hlið pakkans 20M1
Orkuskerðingarskrá
Orkuskerðingarskrá (PRR), sjá „PRR - Power Reduction Register“ á bls. 38, veitir aðferð til að draga úr orkunotkun með því að stöðva klukkuna í einstökum jaðartækjum. Núverandi ástand jaðarins er frosið og hvorki hægt að lesa eða skrifa I / O skrárnar. Auðlindir sem jaðaraðilar nota þegar klukkan er stöðvaðar verða áfram uppteknar og þess vegna ætti jaðartækið í flestum tilvikum að vera óvirkt áður en klukkan er stöðvuð. Að vekja upp einingu, sem er gert með því að hreinsa bitann í PRR, setur eininguna í sama ástand og fyrir lokun.
Hægt er að nota lokun mát í aðgerðalausri og virkri stillingu til að draga verulega úr orkunotkuninni. Í öllum öðrum svefnhamum er klukkan þegar stöðvuð. Sjá „Framboð straumur I / O eininga“ á bls. 177 tdamples.
Lágmarka orkunotkun
Það eru nokkur atriði sem þarf að hafa í huga þegar reynt er að lágmarka orkunotkun í AVR-stýrðu kerfi. Almennt ætti að nota svefnstillingar eins mikið og mögulegt er og velja svefnstillingu þannig að sem fæstir af aðgerðum tækisins starfi. Allar aðgerðir sem ekki eru nauðsynlegar ættu að vera óvirkar. Sérstaklega gætu eftirfarandi einingar þurft að taka sérstaka tillit til þegar reynt er að ná sem minnstu orkunotkun.
Analog í Digital Converter
Ef það er virkt verður ADC virkt í öllum svefnhamum. Til að spara orku ætti ADC að vera óvirkt áður en þú ferð í einhvern svefnham. Þegar slökkt er á ADC og kveikt á honum aftur verður næsta viðskipti framlengd viðskipti. Vísa til „Analog to Digital Converter“ á blaðsíðu 122 til að fá upplýsingar um ADC aðgerð.
Analog samanburður
Þegar farið er í aðgerðaleysi ætti að gera Analog Comparator óvirkan ef hann er ekki notaður. Þegar farið er í ADC hávaðaminnkun ætti að gera Analog Comparator óvirkan. Í hinum svefnstillingunum er Analog Comparator sjálfkrafa óvirkur. Hins vegar, ef Analog Comparator er settur upp til að nota Internal Voltage Tilvísun sem inntak, ætti að gera Analog Comparator óvirkan í öllum svefnstillingum. Annars er innri binditage Tilvísun verður virk, óháð svefnstillingu. Vísa til „Analog Comparator“ á bls. 119 til að fá upplýsingar um hvernig á að stilla Analog Comparator.
Brúnleit skynjari
Ef ekki er þörf á Brown-out skynjara í forritinu ætti að slökkva á þessari einingu. Ef Brown-out skynjarinn er gerður virkur af BODLEVEL öryggjum, verður hann virkur í öllum svefnhamum, og þess vegna, alltaf neyta orku. Í dýpri svefnhamum mun þetta stuðla verulega að heildar núverandi neyslu. Sjá „Brown-out Detec- tion “á bls. 41 og „Hugbúnaður BOD óvirkur“ á bls. 35 til að fá upplýsingar um hvernig á að stilla Brown-out skynjara.
Innra binditage Tilvísun
The Internal Voltage Tilvísun verður virk þegar þörf er á af Brown-out uppgötvun, Analog Comparator eða ADC. Ef þessar einingar eru gerðar óvirkar eins og lýst er í köflunum hér að ofan mun innra voltage tilvísunin verður óvirk og hún mun ekki eyða orku. Þegar kveikt er aftur á verður notandinn að leyfa tilvísuninni að hefjast áður en framleiðsla er notuð. Ef tilvísuninni er haldið áfram í svefnstillingu er hægt að nota framleiðsluna strax. Vísa til “Innra binditage Tilvísun “á bls til að fá nánari upplýsingar um upphafstíma.
Varðhundateljari
Ef ekki er þörf á Watchdog teljara í forritinu ætti að slökkva á þessari einingu. Ef Watchdog tímamælirinn er virkur verður hann virkur í öllum svefnhamum og neytir þess vegna alltaf afls. Í dýpri svefnhamum mun þetta stuðla verulega að heildar núverandi neyslu. Vísa til „Varðhundatímamælir“ á blaðsíðu 42 til að fá nánari upplýsingar um hvernig stilla á Watchdog Timer.
Portnálar
Þegar farið er í svefnstillingu ættu allir tengipinnar að vera stilltir til að nota lágmarksafl. Mikilvægast er þá að tryggja að engir pinnar keyri viðnámsálag. Í svefnstillingum þar sem bæði I/O klukkan (clkI/O) og ADC klukkan (clkADC) eru stöðvuð, verður inntaksbuffi tækisins óvirkt. Þetta tryggir að engin orku er neytt
með inntakslógíkinni þegar þess er ekki þörf. Í sumum tilfellum er inntakslógíkin nauðsynleg til að greina vakningarskilyrði, og
það verður þá gert virkt. Vísað til hlutans „Stafræn inntak virkjað og svefnhamur“ á bls. 57 fyrir upplýsingar um hvaða pinnar eru virkjaðar. Ef inntaksbuffið er virkt og inntaksmerkið er látið fljóta eða hefur hliðrænt merkisstig nálægt VCC/2 mun inntaksbuffið nota of mikið afl.
Fyrir hliðræna inntakspinna ætti stafræna inntaksbiðminnið að vera óvirkt alltaf. Hliðrænt merkistig nálægt VCC/2 á inntakspinni getur valdið verulegum straumi jafnvel í virkri stillingu. Hægt er að slökkva á stafrænum inntaksbuffum með því að skrifa í Digital Input Disable Register (DIDR0). Vísa til „DIDR0 - Digital Input Disable Register 0“ á bls. 121 fyrir nánari upplýsingar.
Lýsing á skrá
MCUCR - MCU Control Register
MCU Control Register inniheldur stjórnbita fyrir orkustjórnun.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Lesa/skrifa | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - BODS: BOD Sleep
BOD virkjunarvirkni er aðeins í boði í sumum tækjum. Sjá „Takmarkanir“ á bls. 36.
Til þess að gera BOD óvirkan í svefni (sjá Tafla 7-1 á blaðsíðu 34) BODS bitinn verður að vera skrifaður til að rökrétta. Þessu er stjórnað af tímasettri röð og virkjunarbitanum, BODSE í MCUCR. Í fyrsta lagi verður bæði BODS og BODSE að vera stillt á einn. Í öðru lagi, innan fjögurra klukkuhringa, verður að setja BODS á einn og BODSE að vera núll. BODS bitinn er virkur þremur klukkuhringum eftir að hann er stilltur. Gefa þarf svefnleiðbeiningar meðan BODS er virkur til að slökkva á BOD fyrir raunverulegan svefnham. BODS bitinn er sjálfkrafa hreinsaður eftir þrjár klukkuferðir.
Í tækjum þar sem Sleeping BOD hefur ekki verið útfærður er þessi hluti ónotaður og mun alltaf lesa núll.
Bit 5 - SE: Sleep Enable
SE bitinn verður að skrifa á rökfræði XNUMX til að láta MCU fara í svefnham þegar SLEEP leiðbeiningin er keyrð. Til að koma í veg fyrir að MCU fari í svefnstillingu nema það sé tilgangur forritarans, er mælt með því að skrifa Sleep Enable (SE) bitann í einn rétt áður en SLEEP leiðbeiningin er framkvæmd og hreinsa hana strax eftir að vaknað er.
Bits 4: 3 - SM [1: 0]: Sleep Mode Veldu Bits 1 og 0
Þessir bitar velja á milli þriggja svefnhamanna sem til eru eins og sést á Tafla 7-2.
Tafla 7-2. Sleep Mode Veldu
SM1 | SM0 | Svefnstilling |
0 | 0 | Aðgerðarlaus |
0 | 1 | ADC hávaðaminnkun |
1 | 0 | Slökkt |
1 | 1 | Frátekið |
Bit 2 - BODSE: BOD Sleep Enable
BOD virkjunarvirkni er aðeins í boði í sumum tækjum. Sjá „Takmarkanir“ á bls. 36.
BODSE bitinn gerir kleift að stilla BODS stjórnbitann eins og útskýrt er í BODS bitalýsingunni. BOD disable er stjórnað með tímasettri röð.
Þessi hluti er ónotaður í tækjum þar sem hugbúnaður BOD slökkt hefur ekki verið útfærður og mun lesa sem núll í þessum tækjum.
PRR - Orkuskerðingarskrá
Orkuskerðingarskráin býður upp á aðferð til að draga úr orkunotkun með því að leyfa jaðarklukkumerkjum að vera óvirk.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRTIM1 | PRTIM0 | PRÚSÍ | PRADC | PRR |
Lesa/skrifa | R | R | R | R | R/W | R/W | R/W | R/W | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7: 4 - Res: Reserved Bit
Þessir bitar eru fráteknir bitar í ATtiny25 / 45/85 og munu alltaf lesa sem núll.
Bit 3 - PRTIM1: Tímamælir / mótmælir 1
Með því að skrifa rökfræði við þessa hluti lokast Timer / Counter1 einingin. Þegar tímastillirinn / teljarinn1 er virkur mun aðgerðin halda áfram eins og fyrir lokunina.
Bit 2 - PRTIM0: Tímamælir / mótmælir 0
Með því að skrifa rökfræði við þessa hluti lokast Timer / Counter0 einingin. Þegar tímastillirinn / teljarinn0 er virkur mun aðgerðin halda áfram eins og fyrir lokunina.
Bit 1 - PRUSI: Rafmagnslækkun USI
Að skrifa rökfræði við þessa hluti lokar USI með því að stöðva klukkuna að einingunni. Þegar USI er vakinn aftur ætti að endurstilla USI til að tryggja rétta notkun.
Bit 0 - PRADC: Power Reduction ADC
Að skrifa rökfræði við þessa hluti lokar ADC. ADC verður að vera óvirkt áður en það er lokað. Athugaðu að ADC klukkan er einnig notuð af sumum hlutum hliðstæðu samanburðarins, sem þýðir að ekki er hægt að nota hliðstæða samanburðartækið þegar þessi hluti er mikill.
Kerfisstjórnun og endurstilling
Endurstilla AVR
Við endurstillingu eru allar I / O skrár stilltar á upphafsgildi þeirra og forritið byrjar framkvæmd frá Reset Vecor. Leiðbeiningin sem sett er fram í Reset Vector verður að vera RJMP - Relative Jump - leiðbeining um endurstillingarháttinn. Ef forritið gerir aldrei kleift að gera hlé á truflun eru Truflunarferlarnir ekki notaðir og hægt er að setja venjulegan forritakóða á þessum stöðum. Rásarmyndin í Mynd 8-1 sýnir endurstilla rökfræði. Rafmagnsstillingar endurstillingarrásarinnar eru gefnar upp í „Einkenni kerfis og endurstillingar“ á bls. 165.
Mynd 8-1 Reset Logic
I / O tengin á AVR eru strax endurstillt í upphafsstöðu þegar endurstillingargjafinn verður virkur. Þetta krefst þess að engin klukkugjafi sé í gangi.
Eftir að allar endurstillingarheimildir hafa verið óvirkar er kallað á seinkunarteljara sem teygir innri endurstillingu. Þetta gerir aflinu kleift að ná stöðugu stigi áður en venjulegur gangur hefst. Tímamörk töfarteljarans er skilgreind af notanda í gegnum SUT og CKSEL öryggin. Mismunandi val fyrir seinkunartímabilið eru kynnt í „Klukka Heimildir “á blaðsíðu 25.
Endurstilla heimildir
ATtiny25 / 45/85 hefur fjórar endurstillingarheimildir:
Kveikt á endurstillingu. MCU er endurstillt þegar framboð voltage er undir Power-on Reset Threshold (VPOT).
Ytri endurstilling. MCU er endurstillt þegar lágt stig er til staðar á RESET pinna lengur en lágmarks púls lengd.
Endurstilla varðhund. MCU er endurstillt þegar Watchdog teljari tímabilið rennur út og Watchdog er virkt.
Brown-out Endurstilla. MCU er endurstillt þegar framboð voltage VCC er undir Brown-out Reset Threshold (VBOT) og Brown-out skynjarinn er virkur.
Kveikt á endurstillingu
Power-on Reset (POR) púls myndast með greiningarrás á flís. Greiningarstigið er skilgreint í „Sys- tem og Reset Einkenni “á bls. 165. POR er virkjað þegar VCC er undir greiningarstigi. Hægt er að nota POR hringrásina til að kveikja á ræsingu endurstillingar, sem og til að greina bilun í framboðsrúmmálitage.
Power-on Reset (POR) hringrás tryggir að tækið sé endurstillt frá kveikju. Náði þröskuldinum við endurstillingu við endurvinnslu, voltage kallar á seinkateljarann, sem ákvarðar hversu lengi tækið er haldið í RESET eftir að VCC hækkar. RESET merkið er virkjað aftur, án tafar, þegar VCC fer niður fyrir greiningarstigið.
Mynd 8-2. MCU Ræsing, RESET Tengt VCC
INNRI ENDURSTILLING
Mynd 8-3. MCU Ræsing, RESET Framlengd að utan
Ytri endurstilling
Ytri endurstilling er mynduð af lágu stigi á RESET pinna ef hún er virk. Endurstilla pulsur sem eru lengri en lágmarkspúlsbreiddin (sjá „Einkenni kerfis og endurstillingar“ á bls. 165) mun endurstilla, jafnvel þótt klukkan sé ekki í gangi. Ekki er tryggt að styttri púls myndi endurstilla. Þegar beitt merki nær Reset Threshold Voltage – VRST – á jákvæðu brúninni, seinkunarteljarinn ræsir MCU eftir að tíminn er liðinn.
Mynd 8-4. Ytri endurstilling meðan á notkun stendur
Brúnleit uppgötvun
ATtiny25/45/85 er með On-chip Brown-out Detection (BOD) hringrás til að fylgjast með VCC stiginu meðan á notkun stendur með því að bera það saman við fast kveikjustig. Hægt er að velja kveikjustig fyrir BOD með BODLEVEL öryggi. Kveikjustigið er með hysteresis til að tryggja topplausa Brown-out uppgötvun. Hysteresis á greiningarstigi ætti að túlka sem VBOT+ = VBOT + VHYST/2 og VBOT- = VBOT – VHYST/2.
Þegar BOD er virkt og VCC lækkar í gildi undir kveikjustigi (VBOT-in Mynd 8-5), er Brown-out endurstillingin virkjuð strax. Þegar VCC hækkar fyrir ofan kveikjustigið (VBOT+ in Mynd 8-5), seinkunarteljarinn ræsir MCU eftir að tíminn tTOUT er liðinn.
BOD hringrásin mun aðeins greina lækkun á VCC ef voltage helst undir kveikjustigi lengur en tBOD gefið upp „Einkenni kerfis og endurstillingar“ á bls. 165.
Endurstilla varðhund
Þegar Varðhundurinn tekur tíma út mun hann mynda stuttan endurstillingspúls sem varir eina CK lotu. Á lækkandi brún þessa púls byrjar seinkunartímamælirinn að telja tímatímann tTOUT. Vísa til „Varðhundatímamælir“ á blaðsíðu 42 til að fá nánari upplýsingar um notkun Watchdog Timer.
Voltage Tilvísun Virkja merki og upphafstíma
Binditagtilvísunin hefur upphafstíma sem getur haft áhrif á hvernig hún á að nota. Upphafstími er gefinn upp „Einkenni kerfis og endurstillingar“ á bls. 165. Til að spara orku er ekki alltaf kveikt á tilvísuninni. Tilvísunin er kveikt við eftirfarandi aðstæður:
Þegar BOD er virkt (með því að forrita BODLEVEL [2: 0] Fuse Bits).
Þegar bandgap tilvísunin er tengd við Analog Comparator (með því að setja ACBG bitann í ACSR).
Þegar ADC er virkt.
Þannig að þegar BOD er ekki virkt, eftir að hafa stillt ACBG bitann eða gert ADC kleift, verður notandinn alltaf að leyfa tilvísuninni að byrja áður en framleiðsla Analog Comparator eða ADC er notuð. Til að draga úr orkunotkun í rafmagnstillingu getur notandinn forðast þrjár aðstæður hér að ofan til að tryggja að slökkt sé á tilvísuninni áður en hann fer í rafmagnstillingu.
Varðhundateljari
Varðhundatímamælirinn er klukkaður frá Ó-flís oscillator sem keyrir á 128 kHz. Með því að stjórna Watchdog Timer forritaranum er hægt að stilla endurstillingarbil Watchdog eins og sýnt er á Tafla 8-3 á blaðsíðu 46. WDR - Watchdog Reset - leiðbeiningin endurstillir Watchdog Timer. Varðhundatíminn er einnig endurstilltur þegar hann er óvirkur og þegar endurstilling flísar á sér stað. Hægt er að velja tíu mismunandi klukkuhringrásartímabil til að ákvarða endurstillingartímann. Ef endurstillingartímabilið rennur út án þess að endurstilla Watchdog endurstillir ATtiny25 / 45/85 og keyrir úr Reset Vector. Upplýsingar um tímasetningu um endurstillingu varðhundsins, sjá Tafla 8-3 á blaðsíðu 46.
Einnig er hægt að stilla Watchdog teljara til að mynda truflun í stað endurstillingar. Þetta getur verið mjög gagnlegt þegar Watchdog er notaður til að vakna frá Power-down.
Til að koma í veg fyrir ósjálfráða slökun á varðhundinum eða óviljandi breytingu tímabilsins eru tvö mismunandi öryggisstig valin með örygginu WDTON eins og sýnt er á Tafla 8-1 Vísa til „Tímasettar raðir til að breyta samkomulaginu myndmynd af varðhundinum “á bls. 43 fyrir nánari upplýsingar.
Tafla 8-1. WDT stillingar sem aðgerð af öryggisstillingum WDTON
WDTON | Öryggisstig | Upphafsríki WDT | Hvernig á að slökkva á WDT | Hvernig á að breyta tíma |
Óforritað | 1 | Öryrkjar | Tímasett röð | Engar takmarkanir |
Forritað | 2 | Virkt | Alltaf virk | Tímasett röð |
Mynd 8-7. Varðhundateljari
Tímasettar raðir til að breyta stillingum varðhundatímans
Röðin til að breyta stillingum er aðeins mismunandi milli öryggisstiganna tveggja. Aðskildum verklagsreglum er lýst fyrir hvert stig.
Öryggisstig 1: Í þessari stillingu er Varðhundatíminn í upphafi óvirkur, en hægt er að virkja hann með því að skrifa WDE bitann í einn án nokkurra takmarkana. Tímasett röð er nauðsynleg þegar kveikt er á vakthundatímamæli. Til að slökkva á virkum varðhundateljara verður að fylgja eftirfarandi aðferð:
Í sömu aðgerð, skrifaðu rökfræði til WDCE og WDE. Rökfræði verður að vera skrifuð til WDE án tillits til fyrri gildi WDE bitans.
Innan næstu fjögurra klukkuhringa, í sömu aðgerð, skrifaðu WDE og WDP bita eins og þú vilt, en með WDCE bita hreinsaður.
Öryggisstig 2: Í þessari stillingu er Watchdog Timer alltaf virkur og WDE bitinn mun alltaf lesa sem einn. Tímasett röð er nauðsynleg þegar skipt er um tímabil Varðhunda. Til að breyta tímamörkum varðhundsins verður að fylgja eftirfarandi aðferð:
Í sömu aðgerð skaltu skrifa rökrétt til WDCE og WDE. Jafnvel þó að WDE sé alltaf stillt verður að skrifa WDE til einnar til að hefja tímasettar röð.
Innan fjögurra klukkuhringa, í sömu aðgerð, skrifaðu WDP bita eins og þú vilt, en með WDCE bita hreinsaður. Gildið sem skrifað er á WDE bitann skiptir ekki máli.
Kóði Example
Eftirfarandi kóði example sýnir eina samsetningu og eina C aðgerð til að slökkva á WDT. Fyrrverandiample gerir ráð fyrir að truflunum sé stjórnað (td með því að slökkva á truflunum á heimsvísu) þannig að engar truflanir komi fram við framkvæmd þessara aðgerða.
Samsetningarreglur Example(1) |
WDT_off:
wdr ; Hreinsa WDRF í MCUSR ldi r16, (0< út MCUSR, r16 ; Skrifaðu rökrétt til WDCE og WDE ; Haltu gömlu stillingu forðatækisins til að koma í veg fyrir að óvart sé endurstilltur varðhundur í r16, WDTCR ori r16, (1< út WDTCR, r16 ; Slökktu á WDT ldi r16, (0< út WDTCR, r16 ret |
C kóða Example(1) |
ógilt WDT_off (ógilt)
{ _WDR (); /* Hreinsaðu WDRF í MCUSR */ MCUSR = 0x00 /* Skrifaðu rökrétt eitt í WDCE og WDE */ WDTCR |= (1< / * Slökktu á WDT * / WDTCR = 0x00; } |
Athugasemd: 1. Sjá “Kóði Examples “á síðu 6.
Lýsing á skrá
MCUSR - MCU stöðuskrá
MCU stöðuskráin veitir upplýsingar um hvaða endurstillingargjafi olli MCU endurstillingu.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | BORF | EXTRF | PORF | MCUSR |
Lesa/skrifa | R | R | R | R | R/W | R/W | R/W | R/W |
Upphafsgildi 0 0 0 0 Sjá bitalýsingu
Bit 7: 4 - Res: Reserved Bit
Þessir bitar eru fráteknir bitar í ATtiny25 / 45/85 og munu alltaf lesa sem núll.
Bit 3 - WDRF: Varðhundur endurstilla fána
Þessi hluti er stilltur ef endurstilling varðhundsins á sér stað. Bitinn er endurstilltur með Power-on Reset eða með því að skrifa rökrétt núll í fánann.
Bit 2 - BORF: Brown-out Reset Flag
Þessi hluti er stilltur ef Brown-out Reset á sér stað. Bitinn er endurstilltur með Power-on Reset eða með því að skrifa rökrétt núll í fánann.
Bit 1 - EXTRF: Ytri endurstillingarfáni
Þessi hluti er stilltur ef ytri endurstilling á sér stað. Bitinn er endurstilltur með Power-on Reset eða með því að skrifa rökrétt núll í fánann.
Bit 0 - PORF: Kveikja á endurstilla fána
Þessi hluti er stilltur ef endurstilling á virkni kemur upp. Bitinn er aðeins endurstilltur með því að skrifa rökrétt núll í fánann.
Til að nota Reset Flags til að bera kennsl á endurstillingarástand ætti notandinn að lesa og núllstilla MCUSR eins snemma og mögulegt er í forritinu. Ef skráin er hreinsuð áður en önnur endurstilling á sér stað er hægt að finna uppruna endurstillingarinnar með því að skoða endurstilla fána.
WDTCR - Tímastjórnunarskrá yfir varðhundinn
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x21 | WDIF | WDIE | WDP3 | WDCE | WDE | WDP2 | WDP1 | WDP0 | WDTCR |
Lesa/skrifa | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Upphafsgildi | 0 | 0 | 0 | 0 | X | 0 | 0 | 0 |
Bit 7 - WDIF: Úrslitafyrirtæki varðskots tíma
Þessi hluti er stilltur þegar tímamörk eiga sér stað í Watchdog teljara og Watchdog teljarinn er stilltur fyrir truflun. WDIF er hreinsað með vélbúnaði þegar samsvarandi truflunarmeðferðarferill er framkvæmdur. Að öðrum kosti er WDIF hreinsað með því að skrifa rökfræði í fánann. Þegar I-bitinn í SREG og WDIE er stilltur er Watchdog Time-out Interrupt keyrð.
Bit 6 - WDIE: Tímabil truflana á varðhundi virkt
Þegar þessi hluti er skrifaður á einn, er WDE hreinsað og I-bitinn í stöðuskránni er stilltur, er tímabundið hlé á varðhundi virkt. Í þessari stillingu er samsvarandi truflun framkvæmd í stað endurstillingar ef tímamörk í Watchdog teljaranum eiga sér stað.
Ef stillt er á WDE er WDIE sjálfkrafa hreinsað af vélbúnaði þegar tímamörk eiga sér stað. Þetta er gagnlegt til að halda varðveislu endurstillingar öryggis meðan truflun er notuð. Eftir að WDIE bitinn er hreinsaður mun næsta tímapunkti búa til endurstillingu. Til að forðast endurstillingu varðhundsins verður að stilla WDIE eftir hverja truflun.
Tafla 8-2. Stilling Watchdog Timer
WDE | WDIE | Varðhundur Tímamælir | Aðgerð á Time-out |
0 | 0 | Hætt | Engin |
0 | 1 | Hlaupandi | Trufla |
1 | 0 | Hlaupandi | Endurstilla |
1 | 1 | Hlaupandi | Trufla |
Bit 4 - WDCE: Varðhundabreyting virk
Þessa hluti verður að stilla þegar WDE bitinn er skrifaður á rökrétt núll. Annars verður varðhundurinn ekki óvirkur. Einu sinni skrifað til einnar mun vélbúnaður hreinsa þennan hluti eftir fjórar klukkuferðir. Vísað er til lýsingar á WDE bitanum varðandi Watchdog óvirka aðferð. Þessa hluti verður einnig að stilla þegar skipt er um forritunarbita. Sjá „Tímasettar raðir til að breyta stillingum varðskipsins ”á bls. 43.
Bit 3 - WDE: Varðhundur virkur
Þegar WDE er skrifað samkvæmt rökfræði er Watchdog-tímamælirinn virkur og ef WDE er skrifaður til að logic zero er Watchdog Timer-aðgerðin óvirk. WDE er aðeins hægt að hreinsa ef WDCE bitinn er með rökstig eitt. Til að gera óvirkan varðhundateljara óvirkan verður að fylgja eftirfarandi aðferð:
Í sömu aðgerð skaltu skrifa rökfræði til WDCE og WDE. Rökfræði verður að vera skrifuð til WDE þó að hún sé stillt á eina áður en óvirk aðgerð hefst.
Skrifaðu rökfræði 0 til WDE innan næstu fjögurra hringferla. Þetta gerir Vakthundinn óvirkan.
Í öryggisstigi 2 er ekki hægt að slökkva á Watchdog Timer, jafnvel með reikniritinu sem lýst er hér að ofan. Sjá „Tímasettar raðir til að breyta stillingum varðhundsins“ á bls. 43.
Í öryggisstigi 1 er WDE framhjá WDRF í MCUSR. Sjá „MCUSR - MCU Status Register“ á bls. 44 til lýsingar á WDRF. Þetta þýðir að WDE er alltaf stillt þegar WDRF er stillt. Til að hreinsa WDE verður að hreinsa WDRF áður en varðhundurinn er gerður óvirkur með aðferðinni sem lýst er hér að ofan. Þessi aðgerð tryggir margar endurstillingar við aðstæður sem valda bilun og örugga gangsetningu eftir bilunina.
Athugið: Ef tímamælir varðhundsins verður ekki notaður í forritinu er mikilvægt að fara í gegnum aðgerð til að slökkva á varðhundi í frumstillingu tækisins. Ef Varðhundurinn er óvart virkjaður, tdample með flýtibendli eða brúnu ástandi, tækið verður endurstillt, sem aftur mun leiða til nýrrar endurstillingar varðhundar. Til að forðast þessa aðstöðu ætti forritshugbúnaðurinn alltaf að hreinsa WDRF fána og WDE stýribitinn í upphafsrútínunni.
Bitar 5, 2: 0 - WDP [3: 0]: Varðhundur tímastillir 3, 2, 1 og 0
WDP [3: 0] bitarnir ákvarða forvarnir á Watchdog Timer þegar Watchdog Timer er virkur. Mismunandi forstillingargildi og samsvarandi tímamörk þeirra eru sýnd í Tafla 8-3.
Tafla 8-3. Varðhundur Timer Forskala Veldu
WDP3 | WDP2 | WDP1 | WDP0 | Fjöldi hringrásar WDT oscillator | Dæmigert Time-out við VCC = 5.0V |
0 | 0 | 0 | 0 | 2K (2048) lotur | 16 ms |
0 | 0 | 0 | 1 | 4K (4096) lotur | 32 ms |
0 | 0 | 1 | 0 | 8K (8192) lotur | 64 ms |
0 | 0 | 1 | 1 | 16K (16384) lotur | 0.125 sek |
0 | 1 | 0 | 0 | 32K (32764) lotur | 0.25 sek |
0 | 1 | 0 | 1 | 64K (65536) lotur | 0.5 sek |
0 | 1 | 1 | 0 | 128K (131072) lotur | 1.0 sek |
0 | 1 | 1 | 1 | 256K (262144) lotur | 2.0 sek |
1 | 0 | 0 | 0 | 512K (524288) lotur | 4.0 sek |
1 | 0 | 0 | 1 | 1024K (1048576) lotur | 8.0 sek |
Tafla 8-3. Varðhundur Timer Forscale Select (Framhald)
WDP3 | WDP2 | WDP1 | WDP0 | Fjöldi hringrásar WDT oscillator | Dæmigert Time-out við VCC = 5.0V |
1 | 0 | 1 | 0 | Frátekið(1) | |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 |
Athugið: 1. Ef valið er, verður ein af gildu stillingunum fyrir neðan 0b1010 notuð.
Truflar
Þessi hluti lýsir sérstöðu truflunar meðhöndlunarinnar eins og hún er gerð í ATtiny25 / 45/85. Til að fá almenna útskýringu á AVR truflun meðhöndlunar, vísaðu til „Endurstilla og trufla meðhöndlun“ á bls. 12.
Truflaðu vigra í ATtiny25 / 45/85
Truflunarferjum ATtiny25 / 45/85 er lýst í Tafla 9-1hér að neðan.
Tafla 9-1. Endurstilla og trufla vektora
Vigur nr. | Heimilisfang dagskrár | Heimild | Truflaðu skilgreiningu |
1 | 0x0000 | ENDURSTILLA | Ytri pinna, endurstilla rafmagn, endurstilla brúnt, endurstilla varðhund |
2 | 0x0001 | INT0 | Ytri hlébeiðni 0 |
3 | 0x0002 | PCINT0 | Pinna breyting truflunarbeiðni 0 |
4 | 0x0003 | TIMER1_COMPA | Tímamælir / Mælitæki1 Berðu saman leik A |
5 | 0x0004 | TIMER1_OVF | Tímamælir / Counter1 yfirfall |
6 | 0x0005 | TIMER0_OVF | Tímamælir / Counter0 yfirfall |
7 | 0x0006 | EE_RDY | EEPROM tilbúinn |
8 | 0x0007 | ANA_COMP | Analog samanburður |
9 | 0x0008 | ADC | ADC viðskiptum lokið |
10 | 0x0009 | TIMER1_COMPB | Tímamælir / Mælitæki1 Berðu saman leik B |
11 | 0x000A | TIMER0_COMPA | Tímamælir / Mælitæki0 Berðu saman leik A |
12 | 0x000B | TIMER0_COMPB | Tímamælir / Mælitæki0 Berðu saman leik B |
13 | 0x000C | WDT | Time-out varðhundur |
14 | 0x000D | USI_START | USI START |
15 | 0x000E | USI_OVF | USI yfirfall |
Ef forritið virkjar aldrei truflunaruppsprettu eru truflunarferlarnir ekki notaðir og hægt er að setja venjulegan forritakóða á þessum stöðum.
Dæmigerð og almenn uppsetning fyrir truflunarvektarföng í ATtiny25/45/85 er sýnd í forritinu example fyrir neðan.
Samsetningarreglur Example | ||
.org 0x0000 | ; Setja heimilisfang næsta | yfirlýsingu |
rjmp RESET | ; Heimilisfang 0x0000 | |
rjmp INT0_ISR | ; Heimilisfang 0x0001 | |
rjmp PCINT0_ISR | ; Heimilisfang 0x0002 | |
rjmp TIM1_COMPA_ISR | ; Heimilisfang 0x0003 | |
rjmp TIM1_OVF_ISR | ; Heimilisfang 0x0004 | |
rjmp TIM0_OVF_ISR | ; Heimilisfang 0x0005 | |
rjmp EE_RDY_ISR | ; Heimilisfang 0x0006 | |
rjmp ANA_COMP_ISR | ; Heimilisfang 0x0007 | |
rjmp ADC_ISR | ; Heimilisfang 0x0008 | |
rjmp TIM1_COMPB_ISR | ; Heimilisfang 0x0009 | |
rjmp TIM0_COMPA_ISR | ; Heimilisfang 0x000A | |
rjmp TIM0_COMPB_ISR | ; Heimilisfang 0x000B | |
rjmp WDT_ISR | ; Heimilisfang 0x000C | |
rjmp USI_START_ISR | ; Heimilisfang 0x000D | |
rjmp USI_OVF_ISR | ; Heimilisfang 0x000E | |
Endurstilla: | ; Aðal dagskrá byrjun | |
; Heimilisfang 0x000F | ||
… |
Athugið: Sjá “Kóði Examples “á síðu 6.
Ytri truflanir
Ytri truflanirnar koma af stað með INT0 pinna eða einhverjum PCINT [5: 0] pinna. Athugaðu að truflanirnar verða virkar, ef þær eru virkar, jafnvel þó að INT0 eða PCINT [5: 0] pinnar séu stilltir sem úttak. Þessi aðgerð veitir leið til að búa til truflun á hugbúnaði. Rofabreyting truflar PCI mun koma af stað ef einhver virk PCINT [5: 0] pinna skiptist. PCMSK Register stjórnar hvaða pinnar stuðla að truflun pinna. Truflanir á pinnabreytingum á PCINT [5: 0] greinast ósamstilltar. Þetta felur í sér að þessi truflanir geta verið notaðar til að vekja hlutann líka úr öðrum svefnstillingum en aðgerðalausum.
INT0 truflanirnar geta komið af stað með fallandi eða hækkandi brún eða lágu stigi. Þetta er sett upp eins og tilgreint er í forskrift fyrir MCU Control Register - MCUCR. Þegar INT0 truflunin er virk og hún er stillt sem stig af stað, mun truflunin koma af stað svo lengi sem pinninn er lágur. Athugaðu að viðurkenning á truflun á fallandi eða hækkandi brún á INT0 krefst nærveru I / O klukku, sem lýst er í „Klukkukerfi og dreifing þeirra“ á síðu 23.
Truflun á lágu stigi
Truflun á lágu stigi á INT0 greinist ósamstillt. Þetta felur í sér að hægt er að nota þessa truflun til að vekja hlutann líka úr öðrum svefnstillingum en aðgerðalausum. I / O klukkan er stöðvuð í öllum svefnhamum nema aðgerðalausum.
Athugaðu að ef truflun sem kveikt er á stigi er notuð til að vakna úr slökkt á stigi, verður að halda áskilnu stigi nógu lengi til að MCU ljúki vökunni til að kveikja á stigi truflunarinnar. Ef stigið hverfur fyrir lok ræsingartímans mun MCU samt vakna, en engin truflun myndast. Ræsingartíminn er skilgreindur af SUT og CKSEL öryggi eins og lýst er í „Kerfisklukka og klukkuvalkostir“ á bls. 23.
Ef lágt stig á hlépinnanum er fjarlægt áður en tækið hefur vaknað þá verður framkvæmd forrits ekki vísað til truflunarþjónustubrautarinnar heldur heldur áfram frá leiðbeiningunum eftir SLEEP skipuninni.
Pin breyting trufla tímasetningu
Fyrrverandiample tímasetning pinna breytinga truflun er sýnd í Mynd 9-1.
Lýsing á skrá
MCUCR - MCU Control Register
Ytri truflunarstýringarskrá A inniheldur stýribita fyrir truflun á skynjun.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Lesa/skrifa | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitar 1: 0 - ISC0 [1: 0]: Rjúfa skynjun 0 Bit 1 og Bit 0
Ytri truflun 0 er virkjuð af ytri pinna INT0 ef SREG I-fáninn og samsvarandi truflunargríma er stilltur. Stig og brúnir á ytri INT0 pinna sem virkja truflunina eru skilgreindir í Tafla 9-2. Gildið á INT0 pinnanum er sampleiddi áður en brúnir voru greindar. Ef brúnar- eða skiptibylgjur eru valdar munu púlsar sem endast lengur en eitt tímabil mynda truflun. Ekki er tryggt að styttri púls myndi truflun. Ef truflun á lágu stigi er valin verður að halda lágu stigi þar til leiðbeiningunum sem nú er framkvæmt er lokið til að mynda truflun.
Tafla 9-2. Trufla 0 Sense Control
ISC01 | ISC00 | Lýsing |
0 | 0 | Lágt stig INT0 býr til hlébeiðni. |
0 | 1 | Sérhver rökrétt breyting á INT0 býr til hlébeiðni. |
1 | 0 | Fallbrún INT0 býr til hlébeiðni. |
1 | 1 | Hækkandi brún INT0 býr til hlébeiðni. |
GIMSK - Almenn truflunargrímuskrá
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | INT0 | PCIe | – | – | – | – | – | GIMSK |
Lesa/skrifa | R | R/W | R/W | R | R | R | R | R | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7, 4: 0 - Res: Reserved Bit
Þessir bitar eru fráteknir bitar í ATtiny25 / 45/85 og munu alltaf lesa sem núll.
Bit 6 - INT0: Beiðni um utanaðkomandi hlé 0 Virkja
Þegar INT0 bitinn er stilltur (einn) og I-bitinn í stöðuskránni (SREG) er stilltur (einn) er ytri pinnatruflunin virk. Interrupt Sense Control0 bitar 1/0 (ISC01 og ISC00) í MCU Control Register (MCUCR) skilgreina hvort utanaðkomandi truflun er virkjuð við hækkandi og / eða fallandi brún INT0 pinna eða stigs skynjað. Virkni á pinna mun valda truflunarbeiðni jafnvel þó INT0 sé stillt sem framleiðsla. Samsvarandi truflun á ytri truflunarbeiðni 0 er framkvæmd úr INT0 truflunarveikrinum.
Bit 5 - PCIE: Pin Change Interrupt Enable
Þegar PCIE bitinn er stilltur (einn) og I-bitinn í stöðuskránni (SREG) er stilltur (einn), er truflun á pinnaskiptum virk. Allar breytingar á einhverjum virkum PCINT [5: 0] pinna munu valda truflun. Samsvarandi truflun á PIN-breyting truflunarbeiðni er framkvæmd úr PCI truflunarveigri. PCINT [5: 0] pinnar eru virkir hver fyrir sig af PCMSK0 skránni.
GIFR - Almenn truflunarskrá
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3A | – | INTF0 | PCIF | – | – | – | – | – | GIFR |
Lesa/skrifa | R | R/W | R/W | R | R | R | R | R | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7, 4: 0 - Res: Reserved Bit
Þessir bitar eru fráteknir bitar í ATtiny25 / 45/85 og munu alltaf lesa sem núll.
Bit 6 - INTF0: Ytri truflunarfáni 0
Þegar brún eða rökfræðibreyting á INT0 pinna kallar á hlébeiðni verður INTF0 stillt (eitt). Ef I-bitinn í SREG og INT0 bitinn í GIMSK eru stilltir (einn), mun MCU hoppa að samsvarandi truflunarveigara. Fáninn er hreinsaður þegar truflunarreglan er framkvæmd. Að öðrum kosti er hægt að hreinsa fánann með því að skrifa rökréttan við hann. Þessi fáni er alltaf hreinsaður þegar INT0 er stillt sem stigs truflun.
Bit 5 - PCIF: Pin Change Interrupt Flag
Þegar rökfræði breytist á hvaða PCINT [5: 0] pinna sem er kallar fram truflunarbeiðni, verður PCIF stillt (eitt). Ef I-bitinn í SREG og PCIE bitinn í GIMSK eru stilltir (einn) mun MCU hoppa til samsvarandi truflunarveikju. Fáninn er hreinsaður þegar truflunarreglan er framkvæmd. Að öðrum kosti er hægt að hreinsa fánann með því að skrifa rökréttan við hann.
PCMSK - Pin Change Mask Register
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | PCMSK |
Lesa/skrifa | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7: 6 - Res: Reserved Bit
Þessir bitar eru fráteknir bitar í ATtiny25 / 45/85 og munu alltaf lesa sem núll.
Bits 5: 0 - PCINT [5: 0]: Pin Change Virkja Mask 5: 0
Hver PCINT [5: 0] hluti velur hvort truflun á pinnabreytingu sé virk á samsvarandi I / O pinna. Ef PCINT [5: 0] er stillt og PCIE bitinn í GIMSK er stilltur er truflun á pinnaskiptum virk á samsvarandi I / O pinna. Ef PCINT [5: 0] er hreinsað er truflun á pinnaskiptum á samsvarandi I / O pinni óvirk.
I/O tengi
Inngangur
Allar AVR tengi hafa sanna Read-Modify-Write virkni þegar þær eru notaðar sem almennar stafrænar I/O tengi. Þetta þýðir að hægt er að breyta stefnu einnar pinnapinna án þess að óviljandi sé breytt stefnu annarra pinna með leiðbeiningum SBI og CBI. Sama gildir þegar breytt er drifgildi (ef það er stillt sem úttak) eða þegar kveikt er á viðnám (ef það er stillt sem inntak). Hver framleiðsla biðminni hefur samhverfa drifseiginleika með bæði miklum vaski og uppsprettugetu. Pinna bílstjórinn er nógu sterkur til að keyra LED skjái beint. Allir höfnapinnar hafa hver og einn hægt að velja uppdráttarviðnám með framboðsmagnitage óbreytileg viðnám. Allir I/O pinnar eru með verndardíóðum fyrir bæði VCC og Ground eins og sýnt er í Mynd 10-1. Vísa til „Rafmagnseinkenni“ á bls. 161 fyrir heildarlista yfir færibreytur.
Mynd 10-1. I/O Pin Equivalent Schematic
Allar skrár og bitatilvísanir í þessum hluta eru skrifaðar á almennu formi. Lítið „x“ táknar tölustafinn fyrir höfnina og lágstafurinn „n“ táknar bita númerið. Hins vegar, þegar þú notar skrána eða bita skilgreinir í forriti, verður að nota nákvæmlega formið. Fyrir fyrrvample, PORTB3 fyrir hluti nr. 3 í höfn B, hér almennt skráð sem PORTxn. Líkamlegu I/O skrárnar og bitastaðir eru skráðir í „Nýskráning skráningar“ þann síðu 64.
Þremur I / O minnisstöðum er úthlutað fyrir hverja höfn, einn hver fyrir gagnaskrána - PORTx, gagnastefnaskrá - DDRx og gagnainntakspinna - PINx. I / O staðsetning hafnarinntakspinna er aðeins lesin á meðan gagnaskráin og gagnaskráningin er lesin / skrifuð. Hins vegar, að skrifa lógík eitt til dálítið í PINx skráningartækinu, mun leiða til þess að skipt er í samsvarandi hluti í gagnaskránni. Að auki gerir Pull-up Disable - PUD bitinn í MCUCR óvirkan fyrir pullup-aðgerðina fyrir alla pinna í öllum höfnum þegar hún er stillt.
Notkun I / O tengisins sem General Digital I / O er lýst í „Hafnar sem almenn stafræn inn / út“ á bls. 53. Flestir tengipinnar eru margfaldaðir með aukaföllum fyrir jaðaraðgerðir tækisins. Hvernig lýst er á hverri annarri aðgerð truflar hafnapinnann „Aðrir hafnaraðgerðir“ á bls. 57. Vísað er til einstakra hluta einingarinnar til að fá fulla lýsingu á öðrum aðgerðum.
Athugaðu að það að virkja aðra aðgerð sumra hafnapinna hefur ekki áhrif á notkun annarra pinna í höfninni sem almennt stafrænt inn / út.
Hafnir sem almenn stafræn inn / út
Hafnirnar eru tvíhliða I / O tengi með valfrjálsri innri togstreitu. Mynd 10-2 sýnir hagnýta lýsingu á einum I / O-tengipinna, hér almennt kallaður Pxn.
Mynd 10-2. Almennt stafræn I/O(1)
Stilla pinna
Hver tengipinna samanstendur af þremur skráarbitum: DDxn, PORTxn og PINxn. Eins og sést á „Nýskráning skráningar“ þann síðu 64, er hægt að nálgast DDxn bitana á DDRx I / O netfanginu, PORTxn bitana á PORTx I / O heimilisfanginu og PINxn bitana á PINx I / O heimilisfanginu.
DDxn bitinn í DDRx skránni velur stefnu þessa pinna. Ef DDxn er skrifuð rökfræði, er Pxn stillt sem framleiðsla pinna. Ef DDxn er skrifað rökrétt núll er Pxn stillt sem inntakstappi.
Ef PORTxn er skrifuð rökfræði þegar pinninn er stilltur sem inntakspinnur, er togviðnámið virkjað. Til að slökkva á viðnámsviðnámi þarf að skrifa PORTxn rökrétt núll eða stilla þarf pinna sem úttakspinna. Gáttapinnarnir eru þrítilgreindir þegar endurstillingarskilyrðið verður virkt, jafnvel þótt engar klukkur séu í gangi.
Ef PORTxn er skrifuð lógík þegar pinninn er stilltur sem úttakspinna, er portpinninn rekinn hátt (einn). Ef PORTxn er skrifað rökrétt núll þegar pinninn er stilltur sem úttakspinnur, þá er portpinninn lágur (núll).
Skipta um Pin
Að skrifa rökfræði til PINxn skiptir gildi PORTxn, óháð gildi DDRxn. Athugaðu að hægt er að nota SBI leiðbeininguna til að skipta um einn bita í höfn.
Skipt á milli inntaks og úttaks
Þegar skipt er á milli þriggja staða ({DDxn, PORTxn} = 0b00) og há úttaks ({DDxn, PORTxn} = 0b11), millistig með annað hvort uppdráttar virkt {DDxn, PORTxn} = 0b01) eða úttak lágt ({DDxn, PORTxn} = 0b10) verður að koma fram. Venjulega er uppdráttarvirkt ástand fullkomlega ásættanlegt, þar sem háviðnám umhverfi mun ekki taka eftir muninum á sterkum háum ökumanni og uppdráttarbúnaði. Ef þetta er ekki raunin er hægt að stilla PUD bitann í MCUCR Registerinu til að slökkva á öllum uppdráttum í öllum höfnum.
Að skipta á milli inntaks með uppdrætti og lágs framleiðslu skapar sama vandamál. Notandinn verður að nota annaðhvort þrí-ástandið ({DDxn, PORTxn} = 0b00) eða hátaks framleiðslunnar ({DDxn, PORTxn} = 0b10) sem millistig.
Tafla 10-1 tekur saman stjórnmerkin fyrir pinnagildið.
Tafla 10-1. Port Pin Stillingar
DDxn | PORTxn | PUD
(í MCUCR) |
I/O | Uppdráttur | Athugasemd |
0 | 0 | X | Inntak | Nei | Þríríki (Hi-Z) |
0 | 1 | 0 | Inntak | Já | Pxn mun fá straum ef utanaðkomandi togað lágt. |
0 | 1 | 1 | Inntak | Nei | Þríríki (Hi-Z) |
1 | 0 | X | Framleiðsla | Nei | Framleiðsla lág (vaskur) |
1 | 1 | X | Framleiðsla | Nei | Framleiðsla mikil (Heimild) |
Lestur Pin gildi
Óháð stillingu gagnastefnubitans DDxn er hægt að lesa portpinnann í gegnum PINxn Register bitann. Eins og sést á Mynd 10-2, PINxn Register bitinn og læsingin á undan eru samstillingaraðili. Þetta er nauðsynlegt til að koma í veg fyrir meinbreytni ef líkamlegi pinninn breytir gildi nálægt brún innri klukkunnar, en það kemur einnig með töf. Mynd 10-3 sýnir tímasetningarmynd af samstillingunni þegar lesið er á utanaðkomandi pinnagildi. Hámarks- og lágmarksútbreiðslutafir eru táknaðar tpd, max og tpd,min í sömu röð.
Hugleiddu klukkutímabilið sem byrjar skömmu eftir fyrsta fallbrún kerfisklukkunnar. Lásinn er lokaður þegar klukkan er lág og fer í gagnsæi þegar klukkan er há, eins og sýnt er af skyggða svæðinu „SYNC LATCH“ merkið. Merkisgildið er læst þegar klukkan í kerfinu fer lágt. Það er klukkað í PINxn-skrána við næstu jákvæðu klukkukant. Eins og tilgreint er með örvunum tpd, max og tpd, min, mun seinkun á einum merki á pinnanum seinka á milli ½ og 1 ½ kerfisklukkutímabils eftir því hvenær fullyrðingin kemur fram.
Þegar lesið er upp hugbúnað sem úthlutað er pinnagildi, verður að setja nop leiðbeiningar eins og tilgreint er í Mynd 10-4. Útleiðbeiningin stillir „SYNC LATCH“ merkið við jákvæðu brún klukkunnar. Í þessu tilfelli er seinkunin tpd í gegnum samstillibúnaðinn eitt klukkukerfi kerfisins.
Eftirfarandi kóði exampLe sýnir hvernig á að stilla port B pinna 0 og 1 hátt, 2 og 3 lágt, og skilgreina port pinna frá 4 til 5 sem inntak með uppdrátt sem tengist port pinna 4. Pinnagildin sem myndast eru lesin aftur, en eins og áður hefur verið fjallað um fylgir nop leiðbeiningar til að geta lesið til baka gildið sem nýlega var úthlutað nokkrum pinna.
Samsetningarreglur Example(1) |
…
; Skilgreindu uppdrætti og stilltu úttak hátt ; Skilgreindu leiðbeiningar fyrir portpinna ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0) ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) út PORTB,r16 út DDRB,r17 ; Settu inn nop fyrir samstillingu neibb ; Lestu portpinna í r16, PINB … |
Athugið: Fyrir samsetningarforritið eru tvær bráðabirgðaskrár notaðar til að lágmarka tímann frá því að uppdrættir eru stilltir á pinna 0, 1 og 4, þar til stefnubitarnir eru rétt stilltir, skilgreina bit 2 og 3 sem lága og endurskilgreina bita 0 og 1 eins sterkir háir ökumenn.
C kóða Example |
óundirrituð bleikja i;
… /* Skilgreindu uppdrætti og stilltu úttak hátt */ /* Skilgreindu leiðbeiningar fyrir portpinna */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Settu inn nop fyrir samstillingu*/ _NOP (); /* Lesa tengipinna */ i = PINB; … |
Stafrænt inntak virkt og svefnstillingar
Eins og sýnt er í Mynd 10-2, stafrænt inntaksmerki getur verið clamped til jarðtengingar við inntak schmitt-triggersins. Merkið sem gefið er til kynna SLEEP á myndinni, er stillt af MCU svefnstýringunni í slökkviham til að forðast mikla orkunotkun ef sum inntaksmerki eru látin fljóta eða hafa hliðrænt merkjastig nálægt VCC/2.
SLEEP er hafnað fyrir tengipinna sem eru virkir sem ytri truflapinnar. Ef beiðni um utanaðkomandi hlé er ekki virk er SLEEP virk líka fyrir þessa pinna. SLEEP er einnig ofsótt af ýmsum öðrum varamöguleikum eins og lýst er í „Aðrir hafnaraðgerðir“ á bls. 57.
Ef rökfræðilegt hátt stig („eitt“) er til staðar á ósamstilltum ytri truflunarpinna sem er stilltur sem „Run á hækkandi brún, lækkandi brún eða hvaða rökfræðibreyting sem er á pinna“ á meðan ytri truflunin er ekki virkjuð, mun samsvarandi ytri truflunarfáni vera stillt þegar byrjað er aftur úr ofangreindri svefnstillingu, þar sem klampí þessum svefnstillingu veldur umbeðinni rökfræðibreytingu.
Ótengdir pinnar
Ef sumir pinnar eru ónotaðir er mælt með því að tryggja að þessir pinnar séu með skilgreint stig. Jafnvel þó að flest stafrænu inntakin séu óvirk í djúpum svefnstillingum eins og lýst er hér að ofan, þá ætti að forðast fljótandi inntak til að draga úr núverandi neyslu í öllum öðrum stillingum þar sem stafrænu inntakin eru virk (Reset, Active mode og Idle mode).
Einfaldasta aðferðin til að tryggja skilgreint stig ónotaðs pinna er að virkja innri uppdrátt. Í þessu tilviki verður uppdrátturinn óvirkur við endurstillingu. Ef lítil orkunotkun við endurstillingu er mikilvæg er mælt með því að nota utanaðkomandi uppdrátt eða niðurfellingu. Ekki er mælt með því að tengja ónotaða pinna beint við VCC eða GND, þar sem það getur valdið of miklum straumum ef pinninn er óvart stilltur sem útgangur.
Aðrir hafnaraðgerðir
Flestir hafnapinnar hafa aðrar aðgerðir auk þess að vera almennir stafrænir I / Os. Mynd 10-5 sýnir hvernig hafnapinninn stýrir merkjum frá einfölduðu Mynd 10-2 er hægt að hnekkja með aukaföllum. Yfirgnæfandi merki eru kannski ekki til staðar í öllum tengipinnum en myndin þjónar sem almenn lýsing sem gildir fyrir alla tengipinna í AVR örstýringarfjölskyldunni.
Tafla 10-2. Almenn lýsing á hnekkjamerkjum fyrir aðrar aðgerðir
Merkisheiti | Fullt nafn | Lýsing |
PUOE | Pull-up Override Virkja | Ef þetta merki er stillt er aðdráttarvélinni stjórnað af PUOV merkinu. Ef þetta merki er hreinsað er dregið upp þegar
{DDxn, PORTxn, PUD} = 0b010. |
PUOV | Pull-up Override gildi | Ef PUOE er stillt er dregið upp / gert óvirkt þegar PUOV er stillt / hreinsað, óháð stillingu DDxn, PORTxn og PUD Register bitanna. |
DDOE | Gagnstefnu hnekkja Virkja | Ef þetta merki er stillt er Output Driver Enable stjórnað af DDOV merkinu. Ef þetta merki er hreinsað er Output driverinn virkur af DDxn Register bitanum. |
DDOV | Gagnstefnu hnekki gildi | Ef DDOE er stillt er Output Driver virkur / óvirkur þegar DDOV er stillt / hreinsað, óháð stillingu DDxn Register bit. |
PVOE | Gengi hafnargildis virkt | Ef þetta merki er stillt og Output Driver er virkur er portgildinu stjórnað af PVOV merkinu. Ef PVOE er hreinsað, og Output Driver er virkur, er portgildinu stjórnað af PORTxn Register bitanum. |
PVOV | Gildir hafnagildis | Ef PVOE er stillt er portgildið stillt á PVOV, óháð stillingu PORTxn Register bitans. |
PTOE | Port Toggle Override Virkja | Ef PTOE er stillt er PORTxn Register biti snúið við. |
DIEOE | Stafrænt inntak Virkja Hnekkja Virkja | Ef þessi biti er stilltur er Digital Input Enable stjórnað af DIEOV merkinu. Ef þetta merki er hreinsað ákvarðast stafræn inntak virk af MCU ástandi (Venjulegur háttur, svefnstilling). |
DIEOV | Stafrænt inntak gerir kleift að hnekkja gildi | Ef DIEOE er stillt er stafrænt inntak virkt / óvirkt þegar DIEOV er stillt / hreinsað, án tillits til MCU ástandsins (Normal mode, sleep mode). |
DI | Stafræn inntak | Þetta er stafræna inntakið til að skipta um aðgerðir. Á myndinni er merkið tengt við framleiðsluna á schmitt-kveikjunni en fyrir samstillibúnaðinn. Nema stafræna inntakið sé notað sem klukkugjafi mun einingin með varafallinu nota sinn eigin samstillingaraðila. |
AIO | Analog Input / Output | Þetta er Analog Input / Output til / frá varaföllum. Merkið er tengt beint við púðann og er hægt að nota það í báðar áttir. |
Eftirfarandi undirkaflar lýsa fljótlega varaföllum fyrir hverja höfn og tengja yfirgnæfandi merki við varafallið. Vísaðu til varalýsingar aðgerðanna fyrir frekari upplýsingar.
Vararaðgerðir hafnar B
Port B pinnar með aðra aðgerð eru sýndar í Tafla 10-3.
Tafla 10-3. Port B Pins Varaaðgerðir
Port Pin | Varaaðgerð |
PB5 | ![]() RESET: Endurstilla pinna dW: debugWIRE I / O ADC0: ADC inntak rás 0 PCINT5: Truflun á pinnaskiptum, Heimild 5 |
PB4 | XTAL2: Crystal Oscillator Output CLKO: Output System Clock ADC2: ADC Input Channel 2
OC1B: Tímamælir / Counter1 Bera saman Match B Output PCINT4: Pin Change Interrupt 0, Source 4 |
PB3 | XTAL1: Kristal Oscillator Inntak CLKI: Ytri klukkuinntak ADC3: ADC inntak Rás 3
OC1B: Viðbótartími / Teljari1 Bera saman Match B Output PCINT3: Pin Change Interrupt 0, Source 3 |
PB2 | SCK: Serial Clock Input ADC1: ADC Input Channel 1
T0: Niðurteljari / Counter0 Klukka Heimild USCK: USI Klukka (þriggja víra stilling) SCL: USI klukka (tveggja víra stilling) INT0: Ytri truflun 0 Input PCINT2: Pin Change Interrupt 0, Source 2 |
PB1 | MISO: SPI Master Data Input / Slave Data Output AIN1: Analog Comparator, Negative Input OC0B: Tímamælir / Counter0 Bera saman Match B Output OC1A: Tímamælir / Counter1 Bera saman Match A Output DO: USI Data Output (Three Wire Mode) PCINT1: Pin Change Interrupt 0, Heimild 1 |
PB0 | MOSI :: SPI Master Data Output / Slave Data Input AIN0: Analog Comparator, Positive Input
OC0A: Timer/Counter0 Bera saman Match A úttak OC1A: Viðbótartímamælir / Counter1 Bera saman Match A Output DI: USI Data Input (Three Wire Mode) SDA: USI Data Input (Two Wire Mode) AREF: External Analog Reference PCINT0: Pin Change Interrupt 0, Source 0 |
Port B, hluti 5 - RESET / dW / ADC0 / PCINT5
RESET: Ytri Reset inntak er virkt lágt og gert kleift með því að forrita (“1”) RSTDISBL öryggi. Pullup er virkjað og output driver og stafrænt input er gert óvirkt þegar pinninn er notaður sem RESET pin.
dW: Þegar debugWIRE Enable (DWEN) öryggi er forritað og læsa bitar eru ekki forritaðir, er debugWIRE kerfið innan marktækisins virkjað. RESET tengipinninn er stilltur sem víra-OG (opið frárennsli) tvíátta I / O pinna með pull-up virkt og verður samskiptagátt milli miða og keppinautar.
ADC0: Analog to Digital Converter, Rás 0.
PCINT5: PIN-breyting Truflunargjafi 5.
Port B, hluti 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: Chip Clock Oscillator pinna 2. Notað sem klukku pin fyrir alla flís klukku heimildir nema innri kvarðunar RC RC Oscillator og ytri klukka. Þegar það er notað sem klukkuknippur er ekki hægt að nota pinna sem I / O pinna. Þegar notaður er innri kvörðunarlegur RC oscillator eða ytri klukka sem flísaklukka, þjónar PB4 sem venjulegur I / O pinna.
CLKO: Skipta má kerfisklukkunni á pinna PB4. Skipta kerfisklukkunni verður gefin út ef CKOUT öryggi er forritað, óháð PORTB4 og DDB4 stillingum. Það verður einnig gefið út við endurstillingu.
ADC2: Analog to Digital Converter, Rás 2.
OC1B: Output Compare Match Match output: PB4 pinninn getur þjónað sem ytri framleiðsla fyrir Timer / Counter1 Compare Match B þegar hann er stilltur sem output (DDB4 sett). OC1B pinninn er einnig framleiðsla pinna fyrir tímastillingu PWM ham.
PCINT4: PIN-breyting Truflunargjafi 4.
Port B, hluti 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: Chip Clock Oscillator pin 1. Notaður fyrir alla flísaklukkulindir nema innri kvarðunar RC sveifluöskjuna. Þegar það er notað sem klukkuknippur er ekki hægt að nota pinna sem I / O pinna.
CLKI: Inntak klukku frá utanaðkomandi klukkugjafa, sjá „Ytri klukka“ á blaðsíðu 26.
ADC3: Analog to Digital Converter, Rás 3.
OC1B: Inverted Output Compare Match output: PB3 pinninn getur þjónað sem ytri framleiðsla fyrir Timer / Counter1 Compare Match B þegar hann er stilltur sem output (DDB3 sett). OC1B pinninn er einnig hvolfi framleiðslupinninn fyrir tímastillingu PWM ham.
PCINT3: PIN-breyting Truflunargjafi 3.
Gátt B, hluti 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: Master Clock output, Slave Clock input pin fyrir SPI rás. Þegar SPI er virkt sem þræll er þessi pinna stilltur sem inntak án tillits til stillingar DDB2. Þegar SPI er virkt sem Master er gagnastefnu þessa pinna stjórnað af DDPB2. Þegar SPI neyðir pinna til að vera inntak er enn hægt að stjórna pull-up með PORTB2 bitanum.
ADC1: Analog to Digital Converter, Rás 1.
T0: Tímamælir / Counter0 gegn uppspretta.
USCK: Þriggja víra stilling Universal Serial Interface Clock.
SCL: Tvívíra stilling Serial Clock fyrir USI Tvívíra stillingu.
INT0: Ytri truflunargjafi 0.
PCINT2: PIN-breyting Truflunargjafi 2.
Port B, hluti 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: Master Data input, Slave Data output pin fyrir SPI rás. Þegar SPI er virkt sem Master er þessi pin stilltur sem inntak óháð stillingu DDB1. Þegar SPI er virkt sem þræll er gagnastefnu þessa pinna stjórnað af DDB1. Þegar SPI neyðir pinnann til að vera inntak er enn hægt að stjórna pull-up með PORTB1 bitanum.
AIN1: Analog Comparator Negative Input. Stilltu höfnapinnann sem inntak með innri uppdrætti slökkt til að koma í veg fyrir að stafræna höfnaraðgerðin trufli virkni Analog Comparator.
OC0B: Output Compare Match output. PB1 pinninn getur þjónað sem utanaðkomandi framleiðsla fyrir Timer / Counter0 bera saman samsvörun B. PB1 pinna verður að vera stilltur sem framleiðsla (DDB1 sett (einn)) til að þjóna þessari aðgerð. OC0B pinninn er einnig framleiðslupinn fyrir tímastillingu PWM ham.
OC1A: Output Compare Match Match output: PB1 pinninn getur þjónað sem ytri framleiðsla fyrir Timer / Counter1 Compare Match B þegar hann er stilltur sem output (DDB1 sett). OC1A pinninn er einnig úttakspinninn fyrir PWM stillinguna.
DO: Þriggja víra stilling Universal Serial Interface Data output. Þriggja víra stilling Gagnaútgangur gengur framhjá PORTB1 gildi og það er ekið til hafnar þegar gagnastefnubit DDB1 er stilltur (einn). PORTB1 gerir samt kleift að draga upp ef átt er inn og PORTB1 er stillt (ein).
PCINT1: PIN-breyting Truflunargjafi 1.
Gátt B, hluti 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: SPI Master Data output, Slave Data input fyrir SPI channel. Þegar SPI er virkt sem þræll er þessi pinna stilltur sem inntak óháð stillingu DDB0. Þegar SPI er virkt sem Master er gagnastefnu þessa pinna stjórnað af DDB0. Þegar pinninn er neyddur af SPI til að vera inntak, er samt hægt að stjórna pull-up með PORTB0 bitanum.
AIN0: Analog Comparator Positive Input. Stilltu tengipinnann sem inntak þegar slökkt er á innri uppdrætti til að koma í veg fyrir að stafræna höfnaraðgerðin trufli aðgerð Analog Comparator.
OC0A: Output Compare Match output. PB0 pinninn getur þjónað sem ytri framleiðsla fyrir Timer / Counter0 Compare Match A þegar hann er stilltur sem framleiðsla (DDB0 sett (eitt)). OC0A pinninn er einnig framleiðsla pinna fyrir tímastillingu PWM ham.
OC1A: Inverted Output Compare Match output: PB0 pinninn getur þjónað sem ytri framleiðsla fyrir Timer / Counter1 Compare Match B þegar hann er stilltur sem output (DDB0 sett). OC1A pinninn er einnig hvolfi framleiðslupinninn fyrir PWM stillinguna.
SDA: Tvívíra stilling Serial Interface Data.
AREF: Ytri hliðstæða tilvísun fyrir ADC. Pullup og output driver eru óvirkir á PB0 þegar pinninn er notaður sem ytri tilvísun eða Internal Voltage Tilvísun með ytri þétti við AREF pinnann.
DI: Gagnainntak í USI þriggja víra stillingu. USI þriggja víra stilling fer ekki yfir venjulegar hafnaraðgerðir, þannig að pinna verður að stilla sem inntak fyrir DI aðgerð.
PCINT0: PIN-breyting Truflunargjafi 0.
Tafla 10-4 og Tafla 10-5 tengja aukaaðgerðir hafnar B við þau meginmerki sem eru sýnd á Mynd 10-5 á síðu 58.
Tafla 10-4. Að hnekkja merkjum fyrir aðrar aðgerðir í PB[5:3]
Merkisheiti | PB5 / RESET / ADC0 / PCINT5 | PB4/ADC2/XTAL2/ OC1B/PCINT4 | PB3/ADC3/XTAL1/ OC1B/PCINT3 |
PUOE | ![]() |
0 | 0 |
PUOV | 1 | 0 | 0 |
DDOE | RSTDISBL(1) • DWEN(1) | 0 | 0 |
DDOV | debugWire senda | 0 | 0 |
PVOE | 0 | OC1B Virkja | ![]() OC1B Virkja |
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 inntak | PCINT4 inntak | PCINT3 inntak |
AIO | RESET Inntak, ADC0 inntak | ADC2 inntak | ADC3 inntak |
Athugið: þegar öryggið er „0“ (forritað).
Tafla 10-5. Að hnekkja merkjum fyrir aðrar aðgerðir í PB[2:0]
Merkisheiti | 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 Virkja + OC1A Virkja + USI_THREE_WIRE | ![]() OC0A Virkja + OC1A Virkja + (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 inntak |
PCINT1 inntak | DI / SDA / PCINT0 inntak |
AIO | ADC1 inntak | Analog Comparator Neikvætt inntak | Analog samanburður Jákvætt inntak |
Lýsing á skrá
MCUCR - MCU Control Register
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Lesa/skrifa | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 6 - PUD: Pull-up Disable
Þegar þessi hluti er skrifaður til einnar eru ósamanburðir í I / O tengjunum óvirkir jafnvel þó DDxn og PORTxn skrárnar séu stilltar til að virkja pullups ({DDxn, PORTxn} = 0b01). Sjá „Stilling pinna“ á bls. 54 til að fá frekari upplýsingar um þennan eiginleika.
PORTB - Gagnaskrá hafnar B
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 | PORTB |
Lesa/skrifa | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - Port B gagnastefnuskrá
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | DDRB |
Lesa/skrifa | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Upphafsgildi | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - Inngangspinna höfn B
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 | PINB |
Lesa/skrifa | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Upphafsgildi | 0 | 0 | N/A | N/A | N/A | N/A | N/A | N/A |
8-bita Timer / Counter0 með PWM
Eiginleikar
Tvær óháðar framleiðsla samanburðar einingar
Tvöfaldur bufferaður framleiðsla bera saman skrár
Hreinsaðu tímastillingu fyrir samanburð (sjálfvirk endurhlaða)
Bilunarlaus, fasaréttur púlsbreiddarmótari (PWM)
Breytilegt PWM tímabil
Tíðni rafall
Þrjár sjálfstæðar truflunarheimildir (TOV0, OCF0A og OCF0B)
Yfirview
Tímamælir / Counter0 er almennur tilgangur 8 bita tímamælir / teljarareining, með tveimur sjálfstæðum framleiðsla samanburðar einingum og með PWM stuðningi. Það gerir nákvæma tímasetningu framkvæmdar áætlunar (atburðarstjórnun) og öldubrögð.
Einfölduð skýringarmynd 8-bita tímamælis / teljarans er sýnd í Mynd 11-1. Um raunverulega staðsetningu I / O pinna vísast til „Pinout ATtiny25 / 45/85“ á blaðsíðu 2. CPU aðgengilegir I / O skrár, þ.m.t. I / O bitar og I / O pinnar, eru sýndir feitletraðir. Tækjasértækt I / O-skrá og bitastaðir eru skráðir í „Skráningarlýsing“ á bls. 77.
Tímamælir/teljari (TCNT0) og úttakssamanburðarskrár (OCR0A og OCR0B) eru 8 bita skrár. Truflunarbeiðni (skammstafað sem Int.Req. á myndinni) merki eru öll sýnileg í Timer Interrupt Flag Register (TIFR). Allar truflanir eru grímaðar fyrir sig með Timer Interrupt Mask Register (TIMSK). TIFR og TIMSK eru ekki sýndar á myndinni.
Tímamælirinn/teljarinn er hægt að klukka innbyrðis, með forskalanum, eða með utanaðkomandi klukkugjafa á T0 pinnanum. Clock Select rökfræðiblokkin stjórnar hvaða klukkugjafa og brún tímamælirinn/teljarinn notar til að auka (eða minnka) gildi hans. Tímamælirinn/teljarinn er óvirkur þegar enginn klukkugjafi er valinn. Úttakið frá klukkuvalsrökfræðinni er vísað til sem tímamælisklukka (clkT0).
Tvöföldu bufferuðu Output Compare Registers (OCR0A og OCR0B) er borið saman við tímastillingar / teljaragildið á öllum tímum. Niðurstaðan af samanburðinum getur Waveform rafallinn notað til að búa til PWM eða breytilegan tíðni framleiðsla á Output Compare pins (OC0A og OC0B). Sjá „Samanburðar framleiðsla“ á bls. 69. fyrir smáatriði. Samanburðarviðburðurinn mun einnig setja samanburðarfánann (OCF0A eða OCF0B) sem hægt er að nota til að búa til stöðvunarbeiðni um framleiðsla.
Skilgreiningar
Margar tilvísanir í skrá og hluti í þessum hluta eru skrifaðar á almennu formi. Smástafur „n“ kemur í stað tímamælis / teljaranúmersins, í þessu tilfelli 0. Smástafur „x“ kemur í staðinn fyrir framleiðsla samanburðar einingar, í þessu tilfelli berðu saman einingu A eða samanburðar einingu B. Hins vegar þegar skrár eða bitar eru skilgreindir í forriti verður að nota nákvæma mynd, þ.e. TCNT0 til að fá aðgang að teljara / teljara0 teljaragildi og svo framvegis.
Skilgreiningarnar í Tafla 11-1 eru einnig mikið notaðar í öllu skjalinu.
Tafla 11-1. Skilgreiningar
Stöðugt | Lýsing |
NEÐNI | Teljarinn nær BOTTOM þegar hann verður 0x00 |
MAX | Teljarinn nær hámarki þegar hann verður 0xFF (aukastaf 255) |
TOP | Teljarinn nær toppnum þegar hann verður jafn hæsta gildinu í talnaröðinni. TOP-gildinu er hægt að úthluta til að vera fasta gildið 0xFF (MAX) eða gildið sem geymt er í OCR0A-skránni. Verkefnið fer eftir aðferðinni |
Tímamælir / Counter Prescaler og klukka Heimildir
Tímastillirinn / teljarinn er hægt að klukka með innri eða ytri klukkugjafa. Klukkugjafinn er valinn af Clock Select rökfræðinni sem er stjórnað af Clock Select (c) bitunum sem eru staðsettir í Timer / Counter0 Control Register (TCCR0B).
Innri klukkuuppspretta með forritara
Timer/Counter0 er hægt að klukka beint af kerfisklukkunni (með því að stilla CS0[2:0] = 1). Þetta veitir hraðvirkustu aðgerðina, með hámarkstíðni tímamælis/teljara sem er jöfn kerfisklukkutíðni (fCLK_I/O). Að öðrum kosti er hægt að nota einn af fjórum töppum frá forskalanum sem klukkugjafa. Forskalað klukka hefur tíðni annað hvort
Forstillingar forstillingar
Forhreinsibúnaðurinn er í lausu starfi, þ.e. hann starfar óháð klukkuvalarökfræði tímamælis/teljara0. Þar sem forvalarinn hefur ekki áhrif á val tímamælis/teljara, mun ástand forvalarans hafa áhrif á aðstæður þar sem fyrirframkalkuð klukka er notuð. Ein fyrrverandiample af forstærðar gripi er þegar tímamælirinn/teljarinn er virkur og klukkaður af formeistaranum (6> CS0 [2: 0]> 1). Fjöldi hringja kerfis klukku frá því að tímamælir er virkur þar til fyrsta talningin á sér stað getur verið frá 1 til N+1 kerfis klukku hringrás, þar sem N jafngildir forkalklara skiptinum (8, 64, 256 eða 1024).
Það er hægt að nota Rescaler Reset til að samstilla teljarann / teljarann við framkvæmd forritsins.
Ytri klukkuheimild
Hægt er að nota ytri klukkugjafa sem er beitt á T0 pinna sem tímamælir/teljara (clkT0). T0 pinninn er sampleiddi einu sinni í hverri kerfis klukku hringrás með pinna samstillingar rökfræði. Samstilltu (sampleiddi) merki er síðan sent
í gegnum brúnskynjara. Mynd 11-2 sýnir virka samsvarandi blokkskýringarmynd af T0 samstillingu og brún skynjararrökfræði. Registrarnir eru klukkaðir við jákvæðu brún innri kerfisklukkunnar (clkI/O). Læsingin er gagnsæ á háa tímabili innri kerfisklukkunnar.
Brúnskynjarinn myndar einn clkT0 púls fyrir hverja jákvæða (CS0[2:0] = 7) eða neikvæða (CS0[2:0] = 6) brún sem hann skynjar.
OCR0x skrárnar eru tvöfaldir í biðminni þegar notaðar eru einhverjar PWM-stillingar (Pulse Width Modulation). Fyrir venjulegan og Clear Timer on Compare (CTC) rekstrarmáta er tvöfaldur biðminni óvirkur. Tvöfalda biðminnið samstillir uppfærslu OCR0x bera saman skrár annaðhvort efst eða neðst í talningaröðinni. Samstillingin kemur í veg fyrir að PWM púls í stakri lengd komi fram og ekki samhverfur og gerir þannig framleiðsluna gallalausa.
OCR0x skráaraðgangurinn kann að virðast flókinn, en svo er ekki. Þegar tvöfaldur biðminni er virkur hefur örgjörvinn aðgang að OCR0x biðminni skránni og ef tvöföld biðminni er óvirk mun örgjörvinn fá aðgang að OCR0x beint.
Krafa framleiðsla bera saman
Í bylgjuformsframleiðsluháttum sem ekki eru PWM er hægt að þvinga framleiðslu samsvörunarinnar með því að skrifa einn í Force Output Compare (FOC0x) bita. Að þvinga samanburðarmót mun ekki stilla OCF0x-fánann eða endurhlaða / hreinsa tímamælinn, heldur verður OC0x-pinninn uppfærður eins og raunverulegur bera saman samsvörun hefði átt sér stað (stillingar COM0x [1: 0] bitanna skilgreina hvort OC0x-pinninn er stilltur, hreinsaður eða skipt um).
Bera saman Match Blocking með TCNT0 Skrifa
Allar ritunaraðgerðir örgjörva í TCNT0 skrána munu loka fyrir alla samsvörunarmót sem eiga sér stað í næstu tímaklukkuhringrás, jafnvel þegar tímamælirinn er stöðvaður. Þessi aðgerð gerir OCR0x kleift að vera frumstillt að sama gildi og TCNT0 án þess að koma af stað truflun þegar klukka / teljaraklukka er virk.
Notkun framleiðsla samanburðar einingar
Þar sem að skrifa TCNT0 í hvaða rekstrarmáta sem er mun hindra alla samanburðarpör fyrir eina klukkutíma hringrás, þá er áhætta fólgin í því að breyta TCNT0 þegar þú notar Output Compare Unit, óháð því hvort tímastillirinn / teljarinn er í gangi eða ekki. Ef gildið sem er skrifað í TCNT0 er jafnt OCR0x-gildinu, verður saknað bera saman samsvörun sem hefur í för með sér ranga bylgjulögun. Á sama hátt, ekki skrifa TCNT0 gildi jafnt og BOTTOM þegar teljarinn er að telja niður.
Uppsetning OC0x ætti að fara fram áður en gagnastefnaskráin er stillt fyrir höfnina til að framleiða. Auðveldasta leiðin til að stilla OC0x gildi er að nota Force Búta bera saman (FOC0x) strobe bitana í Normal mode. OC0x skrárnar halda gildum sínum, jafnvel þegar skipt er á milli bylgjuformkynslóða.
Hafðu í huga að COM0x [1: 0] bitarnir eru ekki tvöfaldir í biðminni ásamt samanburðargildinu. Breyting á COM0x [1: 0] bitunum tekur gildi strax.
Bera saman framleiðslueiningu leikja
Bera samanburðarútgangsháttinn (COM0x [1: 0]) hefur tvær aðgerðir. The Waveform Generator notar COM0x [1: 0] bitana til að skilgreina Output Compare (OC0x) ástandið í næsta Compare Match. Einnig stjórna COM0x [1: 0] bitar OC0x pinna framleiðsla uppspretta. Mynd 11-6 sýnir einfaldað skýringarmynd af rökfræðinni sem hefur áhrif á COM0x [1: 0] bita stillinguna. I / O skrár, I / O bitar og I / O pinnar á myndinni eru sýndir feitletruðir. Aðeins þeir hlutar almennu I / O hafnareftirlitsskráanna (DDR og PORT) sem hafa áhrif á COM0x [1: 0] bitana eru sýndir. Þegar vísað er til OC0x ástandsins er tilvísunin fyrir innri OC0x skrána, ekki OC0x pinna. Ef endurstillt kerfi á sér stað er OC0x skráin stillt á „0“.
Þegar OC0A / OC0B er tengt við I / O pinna fer aðgerð COM0A [1: 0] / COM0B [1: 0] bitanna eftir WGM0 [2: 0] bitastillingunni. Tafla 11-2 sýnir COM0x [1: 0] bita virkni þegar WGM0 [2: 0] bitarnir eru stilltir á venjulegan eða CTC hátt (ekki PWM).
Tafla 11-2. Bera saman Output Mode, non-PWM Mode
COM0A1 COM0B1 | COM0A0 COM0B0 | Lýsing |
0 | 0 | Venjuleg hafnaraðgerð, OC0A / OC0B aftengd. |
0 | 1 | Skiptu um OC0A / OC0B á bera saman leik |
1 | 0 | Hreinsaðu OC0A / OC0B á samanburðarleik |
1 | 1 | Stilltu OC0A / OC0B á Compare Match |
Tafla 11-3 sýnir COM0x [1: 0] bita virkni þegar WGM0 [2: 0] bitar eru stilltir á hraða PWM ham.
Tafla 11-3. Bera saman Output Mode, Fast PWM Mode(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Lýsing |
0 | 0 | Venjuleg hafnaraðgerð, OC0A / OC0B aftengd. |
0 | 1 | Frátekið |
1 | 0 | Hreinsaðu OC0A / OC0B á samanburðarleik, stilltu OC0A / OC0B í botni (óbreyttur háttur) |
1 | 1 | Stilltu OC0A / OC0B á bera saman samsvörun, hreinsaðu OC0A / OC0B neðst (snúningsstilling) |
Athugið: Sérstakt tilvik kemur upp þegar OCR0A eða OCR0B jafngildir TOP og COM0A1/COM0B1 er stillt. Í þessu tilviki er samanburðarsamsvörun hunsuð, en settið eða hreinsað er gert NEÐST. Sjáðu „Fljótur PWM-stilling“ á bls. 73 fyrir frekari upplýsingar.
Tafla 11-4 sýnir COM0x [1: 0] bita virkni þegar WGM0 [2: 0] bitarnir eru stilltir á fasa réttan PWM hátt.
Tafla 11-4. Bera saman Output Mode, Phase Correct PWM Mode(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Lýsing |
0 | 0 | Venjuleg hafnaraðgerð, OC0A / OC0B aftengd. |
0 | 1 | Frátekið |
1 | 0 | Hreinsaðu OC0A / OC0B á bera saman leik þegar þú telur upp. Stilltu OC0A / OC0B á Compare Match þegar þú telur niður. |
1 | 1 | Stilltu OC0A / OC0B á Compare Match þegar þú telur upp. Hreinsaðu OC0A / OC0B á bera saman samsvörun þegar þú telur niður. |
Athugið: 1. Sérstakt tilvik kemur upp þegar OCR0A eða OCR0B jafngildir TOP og COM0A1/COM0B1 er stillt. Í þessu tilviki er samanburðarsamsvörun hunsuð, en settið eða hreinsað er gert efst. Sjá „Phase Correct PWM Mode“ á bls. 74 fyrir frekari upplýsingar.
Bit 3: 2 - Res: Reserved Bit
Þessir bitar eru fráteknir bitar í ATtiny25 / 45/85 og munu alltaf lesa sem núll.
Bitar 1: 0 - WGM0 [1: 0]: Bylgjuform kynslóð háttur
Samsett með WGM02 bitanum sem er að finna í TCCR0B skránni, stjórna þessir bitar talningaröð teljarans, uppspretta fyrir hámarks (TOP) teljaragildi og hvaða tegund af bylgjulögun sem á að nota, sjá Tafla 11-5. Aðgerðir sem eru studdar af myndatöku / teljaraeiningunni eru: Venjulegur háttur (gegn), Hreinsa tímamælir í samanburðarhátt (CTC) og tveir gerðir af PWM-stillingum fyrir púlsbreidd (sjá „Aðferðir við notkun“ á síðu 71).
Tafla 11-5. Bylgjuformsmyndunarhamur Bitalýsing
Mode | WGM 02 | WGM 01 | WGM 00 | Tímamælir / gagnamáti | TOP | Uppfærsla á OCRx kl | TOV Flag sett á |
0 | 0 | 0 | 0 | Eðlilegt | 0xFF | Strax | MAX(1) |
1 | 0 | 0 | 1 | PWM, stig rétt | 0xFF | TOP | NEÐNI(2) |
2 | 0 | 1 | 0 | CTC | OCRA | Strax | MAX(1) |
3 | 0 | 1 | 1 | Hratt PWM | 0xFF | NEÐNI(2) | MAX(1) |
4 | 1 | 0 | 0 | Frátekið | – | – | – |
5 | 1 | 0 | 1 | PWM, stig rétt | OCRA | TOP | NEÐNI(2) |
6 | 1 | 1 | 0 | Frátekið | – | – | – |
7 | 1 | 1 | 1 | Hratt PWM | OCRA | NEÐNI(2) | TOP |
Bit 7 - FOC0A: Kraftur framleiðsla bera saman A
FOC0A bitinn er aðeins virkur þegar WGM bitarnir tilgreina stillingu sem ekki er PWM.
Hins vegar, til að tryggja samhæfni við framtíðartæki, verður að setja þennan bit á núll þegar TCCR0B er skrifað þegar það er unnið í PWM ham. Þegar þú skrifar rökréttan þátt í FOC0A bitann neyðist sambærileg samsvörun strax við Waveform Generation eininguna. OC0A framleiðslunni er breytt í samræmi við COM0A [1: 0] bitastillinguna. Athugaðu að FOC0A bitinn er útfærður sem strobe. Þess vegna er það gildið sem er til staðar í COM0A [1: 0] bitunum sem ákvarðar áhrif nauðungar bera saman.
FOC0A strobe mun ekki mynda truflun né hreinsa tímamælinn í CTC stillingu með OCR0A sem TOP. FOC0A bitinn er alltaf lesinn sem núll.
Bit 6 - FOC0B: Kraftur framleiðsla bera saman B
FOC0B bitinn er aðeins virkur þegar WGM bitarnir tilgreina stillingu sem ekki er PWM.
Hins vegar, til að tryggja samhæfni við framtíðar tæki, verður að setja þennan bit á núll þegar TCCR0B er skrifað þegar hann er notaður í PWM ham. Þegar þú skrifar rökréttan þátt í FOC0B bitann neyðist sambærileg samsvörun strax við Waveform Generation eininguna. OC0B framleiðslunni er breytt í samræmi við COM0B [1: 0] bitastillinguna. Athugaðu að FOC0B bitinn er útfærður sem strobe. Þess vegna er það gildið sem er til staðar í COM0B [1: 0] bitunum sem ákvarðar áhrif nauðungar bera saman.
FOC0B strobe mun ekki mynda nein truflun né hreinsa tímamælinn í CTC stillingu með OCR0B sem TOP.
FOC0B bitinn er alltaf lesinn sem núll.
Bit 5: 4 - Res: Reserved Bit
Þessir bitar eru fráteknir bitar í ATtiny25 / 45/85 og munu alltaf lesa sem núll.
Bit 3 - WGM02: Waveform Generation Mode
Sjá lýsingu í „TCCR0A - Tímamælir / gagnstýringarskrá A“ á bls. 77.
Bits 2: 0 - CS0 [2: 0]: Valur klukku
Klukkuborðin þrjú velur klukkuheimild sem tímamælirinn / teljarinn á að nota.
Tafla 11-6. Klukka Veldu Bitalýsing
CS02 | CS01 | CS00 | Lýsing |
0 | 0 | 0 | Engin klukkugjafi (Tímamælir / Teljari stöðvaður) |
0 | 0 | 1 | clkI/O/(Engin forskala) |
0 | 1 | 0 | clkI/O/8 (Frá forskala) |
0 | 1 | 1 | clkI/O/64 (Frá forskala) |
1 | 0 | 0 | clkI/O/256 (Frá forskala) |
1 | 0 | 1 | clkI/O/1024 (Frá forskala) |
1 | 1 | 0 | Ytri klukkugjafi á T0 pinna. Klukka á fallandi brún. |
1 | 1 | 1 | Ytri klukkugjafi á T0 pinna. Klukka á hækkandi brún. |
Ef notaðir eru ytri pinnastillingar fyrir Timer / Counter0 munu umbreytingar á T0 pinna klukka teljarann þó pinninn sé stilltur sem framleiðsla. Þessi aðgerð gerir hugbúnaðarstýringu á talningunni kleift.
Counter og bera saman einingar
Tímamælir / Counter1 almenn aðgerð er lýst í ósamstilltum ham og aðgerðina í samstillingu er aðeins getið ef munur er á þessum tveimur stillingum. Mynd 12-2 sýnir Tímamælir / Counter 1 samstillingarskrá blokkarit og samstillingarfrestir á milli skráa. Athugið að allar upplýsingar um klukkuhlið eru ekki sýndar á myndinni. Timer / Counter1 skráargildin fara í gegnum innri samstillingarskrárnar sem valda samstillingu á inntaki áður en þær hafa áhrif á gagnaðgerðina. Skrárnar TCCR1, GTCCR, OCR1A, OCR1B og OCR1C er hægt að lesa aftur strax eftir að skráin er skrifuð. Afturköllunargildin eru seinkuð fyrir Timer / Counter1 (TCNT1) skrána og fána (OCF1A, OCF1B og TOV1), vegna samstillingar inntaks og úttaks.
Tímamælirinn / Counter1 er með háa upplausn og mikla nákvæmni notkun með lægri forskalunarmöguleikum. Það getur einnig stutt tvo nákvæma, háhraða, 8 bita púlsbreiddarstýringu með því að nota klukkuhraða allt að 64 MHz (eða 32 MHz í lághraða ham). Í þessari stillingu þjóna tímastillir / teljari1 og samanburðarskrám framleiðslunnar sem tvöfaldir sjálfstæðir PWM með ósnúnum og öfugum framleiðsla. Vísa til síðu 86 fyrir nákvæma lýsingu á þessari aðgerð. Að sama skapi gera miklar forskalunartækifæri þessa einingu gagnlega fyrir aðgerðir með minni hraða eða nákvæmar tímasetningar með sjaldgæfum aðgerðum.
Mynd 12-2. Tímamælir/teljari 1 samstillingarskrá blokkamynd.
Tímamælir / Counter1 og forritarinn leyfa að keyra örgjörvann frá hvaða klukkugjafa sem er meðan forstillirinn vinnur á hröðu 64 MHz (eða 32 MHz í lághraða ham) PCK klukku í ósamstilltum ham.
Athugið að klukkutíðni kerfisins verður að vera lægri en þriðjungur af PCK tíðninni. Samstillingarbúnaður ósamstillta teljarans / teljarans 1 þarf að minnsta kosti tvær brúnir á PCK þegar kerfisklukkan er há. Ef tíðni kerfisklukkunnar er of há er hætta á að gögn eða stjórngildi glatist.
Eftirfarandi Mynd 12-3 sýnir blokkarmynd fyrir Timer / Counter1.
Tafla 12-1. Berðu saman ham Veldu í PWM ham
COM1x1 | COM1x0 | Áhrif á framleiðsluspennur |
0 | 0 | OC1x ekki tengdur. OC1x ekki tengdur. |
0 | 1 | OC1x hreinsað á samanburðarleik. Stilltu þegar TCNT1 = $ 00. OC1x stillt á samanburðarleik. Hreinsað þegar TCNT1 = $ 00. |
1 | 0 | OC1x hreinsað í samanburðarleik. Stilltu þegar TCNT1 = $ 00. OC1x ekki tengdur. |
1 | 1 | OC1x stillt á samanburðarleik. Hreinsað þegar TCNT1 = $ 00. OC1x ekki tengdur. |
ADC Einkenni
Tafla 21-8. ADC einkenni, stakar rásir. TA = -40°C til +85°C
Tákn | Parameter | Ástand | Min | Týp | Hámark | Einingar |
Upplausn | 10 | Bitar | ||||
Alger nákvæmni (þ.mt INL, DNL og magn, villur og offset villur) | VREF = 4V, VCC = 4V,
ADC klukka = 200 kHz |
2 | LSB | |||
VREF = 4V, VCC = 4V,
ADC klukka = 1 MHz |
3 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC klukka = 200 kHz Hávaðaminnkun |
1.5 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC klukka = 1 MHz Hávaðaminnkun |
2.5 | LSB | ||||
Integral Ólínulegt (INL) (Nákvæmni eftir offset og fá kvörðun) | VREF = 4V, VCC = 4V,
ADC klukka = 200 kHz |
1 | LSB | |||
Mismunandi ólínuleiki (DNL) | VREF = 4V, VCC = 4V,
ADC klukka = 200 kHz |
0.5 | LSB | |||
Gagnvilla | VREF = 4V, VCC = 4V,
ADC klukka = 200 kHz |
2.5 | LSB | |||
Jöfnunarvilla | VREF = 4V, VCC = 4V,
ADC klukka = 200 kHz |
1.5 | LSB | |||
Viðskiptatími | Ókeypis hlaupaskipti | 14 | 280 | µs | ||
Tíðni klukku | 50 | 1000 | kHz | |||
VIN | Inntak Voltage | GND | VREF | V | ||
Inntak bandbreidd | 38.4 | kHz | ||||
AREF | Ytri tilvísun binditage | 2.0 | VCC | V | ||
VINT | Innra binditage Tilvísun | 1.0 | 1.1 | 1.2 | V | |
Innri 2.56V tilvísun (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | 32 | kΩ | ||||
RIGNING | Analog inntak viðnám | 100 | MΩ | |||
ADC framleiðsla | 0 | 1023 | LSB |
Athugið: 1. Gildi eru aðeins viðmiðunarreglur.
Tafla 21-9. ADC einkenni, mismunarásir (einskauta stilling). TA = -40°C til +85°C
Tákn | Parameter | Ástand | Min | Týp | Hámark | Einingar |
Upplausn | Hagnaður = 1x | 10 | Bitar | |||
Hagnaður = 20x | 10 | Bitar | ||||
Alger nákvæmni (þ.m.t. INL, DNL og
Magntölu-, hagnaðar- og mótivillur) |
Hagnaður = 1x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
10.0 | LSB | |||
Hagnaður = 20x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
20.0 | LSB | ||||
Óaðskiljanlegur ólínulegur línuleiki (INL) (Nákvæmni eftir kvörðun og ávinning af kvörðun) | Hagnaður = 1x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
4.0 | LSB | |||
Hagnaður = 20x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
10.0 | LSB | ||||
Gagnvilla | Hagnaður = 1x | 10.0 | LSB | |||
Hagnaður = 20x | 15.0 | LSB | ||||
Jöfnunarvilla | Hagnaður = 1x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
3.0 | LSB | |||
Hagnaður = 20x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
4.0 | LSB | ||||
Viðskiptatími | Ókeypis hlaupaskipti | 70 | 280 | µs | ||
Tíðni klukku | 50 | 200 | kHz | |||
VIN | Inntak Voltage | GND | VCC | V | ||
VDIFF | Inntaksmunur Voltage | VREF/Gain | V | |||
Inntak bandbreidd | 4 | kHz | ||||
AREF | Ytri tilvísun binditage | 2.0 | VCC – 1.0 | V | ||
VINT | Innra binditage Tilvísun | 1.0 | 1.1 | 1.2 | V | |
Innri 2.56V tilvísun (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Viðmiðunarinntak viðnám | 32 | kΩ | |||
RIGNING | Analog inntak viðnám | 100 | MΩ | |||
ADC viðskiptaútgangur | 0 | 1023 | LSB |
Athugið: Gildi eru aðeins viðmiðunarreglur.
Tafla 21-10. ADC einkenni, mismunarásir (bipolar mode). TA = -40°C til +85°C
Tákn | Parameter | Ástand | Min | Týp | Hámark | Einingar |
Upplausn | Hagnaður = 1x | 10 | Bitar | |||
Hagnaður = 20x | 10 | Bitar | ||||
Alger nákvæmni (þ.m.t. INL, DNL og
Magntölu-, hagnaðar- og mótivillur) |
Hagnaður = 1x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
8.0 | LSB | |||
Hagnaður = 20x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
8.0 | LSB | ||||
Óaðskiljanlegur ólínulegur línuleiki (INL) (Nákvæmni eftir kvörðun og ávinning af kvörðun) | Hagnaður = 1x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
4.0 | LSB | |||
Hagnaður = 20x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
5.0 | LSB | ||||
Gagnvilla | Hagnaður = 1x | 4.0 | LSB | |||
Hagnaður = 20x | 5.0 | LSB | ||||
Jöfnunarvilla | Hagnaður = 1x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
3.0 | LSB | |||
Hagnaður = 20x
VREF = 4V, VCC = 5V ADC klukka = 50 - 200 kHz |
4.0 | LSB | ||||
Viðskiptatími | Ókeypis hlaupaskipti | 70 | 280 | µs | ||
Tíðni klukku | 50 | 200 | kHz | |||
VIN | Inntak Voltage | GND | VCC | V | ||
VDIFF | Inntaksmunur Voltage | VREF/Gain | V | |||
Inntak bandbreidd | 4 | kHz | ||||
AREF | Ytri tilvísun binditage | 2.0 | VCC – 1.0 | V | ||
VINT | Innra binditage Tilvísun | 1.0 | 1.1 | 1.2 | V | |
Innri 2.56V tilvísun (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Viðmiðunarinntak viðnám | 32 | kΩ | |||
RIGNING | Analog inntak viðnám | 100 | MΩ | |||
ADC viðskiptaútgangur | -512 | 511 | LSB |
Samantekt leiðbeininga
Mnemonics | Aðgerðir | Lýsing | Rekstur | Fánar | #Klukkur |
LEIÐBEININGAR í reiknifræði og rökfræði | |||||
ADD | Rd, Rr | Bættu við tveimur skrám | Rd ← Rd + Rr | Z, C, N, V, H | 1 |
ADC | Rd, Rr | Bæta við með Carry tveimur skrám | Rd ← Rd + Rr + C | Z, C, N, V, H | 1 |
ADIW | Rdl, K | Bættu strax við Word | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
SUB | Rd, Rr | Dragðu frá tvær skrár | Rd ← Rd – Rr | Z, C, N, V, H | 1 |
ÉG FÓR UPP | Rd, K. | Dragðu fastan úr skránni | Rd ← Rd – K | Z, C, N, V, H | 1 |
SBC | Rd, Rr | Dragðu frá með bera tvær skrár | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Rd, K. | Dragðu frá Carry Constant frá Reg. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | Rdl, K | Dragðu strax frá Word | Rdh:Rdl ← Rdh:Rdl – K | Z, C, N, V, S | 2 |
OG | Rd, Rr | Rökrétt OG skrár | Rd ← Rd ∙ Rr | Z, N, V | 1 |
ANDI | Rd, K. | Rökrétt OG skrá og stöðugt | Rd ← Rd ∙ K | Z, N, V | 1 |
OR | Rd, Rr | Rökrétt OR skrár | Rd ← Rd v Rr | Z, N, V | 1 |
ORI | Rd, K. | Rökrétt OR Register og Constant | Rd ← Rd v K | Z, N, V | 1 |
EOR | Rd, Rr | Einkarétt OR skrár | Rd ← Rd ⊕ Rr | Z, N, V | 1 |
COM | Rd | Viðbót manns | Rd ← 0xFF − Rd | Z, C, N, V | 1 |
NEG | Rd | Viðbót tveggja | Rd ← 0x00 − Rd | Z, C, N, V, H | 1 |
SBR | Rd, K | Settu bit (s) í Register | Rd ← Rd v K | Z, N, V | 1 |
CBR | Rd, K | Hreinsaðu hluti í skránni | Rd ← Rd ∙ (0xFF – K) | Z, N, V | 1 |
INC | Rd | Auka | Rd ← Rd + 1 | Z, N, V | 1 |
DES | Rd | Lækkun | Rd ← Rd − 1 | Z, N, V | 1 |
TST | Rd | Próf fyrir núll eða mínus | Rd ← Rd ∙ Rd | Z, N, V | 1 |
CLR | Rd | Hreinsa skrá | Rd ← Rd ⊕ Rd | Z, N, V | 1 |
SER | Rd | Setja skrá | Rd ← 0xFF | Engin | 1 |
LEIÐBEININGAR Í FREIÐ | |||||
RJMP | k | Hlutfallslegt stökk | PC ← PC + k + 1 | Engin | 2 |
IJMP | Óbeint stökk til (Z) | PC ← Z | Engin | 2 | |
KALLI | k | Hlutfallslegt undirútkall | PC ← PC + k + 1 | Engin | 3 |
ICALL | Óbeint símtal til (Z) | PC ← Z | Engin | 3 | |
RET | Subrutine Return | PC ← STAFLI | Engin | 4 | |
RETI | Truflaðu aftur | PC ← STAFLI | I | 4 | |
CPSE | Rd, Rr | Berðu saman, slepptu ef jafnir | ef (Rd = Rr) PC ← PC + 2 eða 3 | Engin | 1/2/3 |
CP | Rd, Rr | Bera saman | Rd - Rr | Z, N, V, C, H | 1 |
KÁS | Rd, Rr | Berðu saman við Carry | Rd − Rr − C | Z, N, V, C, H | 1 |
VNV | Rd, K | Berðu saman skráninguna við strax | Rd - K | Z, N, V, C, H | 1 |
SBRC | Rr, f | Sleppa ef hluti í skránni hreinsaður | ef (Rr(b)=0) PC ← PC + 2 eða 3 | Engin | 1/2/3 |
SBRS | Rr, f | Slepptu ef Bit í skrá er stillt | ef (Rr(b)=1) PC ← PC + 2 eða 3 | Engin | 1/2/3 |
SBIC | P, b | Hoppa yfir ef hluti í I / O skráningu hreinsaður | ef (P(b)=0) PC ← PC + 2 eða 3 | Engin | 1/2/3 |
SBIS | P, b | Slepptu ef Bit í I / O Register er stillt | ef (P(b)=1) PC ← PC + 2 eða 3 | Engin | 1/2/3 |
BRBS | s, k | Útibú ef Staða fána er stillt | ef (SREG(s) = 1) þá PC←PC+k + 1 | Engin | 1/2 |
BRBC | s, k | Útibú ef stöðufána er hreinsuð | ef (SREG(s) = 0) þá PC←PC+k + 1 | Engin | 1/2 |
BREQ | k | Útibú ef Jafnt | ef (Z = 1) þá PC ← PC + k + 1 | Engin | 1/2 |
BRNE | k | Útibú ef ekki jafnt | ef (Z = 0) þá PC ← PC + k + 1 | Engin | 1/2 |
BRCS | k | Útibú ef Carry Set | ef (C = 1) þá PC ← PC + k + 1 | Engin | 1/2 |
BRCC | k | Útibú ef Carry hreinsað | ef (C = 0) þá PC ← PC + k + 1 | Engin | 1/2 |
BRSH | k | Útibú ef sama eða hærra | ef (C = 0) þá PC ← PC + k + 1 | Engin | 1/2 |
BRLO | k | Grein ef lægri | ef (C = 1) þá PC ← PC + k + 1 | Engin | 1/2 |
BRMI | k | Útibú ef Mínus | ef (N = 1) þá PC ← PC + k + 1 | Engin | 1/2 |
BRPL | k | Útibú ef Plús | ef (N = 0) þá PC ← PC + k + 1 | Engin | 1/2 |
BRGE | k | Útibú ef meira eða jafnt, undirritað | ef (N ⊕ V= 0) þá PC ← PC + k + 1 | Engin | 1/2 |
BRLT | k | Útibú ef minna en núll, undirritað | ef (N ⊕ V= 1) þá PC ← PC + k + 1 | Engin | 1/2 |
BRHS | k | Útibú ef Half Carry Flag Set | ef (H = 1) þá PC ← PC + k + 1 | Engin | 1/2 |
BRHC | k | Útibú ef hálfur flutningsfáni hreinsaður | ef (H = 0) þá PC ← PC + k + 1 | Engin | 1/2 |
BRTS | k | Útibú ef T Flag sett | ef (T = 1) þá PC ← PC + k + 1 | Engin | 1/2 |
BRTC | k | Útibú ef T Fáni hreinsaður | ef (T = 0) þá PC ← PC + k + 1 | Engin | 1/2 |
BRVS | k | Útibú ef yfirflæðisfáni er stilltur | ef (V = 1) þá PC ← PC + k + 1 | Engin | 1/2 |
BRVC | k | Útibú ef yfirflæðifáni er hreinsaður | ef (V = 0) þá PC ← PC + k + 1 | Engin | 1/2 |
BRIE | k | Útibú ef truflun er virk | ef (I = 1) þá PC ← PC + k + 1 | Engin | 1/2 |
BRÚÐ | k | Útibú ef truflun er óvirk | ef (I = 0) þá PC ← PC + k + 1 | Engin | 1/2 |
LEIÐBEININGAR um bit- og bitaprófanir | |||||
SBI | P, b | Settu bit í I / O Register | I/O(P,b) ← 1 | Engin | 2 |
SÍ | P, b | Hreinsa hluti í I / O skrá | I/O(P,b) ← 0 | Engin | 2 |
LSL | Rd | Rökrétt til vinstri | Rd(n+1) ← Rd(n), Rd(0) ← 0 | Z, C, N, V | 1 |
LSR | Rd | Rökrétt breyting til hægri | Rd(n) ← Rd(n+1), Rd(7) ← 0 | Z, C, N, V | 1 |
HLUTVERK | Rd | Snúðu til vinstri í gegnum Carry | Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) | Z, C, N, V | 1 |
ROR | Rd | Snúðu beint í gegnum Carry | Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) | Z, C, N, V | 1 |
ASR | Rd | Reikningsbreyting Hægri | Rd(n) ← Rd(n+1), n=0..6 | Z, C, N, V | 1 |
Mnemonics | Aðgerðir | Lýsing | Rekstur | Fánar | #Klukkur |
SKIPTA | Rd | Skiptu um narta | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Engin | 1 |
BSET | s | Fánasett | SREG(s) ← 1 | SREG (s) | 1 |
BCLR | s | Fáni skýr | SREG(s) ← 0 | SREG (s) | 1 |
BST | Rr, f | Bit Store frá Register til T | T ← Rr(b) | T | 1 |
BLD | Rd, f | Bit álag frá T til Register | Rd(b) ← T | Engin | 1 |
SEC | Stilltu Carry | C ← 1 | C | 1 | |
CLC | Hreinsa Bera | C ← 0 | C | 1 | |
SEN | Settu neikvæðan fána | N ← 1 | N | 1 | |
CLN | Hreinsa neikvæðan fána | N ← 0 | N | 1 | |
SEZ | Settu núll fána | Z ← 1 | Z | 1 | |
CLZ | Hreinsa núll fána | Z ← 0 | Z | 1 | |
SEI | Virkja alþjóðleg truflun | ég ← 1 | I | 1 | |
CLI | Slökkva á alþjóðlegum truflunum | ég ← 0 | I | 1 | |
SES | Settu undirritaðan prófunarfána | S ← 1 | S | 1 | |
CLS | Hreinsa undirritaðan próffána | S ← 0 | S | 1 | |
SEV | Stilltu tvennt viðbótarflæði. | V ← 1 | V | 1 | |
CLV | Hreinsa tvennt viðbótarflæði | V ← 0 | V | 1 | |
SETJA | Stilltu T í SREG | T ← 1 | T | 1 | |
CLT | Hreinsa T í SREG | T ← 0 | T | 1 | |
SEH | Settu hálfa burðarfána í SREG | H ← 1 | H | 1 | |
CLH | Hreinsaðu hálfa burðarfána í SREG | H ← 0 | H | 1 | |
LEIÐBEININGAR varðandi flutning gagna | |||||
MOV | Rd, Rr | Færa á milli skrár | Rd ← Rr | Engin | 1 |
MOVW | Rd, Rr | Afritaðu Register Word | Rd+1:Rd ← Rr+1:Rr | Engin | 1 |
LDI | Rd, K. | Hleðsla strax | Rd ← K | Engin | 1 |
LD | Rd, X | Hlaða óbeint | Rd ← (X) | Engin | 2 |
LD | Rd, X + | Load Indirect og Post-Inc. | Rd ← (X), X ← X + 1 | Engin | 2 |
LD | Rd, - X | Hlaða óbeint og fyrir des. | X ← X – 1, Rd ← (X) | Engin | 2 |
LD | Rd, Y | Hlaða óbeint | Rd ← (Y) | Engin | 2 |
LD | Rd, Y + | Load Indirect og Post-Inc. | Rd ← (Y), Y ← Y + 1 | Engin | 2 |
LD | Rd, - Y | Hlaða óbeint og fyrir des. | Y ← Y – 1, Rd ← (Y) | Engin | 2 |
LDD | Rd, Y + q | Hlaða óbeint með tilfærslu | Rd ← (Y + q) | Engin | 2 |
LD | Rd, Z | Hlaða óbeint | Rd ← (Z) | Engin | 2 |
LD | Rd, Z + | Load Indirect og Post-Inc. | Rd ← (Z), Z ← Z+1 | Engin | 2 |
LD | Rd, -Z | Hlaða óbeint og fyrir des. | Z ← Z – 1, Rd ← (Z) | Engin | 2 |
LDD | Rd, Z + q | Hlaða óbeint með tilfærslu | Rd ← (Z + q) | Engin | 2 |
LDS | Rd, k | Hleðsla beint frá SRAM | Rd ← (k) | Engin | 2 |
ST | X, Rr | Geymdu óbeint | (X) ← Rr | Engin | 2 |
ST | X +, Rr | Store Indirect og Post-Inc. | (X) ← Rr, X ← X + 1 | Engin | 2 |
ST | - X, Rr | Geymdu óbeint og fyrir des. | X ← X – 1, (X) ← Rr | Engin | 2 |
ST | Y, Rr | Geymdu óbeint | (Y) ← Rr | Engin | 2 |
ST | Y +, Rr | Store Indirect og Post-Inc. | (Y) ← Rr, Y ← Y + 1 | Engin | 2 |
ST | - Y, Rr | Geymdu óbeint og fyrir des. | Y ← Y – 1, (Y) ← Rr | Engin | 2 |
STD | Y + q, Rr | Geymdu óbeint með tilfærslu | (Y + q) ← Rr | Engin | 2 |
ST | Z, Rr | Geymdu óbeint | (Z) ← Rr | Engin | 2 |
ST | Z +, Rr | Store Indirect og Post-Inc. | (Z) ← Rr, Z ← Z + 1 | Engin | 2 |
ST | -Z, Rr | Geymdu óbeint og fyrir des. | Z ← Z – 1, (Z) ← Rr | Engin | 2 |
STD | Z + q, Rr | Geymdu óbeint með tilfærslu | (Z + q) ← Rr | Engin | 2 |
STS | k, Rr | Geymið beint í SRAM | (k) ← Rr | Engin | 2 |
LPM | Hlaða forritaminni | R0 ← (Z) | Engin | 3 | |
LPM | Rd, Z | Hlaða forritaminni | Rd ← (Z) | Engin | 3 |
LPM | Rd, Z + | Hlaða forritaminni og Post-Inc. | Rd ← (Z), Z ← Z+1 | Engin | 3 |
SPM | Geymdu forritaminni | (z) ← R1:R0 | Engin | ||
IN | Rd, P. | Í höfn | Rd ← P | Engin | 1 |
ÚT | P, Rr | Út höfn | P ← Rr | Engin | 1 |
ÝTA | Rr | Ýttu á Register á Stack | STAFLI ← Rr | Engin | 2 |
POP | Rd | Poppskrá frá Stack | Rd ← STAFLI | Engin | 2 |
LEIÐBEININGAR um MCU | |||||
NOP | Engin aðgerð | Engin | 1 | ||
SVEFNA | Sofðu | (sjá sérstaka lýsingu á svefnaðgerð) | Engin | 1 | |
WDR | Endurstilla varðhund | (sjá sérstaka lýsingu á WDR / tímastillingu) | Engin | 1 | |
BRÉTA | Hlé |
Hraði (MHz) (1) | Framboð Voltage (V) | Hitastig | Pakki (2) | Pöntunarkóði (3) |
10 | 1.8 – 5.5 | Iðnaðar
(-40 ° C til + 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 | Iðnaðar
(-40 ° C til + 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 |
Skýringar: 1. Fyrir hraða vs. framboð voltage, sjá kafla 21.3 „Hraði“ á bls. 163.
Allir pakkningar eru Pb-lausir, halíðlausir og að fullu grænir og þeir eru í samræmi við evrópsku tilskipunina um takmörkun hættulegra efna (RoHS).
Kóðavísar
H: NiPdAu leiða klára
U: matt tini
R: límband og spóla
Þessi tæki er einnig hægt að fá í oblátaformi. Vinsamlegast hafðu samband við Atmel söluskrifstofu þína til að fá nákvæmar upplýsingar um pöntun og lágmarks magn.
Erratum
Errata ATtiny25
Endurskoðunarbréfið í þessum kafla vísar til endurskoðunar á ATtiny25 tækinu.
Rev D - F
Engin þekkt errata.
Rev B - C
EEPROM lest getur mistekist við lítið framboð voltage / lág klukkutíðni
EEPROM lest getur mistekist við lítið framboð voltage / lág klukkutíðni
Reynt er að lesa EEPROM við lága klukkutíðni og/eða lítið framboð binditage getur leitt til ógildra gagna.
Vandamál og lausn
Ekki nota EEPROM þegar klukkutíðni er undir 1MHz og framboðsmagntage er undir 2V. Ef ekki er hægt að hækka rekstrartíðni yfir 1MHz, þá skal framboð binditage ætti að vera meira en 2V. Á sama hátt, ef framboð binditage er ekki hægt að hækka yfir 2V þá ætti vinnutíðni að vera meiri en 1MHz.
Vitað er að þessi eiginleiki er háður hitastigi en hann hefur ekki verið einkenntur. Leiðbeiningar eru aðeins gefnar um stofuhita.
Séra A
Ekki sampleiddi.
Errata ATtiny45
Endurskoðunarbréfið í þessum kafla vísar til endurskoðunar á ATtiny45 tækinu.
Rev F - G
Engin þekkt errata
Rev D - E
EEPROM lest getur mistekist við lítið framboð voltage / lág klukkutíðni
EEPROM lest getur mistekist við lítið framboð voltage / lág klukkutíðni
Reynt er að lesa EEPROM við lága klukkutíðni og/eða lítið framboð binditage getur leitt til ógildra gagna.
Vandamál og lausn
Ekki nota EEPROM þegar klukkutíðni er undir 1MHz og framboðsmagntage er undir 2V. Ef ekki er hægt að hækka rekstrartíðni yfir 1MHz, þá skal framboð binditage ætti að vera meira en 2V. Á sama hátt, ef framboð binditage er ekki hægt að hækka yfir 2V þá ætti vinnutíðni að vera meiri en 1MHz.
Þessi eiginleiki er þekktur fyrir að vera háður hita en hann hefur ekki verið einkenntur. Leiðbeiningar eru aðeins gefnar um stofuhita.
Rev B - C
PLL læsist ekki
EEPROM lesinn úr forritakóða virkar ekki í Lock Bit Mode 3
EEPROM lest getur mistekist við lítið framboð voltage / lág klukkutíðni
Tímamælir 1 PWM framleiðsla á OC1B- XOC1B virkar ekki rétt
PLL læsist ekki
Þegar á tíðnum undir 6.0 MHz læsist PLL ekki
Vandamálaleiðrétting / lausn
Þegar þú notar PLL skaltu keyra á 6.0 MHz eða hærra.
EEPROM lesinn úr forritakóða virkar ekki í Lock Bit Mode 3
Þegar minnislásarbitarnir LB2 og LB1 eru forritaðir í ham 3 virkar EEPROM lestur ekki frá forritakóðanum.
Vandamál að laga / vinna úr
Ekki stilla Lock Bit Protection Mode 3 þegar forritakóðinn þarf að lesa úr EEPROM.
EEPROM lest getur mistekist við lítið framboð voltage / lág klukkutíðni
Reynt er að lesa EEPROM við lága klukkutíðni og/eða lítið framboð binditage getur leitt til ógildra gagna.
Vandamál og lausn
Ekki nota EEPROM þegar klukkutíðni er undir 1MHz og framboðsmagntage er undir 2V. Ef ekki er hægt að hækka rekstrartíðni yfir 1MHz, þá skal framboð binditage ætti að vera meira en 2V. Á sama hátt, ef framboð binditage er ekki hægt að hækka yfir 2V þá ætti vinnutíðni að vera meiri en 1MHz.
Vitað er að þessi eiginleiki er háður hitastigi en hann hefur ekki verið einkenntur. Leiðbeiningar eru aðeins gefnar um stofuhita.
Tímamælir 1 PWM framleiðsla á OC1B - XOC1B virkar ekki rétt
Tímamælir1 PWM framleiðsla OC1B-XOC1B virkar ekki rétt. Aðeins í þeim tilfellum þegar stjórnbitarnir, COM1B1 og COM1B0 eru í sama ham og COM1A1 og COM1A0, í sömu röð, virkar OC1B-XOC1B framleiðslan rétt.
Vandamál að laga / vinna úr
Eina lausnin er að nota sömu stjórnunarstillingu á COM1A [1: 0] og COM1B [1: 0] stjórnbitum, sjá töflu 14- 4 á gagnablaðinu. Vandinn hefur verið lagaður fyrir Tiny45 snúning D.
Séra A
Of mikil orkunotkun niður
DebugWIRE missir samskipti þegar einn stígur inn í truflun
PLL læsist ekki
EEPROM lesinn úr forritakóða virkar ekki í Lock Bit Mode 3
EEPROM lest getur mistekist við lítið framboð voltage / lág klukkutíðni
Of mikil orkunotkun niður
Þrjár aðstæður munu leiða til of mikillar orkunotkunar. Þetta eru:
Ytri klukka er valin með öryggjum, en I / O PORT er samt virkt sem framleiðsla.
EEPROM er lesinn áður en slökkt er á honum.
VCC er 4.5 volt eða hærra.
Fyrirvari: Upplýsingarnar í þessu skjali eru veittar í tengslum við Atmel vörur. Ekkert leyfi, beint eða óbeint, með estoppel eða á annan hátt, á neinum hugverkarétti er veitt með þessu skjali eða í tengslum við sölu á Atmel vörum. NEMA EINS OG SEM KOMIÐ er fram í ATMEL SÖLUSKILMÁLUM OG SÖLUSKILYRÐUM sem eru staðsettir á ATMEL WEBSÍÐAN, ATMEL TEKUR ENGA ÁBYRGÐ OG FYRIR EINHVERJU SKÝRI, ÓBEININU EÐA LÖGBEÐA ÁBYRGÐ SEM VARÐUR SÍN, Þ.M.T. Í ENGUM TILKYNNINGUM SKAL ATMEL BÆRA ÁBYRGÐ FYRIR NEIGU BEINUM, ÓBEINU, AFLEIDANDI, REFSINGUM, SÉRSTAKUM EÐA tilfallandi tjóni (ÞAR á meðal, ÁN TAKMARKARNAR, SKAÐA FYRIR TAP OG GAGNA, VIÐSKIPTATRÚLUN, EÐA TAP Á NOTKUN EÐA TAP Á NOTKUNNI) ÞETTA SKJÁL, JAFNVEL ÞÓ ATMEL HEF FYRIR LEYFIÐ UM MÖGULEIKUR SVONA SKAÐA.
Atmel gefur engar yfirlýsingar eða ábyrgðir með tilliti til nákvæmni eða heilleika innihalds þessa skjals og áskilur sér rétt til að gera breytingar á forskriftum og vörulýsingum hvenær sem er án fyrirvara. Atmel skuldbindur sig ekki til að uppfæra upplýsingarnar sem hér er að finna. Nema annað sé sérstaklega tekið fram, eru Atmel vörur ekki hentugar fyrir, og má ekki nota í, bílum. Atmel vörur eru ekki ætlaðar, heimilaðar eða ábyrgðar til notkunar sem íhlutir í forritum sem ætlað er að styðja við eða viðhalda lífi.