Atmel 8-bita AVR Mikroregilo kun 2/4/8K Bajtoj En-Sistema Programebla Ekbrilo
Karakterizaĵoj
- Alta Efikeco, Malalta Potenco AVR® 8-Bita Mikroregilo
- Altnivela RISC-Arkitekturo
- 120 Potencaj Instruoj - Plej Unuopa Horloĝa Ciklo-Ekzekuto
- 32 x 8 Ĝeneralcelaj Laborregistaroj
- Plene Senmova Operacio
- Ne-volatila Programo kaj Datumemoroj
- 2/4 / 8K-Bajtoj da En-Sistema Programebla Memora Fulmo
- Eltenivo: 10,000 Skribu/Forigi Ciklojn
- 128/256/512 Bajtoj En-Sistema Programebla EEPROM
- Eltenivo: 100,000 Skribu/Forigi Ciklojn
- 128/256/512 Bajtoj Interna SRAM
- Programada Ŝlosilo por Memprograma Fulma Programo kaj EEPROM-Datuma Sekureco
Ekstercentraj Ecoj
- 8-bita Tempigilo / Nombrilo kun Prescaler kaj Du PWM-Kanaloj
- 8-bita Rapida Tempigilo / Nombrilo kun Aparta Antaŭkalkulo
- 2 Altfrekvencaj PWM-Eliroj kun Aparta Eliga Komparaj Registroj
- Programebla Mortotempa Generatoro
- USI - Universala Seria Interfaco kun Komenca Kondiĉa Detektilo
- 10-bita ADC
4 Unuopaj Kanaloj
2 Diferencaj ADC-Kanalaj Paroj kun Programebla Gajno (1x, 20x)
Mezurado de Temperaturo
Programebla Gardhorloĝtempilo kun Aparta Sur-blata Oscililo
Sur-blata Analoga Komparilo
Specialaj Mikroregiloj
debugWIRE Sur-blata Senarariga Sistemo
En-Sistema Programebla per SPI-Haveno
Eksteraj kaj Internaj Interrompaj Fontoj
Malalta Potenca Senaktiva, ADC-Brua Redukto kaj Malŝalti Reĝimojn
Plibonigita Potenca Rekomenca Cirkvito
Programebla Bruna Detekta Cirkvito
Interna Kalibrita Oscilo
I / O kaj Pakoj
Ses Programeblaj I / O-Linioj
8-stiftaj PDIP, 8-stiftaj SOIC, 20-kusenaj QFN / MLF kaj 8-stiftaj TSSOP (nur ATtiny45 / V)
Funkcianta Voltage
- 1.8 - 5.5V por ATtiny25V / 45V / 85V
- 2.7 - 5.5 V por ATtiny25 / 45/85
Rapida Grado
- 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
Industria Temperaturo
Malalta Potenca Konsumo
Aktiva reĝimo:
1 MHz, 1.8V: 300 µA
Malŝalti reĝimon:
Pinglo-Agordoj
Pinglo ATtiny25 / 45/85
Pinaj Priskriboj
VCC: Provizo voltage.
GND: Grundo.
Haveno B (PB5:PB0): Haveno B estas 6-bita dudirekta I/O-haveno kun internaj tirrezistoj (elektitaj por ĉiu bito). La Port B-produktaĵbufroj havas simetriajn veturadkarakterizaĵojn kun kaj alta lavujo kaj fontkapableco. Kiel enigaĵoj, Port B-stiftoj kiuj estas ekstere tiritaj malalte fontos fluon se la tirrezistoj estas aktivigitaj. La Port B-stiftoj estas tri-deklaritaj kiam rekomencigita kondiĉo iĝas aktiva, eĉ se la horloĝo ne funkcias.
Haveno B ankaŭ servas la funkciojn de diversaj specialaj ecoj de la ATtiny25 / 45/85 kiel listigitaj
Ĉe ATtiny25, la programeblaj I / O-havenoj PB3 kaj PB4 (pingloj 2 kaj 3) estas interŝanĝitaj en ATtiny15-Kongrua Reĝimo por subteni la malantaŭan kongruon kun ATtiny15.
RESET: Restarigi enigon. Malalta nivelo sur ĉi tiu stifto dum pli longa ol la minimuma pulslongo generos rekomencon, eĉ se la horloĝo ne funkcias kaj kondiĉe ke la rekomencigita stifto ne estis malfunkciigita. La minimuma pulslongo estas donita Tabelo 21-4 sur paĝo 165. Pli mallongaj pulsoj ne garantias generi reagordon.
La reagordita pinglo ankaŭ povas esti uzata kiel (malforta) pinglo de E / S.
Finiteview
La ATtiny25 / 45/85 estas malalt-potenca CMOS-8-bita mikroregilo surbaze de la AVR plibonigita RISC-arkitekturo. Ekzekutante potencajn instrukciojn en ununura horloĝa ciklo, la ATtiny25 / 45/85 atingas trairojn proksimiĝantajn al 1 MIPS per MHz, permesante al la sistemoprojektisto optimumigi elektrokonsumon kontraŭ prilaborado.
Bloka Diagramo
La AVR-kerno kombinas riĉan instrukciserion kun 32 ĝeneraluzeblaj laboregistroj. Ĉiuj 32 registroj estas rekte konektitaj al la Aritmetika Logika Unuo (ALU), permesante al du sendependaj registroj esti aliritaj en unu sola instrukcio efektivigita en unu horloĝa ciklo. La rezulta arkitekturo pli kodas efike dum atingado de eniroj ĝis dek fojojn pli rapidaj ol konvenciaj CISC-mikroregiloj.
La ATtiny25 / 45/85 provizas la jenajn funkciojn: 2/4 / 8K-bajtoj da En-Sistema Programebla Fulmo, 128/256/512 bajtoj EEPROM, 128/256/256 bajtoj SRAM, 6 ĝeneraluzaj I / O-linioj, 32 ĝeneralaj celaj laboregistroj, unu 8-bita Tempigilo / Nombrilo kun komparaj reĝimoj, unu 8-bita altrapida Tempigilo / Nombrilo, Universala Seria Interfaco, Interna kaj Ekstera Interrompoj, 4-kanala, 10-bita ADC, programebla Gardohundo-Tempigilo kun interna Oscilo, kaj tri programoj elekteblaj ŝpara reĝimo. Senaktiva reĝimo haltigas la CPU, permesante al la SRAM, Tempigilo / Nombrilo, ADC, Analoga Komparilo kaj Interrompa sistemo plu funkcii. Malŝalti reĝimon konservas la registrajn enhavojn, malebligante ĉiujn pecetajn funkciojn ĝis la sekva Interrompo aŭ Aparatara Restarigo. ADC-Brua Redukta reĝimo haltigas la CPU kaj ĉiujn I / O-modulojn krom ADC, por minimumigi ŝanĝan bruon dum ADC-konvertiĝoj.
La aparato estas fabrikita per la ne-volatila memora teknologio de Atmel. La Sur-blata ISP-Fulmo permesas al la Programmemoro esti reprogramita En-Sistemo tra SPI-seria interfaco, per konvencia ne-volatila memora programisto aŭ per Sur-blata startkodo funkcianta per la AVR-kerno.
La AVR ATtiny25 / 45/85 estas subtenata per kompleta aro da programaj kaj sistemaj iloj inkluzive de: C-Kompililoj, Makro-Asemblistoj, Programaj Depurigilo / Simuliloj kaj Taksaj iloj.
Pri Rimedoj
Ampleksa aro de evoluiloj, aplikaĵaj notoj kaj datumaj folioj estas elŝutebla http://www.atmel.com/avr.
Kodo Ekzamples
Ĉi tiu dokumentaro enhavas simplan kodon ekzampke nelonge montras kiel uzi diversajn partojn de la aparato. Ĉi tiuj kodo ekzampili supozas, ke la parto estas specifa kaplinio file estas inkluzivita antaŭ kompilo. Konsciu, ke ne ĉiuj C-kompililaj vendistoj inkluzivas bitajn difinojn en la kaplinio files kaj interrompmanipulado en C dependas de kompililo. Bonvolu konfirmi per la dokumento pri la kompililo C por pliaj detaloj.
Por I / O-Registroj situantaj en la plilongigita I / O-mapo, "IN", "OUT", "SBIS", "SBIC", "CBI", kaj "SBI" instrukcioj devas esti anstataŭigitaj per instrukcioj kiuj permesas aliron al etendita I / O. Tipe tio signifas "LDS" kaj "STS" kune kun "SBRS", "SBRC", "SBR" kaj "CBR". Notu, ke ne ĉiuj AVR-aparatoj inkluzivas plilongigitan I / O-mapon.
Kapacita Tuŝosensado
Atmel QTouch Library disponigas simplan uzeblan solvon por tuŝsentemaj interfacoj sur Atmel AVR mikroregiloj. La Biblioteko QTouch inkluzivas subtenon por akirmetodoj QTouch® kaj QMatrix®.
Tuŝosento facile aldoniĝas al iu ajn aplikaĵo per ligo de la Biblioteko QTouch kaj uzado de la Programara Interfaco (API) de la biblioteko por difini la tuŝajn kanalojn kaj sensilojn. La aplikaĵo tiam vokas la API por rekuperi kanalajn informojn kaj determini la staton de la tuŝosensilo.
La Biblioteko QTouch estas senpaga kaj elŝutebla de Atmel webretejo. Por pliaj informoj kaj detaloj pri efektivigo, vidu la Gvidlibron pri Uzanto de Biblioteko QTouch - ankaŭ havebla ĉe Atmel webretejo.
Retenado de datumoj
Rezultoj pri Kvalifikado de Fidindeco montras, ke la antaŭvidita malsukcesa ofteco estas multe malpli ol 1 PPM dum 20 jaroj je 85 ° C aŭ 100 jaroj je 25 ° C.
AVR CPU-Kerno
Enkonduko
Ĉi tiu sekcio diskutas la AVR-kernan arkitekturon ĝenerale. La ĉefa funkcio de la CPU-kerno estas certigi ĝustan programekzekuton. La CPU devas do povi aliri memorojn, plenumi kalkulojn, kontroli flankaparatojn kaj pritrakti interrompojn.
Arkitektura Finitaview
Por maksimumigi rendimenton kaj paralelecon, la AVR uzas Harvard-arkitekturon - kun apartaj memoroj kaj busoj por programo kaj datumoj. Instrukcioj en la Programmemoro estas plenumitaj per ununura nivelo-tubado. Dum unu instrukcio estas plenumata, la sekva instrukcio estas antaŭprenita el la Memora programo. Ĉi tiu koncepto ebligas plenumi instrukciojn en ĉiu horloĝa ciklo. La Programmemoro estas En-Sistema Reprogramebla Flash-memoro.
La rapid-alira Registro File enhavas 32 x 8-bitajn ĝeneraluzeblajn laborregistrojn kun ununura horloĝcikla alirtempo. Ĉi tio permesas operacion de unu-ciklo Arithmetic Logic Unit (ALU). En tipa ALU-operacio, du operandoj estas eligitaj de la Registro File, la operacio estas plenumita, kaj la rezulto estas konservita reen en la Registro File- en unu horloĝa ciklo.
Ses el la 32 registroj povas esti uzataj kiel tri 16-bitaj nerektaj adresaj registraj montriloj por Datuma Spaca adresado - ebligante efikajn adresajn kalkulojn. Unu el ĉi tiuj adresaj montriloj ankaŭ povas esti uzata kiel adresmontrilo por serĉi tabelojn en memoro de Flash Program. Ĉi tiuj aldonitaj funkcio-registroj estas la 16-bita X-, Y-, kaj Z-registro, priskribita poste en ĉi tiu sekcio.
La ALU subtenas aritmetikajn kaj logikajn operaciojn inter registroj aŭ inter konstanto kaj registro. Ununuraj registraj operacioj ankaŭ povas esti plenumitaj en la ALU. Post aritmetika operacio, la Statista Registro estas ĝisdatigita por reflekti informojn pri la rezulto de la operacio.
Programfluo estas provizita per kondiĉaj kaj senkondiĉaj instrukcioj pri salto kaj alvoko, kapablaj rekte trakti la tutan adresan spacon. Plej multaj AVR-instrukcioj havas ununuran 16-bitan vortformaton, sed ekzistas ankaŭ 32-bitaj instrukcioj.
Dum interrompoj kaj subprogramaj alvokoj, la resenda adreso Programa Nombrilo (Komputilo) estas konservita sur la Stako. La Stako efike estas asignita en la ĝeneralaj datumoj SRAM, kaj sekve la Staka grandeco estas nur limigita per la totala SRAM-grandeco kaj la uzado de la SRAM. Ĉiuj uzantoprogramoj devas pravalorizi la SP en la Restariga rutino (antaŭ ol subrutinoj aŭ interrompoj estas ekzekutitaj). La Staka Montrilo (SP) legeblas / skribas alirebla en la I / O-spaco. La datumoj SRAM facile alireblas per la kvin malsamaj adresaj reĝimoj subtenataj en la AVR-arkitekturo.
La memorspacoj en la AVR-arkitekturo estas ĉiuj liniaj kaj regulaj memormapoj.
Fleksebla interrompa modulo havas siajn kontrolregistrojn en la I / O-spaco kun aldona Tutmonda Interrompa Ebliga bito en la Registra Stato. Ĉiuj interrompoj havas apartan Interrompan Vektoron en la tabelo Interrompi Vektoron. La interrompoj havas prioritaton laŭ sia Interrompa Vekta pozicio. Ju pli malalta estas la Interrompa Vektora adreso, des pli alta estas la prioritato.
La I / O-memora spaco enhavas 64 adresojn por CPU-ekstercentraj funkcioj kiel Kontrolaj Registroj, SPI kaj aliaj I / O-funkcioj. La I / O-memoro estas alirebla rekte, aŭ kiel la Data Space-lokoj sekvante tiujn de la Registro File, 0x20 - 0x5F.
ALU - Aritmetika Logika Unueco
La altkvalita AVR ALU funkcias en rekta ligo kun ĉiuj 32 ĝeneraluzaj laborregistroj. Ene de ununura horloĝa ciklo, aritmetikaj operacioj inter ĝeneraluzeblaj registroj aŭ inter registro kaj tuja estas plenumitaj. La ALU-operacioj estas dividitaj en tri ĉefajn kategoriojn - aritmetikajn, logikajn kaj bitajn funkciojn. Iuj efektivigoj de la arkitekturo ankaŭ provizas potencan multiplikanton subtenantan kaj subskribitan / sennoman multiplikon kaj frakciecan formaton. Vidu la sekcion "Instrukciaro" por detala priskribo.
Registra Stato
La Statista Registro enhavas informojn pri la rezulto de la plej ĵuse plenumita aritmetika instrukcio. Ĉi tiuj informoj povas esti uzataj por ŝanĝi programan fluon por plenumi kondiĉajn operaciojn. Rimarku, ke la Statista Registro estas ĝisdatigita post ĉiuj ALU-operacioj, kiel specifite en la Instrukcia Referenco. Ĉi tio en multaj kazoj forigos la bezonon uzi la dediĉitajn komparajn instrukciojn, rezultigante pli rapidan kaj pli kompaktan kodon.
La Statista Registro ne estas aŭtomate stokita enirante interrompan rutinon kaj restarigita revenante de interrompo. Ĉi tion devas trakti programoj.
SREG - Registro pri Statuso AVR
La AVR-Stato-Registro - SREG - estas difinita kiel:
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | SREG |
Legu/Skribu | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Peco 7 - I: Tutmonda Interrompa Ebligo
La Tutmonda Interrompa Ebliga bito devas esti agordita por ke la interrompoj estu ebligitaj. La individua interrompa ebliga kontrolo tiam plenumiĝas en apartaj kontrolregistroj. Se la Tutmonda Interrompa Ebliga Registro estas malplenigita, neniu el la interrompoj estas ebligita sendepende de la individuaj interrompaj ebligaj agordoj. La I-bito estas malplenigita per aparataro post kiam interrompo okazis, kaj estas agordita per la instrukcio RETI por ebligi postajn interrompojn. La I-bito ankaŭ povas esti agordita kaj malplenigita per la aplikaĵo per la instrukcioj SEI kaj CLI, kiel priskribite en la instrukcia referenco.
Peco 6 - T: Peco-Kopio-Stokado
La instrukcioj pri Bit-Kopio BLD (Bit LoaD) kaj BST (Bit-Butiko) uzas la T-biton kiel fonton aŭ celon por la funkciigita biton. Iom el registro en la Registro File povas esti kopiita en T per la BST-instrukcio, kaj iom en T povas esti kopiita en iom en registro en la Registro File per la BLD-instrukcio.
Peco 5 - H: Duonporta Flago
La Duono Portas Flagon H indikas Duonan Porton en iuj aritmetikaj operacioj. Half Carry estas utila en BCD-aritmetiko. Vidu la "Instrukcian Priskribon" por detalaj informoj.
Bito 4 - S: Signa Bito, S = N ⊕ V
La S-bito ĉiam estas ekskluziva aŭ inter la Negativa Flago N kaj la Du-Kompleta Superflua Flago V. Vidu la "Instrukcian Priskribon" por detalaj informoj.
Peco 3 - V: Kompleta Superflua Flago de Two
La Du-Komplementa Superflua Flago V subtenas du-komplementan aritmetikon. Vidu la "Instrukcian Priskribon" por detalaj informoj.
Peco 2 - N: Negativa Flago
La Negativa Flago N indikas negativan rezulton en aritmetika aŭ logika operacio. Vidu la "Instrukcian Priskribon" por detalaj informoj.
Peco 1 - Z: Nula Flago
La Nula Flago Z indikas nulan rezulton en aritmetika aŭ logika operacio. Vidu la "Instrukcian Priskribon" por detalaj informoj.
Peco 0 - C: Portu Flagon
La Portada Flago C indikas portadon en aritmetika aŭ logika operacio. Vidu la "Instrukcian Priskribon" por detalaj informoj.
Ĝeneralcela Registro File
La Registro File estas optimumigita por la instrukcia aro AVR Enhanced RISC. Por atingi la bezonatajn agadojn kaj flekseblecon, la jenaj eniga / eliga skemo estas subtenataj de la Registro File:
Unu 8-bita produktaĵoperando kaj unu 8-bita rezultenigaĵo
Du 8-bitaj produktaĵoperandoj kaj unu 8-bita rezultenigaĵo
Du 8-bitaj produktaĵoperandoj kaj unu 16-bita rezultenigaĵo
Unu 16-bita produktaĵoperando kaj unu 16-bita rezultenigaĵo
Figuro 4-2 montras la strukturon de la 32 ĝeneraluzaj laborregistroj en la CPU.
Kiel montrite en Figuro 4-2, al ĉiu registro ankaŭ estas asignita Datuma memora adreso, mapante ilin rekte en la unuajn 32 lokojn de la uzanto Datuma Spaco. Kvankam ne estante fizike efektivigita kiel SRAM-lokoj, ĉi tiu memora organizo provizas grandan flekseblecon en aliro al la registroj, ĉar la registroj de X-, Y- kaj Z-montriloj povas esti agorditaj por indeksi iun ajn registron en la file.Plejmulto de la instrukcioj funkciigantaj sur la Registro File havas rektan aliron al ĉiuj registroj, kaj la plej multaj el ili estas instrukcioj pri sola ciklo.
La X-registro, Y-registro kaj Z-registro
La registroj R26..R31 havas iujn aldonajn funkciojn al sia ĝeneraluzebla uzado. Ĉi tiuj registroj estas 16-bitaj adresaj montriloj por nerekta adresado de la datuma spaco. La tri nerektaj adresregistroj X, Y kaj Z estas difinitaj kiel priskribite en Figuro 4-3.
En la malsamaj adresaj reĝimoj ĉi tiuj adresaj registroj havas funkciojn kiel fiksa movo, aŭtomata pliigo kaj aŭtomata malpliigo (vidu la instrukcian referencon por detaloj).
Staka Montrilo
La Stako estas ĉefe uzata por stoki provizorajn datumojn, por stoki lokajn variablojn kaj por stoki resendajn adresojn post interrompoj kaj subrutaj vokoj. La Staka Montrilo-Registro ĉiam montras al la supro de la Stako. Notu, ke la Stako estas efektivigita kreskante de pli altaj memoraj lokoj al pli malaltaj memoraj lokoj. Ĉi tio implicas, ke komando Stack PUSH malpliigas la Stakan Montrilon.
La Staka Montrilo montras la datuman SRAM-Stakan areon, kie troviĝas la Subrutino kaj Interrompaj Stakoj. Ĉi tiu Stack-spaco en la datuma SRAM devas esti difinita de la programo antaŭ ol iuj subprogramaj alvokoj estas plenumitaj aŭ interrompoj estas ebligitaj. La Staka Montrilo devas esti agordita al punkto super 0x60. La Staka Montrilo estas dekrementita de unu kiam datumoj estas puŝitaj sur la Stakon per la instrukcio PUSH, kaj ĝi estas dekrementita de du kiam la sendadreso estas puŝita sur la Stakon kun subprograma voko aŭ interrompo. La Staka Montrilo estas pliigita per unu kiam datumoj aperas de la Stako kun la instrukcio POP, kaj ĝi estas pliigita de du kiam datumoj estas aperigitaj de la Stako kun reveno de subprogramo RET aŭ reveno de interrompado RETI.
La AVR Stack Pointer estas efektivigita kiel du 8-bitaj registroj en la I / O-spaco. La nombro de bitoj efektive uzataj dependas de efektivigo. Notu, ke la datuma spaco en iuj efektivigoj de la AVR-arkitekturo estas tiel malgranda, ke nur SPL bezonas. Ĉi-kaze la SPH-Registro ne ĉeestos.
Registro SPH kaj SPL - Staka Montrilo
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 | ||
Legu/Skribu | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Legu/Skribu | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Komenca Valoro | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | |
Komenca Valoro | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND |
Instrukcia Ekzekuto-Tempigo
Ĉi tiu sekcio priskribas la ĝeneralajn alirtempajn konceptojn por instrukcioekzekuto. La AVR CPU estas movita per la CPU-horloĝo clkCPU, rekte generita de la elektita horloĝfonto por la peceto. Neniu interna horloĝdivido estas uzata.
Figuro 4-4 montras la paralelajn instrukciojn kaj instrukciojn efektivigitajn per la Harvard-arkitekturo kaj la rapida alira Registro File koncepto. Ĉi tiu estas la baza pipelina koncepto por akiri ĝis 1 MIPS po MHz kun la respondaj unikaj rezultoj por funkcioj po kosto, funkcioj po horloĝoj kaj funkcioj po potenco.
Figuro 4-5. Unucikla ALU-Operacio
Restarigi kaj Interrompi Manipuladon
La AVR provizas plurajn malsamajn interrompajn fontojn. Ĉi tiuj interrompoj kaj la aparta Restariga Vektoro havas ĉiun apartan Programvektoron en la Memora spaco de Programo. Al ĉiuj interrompoj estas asignitaj individuaj ebligaj bitoj, kiuj devas esti skribitaj logike unu kune kun la Tutmonda Interrompa Ebliga bito en la Registra Stato por ebligi la interrompon.
La plej malaltaj adresoj en la Memora spaco de Programo estas defaŭlte difinitaj kiel Restarigi kaj Interrompi Vektorojn. La kompleta listo de vektoroj estas montrita en "Interrompoj" sur paĝo 48. La listo ankaŭ determinas la prioritatajn nivelojn de la malsamaj interrompoj. Ju pli malalta la adreso des pli alta estas la prioritata nivelo. RESET havas la plej altan prioritaton, kaj sekve estas INT0 - la Ekstera Interrompa Peto 0.
Kiam interrompo okazas, la Tutmonda Interrompa Ebliga I-bito estas malplenigita kaj ĉiuj interrompoj estas malebligitaj. La uzanta programaro povas skribi logikon unu al la I-bito por ebligi nestitajn interrompojn. Ĉiuj ebligitaj interrompoj tiam povas interrompi la nunan interrompan rutinon. La I-bito estas aŭtomate agordita kiam Reveno de Interrompa instrukcio - RETI - estas plenumita.
Esence estas du specoj de interrompoj. La unua tipo estas ekigita de evento, kiu starigas la Interrompan Flagon. Por ĉi tiuj interrompoj, la Programa Nombrilo estas vektora al la efektiva Interrompa Vektoro por plenumi la interrompan pritraktan rutinon, kaj aparataro malplenigas la respondan Interrompan Flagon. Interrompaj Flagoj ankaŭ povas esti malplenigitaj per skribado de logiko al la malbaraj pozicioj de la flago. Se interrompa kondiĉo okazas dum la responda interrompa ebliga bito estas malplenigita, la Interrompa Flago estos agordita kaj memorita ĝis la interrompo estas ebligita, aŭ la flago estas malplenigita de programaro. Simile, se unu aŭ pluraj interrompaj kondiĉoj okazas dum la Tutmonda Interrompa Ebliga bito estas malplenigita, la respondaj Interrompaj Flagoj estos agorditaj kaj memoritaj ĝis la Tutmonda Interrompa Ebliga bito estas agordita, kaj tiam estos plenumitaj laŭ ordo de prioritato.
La dua speco de interrompoj ekiĝos dum la interrompa kondiĉo ĉeestas. Ĉi tiuj interrompoj ne nepre havas Interrompajn Flagojn. Se la interrompa stato malaperas antaŭ ol la interrompo estas ebligita, la interrompo ne ekiĝos.
Kiam la AVR eliros el interrompo, ĝi ĉiam revenos al la ĉefa programo kaj plenumos ankoraŭ unu instrukcion antaŭ ol iu pritraktata interrompo estos servita.
Notu, ke la Statista Registro ne estas aŭtomate konservita kiam vi eniras interrompan rutinon, nek restaŭras kiam vi revenas de interrompa rutino. Ĉi tion devas trakti programoj.
Kiam vi uzas la CLI-instrukcion por malebligi interrompojn, la interrompoj tuj estos malebligitaj. Neniu interrompo estos efektivigita post la CLI-instrukcio, eĉ se ĝi okazas samtempe kun la CLI-instrukcio. La sekva ekzample montras kiel tio povas esti uzata por eviti interrompojn dum la tempigita EEPROM-skriba sinsekvo.
Kuniga Kodo Eksample |
en r16, SREG ; stoki SREG-valoron
cli ; malŝalti interrompojn dum tempigita sekvenco sbi EECR, EEMPE ; komenci EEPROM-skribi sbi EECR, EEPE el SREG, r16 ; restarigi SREG-valoron (I-bita) |
C-kodo Eksample |
char cSREG;
cSREG = SREG; /* stoki SREG-valoron */ /* malŝalti interrompojn dum tempigita sekvenco */ _CLI (); EECR |= (1< EECR | = (1 < SREG = cSREG; /* restarigi SREG-valoron (I-bito) */ |
Kiam vi uzas la SEI-instrukcion por ebligi interrompojn, la instrukcio sekvanta SEI estos plenumita antaŭ iuj pendaj interrompoj, kiel montrite en ĉi tiu ekz.ample.
Kuniga Kodo Eksample |
sei ; agordu Tutmondan Interrompon Ebligi
dormi; eniru dormon, atendante interrompon ; noto: eniros dormon antaŭ iu ajn pritraktata ; interrompi (j) |
C-kodo Eksample |
_SEI(); /* agordi Tutmondan Interrompon Ebligon */
_DORMI(); /* eniras dormon, atendante interrompon */ / * noto: eniros dormon antaŭ iuj pritraktataj interrompoj * / |
Interrompi Respondan Tempon
La interrompa ekzekuta respondo por ĉiuj ebligitaj AVR-interrompoj estas kvar horloĝcikloj minimuma. Post kvar horloĝaj cikloj la Programvektoro-adreso por la efektiva interrompa pritrakta rutino estas ekzekutita. Dum ĉi tiu kvar horloĝa cikla periodo, la Programa Nombrilo estas puŝita sur la Stakon. La vektoro normale estas salto al la interromprutino, kaj ĉi tiu salto daŭras tri horloĝajn ciklojn. Se interrompo okazas dum plenumado de plurcikla instrukcio, ĉi tiu instrukcio finiĝas antaŭ ol la interrompo estas servita. Se interrompo okazas kiam la MCU estas en dorma reĝimo, la interrompa plenuma responda tempo pliiĝas per kvar horloĝaj cikloj. Ĉi tiu pliigo aldoniĝas al la komenca tempo de la elektita dorma reĝimo.
Reveno de interrompa pritraktado daŭras kvar horloĝajn ciklojn. Dum ĉi tiuj kvar horloĝaj cikloj, la Programma Nombrilo (du bajtoj) estas aperigita de la Stako, la Staka Montrilo estas pliigita per du, kaj la I-bito en SREG estas agordita.
AVR-Memoroj
Ĉi tiu sekcio priskribas la malsamajn memorojn en la ATtiny25 / 45/85. La AVR-arkitekturo havas du ĉefajn memorajn spacojn, la Datuman memoron kaj la Programan memoran spacon. Krome, la ATtiny25 / 45/85 havas EEPROM-Memoron por datumstokado. Ĉiuj tri memorspacoj estas linearaj kaj regulaj.
En-Sistema Re-programebla Fulmprograma Memoro
La ATtiny25 / 45/85 enhavas 2/4 / 8K-bitokojn En-blatan En-Sisteman Reprogrameblan Flash-memoron por program-stokado. Ĉar ĉiuj AVR-instrukcioj larĝas 16 aŭ 32 bitojn, la Fulmo estas organizita kiel 1024/2048/4096 x 16.
La Flash-memoro havas eltenemon de almenaŭ 10,000 skribaj / forigaj cikloj. La Programa Nombrilo ATtiny25 / 45/85 (Komputilo) larĝas 10/11/12 bitojn, tiel traktante la 1024/2048/4096 Programajn memorlokojn. "Memora Programo- ming ”sur paĝo 147 enhavas detalan priskribon pri Flash-datuma seria elŝutado per la SPI-pingloj.
Konstantaj tabloj povas esti asignitaj ene de la tuta Programmemora adresspaco (vidu la priskribon pri instrukcio pri LPM - Ŝarĝi Programmemoron).
Figuro 5-1. Programa Memormapo
Datuma Memoro SRAM
Figuro 5-2 montras kiel estas organizita la Memoro SRam ATtiny25 / 45/85.
La malsupraj 224/352/607 Datumemoraj lokoj traktas ambaŭ la Registron File, la I / O-memoro kaj la internaj datumoj SRAM. La unuaj 32 lokoj traktas la Registron File, la sekvaj 64 lokoj la norma I / O-memoro, kaj la lastaj 128/256/512 lokoj traktas la internajn datumojn SRAM.
La kvin malsamaj adresaj reĝimoj por la datuma memora kovrilo: Rekta, Nerekta kun Delokiĝo, Nerekta, Nerekta kun Antaŭ-malpliigo, kaj Nerekta kun Post-pliigo. En la Registro File, registroj R26 ĝis R31 prezentas la nerektajn adresajn montrilojn.
La rekta adresado atingas la tutan datuman spacon.
La Nerekta kun Delokiĝa reĝimo atingas 63 adreslokojn de la baza adreso donita de la registro Y- aŭ Z-.
Dum uzado de registraj nerektaj adresaj reĝimoj kun aŭtomataj antaŭ-malpliigo kaj post-pliigo, la adresaj registroj X, Y kaj Z estas malpliigitaj aŭ pliigitaj.
La 32 ĝeneraluzeblaj laboregistroj, 64 I / O-Registroj, kaj la 128/256/512 bajtoj da internaj datumoj SRAM en la ATtiny25 / 45/85 estas ĉiuj alireblaj per ĉiuj ĉi adresaj reĝimoj. La Registro File estas priskribita en “Ĝen- erala Cela Registro File”Sur paĝo 10.
Figuro 5-2. Datuma Memoro-Mapo
Datummemora Aliro Tempoj
Ĉi tiu sekcio priskribas la ĝeneralajn alirtempajn konceptojn por interna memoraliro. La interna datuma SRAM-aliro estas farita en du clkCPU-cikloj kiel priskribite en Figuro 5-3.
Figuro 5-3. Sur-blato Datumoj SRAM-Alircikloj EEPROM-Datuma Memoro
La ATtiny25 / 45/85 enhavas 128/256/512 bajtojn da datuma memoro EEPROM. Ĝi estas organizita kiel aparta datuma spaco, en kiu oni povas legi kaj skribi unuopajn bitokojn. La EEPROM havas eltenemon de almenaŭ 100,000 skribaj / forigaj cikloj. La aliro inter la EEPROM kaj la CPU estas priskribita en la sekvaĵo, specifante la Adresajn Registrojn de EEPROM, la Datuma Registro de EEPROM kaj la Registro de Kontrolo de EEPROM. Por detaloj vidu "Seria Elŝutado" sur paĝo 151.
Aliro por Legi / Skribi EEPROM
La Aliraj Registroj de EEPROM estas alireblaj en la I / O-spaco.
La tempoj de skriba aliro por la EEPROM aperas Tabelo 5-1 sur paĝo 21. Memtempiga funkcio, tamen, lasas la uzantprogramaron detekti kiam la sekva bajto povas esti skribita. Se la uzantkodo enhavas instrukciojn kiuj skribas la EEPROM, kelkaj antaŭzorgoj devas esti prenitaj. En tre filtritaj elektroprovizoj, VCC verŝajne altiĝos aŭ malrapide pluiĝos
Potenco-malfunkcio. Ĉi tio kaŭzas, ke la aparato dum iom da tempo funkcias laŭ voltage pli malalta ol specifita kiel minimumo por la horloĝfrekvenco uzita. Vidu "Malhelpi EEPROM-Korupton" sur paĝo 19 por detaloj pri kiel eviti problemojn en ĉi tiuj situacioj.
Por malebligi neintencajn EEPROM-verkojn, oni devas sekvi specifan skriban procedon. Konsultu “Atoma Bajta Programado "sur paĝo 17 kaj "Programado de Dividita Bajto" sur paĝo 17 por detaloj pri tio.
Kiam la EEPROM estas legita, la CPU haltas dum kvar horloĝaj cikloj antaŭ ol la sekva instrukcio estas plenumita. Kiam la EEPROM estas skribita, la CPU haltas dum du horloĝaj cikloj antaŭ ol la sekva instrukcio estas plenumita.
Atoma Bita Programado
Uzi Atoman Bajtan Programadon estas la plej simpla reĝimo. Kiam vi skribas bajton al EEPROM, la uzanto devas skribi la adreson en la Registron de EEAR kaj datumojn en Registron de EEDR. Se la EEPMn-bitoj estas nulaj, skribi EEPE (ene de kvar cikloj post kiam EEMPE estas skribita) ekigos la forviŝan / skriban operacion. Kaj la forviŝado kaj skriba ciklo estas faritaj per unu operacio kaj la totala programada tempo ricevas en Tabelo 5-1 sur paĝo 21. La EEPE-bito restas agordita ĝis la forigo kaj skribaj operacioj finiĝas. Dum la aparato okupiĝas pri programado, ne eblas fari aliajn EEPROM-operaciojn.
Programado de Divida Bito
Eblas dividi la forigadon kaj skriban ciklon en du malsamaj operacioj. Ĉi tio povas esti utila se la sistemo postulas mallongan aliran tempon dum iu limigita tempodaŭro (kutime se la elektroprovizo voltagkaj falas). Por antaŭenigi tage de ĉi tiu metodo, necesas, ke la skribotaj lokoj estis forigitaj antaŭ la skriba operacio. Sed ĉar la forviŝaj kaj skribaj operacioj estas dividitaj, eblas fari la forigajn operaciojn kiam la sistemo permesas fari tempokritikajn operaciojn (tipe post funkciigo).
Forigu
Por viŝi bajton, la adreso devas esti skribita al EEAR. Se la EEPMn-bitoj estas 0b01, skribi la EEPE (ene de kvar cikloj post kiam EEMPE estas skribita) ekigos la forigan operacion nur (programtempo estas donita en Tabelo 5-1 plu paĝo 21). La EEPE-bito restas agordita ĝis la forviŝa operacio finiĝas. Dum la aparato estas okupata programado, ne eblas fari iujn ajn aliajn EEPROM-operaciojn.
Skribu
Por skribi lokon, la uzanto devas skribi la adreson en EEAR kaj la datumojn en EEDR. Se la EEPMn-bitoj estas 0b10, skribi la EEPE (ene de kvar cikloj post kiam EEMPE estas skribita) ekigos la skriban operacion nur (programada tempo estas donita en Tabelo 5-1 sur paĝo 21). La EEPE-bito restas agordita ĝis la skriba operacio finiĝas. Se la skribota loko ne estis forigita antaŭ skribado, la datumoj konservitaj devas esti konsiderataj kiel perditaj. Dum la aparato okupiĝas pri programado, ne eblas fari iujn ajn aliajn EEPROM-operaciojn.
La kalibrita oscilo kutimas tempigi la alirojn de EEPROM. Certigu, ke la oscila ofteco estas en la kondiĉoj priskribitaj en "OSCCAL - Registro pri Kalibrado de Oscilo" sur paĝo 31.
La jena kodo ekzampili montras unu aron kaj unu C-funkcion por forviŝi, skribi aŭ atomi skribi de la EEPROM. La eksampili supozas, ke interrompoj estas kontrolataj (ekz. malebligante interrompojn tutmonde) tiel ke neniuj interrompoj okazos dum plenumado de ĉi tiuj funkcioj.
Kuniga Kodo Eksample |
EEPROM_verki:
; Atendu kompletigon de antaŭa skribado sbic EECR,EEPE rjmp EEPROM_skribi ; Agordi reĝimon de Programado ldi r16, (0<<EEPM1)|(0<<EEPM0) el EECR, r16 ; Agordi adreson (r18: r17) en adresoregistro el EEARH, r18 el EEARL, r17 ; Skribu datumojn (r19) al datumregistro el EEDR, r19 ; Skribu logikan al EEMPE sbi EECR,EEMPE ; Komencu eeprom-skribon agordante EEPE sbi EECR,EEPE ret |
C-kodo Eksample |
void EEPROM_write (sensubskribita char ucAddress, nesubskribita char ucData)
{ /* Atendu la kompletigon de la antaŭa skribo */ while(EECR & (1< ; /* Agordu programan reĝimon */ EECR = (0 < / * Agordi adresojn kaj datumajn registrojn * / EEAR = ucAdreso; EEDR = ucData; /* Skribu logikan al EEMPE */ EECR | = (1 < / * Komencu eeprom-skribon agordante EEPE * / EECR | = (1 < } |
La sekva kodo ekzampili montras asembleon kaj C-funkciojn por legi la EEPROM. La eksampili supozas, ke interrompoj estas kontrolitaj tiel ke neniuj interrompoj okazos dum plenumo de ĉi tiuj funkcioj.
Kuniga Kodo Eksample |
EEPROM_legi:
; Atendu kompletigon de antaŭa skribado sbic EECR,EEPE rjmp EEPROM_read ; Agordi adreson (r18: r17) en adresoregistro el EEARH, r18 el EEARL, r17 ; Komencu legi eeprom skribante EERE sbi EECR,EERE ; Legu datumojn de datuma registro en r16,EEDR ret |
C-kodo Eksample |
nesubskribita char EEPROM_read (sensignita char ucAddress)
{ / * Atendu kompletigon de antaŭa skribado * / dum (EECR & (1 < ; / * Agordi adresoregistron * / EEAR = ucAdreso; /* Komencu eepromon legi skribante EERE */ EECR | = (1 < / * Redonu datumojn de datumregistro * / redonu EEDR; } |
Malhelpante EEPROM-Korupton
Dum periodoj de malalta VCC, la EEPROM-datenoj povas esti koruptitaj ĉar la provizovoltage estas tro malalta por ke la CPU kaj la EEPROM funkcias ĝuste. Ĉi tiuj aferoj samas kiel por estraraj sistemoj uzantaj EEPROM, kaj la samaj projektaj solvoj devas esti aplikitaj.
EEPROM-datuma koruptado povas esti kaŭzita de du situacioj kiam la voltage estas tro malalta. Unue, regula skriba sinsekvo al la EEPROM postulas minimuman voltagkaj funkcii ĝuste. Due, la CPU mem povas malĝuste plenumi instrukciojn, se la provizo voltage estas tro malalta.
EEPROM-datuma koruptado facile evitas sekvante ĉi tiun projektan rekomendon:
Konservu la AVR-RESETON aktiva (malalta) dum periodoj de nesufiĉa elektroprovizo voltage. Ĉi tio povas esti farita per ebligo de la interna Bruna Detektilo (BOD). Se la detekta nivelo de la interna BOD ne kongruas kun la
bezonata detektonivelo, ekstera malalta VCC-restarigita protektocirkvito povas esti uzata. Se rekomenciĝo okazas dum skriba operacio estas en progreso, la skriboperacio estos kompletigita kondiĉe ke la nutrado voltage sufiĉas.
Memoro pri I / O
La I / O-spacdifino de la ATtiny25 / 45/85 estas montrita en "Registri Resumon" sur paĝo 200.
Ĉiuj ATtiny25 / 45/85 I / Os kaj flankaparatoj estas metitaj en la I / O-spaco. Ĉiuj I / O-lokoj povas esti aliritaj per la LD / LDS / LDD kaj ST / STS / STD-instrukcioj, transdonante datumojn inter la 32 ĝeneraluzeblaj laboregistroj kaj la I / O-spaco. I / O-Registroj ene de la adresaro 0x00 - 0x1F estas rekte bite alireblaj per la instrukcioj SBI kaj CBI. En ĉi tiuj registroj oni povas kontroli la valoron de unuopaj bitoj per la instrukcioj SBIS kaj SBIC. Vidu la sekcion de instrukciaj aroj por pliaj detaloj. Kiam vi uzas la I / O-specifajn komandojn IN kaj OUT, la I / O-adresoj 0x00 - 0x3F devas esti uzataj. Kiam vi traktas I / O-Registrojn kiel datuman spacon uzante instrukciojn LD kaj ST, 0x20 devas esti aldonita al ĉi tiuj adresoj.
Por kongruo kun estontaj aparatoj, rezervitaj bitoj devas esti skribitaj al nulo se aliritaj. Rezervitaj I / O-memoradresoj neniam estu skribitaj.
Iuj el la Statusaj Flagoj estas malplenigitaj per skribado de logika al ili. Rimarku, ke la instrukcioj pri CBI kaj SBI funkcios nur sur la specifa bito, kaj tial ili povas esti uzataj en registroj enhavantaj tiajn Statusajn Flagojn. La instrukcioj pri CBI kaj SBI funkcias nur per registroj de 0x00 al 0x1F.
La I / O kaj Kontrolaj Registroj estas klarigitaj en postaj sekcioj.
Registro-Priskribo
EEARH - Adresregistro de EEPROM
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1F | – | – | – | – | – | – | – | EEAR8 | EEARH |
Legu/Skribu | R | R | R | R | R | R | R | R/W | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
Bitoj 7: 1 - Rezulto: Rezervitaj Bitoj
Ĉi tiuj bitoj estas rezervitaj por estonta uzo kaj ĉiam legos kiel nulo.
Bitoj 0 - EEAR8: Adreso de EEPROM
Ĉi tiu estas la plej signifa adreso de EEPROM de ATtiny85. En aparatoj kun malpli da EEPROM, te ATtiny25 / ATtiny45, ĉi tiu biteto estas rezervita kaj ĉiam legos nulon. La komenca valoro de la Adresa Registro de EEPROM (EEAR) estas nedifinita kaj taŭga valoro devas esti skribita antaŭ ol la EEPROM estas alirita.
EEARL - Adresregistro de EEPROM
Bit
0x1E | EEAR7 | EEAR6 | EEAR5 | EEAR4 | EEAR3 | EEAR2 | EEAR1 | EEAR0 | EEARLO |
Malantaŭo / Skribo | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Komenca Valoro | X | X | X | X | X | X | X | X |
Peco 7 - EEAR7: Adreso EEPROM
Ĉi tiu estas la plej signifa adreso de EEPROM de ATtiny45. En aparatoj kun malpli EEPROM, te ATtiny25, ĉi tiu biteto estas rezervita kaj ĉiam legos nulon. La komenca valoro de la Adresregistro de EEPROM (EEAR) estas nedifinita kaj taŭga valoro devas esti skribita antaŭ ol la EEPROM estas alirita.
Bitoj 6: 0 - EEAR [6: 0]: Adreso de EEPROM
Ĉi tiuj estas la (malaltaj) pecoj de la Adresregistro de EEPROM. La datumaj bitokoj de EEPROM estas traktataj linie en la rango 0 ... (128/256 / 512-1). La komenca valoro de EEAR estas nedifinita kaj do devas esti skribita taŭga valoro antaŭ ol aliri la EEPROM.
EEDR - EEPROM Data Register
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | EEDR7 | EEDR6 | EEDR5 | EEDR4 | EEDR3 | EEDR2 | EEDR1 | EEDR0 | EEDR |
Legu/Skribu | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Por la EEPROM-skriba operacio la EEDR-Registro enhavas la datumojn skribotajn al la EEPROM en la adreso donita de la EEAR-Registro. Por la legado de EEPROM, la EEDR enhavas la legitajn datumojn de la
EEPROM ĉe la adreso donita de EEAR.
5.5.4 Registro de Kontrolo de EEKR - EEPROM |
|||||||||
Peco 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0x1C – | – | EEPM1 | EEPM0 | ERIE | EEMPE | EEPE | EERE | EECR | |
Legu / Skribu R R R / W | R/W | R/W | R/W | R/W | R/W | ||||
Komenca Valoro 0 0 X | X | 0 | 0 | X | 0 |
Peco 7 - Rez: Rezervita Peco
Ĉi tiu biteto estas rezervita por estonta uzo kaj ĉiam legos kiel 0 en ATtiny25 / 45/85. Por kongruo kun estontaj AVR-aparatoj, ĉiam skribu ĉi tiun biton al nulo. Post legado, masku ĉi tiun iom.
Peco 6 - Rez: Rezervita Peco
Ĉi tiu biteto estas rezervita en la ATtiny25 / 45/85 kaj ĉiam legos kiel nulo.
Bitoj 5: 4 - EEPM [1: 0]: EEPROM Programme Mode Bits
La agordo de programaj reĝimoj de EEPROM difinas, kiun programan agon ekos kiam vi skribos EEPE. Eblas programi datumojn en unu atomoperacio (forviŝi la malnovan valoron kaj programi la novan valoron) aŭ dividi la operaciojn Forigi kaj Skribi en du malsamaj operacioj. La Programaj tempoj por la malsamaj reĝimoj estas montritaj en Tabelo 5-1. Dum EEPE estas agordita, ĉiu skribo al EEPMn estos ignorita. Dum reagordo, la EEPMn-bitoj estos reagorditaj al 0b00 krom se EEPROM okupiĝas pri programado.
Tabelo 5-1. EEPROM Mode Bitoj
EEPM1 | EEPM0 | Programada Tempo | Operacio |
0 | 0 | 3.4 ms | Forigi kaj Skribi en unu operacio (Atoma Operacio) |
0 | 1 | 1.8 ms | Viŝi Nur |
1 | 0 | 1.8 ms | Skribu Nur |
1 | 1 | – | Rezervita por estonta uzo |
Peco 3 - EERIE: EEPROM Ready Interrupt Enable
Skribi EERIE al unu ebligas la EEPROM Ready Interrupt se la I-bito en SREG estas agordita. Skribi EERIE al nulo malfunkciigas la interrompon. La EEPROM-Preta Interrompo generas konstantan interrompon, kiam Ne-volatila memoro estas preta por programado.
Bito 2 - EEMPE: Ebligi Majstran Programon EEPROM
La EEMPE-bito determinas ĉu skribi EEPE al unu efikos aŭ ne.
Kiam EEMPE estas agordita, agordi EEPE ene de kvar horloĝaj cikloj programos la EEPROM ĉe la elektita adreso. Se EEMPE estas nula, agordi EEPE efikas. Kiam EEMPE estis skribita al unu per programaro, aparataro malplenigas la biton al nulo post kvar horloĝaj cikloj.
Peco 1 - EEPE: Ebliga Programo EEPROM
La EEPROM-Programa Ebliga Signalo EEPE estas la programa ebliga signalo al la EEPROM. Kiam EEPE estas skribita, la EEPROM estos programita laŭ la agordo de bitoj EEPMn. La EEMPE-bito devas esti skribita al unu antaŭ ol logika estas skribita al EEPE, alie neniu EEPROM-skribo okazas. Kiam la tempo de skriba aliro pasis, la EEPE-bito estas malplenigita per aparataro. Kiam EEPE estas agordita, la CPU haltas dum du cikloj antaŭ ol la sekva instrukcio estas plenumita.
Bito 0 - EERE: Ebliga Legado de EEPROM
La Lega Ebliga Signalo de EEPROM - EERE - estas la legata stroboskopo al la EEPROM. Kiam la ĝusta adreso estas instalita en la Registro de EEAR, la EERE-biteto devas esti skribita al unu por ekigi la legadon de EEPROM. La legado de EEPROM bezonas unu instrukcion, kaj la petitaj datumoj disponeblas tuj. Kiam la EEPROM estas legita, la CPU haltas dum kvar cikloj antaŭ ol la sekva instrukcio estas plenumita. La uzanto devas enketi la EEPE-biton antaŭ ol komenci la legadan operacion. Se skriba operacio progresas, estas nek eble legi la EEPROM, nek ŝanĝi la Registron de EEAR.
Sistema Horloĝo kaj Horloĝaj Ebloj
Horloĝaj Sistemoj kaj ilia Distribuo
CPU-Horloĝo
La CPU-horloĝo estas direktita al partoj de la sistemo koncernataj pri funkciado de la AVR-kerno. Ekzamptiaj moduloj estas la Ĝeneralcela Registro File, la Statuta Registro kaj la Datuma memoro tenanta la Stakan Montrilon. Ĉesigi la CPU-horloĝon malhelpas la kernon plenumi ĝeneralajn operaciojn kaj kalkulojn.
I / O Clock - clkI / O
La I / O-horloĝo estas uzata de la plimulto de la I / O-moduloj, kiel Timer / Counter. La I / O-horloĝo ankaŭ estas uzata de la Ekstera Interrompa modulo, sed rimarku, ke iuj eksteraj interrompoj estas detektitaj per nesinkrona logiko, permesante tiajn interrompojn esti detektitaj eĉ se la I / O-horloĝo estas haltigita.
Flash Clock - clkFLASH
La Flash-horloĝo regas funkciadon de la Flash-interfaco. La Flash-horloĝo kutime aktivas samtempe kun la CPU-horloĝo.
ADC-Horloĝo - clkADC
La ADC estas provizita per speciala horloĝa regado. Ĉi tio permesas haltigi la CPU- kaj I / O-horloĝojn por redukti bruon generitan de ciferecaj cirkvitoj. Ĉi tio donas pli precizajn ADC-konvertiĝajn rezultojn.
Interna PLL por Rapida Periferia Horloĝa Generacio - clkPCK
La interna PLL en ATtiny25 / 45/85 generas horloĝofrekvencon 8x multobligitan de fonta enigo. Defaŭlte, la PLL uzas la eliron de la interna RC-oscililo de 8.0 MHz kiel fonto. Alternative, se bito LSM de PLLCSR estas agordita, PLL uzos la eliron de la RC-oscililo dividita per du. Tiel la eligo de la PLL, la rapida ekstercentra horloĝo estas 64 MHz. La rapida ekstercentra horloĝo, aŭ horloĝo antaŭkalkulita el tio, povas esti elektita kiel la horloĝa fonto por Timer / Counter1 aŭ kiel sistema horloĝo. Vidu Figuro 6-2. La frekvenco de la rapida periferia horloĝo estas dividita per du kiam LSM de PLLCSR estas metita, rezultigante horloĝfrekvencon de 32 MHz. Notu, ke LSM ne povas esti agordita se PLLCLK estas uzata kiel sistema horloĝo.
Figuro 6-2. PCK Horloĝsistemo.
La PLL estas ŝlosita sur la RC-oscililo kaj ĝustigi la RC-oscililon per OSCCAL-registro ĝustigos la rapidan ekstercentran horloĝon samtempe. Tamen, eĉ se la RC-oscililo estas pli alta ol 8 MHz, la rapida ekstercentra horloĝa ofteco saturas je 85 MHz (plej malbona kazo) kaj restas oscilanta ĉe la maksimuma ofteco. Notindas, ke la PLL ĉi-kaze ne plu estas ŝlosita per la RC-oscila horloĝo. Tial, oni rekomendas ne fari la OSCCAL-ĝustigojn al pli alta ofteco ol 8 MHz por konservi la PLL en la ĝusta operacia gamo.
La interna PLL estas ebligita kiam:
La PLLE-bito en la registro PLLCSR estas agordita.
La CKSEL-fuzeo estas programita al '0001'.
La CKSEL-fuzeo estas programita al '0011'.
La PLLCSR-bit PLOCK estas agordita kiam PLL estas ŝlosita. Kaj interna RC-oscilatoro kaj PLL estas malŝaltitaj en malŝalto kaj stand-by dormreĝimoj.
Interna PLL en ATtiny15-Kongrua Reĝimo
Ĉar ATtiny25 / 45/85 estas migra aparato por uzantoj de ATtiny15 ekzistas ATtiny15-kongrua reĝimo por malantaŭa kongruo. La kongrua reĝimo ATtiny15 estas elektita programante la CKSEL-fuzeojn al '0011'.
En la kongrua reĝimo ATtiny15 la ofteco de la interna RC-oscililo estas kalibrita ĝis 6.4 MHz kaj la multiplika faktoro de la PLL estas agordita al 4x. Vidu Figuro 6-3. Kun ĉi tiuj ĝustigoj la horloĝa sistemo estas ATtiny15-kongrua kaj la rezulta rapida ekstercentra horloĝo havas oftecon de 25.6 MHz (sama kiel en ATtiny15).
Figuro 6-3. PCK-Horloĝsistemo en ATtiny15-Kongrua Reĝimo.
Horloĝaj Fontoj
La aparato havas la jenajn horloĝajn fontajn opciojn, elekteblajn per Flash Fuse-bitoj kiel montrite sube. La horloĝo de la elektita fonto estas enigita al la AVR-horloĝa generatoro, kaj direktita al la taŭgaj moduloj.
Tabelo 6-1. Aparato Horloĝa Opcioj Elektu
Opcio pri Aparata Horloĝo | CKSEL[3:0](1) |
Ekstera Horloĝo (vidu paĝo 26) | 0000 |
Altfrekvenca PLL-Horloĝo (vidu paĝo 26) | 0001 |
Kalibrita Interna Oscilo (vidu paĝo 27) | 0010(2) |
Kalibrita Interna Oscilo (vidu paĝo 27) | 0011(3) |
Interna oscilo de 128 kHz (vidu paĝo 28) | 0100 |
Malaltfrekvenca Kristala Oscilo (vidu paĝo 29) | 0110 |
Kristala Oscilo / Ceramika Resonilo (vidu paĝo 29) | 1000 – 1111 |
Rezervita | 0101, 0111 |
Por ĉiuj fuzeoj "1" signifas neprogramita dum "0" signifas programita.
La aparato estas sendita kun ĉi tiu opcio elektita.
Ĉi tio elektos ATtiny15-Kongruan Reĝimon, kie sistema horloĝo estas dividita per kvar, rezultigante 1.6 MHz-horloĝofrekvencon. Por pli da inormado, vidu "Kalibrita Interna Oscilo" sur paĝo 27.
La diversaj elektoj por ĉiu horloĝa opcio estas donitaj en la sekvaj sekcioj. Kiam la CPU vekiĝas de Malŝalti, la elektita horloĝa fonto kutimas tempigi la ekfunkciigon, certigante stabilan oscilan operacion antaŭ ol instrukcia ekzekuto komenciĝas. Kiam la CPU ekfunkciigas, ekzistas plia prokrasto permesanta al la potenco atingi stabilan nivelon antaŭ ol komenci normalan funkciadon. La Watchdog-Oscilo estas uzata por tempigi ĉi tiun realtempan parton de la komenca tempo. La nombro de WDT-Oscilaj cikloj uzataj por ĉiu paŭzo estas montrita en Tabelo 6-2.
Tabelo 6-2. Nombro de Watchdog Oscillator Cycles
Tipa Tempolimo | Nombro de Cikloj |
4 ms | 512 |
64 ms | 8K (8,192) |
Ekstera Horloĝo
Por stiri la aparaton de ekstera horloĝa fonto, CLKI estu funkciigita kiel montrite en Figuro 6-4. Por funkciigi la aparaton per ekstera horloĝo, la CKSEL-Fuzeoj devas esti programitaj al "00".
Figuro 6-4. Agordo de Ekstera Horloĝa Stirado
Kiam ĉi tiu horloĝa fonto estas elektita, startaj tempoj estas determinitaj per la SUT-Fuzeoj kiel montrite en Tabelo 6-3.
Tabelo 6-3. Komenctempoj por la Ekstera Horloĝa Elekto
SUT[1:0] | Komenca Tempo de Malŝaltado | Plia Malfruo de Restarigo | Rekomendita Uzado |
00 | 6 CK | 14CK | BOD ebligita |
01 | 6 CK | 14CK + 4 ms | Rapide kreskanta potenco |
10 | 6 CK | 14CK + 64 ms | Malrapide kreskanta potenco |
11 | Rezervita |
Kiam vi uzas eksteran horloĝon, necesas eviti subitajn ŝanĝojn en la aplikata horloĝa ofteco por certigi stabilan funkciadon de la MCU. Vario de ofteco de pli ol 2% de unu horloĝa ciklo al la sekva povas konduki al neantaŭvidebla konduto. Necesas certigi, ke la MCU konserviĝas en Restarigo dum tiaj ŝanĝoj en la horloĝa ofteco.
Rimarku, ke la Sistema Horloĝo-Antaŭvendo povas esti uzata por efektivigi rultempajn ŝanĝojn de la interna horloĝa ofteco dum daŭre certigas stabilan funkciadon. Konsultu "Sistema Horloĝa Antaŭkalkulo" sur paĝo 31 por detaloj.
Altfrekvenca PLL-Horloĝo
Ekzistas interna PLL, kiu provizas nominale 64 MHz-horloĝoftecon ŝlositan al la RC Oscililo por la uzo de la Ekstercentra Tempilo / Nombrilo1 kaj por la sistema horloĝa fonto. Se elektita kiel fonta horloĝa fonto, programante la CKSEL-fuzeojn al '0001', ĝi estas dividita per kvar kiel montrite en Tabelo 6-4.
Tabelo 6-4. Altfrekvencaj PLL-Horloĝo-Operaciaj Reĝimoj
CKSEL[3:0] | Nominala Ofteco |
0001 | 16 MHz |
Kiam ĉi tiu horloĝa fonto estas elektita, startaj tempoj estas determinitaj per la SUT-fuzeoj kiel montrite en Tabelo 6-5.
Tabelo 6-5. Komenctempoj por la Altfrekvenca PLL-Horloĝo
SUT[1:0] | Komenca Tempo de Malŝaltiĝo | Plia Prokrasto de Ekfunkciigo Restarigi (VCC = 5.0V) | Rekomendita uzado |
00 | 14CK + 1K (1024) CK + 4 ms | 4 ms | BOD ebligita |
Tabelo 6-5. Komenctempoj por la Altfrekvenca PLL-Horloĝo
SUT[1:0] | Komenca Tempo de Malŝaltiĝo | Plia Prokrasto de Ekfunkciigo Restarigi (VCC = 5.0V) | Rekomendita uzado |
01 | 14CK + 16K (16384) CK + 4 ms | 4 ms | Rapide kreskanta potenco |
10 | 14CK + 1K (1024) CK + 64 ms | 4 ms | Malrapide kreskanta potenco |
11 | 14CK + 16K (16384) CK + 64 ms | 4 ms | Malrapide kreskanta potenco |
Kalibrita Interna Oscilo
Defaŭlte, la Interna RC Oscililo disponigas proksimuman 8.0 MHz-horloĝon. Kvankam voltagDepende de temperaturo kaj temperaturo, ĉi tiu horloĝo povas esti tre precize kalibrita de la uzanto. Vidu "Kalibrita Interna RC-Oscililo Akumulatoro ŝika "sur paĝo 164 kaj "Interna Oscila Rapido" sur paĝo 192 por pliaj detaloj. La aparato estas sendita kun la programita Fuzeo CKDIV8. Vidu "Sistema Horloĝa Antaŭkalkulo" sur paĝo 31 por pliaj detaloj.
Ĉi tiu horloĝo povas esti elektita kiel la sistema horloĝo per programado de la CKSEL-Fuzeoj kiel montrite en Tabelo 6-6 sur paĝo
27. Se elektita, ĝi funkcios sen eksteraj eroj. Dum reagordo, aparataro ŝarĝas la antaŭprogramitan alĝustigan valoron en la OSCCAL-Registro kaj per tio aŭtomate kalibras la RC Oscililon. La precizeco de ĉi tiu kalibrado montriĝas kiel Fabrika alĝustigo en Tabelo 21-2 sur paĝo 164.
Ŝanĝante la OSCCAL-registron de SW, vidu "OSCCAL - Registro pri Kalibrado de Oscilo" sur paĝo 31, eblas akiri pli altan kalibran precizecon ol per uzado de la fabrika kalibrado. La precizeco de ĉi tiu kalibrado montriĝas kiel Uzanta kalibrado en Tabelo 21-2 sur paĝo 164.
Kiam ĉi tiu Oscilo estas uzata kiel blato-horloĝo, la Oscilo de Gardhundo ankoraŭ estos uzata por la Gardhorloĝa Tempigilo kaj por la Restariga Tempolimo. Por pliaj informoj pri la antaŭprogramita alĝustiga valoro, vidu la sekcion "Kali- bration Bytes ”sur paĝo 150.
La interna oscilo ankaŭ povas esti agordita por doni horloĝon de 6.4 MHz skribante CKSEL-fuzeojn al "0011", kiel montrite en Tabelo 6-6 sube. Ĉi tiu agordo estas nomata ATtiny15-Kongrueca Reĝimo kaj celas provizi kalibritan horloĝan fonton ĉe 6.4 MHz, kiel en ATtiny15. En ATtiny15-Kongrua Reĝimo la PLL uzas la internan oscilatoron funkciantan je 6.4 MHz por generi periferian horloĝsignalon de 25.6 MHz por Tempigilo / Nombrilo1 (vidu "8-bita Tempilo / Nombrilo1 en Modo ATtiny15 ”sur paĝo 95). Notu, ke en ĉi tiu operacia reĝimo la horloĝa signalo de 6.4 MHz ĉiam estas dividita per kvar, havigante sisteman horloĝon de 1.6 MHz.
Tabelo 6-6. Internaj Kalibrataj RC-Oscilatoraj Operaciaj Reĝimoj
CKSEL[3:0] | Nominala Ofteco |
0010(1) | 8.0 MHz |
0011(2) | 6.4 MHz |
La aparato estas sendita kun ĉi tiu opcio elektita.
Ĉi tiu agordo elektos ATtiny15-Kongruan Reĝimon, kie sistema horloĝo estas dividita per kvar, rezultigante 1.6 MHz-horloĝofrekvencon.
Kiam la kalibrita 8 MHz-interna oscilatoro estas elektita kiel horloĝa fonto la ekfunkciigoj estas determinitaj per la SUT-Fuzeoj kiel montrite en Tabelo 6-7 malsupre.
Tabelo 6-7. Komenctempoj por Interna Kalibrita RC Oscilatora Horloĝo
SUT[1:0] | Komenca Tempo de Malŝaltado | Plia Prokrasto de Restarigo (VCC = 5.0V) | Rekomendita Uzado |
00 | 6 CK | 14CK(1) | BOD ebligita |
01 | 6 CK | 14CK + 4 ms | Rapide kreskanta potenco |
10(2) | 6 CK | 14CK + 64 ms | Malrapide kreskanta potenco |
11 | Rezervita |
1. Se la fandilo RSTDISBL estas programita, ĉi tiu starttempo pliiĝos al 14CK + 4 ms por certigi programan reĝimon.
2. La aparato estas sendita kun ĉi tiu opcio elektita.
En ATtiny15-Kongrueca Reĝimo-ekfunkciigoj estas determinitaj per SUT-fuzeoj kiel montrite en Tabelo 6-8 malsupre.
Tabelo 6-8. Komenctempoj por Interna Kalibrita RC Oscilatora Horloĝo (en ATtiny15-Reĝimo)
SUT[1:0] | Komenca Tempo de Malŝaltado | Plia Prokrasto de Restarigo (VCC = 5.0V) | Rekomendita Uzado |
00 | 6 CK | 14CK + 64 ms | |
01 | 6 CK | 14CK + 64 ms | |
10 | 6 CK | 14CK + 4 ms | |
11 | 1 CK | 14CK(1) |
Noto: Se la fuzeo RSTDISBL estas programita, ĉi tiu ektempo pliiĝos al 14CK + 4 ms por certigi, ke la programa reĝimo povas esti enigita.
Resume, pli da informoj pri ATtiny15-Kongrua Reĝimo troviĝas en sekcioj "Haveno B (PB5: PB0)" sur paĝo 2, "Interna PLL en ATtiny15-Kongrua Reĝimo" sur paĝo 24, "8-bita Tempigilo / Nombrilo1 en Modo ATtiny15" ŝaltita paĝo 95, "Limigoj de debugWIRE" sur paĝo 140, "Kalibraj Bajtoj" sur paĝo 150 kaj en tablo “Horloĝa Prescaler Elektu ”sur paĝo 33.
Interna oscilo de 128 kHz
La interna Oscilatoro de 128 kHz estas malalta potenca Oscilatoro disponiganta horloĝon de 128 kHz. La frekvenco estas nominala je 3V kaj 25°C. Ĉi tiu horloĝo povas esti elektita kiel la sistema horloĝo programante la CKSEL-Fuziojn al "0100".
Kiam ĉi tiu horloĝa fonto estas elektita, startaj tempoj estas determinitaj per la SUT-Fuzeoj kiel montrite en Tabelo 6-9.
Tabelo 6-9. Komenctempoj por la 128 kHz Interna Oscilatoro
SUT[1:0] | Komenca Tempo de Malŝaltado | Plia Malfruo de Restarigo | Rekomendita Uzado |
00 | 6 CK | 14CK(1) | BOD ebligita |
01 | 6 CK | 14CK + 4 ms | Rapide kreskanta potenco |
10 | 6 CK | 14CK + 64 ms | Malrapide kreskanta potenco |
11 | Rezervita |
Noto: Se la fuzeo RSTDISBL estas programita, ĉi tiu ektempo pliiĝos al 14CK + 4 ms por certigi, ke la programa reĝimo povas esti enigita.
Malaltfrekvenca Kristala Oscilo
Por uzi 32.768 kHz-horloĝan kristalon kiel horloĝan fonton por la aparato, la Malaltfrekvenca Kristala Oscilo devas esti elektita per agordo de CKSEL-fuzeoj al '0110'. La kristalo devas esti konektita kiel montrite en Figuro 6-5. Por trovi taŭgan ŝarĝan kapaciton por 32.768 kHz-krizo, bonvolu konsulti la datumfolion de la fabrikanto.
Kiam ĉi tiu oscilo estas elektita, startaj tempoj estas determinitaj per la SUT-fuzeoj kiel montrite en Tabelo 6-10.
Tabelo 6-10. Komencaj Tempoj por la Elekto de Horloĝo de Malaltfrekvenca Kristala Oscilatoro
SUT[1:0] | Komenca Tempo de Malŝaltiĝo | Plia Prokrasto de Restarigo (VCC = 5.0V) | Rekomendita uzado |
00 | 1K (1024) CK(1) | 4 ms | Rapida kreskanta potenco aŭ BOD ebligita |
01 | 1K (1024) CK(1) | 64 ms | Malrapide kreskanta potenco |
10 | 32K (32768) CK | 64 ms | Stabila ofteco ĉe ekfunkciigo |
11 | Rezervita |
Noto: Ĉi tiuj opcioj devas esti uzataj nur se frekvencstabileco ĉe ekfunkciigo ne gravas.
La Malaltfrekvenca Kristala Oscilo provizas internan ŝarĝan kapaciton, vidu Tabelo 6-11 ĉe ĉiu TOSC-pinglo.
Tablo 6-11. Kapacitanco de Malaltfrekvenca Kristala Oscilatoro
Aparato | 32 kHz Osc. Tajpu | Ĉapo (Xtal1 / Tosc1) | Ĉapo (Xtal2 / Tosc2) |
ATtiny25 / 45/85 | Sistemo Osk. | 16 pF | 6 pF |
Kristala Oscilo / Ceramika Resonilo
XTAL1 kaj XTAL2 estas enigo kaj eligo respektive de inversigilo amppli viva, kiu povas esti agordita por uzi kiel On-blatan Oscililon, kiel montrite en Figuro 6-5. Aŭ kvarka kristalo aŭ ceramika resonilo povas esti uzataj.
C1 kaj C2 ĉiam devus esti egalaj por kaj kristaloj kaj resonatoroj. La optimuma valoro de la kondensiloj dependas de la kristalo aŭ resonator en uzo, la kvanto de devaga kapacitanco, kaj la elektromagneta bruo de la medio. Kelkaj komencaj gvidlinioj por elektado de kondensiloj por uzo kun kristaloj ricevas Tabelo 6-12 sube. Por ceramikaj resoniloj, la kondensaj valoroj donitaj de la fabrikanto devas esti uzataj.
Tablo 6-12. Operaciaj Reĝimoj de Kristala Oscilatoro
CKSEL[3:1] | Frekvenca Gamo (MHz) | Rekomendita Gamo por Kondensiloj C1 kaj C2 por Uzo kun Kristaloj (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 |
Notoj: Ĉi tiu opcio ne devus esti uzata kun kristaloj, nur kun ceramikaj resonatoroj.
La Oscilo povas funkcii per tri malsamaj reĝimoj, ĉiu optimumigita por specifa frekvenca gamo. La funkcia reĝimo estas elektita per la fuzeoj CKSEL [3: 1] kiel montrite en Tabelo 6-12.
La CKSEL0-Fuzeo kune kun la SUT [1: 0] Fuzeoj elektas la komencajn tempojn kiel montrite en Tabelo 6-13.
Tablo 6-13. Komencaj Tempoj por la Elekto de Horloĝo de Kristala Oscilatoro
CKSEL0 | SUT[1:0] | Komenca Tempo de Malŝaltado | Plia Malfruo de Restarigo | Rekomendita Uzado |
0 | 00 | 258 CK(1) | 14CK + 4 ms | Ceramika resonilo, rapide kreskanta potenco |
0 | 01 | 258 CK(1) | 14CK + 64 ms | Ceramika resonilo, malrapide kreskanta potenco |
0 | 10 | 1K (1024) CK(2) | 14CK | Ceramika resonilo, BOD ebligita |
0 | 11 | 1K (1024) CK(2) | 14CK + 4 ms | Ceramika resonilo, rapide kreskanta potenco |
1 | 00 | 1K (1024) CK(2) | 14CK + 64 ms | Ceramika resonilo, malrapide kreskanta potenco |
1 | 01 | 16K (16384) CK | 14CK | Kristala Oscilo, BOD ebligita |
1 | 10 | 16K (16384) CK | 14CK + 4 ms | Kristala Oscilo, rapide kreskanta potenco |
1 | 11 | 16K (16384) CK | 14CK + 64 ms | Kristala Oscilo, malrapide kreskanta potenco |
Notoj
Ĉi tiuj opcioj devas esti uzataj nur kiam ili ne funkcias proksime al la maksimuma ofteco de la aparato, kaj nur se frekvenca stabileco ĉe ekfunkciigo ne gravas por la aplikaĵo. Ĉi tiuj ebloj ne taŭgas por kristaloj.
Ĉi tiuj ebloj estas uzataj kun ceramikaj resoniloj kaj certigos frekvencan stabilecon ĉe ekfunkciigo. Ili ankaŭ povas esti uzataj kun kristaloj kiam ili ne funkcias proksime al la maksimuma ofteco de la aparato, kaj se frekvenca stabileco ĉe ekfunkciigo ne gravas por la apliko.
Defaŭlta Horloĝa Fonto
La aparato estas sendita kun CKSEL = "0010", SUT = "10", kaj CKDIV8 programita. La defaŭlta horloĝa fonta agordo do estas la Interna RC Oscililo funkcianta je 8 MHz kun plej longa starttempo kaj komenca sistema horloĝo antaŭkalkulanta 8, rezultigante 1.0 MHz-sistemhorloĝon. Ĉi tiu apriora agordo certigas, ke ĉiuj uzantoj povas fari sian deziratan horloĝan fontan agordon per En-Sistemo aŭ Alt-voltage Programisto.
Sistema Horloĝo-Antaŭkalkulo
La sistema horloĝo ATtiny25 / 45/85 povas esti dividita per agordo de "CLKPR - Registro pri Horloĝa Antaŭskalo" sur paĝo 32. Ĉi tiu funkcio povas esti uzata por malpliigi elektrokonsumon kiam la postulo por pretiga potenco estas malalta. Ĉi tio povas esti uzata kun ĉiuj horloĝfontaj opcioj, kaj ĝi influos la horloĝfrekvencon de la CPU kaj ĉiuj sinkronaj ekstercentraj. clkI/O, clkADC, clkCPU, kaj clkFLASH estas dividitaj per faktoro kiel montrite en Tabelo 6-15 sur paĝo 33.
Ŝanĝanta Tempon
Kiam vi ŝanĝas inter preskalkulaj agordoj, la Sistema Horloĝ-Antaŭkalkulo certigas, ke neniuj problemetoj okazas en la horloĝa sistemo kaj ke neniu meza ofteco estas pli alta ol nek la horloĝa ofteco responda al la antaŭa agordo, nek la horloĝa ofteco responda al la nova agordo.
La onduma sumigilo, kiu efektivigas la preskalkulon, funkcias laŭ la ofteco de la nedividita horloĝo, kiu eble estas pli rapida ol la horloĝa ofteco de la CPU. Sekve, ne eblas determini la staton de la preskalkulilo - eĉ se ĝi estus legebla, kaj la ĝusta tempo, kiun necesas ŝanĝi de unu horloĝa divido al alia, ne povas esti ĝuste antaŭvidita.
De kiam la valoroj de CLKPS estas skribitaj, ĝi bezonas inter T1 + T2 kaj T1 + 2 * T2 antaŭ ol la nova horloĝa ofteco aktivas. En ĉi tiu intervalo, 2 aktivaj horloĝaj randoj estas produktitaj. Ĉi tie, T1 estas la antaŭa horloĝa periodo, kaj T2 estas la periodo responda al la nova preskalkula agordo.
Horloĝa Eliga Bufro
La aparato povas eligi la sisteman horloĝon sur la CLKO-pinglo (kiam ne uzata kiel XTAL2-pinglo). Por ebligi la eliron, la CKOUT-Fuzeo devas esti programita. Ĉi tiu reĝimo taŭgas kiam la blata horloĝo estas uzata por stiri aliajn cirkvitojn sur la sistemo. Notu, ke la horloĝo ne eliros dum reagordo kaj ke la normala funkciado de la I / O-pinglo estos anstataŭigita kiam la fuzeo estas programita. Interna RC-Oscililo, WDT-Oscililo, PLL kaj ekstera horloĝo (CLKI) povas esti elektitaj kiam la horloĝo estas eligita per CLKO. Kristalaj oscililoj (XTAL1, XTAL2) ne uzeblas por horloĝa eligo ĉe CLKO. Se la Sistema Horloĝo-Antaŭkalkulo estas uzata, ĝi estas la dividita sistemo-horloĝo.
Registro-Priskribo
OSCCAL - Registro pri Kalibrado de Oscilo
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | OSKALA |
Legu/Skribu | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Bitoj 7: 0 - CAL [7: 0]: Oscila Kalibrada Valoro
La Oscila Kalibrada Registro estas uzata por eltondi la Kalibritan Internan RC-Oscililon por forigi procezajn variaĵojn de la oscila ofteco. Antaŭprogramita alĝustigvaloro estas aŭtomate skribita al ĉi tiu registro dum blato rekomencigita, donante al la Fabriko kalibritan frekvencon kiel specifite en Tabelo 21-2 sur paĝo 164. La programaro povas skribi ĉi tiun registron por ŝanĝi la oscilan oftecon. La oscilo povas esti laŭnormigita al frekvencoj kiel specifite en Tabelo 21-2 sur paĝo 164. Kalibrado ekster tiu intervalo ne estas garantiita.
Notu, ke ĉi tiu oscililo estas uzata por tempigi alirojn de skribado EEPROM kaj Flash, kaj ĉi tiuj skribotempoj estos influitaj laŭe. Se la EEPROM aŭ Flash estas skribitaj, ne kalibru al pli ol 8.8 MHz. Alie, la EEPROM aŭ Flash-skribado eble malsukcesos.
La CAL7-bito determinas la gamon de operacio por la oscilo. Agordi ĉi tiun biton al 0 donas la plej malaltan frekvencan gamon, agordi ĉi tiun biton al 1 donas la plej altan frekvencan gamon. La du frekvencaj gamoj interkovras, alivorte agordo de OSCCAL = 0x7F donas pli altan oftecon ol OSCCAL = 0x80.
La CAL [6: 0] bitoj estas uzataj por agordi la oftecon ene de la elektita gamo. Agordo de 0x00 donas la plej malaltan oftecon en tiu gamo, kaj agordo de 0x7F donas la plej altan oftecon en la gamo.
Por certigi stabilan funkciadon de la MCU la alĝustigvaloro devas esti ŝanĝita en malgranda. Vario de ofteco de pli ol 2% de unu ciklo al la sekva povas konduki al neantaŭvidebla konduto. Ŝanĝoj en OSCCAL ne devas superi 0x20 por ĉiu alĝustigo. Estas necese certigi, ke la MCU konserviĝas en Restarigo dum tiaj ŝanĝoj en la horloĝa ofteco
Tabelo 6-14. Interna RC Oscilatoro Frekvenca Gamo
OSCCAL-Valoro | Tipa Plej Malalta Ofteco Rilate Nominan Oftecon | Tipa Plej Alta Ofteco Rilate Nominan Oftecon |
0x00 | 50% | 100% |
0x3F | 75% | 150% |
0x7F | 100% | 200% |
CLKPR - Registro pri Horloĝa Antaŭskalo
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x26 | CLKPCE | – | – | – | CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | CLKPR |
Legu/Skribu | R/W | R | R | R | R/W | R/W | R/W | R/W |
Komenca Valoro 0 0 0 0 Vidu Bita Priskribo
Peco 7 - CLKPCE: Ebligi Ŝanĝon de Horloĝa Antaŭkalkulo
La CLKPCE-bito devas esti skribita al logiko por ebligi ŝanĝon de la CLKPS-bitoj. La CLKPCE-bito estas ĝisdatigita nur kiam la aliaj bitoj en CLKPR estas samtempe skribitaj al nulo. CLKPCE estas malplenigita per aparataro kvar ciklojn post kiam ĝi estas skribita aŭ kiam la CLKPS-bitoj estas skribitaj. Reskribi la CLKPCE-biton ene de ĉi tiu paŭzo ne plilongigas la paŭzon, nek malplenigas la CLKPCE-biton.
Bitoj 6: 4 - Rezulto: Rezervitaj Bitoj
Ĉi tiuj bitoj estas rezervitaj bitoj en la ATtiny25 / 45/85 kaj ĉiam legos kiel nulo.
Bitoj 3: 0 - CLKPS [3: 0]: Elektilaj Prescaler-Elektitaj Bitoj 3 - 0
Ĉi tiuj bitoj difinas la dividan faktoron inter la elektita horloĝa fonto kaj la interna sistema horloĝo. Ĉi tiuj bitoj povas esti skribitaj rultempaj por variigi la horloĝofrekvencon por konveni la postulojn. Ĉar la dividanto dividas la ĉefan horloĝenigaĵon al la MCU, la rapideco de ĉiuj sinkronaj flankaparatoj estas reduktita kiam dividadfaktoro estas uzita. La dividaj faktoroj estas donitaj en Tabelo 6-15.
Por eviti neintencajn ŝanĝojn de horloĝofrekvenco, speciala skriba procedo devas esti sekvata por ŝanĝi la CLKPS-bitojn:
Skribu la biton Clock Prescaler Change Enable (CLKPCE) al unu kaj ĉiuj aliaj bitoj en CLKPR al nulo.
En kvar cikloj, skribu la deziratan valoron al CLKPS skribante nulon al CLKPCE.
Interrompoj devas esti malebligitaj kiam vi ŝanĝas preskalkulan agordon por certigi, ke la skriba proceduro ne estas interrompita.
La CKDIV8 Fuze determinas la komencan valoron de la CLKPS-pecoj. Se CKDIV8 estas neprogramita, la CLKPS-bitoj estos rekomencigitaj al "0000". Se CKDIV8 estas programita, CLKPS-bitoj estas rekomencigitaj al "0011", donante dividadfaktoron de ok ĉe ekfunkciigo. Ĉi tiu funkcio devas esti uzata se la elektita horloĝfonto havas pli altan frekvencon ol la maksimuma frekvenco de la aparato en la nunaj funkciaj kondiĉoj. Notu ke ajna valoro povas esti skribita al la CLKPS-bitoj sendepende de la CKDIV8 Fuse-agordo. La Aplika programaro devas certigi, ke sufiĉa divida faktoro estas
elektita se la elektita horloĝa fonto havas pli altan oftecon ol la maksimuma ofteco de la aparato ĉe la nunaj funkciadaj kondiĉoj. La aparato estas sendita kun la programita Fuzeo CKDIV8.
Tablo 6-15. Horloĝo Prescaler Elektu
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | Horloĝa Divida Faktoro |
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 | Rezervita |
1 | 0 | 1 | 0 | Rezervita |
1 | 0 | 1 | 1 | Rezervita |
1 | 1 | 0 | 0 | Rezervita |
1 | 1 | 0 | 1 | Rezervita |
1 | 1 | 1 | 0 | Rezervita |
1 | 1 | 1 | 1 | Rezervita |
Notu: La antaŭskalilo estas malŝaltita en ATtiny15-kongrua reĝimo kaj nek skribado al CLKPR, nek programado de la CKDIV8-fuzeo havas ajnan efikon al la sistema horloĝo (kiu ĉiam estos 1.6 MHz).
Potenca Administrado kaj Dormaj Modoj
La alta efikeco kaj industrio gvida kodo-efikeco faras la AVR-mikroregilojn ideala elekto por malaltaj potencaj aplikoj. Krome dormaj reĝimoj ebligas al la aplikaĵo fermi neuzatajn modulojn en la MCU, tiel ŝparante potencon. La AVR provizas diversajn dormajn reĝimojn, kiuj permesas al la uzanto adapti la elektrokonsumon al la postuloj de la aplikaĵo.
Dormaj Modoj
Figuro 6-1 sur paĝo 23 prezentas la malsamajn horloĝajn sistemojn kaj ilian distribuadon en ATtiny25 / 45/85. La figuro helpas elekti taŭgan dorman reĝimon. Tabelo 7-1 montras la malsamajn dormajn reĝimojn kaj iliajn vekajn fontojn.
Tabelo 7-1. Aktivaj Horloĝaj Domajnoj kaj Vekiĝaj Fontoj en la Malsamaj Dormaj Reĝimoj
Aktivaj Horloĝaj Domajnoj | Oscilatoroj | Vekaj Fontoj | ||||||||||
Dorma Reĝimo | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | Ĉefa Horloĝa Fonto Ebligita | INT0 kaj Pin Change | SPM / EEPROM
Preta |
USI-Komenca Kondiĉo |
ADC | Aliaj I/O | Gardhundo Interrompi |
Senlabore | X | X | X | X | X | X | X | X | X | X | ||
ADC-Brua Redukto | X | X | X(1) | X | X | X | X | |||||
Potenco-malfunkcio | X(1) | X | X |
Notu: Por INT0, nur nivelinterrompo.
Por eniri iun ajn el la tri dormaj reĝimoj, la SE-bito en MCUCR devas esti skribita al logiko unu kaj instrukcio SLEEP devas esti ekzekutita. La SM [1: 0] bitoj en la MCUCR-Registro elektas, kiu dorma reĝimo (Senaktiva, ADC-Brua Redukto aŭ Malŝalti) estos aktivigita per la instruo SLEEP. Vidu Tabelo 7-2 por resumo.
Se ebligita interrompo okazas dum la MCU estas en dorma reĝimo, la MCU vekiĝas. La MCU estas haltigita por kvar cikloj aldone al la starttempo, plenumas la interrompan rutinon kaj rekomencas ekzekuton de la instrukcio sekvanta DORMI. La enhavo de la Registro File kaj SRAM estas senŝanĝaj kiam la aparato vekiĝas el dormo. Se reagordo okazas dum dorma reĝimo, la MCU vekiĝas kaj efektivigas de la Restariga Vektoro.
Notu: ke se nivelo ekigita interrompo estas uzita por vekiĝo la ŝanĝita nivelo devas esti tenita por iom da tempo por veki la MCU (kaj por la MCU por eniri la interrompan servorutinon). Vidu "Eksteraj interrompoj" sur paĝo 49 por detaloj.
Senaktiva reĝimo
Kiam la SM[1:0] bitoj estas skribitaj al 00, la SLEEP-instrukcio igas la MCU eniri Idle-reĝimon, maldaŭrigante la CPU sed permesante al Analog Comparator, ADC, USI, Timer/Counter, Watchdog, kaj la interrompa sistemo daŭrigi funkciadon. manĝante. Ĉi tiu dormreĝimo esence haltigas clkCPU kaj clkFLASH, permesante al la aliaj horloĝoj funkcii.
Senaktiva reĝimo ebligas al MCU vekiĝi de eksteraj ekigitaj interrompoj same kiel internaj kiel la Tempa Superfluaĵo. Se vekiĝo de la interrompa analoga komparilo ne necesas, la Analoga komparilo povas esti malŝaltita enmetante la ACD-biton en "ACSR - Registro pri Regula kaj Regula Analoga Komparilo" sur paĝo 120. Ĉi tio reduktos elektrokonsumon en malaktiva reĝimo. Se la ADC estas ebligita, konvertiĝo komenciĝas aŭtomate kiam ĉi tiu reĝimo estas enmetita.
ADC-Brua Redukta Reĝimo
Kiam la SM [1:0] bitoj estas skribitaj al 01, la SLEEP-instrukcio igas la MCU eniri ADC Noise Reduction-reĝimon, maldaŭrigante la CPU sed permesante la ADC, la eksterajn interrompojn, kaj la Gardhundo daŭri funkcii (se ebligite). Ĉi tiu dormreĝimo haltigas clkI/O, clkCPU kaj clkFLASH, permesante al la aliaj horloĝoj funkcii.
Ĉi tio plibonigas la bruan medion por la ADC, ebligante mezuradojn de pli alta distingivo. Se la ADC estas ebligita, konvertiĝo komenciĝas aŭtomate kiam ĉi tiu reĝimo estas enmetita. Krom la ADC-Konverta Kompleta interrompo, nur Ekstera Restarigo, Gardhunda Restarigo, Bruna Restarigo, SPM / EEPROM-preta interrompo, ekstera nivela interrompo ĉe INT0 aŭ pingla ŝanĝinterrompo povas veki la MCU de ADC-Brua Redukto. reĝimo.
Malŝalti Reĝimon
Kiam la SM [1: 0] bitoj estas skribitaj al 10, la SLEEP-instrukcio igas la MCU eniri Malŝalti reĝimon. En ĉi tiu reĝimo, la Oscilo estas haltigita, dum la eksteraj interrompoj, la USI-komenca kondiĉo-detekto kaj la Gardhundo daŭre funkcias (se ebligita). Nur Ekstera Restarigo, Gardhundo-Restarigo, Bruna Restarigo, USI-starta kondiĉo-interrompo, ekstera nivela interrompo ĉe INT0 aŭ pingla ŝanĝinterrompo povas veki la MCU. Ĉi tiu dorma reĝimo haltigas ĉiujn generitajn horloĝojn, permesante nur funkciadon de nesinkronaj moduloj.
Programaro BOD Malebligu
Kiam la Brown-out-Detektilo (BOD) estas ebligita per fandiloj BODLEVEL (vidu Tabelo 20-4 sur paĝo 148), la BOD aktive kontrolas la provizon voltage dum dorma periodo. En iuj aparatoj eblas ŝpari energion malŝaltante la BOD per programaro en dorma reĝimo. La dorma reĝimo elektrokonsumo tiam estos sur la sama nivelo kiel kiam BOD estas tutmonde malfunkciigita per fuzeoj.
Se BOD estas malŝaltita de programaro, la funkcio BOD estas malŝaltita tuj post eniro de la dormreĝimo. Post vekiĝo de dormo, BOD estas aŭtomate denove ebligita. Ĉi tio certigas sekuran funkciadon se la VCC-nivelo malaltiĝis dum la dorma periodo.
Kiam la BOD estas malŝaltita, la veka tempo de dorma reĝimo estos la sama kiel tiu por vekiĝi de REARMETO. La uzanto devas permane agordi la vekiĝajn tempojn tiel, ke la referenco de bandgap havas tempon por komenci kaj la BOD funkcias ĝuste antaŭ ol la MCU daŭre plenumas kodon. Vidu fuzopecojn en tabelo SUT [1: 0] kaj CKSEL [3: 0] "Fuse Low Byte" sur paĝo 149
BOD-malfunkciigo estas kontrolita per la BODS (BOD Sleep) -peco de MCU Control Register, vidu “MCUCR - MCU-Kontrolo Registri ”sur paĝo 37. Skribi ĉi tiun biton al unu malŝaltas BOD en Malŝaltado, dum skribado de nulo tenas la BOD aktiva. La apriora agordo estas nulo, te BOD aktiva.
Skribo al la BODS-bito estas kontrolita per tempigita sinsekvo kaj ebliga bito, vidu “MCUCR - Registaro pri Kontrolo de MCU- ter ”sur paĝo 37.
Limigoj
BOD-malfunkciiga funkcio estis efektivigita nur en la sekvaj aparatoj:
ATtiny25, revizio E, kaj pli nova
ATtiny45, revizio D, kaj pli nova
ATtiny85, revizio C, kaj pli nova
Revizioj estas markitaj sur la aparata pako kaj troveblas jene:
Malsupra flanko de pakoj 8P3 kaj 8S2
Supra flanko de pako 20M1
Registro pri Potenca Redukto
La Registro pri Potenca Redukto (PRR), vidu "PRR - Registro pri Potenca Redukto" sur paĝo 38, provizas metodon por redukti elektrokonsumon haltigante la horloĝon al unuopaj flankaparatoj. La nuna stato de la ekstercentra estas frostigita kaj la I / O-registroj ne legeblas aŭ skribiĝas. Rimedoj uzataj de la ekstercentra por haltigi la horloĝon restos okupataj, tial la ekstercentra plej ofte devas esti malŝaltita antaŭ ol haltigi la horloĝon. Veki modulon, kiu estas farata per malplenigo de la bito en PRR, metas la modulon en la saman staton kiel antaŭ ol malŝalti.
Modula ĉesigo povas esti uzata en senaktiva reĝimo kaj aktiva reĝimo por signife redukti la ĝeneralan elektrokonsumon. En ĉiuj aliaj modoj de dormo, la horloĝo jam haltas. Vidu "Proviza Fluo de I / O-moduloj" sur paĝo 177 por ekzamples.
Minimumiga Potenca Konsumo
Estas pluraj problemoj konsiderindaj kiam vi provas minimumigi la elektrokonsumon en AVR-kontrolita sistemo. Ĝenerale, dormaj reĝimoj devas esti uzataj kiel eble plej multe, kaj la dorma reĝimo devas esti elektita tiel ke kiel eble plej malmultaj el la funkcioj de la aparato funkcias. Ĉiuj ne bezonataj funkcioj devas esti malebligitaj. Aparte, la sekvaj moduloj eble bezonas specialan konsideron kiam oni provas atingi la plej malaltan eblan elektrokonsumon.
Analoga al Cifereca Konvertilo
Se ebligita, la ADC estos ebligita en ĉiuj dormaj reĝimoj. Por ŝpari energion, la ADC devas esti malŝaltita antaŭ ol eniri iun dorman reĝimon. Kiam la ADC malŝaltas kaj reŝaltiĝas, la sekva konvertiĝo estos plilongigita konvertiĝo. Konsultu "Analoga al Cifereca Konvertilo" sur paĝo 122 por detaloj pri ADC-funkciado.
Analoga Komparilo
Enirante Senaktivan reĝimon, la Analoga Komparilo devas esti malŝaltita se ne uzata. Kiam vi eniras reĝimon de ADC-Brua Redukto, la Analoga Komparilo devas esti malŝaltita. En la aliaj dormaj reĝimoj, la Analoga Komparilo estas aŭtomate malŝaltita. Tamen, se la Analoga Komparilo estas agordita por uzi la Internan Voltage Referenco kiel enigaĵo, la Analoga Komparilo devas esti malebligita en ĉiuj dormaj reĝimoj. Alie, la Interna Voltage Referenco estos ebligita, sendepende de dorma reĝimo. Konsultu "Analoga Komparilo" sur paĝo 119 por detaloj pri kiel agordi la Analogan Komparilon.
Brown-out Detektilo
Se la Brown-out-Detektilo ne necesas en la aplikaĵo, ĉi tiu modulo devas esti malŝaltita. Se la Brown-out-Detektilo estas ebligita de la Fuzeoj BODLEVEL, ĝi estos ebligita en ĉiuj dormaj reĝimoj, kaj do ĉiam konsumos potencon. En la pli profundaj dormaj reĝimoj, tio kontribuos signife al la totala aktuala konsumo. Vidu "Brown-out Detek- tion ”sur paĝo 41 kaj "Programaro BOD Malŝalti" sur paĝo 35 por detaloj pri kiel agordi la Brown-out-Detektilon.
Interna Voltage Referenco
La Interna Voltage Referenco estos ebligita kiam bezonata de la Bruna Detekto, la Analoga Komparilo aŭ la ADC. Se ĉi tiuj moduloj estas malebligitaj kiel priskribite en la supraj sekcioj, la interna voltagLa referenco estos malŝaltita kaj ĝi ne konsumos potencon. Kiam oni enŝaltas ĝin denove, la uzanto devas permesi la referencon ekfunkciigi antaŭ ol la eligo estas uzata. Se la referenco estas konservita en dorma reĝimo, la eligo povas esti uzata tuj. Konsultu “Interna Voltage Referenco ”sur paĝo 42 por detaloj pri la komenca tempo.
Gardhundo Tempigilo
Se la Gardhorloĝtempilo ne necesas en la aplikaĵo, ĉi tiu modulo devas esti malŝaltita. Se la Gardohundo-Tempigilo estas ebligita, ĝi estos ebligita en ĉiuj dormaj reĝimoj, kaj tial ĉiam konsumos potencon. En la pli profundaj dormaj reĝimoj, tio kontribuos signife al la totala aktuala konsumo. Konsultu "Gardhorloĝtempilo" sur paĝo 42 por detaloj pri kiel agordi la Gardhorloĝtempilon.
Havenaj Stiftoj
Kiam vi eniras dormreĝimon, ĉiuj havenaj pingloj devas esti agorditaj por uzi minimuman potencon. La plej grava afero estas tiam certigi, ke neniuj pingloj veturas rezistajn ŝarĝojn. En dormreĝimoj kie kaj la I/O-horloĝo (clkI/O) kaj la ADC-horloĝo (clkADC) estas maldaŭrigitaj, la enirbufroj de la aparato estos malŝaltitaj. Ĉi tio certigas, ke neniu potenco estas konsumita
per la eniga logiko kiam ne bezonata. En iuj kazoj, la eniga logiko necesas por detekti vekajn kondiĉojn, kaj
ĝi tiam estos ebligita. Konsultu la sekcion "Cifereca Eniga Ebligo kaj Dormaj Modoj" sur paĝo 57 por detaloj pri kiuj pingloj estas ebligitaj. Se la eniga bufro estas ebligita kaj la eniga signalo estas lasita flosanta aŭ havas analogan signalnivelon proksime al VCC/2, la eniga bufro uzos troan potencon.
Por analogaj enigstiftoj, la cifereca eniga bufro devas esti malŝaltita ĉiam. Analoga signalnivelo proksima al VCC/2 sur eniga stifto povas kaŭzi signifan fluon eĉ en aktiva reĝimo. Ciferecaj enigbufroj povas esti malŝaltitaj skribante al la Digital Input Disable Register (DIDR0). Vidu al "DIDR0 - Cifereca Eniga Malebliga Registro 0" sur paĝo 121 por detaloj.
Registro-Priskribo
MCUCR - Registriĝo de MCU
La MCU-Registro enhavas kontrolpecojn por elektra administrado.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Legu/Skribu | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Peco 7 - BODOJ: BODa Dormo
BOD-malfunkciiga funkcio disponeblas nur en iuj aparatoj. Vidu "Limigoj" sur paĝo 36.
Por malebligi BOD dum dormo (vidu Tabelo 7-1 sur paĝo 34) la BODS-bito devas esti skribita al logiko unu. Ĉi tio estas kontrolita per tempigita sinsekvo kaj la ebliga bito, BODSE en MCUCR. Unue, ambaŭ BODS kaj BODSE devas esti agorditaj al unu. Due, ene de kvar horloĝaj cikloj, BODS devas esti agordita al unu kaj BODSE devas esti agordita al nulo. La BODS-bito aktivas tri horloĝciklojn post kiam ĝi estas agordita. Dorma instrukcio devas esti plenumita dum BODS estas aktiva por malŝalti la BOD por la efektiva dorma reĝimo. La BODS-bito aŭtomate malpleniĝas post tri horloĝaj cikloj.
En aparatoj, kie Sleeping BOD ne estis efektivigita, ĉi tiu bito estas neuzata kaj ĉiam legos nulon.
Peco 5 - SE: Dormi Ebligi
La SE-bito devas esti skribita al logiko unu por igi la MCU eniri la dormreĝimon kiam la SLEEP-instrukcio estas efektivigita. Por eviti ke la MCU eniru la dormreĝimon krom se ĝi estas la celo de la programisto, estas rekomendite skribi la Sleep Enable (SE) biton al unu ĵus antaŭ la ekzekuto de la SLEEP-instrukcio kaj malbari ĝin tuj post vekiĝo.
Bitoj 4: 3 - SM [1: 0]: Dorma reĝimo Elektu Bitojn 1 kaj 0
Ĉi tiuj bitoj elektas inter la tri disponeblaj dormaj reĝimoj kiel montrite en Tabelo 7-2.
Tabelo 7-2. Elektu Dorman Reĝimon
SM1 | SM0 | Dorma Reĝimo |
0 | 0 | Senlabore |
0 | 1 | ADC-Brua Redukto |
1 | 0 | Potenco-malfunkcio |
1 | 1 | Rezervita |
Peco 2 - BODSE: BOD Sleep Enable
BOD-malfunkciiga funkcio disponeblas nur en iuj aparatoj. Vidu "Limigoj" sur paĝo 36.
La BODSE-bito ebligas agordon de BODS-kontrolbito, kiel klarigite en BODS-bita priskribo. BOD-malfunkciigo estas regata per tempigita sinsekvo.
Ĉi tiu bito estas neuzata en aparatoj, kie programaro BOD-malfunkciigo ne estis efektivigita kaj legos kiel nulo en tiuj aparatoj.
PRR - Registro pri Potenca Redukto
La Registro pri Potenca Redukto provizas metodon por redukti elektrokonsumon, permesante malŝalti periferiajn horloĝajn signalojn.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRTIM1 | PRTIM0 | PRUSI | PRADC | PRR |
Legu/Skribu | R | R | R | R | R/W | R/W | R/W | R/W | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitoj 7: 4 - Rezulto: Rezervitaj Bitoj
Ĉi tiuj bitoj estas rezervitaj bitoj en la ATtiny25 / 45/85 kaj ĉiam legos kiel nulo.
Peco 3 - PRTIM1: Potenca Redukta Tempilo / Nombrilo1
Skribi logikon al ĉi tiu iom malŝaltas la modulon Timer / Counter1. Kiam la Tempigilo / Nombrilo1 estas ebligita, funkciado daŭros same kiel antaŭ la haltigo.
Peco 2 - PRTIM0: Potenca Redukta Tempilo / Nombrilo0
Skribi logikon al ĉi tiu iom malŝaltas la modulon Timer / Counter0. Kiam la Tempigilo / Nombrilo0 estas ebligita, funkciado daŭros same kiel antaŭ la haltigo.
Peco 1 - PRUSI: Potenca Redukto USI
Skribi logikon al ĉi tiu iom malŝaltas la USI haltigante la horloĝon al la modulo. Kiam vi vekas la USI denove, la USI devas esti komencita por certigi taŭgan funkciadon.
Bito 0 - PRADC: Potenca Redukto ADC
Skribi logikon al ĉi tiu iom malŝaltas la ADC. La ADC devas esti malebligita antaŭ ol fermi. Notu, ke la ADC-horloĝo ankaŭ estas uzata de iuj partoj de la analoga komparilo, kio signifas, ke la analoga komparilo ne povas esti uzata kiam ĉi tiu bito estas alta.
Sistema Kontrolo kaj Restarigo
Restarigi la AVR
Dum reagordo, ĉiuj I / O-Registroj estas agorditaj al siaj komencaj valoroj, kaj la programo komencas plenumadon de la Reset-Verkilo. La instrukcio metita ĉe la Restariga Vektoro devas esti RJMP - Relativa Saltado - instrukcio al la rekomenciga pritrakta rutino. Se la programo neniam ebligas interrompan fonton, la Interrompaj Vektoroj ne estas uzataj, kaj regula programo-kodo povas esti metita ĉe ĉi tiuj lokoj. La cirkvitodiagramo en Figuro 8-1 montras la reagordan logikon. Elektraj parametroj de la reagordita cirkvito aperas "Sistemo kaj Restarigo de Karakterizaĵoj" sur paĝo 165.
Figuro 8-1 Restarigi Logiko
La I / O-havenoj de la AVR tuj estas reagorditaj al sia komenca stato kiam reagordita fonto ekaktivas. Ĉi tio ne bezonas, ke iu horloĝa fonto ruliĝu.
Post kiam ĉiuj reagordaj fontoj malaktivis, prokrastilo estas alvokita, etendante la internan reagordadon. Ĉi tio permesas al la potenco atingi stabilan nivelon antaŭ ol komenciĝas normala funkciado. La tempodaŭro de la malfrua kalkulilo estas difinita de la uzanto per la Fuzeoj SUT kaj CKSEL. La malsamaj elektoj por la malfrua periodo estas prezentitaj en “Horloĝo Fontoj ”sur paĝo 25.
Restarigi Fontojn
La ATtiny25 / 45/85 havas kvar fontojn de reagordo:
Enŝalti Reset. La MCU estas rekomencigita kiam la provizo voltage estas sub la sojlo de rekomencigita potenco (VPOT).
Ekstera Restarigo. La MCU estas rekomencigita kiam malalta nivelo ĉeestas sur la RESET-pinglo pli longe ol la minimuma pulslongo.
Restarigo de Gardhundo. La MCU estas reagordita kiam la Gardotempa Tempotempo eksvalidiĝas kaj la Gardohundo estas ebligita.
Bruna Restarigo. La MCU estas rekomencigita kiam la provizo voltage VCC estas sub la Brown-out Reset-sojlo (VBOT) kaj la Brown-out Detektilo estas ebligita.
Enŝalti Reset
Pulsado de Power-on Reset (POR) estas generita per sur-blata detekta cirkvito. La detekta nivelo estas difinita en "Sys- tem kaj Restarigi Karakterizaĵojn "sur paĝo 165. La POR estas aktivigita kiam ajn VCC estas sub la detektonivelo. La POR-cirkvito povas esti uzita por ekigi la Ekfunkciigo-Restarigon, same kiel por detekti fiaskon en provizovoltage.
Cirkvito de Enŝaltado (POR) certigas, ke la aparato estas rekomencigita de Enŝaltado. Atingante la enŝaltan sojlan volontage alvokas la prokrastan nombrilon, kiu determinas kiom longe la aparato estas konservita en RESET post VCC-pliiĝo. La signalo RESET estas aktivigita denove, sen ia prokrasto, kiam VCC malpliiĝas sub la detektonivelo.
Figuro 8-2. MCU Ekfunkciigo, RESET Ligita al VCC
INTERNA RESETIKO
Figuro 8-3. MCU Ekfunkciigo, RESET Etendita Ekstere
Ekstera Reset
Ekstera Restarigo estas generita de malalta nivelo sur la RESET-pinglo se ĝi estas ebligita. Rekomenci pulsojn pli longajn ol la minimuma puls-larĝo (vidu "Sistemo kaj Restarigo de Karakterizaĵoj" sur paĝo 165) generos reagordon, eĉ se la horloĝo ne funkcias. Pli mallongaj pulsoj ne garantias generi reagordon. Kiam la aplikita signalo atingas la Restarigi Sojlon Voltage - VRST - sur ĝia pozitiva rando, la prokrasta nombrilo startas la MCU post kiam la Tempo-eksperiodo eksvalidiĝis.
Figuro 8-4. Ekstera Restarigi Dum Operacio
Bruna Eltrovo
ATtiny25/45/85 havas Sur-blatan Brown-out Detection (BOD) cirkviton por monitori la VCC-nivelon dum operacio komparante ĝin kun fiksa ellasilnivelo. La ellasilnivelo por la BOD povas esti elektita per la BODLEVEL Fuzeoj. La ellasilnivelo havas histerezon por certigi senpikan Detekton de Bruna ekstera. La histerezo sur la detekta nivelo devus esti interpretita kiel VBOT+ = VBOT + VHYST/2 kaj VBOT- = VBOT – VHYST/2.
Kiam la BOD estas ebligita, kaj VCC malpliiĝas al valoro sub la ellasilnivelo (VBOT-in Figuro 8-5), la Brown-out Reset tuj estas aktivigita. Kiam VCC pliiĝas super la ellasilnivelo (VBOT+ en Figuro 8-5), la prokrasta nombrilo startas la MCU post kiam la Tempperiodo tTOUT eksvalidiĝis.
La BOD-cirkvito nur detektos falon en VCC se la voltage restas sub la ellasilnivelo dum pli longa ol tBOD donita "Sistemo kaj Restarigo de Karakterizaĵoj" sur paĝo 165.
Restarigo de Gardhundo
Kiam la Gardhundo elĉerpas, ĝi generos mallongan rekomencigitan pulson de unu CK-ciklodaŭro. Sur la falanta rando de ĉi tiu pulso, la prokrasta tempigilo komencas kalkuli la Tempperiodon tTOUT. Riferu al "Gardhorloĝtempilo" sur paĝo 42 por detaloj pri funkciado de la Gardohundo-Tempigilo.
Voltage Referenco Ebligu Signalojn kaj Startan Tempon
La voltagLa referenco havas komencan tempon, kiu povas influi la manieron uzi ĝin. La komenca tempo estas donita en "Sistemo kaj Restarigo de Karakterizaĵoj" sur paĝo 165. Por ŝpari energion, la referenco ne ĉiam estas ŝaltita. La referenco daŭras dum la sekvaj situacioj:
Kiam la BOD estas ebligita (programante la BODLEVEL [2: 0] Fuse Bits).
Kiam la bandgap-referenco estas konektita al la Analoga Komparilo (agordante la ACBG-biton en ACSR).
Kiam la ADC estas ebligita.
Tiel, kiam la BOD ne estas ebligita, post agordi la ACBG-biton aŭ ebligi la ADC, la uzanto devas ĉiam permesi la referencon ekfunkciigi antaŭ ol la eliro de la Analoga Komparilo aŭ ADC estas uzata. Por redukti elektrokonsumon en malŝaltita reĝimo, la uzanto povas eviti la tri suprajn kondiĉojn por certigi, ke la referenco estas malŝaltita antaŭ ol eniri malŝaltita reĝimo.
Gardhundo Tempigilo
La Gardhundo-Tempigilo estas horloĝata de On-blata Oscililo, kiu funkcias je 128 kHz. Per kontrolado de la preskalkulilo de la Gardhorloĝo, la intervalo de Restarigo de Gardhundo povas esti ĝustigita kiel montrite en Tabelo 8-3 sur paĝo 46. La WDR - Restoracio de Gardhundo - instrukcio rekomencigas la Gardhorloĝtempilon. La Gardhorloĝtempilo ankaŭ reagordiĝas kiam ĝi estas malebligita kaj kiam Chip-Restarigo okazas. Dek malsamaj horloĝaj ciklaj periodoj povas esti elektitaj por determini la rekomencigitan periodon. Se la restariga periodo eksvalidiĝos sen alia Gardogarda Restarigo, la ATtiny25 / 45/85 restarigas kaj efektivigas de la Restariga Vektoro. Por tempaj detaloj pri la Restarigo de Gardhundo, vidu Tabelo 8-3 sur paĝo 46.
La Gardohundo-Tempigilo ankaŭ povas esti agordita por generi interrompon anstataŭ reagordi. Ĉi tio povas esti tre helpema kiam vi uzas la Gardhundon por vekiĝi de Malŝaltado.
Por malebligi neintencan malfunkciigon de la Gardhundo aŭ neintencitan tempoperiodon, du malsamaj sekurecaj niveloj estas elektitaj per la fuzeo WDTON kiel montrite en Tabelo 8-1 Riferu al "Tempaj Sekvencoj por Ŝanĝi la Kon- figurado de la Gardohundo-Timigilo ”sur paĝo 43 por detaloj.
Tabelo 8-1. WDT-Agordo kiel Funkcio de la Fuzeaj Agordoj de WDTON
WDTON | Sekureca Nivelo | WDT-Komenca ŝtato | Kiel Malŝalti la WDT | Kiel Ŝanĝi Tempolimon |
Senprograma | 1 | Malebligita | Tempigita sinsekvo | Neniuj limoj |
Programita | 2 | Ebligita | Ĉiam ebligita | Tempigita sinsekvo |
Figuro 8-7. Gardhundo Tempigilo
Tempaj Sekvencoj por Ŝanĝi la Agordon de la Gardhorloĝtempilo
La sinsekvo por ŝanĝi agordon iomete diferencas inter la du sekurecaj niveloj. Apartaj proceduroj estas priskribitaj por ĉiu nivelo.
Sekureca Nivelo 1: En ĉi tiu reĝimo, la Watchdog Timer estas komence malŝaltita, sed povas esti ebligita skribante la WDE-biton al unu sen iu ajn limigo. Tempigita sekvenco estas necesa kiam malŝaltas ebligitan Watchdog Timer. Por malŝalti ebligitan Watchdog Timer, la sekva proceduro devas esti sekvita:
En la sama operacio, skribu logikon al WDCE kaj WDE. Logiko devas esti skribita al WDE sendepende de la antaŭa valoro de la WDE-bito.
En la sekvaj kvar horloĝaj cikloj, en la sama operacio, skribu la WDE kaj WDP-bitojn laŭplaĉe, sed kun la WDCE-bito malplenigita.
Sekureca Nivelo 2: En ĉi tiu reĝimo, la Watchdog Timer ĉiam estas ebligita, kaj la WDE-bito ĉiam legos kiel unu. Tempigita sekvenco estas necesa dum ŝanĝado de la Gardhundo-Tempoperiodo. Por ŝanĝi la Gardhundo-tempon, oni devas sekvi la jenan proceduron:
En la sama operacio, skribu logikan al WDCE kaj WDE. Kvankam la WDE ĉiam estas agordita, la WDE devas esti skribita al unu por komenci la tempan sinsekvon.
En la sekvaj kvar horloĝaj cikloj, en la sama operacio, skribu la WDP-bitojn laŭplaĉe, sed kun la WDCE-bito malplenigita. La valoro skribita al la WDE-bito estas senrilata.
Kodo Ekzample
La jena kodo ekzample montras unu muntadon kaj unu C-funkcion por malŝalti la WDT. La eksample supozas, ke interrompoj estas kontrolataj (ekz. per malebligado de interrompoj tutmonde) tiel ke neniuj interrompoj okazos dum plenumado de ĉi tiuj funkcioj.
Kuniga Kodo Eksample(1) |
WDT_off:
wdr ; Klara WDRF en MCUSR ldi r16, (0< el MCUSR, r16 ; Skribu logikan al WDCE kaj WDE ; Konservu malnovan preskalkulilon por malebligi neintencitan Gardhundon Restarigi en r16, WDTCR ori r16, (1< el WDTCR, r16 ; Malŝalti WDT ldi r16, (0< el WDTCR, r16 ret |
C-kodo Eksample(1) |
malplena WDT_off(malplenigite)
{ _WDR (); /* Forigi WDRF en MCUSR */ MCUSR = 0x00 /* Skribu logikan al WDCE kaj WDE */ WDTCR |= (1< / * Malŝalti WDT * / WDTCR = 0x00; } |
Noto: 1. Vidu “Kodo Ekzamples ”sur paĝo 6.
Registro-Priskribo
MCUSR - Statista Registro de MCU
La MCU-Statista Registro provizas informojn pri kiu reagordita fonto kaŭzis Restarigon de MCU.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | BORF | EXTRF | PORF | MCUSR |
Legu/Skribu | R | R | R | R | R/W | R/W | R/W | R/W |
Komenca Valoro 0 0 0 0 Vidu Bita Priskribo
Bitoj 7: 4 - Rezulto: Rezervitaj Bitoj
Ĉi tiuj bitoj estas rezervitaj bitoj en la ATtiny25 / 45/85 kaj ĉiam legos kiel nulo.
Peco 3 - WDRF: Flago de Restarigo de Gardhundo
Ĉi tiu bito estas agordita se Restarado de Gardhundo okazas. La bito estas rekomencigita per funkciiga reagordo, aŭ skribante logikan nulon al la flago.
Peco 2 - BORF: Bruna Restariga Flago
Ĉi tiu bito estas agordita se okazas Bruna Restarigo. La bito estas rekomencigita per funkciiga reagordo, aŭ skribante logikan nulon al la flago.
Peco 1 - EXTRF: Ekstera Restariga Flago
Ĉi tiu bito estas agordita se Ekstera Restarigo okazas. La bito estas rekomencigita per funkciiga reagordo, aŭ skribante logikan nulon al la flago.
Bit 0 - PORF: Enŝalti Rekomencan Flagon
Ĉi tiu bito estas agordita se okazas funkciiga restarigo. La bito restarigas nur skribante logikan nulon al la flago.
Por uzi la Restarigi Flagojn por identigi reagordan kondiĉon, la uzanto devas legi kaj poste reagordi la MCUSR kiel eble plej frue en la programo. Se la registro estas malplenigita antaŭ ol alia reagordo okazas, la fonto de la reagordo troveblas ekzamenante la Rekomencajn Flagojn.
WDTCR - Registro pri Kontrolilo de Gardhorloĝo
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x21 | WDIF | WDIE | WDP3 | WDCE | WDE | WDP2 | WDP1 | WDP0 | WDTCR |
Legu/Skribu | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Komenca Valoro | 0 | 0 | 0 | 0 | X | 0 | 0 | 0 |
Peco 7 - WDIF: Gardhunda Tempolimo Interrompa Flago
Ĉi tiu bito estas agordita kiam paŭzo okazas en la Gardhorloĝa Tempigilo kaj la Gardhorloĝa Tempigilo estas agordita por interrompado. WDIF estas malplenigita per aparataro dum ekzekuto de la responda interrompa uzado-vektoro. Alternative, WDIF estas malplenigita skribante logikon al la flago. Kiam la I-bito en SREG kaj WDIE estas agordita, la Gardotempa Interrompo estas plenumita.
Peco 6 - WDIE: Atentiga Interrompa Ebligo de Gardanto
Kiam ĉi tiu bito estas skribita al unu, WDE estas malplenigita, kaj la I-bito en la Registro de Stato estas agordita, la Gardotempa Interrompo estas ebligita. En ĉi tiu reĝimo la ekvivalenta interrompo estas efektivigita anstataŭ reagordi se okazas paŭzo en la Gardotempa Tempigilo.
Se WDE estas agordita, WDIE estas aŭtomate malplenigita de aparataro kiam tempo-paŭzo okazas. Ĉi tio utilas por konservi la sekurecon de Restariga Gardanto dum uzado de la interrompo. Post kiam la WDIE-bito estas malplenigita, la sekva paŭzo generos reaguston. Por eviti la Restarigon de Gardhundo, WDIE devas esti agordita post ĉiu interrompo.
Tabelo 8-2. Watchdog Timer-Agordo
WDE | WDIE | Gardhorloĝtempa Ŝtato | Ago pri Tempolimo |
0 | 0 | Haltis | Neniu |
0 | 1 | Kurante | Interrompi |
1 | 0 | Kurante | Restarigi |
1 | 1 | Kurante | Interrompi |
Peco 4 - WDCE: Gardohundo Ŝanĝu Ebligi
Ĉi tiu bito devas esti agordita kiam la WDE-bito estas skribita al logika nulo. Alie, la Gardhundo ne estos malebligita. Post kiam skribita al unu, aparataro malplenigos ĉi tiun biton post kvar horloĝaj cikloj. Konsultu la priskribon de la WDE-bito por malaktiva proceduro de Gardhundo. Ĉi tiu biteto ankaŭ devas esti agordita kiam vi ŝanĝas la preskalkulajn bitojn. Vidu “Tempigitaj Sekvencoj por Ŝanĝi la Agordon de la Gardohundo-Tempilo "sur paĝo 43.
Peco 3 - WDE: Gardohundo Ebligu
Kiam la WDE estas skribita al logiko unu, la Gardotempa Tempigilo estas ebligita, kaj se la WDE estas skribita al logika nulo, la funkcio Gardotempa Tempigilo estas malebligita. WDE povas esti malplenigita nur se la WDCE-bito havas logikan nivelon unu. Por malŝalti ebligitan Gardhorloĝtempilon, la sekva procedo devas esti sekvata:
En la sama operacio, skribu logikon al WDCE kaj WDE. Logiko devas esti skribita al WDE kvankam ĝi estas agordita al unu antaŭ ol la malfunkciiga operacio komenciĝas.
En la sekvaj kvar horloĝaj cikloj, skribu logikon 0 al WDE. Ĉi tio malebligas la Gardhundon.
En sekureca nivelo 2, ne eblas malŝalti la Gardhorloĝan Tempigilon, eĉ kun la algoritmo supre priskribita. Vidu "Tempaj Sekvencoj por Ŝanĝi la Agordon de la Gardhorloĝa Tempigilo" en paĝo 43.
En sekureca nivelo 1, WDE estas superregata de WDRF en MCUSR. Vidu "MCUSR - MCU Status Register" sur paĝo 44 por priskribo de WDRF. Ĉi tio signifas, ke WDE ĉiam estas agordita kiam WDRF estas agordita. Por malplenigi WDE, WDRF devas esti malplenigita antaŭ ol malŝalti la Gardhundon per la proceduro priskribita supre. Ĉi tiu funkcio certigas multnombrajn reagordojn dum kondiĉoj kaŭzantaj malsukceson, kaj sekuran ekfunkciigon post la fiasko.
Noto: Se la gardohundo-tempigilo ne estos uzata en la aplikaĵo, gravas trapasi proceduron de gardohundo malŝaltita en la inicialigo de la aparato. Se la Gardhundo estas hazarde ebligita, ekzampper senbrida montrilo aŭ bruna stato, la aparato estos rekomencigita, kio siavice kondukos al nova gardohundo. Por eviti ĉi tiun situacion, la aplika programaro ĉiam malplenigu la WDRF-flagon kaj la WDE-kontrolan biton en la komenca rutino.
Bitoj 5, 2: 0 - WDP [3: 0]: Gardohundo Timer Prescaler 3, 2, 1 kaj 0
La WDP [3: 0] bitoj determinas la Gardhorloĝan Tempigilon antaŭkalkulante kiam la Gardohundo-Tempilo estas ebligita. La malsamaj preskalkulaj valoroj kaj iliaj respondaj Tempolimoj estas montritaj en Tabelo 8-3.
Tabelo 8-3. Watchdog Timer Antaŭskalo Elektu
WDP3 | WDP2 | WDP1 | WDP0 | Nombro de cikloj de oscilatoroj WDT | Tipa Tempo-eksteriĝo ĉe VCC = 5.0V |
0 | 0 | 0 | 0 | 2K (2048) cikloj | 16 ms |
0 | 0 | 0 | 1 | 4K (4096) cikloj | 32 ms |
0 | 0 | 1 | 0 | 8K (8192) cikloj | 64 ms |
0 | 0 | 1 | 1 | 16K (16384) cikloj | 0.125 s |
0 | 1 | 0 | 0 | 32K (32764) cikloj | 0.25 s |
0 | 1 | 0 | 1 | 64K (65536) cikloj | 0.5 s |
0 | 1 | 1 | 0 | 128K (131072) cikloj | 1.0 s |
0 | 1 | 1 | 1 | 256K (262144) cikloj | 2.0 s |
1 | 0 | 0 | 0 | 512K (524288) cikloj | 4.0 s |
1 | 0 | 0 | 1 | 1024K (1048576) cikloj | 8.0 s |
Tabelo 8-3. Watchdog Timer Antaŭskala Elekto (Daŭrigo)
WDP3 | WDP2 | WDP1 | WDP0 | Nombro de cikloj de oscilatoroj WDT | Tipa Tempo-eksteriĝo ĉe VCC = 5.0V |
1 | 0 | 1 | 0 | Rezervita(1) | |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 |
Noto: 1. Se elektita, unu el la validaj agordoj sub 0b1010 estos uzata.
Interrompoj
Ĉi tiu sekcio priskribas la specifojn de la interrompa traktado kiel farite en ATtiny25 / 45/85. Por ĝenerala klarigo de la AVR-interrompmanipulado, vidu "Restarigi kaj Interrompi Manipuladon" sur paĝo 12.
Interrompi Vektorojn en ATtiny25 / 45/85
La interrompaj vektoroj de ATtiny25 / 45/85 estas priskribitaj en Tabelo 9-1malsupre.
Tabelo 9-1. Restarigi kaj Interrompi Vektorojn
Vektora Ne. | Programa Adreso | Fonto | Interrompi Difinon |
1 | 0x0000 | RESET | Ekstera Pinglo, Enŝaltita Restarigo, Bruna Restarigo, Gardhundo-Restarigo |
2 | 0x0001 | INT0 | Ekstera interrompopeto 0 |
3 | 0x0002 | PCINT0 | Pingla Ŝanĝa Interrompa Peto 0 |
4 | 0x0003 | TIMER1_COMPA | Tempigilo / Nombrilo1 Komparu Matĉon A |
5 | 0x0004 | TIMER1_OVF | Timer / Counter1 Overflow |
6 | 0x0005 | TIMER0_OVF | Timer / Counter0 Overflow |
7 | 0x0006 | EE_RDY | EEPROM Preta |
8 | 0x0007 | ANA_COMP | Analoga Komparilo |
9 | 0x0008 | ADC | ADC-Konvertiĝo Kompleta |
10 | 0x0009 | TIMER1_COMPB | Tempigilo / Nombrilo1 Komparu Matĉon B |
11 | 0x000A | TIMER0_COMPA | Tempigilo / Nombrilo0 Komparu Matĉon A |
12 | 0x000B | TIMER0_COMPB | Tempigilo / Nombrilo0 Komparu Matĉon B |
13 | 0x000C | WDT | Gardotempa Tempolimo |
14 | 0x000D | USI_START | USI KOMENCO |
15 | 0x000E | USI_OVF | USI-Superfluaĵo |
Se la programo neniam ebligas interrompan fonton, la Interrompaj Vektoroj ne estas uzataj, kaj regula programo-kodo povas esti metita ĉe ĉi tiuj lokoj.
Tipa kaj ĝenerala aranĝo por interrompaj vektoraj adresoj en ATtiny25 / 45/85 estas montrita en la programo ekzample sube.
Kuniga Kodo Eksample | ||
.org 0x0000 | ; Agordi adreson de sekva | deklaro |
rjmp RESET | ; Adreso 0x0000 | |
rjmp INT0_ISR | ; Adreso 0x0001 | |
rjmp PCINT0_ISR | ; Adreso 0x0002 | |
rjmp TIM1_COMPA_ISR | ; Adreso 0x0003 | |
rjmp TIM1_OVF_ISR | ; Adreso 0x0004 | |
rjmp TIM0_OVF_ISR | ; Adreso 0x0005 | |
rjmp EE_RDY_ISR | ; Adreso 0x0006 | |
rjmp ANA_COMP_ISR | ; Adreso 0x0007 | |
rjmp ADC_ISR | ; Adreso 0x0008 | |
rjmp TIM1_COMPB_ISR | ; Adreso 0x0009 | |
rjmp TIM0_COMPA_ISR | ; Adreso 0x000A | |
rjmp TIM0_COMPB_ISR | ; Adreso 0x000B | |
rjmp WDT_ISR | ; Adreso 0x000C | |
rjmp USI_START_ISR | ; Adreso 0x000D | |
rjmp USI_OVF_ISR | ; Adreso 0x000E | |
RESETAJ: | ; Ĉefa programo komenciĝas | |
; Adreso 0x000F | ||
… |
Notu: Vidu “Kodo Ekzamples ”sur paĝo 6.
Eksteraj Interrompoj
La Eksteraj Interrompoj estas ekigitaj per la INT0-pinglo aŭ iu ajn el la PCINT [5: 0] pingloj. Atentu, ke, se ebligite, la interrompoj ekiĝos eĉ se la pingloj INT0 aŭ PCINT [5: 0] estas agorditaj kiel eliroj. Ĉi tiu funkcio provizas manieron generi programan interrompon. Pingla ŝanĝo interrompas PCI ekfunkciigos se iu ebligita PCINT [5: 0] pinglo ŝaltas. La PCMSK-Registro kontrolas, kiujn pingloj kontribuas al la pingloŝanĝaj interrompoj. Pingloŝanĝaj interrompoj ĉe PCINT [5: 0] estas detektitaj nesinkrone. Ĉi tio implicas, ke ĉi tiuj interrompoj povas esti uzataj por veki la parton ankaŭ de dormaj reĝimoj krom senaktiva reĝimo.
La INT0-interrompoj povas esti ekigitaj per falanta aŭ altiĝanta rando aŭ malalta nivelo. Ĉi tio estas agordita kiel indikite en la specifo por la MCU-Registro - MCUCR. Kiam la INT0-interrompo estas ebligita kaj estas agordita kiel nivelo ekigita, la interrompo ekfunkcios tiel longe kiel la pinglo estas tenita malalta. Notu, ke rekono de falanta aŭ kreskanta rando interrompas ĉe INT0 postulas la ĉeeston de I / O-horloĝo, priskribita en "Horloĝaj Sistemoj kaj ilia Distribuo" plu paĝo 23.
Malalta Nivela Interrompo
Malalta nivela interrompo ĉe INT0 estas detektita nesinkrone. Ĉi tio implicas, ke ĉi tiu interrompo povas esti uzata por veki la parton ankaŭ de dormaj reĝimoj krom senaktiva reĝimo. La I / O-horloĝo haltas en ĉiuj dormaj reĝimoj krom senaktiva reĝimo.
Notu ke se nivelo ekigita interrompo estas uzita por vekiĝo de Potenco-malsupren, la postulata nivelo devas esti tenita sufiĉe longe por la MCU por kompletigi la vekiĝon por ekigi la nivelinterrompon. Se la nivelo malaperas antaŭ la fino de la Komenca Tempo, la MCU ankoraŭ vekiĝos, sed neniu interrompo estos generita. La ektempo estas difinita per la SUT kaj CKSEL Fuzeoj kiel priskribite en "Sistema Horloĝo kaj Horloĝaj Agordoj" sur paĝo 23.
Se la malalta nivelo sur la interrompa pinglo estas forigita antaŭ ol la aparato vekiĝis, tiam programo-ekzekuto ne estos deturnita al la interrompa servo-rutino, sed daŭros de la instrukcio sekvanta la komandon SLEEP.
Pingla Ŝanĝa Interrompa Tempo
Eksample de tempigo de pingla ŝanĝinterrompo estas montrita en Figuro 9-1.
Registro-Priskribo
MCUCR - Registriĝo de MCU
La Ekstera Interrompokontrola Registro A enhavas regpecojn por interromposigna kontrolo.
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Legu/Skribu | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitoj 1: 0 - ISC0 [1: 0]: Interrompa Senca Kontrolo 0 Bit 1 kaj Bit 0
La Ekstera Interrompo 0 estas aktivigita per la ekstera pinglo INT0 se la SREG I-flago kaj la responda interrompmasko estas agorditaj. La nivelo kaj randoj sur la ekstera INT0-pinglo, kiuj aktivigas la interrompon, estas difinitaj en Tabelo 9-2. La valoro sur la INT0-pinglo estas sampkondukis antaŭ ol detekti randojn. Se rando aŭ ŝaltilinterrompo estas elektitaj, pulsoj kiuj daŭras pli ol unu horloĝperiodo generos interrompon. Pli mallongaj pulsoj ne garantias generi interrompon. Se malalta nivela interrompo estas elektita, la malalta nivelo devas esti tenata ĝis la fino de la nun ekzekutanta instrukcio por generi interrompon.
Tabelo 9-2. Interrompo 0 Senta Kontrolo
ISC01 | ISC00 | Priskribo |
0 | 0 | La malalta nivelo de INT0 generas interrompan peton. |
0 | 1 | Ĉiu logika ŝanĝo ĉe INT0 generas interrompan peton. |
1 | 0 | La falanta rando de INT0 generas interrompan peton. |
1 | 1 | La kreskanta rando de INT0 generas interrompan peton. |
GIMSK - Registro pri Ĝenerala Interrompa Masko
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | INT0 | PCIe | – | – | – | – | – | GIMSK |
Legu/Skribu | R | R/W | R/W | R | R | R | R | R | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitoj 7, 4: 0 - Rezulto: Rezervitaj Bitoj
Ĉi tiuj bitoj estas rezervitaj bitoj en la ATtiny25 / 45/85 kaj ĉiam legos kiel nulo.
Peco 6 - INT0: Ekstera Interrompa Peto 0 Ebligu
Kiam la INT0-bito estas agordita (unu) kaj la I-bito en la Registra Stato (SREG) estas agordita (unu), la ekstera pingla interrompo estas ebligita. La Interrupt Sense Sense Control0 bitoj 1/0 (ISC01 kaj ISC00) en la MCU-Registro (MCUCR) difinas ĉu la ekstera interrompo estas aktivigita al altiĝanta kaj / aŭ falanta rando de la INT0-pinglo aŭ nivelo sentita. Agado sur la pinglo kaŭzos interrompopeton eĉ se INT0 estas agordita kiel eligo. La responda interrompo de Ekstera Interrompa Peto 0 estas efektivigita de la INT0-Interrompa Vektoro.
Peco 5 - PCIE: Pingla Ŝanĝa Interrompa Ebligo
Kiam la PCIE-bito estas agordita (unu) kaj la I-bito en la Registro de Stato (SREG) estas agordita (unu), pingla ŝanĝinterrompo estas ebligita. Ĉiu ŝanĝo sur iu ebligita PCINT [5: 0] pinglo kaŭzos interrompon. La responda interrompo de Pingla Interrompa Peto estas efektivigita de la Interreta Vektoro PCI. PCINT [5: 0] pingloj estas ebligitaj individue per la PCMSK0-Registro.
GIFR - Ĝenerala Registro pri Interrompa Flago
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3A | – | INTF0 | PCIF | – | – | – | – | – | GIFR |
Legu/Skribu | R | R/W | R/W | R | R | R | R | R | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitoj 7, 4: 0 - Rezulto: Rezervitaj Bitoj
Ĉi tiuj bitoj estas rezervitaj bitoj en la ATtiny25 / 45/85 kaj ĉiam legos kiel nulo.
Peco 6 - INTF0: Ekstera Interrompa Flago 0
Kiam rando aŭ logika ŝanĝo sur la INT0-pinglo ekigas interrompopeton, INTF0 fariĝas aro (unu). Se la I-bito en SREG kaj la INT0-bito en GIMSK estas agorditaj (unu), la MCU saltos al la responda Interrompa Vektoro. La flago estas malplenigita kiam la interromprutino estas efektivigita. Alternative, la flago povas esti malplenigita per skribado de logika al ĝi. Ĉi tiu flago estas ĉiam malplenigita kiam INT0 estas agordita kiel nivela interrompo.
Peco 5 - PCIF: Stifta Ŝanĝa Interrompa Flago
Kiam logika ŝanĝo sur iu PCINT [5: 0] pinglo ekigas interrompopeton, PCIF fariĝas aro (unu). Se la I-bito en SREG kaj la PCIE-bito en GIMSK estas agorditaj (unu), la MCU saltos al la responda Interrompa Vektoro. La flago estas malplenigita kiam la interromprutino estas efektivigita. Alternative, la flago povas esti malplenigita per skribado de logika al ĝi.
PCMSK - Registro pri Maskoj pri Ŝanĝo de Stifto
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | PCMSK |
Legu/Skribu | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitoj 7: 6 - Rezulto: Rezervitaj Bitoj
Ĉi tiuj bitoj estas rezervitaj bitoj en la ATtiny25 / 45/85 kaj ĉiam legos kiel nulo.
Bitoj 5: 0 - PCINT [5: 0]: Pingla Ŝanĝo Ebligi Maskon 5: 0
Ĉiu PCINT [5: 0] bito elektas ĉu interŝanĝo de pingloŝaltilo estas ebligita sur la responda pinglo de E / S. Se PCINT [5: 0] estas agordita kaj la PCIE-bito en GIMSK estas agordita, interŝanĝo de pingloŝanĝo estas ebligita sur la responda pinglo de E / S. Se PCINT [5: 0] estas malplenigita, interŝanĝo de pingla ŝanĝo sur la responda pinglo de E / S estas malŝaltita.
I/O Havenoj
Enkonduko
Ĉiuj AVR-havenoj havas veran Read-Modify-Write-funkciecon kiam uzataj kiel ĝeneralaj ciferecaj I / O-havenoj. Ĉi tio signifas, ke la direkto de unu porda pinglo povas esti ŝanĝita sen pretervole ŝanĝi la direkton de iu ajn alia pinglo per la instrukcioj SBI kaj CBI. La samo validas dum ŝanĝado de veturila valoro (se agordita kiel eligo) aŭ ebligado / malfunkciigo de streĉaj rezistiloj (se agordita kiel enigo). Ĉiu eliga bufro havas simetriajn veturajn trajtojn kun alta lavujo kaj fonto. La pingloŝoforo estas sufiĉe forta por funkciigi LED-ekranojn rekte. Ĉiuj pordaj pingloj havas individue elekteblajn streĉajn rezistilojn kun provoluma voltage senvaria rezisto. Ĉiuj I/O-stiftoj havas protektodiodojn al kaj VCC kaj Ground kiel indikite en Figuro 10-1. Riferu al "Elektraj Karakterizaĵoj" sur paĝo 161 por kompleta listo de parametroj.
Figuro 10-1. I/O Pin Ekvivalenta Skemo
Ĉiuj registroj kaj bitreferencoj en ĉi tiu sekcio estas skribitaj ĝenerale. Minuskla "x" reprezentas la numeran literon por la haveno, kaj minuskla "n" reprezentas la bitnombron. Tamen, kiam oni uzas la registron aŭ bit-difinojn en programo, oni devas uzi la precizan formon. Ekzample, PORTB3 por bito n-ro. 3 en Haveno B, ĉi tie dokumentita ĝenerale kiel PORTxn. La fizikaj I / O-Registroj kaj bitlokoj estas listigitaj en "Registri Priskribon" en paĝo 64.
Tri I / O-memoraj adreslokoj estas asignitaj por ĉiu haveno, po unu por la Datregistro - PORTx, Datuma Direkta Registro - DDRx, kaj la Havenaj Enigaj Stiftoj - PINx. La Havena Eniga Pingla I / O-loko estas nur leginda, dum la Datuma Registro kaj la Datuma Direkta Registro estas legataj / skribataj. Tamen skribi logikon unu al iom en la PINx-Registro rezultigos ŝaltilon en la responda bito en la Datuma Registro. Krome, la Eltira Malŝalti - PUD-bito en MCUCR malŝaltas la streĉan funkcion por ĉiuj pingloj en ĉiuj havenoj kiam agordita.
Uzi la I / O-havenon kiel Ĝeneralan Ciferecan I / O estas priskribita en "Havenoj kiel Ĝenerala Cifereca I / O" sur paĝo 53. Plej multaj pordaj pingloj estas multiplexed kun alternaj funkcioj por la ekstercentraj funkcioj sur la aparato. Kiel ĉiu alterna funkcio enmiksiĝas kun la porda pinglo estas priskribita en "Alternaj Havenaj Funkcioj" sur paĝo 57. Konsultu la unuopajn modulajn sekciojn por plena priskribo de la alternaj funkcioj.
Notu, ke ebligi la alternan funkcion de iuj el la pordaj pingloj ne influas la uzon de la aliaj pingloj en la pordo kiel ĝenerala cifereca E / S.
Havenoj kiel Ĝenerala Cifereca I / O
La havenoj estas dudirektaj I / O-havenoj kun laŭvolaj internaj retiriĝoj. Figuro 10-2 montras funkcian priskribon de unu I / O-porda pinglo, ĉi tie ĝenerale nomata Pxn.
Figuro 10-2. Ĝenerala Cifereca I/O(1)
Agordi la Pinglon
Ĉiu porda pinglo konsistas el tri registraj bitoj: DDxn, PORTxn kaj PINxn. Kiel montrite en "Registri Priskribon" en paĝo 64, la DDxn-bitoj estas aliritaj ĉe la DDRx I / O-adreso, la PORTxn-bitoj ĉe la PORTx I / O-adreso, kaj la PINxn-bitoj ĉe la PINx I / O-adreso.
La DDxn-bito en la DDRx-Registro elektas la direkton de ĉi tiu pinglo. Se DDxn estas skribita logika unu, Pxn estas agordita kiel eliga pinglo. Se DDxn estas skribita logika nulo, Pxn estas agordita kiel eniga pinglo.
Se PORTxn estas skribita logiko unu kiam la pinglo estas agordita kiel eniga pinglo, la streĉa rezistilo estas aktivigita. Por malŝalti la streĉan rezistilon, PORTxn devas esti skribita logika nulo aŭ la pinglo devas esti agordita kiel eliga pinglo. La pordaj pingloj estas tri-deklaritaj kiam rekomencigita stato ekaktivas, eĉ se neniuj horloĝoj funkcias.
Se PORTxn estas skribita logika unu kiam la pinglo estas agordita kiel eliga pinglo, la porda pinglo altas (unu). Se PORTxn estas skribita logika nulo kiam la pinglo estas agordita kiel eliga pinglo, la porda pinglo malaltiĝas (nul).
Baskulante la Stifton
Skribi logikon al PINxn alternas la valoron de PORTxn, sendepende de la valoro de DDRxn. Notu, ke la SBI-instrukcio povas esti uzata por ŝalti unu solan biton en haveno.
Ŝanĝi Inter Eniro kaj Eliro
Kiam oni ŝanĝas inter tri-ŝtato ({DDxn, PORTxn} = 0b00) kaj eligo alta ({DDxn, PORTxn} = 0b11), meza ŝtato kun aŭ tirado ebligita {DDxn, PORTxn} = 0b01) aŭ eligo malalta ({DDxn, PORTxn} = 0b10) devas okazi. Normale, la ebligita stato de tiriĝo estas plene akceptebla, ĉar alt-impedanta medio ne rimarkos la diferencon inter forta alta ŝoforo kaj tiriĝo. Se ĉi tio ne estas la kazo, la PUD-bito en la MCUCR-Registro povas esti agordita por malŝalti ĉiujn tirojn en ĉiuj havenoj.
Ŝanĝo inter enigo kun eltiro kaj eliro malalta generas la saman problemon. La uzanto devas uzi aŭ la tri-staton ({DDxn, PORTxn} = 0b00) aŭ la eliran altan staton ({DDxn, PORTxn} = 0b10) kiel intera paŝo.
Tabelo 10-1 resumas la kontrolajn signalojn por la pingla valoro.
Tabelo 10-1. Haveno Pin-Agordoj
DDxn | PORTxn | PUD
(en MCUCR) |
I/O | Tiro supren | Komento |
0 | 0 | X | Enigo | Ne | Triŝtata (Hi-Z) |
0 | 1 | 0 | Enigo | Jes | Pxn fontos kurenton se ext. tiris malalte. |
0 | 1 | 1 | Enigo | Ne | Triŝtata (Hi-Z) |
1 | 0 | X | Eligo | Ne | Eligo Malalta (Lavujo) |
1 | 1 | X | Eligo | Ne | Eliga Alta (Fonto) |
Legante la Pin-Valoron
Sendepende de la agordo de Data Direction bit DDxn, la porda pinglo legeblas tra la PINxn Register bit. Kiel montrite en Figuro 10-2, la PINxn Register-bito kaj la antaŭa riglilo konsistigas sinkronigilon. Ĉi tio necesas por eviti metastabilecon, se la fizika pinglo ŝanĝas valoron proksime al la rando de la interna horloĝo, sed ĝi ankaŭ enkondukas malfruon. Figuro 10-3 montras tempdiagramon de la sinkronigo dum legado de ekstere aplikata pinglovaloro. La maksimumaj kaj minimumaj disvastigprokrastoj estas indikitaj tpd,max kaj tpd,min respektive.
Konsideru la horloĝan periodon komenciĝantan baldaŭ post la unua falanta rando de la sistema horloĝo. La riglilo estas fermita kiam la horloĝo estas malalta, kaj fariĝas travidebla kiam la horloĝo estas alta, kiel indikas la ombrita regiono de la signalo "SYNC LATCH". La signala valoro estas fermita kiam la sistema horloĝo malaltiĝas. Ĝi estas registrita en la PINxn Registro ĉe la sukcesa pozitiva horloĝa rando. Kiel indikas la du sagoj tpd, max kaj tpd, min, ununura signala transiro sur la pinglo estos prokrastita inter ½ kaj 1½ sistema horloĝa periodo depende de la tempo de aserto.
Kiam vi legas reen programon asignitan pinglo-valoron, nop-instrukcio devas esti enmetita kiel indikite en Figuro 10-4. La ekstera instrukcio starigas la signalon "SYNC LATCH" ĉe la pozitiva rando de la horloĝo. En ĉi tiu kazo, la malfruo tpd tra la sinkronigilo estas unu sistema horloĝa periodo.
La jena kodo ekzample montras kiel agordi la havenstiftojn 0 kaj 1 altajn, 2 kaj 3 malaltajn, kaj difinas la havenstiftojn de 4 ĝis 5 kiel enigaĵon kun pull-up asignita al havenstifto 4. La rezultaj pingloj estas relegitaj denove, sed kiel antaŭe diskutite, nop-instrukcio estas inkluzivita por povi relegi la valoron lastatempe asignitan al kelkaj el la pingloj.
Kuniga Kodo Eksample(1) |
…
; Difinu tirojn kaj starigu elirojn altaj ; Difinu direktojn por havenaj pingloj ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0) ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) el PORTB,r16 el DDRB,r17 ; Enigu nop por sinkronigado nep ; Legu babordajn pinglojn en r16, PINB … |
Noto: Por la kunigprogramo, du provizoraj registroj estas uzataj por minimumigi la tempon de tiriloj estas fiksitaj sur pingloj 0, 1 kaj 4, ĝis la direktaj bitoj estas ĝuste fiksitaj, difinante bitojn 2 kaj 3 kiel malaltajn kaj redifinante bitojn 0 kaj 1 kiel fortaj altaj ŝoforoj.
C-kodo Eksample |
nesubskribita char i;
… /* Difinu tirojn kaj altigu elirojn */ /* Difinu direktojn por havenpingloj */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Enigu nop por sinkronigo*/ _NOP (); /* Legu havenpinglojn */ i = PINB; … |
Cifereca Eniga Ebligo kaj Dormaj Modoj
Kiel montrite en Figuro 10-2, la cifereca eniga signalo povas esti clamped al grundo ĉe la enigo de la schmitt-trigger. La signalo indikita DORMO en la figuro, estas agordita de la MCU-Dormo-Regilo en Powerdown-reĝimo por eviti altan energikonsumon se kelkaj enirsignaloj estas lasitaj flosantaj, aŭ havas analogan signalnivelon proksime al VCC/2.
SLEEP estas anstataŭigita por havenaj pingloj ebligitaj kiel eksteraj interrompaj pingloj. Se la ekstera interrompopeto ne estas ebligita, DORMI estas aktiva ankaŭ por ĉi tiuj pingloj. DORMI ankaŭ estas superregita de diversaj aliaj alternaj funkcioj kiel priskribite en "Alternaj Havenaj Funkcioj" sur paĝo 57.
Se logika altnivelo ("unu") ĉeestas sur nesinkrona ekstera interrompa stifto agordita kiel "Interrompo sur Altiĝanta Rando, Falanta Rando, aŭ Ajna Logika Ŝanĝo sur Pinglo" dum la ekstera interrompo ne estas ebligita, la ekvivalenta Ekstera Interrupta Flago estos. esti agordita kiam rekomencas de la supre menciita Dorma reĝimo, kiel la clampEn ĉi tiuj modoj de dormo produktas la petitan logikan ŝanĝon.
Senkonektaj Stiftoj
Se iuj pingloj estas neuzataj, oni rekomendas certigi, ke ĉi tiuj pingloj havas difinitan nivelon. Eĉ se la plej multaj ciferecaj enigaĵoj estas malebligitaj en la profundaj dormreĝimoj kiel priskribite supre, oni devas eviti ŝvebajn enigaĵojn por redukti nunan konsumon en ĉiuj aliaj reĝimoj, kie la ciferecaj enigaĵoj estas ebligitaj (Restarigi, Aktiva reĝimo kaj Senaktiva reĝimo).
La plej simpla metodo por certigi difinitan nivelon de neuzata pinglo, estas ebligi la internan tiriĝon. En ĉi tiu kazo, la tiriĝo estos malŝaltita dum rekomenciĝo. Se gravas malalta energikonsumo dum rekomenciĝo, oni rekomendas uzi eksteran eltiron aŭ eltirilon. Konekti neuzatajn stiftojn rekte al VCC aŭ GND ne estas rekomendita, ĉar tio povas kaŭzi troajn fluojn se la stifto estas hazarde agordita kiel eligo.
Alternaj Havenaj Funkcioj
Plej multaj pordaj pingloj havas alternajn funkciojn krom esti ĝeneralaj ciferecaj E / S. Figuro 10-5 montras kiel la havenaj stiftoj kontrolas signalojn de la simpligita Figuro 10-2 povas esti anstataŭigita per alternaj funkcioj. La superregaj signaloj eble ne ĉeestas en ĉiuj pordaj pingloj, sed la figuro funkcias kiel ĝenerala priskribo aplikebla al ĉiuj pordaj pingloj en la familio de mikroregiloj AVR.
Tabelo 10-2. Ĝenerala Priskribo de Superregaj Signaloj por Alternaj Funkcioj
Signala Nomo | Plena Nomo | Priskribo |
PUOE | Ekstreĉu Anstataŭigi Ebligi | Se ĉi tiu signalo estas agordita, la streĉa ebligo estas kontrolita per la PUOV-signalo. Se ĉi tiu signalo estas malplenigita, la ekesto estas ebligita kiam
{DDxn, PORTxn, PUD} = 0b010. |
PUOV | Eltira Supera Valoro | Se PUOE estas agordita, la ekesto estas malebligita / malŝaltita kiam PUOV estas agordita / malplenigita, sendepende de la agordo de la bitoj de Registro DDxn, PORTxn kaj PUD. |
DDOE | Datuma Direkta Anstataŭigo Ebligu | Se ĉi tiu signalo estas agordita, la Eliga Ŝofora Ebligo estas kontrolita de la DDOV-signalo. Se ĉi tiu signalo estas malplenigita, la Eliga pelilo estas ebligita per la DDxn Register-bito. |
DDOV | Datuma Direkta Anula Valoro | Se DDOE estas agordita, la Eliga Ŝoforo estas ebligita / malŝaltita kiam DDOV estas agordita / malplenigita, sendepende de la agordo de la DDxn Registro-bito. |
PVOE | Ebligi Ŝanĝon de Havena Valoro | Se ĉi tiu signalo estas agordita kaj la Eliga Ŝoforo estas ebligita, la haveno-valoro estas kontrolita de la PVOV-signalo. Se PVOE estas malplenigita, kaj la Eliga Ŝoforo estas ebligita, la pordo Valoro estas kontrolita per la PORTxn Registro-bito. |
PVOV | Havena Valoro Anstataŭigi Valoron | Se PVOE estas agordita, la haveno valoro estas agordita al PVOV, sendepende de la agordo de la PORTxn Registro-bito. |
PTOE | Havena Baskula Ebligi Ebligi | Se PTOE estas agordita, la PORTxn Registro-bito estas renversita. |
DIEOE | Cifereca Eniga Ebligo Anstataŭigi Ebligi | Se ĉi tiu bito estas agordita, la Cifereca Eniga Eblo estas kontrolita de la signalo DIEOV. Se ĉi tiu signalo estas malplenigita, la Cifereca Eniga Ebligo estas determinita de stato MCU (Normala reĝimo, dorma reĝimo). |
DIEOV | Cifereca Enigaĵa Ebliga Anula Valoro | Se DIEOE estas agordita, la Cifereca Enigo estas ebligita / malŝaltita kiam DIEOV estas agordita / malplenigita, sendepende de la stato MCU (Normala reĝimo, dorma reĝimo). |
DI | Cifereca Enigo | Jen la Cifereca Enigo por alterni funkciojn. En la figuro, la signalo estas konektita al la eliro de la schmitt-trigger sed antaŭ la sinkronigilo. Krom se la Cifereca Enigo estas uzata kiel horloĝa fonto, la modulo kun la alternativa funkcio uzos sian propran sinkronigilon. |
AIO | Analoga Eniro / Eligo | Jen la Analoga Eniro / Eliro al / de alternaj funkcioj. La signalo estas konektita rekte al la kuseneto, kaj povas esti uzata dudirekte. |
La sekvaj subsekcioj baldaŭ priskribas la alternajn funkciojn por ĉiu haveno, kaj rilatas la superregajn signalojn al la alternativa funkcio. Por pliaj detaloj, vidu la alternativan funkcian priskribon.
Alternaj Funkcioj de Haveno B
La Stiftoj de Port B kun alternativa funkcio estas montritaj en Tabelo 10-3.
Tabelo 10-3. Port B Pins Alternaj Funkcioj
Haveno Pinglo | Alterna Funkcio |
PB5 | ![]() RESET: Restarigi Pin dW: debugWIRE I / O ADC0: ADC-Eniga Kanalo 0 PCINT5: Pingla Ŝanĝo-Interrompo, Fonto 5 |
PB4 | XTAL2: Kristala Oscilo-Eligo CLKO: Sistema Horloĝa Eliro ADC2: ADC-Eniga Kanalo 2
OC1B: Tempigilo / Nombrilo1 Komparu Matĉon B-Eliron PCINT4: Pingla Ŝanĝa Interrompo 0, Fonto 4 |
PB3 | XTAL1: Kristala Oscilatora Enigo CLKI: Ekstera Horloĝa Enigo ADC3: ADC Eniga Kanalo 3
OC1B: Komplementa Tempigilo / Nombrilo1 Komparu Matĉon B-Eliron PCINT3: Pingla Ŝanĝa Interrompo 0, Fonto 3 |
PB2 | SCK: Seria Horloĝa Eniro ADC1: ADC-Eniga Kanalo 1
T0: Timer / Counter0 Clock Source USCK: USI Clock (Three Wire Mode) SCL: USI Clock (Two Wire Mode) INT0: External Interrupt 0 Input PCINT2: Pin Change Interrupt 0, Source 2 |
PB1 | MISO: SPI-Majstra Datuma Eniro / Sklava Datuma Eliro AIN1: Analoga Komparilo, Negativa Eniro OC0B: Tempigilo / Nombrilo0 Komparu Matĉon B-Eliron OC1A: Tempigilo / Nombrilo1 Komparu Matĉon A-Eligo DO: USI-Datuma Eligo (Tri Drata Reĝimo) PCINT1: Pingla Ŝanĝo-Interrompo 0, Fonto 1 |
PB0 | MOSI :: SPI-Majstra Datuma Eligo / Sklava Datuma Eniro AIN0: Analoga Komparilo, Pozitiva Eniro
OC0A: Timer/Counter0 Komparu Match A eligo OC1A: Komplementa Tempigilo / Nombrilo1 Komparu Matĉon A-Eliga DI: USI-Datuma Enigo (Tri Drata Reĝimo) SDA: USI-Datuma Enigo (Du Drata Reĝimo) AREF: Ekstera Analoga Referenco PCINT0: Pingla Ŝanĝa Interrompo 0, Fonto 0 |
Haveno B, Bit 5 - RESET / dW / ADC0 / PCINT5
RESET: Ekstera Reset-enigo estas aktiva malalta kaj ebligita per neprogramado ("1") de la RSTDISBL-Fuzeo. Pullup estas aktivigita kaj eliga pelilo kaj cifereca enigo malaktivas kiam la pinglo estas uzata kiel RESET-pinglo.
dW: Kiam la fuzilo debugWIRE Enable (DWEN) estas programita kaj Lock-bitoj ne estas programitaj, la sistemo debugWIRE ene de la cela aparato estas aktivigita. La RESET-porda pinglo estas agordita kiel drato-KAJ (malferma-drenilo) dudirekta I / O-pinglo kun streĉado ebligita kaj fariĝas la komunikada enirejo inter celo kaj emulilo.
ADC0: Analoga al Cifereca Konvertilo, Kanalo 0.
PCINT5: Pin-Ŝanĝa Interrompfonto 5.
Haveno B, Bit 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: Chip Clock Oscillator pin 2. Uzata kiel horloĝa pinglo por ĉiuj blataj horloĝaj fontoj krom interna kalibrebla RC-oscililo kaj ekstera horloĝo. Se uzata kiel horloĝa pinglo, la pinglo ne povas esti uzata kiel pinglo de E / S. Kiam vi uzas internan kalibreblan RC-Oscililon aŭ Eksteran horloĝon kiel Chip-horloĝajn fontojn, PB4 funkcias kiel ordinara I / O-pinglo.
CLKO: La disigita sistemo-horloĝo povas esti eligita sur la pinglo PB4. La dividita sistema horloĝo estos eligita se la CKOUT-Fuzeo estas programita, sendepende de la agordoj PORTB4 kaj DDB4. Ĝi ankaŭ eliros dum reagordo.
ADC2: Analoga al Cifereca Konvertilo, Kanalo 2.
OC1B: Eliga Komparebla Eliro: La PB4-pinglo povas servi kiel ekstera eligo por la Tempigilo / Counter1-Kompara Matĉo B kiam agordita kiel eligo (DDB4-aro). La OC1B-pinglo ankaŭ estas la eliga pinglo por la PWM-reĝima tempigila funkcio.
PCINT4: Pin-Ŝanĝa Interrompfonto 4.
Haveno B, Bit 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: Chip Clock Oscillator pin 1. Uzata por ĉiuj blataj horloĝaj fontoj krom interna kalibrebla RC-oscililo. Se uzata kiel horloĝa pinglo, la pinglo ne povas esti uzata kiel pinglo de E / S.
CLKI: Horloĝa Eniro de ekstera horloĝa fonto, vidu "Ekstera Horloĝo" sur paĝo 26.
ADC3: Analoga al Cifereca Konvertilo, Kanalo 3.
OC1B: Inversa Produkta Kompara Matĉo: La PB3-stifto povas funkcii kiel ekstera produktaĵo por la Timer / Counter1 Compare Match B kiam agordita kiel produktaĵo (DDB3-aro). La OC1B-stifto ankaŭ estas la inversigita produktaĵostifto por la PWM-reĝima tempigilfunkcio.
PCINT3: Pin-Ŝanĝa Interrompfonto 3.
Haveno B, Bito 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: Master Clock-eligo, Slave Clock-eniga pinglo por SPI-kanalo. Kiam la SPI estas ebligita kiel sklavo, ĉi tiu pinglo estas agordita kiel enigaĵo sendepende de la agordo de DDB2. Kiam la SPI estas ebligita kiel Majstro, la datuma direkto de ĉi tiu pinglo estas kontrolita de DDPB2. Kiam la stifto estas devigita de la SPI esti enigaĵo, la streĉado ankoraŭ povas esti kontrolita per la PORTB2-bito.
ADC1: Analoga al Cifereca Konvertilo, Kanalo 1.
T0: Tempofonto / Nombrilo0.
USCK: Tri-drata reĝimo Universala Seria Interfaca Horloĝo.
SCL: Du-drata reĝimo Seria Horloĝo por USI-Du-drata reĝimo.
INT0: Ekstera Interrompfonto 0.
PCINT2: Pin-Ŝanĝa Interrompfonto 2.
Haveno B, Bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: Majstra Datuma enigo, Slave Data-eliga pinglo por SPI-kanalo. Kiam la SPI estas ebligita kiel Majstro, ĉi tiu pinglo estas agordita kiel enigaĵo sendepende de la agordo de DDB1. Kiam la SPI estas ebligita kiel sklavo, la datuma direkto de ĉi tiu pinglo estas kontrolita de DDB1. Kiam la stifto estas devigita de la SPI esti enigaĵo, la streĉado ankoraŭ povas esti kontrolita per la PORTB1-bito.
AIN1: Analoga Komparilo Negativa Enigo. Agordu la pordan pinglon kiel enigaĵon kun la interna streĉado malŝaltita por eviti ke la cifereca porda funkcio malhelpu la funkcion de la Analoga Komparilo.
OC0B: Eligo Kompari Matĉon. La PB1-pinglo povas funkcii kiel ekstera produktaĵo por la Timer / Counter0 Compare Match B. La PB1-pinglo devas esti agordita kiel produktaĵo (DDB1-aro (unu)) por servi ĉi tiun funkcion. La OC0B-pinglo ankaŭ estas la eliga pinglo por la PWM-reĝima tempa funkcio.
OC1A: Eliga Komparebla Eliro: La PB1-pinglo povas servi kiel ekstera eligo por la Tempigilo / Counter1-Kompara Matĉo B kiam agordita kiel eligo (DDB1-aro). La OC1A-pinglo ankaŭ estas la eliga pinglo por la PWM-reĝima tempa funkcio.
DO: Tridrata reĝimo Universala Seria Interfaca Datuma eligo. Tri-drata reĝimo Datumproduktaĵo superas PORTB1-valoron kaj ĝi estas pelata al la haveno kiam datuma direkta bito DDB1 estas agordita (unu). PORTB1 ankoraŭ ebligas la retiriĝon, se la direkto estas enigita kaj PORTB1 estas agordita (unu).
PCINT1: Pin-Ŝanĝa Interrompfonto 1.
Haveno B, Bit 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: eligo de SPI Master Data, enigo de Slave Data por SPI-kanalo. Kiam la SPI estas ebligita kiel sklavo, ĉi tiu pinglo estas agordita kiel enigaĵo sendepende de la agordo de DDB0. Kiam la SPI estas ebligita kiel Majstro, la datuma direkto de ĉi tiu pinglo estas kontrolita de DDB0. Kiam la stifto estas devigita de la SPI esti enigaĵo, la streĉado ankoraŭ povas esti kontrolita per la PORTB0-bito.
AIN0: Analoga Komparilo-Pozitiva Enigo. Agordu la pordan pinglon kiel enigaĵon kun la interna streĉado malŝaltita por eviti ke la cifereca porda funkcio malhelpu la funkcion de la Analoga Komparilo.
OC0A: Eligo Kompari Matĉon. La PB0-stifto povas funkcii kiel ekstera produktaĵo por la Tempigilo / Counter0 Compare Match A kiam agordite kiel produktaĵo (DDB0-aro (unu)). La OC0A-pinglo ankaŭ estas la eliga pinglo por la PWM-reĝima tempa funkcio.
OC1A: Inversa Eliga Komparebla Eliro: La PB0-stifto povas funkcii kiel ekstera eligo por la Timer / Counter1 Compare Match B kiam agordita kiel eligo (DDB0-aro). La OC1A-stifto ankaŭ estas la inversigita produktaĵostifto por la PWM-reĝima tempigilfunkcio.
SDA: Dutrata reĝimo Seria Interfaca Datumo.
AREF: Ekstera Analoga Referenco por ADC. Eltira kaj eliga pelilo estas malebligitaj sur PB0 kiam la pinglo estas uzata kiel ekstera referenco aŭ Interna Voltage Referenco kun ekstera kondensilo ĉe la pino AREF.
DI: Datuma Enigo en USI-Tridrata reĝimo. USI-tri-drata reĝimo ne superas normalajn havenajn funkciojn, do pinglo devas esti agordita kiel enigaĵo por DI-funkcio.
PCINT0: Pin-Ŝanĝa Interrompfonto 0.
Tabelo 10-4 kaj Tabelo 10-5 rilatigu la alternajn funkciojn de Haveno B al la superregaj signaloj montritaj en Figuro 10-5 sur paĝo 58.
Tabelo 10-4. Superregado de Signaloj por Alternaj Funkcioj en PB[5:3]
Signala Nomo | 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 Transdono | 0 | 0 |
PVOE | 0 | Ebligi OC1B | ![]() Ebligi OC1B |
PVOV | 0 | OC1B | OC1B |
PTOE | 0 | 0 | 0 |
DIEOE | ![]() RSTDISBL(1) + (PCINT5 • PCIE + ADC0D) |
PCINT4 • PCIE + ADC2D | PCINT3 • PCIE + ADC3D |
DIEOV | ADC0D | ADC2D | ADC3D |
DI | Eniro PCINT5 | Eniro PCINT4 | Eniro PCINT3 |
AIO | RESET Enigo, ADC0 Eniro | Enigaĵo ADC2 | Enigaĵo ADC3 |
Notu: kiam la Fuzeo estas "0" (Programita).
Tabelo 10-5. Superregado de Signaloj por Alternaj Funkcioj en PB[2:0]
Signala Nomo | 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 Ebligi + OC1A Ebligi + USI_THREE_WIRE | ![]() OC0A Ebligi + OC1A Ebligi + (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 /
Eniro PCINT2 |
Eniro PCINT1 | Eniro DI / SDA / PCINT0 |
AIO | Enigaĵo ADC1 | Analoga Komparilo Negativa Enigo | Analoga Komparilo Pozitiva Enigo |
Registro-Priskribo
MCUCR - Registriĝo de MCU
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Legu/Skribu | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Peco 6 - PUD: Eltira Malŝalti
Kiam ĉi tiu bito estas skribita al unu, la ekstraktoj en la I / O-havenoj estas malebligitaj eĉ se la Registroj DDxn kaj PORTxn estas agorditaj por ebligi la ekstraĵojn ({DDxn, PORTxn} = 0b01). Vidu "Agordi la Pinglon" sur paĝo 54 por pliaj detaloj pri ĉi tiu funkcio.
PORTB - Datuma Registro de Port B
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 | PORTB |
Legu/Skribu | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - Registro pri Datuma Direkto de Haveno B
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | DDRB |
Legu/Skribu | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Komenca Valoro | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - Adreso de Eniga Pinglo de Haveno B
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 | PINB |
Legu/Skribu | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Komenca Valoro | 0 | 0 | N/A | N/A | N/A | N/A | N/A | N/A |
8-bita Tempigilo / Nombrilo0 kun PWM
Karakterizaĵoj
Du Sendependaj Produktaj Komparaj Unuoj
Duoblaj bufritaj rezultaj komparregistroj
Klara Tempigilo pri Komparo-Matĉo (Aŭtomata Reŝarĝo)
Senproblema, Faza Korekta Pulsa Larĝa Modulilo (PWM)
Varia PWM-Periodo
Frekvenca Generilo
Tri Sendependaj Interrompaj Fontoj (TOV0, OCF0A kaj OCF0B)
Finiteview
Timer / Counter0 estas ĝeneraluzebla 8-bita Timer / Counter-modulo, kun du sendependaj Output Compare Units, kaj kun PWM-subteno. Ĝi permesas ĝustan programan ekzekutan tempon (administrado de eventoj) kaj generadon de ondo.
Simpligita blokdiagramo de la 8-bita Tempigilo / Nombrilo estas montrita en Figuro 11-1. Por la efektiva lokado de I / O-pingloj, vidu "Pinout ATtiny25 / 45/85" sur paĝo 2. CPU-alireblaj I / O-Registroj, inkluzive de I / O-bitoj kaj I / O-pingloj, estas montritaj en grasa skribo. La aparat-specifa I / O-Registro kaj bitlokoj estas listigitaj en la "Registra Priskribo" sur paĝo 77.
La Timer/Counter (TCNT0) kaj Output Compare Registers (OCR0A kaj OCR0B) estas 8-bitaj registroj. Interromppeto (mallongigita al Int.Req. en la figuro) signaloj estas ĉiuj videblaj en la Timer Interrupt Flag Register (TIFR). Ĉiuj interrompoj estas individue maskitaj kun la Timer Interrupt Mask Register (TIMSK). TIFR kaj TIMSK ne estas montritaj en la figuro.
La Tempigilo/Nombrilo povas esti horloĝitaj interne, per la antaŭskalilo, aŭ per ekstera horloĝfonto sur la T0-stifto. La Clock Select-logika bloko kontrolas kiun horloĝfonton kaj rando la Temporizilo/Nombrilo uzas por pliigi (aŭ malpliigi) sian valoron. La Temporizilo/Nombrilo estas neaktiva kiam neniu horloĝfonto estas elektita. La produktaĵo de la Clock Select-logiko estas referita kiel la tempigilo-horloĝo (clkT0).
La duoblaj bufritaj Rezultaj Komparaj Registroj (OCR0A kaj OCR0B) estas komparitaj kun la valoro de Tempigilo / Nombrilo ĉiam. La rezulto de la komparo povas esti uzata de la Ondforma Generatoro por generi PWM aŭ varian oftecan produktaĵon sur la Output Compare-stiftoj (OC0A kaj OC0B). Vidu "Eliga Kompara Unuo" en paĝo 69. por detaloj. La okazaĵo Komparu Matĉon ankaŭ agordos la Komparan Flagon (OCF0A aŭ OCF0B), kiu povas esti uzata por generi interrompan peton de Rezulta Komparo.
Difinoj
Multaj registraj kaj bitaj referencoj en ĉi tiu sekcio estas skribitaj ĝenerale. Minuskla "n" anstataŭas la Tempan / Nombran nombron, ĉi-kaze 0. Minuskla "x" anstataŭas la Eligan Komparan Unuon, ĉi-kaze Komparu Unuon A aŭ Komparu Unuon B. Tamen, kiam oni uzas la registron aŭ biton difinas en programo, la preciza formo devas esti uzata, te TCNT0 por aliri Timer / Counter0-nombrilon kaj tiel plu.
La difinoj en Tabelo 11-1 estas ankaŭ vaste uzataj tra la dokumento.
Tabelo 11-1. Difinoj
Konstanta | Priskribo |
FUNDO | La sumigilo atingas MALSUPREN kiam ĝi fariĝas 0x00 |
MAX | La sumigilo atingas sian MAKsimumon kiam ĝi fariĝas 0xFF (decimalo 255) |
TOP | La nombrilo atingas la TOP kiam ĝi egalas al la plej alta valoro en la kalkula sinsekvo. La TOP-valoro povas esti atribuita al la fiksa valoro 0xFF (MAX) aŭ la valoro konservita en la Registro OCR0A. La tasko dependas de la operacia reĝimo |
Tempigilo / Nombrila Antaŭkalkulo kaj Horloĝaj Fontoj
La Tempigilo / Nombrilo povas esti mezurita per interna aŭ ekstera horloĝa fonto. La horloĝa fonto estas elektita per la logiko Clock Select, kiu estas kontrolita de la bitoj Clock Select (c) situantaj en la Registro de Kontrolo Timer / Counter0 (TCCR0B).
Interna Horloĝa Fonto kun Prescaler
Timer/Counter0 povas esti horloĝitaj rekte per la sistema horloĝo (per agordo de la CS0[2:0] = 1). Ĉi tio disponigas la plej rapidan operacion, kun maksimuma tempigilo/nombrilhorloĝfrekvenco egala al sistema horloĝfrekvenco (fCLK_I/O). Alternative, unu el kvar frapetoj de la preskaler povas esti uzata kiel horloĝfonto. La antaŭskalita horloĝo havas frekvencon de ambaŭ
Rekalkulilo
La preskalkulilo estas senpaga funkciado, do ĝi funkcias sendepende de la logika Selektado de Horloĝo de Timer / Counter0. Ĉar la preskalkulilo ne estas tuŝita de la horloĝo de la tempigilo / kalkulilo, la stato de la preskalkulilo havos implicojn por situacioj, kie preskalkulita horloĝo estas uzata. Unu eksample de precaling-artefakto estas kiam la tempigilo / kalkulilo estas ebligita kaj horloĝata de la prescaler (6> CS0 [2: 0]> 1). La nombro de sistemaj horloĝaj cikloj de kiam la tempigilo estas ebligita ĝis la unua kalkulo okazas povas esti de 1 ĝis N + 1-sistemaj horloĝaj cikloj, kie N egalas al la preskribila divizoro (8, 64, 256 aŭ 1024).
Eblas uzi la Prescaler-Rekomencon por sinkronigi la Tempigilon / Nombrilon al programo-ekzekuto.
Ekstera Horloĝa Fonto
Ekstera horloĝfonto aplikita al la T0-stifto povas esti utiligita kiel tempigilo/nombrilo (clkT0). La T0-stifto estas sampgvidata unufoje ĉiun sisteman horloĝan ciklon per la pingla sinkroniga logiko. La sinkronigita (sampled) signalo tiam estas pasita
tra la randa detektilo. Figuro 11-2 montras funkcian ekvivalentan blokdiagramon de la T0-sinkronigado kaj randa detektila logiko. La registroj estas horloĝigitaj ĉe la pozitiva rando de la interna sistemhorloĝo (clkI/O). La klinko estas travidebla en la alta periodo de la interna sistema horloĝo.
La randdetektilo generas unu clkT0-pulson por ĉiu pozitiva (CS0[2:0] = 7) aŭ negativa (CS0[2:0] = 6) rando kiun ĝi detektas.
La OCR0x-Registroj estas duoble bufritaj dum uzado de iuj el la reĝimoj de Pulse Width Modulation (PWM). Por la normalaj kaj Clear Timer on Compare (CTC) agmanieroj, la duobla bufrado estas malebligita. La duobla bufro sinkronigas la ĝisdatigon de la OCR0x Komparaj Registroj al aŭ supre aŭ malsupre de la kalkula sinsekvo. La sinkronigado malhelpas la aperon de strang-longaj, ne-simetriaj PWM-pulsoj, tiel farante la eliron senpaga.
La aliro al OCR0x Register povas ŝajni kompleksa, sed ĉi tio ne estas kazo. Kiam la duobla bufro estas ebligita, la CPU havas aliron al la OCR0x Buffer Register, kaj se duobla bufro estas malebligita, la CPU aliros la OCR0x rekte.
Forta Eliga Komparo
En ne-PWM-ondformaj generadreĝimoj, la matĉoproduktaĵo de la komparilo povas esti devigita skribante unu al la Force Output Compare (FOC0x) peco. Devigi Komparan Matĉon ne agordos la OCF0x-Flagon aŭ reŝargas / malplenigos la tempigilon, sed la OC0x-pinglo estos ĝisdatigita kvazaŭ reala Komparo-Matĉo okazis (la agordoj de COM0x [1: 0] bitoj difinas ĉu la OC0x-pinglo estas agordita, malplenigita aŭ ŝaltita).
Komparu Match Blocking per TCNT0-Skribo
Ĉiuj CPU-skribaj operacioj al la TCNT0-Registro blokos ajnan Komparan kongruon, okazantan en la sekva horloĝa ciklo, eĉ kiam la temporizilo estas haltigita. Ĉi tiu funkcio permesas al OCR0x esti pravalorizita al la sama valoro kiel TCNT0 sen ekigi interrompon kiam la Horloĝo Timer / Counter estas ebligita.
Uzante la Eligan Komparan Unuon
Ĉar skribi TCNT0 en iu ajn reĝimo de operacio blokos ĉiujn Komparajn Matĉojn por unu tempigila horloĝa ciklo, ekzistas riskoj dum ŝanĝado de TCNT0 uzante la Eligan Komparan Unuon, sendepende de ĉu la Tempilo / Nombrilo funkcias aŭ ne. Se la valoro skribita al TCNT0 egalas al la OCR0x-valoro, la Komparo-Matĉo maltrafos, rezultigante malĝustan ondforman generadon. Simile, ne skribu la valoron TCNT0 egala al MALSUPTO kiam la sumigilo malaltiĝas.
La agordo de la OC0x devas esti plenumita antaŭ ol agordi la Registaron pri Datuma Direkto por ke la porda pinglo aperu. La plej facila maniero agordi la OC0x-valoron estas uzi la strobobetojn de Forta Eliga Komparo (FOC0x) en Normala reĝimo. La OC0x-Registroj konservas siajn valorojn eĉ dum ŝanĝo inter Waveform Generation-reĝimoj.
Konsciu, ke la COM0x [1: 0] bitoj ne estas duoble bufritaj kune kun la komparvaloro. Ŝanĝi la COM0x [1: 0] bitojn ekvalidos tuj.
Komparu Match Output Unit
La bitoj Komparu Eligan reĝimon (COM0x [1: 0]) havas du funkciojn. La Ondformo-Generilo uzas la COM0x [1: 0] bitojn por difini la Output Compare (OC0x) staton ĉe la sekva Compare Match. Ankaŭ la bitoj COM0x [1: 0] regas la eligan fonton de OC0x-stifto. Figuro 11-6 montras simpligitan skemon de la logiko trafita de la bit-agordo COM0x [1: 0]. La I / O-Registroj, I / O-bitoj kaj I / O-pingloj en la figuro estas montritaj en grasa skribo. Nur la partoj de la ĝeneralaj I / O Port Control Registers (DDR kaj PORT), kiuj estas trafitaj de la bitoj COM0x [1: 0], estas montrataj. Kiam temas pri la OC0x-stato, la referenco estas por la interna OC0x-Registro, ne la OC0x-pinglo. Se sistemo restarigas, la OC0x-Registro estas restarigita al "0".
Kiam OC0A / OC0B estas konektita al la pinglo I / O, la funkcio de la bitoj COM0A [1: 0] / COM0B [1: 0] dependas de la agordo de bitoj WGM0 [2: 0]. Tabelo 11-2 montras la funkcion COM0x [1: 0] biton kiam la bitoj WGM0 [2: 0] estas agorditaj al normala aŭ CTC-reĝimo (ne-PWM).
Tabelo 11-2. Komparu Eligo-Reĝimon, ne-PWM-Reĝimon
COM0A1 COM0B1 | COM0A0 COM0B0 | Priskribo |
0 | 0 | Normala havenoperacio, OC0A / OC0B malkonektita. |
0 | 1 | Ŝalti OC0A / OC0B sur Komparu Matĉon |
1 | 0 | Malplenigi OC0A / OC0B ĉe Komparu Matĉon |
1 | 1 | Agordi OC0A / OC0B sur Komparu Matĉon |
Tabelo 11-3 montras la funkcion COM0x [1: 0] biton kiam la WGM0 [2: 0] bitoj estas agorditaj al rapida PWM-reĝimo.
Tabelo 11-3. Komparu Eligan Reĝimon, Rapidan PWM-Reĝimon(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Priskribo |
0 | 0 | Normala havenoperacio, OC0A / OC0B malkonektita. |
0 | 1 | Rezervita |
1 | 0 | Malplenigi OC0A / OC0B sur Komparu Matĉon, starigu OC0A / OC0B ĉe FUNDO (ne-inversiga reĝimo) |
1 | 1 | Agordi OC0A / OC0B sur Komparu Matĉon, malplenigi OC0A / OC0B ĉe FUNDO (inversa reĝimo) |
Notu: Speciala kazo okazas kiam OCR0A aŭ OCR0B egalas TOP kaj COM0A1/COM0B1 estas agordita. En ĉi tiu kazo, la kompara kongruo estas ignorita, sed la aro aŭ malplenigo estas farita ĉe BOTTOM. Vidu "Rapida PWM-Reĝimo" sur paĝo 73 por pliaj detaloj.
Tabelo 11-4 montras la funkcion COM0x [1: 0] biton kiam la WGM0 [2: 0] bitoj estas agorditaj por fazigi ĝustan reĝimon PWM.
Tabelo 11-4. Komparu Eligo-Reĝimon, Faza Ĝusta PWM-Reĝimo(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Priskribo |
0 | 0 | Normala havenoperacio, OC0A / OC0B malkonektita. |
0 | 1 | Rezervita |
1 | 0 | Malplenigi OC0A / OC0B sur Komparu Matĉon kiam vi kalkulas. Agordu OC0A / OC0B sur Komparu Matĉon kiam vi kalkulas malsupren. |
1 | 1 | Agordu OC0A / OC0B sur Komparu Matĉon kiam vi kalkulas. Malplenigu OC0A / OC0B pri Komparu Matĉon kiam vi kalkulas. |
Noto: 1. Speciala kazo okazas kiam OCR0A aŭ OCR0B egalas TOP kaj COM0A1/COM0B1 estas agordita. En ĉi tiu kazo, la Kompare Match estas ignorita, sed la aro aŭ malplenigo estas farita ĉe TOP. Vidu "Phase Correct PWM Mode" sur paĝo 74 por pliaj detaloj.
Bitoj 3: 2 - Rezulto: Rezervitaj Bitoj
Ĉi tiuj bitoj estas rezervitaj bitoj en la ATtiny25 / 45/85 kaj ĉiam legos kiel nulo.
Bitoj 1: 0 - WGM0 [1: 0]: Modo Generacio de Ondformo
Kombinitaj kun la WGM02-bito trovita en la TCCR0B-Registro, ĉi tiuj bitoj regas la nombran sinsekvon de la sumigilo, la fonton por maksimuma (SUPRA) nombrilvaloro, kaj kian ondforman generacion uzotan, vidu Tabelo 11-5. Operaciaj reĝimoj subtenataj de la Timer / Counter-unuo estas: Normala reĝimo (sumigilo), Klara Tempigilo laŭ Komparo-Matĉo (CTC) reĝimo, kaj du specoj de Pulse Width Modulation (PWM) reĝimoj (vidu "Manieroj de Operacio" sur paĝo 71).
Tabelo 11-5. Ondoform Generation Mode Bit Description
Reĝimo | WGM 02 | WGM 01 | WGM 00 | Tempomezurilo / Nombrilo de Operacio | TOP | Ĝisdatigo de OCRx ĉe | TOV-Flago Enŝaltita |
0 | 0 | 0 | 0 | Normala | 0xFF | Tuj | MAX(1) |
1 | 0 | 0 | 1 | PWM, Faza Korekta | 0xFF | TOP | FUNDO(2) |
2 | 0 | 1 | 0 | CTC | OCRA | Tuj | MAX(1) |
3 | 0 | 1 | 1 | Rapida PWM | 0xFF | FUNDO(2) | MAX(1) |
4 | 1 | 0 | 0 | Rezervita | – | – | – |
5 | 1 | 0 | 1 | PWM, Faza Korekta | OCRA | TOP | FUNDO(2) |
6 | 1 | 1 | 0 | Rezervita | – | – | – |
7 | 1 | 1 | 1 | Rapida PWM | OCRA | FUNDO(2) | TOP |
Peco 7 - FOC0A: Devigi Eliron Kompari A
La FOC0A-bito estas aktiva nur kiam la WGM-bitoj specifas ne-PWM-reĝimon.
Tamen, por certigi kongruecon kun estontaj aparatoj, ĉi tiu bito devas esti agordita al nulo kiam TCCR0B estas skribita dum funkciado en reĝimo PWM. Kiam vi skribas logikon al la biteto FOC0A, tuja Komparo-Matĉo estas devigita al la Onda Generacia unuo. La eligo OC0A estas ŝanĝita laŭ sia agordo COM0A [1: 0] bitoj. Notu, ke la FOC0A-bito estas efektivigita kiel stroboskopo. Sekve la valoro ĉeestanta en la COM0A [1: 0] bitoj determinas la efikon de la devigita komparo.
Stroboskopo FOC0A ne generos interrompon, nek ĝi malplenigos la tempigilon en reĝimo CTC uzante OCR0A kiel SUPREN. La FOC0A-bito estas ĉiam legata kiel nulo.
Peco 6 - FOC0B: Forta Eliga Komparo B
La FOC0B-bito estas aktiva nur kiam la WGM-bitoj specifas ne-PWM-reĝimon.
Tamen, por certigi kongruecon kun estontaj aparatoj, ĉi tiu bito devas esti agordita al nulo kiam TCCR0B estas skribita dum funkciado en reĝimo PWM. Kiam vi skribas logikon al la biteto FOC0B, tuja Compare Match estas devigita al la Waveform Generation-unuo. La eligo OC0B estas ŝanĝita laŭ sia agordo COM0B [1: 0] bitoj. Notu, ke la FOC0B-bito estas efektivigita kiel stroboskopo. Sekve la valoro ĉeestanta en la COM0B [1: 0] bitoj determinas la efikon de la devigita komparo.
FOC0B-stroboskopo ne generos interrompon, nek ĝi malplenigos la tempigilon en reĝimo CTC uzante OCR0B kiel SUPREN.
La biton FOC0B ĉiam legas kiel nulo.
Bitoj 5: 4 - Rezulto: Rezervitaj Bitoj
Ĉi tiuj bitoj estas rezervitaj bitoj en la ATtiny25 / 45/85 kaj ĉiam legos kiel nulo.
Peco 3 - WGM02: Onda Generacia Reĝimo
Vidu la priskribon en la "TCCR0A - Registro A-Tempilo / Nombrilo" sur paĝo 77.
Bitoj 2: 0 - CS0 [2: 0]: Horloĝo Elektu
La tri Clock Select-bitoj elektas la horloĝfonton uzotan de la Tempigilo / Nombrilo.
Tabelo 11-6. Horloĝo Elektu Bitan Priskribon
CS02 | CS01 | CS00 | Priskribo |
0 | 0 | 0 | Neniu horloĝa fonto (Tempigilo / Nombrilo haltis) |
0 | 0 | 1 | clkI/O/(Neniu antaŭskalado) |
0 | 1 | 0 | clkI/O/8 (De preskaler) |
0 | 1 | 1 | clkI/O/64 (De preskaler) |
1 | 0 | 0 | clkI/O/256 (De preskaler) |
1 | 0 | 1 | clkI/O/1024 (De preskaler) |
1 | 1 | 0 | Ekstera horloĝa fonto sur T0-pinglo. Horloĝo sur falanta rando. |
1 | 1 | 1 | Ekstera horloĝa fonto sur T0-pinglo. Horloĝo sur leviĝanta rando. |
Se eksteraj pingloreĝimoj estas uzitaj por la Tempigilo / Counter0, transiroj sur la T0-pinglo horloĝos la sumigilon eĉ se la pinglo estas formita kiel produktaĵo. Ĉi tiu funkcio permesas programan kontrolon de la kalkulado.
Nombrilo kaj Komparu Unuojn
La ĝenerala operacio Timer / Counter1 estas priskribita en nesinkrona reĝimo kaj la operacio en sinkrona reĝimo estas menciita nur se estas diferencoj inter ĉi tiuj du reĝimoj. Figuro 12-2 montras Timer / Counter 1-sinkronigan registran blokdiagramon kaj sinkronigajn prokrastojn inter registroj. Notu, ke ĉiuj horloĝaj detaloj ne estas montritaj en la figuro. La registraj valoroj Timer / Counter1 trapasas la internajn sinkronigajn registrojn, kiuj kaŭzas la enigan sinkronigan prokraston, antaŭ ol tuŝi la kontraŭan operacion. La registroj TCCR1, GTCCR, OCR1A, OCR1B kaj OCR1C legeblas tuj post skribado de la registro. La relegitaj valoroj malfruas por la registrilo kaj markiloj Timer / Counter1 (TCNT1) (OCF1A, OCF1B kaj TOV1), pro la eniga kaj eliga sinkronigado.
La Tempigilo / Nombrilo1 prezentas altan distingivon kaj altan precizecon kun malpli altaj ŝancoj. Ĝi ankaŭ povas subteni du precizajn altrapidajn 8-bitajn Pulse Width Modulators per horloĝaj rapidoj ĝis 64 MHz (aŭ 32 MHz en Low Speed Mode). En ĉi tiu reĝimo, Timer / Counter1 kaj la eligo-komparaj registroj funkcias kiel duoblaj memstaraj PWM kun ne-koincidantaj ne-renversitaj kaj renversitaj eliroj. Konsultu paĝo 86 por detala priskribo pri ĉi tiu funkcio. Simile, la altaj antaŭkalkulaj ŝancoj faras ĉi tiun unuon utila por malpli rapidaj funkcioj aŭ ĝustaj tempaj funkcioj kun maloftaj agoj.
Figuro 12-2. Timer/Counter 1 Synchronization Register Block Diagram.
Timer / Counter1 kaj la preskalkulilo permesas funkciigi la CPU de ajna horloĝa fonto dum la preskalkulilo funkcias per la rapida 64-MHz (aŭ 32 MHz en Malalta Rapida Reĝimo) PCK-horloĝo en la nesinkrona reĝimo.
Notu, ke la frekvenca horloĝo de la sistemo devas esti pli malalta ol triono de la ofteco de PCK. La sinkroniga me mechanismanismo de la nesinkrona Tempigilo / Nombrilo1 bezonas almenaŭ du randojn de la PCK kiam la sistema horloĝo estas alta. Se la ofteco de la sistema horloĝo estas tro alta, estas risko, ke datumoj aŭ kontrolaj valoroj perdiĝu.
La jenaj Figuro 12-3 montras la blokdiagramon por Tempigilo / Nombrilo1.
Tabelo 12-1. Komparu Reĝimon Elektu en PWM-Reĝimo
COM1x1 | COM1x0 | Efiko sur Rezultaj Komparaj Pingloj |
0 | 0 | OC1x ne konektita. OC1x ne konektita. |
0 | 1 | OC1x malpleniĝis dum kompara matĉo. Agordu kiamTCNT1 = $ 00. OC1x starigis komparan matĉon. Malplenigita kiam TCNT1 = $ 00. |
1 | 0 | OC1x malpleniĝis dum kompara matĉo. Agordu kiam TCNT1 = $ 00. OC1x ne konektita. |
1 | 1 | OC1x Fiksu komparan matĉon. Malplenigita kiam TCNT1 = $ 00. OC1x ne konektita. |
ADC-Karakterizaĵoj
Tablo 21-8. ADC Karakterizaĵoj, Single Ended Channels. TA = -40 °C ĝis +85 °C
Simbolo | Parametro | Kondiĉo | Min | Tip | Maks | Unuoj |
Rezolucio | 10 | Bitoj | ||||
Absoluta precizeco (Inkluzive de eraroj INL, DNL kaj Quantization, Gain kaj Offset) | VREF = 4V, VCC = 4V,
ADC-horloĝo = 200 kHz |
2 | LSB | |||
VREF = 4V, VCC = 4V,
ADC-horloĝo = 1 MHz |
3 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC-horloĝo = 200 kHz Modo de Redukto de Bruo |
1.5 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC-horloĝo = 1 MHz Modo de Redukto de Bruo |
2.5 | LSB | ||||
Integra Ne-lineareco (INL) (Precizeco post ofseto kaj gajna kalibrado) | VREF = 4V, VCC = 4V,
ADC-horloĝo = 200 kHz |
1 | LSB | |||
Diferenciala Ne-lineareco (DNL) | VREF = 4V, VCC = 4V,
ADC-horloĝo = 200 kHz |
0.5 | LSB | |||
Akiri Eraron | VREF = 4V, VCC = 4V,
ADC-horloĝo = 200 kHz |
2.5 | LSB | |||
Kompensa Eraro | VREF = 4V, VCC = 4V,
ADC-horloĝo = 200 kHz |
1.5 | LSB | |||
Konverta Tempo | Senpaga Kurado-Konvertiĝo | 14 | 280 | µs | ||
Horloĝa Frekvenco | 50 | 1000 | kHz | |||
VIN | Eniga Voltage | GND | VREF | V | ||
Eniga Banda Larĝo | 38.4 | kHz | ||||
AREF | Ekstera Referenco Voltage | 2.0 | VCC | V | ||
VINT | Interna Voltage Referenco | 1.0 | 1.1 | 1.2 | V | |
Interna 2.56V-Referenco (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | 32 | kΩ | ||||
PLUVO | Analoga Eniga Rezisto | 100 | MΩ | |||
ADC-Eligo | 0 | 1023 | LSB |
Noto: 1. Valoroj estas gvidlinioj nur.
Tablo 21-9. Karakterizaĵoj de ADC, Diferencialaj Kanaloj (Unupolusa Reĝimo). TA = -40 °C ĝis +85 °C
Simbolo | Parametro | Kondiĉo | Min | Tip | Maks | Unuoj |
Rezolucio | Gajno = 1x | 10 | Bitoj | |||
Gajno = 20x | 10 | Bitoj | ||||
Absoluta precizeco (Inkluzive de INL, DNL, kaj
Kvantigaj, Gajnaj kaj Kompensaj Eraroj) |
Gajno = 1x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
10.0 | LSB | |||
Gajno = 20x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
20.0 | LSB | ||||
Integra Ne-Lineareco (INL) (Precizeco post Ofseto kaj Gajna Kalibrado) | Gajno = 1x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
4.0 | LSB | |||
Gajno = 20x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
10.0 | LSB | ||||
Akiri Eraron | Gajno = 1x | 10.0 | LSB | |||
Gajno = 20x | 15.0 | LSB | ||||
Kompensa Eraro | Gajno = 1x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
3.0 | LSB | |||
Gajno = 20x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
4.0 | LSB | ||||
Konverta Tempo | Senpaga Kurado-Konvertiĝo | 70 | 280 | µs | ||
Horloĝa Frekvenco | 50 | 200 | kHz | |||
VIN | Eniga Voltage | GND | VCC | V | ||
VDIFF | Eniga Diferenciala Voltage | VREF/Gain | V | |||
Eniga Banda Larĝo | 4 | kHz | ||||
AREF | Ekstera Referenco Voltage | 2.0 | VCC - 1.0 | V | ||
VINT | Interna Voltage Referenco | 1.0 | 1.1 | 1.2 | V | |
Interna 2.56V-Referenco (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Referenca Eniga Rezisto | 32 | kΩ | |||
PLUVO | Analoga Eniga Rezisto | 100 | MΩ | |||
ADC-Konverta Eligo | 0 | 1023 | LSB |
Noto: Valoroj estas nur gvidlinioj.
Tabelo 21-10. ADC Karakterizaĵoj, Diferencialaj Kanaloj (Dupolusa Reĝimo). TA = -40 °C ĝis +85 °C
Simbolo | Parametro | Kondiĉo | Min | Tip | Maks | Unuoj |
Rezolucio | Gajno = 1x | 10 | Bitoj | |||
Gajno = 20x | 10 | Bitoj | ||||
Absoluta precizeco (Inkluzive de INL, DNL, kaj
Kvantigaj, Gajnaj kaj Kompensaj Eraroj) |
Gajno = 1x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
8.0 | LSB | |||
Gajno = 20x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
8.0 | LSB | ||||
Integra Ne-Lineareco (INL) (Precizeco post Ofseto kaj Gajna Kalibrado) | Gajno = 1x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
4.0 | LSB | |||
Gajno = 20x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
5.0 | LSB | ||||
Akiri Eraron | Gajno = 1x | 4.0 | LSB | |||
Gajno = 20x | 5.0 | LSB | ||||
Kompensa Eraro | Gajno = 1x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
3.0 | LSB | |||
Gajno = 20x
VREF = 4V, VCC = 5V ADC-horloĝo = 50 - 200 kHz |
4.0 | LSB | ||||
Konverta Tempo | Senpaga Kurado-Konvertiĝo | 70 | 280 | µs | ||
Horloĝa Frekvenco | 50 | 200 | kHz | |||
VIN | Eniga Voltage | GND | VCC | V | ||
VDIFF | Eniga Diferenciala Voltage | VREF/Gain | V | |||
Eniga Banda Larĝo | 4 | kHz | ||||
AREF | Ekstera Referenco Voltage | 2.0 | VCC - 1.0 | V | ||
VINT | Interna Voltage Referenco | 1.0 | 1.1 | 1.2 | V | |
Interna 2.56V-Referenco (1) | VCC > 3.0V | 2.3 | 2.56 | 2.8 | V | |
RREF | Referenca Eniga Rezisto | 32 | kΩ | |||
PLUVO | Analoga Eniga Rezisto | 100 | MΩ | |||
ADC-Konverta Eligo | -512 | 511 | LSB |
Instrukcia Resumo
Mnemonikoj | Operandoj | Priskribo | Operacio | Flagoj | #Horloĝoj |
ARITMETIKA KAJ LOGIKAJ INSTRUOJ | |||||
ALDONI | Rd, Rr | Aldonu du Registrojn | Rd ← Rd + Rr | Z, C, N, V, H | 1 |
ADC | Rd, Rr | Aldonu per Carry du Registrojn | Rd ← Rd + Rr + C | Z, C, N, V, H | 1 |
ADIW | Rdl, K | Aldonu Tujan al Vorto | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
SUB | Rd, Rr | Subtrahi du Registrojn | Rd ← Rd – Rr | Z, C, N, V, H | 1 |
mi grimpis | Rd, K | Subtrahi Konstanton de Registro | Rd ← Rd – K | Z, C, N, V, H | 1 |
SBC | Rd, Rr | Subtrahi per Portu du Registrojn | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Rd, K | Subtrahi kun Carry Constant de Reg. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | Rdl, K | Subtrahi Tujan de Vorto | Rdh:Rdl ← Rdh:Rdl – K | Z, C, N, V, S | 2 |
KAJ | Rd, Rr | Logikaj KAJ Registroj | Rd ← Rd ∙ Rr | Z, N, V | 1 |
ANDI | Rd, K | Logika KA Registro kaj Konstanto | Rd ← Rd ∙ K | Z, N, V | 1 |
OR | Rd, Rr | Logikaj A Reg Registroj | Rd ← Rd v Rr | Z, N, V | 1 |
ORI | Rd, K | Logika A Register Registro kaj Konstanto | Rd ← Rd v K | Z, N, V | 1 |
EOR | Rd, Rr | Ekskluzivaj A OR Registroj | Rd ← Rd ⊕ Rr | Z, N, V | 1 |
COM | Rd | Unu Komplemento | Rd ← 0xFF − Rd | Z, C, N, V | 1 |
NEG | Rd | Dua Komplemento | Rd ← 0x00 − Rd | Z, C, N, V, H | 1 |
SBR | Rd, K | Enmetu Bitojn en Registro | Rd ← Rd v K | Z, N, V | 1 |
CBR | Rd, K | Malplenigi Bitojn en Registro | Rd ← Rd ∙ (0xFF – K) | Z, N, V | 1 |
INC | Rd | Pliigo | Rd ← Rd + 1 | Z, N, V | 1 |
DEC | Rd | Malkresko | Rd ← Rd − 1 | Z, N, V | 1 |
TST | Rd | Testo pri Nulo aŭ Minuso | Rd ← Rd ∙ Rd | Z, N, V | 1 |
CLR | Rd | Klara Registro | Rd ← Rd ⊕ Rd | Z, N, V | 1 |
SER | Rd | Fiksita Registro | Rd ← 0xFF | Neniu | 1 |
BRANKAJ INSTRUOJ | |||||
RJMP | k | Relativa Salto | Komputilo ← Komputilo + k + 1 | Neniu | 2 |
IJMP | Nerekta Salto al (Z) | Komputilo ← Z | Neniu | 2 | |
RCALL | k | Relativa Subrutina Voko | Komputilo ← Komputilo + k + 1 | Neniu | 3 |
ICALL | Nerekta Alvoko al (Z) | Komputilo ← Z | Neniu | 3 | |
RET | Subrutina Reveno | Komputilo ← Stako | Neniu | 4 | |
RETI | Interrompi Revenon | Komputilo ← Stako | I | 4 | |
CPSE | Rd, Rr | Komparu, Saltu se Egala | se (Rd = Rr) PC ← PC + 2 aŭ 3 | Neniu | 1/2/3 |
CP | Rd, Rr | Komparu | Rd − Rr | Z, N, V, C, H | 1 |
CPC | Rd, Rr | Komparu kun Carry | Rd − Rr − C | Z, N, V, C, H | 1 |
KPI | Rd, K | Komparu Registri kun Tuja | Rd − K | Z, N, V, C, H | 1 |
SBRC | Rr, nask | Saltu se Bit en Registro malpleniĝis | se (Rr(b)=0) PC ← PC + 2 aŭ 3 | Neniu | 1/2/3 |
SBRS | Rr, nask | Saltu se Bit en Registro estas Agordita | se (Rr(b)=1) PC ← PC + 2 aŭ 3 | Neniu | 1/2/3 |
SBIC | P, b | Saltu, se Bit en I / O-Registro malpleniĝis | se (P(b)=0) PC ← PC + 2 aŭ 3 | Neniu | 1/2/3 |
SBIS | P, b | Saltu se Bit en I / O-Registro estas Agordita | se (P(b)=1) PC ← PC + 2 aŭ 3 | Neniu | 1/2/3 |
BRBS | s, k | Branĉo se Statuso-Flago Agordas | se (SREG(j) = 1) tiam PC←PC+k + 1 | Neniu | 1/2 |
BRBC | s, k | Filio se Statuso-Flago Malpleniĝis | se (SREG(j) = 0) tiam PC←PC+k + 1 | Neniu | 1/2 |
BREQ | k | Branĉo se Egala | se (Z = 1) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRNE | k | Branĉo se Ne Egala | se (Z = 0) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRCS | k | Filio se Carry Set | se (C = 1) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRCC | k | Filio se Porti Malplenigita | se (C = 0) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRSH | k | Filio se Sama aŭ Pli Alta | se (C = 0) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRLO | k | Branĉo se Malsupra | se (C = 1) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRMI | k | Branĉo se Minus | se (N = 1) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRPL | k | Filio se Plus | se (N = 0) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRGE | k | Branĉo se Pli Granda aŭ Egala, Subskribita | se (N ⊕ V= 0) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRLT | k | Filio se Malpli ol Nulo, Subskribita | se (N ⊕ V= 1) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRHS | k | Branĉo se Duone Portas Flagaron | se (H = 1) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRHC | k | Branĉo, se Duono Portas Flagon Malplenigita | se (H = 0) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRTS | k | Filio se T-Flago-Aro | se (T = 1) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRTC | k | Filio se T Flago Malpleniĝis | se (T = 0) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRVS | k | Branĉu se Superflua Flago estas Agordita | se (V = 1) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRVC | k | Branĉu se Superflua Flago estas Forigita | se (V = 0) tiam PC ← PC + k + 1 | Neniu | 1/2 |
BRIE | k | Filio se Interrompo Eblas | se ( I = 1) tiam PC ← PC + k + 1 | Neniu | 1/2 |
NUDANTO | k | Filio se Interrompi Malebligas | se ( I = 0) tiam PC ← PC + k + 1 | Neniu | 1/2 |
INSTRUOJ DE BIT KAJ BIT-TEST | |||||
SBI | P, b | Agordi Biton en I / O-Registro | I/O(P,b) ← 1 | Neniu | 2 |
CBI | P, b | Klara Peco en I / O-Registro | I/O(P,b) ← 0 | Neniu | 2 |
LSL | Rd | Logika Ŝanĝo Maldekstre | Rd(n+1) ← Rd(n), Rd(0) ← 0 | Z, C, N, V | 1 |
LSR | Rd | Logika Ŝanĝo Dekstre | Rd(n) ← Rd(n+1), Rd(7) ← 0 | Z, C, N, V | 1 |
ROLO | Rd | Turnu Maldekstren Tra Portu | Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) | Z, C, N, V | 1 |
ROR | Rd | Rotacii Dekstren Tra Porti | Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) | Z, C, N, V | 1 |
ASR | Rd | Aritmetika Ŝanĝo Dekstre | Rd(n) ← Rd(n+1), n=0..6 | Z, C, N, V | 1 |
Mnemonikoj | Operandoj | Priskribo | Operacio | Flagoj | #Horloĝoj |
Interŝanĝi | Rd | Interŝanĝi Ronĝojn | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Neniu | 1 |
BSET | s | Flagaro | SREG(j) ← 1 | SREG (j) | 1 |
BCLR | s | Flago Klara | SREG(j) ← 0 | SREG (j) | 1 |
BST | Rr, nask | Bita Butiko de Registro al T. | T ← Rr(b) | T | 1 |
BLD | Rd, nask | Bita ŝarĝo de T al Registro | Rd(b) ← T | Neniu | 1 |
SEC | Fiksita Porti | C ← 1 | C | 1 | |
CLC | Klara Portu | C ← 0 | C | 1 | |
SEN | Agordi Negativan Flagon | N ← 1 | N | 1 | |
CLN | Klara Negativa Flago | N ← 0 | N | 1 | |
SEZ | Agordi Nulan Flagon | Z ← 1 | Z | 1 | |
CLZ | Klara Nula Flago | Z ← 0 | Z | 1 | |
SEI | Tutmonda Interrompo Ebligi | mi ← 1 | I | 1 | |
CLI | Tutmonda Interrompa Malŝalti | mi ← 0 | I | 1 | |
SES | Agordi Subskribitan Testan Flagon | S ← 1 | S | 1 | |
CLS | Klara Subskribita Testoflago | S ← 0 | S | 1 | |
SEV | Fiksu Duan Kompletan Superfluaĵon. | V ← 1 | V | 1 | |
CLV | Klara Du-Kompleta Superfluaĵo | V ← 0 | V | 1 | |
ARO | Enmetu T en SREG | T ← 1 | T | 1 | |
CLT | Klara T en SREG | T ← 0 | T | 1 | |
SEH | Enmetu Duonportan Flagon en SREG | H ← 1 | H | 1 | |
CLH | Klara Duonporta Flago en SREG | H ← 0 | H | 1 | |
INSTRUOJ DE DATUMO TRANSDONO | |||||
MOV | Rd, Rr | Movu Inter Registroj | Rd ← Rr | Neniu | 1 |
MOVW | Rd, Rr | Kopiu Registri Vorton | Rd+1:Rd ← Rr+1:Rr | Neniu | 1 |
LDI | Rd, K | Ŝarĝo Tuja | Rd ← K | Neniu | 1 |
LD | Rd, X | Ŝargi Nerektan | Rd ← (X) | Neniu | 2 |
LD | Rd, X + | Ŝargi Nerektan kaj Post-Inc. | Rd ← (X), X ← X + 1 | Neniu | 2 |
LD | Rd, - X | Ŝargi Nerektan kaj Antaŭdec. | X ← X – 1, Rd ← (X) | Neniu | 2 |
LD | Rd, Y | Ŝargi Nerektan | Rd ← (Y) | Neniu | 2 |
LD | Rd, Y + | Ŝargi Nerektan kaj Post-Inc. | Rd ← (Y), Y ← Y + 1 | Neniu | 2 |
LD | Rd, - Y | Ŝargi Nerektan kaj Antaŭdec. | Y ← Y – 1, Rd ← (Y) | Neniu | 2 |
LDD | Rd, Y + q | Ŝargi Nerektan kun Delokiĝo | Rd ← (Y + q) | Neniu | 2 |
LD | Rd, Z | Ŝargi Nerektan | Rd ← (Z) | Neniu | 2 |
LD | Rd, Z + | Ŝargi Nerektan kaj Post-Inc. | Rd ← (Z), Z ← Z+1 | Neniu | 2 |
LD | Rd, -Z | Ŝargi Nerektan kaj Antaŭdec. | Z ← Z – 1, Rd ← (Z) | Neniu | 2 |
LDD | Rd, Z + q | Ŝargi Nerektan kun Delokiĝo | Rd ← (Z + q) | Neniu | 2 |
LDS | Rd, k | Ŝargi Rekta de SRAM | Rd ← (k) | Neniu | 2 |
ST | X, Rr | Butiko Nerekta | (X) ← Rr | Neniu | 2 |
ST | X +, Rr | Butiko Nerekta kaj Post-Inc. | (X) ← Rr, X ← X + 1 | Neniu | 2 |
ST | - X, Rr | Butiko Nerekta kaj Antaŭdec. | X ← X – 1, (X) ← Rr | Neniu | 2 |
ST | Y, Rr | Butiko Nerekta | (Y) ← Rr | Neniu | 2 |
ST | Y +, Rr | Butiko Nerekta kaj Post-Inc. | (Y) ← Rr, Y ← Y + 1 | Neniu | 2 |
ST | - Jes, Rr | Butiko Nerekta kaj Antaŭdec. | Y ← Y – 1, (Y) ← Rr | Neniu | 2 |
STD | Y + q, Rr | Butiko Nerekta kun Delokiĝo | (Y + q) ← Rr | Neniu | 2 |
ST | Z, Rr | Butiko Nerekta | (Z) ← Rr | Neniu | 2 |
ST | Z +, Rr | Butiko Nerekta kaj Post-Inc. | (Z) ← Rr, Z ← Z + 1 | Neniu | 2 |
ST | -Z, Rr | Butiko Nerekta kaj Antaŭdec. | Z ← Z – 1, (Z) ← Rr | Neniu | 2 |
STD | Z + q, Rr | Butiko Nerekta kun Delokiĝo | (Z + q) ← Rr | Neniu | 2 |
STS | k, Rr | Butiko Rekta al SRAM | (k) ← Rr | Neniu | 2 |
LPM | Ŝarĝi Programan Memoron | R0 ← (Z) | Neniu | 3 | |
LPM | Rd, Z | Ŝarĝi Programan Memoron | Rd ← (Z) | Neniu | 3 |
LPM | Rd, Z + | Ŝarĝi Programan Memoron kaj Post-Inc | Rd ← (Z), Z ← Z+1 | Neniu | 3 |
SPM | Stoki Programan Memoron | (z) ← R1:R0 | Neniu | ||
IN | Rd, P | En Haveno | Rd ← P | Neniu | 1 |
EKSTER | P, Rr | Ekster Haveno | P ← Rr | Neniu | 1 |
PUŜO | Rr | Puŝu Registri sur Stako | Stako ← Rr | Neniu | 2 |
POP | Rd | Popa Registro de Stako | Rd ← Stako | Neniu | 2 |
Instrukcioj pri MCU-KONTROLO | |||||
NOP | Neniu Operacio | Neniu | 1 | ||
DORMI | Dormu | (vidu specifan priskribon por dorma funkcio) | Neniu | 1 | |
WDR | Restarigo de Gardhundo | (vidu specifan priskribon por WDR / Tempigilo) | Neniu | 1 | |
BREAK | Rompo |
Rapido (MHz) (1) | Provizo Voltage (V) | Temperaturgamo | Pako (2) | Menda Kodo (3) |
10 | 1.8 – 5.5 | Industria
(-40 ° C ĝis + 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 | Industria
(-40 ° C ĝis + 85 ° C) (4) |
8P3 | ATiny45-20PU |
8S2 | ATtiny45-20SU ATtiny45-20SUR
ATtiny45-20SH ATtiny45-20SHR |
|||
8X | ATtiny45-20XU ATtiny45-20XUR | |||
20M1 | ATtiny45-20MU ATtiny45-20MUR |
Notoj: 1. Por rapido kontraŭ provizo voltage, vidu sekcion 21.3 "Rapido" sur paĝo 163.
Ĉiuj pakaĵoj estas sen Pb, sen halogenidoj kaj tute verdaj kaj ili konformas al la eŭropa direktivo pri Limigo de Danĝeraj Substancoj (RoHS).
Kodaj indikiloj
H: NiPdAu-plumbo
U: senbrila stano
R: bendo kaj bobeno
Ĉi tiuj aparatoj ankaŭ povas esti liveritaj en oblato. Bonvolu kontakti vian lokan Atmel-vendoficejon por detalaj mendaj informoj kaj minimumaj kvantoj.
Misprilaboro
Eraro ATtiny25
La revizia letero en ĉi tiu sekcio rilatas al la revizio de la aparato ATtiny25.
Rev D - F
Neniu konata eraro.
Rivoluo B - C
EEPROM-legado povas malsukcesi ĉe malalta provizo voltage / malalta horloĝofrekvenco
EEPROM-legado povas malsukcesi ĉe malalta provizo voltage / malalta horloĝofrekvenco
Provante legi EEPROM je malaltaj horloĝaj oftecoj kaj / aŭ malalta provizo voltagE povas rezultigi malvalidajn datumojn.
Problemo-Riparo / Solvo
Ne uzu la EEPROM kiam horloĝa ofteco estas sub 1 MHz kaj liveras voltage estas sub 2V. Se operacian oftecon oni ne povas levi super 1 MHz, tiam liveru voltagKaj devus esti pli ol 2V. Simile, se provizo voltagMi ne povas leviĝi super 2V, do operacia ofteco devas esti pli ol 1 MHz.
Oni scias, ke ĉi tiu funkcio dependas de temperaturo, sed ĝi ne estis karakterizita. Gvidlinioj estas donitaj nur por ĉambra temperaturo.
Revolucio A
Ne sampgvidis.
Eraro ATtiny45
La revizia letero en ĉi tiu sekcio rilatas al la revizio de la aparato ATtiny45.
Rev F - G
Neniu konata eraro
Rev D - E
EEPROM-legado povas malsukcesi ĉe malalta provizo voltage / malalta horloĝofrekvenco
EEPROM-legado povas malsukcesi ĉe malalta provizo voltage / malalta horloĝofrekvenco
Provante legi EEPROM je malaltaj horloĝaj oftecoj kaj / aŭ malalta provizo voltagE povas rezultigi malvalidajn datumojn.
Problemo-Riparo / Solvo
Ne uzu la EEPROM kiam horloĝa ofteco estas sub 1 MHz kaj liveras voltage estas sub 2V. Se operacian oftecon oni ne povas levi super 1 MHz, tiam liveru voltagKaj devus esti pli ol 2V. Simile, se provizo voltagMi ne povas leviĝi super 2V, do operacia ofteco devas esti pli ol 1 MHz.
Oni scias, ke ĉi tiu funkcio dependas de temperaturo, sed ĝi ne estis karakterizita. Gvidlinioj estas donitaj nur por ĉambra temperaturo.
Rivoluo B - C
PLL ne ŝlosas
EEPROM legita de aplika kodo ne funkcias en Ŝlosila Bita Reĝimo 3
EEPROM-legado povas malsukcesi ĉe malalta provizo voltage / malalta horloĝofrekvenco
Tempomezurilo 1 PWM-produkta generacio sur OC1B- XOC1B ne funkcias ĝuste
PLL ne ŝlosas
Kiam ĉe frekvencoj sub 6.0 MHz, la PLL ne ŝlosiĝos
Problemo ripari / Solvo
Kiam vi uzas la PLL, funkciu je 6.0 MHz aŭ pli alte.
EEPROM legita de aplika kodo ne funkcias en Ŝlosila Bita Reĝimo 3
Kiam la Memoraj Serurpecoj LB2 kaj LB1 estas programitaj al reĝimo 3, EEPROM-legado ne funkcias de la aplika kodo.
Problemo Ripari / Ĉirkaŭiri
Ne agordu Ŝlosilan Protektan Reĝimon 3 kiam la aplika kodo devas legi de EEPROM.
EEPROM-legado povas malsukcesi ĉe malalta provizo voltage / malalta horloĝofrekvenco
Provante legi EEPROM je malaltaj horloĝaj oftecoj kaj / aŭ malalta provizo voltagE povas rezultigi malvalidajn datumojn.
Problemo-Riparo / Solvo
Ne uzu la EEPROM kiam horloĝa ofteco estas sub 1 MHz kaj liveras voltage estas sub 2V. Se operacian oftecon oni ne povas levi super 1 MHz, tiam liveru voltagKaj devus esti pli ol 2V. Simile, se provizo voltagMi ne povas leviĝi super 2V, do operacia ofteco devas esti pli ol 1 MHz.
Oni scias, ke ĉi tiu funkcio dependas de temperaturo, sed ĝi ne estis karakterizita. Gvidlinioj estas donitaj nur por ĉambra temperaturo.
Tempomezurilo 1 PWM-produkta generacio sur OC1B - XOC1B ne funkcias ĝuste
Timer Counter1 PWM-eligo OC1B-XOC1B ne funkcias ĝuste. Nur en la kazo, kiam la kontrolaj bitoj, COM1B1 kaj COM1B0 estas en la sama reĝimo kiel COM1A1 kaj COM1A0, respektive, la eliro OC1B-XOC1B funkcias ĝuste.
Problemo Ripari / Ĉirkaŭiri
La sola solvo estas uzi saman kontrolan agordon sur kontrolaj bitoj COM1A [1: 0] kaj COM1B [1: 0], vidu tabelon 14-4 en la datuma folio. La problemo estis riparita por Tiny45 rev D.
Revolucio A
Tro alta potenco malalta elektrokonsumo
DebugWIRE perdas komunikadon kiam unuopa paŝado en interrompojn
PLL ne ŝlosas
EEPROM legita de aplika kodo ne funkcias en Ŝlosila Bita Reĝimo 3
EEPROM-legado povas malsukcesi ĉe malalta provizo voltage / malalta horloĝofrekvenco
Tro alta potenco malalta elektrokonsumo
Tri situacioj kondukos al tro alta elektrokonsumo. Ĉi-tiuj estas:
Ekstera horloĝo estas elektita per fuzeoj, sed la I / O PORT ankoraŭ estas ebligita kiel eliro.
La EEPROM estas legita antaŭ enŝalti la elektran sistemon.
VCC estas 4.5 voltoj aŭ pli alta.
Malgarantio: La informoj en ĉi tiu dokumento estas provizita lige kun Atmel-produktoj. Neniu licenco, esprima aŭ implicita, per malpermeso aŭ alie, al ajna intelekta proprieta rajto estas donita de ĉi tiu dokumento aŭ lige kun la vendo de Atmel-produktoj. KROM KIEL INSTALITA EN LA ATMEL-KONDIĈOJ DE VENDO LOKITA SUR LA ATMEL. WEBRETEJO, ATMEL ASUPOZAS NENIUN RESPONDEBON KAJ RILAS AJN AJN ESPPRIMITAJ, IMPLITA AŬ LEĜA GARANTIO RIGLATANTA AL ĜIAJ PRODUZOJ INKLUDE, SED NE LIMIGISTE AL, LA IMPLITA GARANTIO PRI KOMERKABLECO, TAŬGECO POR APARTA CELO, INFRULO. NENIEK ATMEL RESPONDAS PRI IUJ REKTA, NEREKTA, KONSEKVA, PUNITIVA, SPECIALA AŬ EKZENDAJ damaĝoj (INKLUDE, SEN LIMIGO, damaĝoj por perdo kaj profitoj, komercaj interrompoj aŭ perdo de informoj) ekestiĝantaj pro la uzokutimo. ĈI ĈI DOKUMENTO, Eĉ SE ATMEL ESTIS INFORMITA PRI LA POSIBLESTO DE TIAJ damaĝoj.
Atmel faras neniujn reprezentojn aŭ garantiojn rilate la precizecon aŭ kompletecon de la enhavo de ĉi tiu dokumento kaj rezervas la rajton fari ŝanĝojn al specifoj kaj priskriboj de produktoj iam ajn sen avizo. Atmel ne faras ajnan devontigon ĝisdatigi la informojn enhavitajn ĉi tie. Krom se specife provizite alie, Atmel-produktoj ne taŭgas por kaj ne devas esti uzataj en aŭtomobilaj aplikoj. Atmel-produktoj ne estas destinitaj, rajtigitaj aŭ garantiitaj por uzo kiel komponantoj en aplikoj intencitaj por subteni aŭ subteni vivon.