Atmel

Mikrokontrollues AVR 8-bit Atmel me Flash të programueshëm në sistem 2/4/8K byteçip

 

Veçoritë

  • Mikrokontrollues 8-bitësh AVR® me performancë të lartë, me fuqi të ulët
  • Arkitektura e përparuar RISC
  • 120 udhëzime të fuqishme - ekzekutimi më i ciklit të orës unike
  • 32 x 8 Regjistrat e Punës me Qëllim të Përgjithshëm
  • Operacion plotësisht statik
  • Programi jo i paqëndrueshëm dhe Kujtimet e të Dhënave
  • 2/4 / 8K bajte të programit të programueshëm në sistem memorje flash
  • Qëndrueshmëria: 10,000 Cikle Shkrimi/Fshije
  • 128/256/512 Bytes EEPROM i Programueshëm në Sistem
  • Qëndrueshmëria: 100,000 Cikle Shkrimi/Fshije
  • 128/256/512 Bytes SRAM i Brendshëm
  • Bllokimi i Programimit për Programin Flash të Vetë-Programimit dhe Sigurinë e të Dhënave EEPROM

Karakteristikat periferike

  • Kohëmatësi / njehsori 8-bitësh me prescaler dhe dy kanale PWM
  • Kohëmatësi / njehsori me shpejtësi të lartë 8-bitëshe me prescaler të veçantë
  • 2 Prodhime të PWM me frekuencë të lartë me dalje të veçantë Krahasoni regjistrat
  • Programues i Kohen e Vdekur Generator
  • USI - Ndërfaqja Seriale Universale me Detektorin e Kushtit të Fillimit
  • ADC 10-bit

4 kanale të vetme

2 Çifte diferenciale të kanaleve ADC me fitim të programueshëm (1x, 20x)

Matja e temperaturës

Kohëmatësi i programueshëm i vëzhguesit me oshilator të veçantë në çip

Krahasues analog me chip

Karakteristikat speciale të mikrokontrolluesit

debugWIRE Sistemi i korrigjimit të gabimeve

Programueshëm në Sistem përmes Portit SPI

Burime të Jashtme dhe të Brendshme të Ndërprerjeve

Modaliteti i papunësisë në fuqi, zvogëlimi i zhurmës ADC dhe rënia e energjisë

Qarku i rivendosur i ndezjes së përmirësuar

Qarku i Programueshëm i Zbulimit të Kafe

Oshilatori i Kalibruar i Brendshëm

I / O dhe Paketat

Gjashtë linja të programueshme I / O

8-pin PDIP, 8-pin SOIC, 20-pad QFN / MLF dhe 8-pin TSSOP (vetëm ATtiny45 / V)

Vëllimi operativtage
- 1.8 - 5.5V për ATtiny25V / 45V / 85V
- 2.7 - 5.5V për ATtiny25 / 45/85

Shkalla e Shpejtësisë
- 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

Diapazoni i temperaturës industriale

Konsumi i ulët i energjisë

Modaliteti aktiv:

1 MHz, 1.8V: 300 μA

Modaliteti i uljes së energjisë:

Konfigurimet e pinit

Pinout ATtiny25 / 45/85 Konfigurimi

Përshkrimet e pin

KQV: Furnizimi vëlltage.
GND: Tokë.
Porta B (PB5:PB0): Porta B është një port I/O me dy drejtime 6-bitësh me rezistorë të brendshëm tërheqës (të zgjedhur për çdo bit). Buferët e daljes së Portit B kanë karakteristika simetrike të ngasjes me aftësi të lartë si zhytjeje ashtu edhe burim. Si hyrje, kunjat e Portit B që tërhiqen nga jashtë do të marrin rrymë nëse aktivizohen rezistorët e tërheqjes. Kunjat e Portit B tregohen me tre kur një kusht i rivendosjes bëhet aktiv, edhe nëse ora nuk funksionon.

Porti B gjithashtu shërben funksionet e veçorive të ndryshme të veçanta të ATtiny25 / 45/85 siç janë renditur
Në ATtiny25, portat e programueshme I / O PB3 dhe PB4 (kunjat 2 dhe 3) shkëmbehen në Modalitetin e Përputhshmërisë ATtiny15 për mbështetjen e pajtueshmërisë së prapambetur me ATtiny15.

RESET: Rivendos hyrjen. Një nivel i ulët në këtë kunj për më shumë se gjatësia minimale e pulsit do të gjenerojë një rivendosje, edhe nëse ora nuk funksionon dhe me kusht që kunja e rivendosjes të mos jetë çaktivizuar. Gjatësia minimale e pulsit jepet në Tabela 21-4 në faqen 165. Pulsat më të shkurtër nuk janë të garantuara për të gjeneruar një rivendosje.

Pin-i i rivendosjes mund të përdoret gjithashtu si një pin (i dobët) I / O.

Mbiview

ATtiny25 / 45/85 është një mikrokontrollues 8-bit CMOS me fuqi të ulët bazuar në arkitekturën e RISC të përmirësuar AVR. Duke ekzekutuar udhëzime të fuqishme në një cikël të vetëm të orës, ATtiny25 / 45/85 arrin xhiros që afrohen 1 MIPS për MHz duke lejuar që projektuesi i sistemit të zgjedh konsumin e energjisë kundrejt shpejtësisë së përpunimit.

Diagrami i Bllokut Diagrami i bllokut

Bërthama AVR kombinon një grup udhëzimesh të pasura me 32 regjistra të përgjithshëm të punës. Të 32 regjistrat janë të lidhur drejtpërdrejt me Njësinë Logjike Arithmetike (ALU), duke lejuar që të regjistrohen dy regjistra të pavarur në një udhëzim të vetëm të ekzekutuar në një cikël të orës. Arkitektura që rezulton është më efikase në kod ndërsa arrin xhiros deri në dhjetë herë më shpejt sesa mikrokontrolluesit konvencionalë CISC.

ATtiny25 / 45/85 ofron veçoritë e mëposhtme: 2/4 / 8K bajtë të Bllokut të Programueshëm në Sistem, 128/256/512 bajt EEPROM, 128/256/256 bajt SRAM, 6 linja I / O me qëllim të përgjithshëm, 32 të përgjithshme regjistrat e punës për qëllime, një kohëmatës / njehsor 8-bitësh me mënyrat e krahasimit, një kohëmatës / numërues 8-bitësh me shpejtësi të lartë, ndërfaqja seriale universale, ndërprerjet e brendshme dhe të jashtme, një ADC me 4 kanale, 10-bit, një kohëmatës i programueshëm i vrojtimit me të Oshilatori dhe tre modalitete të kursimit të energjisë të zgjedhura nga softueri. Modaliteti i papunësisë ndalon CPU-në ndërsa lejon që sistemi SRAM, Timer / Counter, ADC, Analog Comparator dhe Interrupt të vazhdojnë të funksionojnë. Modaliteti i fikjes kursen përmbajtjen e regjistrit, duke çaktivizuar të gjitha funksionet e çipit deri në ndërprerjen ose rivendosjen e harduerit tjetër. Modaliteti i Reduktimit të Zhurmës ADC ndalon CPU-në dhe të gjitha modulet I / O përveç ADC, për të minimizuar zhurmën e ndërrimit gjatë konvertimeve të ADC.

Pajisja është prodhuar duke përdorur teknologjinë e kujtesës jo të paqëndrueshme me dendësi të lartë të Atmel. On-chip ISP Flash lejon që memoria e Programit të ri-programohet në-Sistem përmes një ndërfaqe serike SPI, nga një programues i kujtesës jo i paqëndrueshëm ose nga një kod nisës On-chip që ekzekutohet në bërthamën AVR.

ATtiny25 / 45/85 AVR mbështetet me një komplet të plotë të mjeteve të zhvillimit të programeve dhe sistemit duke përfshirë: Përpiluesit C, Montuesit Makro, Rregulluesi / Simuluesit e Programit dhe kompletet e Vlerësimit.

Rreth Burimeve

Një grup gjithëpërfshirës i mjeteve të zhvillimit, shënimeve të aplikimit dhe fletëve të të dhënave janë në dispozicion për t'u shkarkuar në http://www.atmel.com/avr.

Kodi Sheshamples

Ky dokumentacion përmban kod të thjeshtë p.shampdisa që tregojnë shkurtimisht se si të përdorni pjesë të ndryshme të pajisjes. Këta kod p.shamples supozojnë se titulli i pjesës specifike file përfshihet para përpilimit. Jini të vetëdijshëm se jo të gjithë shitësit e përpiluesve të C përfshijnë përkufizime bit në kokë files dhe trajtimi i ndërprerë në C varet nga përpiluesi. Ju lutemi konfirmoni me dokumentacionin e përpiluesit C për më shumë detaje.

Për regjistrat I / O që ndodhen në hartën e zgjeruar I / O, udhëzimet "IN", "OUT", "SBIS", "SBIC", "CBI" dhe "SBI" duhet të zëvendësohen me udhëzime që lejojnë hyrjen në I të zgjatur / O Në mënyrë tipike, kjo do të thotë "LDS" dhe "STS" të kombinuara me "SBRS", "SBRC", "SBR" dhe "CBR". Vini re se jo të gjitha pajisjet AVR përfshijnë një hartë të zgjeruar I / O.

Ndjeshmëria me prekje kapacitive

Atmel QTouch Library ofron një zgjidhje të thjeshtë për t'u përdorur për ndërfaqet e ndjeshme në prekje në mikrokontrolluesit Atmel AVR. Biblioteka QTouch përfshin mbështetje për metodat e blerjes QTouch® dhe QMatrix®.

Ndjenja e prekjes shtohet lehtësisht në çdo aplikacion duke lidhur Bibliotekën QTouch dhe duke përdorur Ndërfaqen e Programimit të Aplikimit (API) të bibliotekës për të përcaktuar kanalet e prekjes dhe sensorët. Më pas aplikacioni telefonon API-në për të marrë informacionin e kanalit dhe për të përcaktuar gjendjen e sensorit të prekjes.

Biblioteka QTouch është falas dhe mund të shkarkohet nga Atmel webfaqe. Për më shumë informacion dhe detaje të zbatimit, referojuni Udhëzuesit të Përdoruesit të Bibliotekës QTouch - gjithashtu i disponueshëm nga Atmel webfaqe.

Ruajtja e të dhënave

Besueshmëria Rezultatet e kualifikimit tregojnë se niveli i parashikuar i dështimit të ruajtjes së të dhënave është shumë më pak se 1 PPM mbi 20 vjet në 85 ° C ose 100 vjet në 25 ° C.

Bërthama e CPU AVR

Hyrje

Ky seksion diskuton në përgjithësi arkitekturën thelbësore të AVR. Funksioni kryesor i thelbit të CPU-së është të sigurojë ekzekutimin korrekt të programit. Prandaj, CPU-ja duhet të jetë në gjendje të përdorë memorjet, të kryejë llogaritjet, të kontrollojë pajisjet periferike dhe të trajtojë ndërprerjet.

Arkitektonike Mbiview Arkitekturë

Në mënyrë që të maksimizojë performancën dhe paralelizmin, AVR përdor një arkitekturë të Harvardit - me kujtime dhe autobusë të veçantë për programin dhe të dhënat. Udhëzimet në memorien e Programit ekzekutohen me një tubacion të një niveli të vetëm. Ndërsa një udhëzim po ekzekutohet, udhëzimi tjetër paraprakisht merret nga memoria e Programit. Ky koncept mundëson që udhëzimet të ekzekutohen në çdo cikël të orës. Kujtesa e programit është memorje flash e riprogramueshme në sistem.

Regjistri me qasje të shpejtë File përmban regjistra pune 32 x 8-bit për qëllime të përgjithshme me një kohë të vetme aksesi në ciklin e orës. Kjo lejon funksionimin e njësisë logjike aritmetike (ALU) me një cikël të vetëm. Në një operacion tipik ALU, dy operandë dalin nga Regjistri File, operacioni ekzekutohet dhe rezultati ruhet përsëri në Regjistër File- në një cikël të orës.

Gjashtë nga 32 regjistrat mund të përdoren si tre tregues indirekt adresash 16-bitësh për adresimin e Hapësirës së të Dhënave - duke bërë të mundur llogaritjet efikase të adresave. Një nga këta tregues adresash mund të përdoret gjithashtu si një tregues adresash për tabelat e kërkimit në kujtesën e Programit Flash. Këta regjistra të shtuar të funksioneve janë regjistri 16-bit X-, Y- dhe Z, i përshkruar më vonë në këtë seksion.

ALU mbështet veprime aritmetike dhe logjike midis regjistrave ose midis një konstante dhe një regjistri. Operacionet e regjistrit të vetëm mund të ekzekutohen gjithashtu në ALU. Pas një operacioni aritmetik, Regjistri i Statusit azhurnohet për të pasqyruar informacionin në lidhje me rezultatin e operacionit.

Rrjedha e programit sigurohet nga udhëzimet e kërcimit dhe thirrjes së kushtëzuar dhe të pakushtëzuar, të afta për të adresuar drejtpërdrejt tërë hapësirën e adresës. Shumica e udhëzimeve AVR kanë një format të vetëm fjalësh 16-bit, por ka edhe udhëzime 32-bit.

Gjatë ndërprerjeve dhe thirrjeve nënrutinë, adresa e kthimit Program Counter (PC) ruhet në Stack. Stack është alokuar në mënyrë efektive në të dhënat e përgjithshme SRAM, dhe rrjedhimisht madhësia e Stack është e kufizuar vetëm nga madhësia totale e SRAM dhe përdorimi i SRAM. Të gjithë programet e përdoruesve duhet të iniciojnë SP në rutinën Reset (para se të ekzekutohen nën-rutinat ose ndërprerjet). Stack Pointer (SP) lexohet / shkruhet i arritshëm në hapësirën I / O. Të dhënat SRAM mund të arrihen lehtësisht përmes pesë mënyrave të ndryshme të adresimit të mbështetura në arkitekturën AVR.

Hapësira e kujtesës në arkitekturën AVR janë të gjitha harta lineare dhe të rregullta të kujtesës.

Një modul fleksibël i ndërprerjes ka regjistrat e tij të kontrollit në hapësirën I / O me një bit shtesë Global Aktivizo ndërprerjen në Regjistrin e Statusit. Të gjitha ndërprerjet kanë një vektor të veçantë të ndërprerjeve në tabelën e vektorit të ndërprerjeve. Ndërprerjet kanë përparësi në përputhje me pozicionin e tyre të Vektorit të Ndërprerjeve. Sa më e ulët të jetë adresa e Vektorit të Ndërprerjes, aq më i lartë është përparësia.

Hapësira e kujtesës I/O përmban 64 adresa për funksionet periferike të CPU si Regjistra Kontrolli, SPI dhe funksione të tjera I/O. Kujtesa I/O mund të arrihet drejtpërdrejt, ose si vendndodhjet e Hapësirës së të Dhënave pas atyre të Regjistrit File, 0x20 - 0x5F.

ALU - Njësia Logjike Arithmetike

AVR ALU me performancë të lartë operon në lidhje të drejtpërdrejtë me të gjithë 32 regjistrat e punës me qëllime të përgjithshme. Brenda një cikli të vetëm të orës, ekzekutohen operacionet aritmetike midis regjistrave të qëllimit të përgjithshëm ose midis një regjistri dhe një regjistri të menjëhershëm. Operacionet ALU ndahen në tre kategori kryesore - funksionet aritmetike, logjike dhe bit. Disa implementime të arkitekturës gjithashtu ofrojnë një shumëzues të fuqishëm që mbështet si shumëzimin e nënshkruar / të nënshkruar ashtu edhe formatin fraksionar. Shihni seksionin "Seti i udhëzimeve" për një përshkrim të hollësishëm.

Regjistri i Statusit

Regjistri i Statusit përmban informacion në lidhje me rezultatin e udhëzimit aritmetik më të ekzekutuar së fundmi. Ky informacion mund të përdoret për të ndryshuar rrjedhën e programit në mënyrë që të kryejë operacione të kushtëzuara. Vini re se Regjistri i Statusit azhurnohet pas të gjitha veprimeve të ALU, siç specifikohet në Referencën e Udhëzimeve. Kjo në shumë raste do të heqë nevojën për përdorimin e udhëzimeve të veçanta të krahasimit, duke rezultuar në një kod më të shpejtë dhe më kompakt.

Regjistri i Statusit nuk ruhet automatikisht kur futni një rutinë të ndërprerjes dhe restaurohet kur ktheheni nga një ndërprerje. Kjo duhet të trajtohet nga softueri.

SREG - Regjistri i Statusit AVR

Regjistri i Statusit AVR - SREG - përcaktohet si:

Bit 7 6 5 4 3 2 1 0
0x3F I T H S V N Z C SREG
Lexo/Shkruaj R/W R/W R/W R/W R/W R/W R/W R/W
Vlera fillestare 0 0 0 0 0 0 0 0

Bit 7 - I: Aktivizimi i ndërprerjes globale

Biti i Aktivizimit të Ndërprerjeve Globale duhet të vendoset që ndërprerjet të aktivizohen. Kontrolli individual i mundësimit të ndërprerjes kryhet më pas në regjistrat e veçantë të kontrollit. Nëse Regjistri Global i Aktivizimit të Ndërprerjeve pastrohet, asnjë nga ndërprerjet nuk aktivizohet pavarësisht nga cilësimet individuale të aktivizimit të ndërprerjeve. I-bit pastrohet nga hardueri pasi të ketë ndodhur një ndërprerje dhe vendoset nga udhëzimi RETI për të mundësuar ndërprerjet pasuese. I-bit mund të vendoset dhe pastrohet nga aplikacioni me udhëzimet SEI dhe CLI, siç përshkruhet në referencën e grupit të udhëzimeve.

Bit 6 - T: Ruajtja e kopjimit të bitit

Udhëzimet e Bit Copy BLD (Bit LoaD) dhe BST (Bit STore) përdorin bitin T si burim ose destinacion për bitin e operuar. Pak nga një regjistër në Regjistër File mund të kopjohet në T me udhëzimin BST, dhe pak në T mund të kopjohet në pak në një regjistër në Regjistër File sipas udhëzimit BLD.

Bit 5 - H: Flamuri me Gjysmë Bartëse

Half Carry Flag H tregon një Gjysmë Carry në disa operacione aritmetike. Half Carry është i dobishëm në aritmetikën BCD. Shikoni "Përshkrimi i Udhëzimit" për informacion të hollësishëm.

Biti 4 – S: Biti i shenjës, S = N ⊕ V

S-bit-i është gjithmonë një ekskluzivitet ose midis Flamurit Negativ N dhe Flamurit të Mbushjes së Plotësimit të Dyve. Shikoni "Përshkrimi i Bashkimit të Udhëzimeve" për informacion të hollësishëm.

Bit 3 - V: Flamuri i Plotësimit të Plotësimit të Dy

Flamuri V i Mbushjes së Plotësimit të Dy-të mbështet aritmetikën e plotësimit të dyve. Shihni "Përshkrimi i Udhëzimit" për informacion të hollësishëm.

Bit 2 - N: Flamuri Negativ

Flamuri Negativ N tregon një rezultat negativ në një veprim aritmetik ose logjik. Shikoni "Përshkrimi i Udhëzimit" për informacion të hollësishëm.

Bit 1 - Z: Flamuri Zero

Zero Flag Z tregon një rezultat zero në një veprim aritmetik ose logjik. Shikoni "Përshkrimi i Udhëzimit" për informacion të hollësishëm.

Bit 0 - C: Mbaj flamurin

Carry Flag C tregon një bartje në një veprim aritmetik ose logjik. Shikoni "Përshkrimi i Udhëzimit" për informacion të hollësishëm.

Regjistri për qëllime të përgjithshme File

Regjistri File është optimizuar për grupin e udhëzimeve AVR Enhanced RISC. Për të arritur performancën dhe fleksibilitetin e kërkuar, skemat e mëposhtme të hyrjes/daljes mbështeten nga Regjistri File:

Një operand dalës 8 bit dhe një hyrje rezultati 8 bit

Dy operandë dalës 8 bit dhe një hyrje rezultati 8 bit

Dy operandë dalës 8 bit dhe një hyrje rezultati 16 bit

Një operand dalës 16 bit dhe një hyrje rezultati 16 bit

Figura 4-2 tregon strukturën e 32 regjistrave të punës me qëllim të përgjithshëm në NJMF. Qëllimi i përgjithshëm

Siç tregohet në Figura 4-2, secilit regjistër i caktohet gjithashtu një adresë e kujtesës së të dhënave, duke i hartuar ato drejtpërdrejt në 32 vendet e para të hapësirës së të dhënave të përdoruesit. Edhe pse nuk po zbatohet fizikisht si vende SRAM, kjo organizatë e kujtesës ofron fleksibilitet të madh në aksesin e regjistrave, pasi regjistrat e treguesve X-, Y- dhe Z-ja mund të vendosen për të indeksuar çdo regjistër në file.Shumica e udhëzimeve që funksionojnë në Regjistr File kanë qasje të drejtpërdrejtë në të gjithë regjistrat, dhe shumica e tyre janë udhëzime të një cikli.

Regjistri X, regjistri Y dhe regjistri Z

Regjistrat R26..R31 kanë disa funksione të shtuara në përdorimin e tyre për qëllime të përgjithshme. Këta regjistra janë tregues adresash 16-bitësh për adresimin indirekt të hapësirës së të dhënave. Tre regjistrat e adresave indirekte X, Y dhe Z janë përcaktuar siç përshkruhet në Figura 4-3.

Regjistrohu

Në mënyra të ndryshme adresimi, këta regjistra adresash kanë funksione si zhvendosje fikse, rritje automatike dhe ulje automatike (shih referencën e udhëzimeve për detaje).

Treguesi i pirgut

Stack është përdorur kryesisht për ruajtjen e të dhënave të përkohshme, për ruajtjen e ndryshoreve lokale dhe për ruajtjen e adresave të kthimit pas ndërprerjeve dhe thirrjeve nënrutinë. Regjistri i Stack Pointer gjithmonë tregon majën e Stack. Vini re se Stack-u zbatohet ndërsa rritet nga vendet e kujtesës më të lartë në vendet e kujtesës më të ulët. Kjo nënkupton që një komandë Stack PUSH zvogëlon Stack Pointer.

Stack Pointer tregon zonën e të dhënave SRAM Stack ku ndodhen Nën-Rutina dhe Stacket e Ndërprerjeve. Kjo hapësirë ​​Stack në të dhënat SRAM duhet të përcaktohet nga programi para se të ekzekutohen ndonjë thirrje nënrutinë ose të aktivizohen ndërprerjet. Stack Pointer duhet të vendoset në pikën mbi 0x60. Stack Pointer zvogëlohet nga një kur të dhënat shtyhen në Stack me udhëzimin PUSH dhe zvogëlohet nga dy kur adresa e kthimit shtyhet në Stack me thirrje ose ndërprerje të nënrutinës. Stack Pointer rritet me një kur të dhënat nxirren nga Stack me udhëzimin POP, dhe rritet me dy kur të dhënat hapen nga Stack me kthim nga nënrutina RET ose kthim nga ndërprerja RETI.

Treguesi Stack AVR implementohet si dy regjistra 8-bitësh në hapësirën I / O. Numri i bitëve të përdorur aktualisht varet nga zbatimi. Vini re se hapësira e të dhënave në disa implementime të arkitekturës AVR është aq e vogël sa që nevojitet vetëm SPL. Në këtë rast, Regjistri i SPH nuk do të jetë i pranishëm.

SPH dhe SPL - Regjistri i Stack Pointer

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

Koha e ekzekutimit të udhëzimeve

Ky seksion përshkruan konceptet e përgjithshme të kohës së aksesit për ekzekutimin e instruksionit. CPU-ja AVR drejtohet nga ora e CPU-së clkCPU, e gjeneruar drejtpërdrejt nga burimi i orës së zgjedhur për çipin. Nuk përdoret ndarje e brendshme e orës.

Fig4.4

Figura 4-4 tregon marrjen e instruksioneve paralele dhe ekzekutimet e instruksioneve të aktivizuara nga arkitektura e Harvardit dhe Regjistri i aksesit të shpejtë File koncept. Ky është koncepti bazë i tubacionit për të marrë deri në 1 MIPS për MHz me rezultatet përkatëse unike për funksionet për koston, funksionet për orë dhe funksionet për njësinë e energjisë.

Figura 4-5. Operacioni ALU me një cikël të vetëm

Fig4.5

Rivendosni dhe Trajtoni Ndërprerjen

AVR ofron disa burime të ndryshme të ndërprerjeve. Këto ndërprerje dhe Vektori i veçantë i Rivendosjes secila ka një Vektor të veçantë të Programit në hapësirën e kujtesës së Programit. Të gjitha ndërprerjeve u caktohen bitë individualë të mundshëm të cilët duhet të shkruhen logjikisht së bashku me bitin Global Mundëso ndërprerjen në Regjistrin e Statusit në mënyrë që të mundësojë ndërprerjen.

Adresat më të ulëta në hapësirën e memorjes së Programit përcaktohen si parazgjedhje si Rivendosja dhe Vektoret e Ndërprerjes. Lista e plotë e vektorëve është treguar në "Ndërprerjet" në faqen 48. Lista përcakton gjithashtu nivelet prioritare të ndërprerjeve të ndryshme. Sa më e ulët të jetë adresa, aq më i lartë është niveli i përparësisë. RESET ka përparësinë më të lartë, dhe tjetra është INT0 - Kërkesa e Ndërprerjes së Jashtme 0.

Kur ndodh një ndërprerje, I-biti i Aktivizimit Global të Ndërprerjeve pastrohet dhe të gjitha ndërprerjet janë me aftësi të kufizuara. Softueri i përdoruesit mund të shkruajë një logjikë në I-bit për të mundësuar ndërprerje të vendosura. Të gjitha ndërprerjet e aktivizuara mund të ndërpresin rutinën aktuale të ndërprerjeve. I-bit vendoset automatikisht kur ekzekutohet një udhëzim Kthimi nga Ndërprerja - RETI.

Në thelb ekzistojnë dy lloje ndërprerjesh. Lloji i parë shkaktohet nga një ngjarje që vendos Flamurin e Ndërprerjes. Për këto ndërprerje, Program Counter është vektorizuar në Vektorin aktual të Ndërprerjeve në mënyrë që të ekzekutojë rutinën e trajtimit të ndërprerjeve dhe pajisja pastron Flamurin përkatës të Ndërprerjeve. Flamujt e Ndërprerjes gjithashtu mund të pastrohen duke shkruar një logjikë në pozicionin (et) e bitit të flamurit për t'u pastruar. Nëse ndodh një gjendje ndërprerjeje ndërsa pastrohet biti përkatës i aktivizimit të ndërprerjes, Flamuri i Ndërprerjes do të vendoset dhe mbahet mend derisa të aktivizohet ndërprerja, ose flamuri të pastrohet nga softueri. Në mënyrë të ngjashme, nëse ndodhin një ose më shumë kushte ndërprerjeje ndërsa pastrohet biti Global Aktivizimi i Ndërprerjes, Flamuri (a) Përkatës i Ndërprerjes do të vendoset dhe mbahet mend derisa të vendoset biti Global Aktivizimi i Ndërprerjes, dhe më pas do të ekzekutohet sipas radhës së përparësisë.

Lloji i dytë i ndërprerjeve do të shkaktojë për sa kohë që gjendja e ndërprerjes është e pranishme. Këto ndërprerje nuk kanë domosdoshmërisht Flamuj të Ndërprerjeve. Nëse gjendja e ndërprerjes zhduket para se të aktivizohet ndërprerja, ndërprerja nuk do të shkaktohet.

Kur AVR del nga një ndërprerje, ai gjithmonë do të kthehet në programin kryesor dhe do të ekzekutojë një udhëzim tjetër para se të shërbehet ndonjë ndërprerje në pritje.

Vini re se Regjistri i Statusit nuk ruhet automatikisht kur futni një rutinë të ndërprerjes, as nuk rikthehet kur ktheheni nga një rutinë e ndërprerjes. Kjo duhet të trajtohet nga softueri.

Kur përdorni udhëzimin CLI për të çaktivizuar ndërprerjet, ndërprerjet do të çaktivizohen menjëherë. Asnjë ndërprerje nuk do të ekzekutohet pas udhëzimit CLI, edhe nëse ndodh njëkohësisht me udhëzimin CLI. Ish -i i mëposhtëmample tregon se si kjo mund të përdoret për të shmangur ndërprerjet gjatë sekuencës së shkrimit të caktuar në EEPROM.

Kodi i Kuvendit Pshample
në r16, SREG; ruaj vlerën SREG

cli ; çaktivizoni ndërprerjet gjatë sekuencës me kohë

sbi EECR, EEMPE; filloni të shkruani EEPROM

sbi EECR, EEPE

jashtë SREG, r16; rivendos vlerën SREG (I-bit)

Kodi C Pshample
char cSREG;

cSREG = SREG; /* ruaj vlerën SREG */

/* çaktivizo ndërprerjet gjatë sekuencës me kohë */

_CLI ();

EECR |= (1<

EECR | = (1 <

SREG = cSREG; /* rivendos vlerën SREG (I-bit) */

Kur përdorni udhëzimin SEI për të aktivizuar ndërprerjet, udhëzimi pas SEI do të ekzekutohet para çdo ndërprerjeje në pritje, siç tregohet në këtë shembullample.

Kodi i Kuvendit Pshample
sei ; vendos Global Interrupt Aktivizo

gjumë; futeni në gjumë, duke pritur për ndërprerje

; shënim: do të hyjë në gjumë para se të pritet

; ndërpres (të)

Kodi C Pshample
_SEI(); /* cakto Ndërprerjen Globale Aktivizo */

_SLEEP(); /* hyni në gjumë, duke pritur për ndërprerje */

/ * shënim: do të hyjë në gjumë para çdo ndërprerjeje në pritje * /

Koha e përgjigjes së ndërprerjes

Përgjigja e ekzekutimit të ndërprerjeve për të gjitha ndërprerjet e aktivizuara AVR është minimumi i katër cikleve të orës. Pas katër cikleve të orës, ekzekutohet adresa e Programit Vektor për rutinën aktuale të trajtimit të ndërprerjeve. Gjatë kësaj periudhe të katër cikleve të orës, Counter Programi shtyhet mbi Stack. Vektori normalisht është një kërcim në rutinën e ndërprerjes dhe ky kërcim kërkon tre cikle të orës. Nëse ndodh një ndërprerje gjatë ekzekutimit të një udhëzimi me shumë cikle, ky udhëzim përfundon para se të shërbehet ndërprerja. Nëse ndodh një ndërprerje kur MCU është në modalitetin e gjumit, koha e përgjigjes së ekzekutimit të ndërprerjes rritet me katër cikle të orës. Kjo rritje vjen përveç kohës së fillimit nga mënyra e përzgjedhur e gjumit.

Një kthim nga një rutinë e trajtimit të ndërprerjeve kërkon katër cikle të orës. Gjatë këtyre katër cikleve të orës, Numëruesi i Programit (dy bajt) del përsëri nga Stack, Stack Pointer rritet me dy, dhe I-bit në SREG është vendosur.

Kujtimet AVR

Kjo pjesë përshkruan kujtimet e ndryshme në ATtiny25 / 45/85. Arkitektura AVR ka dy hapësira kryesore të kujtesës, kujtesën e të dhënave dhe hapësirën e programit. Për më tepër, ATtiny25 / 45/85 përmban një Memorie EEPROM për ruajtjen e të dhënave. Të tre hapësirat e kujtesës janë lineare dhe të rregullta.

Kujtesa e programit të ri-programueshëm Flash në sistem

ATtiny25 / 45/85 përmban 2/4 / 8K bajt Memorje Flash e Riprogramueshme në Sistem e Riprogramueshme në Çip për ruajtjen e programit. Meqenëse të gjitha udhëzimet AVR janë të gjera 16 ose 32 bit, Flash-i organizohet si 1024/2048/4096 x 16.

Memoria Flash ka një qëndrueshmëri prej të paktën 10,000 cikleve të shkrimit / fshirjes. Numëruesi i Programit (PC) ATtiny25 / 45/85 është i gjerë 10/11/12 bit, duke adresuar kështu vendet e kujtesës së Programit 1024/2048/4096. “Programi i Kujtesës- duke u bashkuar ”në faqen 147 përmban një përshkrim të hollësishëm të shkarkimit serial të të dhënave Flash duke përdorur kunjat SPI.

Tabelat konstante mund të caktohen brenda gjithë hapësirës së adresës së kujtesës së Programit (shih përshkrimin e udhëzimit të memorjes LPM - Load Program).

Figura 5-1. Harta e memories së programit Harta e kujtesës

Kujtesa e të dhënave SRAM

Figura 5-2 tregon sesi është i organizuar Memoria SRAM ATtiny25 / 45/85.

Vendet e poshtme 224/352/607 të kujtesës së të dhënave i adresojnë të dy Regjistrit File, memoria I/O dhe të dhënat e brendshme SRAM. 32 vendet e para i drejtohen Regjistrit File, 64 lokacionet e radhës memoria standarde I/O, dhe vendndodhjet e fundit 128/256/512 adresojnë të dhënat e brendshme SRAM.

Pesë mënyrat e ndryshme të adresimit për mbulesën e kujtesës së të dhënave: Direkte, Indirekte me Zhvendosje, Indirekte, Indirekte me Para-zbritje dhe Indirekte me Post-rritje. Në Regjistër File, regjistrat R26 në R31 paraqesin regjistrat e treguesve të adresimit indirekt.

Adresimi i drejtpërdrejtë arrin të gjithë hapësirën e të dhënave.

Modaliteti Indirekt me Zhvendosje arrin 63 vendndodhje adresash nga adresa bazë e dhënë nga regjistri Y- ose Z-.

Kur përdorni modalitetet e adresimit indirekt të regjistrit me para-zvogëlim automatik dhe post-rritje, regjistrat e adresave X, Y dhe Z zvogëlohen ose rriten.

32 regjistrat e punës me qëllim të përgjithshëm, 64 Regjistrat I/O, dhe 128/256/512 bytes të të dhënave të brendshme SRAM në ATtiny25/45/85 janë të gjitha të arritshme përmes të gjitha këtyre mënyrave të adresimit. Regjistri File është përshkruar në “Gjen- Regjistri i Qëllimeve të Përgjithshme File”Në faqen 10.

Figura 5-2. Harta e memories së të dhënave Harta e kujtesës 2

Qasja në kujtesën e të dhënave Kohët

Ky seksion përshkruan konceptet e përgjithshme të kohës së hyrjes për aksesin e memories së brendshme. Qasja e të dhënave të brendshme SRAM kryhet në dy cikle clkCPU siç përshkruhet në Figura 5-3.

Figura 5-3. Ciklet e hyrjes në të dhënat SRAM në çip Në të dhënat e çipave Kujtesa e të dhënave EEPROM

ATtiny25 / 45/85 përmban 128/256/512 bajt të të dhënave memorje EEPROM. Isshtë organizuar si një hapësirë ​​e veçantë e të dhënave, në të cilën mund të lexohen dhe shkruhen bajte të vetëm. EEPROM ka një qëndrueshmëri prej të paktën 100,000 cikleve të shkrimit / fshirjes. Hyrja midis EEPROM dhe NJMF përshkruhet në vijim, duke specifikuar Regjistrat e Adresave EEPROM, Regjistrin e të Dhënave EEPROM dhe Regjistrin e Kontrollit EEPROM. Për detaje shih “Shkarkimi Serial” në faqen 151.

EEPROM Qasja e Leximit / Shkrimit

Regjistrat e Hyrjes EEPROM janë të arritshme në hapësirën I / O.

Orari i hyrjes në shkrim për EEPROM jepet në Tabela 5-1 në faqen 21. Sidoqoftë, një funksion vetë-kohësues lejon softuerin e përdoruesit të zbulojë kur mund të shkruhet bajt-i tjetër. Nëse kodi i përdoruesit përmban udhëzime që shkruajnë EEPROM, duhet të merren disa masa paraprake. Në furnizimet me energji të filtruar shumë, VCC ka të ngjarë të rritet ose të bjerë ngadalë

Fuqizim/ulje. Kjo bën që pajisja për një periudhë kohe të funksionojë me volumtage më e ulët se e specifikuar si minimum për frekuencën e orës së përdorur. Shiko “Parandalimi i Korrupsionit EEPROM” në faqen 19 për detaje se si të shmangen problemet në këto situata.

Në mënyrë që të parandalohet shkrimi i paqëllimtë i EEPROM, duhet të ndiqet një procedurë specifike e shkrimit. I referohet “Atomike Byte Programming ”në faqen 17 dhe “Programimi i Split Byte” në faqen 17 për detaje mbi këtë.

Kur lexohet EEPROM, CPU-ja ndalet për katër cikle orare para se të ekzekutohet udhëzimi tjetër. Kur shkruhet EEPROM, CPU ndalet për dy cikle orash përpara se të ekzekutohet udhëzimi tjetër.

Programimi i bajteve atomike

Përdorimi i Programimit të Bajteve Atomike është mënyra më e thjeshtë. Kur i shkruani një bajt EEPROM, përdoruesi duhet të shkruajë adresën në Regjistrin EEAR dhe të dhënat në Regjistrin EEDR. Nëse bitët EEPMn janë zero, shkrimi i EEPE (brenda katër cikleve pasi është shkruar EEMPE) do të shkaktojë operacionin e fshirjes / shkrimit. Të dy cikli i fshirjes dhe shkrimit bëhen në një operacion dhe koha totale e programimit është dhënë në Tabela 5-1 në faqen 21. Biti EEPE mbetet i vendosur derisa të përfundojnë operacionet e fshirjes dhe shkrimit. Ndërsa pajisja është e zënë me programim, nuk është e mundur të bëni ndonjë operacion tjetër EEPROM.

Programimi i Split Byte

Cycleshtë e mundur të ndahet cikli i fshirjes dhe shkrimit në dy operacione të ndryshme. Kjo mund të jetë e dobishme nëse sistemi kërkon kohë të shkurtër aksesi për një periudhë të kufizuar kohore (zakonisht nëse furnizimi me energji voltage bie). Për të përparuar- tage të kësaj metode, kërkohet që vendet që do të shkruhen të jenë fshirë para operacionit të shkrimit. Por meqenëse operacionet e fshirjes dhe shkrimit janë të ndara, është e mundur të bëhen operacionet e fshirjes kur sistemi lejon kryerjen e operacioneve kritike për kohën (zakonisht pas Fuqizimit).

Fshije

Për të fshirë një bajt, adresa duhet të shkruhet në EEAR. Nëse bitët EEPMn janë 0b01, shkrimi i EEPE (brenda katër cikleve pasi është shkruar EEMPE) do të shkaktojë vetëm operacionin e fshirjes (koha e programimit jepet në Tabela 5-1 në faqe 21) Biti EEPE mbetet i vendosur derisa të përfundojë operacioni i fshirjes. Ndërsa pajisja është e zënë me programim, nuk është e mundur të bëni ndonjë operacion tjetër EEPROM.

Shkruani

Për të shkruar një vendndodhje, përdoruesi duhet të shkruajë adresën në EEAR dhe të dhënat në EEDR. Nëse bitët EEPMn janë 0b10, shkrimi i EEPE (brenda katër cikleve pasi është shkruar EEMPE) do të shkaktojë vetëm veprimin e shkrimit (koha e programimit jepet në Tabela 5-1 në faqen 21) Biti EEPE mbetet i vendosur derisa të përfundojë operacioni i shkrimit. Nëse vendndodhja për t'u shkruar nuk është fshirë para se të shkruani, të dhënat që janë ruajtur duhet të konsiderohen si të humbura. Ndërsa pajisja është e zënë me programim, nuk është e mundur të bëni ndonjë operacion tjetër EEPROM.

Oshilatori i kalibruar përdoret për kohën e qasjeve të EEPROM. Sigurohuni që frekuenca e oshilatorit është brenda kërkesave të përshkruara në “OSCCAL - Regjistri i Kalibrimit të Oshilatorit” në faqen 31.

Kodi i mëposhtëm p.shamples tregojnë një asamble dhe një funksion C për fshirjen, shkrimin ose shkrimin atomik të EEPROM. Ishamples supozojnë se ndërprerjet kontrollohen (p.sh., duke i çaktivizuar ndërprerjet në nivel global) në mënyrë që asnjë ndërprerje të mos ndodhë gjatë ekzekutimit të këtyre funksioneve.

Kodi i Kuvendit Pshample
EEPROM_shkruaj:

; Prisni për përfundimin e shkrimit të mëparshëm

sbic EECR,EEPE

rjmp EEPROM_write

; Vendosni mënyrën e programimit

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

jashtë EECR, r16

; Vendosni adresën (r18: r17) në regjistrin e adresave

jashtë EEARH, r18

jashtë EEARL, r17

; Shkruani të dhëna (r19) në regjistrin e të dhënave

jashtë EEDR, r19

; Shkruaj një logjike për EEMPE

sbi EECR,EEMPE

; Filloni të shkruani eeprom duke vendosur EEPE

sbi EECR,EEPE

ret

Kodi C Pshample
void EEPROM_write (adresa e shenjës së panënshkruar, ucData e karakterit të panënshkruar)

{

/* Prisni për përfundimin e shkrimit të mëparshëm */ ndërsa(EECR & (1<

;

/* Cakto modalitetin e programimit */

EECR = (0 <

/ * Vendosni regjistrat e adresave dhe të dhënave * / EEAR = ucAdresa;

EEDR = ucData;

/* Shkruani një logjike në EEMPE */

EECR | = (1 <

/ * Filloni të shkruani eeprom duke vendosur EEPE * /

EECR | = (1 <

}

Kodi tjetër examples shfaq funksionet e montimit dhe C për leximin e EEPROM. Ishamples supozojnë se ndërprerjet kontrollohen në mënyrë që asnjë ndërprerje të mos ndodhë gjatë ekzekutimit të këtyre funksioneve.

Kodi i Kuvendit Pshample
EEPROM_lexo:

; Prisni për përfundimin e shkrimit të mëparshëm

sbic EECR,EEPE

rjmp EEPROM_read

; Vendosni adresën (r18: r17) në regjistrin e adresave

jashtë EEARH, r18

jashtë EEARL, r17

; Filloni të lexoni eeprom duke shkruar EERE

sbi EECR,EERE

; Lexoni të dhënat nga regjistri i të dhënave

në r16, EEDR

ret

Kodi C Pshample
shkronja e panënshkruar EEPROM_read (adresa e karakterit të panënshkruar)

{

/ * Prisni për përfundimin e shkrimit të mëparshëm * /

ndërsa (EECR & (1 <

;

/ * Vendosni regjistrin e adresave * / EEAR = ucAdresa;

/* Fillo eeprom leximin duke shkruar EERE */

EECR | = (1 <

/ * Kthimi i të dhënave nga regjistri i të dhënave * /

kthimi EEDR;

}

Parandalimi i korrupsionit në EEPROM

Gjatë periudhave me VCC të ulët, të dhënat EEPROM mund të korruptohen sepse furnizimi voltage është shumë e ulët që CPU dhe EEPROM të funksionojnë siç duhet. Këto çështje janë të njëjta si për sistemet e nivelit të bordit që përdorin EEPROM, dhe të njëjtat zgjidhje të projektimit duhet të zbatohen.

Një korrupsion i të dhënave EEPROM mund të shkaktohet nga dy situata kur voltage është shumë e ulët. Së pari, një sekuencë e rregullt e shkrimit në EEPROM kërkon një volum minimaltage të veprojë si duhet. Së dyti, vetë CPU mund të ekzekutojë udhëzimet gabimisht, nëse furnizimi voltage është shumë e ulët.

Korrupsioni i të dhënave EEPROM lehtë mund të shmanget duke ndjekur këtë rekomandim të modelit:

Mbani AVR RESET aktiv (të ulët) gjatë periudhave të furnizimit me energji të pamjaftueshme voltage Kjo mund të bëhet duke mundësuar zbuluesin e brendshëm Brown-out (BOD). Nëse niveli i zbulimit të BOD -së së brendshme nuk përputhet me

niveli i nevojshëm i zbulimit, mund të përdoret një qark i jashtëm mbrojtës i rivendosjes së VCC të ulët. Nëse ndodh një rivendosje ndërsa një operacion shkrimi është në proces, operacioni i shkrimit do të përfundojë me kusht që furnizimi me energji voltage është e mjaftueshme.

Kujtesa I / O

Përcaktimi i hapësirës I / O të ATtiny25 / 45/85 është treguar në “Regjistrohu Përmbledhjen” në faqen 200.

Të gjitha ATtiny25 / 45/85 I / Os dhe pajisjet periferike vendosen në hapësirën I / O. Të gjitha vendndodhjet I / O mund të arrihen nga udhëzimet LD / LDS / LDD dhe ST / STS / STD, duke transferuar të dhëna midis 32 regjistrave të punës me qëllim të përgjithshëm dhe hapësirës I / O. Regjistrat e I / O brenda intervalit të adresave 0x00 - 0x1F janë drejtpërdrejt të arritshëm në bit duke përdorur udhëzimet SBI dhe CBI. Në këto regjistra, vlera e bitëve të vetëm mund të kontrollohet duke përdorur udhëzimet SBIS dhe SBIC. Referojuni seksionit të udhëzimeve për më shumë detaje. Kur përdorni komandat specifike I / O IN dhe OUT, duhet të përdoren adresat I / O 0x00 - 0x3F. Kur adresoni regjistrat I / O si hapësirë ​​e të dhënave duke përdorur udhëzimet LD dhe ST, 0x20 duhet të shtohet në këto adresa.

Për pajtueshmëri me pajisjet e ardhshme, bitët e rezervuara duhet të shkruhen në zero nëse arrihen. Adresat e rezervuara të kujtesës I / O nuk duhet të shkruhen kurrë.

Disa nga Flamujt e Statusit pastrohen duke u shkruar atyre një logjik. Vini re se udhëzimet CBI dhe SBI do të veprojnë vetëm në bitin e specifikuar, dhe për këtë arsye mund të përdoren në regjistrat që përmbajnë flamuj të tillë të statusit. Udhëzimet CBI dhe SBI punojnë vetëm me regjistrat 0x00 deri 0x1F.

Regjistrat e Kontrollit të I / O dhe Periferikëve shpjegohen në seksionet e mëvonshme.

Regjistrohu Përshkrimi

EEARH - Regjistri i Adresave të EEPROM

Bit 7 6 5 4 3 2 1 0
0x1F VESHA8 VESHJE
Lexo/Shkruaj R R R R R R R R/W
Vlera fillestare 0 0 0 0 0 0 0 X/0

Pjesët 7: 1 - Rez: Pjesët e rezervuara

Këto bit janë të rezervuara për përdorim në të ardhmen dhe gjithmonë do të lexohen si zero.

Pjesët 0 - EEAR8: Adresa e EEPROM

Kjo është pjesa më e rëndësishme e adresës EEPROM të ATtiny85. Në pajisjet me më pak EEPROM, dmth. ATtiny25 / ATtiny45, kjo bit është e rezervuar dhe gjithmonë do të lexojë zero. Vlera fillestare e Regjistrit të Adresave të EEPROM (EEAR) është e papërcaktuar dhe prandaj duhet të shkruhet një vlerë e duhur para se të arrihet EEPROM.

EEARL - Regjistri i Adresave EEPROM

Bit

0x1E VESHA7 VESHA6 VESHA5 VESHA4 VESHA3 VESHA2 VESHA1 VESHA0 Veshi
Pas / Shkruaj R/W R/W R/W R/W R/W R/W R/W R/W
Vlera fillestare X X X X X X X X

Bit 7 - EEAR7: Adresa e EEPROM

Kjo është pjesa më e rëndësishme e adresës EEPROM të ATtiny45. Në pajisjet me më pak EEPROM, dmth. ATtiny25, kjo bit është e rezervuar dhe gjithmonë do të lexojë zero. Vlera fillestare e Regjistrit të Adresave të EEPROM (EEAR) është e papërcaktuar dhe një vlerë e duhur duhet të shkruhet para se të aksesohet EEPROM.

Pjesët 6: 0 - EEAR [6: 0]: Adresa e EEPROM

Këto janë bitët (e ulët) të Regjistrit të Adresave EEPROM. Bajtet e të dhënave EEPROM adresohen në mënyrë lineare në intervalin 0… (128/256 / 512-1). Vlera fillestare e EEAR është e papërcaktuar dhe një vlerë e duhur duhet të shkruhet para se të mund të arrihet në EEPROM.

EEDR - Regjistri i të dhënave EEPROM

Bit 7 6 5 4 3 2 1 0
0x1D EEDR7 EEDR6 EEDR5 EEDR4 EEDR3 EEDR2 EEDR1 EEDR0 EEDR
Lexo/Shkruaj R/W R/W R/W R/W R/W R/W R/W R/W
Vlera fillestare 0 0 0 0 0 0 0 0

Për operacionin e shkrimit të EEPROM Regjistri EEDR përmban të dhënat që duhet t'i shkruhen EEPROM në adresën e dhënë nga Regjistri EEAR. Për operacionin e leximit të EEPROM, EEDR përmban të dhënat e lexuara nga

EEPROM në adresën e dhënë nga EEAR.

 

5.5.4 EECR - Regjistri i Kontrollit EEPROM

Bit 7 6 5 4 3 2 1 0
0x1C        – EEPM1 EEPM0 E frikshme EEMPE EEPE KETU EECR
Lexo / Shkruaj R R R / W R/W R/W R/W R/W R/W
Vlera fillestare 0 0 X X 0 0 X 0

Bit 7 - Res: Bit i rezervuar

Kjo bit është e rezervuar për përdorim në të ardhmen dhe gjithmonë do të lexohet si 0 në ATtiny25 / 45/85. Për pajtueshmëri me pajisjet e ardhshme AVR, shkruajeni gjithmonë këtë bit në zero. Pas leximit, maskoni këtë grimë.

Bit 6 - Res: Bit i rezervuar

Kjo bit është e rezervuar në ATtiny25 / 45/85 dhe gjithmonë do të lexohet si zero.

Bitët 5: 4 - EEPM [1: 0]: Bitet e Modalitetit të Programimit EEPROM

Vendosja e bitëve të modalitetit të programimit EEPROM përcakton se cili veprim programues do të shkaktohet kur shkruani EEPE. Possibleshtë e mundur që të programohen të dhënat në një operacion atomik (fshihet vlera e vjetër dhe programohet vlera e re) ose të ndahen operacionet Erase dhe Shkruaj në dy operacione të ndryshme. Kohët e Programimit për mënyra të ndryshme tregohen në Tabela 5-1. Ndërsa EEPE është vendosur, çdo shkrim për EEPMn do të injorohet. Gjatë rivendosjes, bitët EEPMn do të rivendosen në 0b00 nëse EEPROM nuk është i zënë me programim.

Tabela 5-1. Bitet e modalitetit EEPROM

EEPM1 EEPM0 Koha e programimit Operacioni
0 0 3.4 ms Fshi dhe shkruaj në një operacion (Operacioni Atomik)
0 1 1.8 ms Fshi vetëm
1 0 1.8 ms Vetëm shkruaj
1 1 E rezervuar për përdorim në të ardhmen

Bit 3 - EERIE: Aktivizoni ndërprerjen e gatshme EEPROM

Shkrimi i EERIE tek një mundëson ndërprerjen e gatshme të EEPROM nëse vendoset I-bit në SREG. Shkrimi i EERIE në zero e pamundëson ndërprerjen. Ndërprerja e gatshme EEPROM gjeneron një ndërprerje të vazhdueshme kur kujtesa jo e paqëndrueshme është gati për programim.

Bit 2 - EEMPE: Programi Master EEPROM Aktivizo

Biti EEMPE përcakton nëse shkrimi i EEPE tek një do të ketë efekt apo jo.

Kur vendoset EEMPE, vendosja e EEPE brenda katër cikleve të orës do të programojë EEPROM në adresën e zgjedhur. Nëse EEMPE është zero, vendosja e EEPE nuk do të ketë efekt. Kur EEMPE i është shkruar një me anë të softuerit, hardueri pastron bitin në zero pas katër cikleve të orës.

Bit 1 - EEPE: Programi EEPROM Aktivizo

Programi EEPROM Aktivizo Sinjalin EEPE është sinjali i mundësimit të programimit për EEPROM. Kur të shkruhet EEPE, EEPROM do të programohet sipas cilësimit të bitëve të EEPMn. Biti EEMPE duhet t'i shkruhet njërit para se një logjik t'i shkruhet EEPE, përndryshe nuk bëhet asnjë shkrim i EEPROM. Kur të ketë kaluar koha e hyrjes në shkrim, biti EEPE pastrohet nga hardueri. Kur të jetë vendosur EEPE, CPU ndalet për dy cikle para se të ekzekutohet udhëzimi tjetër.

Bit 0 - EERE: Aktivizo leximin EEPROM

Sinjali i Aktivizimit të Lexuar të EEPROM - EERE - është strobe e lexuar për EEPROM. Kur vendoset adresa e saktë në Regjistrin EEAR, biti EERE duhet t'i shkruhet njërit për të shkaktuar leximin e EEPROM. Aksesi i leximit të EEPROM merr një udhëzim dhe të dhënat e kërkuara janë në dispozicion menjëherë. Kur lexohet EEPROM, CPU ndalet për katër cikle para se të ekzekutohet udhëzimi tjetër. Përdoruesi duhet të sondojë bitin EEPE përpara se të fillojë operacionin e leximit. Nëse një operacion i shkrimit është në proces, nuk është as e mundur të lexohet EEPROM, as të ndryshohet Regjistri i EEAR.

Ora e Sistemit dhe Opsionet e Orës

Sistemet e orës dhe shpërndarja e tyre

Shpërndarja e orës

Ora e CPU-së

Ora e CPU -së dërgohet në pjesët e sistemit që kanë të bëjnë me funksionimin e bërthamës AVR. P.shampdisa module të tilla janë Regjistri i Qëllimeve të Përgjithshme File, Regjistri i Statusit dhe memoria e të dhënave që mbajnë Stack Pointer. Ndalimi i orës së CPU pengon thelbin nga kryerja e operacioneve dhe llogaritjeve të përgjithshme.

Ora I / O - clkI / O

Ora I / O përdoret nga shumica e moduleve I / O, si Timer / Counter. Ora I / O përdoret gjithashtu nga moduli i Jashtëm i Ndërprerjeve, por vini re se disa ndërprerje të jashtme zbulohen nga logjika asinkron, duke lejuar që ndërprerje të tilla të zbulohen edhe nëse ora e I / O është e ndalur.

Ora Flash - clkFLASH

Ora Flash kontrollon funksionimin e ndërfaqes Flash. Ora Flash është zakonisht aktive njëkohësisht me orën e CPU-së.

Ora ADC - clkADC

ADC është e pajisur me një domen të caktuar të orës. Kjo lejon ndalimin e orëve të CPU dhe I / O në mënyrë që të zvogëlohet zhurma e gjeneruar nga qarqet dixhitale. Kjo jep rezultate më të sakta të konvertimit të ADC.

PLL i brendshëm për gjenerimin e shpejtë të orës periferike - clkPCK

PLL i brendshëm në ATtiny25 / 45/85 gjeneron një frekuencë të orës që shumëzohet 8x nga një hyrje burimi. Si parazgjedhje, PLL përdor prodhimin e oshilatorit të brendshëm, 8.0 MHz RC si burim. Përndryshe, nëse vendoset biti LSM i PLLCSR, PLL do të përdorë prodhimin e oshilatorit RC të ndarë nga dy. Kështu prodhimi i PLL, ora e shpejtë periferike është 64 MHz. Ora e shpejtë periferike, ose një orë e paracaktuar nga ajo, mund të zgjidhen si burimi i orës për Timer / Counter1 ose si një orë e sistemit. Shiko Figura 6-2. Frekuenca e orës së shpejtë periferike ndahet me dy kur vendoset LSM e PLLCSR, duke rezultuar në një frekuencë të orës prej 32 MHz. Vini re se LSM nuk mund të vendoset nëse PLLCLK përdoret si orë e sistemit.

Figura 6-2. Sistemi i orës PCK. Koha e PCK-së

PLL është i kyçur në oshilatorin RC dhe rregullimi i oshilatorit RC përmes regjistrit OSCCAL do të rregullojë orën e shpejtë periferike në të njëjtën kohë. Sidoqoftë, edhe nëse oshilatori RC çohet në një frekuencë më të lartë se 8 MHz, frekuenca e shpejtë e orës periferike ngopet në 85 MHz (rasti më i keq) dhe mbetet i lëkundur në frekuencën maksimale. Duhet të theksohet se PLL në këtë rast nuk është kyçur më me orën oshilator RC. Prandaj, rekomandohet të mos merrni rregullimet OSCCAL në një frekuencë më të lartë se 8 MHz në mënyrë që të mbani PLL në intervalin e duhur të funksionimit.

PLL-ja e brendshme aktivizohet kur:

Vendoset biti PLLE në regjistrin PLLCSR.

Siguresa CKSEL është programuar në '0001'.

Siguresa CKSEL është programuar në '0011'.

Biti PLLCSR PLOCK vendoset kur PLL është i kyçur. Të dy oshilatori i brendshëm RC dhe PLL janë të fikur në modalitetin e fikjes dhe të gjumit në pritje.

PLL i brendshëm në modalitetin e pajtueshmërisë ATtiny15

Meqenëse ATtiny25 / 45/85 është një pajisje migrimi për përdoruesit e ATtiny15 ekziston një mënyrë e pajtueshmërisë ATtiny15 për pajtueshmërinë e pasme. Modaliteti i pajtueshmërisë ATtiny15 zgjidhet duke programuar siguresat CKSEL në '0011'.

Në mënyrën e pajtueshmërisë ATtiny15 frekuenca e oshilatorit të brendshëm RC kalibrohet deri në 6.4 MHz dhe faktori i shumëzimit të PLL vendoset në 4x. Shiko Figura 6-3. Me këto rregullime, sistemi i orës është i pajtueshëm me ATtiny15 dhe ora e shpejtë periferike që rezulton ka një frekuencë prej 25.6 MHz (e njëjtë si në ATtiny15).

Figura 6-3. Sistemi i orës PCK në modalitetin e përputhshmërisë ATtiny15. Sistemi i orës

Burimet e orës

Pajisja ka opsionet e mëposhtme të burimit të orës, të zgjedhshme nga copat e siguresave Flash siç tregohet më poshtë. Ora nga burimi i zgjedhur futet në gjeneratorin e orës AVR dhe drejtohet në modulet e duhura.

Tabela 6-1. Opsionet e orës së pajisjes Zgjidhni

Opsioni i Clocking të Pajisjes CKSEL[3:0](1)
Ora e jashtme (shih faqe 26) 0000
Ora me frekuencë të lartë PLL (shih faqe 26) 0001
Oshilatori i Brendshëm i Kalibruar (shih faqe 27) 0010(2)
Oshilatori i Brendshëm i Kalibruar (shih faqe 27) 0011(3)
Oshilatori i brendshëm 128 kHz (shih faqe 28) 0100
Oshilator kristal me frekuencë të ulët (shih faqe 29) 0110
Oshilator kristal / Rezonator qeramik (shih faqe 29) 1000 – 1111
Rezervuar 0101, 0111

Për të gjitha siguresat "1" do të thotë i paprogramuar ndërsa "0" do të thotë i programuar.

Pajisja dërgohet me këtë opsion të zgjedhur.

Kjo do të zgjedhë mënyrën e përputhshmërisë ATtiny15, ku ora e sistemit ndahet me katër, duke rezultuar në një frekuencë të orës 1.6 MHz. Për më shumë informacione, shih “Oshilator i Brendshëm i Kalibruar” në faqen 27.

Zgjedhjet e ndryshme për secilin opsion të orës jepen në seksionet vijuese. Kur CPU zgjohet nga Power-down, burimi i zgjedhur i orës përdoret për të koha e fillimit, duke siguruar funksionimin e qëndrueshëm të oshilatorit para se të fillojë ekzekutimi i udhëzimit. Kur CPU fillon nga rivendosja, ka një vonesë shtesë që lejon që rryma të arrijë një nivel të qëndrueshëm përpara se të fillojë funksionimi normal. Oshilatori i Mbikëqyrjes përdoret për përcaktimin e kësaj pjese në kohë reale të kohës së fillimit. Numri i cikleve të oshilatorit WDT të përdorura për çdo ndërprerje është treguar në Tabela 6-2.

Tabela 6-2. Numri i cikleve të oshilatorit mbikëqyrës

Time-out i tipit Numri i cikleve
4 ms 512
64 ms 8 mijë (8,192)

Ora e jashtme

Për të përzënë pajisjen nga një burim i jashtëm i orës, CLKI duhet të drejtohet siç tregohet në Figura 6-4. Për ta ekzekutuar pajisjen në një orë të jashtme, Siguresat CKSEL duhet të programohen në "00".

Figura 6-4. Konfigurimi i diskut të orës së jashtme

Fig6.4

Kur zgjidhet ky burim i orës, kohët e fillimit përcaktohen nga SUT siguresat siç tregohet në Tabela 6-3.

Tabela 6-3. Kohët e fillimit për zgjedhjen e orës së jashtme

SUT[1:0] Koha e fillimit nga ndërprerja e energjisë Vonesë shtesë nga Rivendosja Përdorimi i rekomanduar
00 6 CK 14KK BOD i aktivizuar
01 6 CK 14CK + 4 ms Fuqia në rritje të shpejtë
10 6 CK 14CK + 64 ms Ngadalë rritet fuqia
11 Rezervuar

Kur aplikoni një orë të jashtme, kërkohet të shmangni ndryshimet e papritura në frekuencën e orës së aplikuar për të siguruar funksionimin e qëndrueshëm të MCU. Një ndryshim në frekuencë prej më shumë se 2% nga një cikël i orës në tjetrin mund të çojë në sjellje të paparashikueshme. Kërkohet të sigurohet që MCU të mbahet në Reset gjatë ndryshimeve të tilla në frekuencën e orës.

Vini re se Parashitja e Clock e Sistemit mund të përdoret për të zbatuar ndryshimet në kohën e ekzekutimit të frekuencës së orës së brendshme ndërsa siguron akoma funksionim të qëndrueshëm. I referohet “Precaler i Sahatit të Sistemit” në faqen 31 për detaje.

Ora me frekuencë të lartë PLL

Ekziston një PLL i brendshëm që siguron shpejtësinë nominale të orës 64 MHz të kyçur në Oshilatorin RC për përdorimin e Kohëmatësit Periferik / Counter1 dhe për burimin e orës së sistemit. Kur zgjidhet si një burim i orës së sistemit, duke programuar siguresat CKSEL në '0001', ajo ndahet me katër siç tregohet në Tabela 6-4.

Tabela 6-4. Mënyrat e funksionimit të orës PLL me frekuencë të lartë

CKSEL[3:0] Frekuenca nominale
0001 16 MHz

Kur zgjidhet ky burim i orës, kohët e fillimit përcaktohen nga siguresat SUT siç tregohet në Tabela 6-5.

Tabela 6-5. Kohët e fillimit për orën PLL me frekuencë të lartë

SUT[1:0] Koha e fillimit nga ndezja e energjisë Vonesa shtesë nga rivendosja e ndezjes (VCC = 5.0V) Përdorimi i rekomanduar
00 14CK + 1K (1024) CK + 4 ms 4 ms BOD i aktivizuar

Tabela 6-5. Kohët e fillimit për orën PLL me frekuencë të lartë

SUT[1:0] Koha e fillimit nga ndezja e energjisë Vonesa shtesë nga rivendosja e ndezjes (VCC = 5.0V) Përdorimi i rekomanduar
01 14CK + 16K (16384) CK + 4 ms 4 ms Fuqia në rritje të shpejtë
10 14CK + 1K (1024) CK + 64 ms 4 ms Ngadalë rritet fuqia
11 14CK + 16K (16384) CK + 64 ms 4 ms Ngadalë rritet fuqia

Oshilatori i Brendshëm i Kalibruar

Si parazgjedhje, oshilatori i brendshëm RC siguron një orë të përafërt 8.0 MHz. Edhe pse vëlltage dhe e varur nga temperatura, kjo orë mund të kalibrohet me saktësi nga përdoruesi. Shiko “Akumatori i oshilatorit të Brendshëm të Kalibruar të RC racy ”në faqen 164 dhe "Shpejtësia e Oshilatorit të Brendshëm" në faqen 192 për më shumë detaje. Pajisja dërgohet me siguresën CKDIV8 të programuar. Shiko “Precaler i Sahatit të Sistemit” në faqen 31 për më shumë detaje.

Kjo orë mund të zgjidhet si ora e sistemit duke programuar siguresat CKSEL siç tregohet në Tabela 6-6 në faqe

27. Nëse zgjidhet, do të funksionojë pa ndonjë përbërës të jashtëm. Gjatë rivendosjes, hardueri ngarkon vlerën e kalibrimit të programuar paraprakisht në Regjistrin OSCCAL dhe në këtë mënyrë kalibron automatikisht oshilatorin RC. Saktësia e këtij kalibrimi tregohet si kalibrim i fabrikës në Tabela 21-2 në faqen 164.

Duke ndryshuar regjistrin OSCCAL nga SW, shih “OSCCAL - Regjistri i Kalibrimit të Oshilatorit” në faqen 31, është e mundur të merrni një saktësi më të lartë të kalibrimit sesa duke përdorur kalibrimin e fabrikës. Saktësia e këtij kalibrimi tregohet si kalibrim i përdoruesit në Tabela 21-2 në faqen 164.

Kur ky oshilator të përdoret si ora e çipit, Oshilatori i Mbikëqyrjes do të përdoret akoma për Kohëmatësi i Mbikëqyrjes dhe për Kohëzgjatjen e Rivendosjes. Për më shumë informacion mbi vlerën e kalibrimit të para-programuar, shikoni seksionin “Kali- bration Bytes ”në faqen 150.

Oshilatori i brendshëm gjithashtu mund të vendoset që të sigurojë një orë 6.4 MHz duke shkruar siguresa CKSEL në "0011", siç tregohet në Tabela 6-6 më poshtë Ky cilësim është referuar si Modaliteti i Përputhshmërisë ATtiny15 dhe ka për qëllim të sigurojë një burim ore të kalibruar në 6.4 MHz, si në ATtiny15. Në modalitetin e pajtueshmërisë ATtiny15 PLL përdor oshilatorin e brendshëm që funksionon në 6.4 MHz për të gjeneruar një sinjal të orës periferike 25.6 MHz për Timer / Counter1 (shih “Kohëmatësi / numëruesi 8 bitësh 1 in Modaliteti ATtiny15 ”në faqen 95) Vini re se në këtë mënyrë funksionimi sinjali i orës 6.4 MHz ndahet gjithmonë me katër, duke siguruar orën e sistemit 1.6 MHz.

Tabela 6-6. Mënyrat e funksionimit të kalibruar të brendshëm të oshilatorit RC

CKSEL[3:0] Frekuenca nominale
0010(1) 8.0 MHz
0011(2) 6.4 MHz

Pajisja dërgohet me këtë opsion të zgjedhur.

Ky cilësim do të zgjedhë Modalitetin e Përputhshmërisë ATtiny15, ku ora e sistemit ndahet me katër, duke rezultuar në një frekuencë të orës 1.6 MHz.

Kur oshilatori i brendshëm i kalibruar 8 MHz zgjidhet si burim i orës, kohët e fillimit përcaktohen nga SIG siguresat siç tregohet në Tabela 6-7 më poshtë.

Tabela 6-7. Kohët e fillimit për orën e brendshme të kalibruar të oscilatorit RC

SUT[1:0] Koha e fillimit nga ndërprerja e energjisë Vonesa shtesë nga rivendosja (VCC = 5.0V) Përdorimi i rekomanduar
00 6 CK 14KK(1) BOD i aktivizuar
01 6 CK 14CK + 4 ms Fuqia në rritje të shpejtë
10(2) 6 CK 14CK + 64 ms Ngadalë rritet fuqia
11 Rezervuar

1. Nëse siguresa RSTDISBL është programuar, kjo kohë fillestare do të rritet në 14CK + 4 ms për të siguruar mënyrën e programimit që mund të futet.
2. Pajisja dërgohet me këtë opsion të zgjedhur.

Në mënyrën e pajtueshmërisë ATtiny15 kohët e fillimit përcaktohen nga siguresat SUT siç tregohet në Tabela 6-8 më poshtë.

Tabela 6-8. Kohët e fillimit për orën e brendshme të kalibruar të oscilatorit RC (në modalitetin ATtiny15)

SUT[1:0] Koha e fillimit nga ndërprerja e energjisë Vonesa shtesë nga rivendosja (VCC = 5.0V) Përdorimi i rekomanduar
00 6 CK 14CK + 64 ms
01 6 CK 14CK + 64 ms
10 6 CK 14CK + 4 ms
11 1 CK 14KK(1)

Shënim: Nëse siguresa RSTDISBL është e programuar, kjo kohë e nisjes do të rritet në 14CK + 4 ms për të siguruar që mund të futet modaliteti i programimit.

Në përmbledhje, më shumë informacion mbi Modalitetin e Përputhshmërisë ATtiny15 mund të gjenden në seksione "Porti B (PB5: PB0)" në faqe 2“PLL i Brendshëm në Modalitetin e Përputhshmërisë ATtiny15” në faqen 24Aktiv "Kohëmatësi / numëruesi 8 bitësh në modalitetin ATtiny1" faqe 95“Kufizimet e debugWIRE” në faqen 140"Bytes e Kalibrimit" në faqen 150 dhe ne tabele “Precaler i orës Zgjidhni ”në faqen 33.

Oshilatori i brendshëm 128 kHz

Oscilatori i brendshëm 128 kHz është një oshilator me fuqi të ulët që ofron një orë 128 kHz. Frekuenca është nominale në 3V dhe 25°C. Kjo orë mund të zgjidhet si ora e sistemit duke programuar siguresat CKSEL në "0100".

Kur zgjidhet ky burim i orës, kohët e fillimit përcaktohen nga SUT siguresat siç tregohet në Tabela 6-9.

Tabela 6-9. Kohët e fillimit për oshilatorin e brendshëm 128 kHz

SUT[1:0] Koha e fillimit nga ndërprerja e energjisë Vonesë shtesë nga Rivendosja Përdorimi i rekomanduar
00 6 CK 14KK(1) BOD i aktivizuar
01 6 CK 14CK + 4 ms Fuqia në rritje të shpejtë
10 6 CK 14CK + 64 ms Ngadalë rritet fuqia
11 Rezervuar

Shënim: Nëse siguresa RSTDISBL është e programuar, kjo kohë e nisjes do të rritet në 14CK + 4 ms për të siguruar që mund të futet modaliteti i programimit.

Oshilator kristal me frekuencë të ulët

Për të përdorur një kristal shikimi 32.768 kHz si burim i orës për pajisjen, Oshilatori me Kristal me Frekuencë të Ulët duhet të zgjidhet duke vendosur siguresat CKSEL në '0110'. Kristali duhet të lidhet siç tregohet në Figura 6-5. Për të gjetur një kapacitet të përshtatshëm të ngarkesës për një kristal 32.768 kHz, ju lutemi konsultohuni në fletën e të dhënave të prodhuesit.

Kur zgjidhet ky oshilator, kohët e fillimit përcaktohen nga siguresat SUT siç tregohet në Tabela 6-10.

Tabela 6-10. Kohët e fillimit për zgjedhjen e orës së oshilatorit të kristalit me frekuencë të ulët

SUT[1:0] Koha e fillimit nga ndezja e energjisë Vonesa shtesë nga rivendosja (VCC = 5.0V) Përdorimi i rekomanduar
00 1K (1024) CK(1) 4 ms Fuqia në rritje e shpejtë ose BOD është e aktivizuar
01 1K (1024) CK(1) 64 ms Ngadalë rritet fuqia
10 32K (32768) CK 64 ms Frekuenca e qëndrueshme gjatë fillimit
11 Rezervuar

Shënim: Këto opsione duhet të përdoren vetëm nëse stabiliteti i frekuencës në fillim nuk është i rëndësishëm.

Oshilatori Crystal me frekuencë të ulët siguron një kapacitet të brendshëm të ngarkesës, shih Tabela 6-11 në çdo kunj TOSC.

Tabela 6-11. Kapaciteti i oshilatorit të kristalit me frekuencë të ulët

Pajisja 32 kHz Osc. Lloji Kapaku (Xtal1 / Tosc1) Kapaku (Xtal2 / Tosc2)
ATtiny25 / 45/85 Sistemi Osc. 16 pF 6 pF

Oshilator kristal / Rezonator qeramik

XTAL1 dhe XTAL2 janë hyrje dhe dalje, përkatësisht, të një përmbysjeje ampmë e gjallë e cila mund të konfigurohet për përdorim si një oshilator On-chip, siç tregohet në Figura 6-5. Mund të përdoret një kristal kuarci ose një rezonator qeramik.

C1 dhe C2 duhet të jenë gjithmonë të barabarta si për kristalet ashtu edhe për rezonatorët. Vlera optimale e kondensatorëve varet nga kristali ose rezonatori në përdorim, sasia e kapacitetit të humbur dhe zhurma elektromagnetike e mjedisit. Janë dhënë disa udhëzime fillestare për zgjedhjen e kondensatorëve për përdorim me kristale Tabela 6-12 më poshtë Për rezonatorët qeramikë, duhet të përdoren vlerat e kondensatorit të dhëna nga prodhuesi.

Tabela 6-12. Mënyrat e funksionimit të oshilatorit kristal

CKSEL[3:1] Gama e Frekuencave (MHz) Diapazoni i rekomanduar për kondensatorët C1 dhe C2 për përdorim me kristale (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

Shënime: Ky opsion nuk duhet të përdoret me kristale, vetëm me rezonatorë qeramike.

Oshilatori mund të funksionojë në tre mënyra të ndryshme, secila e optimizuar për një interval specifik të frekuencës. Modaliteti i funksionimit zgjidhet nga siguresat CKSEL [3: 1] siç tregohet në Tabela 6-12.

Siguresa CKSEL0 së bashku me Siguresat SUT [1: 0] zgjedhin orët e fillimit siç tregohet në Tabela 6-13.

Tabela 6-13. Kohët e fillimit për zgjedhjen e orës së oshilatorit kristal

CKSEL0 SUT[1:0] Koha e fillimit nga ndërprerja e energjisë Vonesë shtesë nga Rivendosja Përdorimi i rekomanduar
0 00 258 CK(1) 14CK + 4 ms Rezonator qeramik, fuqi me rritje të shpejtë
0 01 258 CK(1) 14CK + 64 ms Rezonator qeramik, fuqi ngadalë në rritje
0 10 1K (1024) CK(2) 14KK Rezonatori qeramik, BOD i aktivizuar
0 11 1K (1024) CK(2) 14CK + 4 ms Rezonator qeramik, fuqi me rritje të shpejtë
1 00 1K (1024) CK(2) 14CK + 64 ms Rezonator qeramik, fuqi ngadalë në rritje
1 01 16K (16384) CK 14KK Oshilatori kristalor, BOD i aktivizuar
1 10 16K (16384) CK 14CK + 4 ms Oshilator kristal, fuqi me rritje të shpejtë
1 11 16K (16384) CK 14CK + 64 ms Oshilator kristal, ngadalë rritet fuqia

Shënime

Këto opsione duhet të përdoren vetëm kur nuk veprojnë afër frekuencës maksimale të pajisjes dhe vetëm nëse qëndrueshmëria e frekuencës gjatë fillimit nuk është e rëndësishme për aplikimin. Këto mundësi nuk janë të përshtatshme për kristalet.

Këto opsione janë të destinuara për t'u përdorur me rezonatorë qeramikë dhe do të sigurojnë stabilitetin e frekuencës në fillimin e punës. Ato mund të përdoren gjithashtu me kristale kur nuk veprojnë afër frekuencës maksimale të pajisjes dhe nëse qëndrueshmëria e frekuencës në fillimin e punës nuk është e rëndësishme për aplikimin.

Burimi i parazgjedhur i orës

Pajisja dërgohet me CKSEL = "0010", SUT = "10" dhe CKDIV8 të programuar. Përcaktimi i burimit të paracaktuar të orës është, pra, oshilatori i brendshëm RC që punon në 8 MHz me kohën më të gjatë të fillimit dhe orën fillestare të orës së sistemit prej 8, duke rezultuar në orën e sistemit 1.0 MHz. Ky cilësim i paracaktuar siguron që të gjithë përdoruesit të mund të bëjnë cilësimin e tyre të dëshiruar të burimit të orës duke përdorur një sistem ose volum të lartëtage Programues.

Precaler i orës së sistemit

Ora e sistemit ATtiny25 / 45/85 mund të ndahet duke vendosur “CLKPR - Regjistri i Parashkallës së Orës” në faqen 32. Kjo veçori mund të përdoret për të ulur konsumin e energjisë kur kërkesa për fuqi përpunuese është e ulët. Kjo mund të përdoret me të gjitha opsionet e burimit të orës dhe do të ndikojë në frekuencën e orës së CPU-së dhe të gjithë periferikëve sinkron. clkI/O, clkADC, clkCPU dhe clkFLASH ndahen me një faktor siç tregohet në Tabela 6-15 në faqen 33.

Koha e ndërrimit

Kur kaloni midis cilësimeve të preskaler, System Clock Prescaler siguron që të mos ndodhin çrregullime në sistemin e orës dhe që asnjë frekuencë e ndërmjetme të mos jetë më e lartë se as frekuenca e orës që korrespondon me cilësimin e mëparshëm, as frekuenca e orës që korrespondon me cilësimin e ri.

Counter valëzimi që zbaton prescaler punon në frekuencën e orës së pandarë, e cila mund të jetë më e shpejtë se frekuenca e orës së CPU. Prandaj, nuk është e mundur të përcaktohet gjendja e prescaler-it - edhe nëse do të ishte i lexueshëm, dhe koha e saktë që duhet për të kaluar nga një ndarje e orës në një tjetër nuk mund të parashikohet saktësisht.

Nga koha kur shkruhen vlerat CLKPS, duhet ndërmjet T1 + T2 dhe T1 + 2 * T2 para se të jetë aktive frekuenca e re e orës. Në këtë interval, prodhohen 2 buzë aktive të orës. Këtu, T1 është periudha e mëparshme e orës dhe T2 është periudha që korrespondon me cilësimin e ri të prescaler.

Buffer i daljes së orës

Pajisja mund të nxjerrë orën e sistemit në kunjin CLKO (kur nuk përdoret si kunj XTAL2). Për të mundësuar daljen, siguresa CKOUT duhet të programohet. Kjo mënyrë është e përshtatshme kur ora e çipit përdoret për të drejtuar qarqe të tjerë në sistem. Vini re se ora nuk do të dalë gjatë rivendosjes dhe se funksionimi normal i pinit I / O do të anashkalohet kur programohet siguresa. Oshilatori i Brendshëm RC, Oshilatori WDT, PLL dhe ora e jashtme (CLKI) mund të zgjidhen kur ora të dalë në CLKO. Lëkundësit kristalorë (XTAL1, XTAL2) nuk mund të përdoren për daljen e orës në CLKO. Nëse përdoret System Clock Prescaler, është ora e ndarë e sistemit që del.

Regjistrohu Përshkrimi

OSCCAL - Regjistri i Kalibrimit të Oshilatorit

Bit 7 6 5 4 3 2 1 0
0x31 CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 OSCCAL
Lexo/Shkruaj R/W R/W R/W R/W R/W R/W R/W R/W

Bitët 7: 0 - CAL [7: 0]: Vlera e Kalibrimit të Oshilatorit

Regjistri i Kalibrimit të Oshilatorit përdoret për të zvogëluar Oshilatorin e Brendshëm të Kalibruar RC për të hequr ndryshimet e procesit nga frekuenca e oshilatorit. Një vlerë kalibrimi e para-programuar i shkruhet automatikisht këtij regjistri gjatë rivendosjes së çipit, duke i dhënë frekuencën e kalibruar të Fabrikës siç specifikohet në Tabela 21-2 në faqen 164. Softueri i aplikimit mund të shkruajë këtë regjistër për të ndryshuar frekuencën e oshilatorit. Oshilatori mund të kalibrohet në frekuenca siç specifikohet në Tabela 21-2 në faqen 164. Kalibrimi jashtë këtij kufiri nuk është i garantuar.

Vini re se ky oshilator përdoret për të koha e hyrjeve në EEPROM dhe Flash, dhe këto kohë shkrimi do të ndikohen në përputhje me rrethanat. Nëse është shkruar EEPROM ose Flash, mos kalibroni në më shumë se 8.8 MHz. Përndryshe, shkrimi i EEPROM ose Flash mund të dështojë.

Biti CAL7 përcakton diapazonin e funksionimit për oshilatorin. Vendosja e këtij bit në 0 jep intervalin më të ulët të frekuencës, vendosja e këtij bit në 1 jep intervalin më të lartë të frekuencës. Dy diapazonët e frekuencave janë të mbivendosura, me fjalë të tjera një cilësim i OSCCAL = 0x7F jep një frekuencë më të lartë se OSCCAL = 0x80.

Bitet CAL [6: 0] përdoren për të akorduar frekuencën brenda intervalit të zgjedhur. Një cilësim prej 0x00 jep frekuencën më të ulët në atë diapazon, dhe një cilësim prej 0x7F jep frekuencën më të lartë në interval.

Për të siguruar funksionimin e qëndrueshëm të MCU, vlera e kalibrimit duhet të ndryshohet në të vogla. Një ndryshim në frekuencë prej më shumë se 2% nga një cikël në tjetrin mund të çojë në sjellje të paparashikueshme. Ndryshimet në OSCCAL nuk duhet të kalojnë 0x20 për çdo kalibrim. Kërkohet të sigurohet që MCU të mbahet në Reset gjatë ndryshimeve të tilla në frekuencën e orës

Tabela 6-14. Gama e frekuencës së oshilatorit të brendshëm RC

Vlera OSCCAL Frekuenca tipike më e ulët në lidhje me frekuencën nominale Frekuenca tipike më e lartë në lidhje me frekuencën nominale
0x00 50% 100%
0x3F 75% 150%
0x7F 100% 200%

CLKPR - Regjistri i Parashkallës së Orës

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

Vlera fillestare 0 0 0 0 Shih përshkrimin e bitit

Biti 7 - CLKPCE: Aktivizo ndryshimin e parafjalës së orës

Biti CLKPCE duhet të shkruhet në atë logjik për të mundësuar ndryshimin e bitëve të CLKPS. Biti CLKPCE azhurnohet vetëm kur bitët e tjerë në CLKPR shkruhen thjesht në zero. CLKPCE pastrohet nga hardueri katër cikle pasi të jetë shkruar ose kur shkruhen bitët CLKPS. Rishkrimi i bitit CLKPCE brenda kësaj periudhe të skadimit të afatit nuk zgjat as periudhën e kohës, as pastrimin e bitit CLKPCE.

Pjesët 6: 4 - Rez: Pjesët e rezervuara

Këto bit janë bit të rezervuara në ATtiny25 / 45/85 dhe gjithmonë do të lexohen si zero.

Bitët 3: 0 - CLKPS [3: 0]: Clock Prescaler Zgjidhni Pjesët 3 - 0

Këto bit përcaktojnë faktorin e ndarjes midis burimit të orës së zgjedhur dhe orës së brendshme të sistemit. Këto bit mund të shkruhen koha e ekzekutimit për të ndryshuar frekuencën e orës për t'iu përshtatur kërkesave të aplikimit. Ndërsa pjesëtuesi ndan hyrjen e orës kryesore në MCU, shpejtësia e të gjitha periferive sinkrone zvogëlohet kur përdoret një faktor i ndarjes. Faktorët e ndarjes janë dhënë në Tabela 6-15.

Për të shmangur ndryshimet e paqëllimta të frekuencës së orës, duhet të ndiqet një procedurë e veçantë e shkrimit për të ndryshuar bitët CLKPS:

Shkruajeni bitin Clock Prescaler Change Enable (CLKPCE) në njërën dhe të gjitha bitët e tjera në CLKPR në zero.

Brenda katër cikleve, shkruajeni vlerën e dëshiruar te CLKPS ndërsa shkruani një zero në CLKPCE.

Ndërprerjet duhet të çaktivizohen kur ndryshoni cilësimin e prescaler për t'u siguruar që procedura e shkrimit nuk është ndërprerë.

Siguresa CKDIV8 përcakton vlerën fillestare të biteve CLKPS. Nëse CKDIV8 është i paprogramuar, bitet CLKPS do të rivendosen në "0000". Nëse CKDIV8 është programuar, bitet CLKPS rivendosen në "0011", duke dhënë një faktor ndarjeje prej tetë në fillim. Ky funksion duhet të përdoret nëse burimi i orës së zgjedhur ka një frekuencë më të lartë se frekuenca maksimale e pajisjes në kushtet aktuale të funksionimit. Vini re se çdo vlerë mund të shkruhet në bitet CLKPS pavarësisht nga cilësimi i siguresës CKDIV8. Softueri i aplikacionit duhet të sigurojë që një faktor ndarjeje është i mjaftueshëm

zgjidhet nëse burimi i orës së zgjedhur ka një frekuencë më të lartë se frekuenca maksimale e pajisjes në kushtet aktuale të funksionimit. Pajisja dërgohet me siguresën CKDIV8 të programuar.

Tabela 6-15. Zgjedhja e parashkallëzuesit të orës

CLKPS3 CLKPS2 CLKPS1 CLKPS0 Faktori i ndarjes së orës
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 Rezervuar
1 0 1 0 Rezervuar
1 0 1 1 Rezervuar
1 1 0 0 Rezervuar
1 1 0 1 Rezervuar
1 1 1 0 Rezervuar
1 1 1 1 Rezervuar

Shënim: Parashkallëzuesi është i çaktivizuar në modalitetin e përputhshmërisë ATtiny15 dhe as shkrimi në CLKPR, as programimi i siguresës CKDIV8 nuk ka ndonjë efekt në orën e sistemit (e cila do të jetë gjithmonë 1.6 MHz).

Menaxhimi i energjisë dhe mënyrat e gjumit

Performanca e lartë dhe efikasiteti i kodit kryesor në industri i bën mikrokontrolluesit AVR një zgjedhje ideale për aplikime me energji të ulët. Përveç kësaj, mënyrat e gjumit mundësojnë që aplikacioni të mbyllë modulet e papërdorura në MCU, duke kursyer kështu energji. AVR ofron mënyra të ndryshme të gjumit duke i lejuar përdoruesit të përshtatë konsumin e energjisë sipas kërkesave të aplikacionit.

Modalitetet e gjumit

Figura 6-1 në faqen 23 paraqet sistemet e ndryshme të orës dhe shpërndarjen e tyre në ATtiny25 / 45/85. Shifra është e dobishme në zgjedhjen e një mënyre të përshtatshme gjumi. Tabela 7-1 tregon mënyrat e ndryshme të gjumit dhe burimet e tyre të zgjimit.

Tabela 7-1. Domenet aktive të orës dhe burimet e zgjimit në mënyra të ndryshme të gjumit

Fushat aktive të orës Oscilatorët Burimet e zgjimit
Modaliteti i gjumit clkCPU clkFLASH klkIO clkADC clkPCK Burimi i orës kryesore është aktivizuar INT0 dhe Ndryshimi i Pin-it SPM / EEPROM

Gati

 

Kushti i Fillimit USI

ADC I/O tjera Mbrojtës Ndërprisni
I papunë X X X X X X X X X X
Reduktimi i Zhurmës ADC X X X(1) X X X X
Fike X(1) X X

Shënim: Për INT0, vetëm ndërprerja e nivelit.

Për të hyrë në ndonjë nga tre mënyrat e fjetjes, biti SE në MCUCR duhet të shkruhet në një logjikë dhe duhet të ekzekutohet një udhëzim SLEEP. Bitet [1: 0] SM në Regjistrin MCUCR zgjedhin se cila modalitet i gjumit (Idle, ADC Noise Reduction ose Power-down) do të aktivizohet nga udhëzimet SLEEP. Shiko Tabela 7-2 për një përmbledhje.

Nëse ndodh një ndërprerje e aktivizuar ndërsa MCU është në gjendje gjumi, MCU zgjohet. MCU më pas ndalet për katër cikle përveç kohës së fillimit, ekzekuton rutinën e ndërprerjes dhe rifillon ekzekutimin nga udhëzimi pas SLEEP. Përmbajtja e Regjistrit File dhe SRAM janë të pandryshuara kur pajisja zgjohet nga gjumi. Nëse ndodh një rivendosje gjatë modalitetit të gjumit, MCU zgjohet dhe ekzekutohet nga Vektori i Rivendosjes.

Shënim: nëse përdoret një ndërprerje e shkaktuar nga niveli për zgjim, niveli i ndryshuar duhet të mbahet për ca kohë për të zgjuar MCU (dhe që MCU të hyjë në rutinën e shërbimit të ndërprerjes). Shiko “Ndërprerjet e jashtme” në faqen 49 për detaje.

Modaliteti i papunë

Kur bitet SM[1:0] shkruhen në 00, instruksioni SLEEP e bën MCU-në të hyjë në modalitetin Idle, duke e ndalur CPU-në, por duke lejuar krahasuesin Analog, ADC, USI, Timer/Counter, Watchdog dhe sistemin e ndërprerjes të vazhdojë funksionimin. duke ngrënë. Ky modalitet i fjetjes në thelb ndalon clkCPU dhe clkFLASH, ndërsa lejon që orët e tjera të funksionojnë.

Modaliteti i papunë lejon që MCU të zgjohet nga ndërprerjet e jashtme të shkaktuara, si dhe ato të brendshme si Mbingarkesa e Kohëmatësit. Nëse zgjimi nga ndërprerja e Krahasuesit Analog nuk kërkohet, Krahasuesi Analog mund të ndizet duke vendosur bitin ACD në “ACSR - Regjistri i Kontrollit dhe Statusit Analog të Krahasuesit” në faqen 120. Kjo do të zvogëlojë konsumin e energjisë në modalitetin e Idle. Nëse ADC është i aktivizuar, një konvertim fillon automatikisht kur të futet në këtë modalitet.

Modaliteti i Reduktimit të Zhurmës ADC

Kur bitet SM[1:0] shkruhen në 01, instruksioni SLEEP e bën MCU-në të hyjë në modalitetin e Zvogëlimit të Zhurmës ADC, duke ndaluar CPU-në, por duke lejuar ADC-në, ndërprerjet e jashtme dhe Watchdog të vazhdojnë të funksionojnë (nëse është aktivizuar). Ky modalitet i fjetjes ndalon clkI/O, clkCPU dhe clkFLASH, ndërsa lejon që orët e tjera të funksionojnë.

Kjo përmirëson mjedisin e zhurmës për ADC, duke mundësuar matje me rezolucion më të lartë. Nëse ADC është i aktivizuar, një konvertim fillon automatikisht kur të futet në këtë modalitet. Përveç formës së ndërprerjes së plotë të konvertimit ADC, vetëm një Rivendosje e Jashtme, një Rivendosje Watchdog, një Rivendosje e skuqur, një ndërprerje e gatshme për SPM / EEPROM, një ndërprerje e nivelit të jashtëm në INT0 ose një ndërprerje e ndryshimit të kunjit mund të zgjojë MCU nga ADC Reduction Noise mënyrën

Modaliteti i uljes së energjisë

Kur bitët SM [1: 0] shkruhen në 10, udhëzimi SLEEP bën që MCU të hyjë në modalitetin e fikjes. Në këtë mënyrë, Oshilatori ndalet, ndërsa ndërprerjet e jashtme, USI fillojnë zbulimin e kushteve dhe Watchdog vazhdojnë të funksionojnë (nëse është e aktivizuar). Vetëm një Rivendosje e Jashtme, një Rivendosje Watchdog, një Rivendosje Brown-out, ndërprerja e kushtit të fillimit USI, një ndërprerje e nivelit të jashtëm në INT0 ose një ndërprerje e ndryshimit të kunjit mund të zgjojë MCU. Kjo mënyrë gjumi ndalon të gjitha orët e gjeneruara, duke lejuar funksionimin vetëm të moduleve asinkrone.

Softueri BOD çaktivizon

Kur Detektori Brown-out (BOD) aktivizohet nga siguresat BODLEVEL (shih Tabela 20-4 në faqen 148), BOD po monitoron në mënyrë aktive volumin e furnizimittage gjatë një periudhe gjumi. Në disa pajisje është e mundur të kurseni energji duke e çaktivizuar BOD-in nga softueri në modalitetin e gjumit Power-Down. Konsumi i energjisë në modalitetin e fjetjes do të jetë në të njëjtin nivel si kur BOD është i paaftë globalisht nga siguresat.

Nëse BOD është çaktivizuar nga softueri, funksioni BOD fiket menjëherë pas hyrjes në modalitetin e fjetjes. Pas zgjimit nga gjumi, BOD aktivizohet përsëri automatikisht. Kjo siguron funksionim të sigurt në rast se niveli i VCC ka rënë gjatë periudhës së gjumit.

Kur BOD të jetë çaktivizuar, koha e zgjimit nga modaliteti i gjumit do të jetë e njëjtë me atë të zgjimit nga RESET. Përdoruesi duhet të konfigurojë manualisht kohët e zgjimit, në mënyrë që referenca e bandgap-it të ketë kohë për të filluar dhe BOD të funksionojë si duhet përpara se MCU të vazhdojë ekzekutimin e kodit. Shikoni copat e siguresave SUT [1: 0] dhe CKSEL [3: 0] në tabelë “Fuse Low Byte” në faqen 149

Çaktivizimi i BOD kontrollohet nga pak bordet (BOD Sleep) i Regjistrit të Kontrollit MCU, shih “MCUCR - Kontrolli i MCU Regjistrohuni ”në faqen 37. Shkrimi i këtij bit-i tek njëri-tjetri fik BOD në Power-Down, ndërsa shkrimi i një zero e mban BOD aktiv. Cilësimi i paracaktuar është zero, dmth BOD aktiv.

Shkrimi në bitin BODS kontrollohet nga një sekuencë me kohë dhe një bit i mundshëm, shih “MCUCR - Regjistri i Kontrollit të MCU- ter ”në faqen 37.

Kufizimet

Funksionimi i çaktivizimit të BOD është zbatuar vetëm në pajisjet e mëposhtme:

ATtiny25, rishikimi E dhe më i ri

ATtiny45, rishikimi D, dhe më i ri

ATtiny85, rishikimi C, dhe më i ri

Rishikimet janë shënuar në paketën e pajisjes dhe mund të gjenden si më poshtë:

Ana e poshtme e paketave 8P3 dhe 8S2

Ana kryesore e paketës 20M1

Regjistri i Reduktimit të Energjisë

Regjistri i Reduktimit të Energjisë (PRR), shih “PRR - Regjistri i Reduktimit të Energjisë” në faqen 38, ofron një metodë për të zvogëluar konsumin e energjisë duke ndalur orën në periferitë individuale. Gjendja aktuale e periferisë është e ngrirë dhe regjistrat I / O nuk mund të lexohen ose shkruhen. Burimet e përdorura nga periferikja kur ndalon orën do të mbeten të zëna, prandaj periferikja në shumicën e rasteve duhet të çaktivizohet para se të ndalojë orën. Zgjimi i një moduli, i cili bëhet duke pastruar bitin në PRR, e vendos modulin në të njëjtën gjendje si para mbylljes.

Mbyllja e modulit mund të përdoret në modalitetin Idle dhe atë Aktiv për të zvogëluar ndjeshëm konsumin e përgjithshëm të energjisë. Në të gjitha mënyrat e tjera të gjumit, ora është ndalur tashmë. Shiko “Furnizimi aktual i moduleve I / O” në faqen 177 për shembullamples.

Minimizimi i konsumit të energjisë

Ka disa çështje për t'u marrë parasysh kur përpiqeni të minimizoni konsumin e energjisë në një sistem të kontrolluar nga AVR. Në përgjithësi, mënyrat e gjumit duhet të përdoren sa më shumë që të jetë e mundur dhe mënyra e gjumit duhet të zgjidhet në mënyrë që të funksionojnë sa më pak nga funksionet e pajisjes. Të gjitha funksionet që nuk nevojiten duhet të çaktivizohen. Në veçanti, modulet e mëposhtme mund të kenë nevojë për shqyrtim të veçantë kur përpiqen të arrijnë konsumin më të ulët të mundshëm të energjisë.

Konvertuesi analog në dixhital

Nëse aktivizohet, ADC do të aktivizohet në të gjitha mënyrat e gjumit. Për të kursyer energji, ADC duhet të çaktivizohet para se të hyni në ndonjë modalitet gjumi. Kur ADC fiket dhe ndizet përsëri, shndërrimi tjetër do të jetë një shndërrim i zgjatur. I referohet “Konvertuesi analog në dixhital” në faqen 122 për detaje mbi funksionimin e ADC.

Krahasues analog

Kur hyni në modalitetin boshe, Krahasuesi Analog duhet të çaktivizohet nëse nuk përdoret. Kur futeni në modalitetin e zvogëlimit të zhurmës ADC, Krahasuesi Analog duhet të çaktivizohet. Në mënyrat e tjera të gjumit, Krahasuesi Analog është çaktivizuar automatikisht. Sidoqoftë, nëse Krahasuesi Analog është krijuar për të përdorur Volumin e Brendshëmtage Referuar si hyrje, Krahasuesi Analog duhet të çaktivizohet në të gjitha mënyrat e gjumit. Përndryshe, Volumi i Brendshëmtage Referenca do të aktivizohet, pavarësisht nga mënyra e gjumit. I referohet “Krahasuesi Analog” në faqen 119 për detaje se si të konfiguroni Krahasuesin Analog.

Detektor i nxirë

Nëse Detektori Brown-out nuk është i nevojshëm në aplikacion, ky modul duhet të çaktivizohet. Nëse Detektori Brown-out është aktivizuar nga Siguresat BODLEVEL, ai do të aktivizohet në të gjitha mënyrat e gjumit, dhe kështu, gjithmonë konsumoni energji. Në mënyrat më të thella të gjumit, kjo do të kontribuojë ndjeshëm në konsumin e përgjithshëm aktual. Shiko “Detec i nxirë- tion ”në faqen 41 dhe “Software BOD Disable” në faqen 35 për detaje se si të konfiguroni Detektorin Brown-out.

Vëllimi i brendshëmtage Referenca

Vol. I Brendshëmtage Referenca do të aktivizohet kur është e nevojshme nga Zbulimi i Brown-out, Krahasuesi Analog ose ADC. Nëse këto module janë të çaktivizuara siç përshkruhet në pjesët e mësipërme, vëllimi i brendshëmtagReferenca do të çaktivizohet dhe nuk do të konsumojë energji. Kur ndizet përsëri, përdoruesi duhet të lejojë që referenca të fillojë para se të përdoret dalja. Nëse referenca mbahet në modalitetin e fjetjes, dalja mund të përdoret menjëherë. I referohet “Volumi i brendshëmtage Referenca ”në faqen 42 për detaje mbi kohën e fillimit.

Watchdog Timer

Nëse Timer vëzhgues nuk është i nevojshëm në aplikacion, ky modul duhet të çaktivizohet. Nëse Timer vëzhgues është i aktivizuar, ai do të aktivizohet në të gjitha mënyrat e gjumit, dhe kështu, gjithmonë konsumoni energji. Në mënyrat më të thella të gjumit, kjo do të kontribuojë ndjeshëm në konsumin e përgjithshëm aktual. I referohet "Kohëmatësi i vrojtimit" në faqen 42 për detaje se si të konfiguroni Kohëmatësin e Mbikëqyrjes.

Kunjat e Portit

Kur hyni në modalitetin e gjumit, të gjitha kunjat e portit duhet të konfigurohen për të përdorur fuqinë minimale. Gjëja më e rëndësishme është të siguroheni që asnjë kunja të mos nxisë ngarkesa rezistente. Në modalitetet e fjetjes ku ora I/O (clkI/O) dhe ora ADC (clkADC) janë ndalur, buferat e hyrjes së pajisjes do të çaktivizohen. Kjo siguron që nuk konsumohet energji

nga logjika e hyrjes kur nuk është e nevojshme. Në disa raste, logjika e hyrjes është e nevojshme për zbulimin e kushteve të zgjimit, dhe

atëherë do të aktivizohet. Referojuni seksionit "Modaliteti i Hyrjes Dixhitale dhe Modalitetet e Gjumit" në faqen 57 për detaje se cilat kunja janë të aktivizuara. Nëse buferi i hyrjes është i aktivizuar dhe sinjali i hyrjes lihet lundrues ose ka një nivel sinjali analog afër VCC/2, buferi i hyrjes do të përdorë fuqi të tepërt.

Për kunjat e hyrjes analoge, buferi i hyrjes dixhitale duhet të çaktivizohet në çdo kohë. Një nivel sinjali analog afër VCC/2 në një kunj hyrëse mund të shkaktojë rrymë të konsiderueshme edhe në modalitetin aktiv. Buferët e hyrjes dixhitale mund të çaktivizohen duke shkruar në regjistrin e çaktivizimit të hyrjes dixhitale (DIDR0). I referohet “DIDR0 - Regjistrohu i Çaktivizimit të Futjes Dixhitale 0” në faqen 121 për detaje.

Regjistrohu Përshkrimi

MCUCR - Regjistri i Kontrollit të MCU

Regjistri i Kontrollit të MCU përmban bit kontrolli për menaxhimin e energjisë.

Bit 7 6 5 4 3 2 1 0
0x35 OBD PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Lexo/Shkruaj R R/W R/W R/W R/W R R/W R/W
Vlera fillestare 0 0 0 0 0 0 0 0

Biti 7 - Tabelat: BOD Gjumi

Funksionimi i çaktivizimit të BOD është i disponueshëm vetëm në disa pajisje. Shiko "Kufizimet" në faqen 36.

Në mënyrë që të çaktivizoni BOD gjatë gjumit (shih Tabela 7-1 në faqen 34) bit bordet duhet të shkruhen në atë logjike. Kjo kontrollohet nga një sekuencë në kohë dhe biti i mundshëm, BODSE në MCUCR. Së pari, të dy bordet dhe bordet duhet të vendosen në një. Së dyti, brenda katër cikleve të orës, BODS duhet të vendosen në një dhe BODSE duhet të vendosen në zero. Biti i bordeve është aktiv tre cikle të orës pasi të jetë vendosur. Një udhëzim i gjumit duhet të ekzekutohet ndërsa BODS është aktiv për të çaktivizuar BOD për mënyrën aktuale të gjumit. Biti i BODS pastrohet automatikisht pas tre cikleve të orës.

Në pajisjet ku Sleeping BOD nuk është implementuar, kjo bit është e papërdorur dhe gjithmonë do të lexojë zero.

Bit 5 - SE: Aktivizo gjumin

Biti SE duhet të shkruhet në një logjikë për ta bërë MCU-në të hyjë në modalitetin e gjumit kur të ekzekutohet instruksioni SLEEP. Për të shmangur hyrjen e MCU në modalitetin e fjetjes, nëse nuk është qëllimi i programuesit, rekomandohet të shkruani bitin Sleep Enable (SE) në një pak përpara ekzekutimit të udhëzimit SLEEP dhe ta pastroni menjëherë pas zgjimit.

Bitët 4: 3 - SM [1: 0]: Modaliteti i fjetjes Zgjidhni bitët 1 dhe 0

Këto pjesë zgjedhin midis tre mënyrave të gjumit të disponueshme siç tregohet në Tabela 7-2.

Tabela 7-2. Zgjidhni modalitetin e gjumit

SM1 SM0 Modaliteti i gjumit
0 0 I papunë
0 1 Reduktimi i Zhurmës ADC
1 0 Fike
1 1 Rezervuar

Bit 2 - BODSE: BOD Mundëso Gjumin

Funksionimi i çaktivizimit të BOD është i disponueshëm vetëm në disa pajisje. Shiko "Kufizimet" në faqen 36.

Biti BODSE mundëson vendosjen e bitit të kontrollit të BODS, siç shpjegohet në përshkrimin e bitit të BODS. Çaktivizimi i BOD kontrollohet nga një sekuencë me kohë.

Ky bit është i papërdorur në pajisjet ku softueri BOD i çaktivizuar nuk është implementuar dhe do të lexohet si zero në ato pajisje.

PRR - Regjistri i Reduktimit të Energjisë

Regjistri i Reduktimit të Energjisë ofron një metodë për të zvogëluar konsumin e energjisë duke lejuar që të çaktivizohen sinjalet e orës periferike.

Bit 7 6 5 4 3 2 1 0
0x20 PRTIM1 PRTIM0 PRUSI PRADC PRR
Lexo/Shkruaj R R R R R/W R/W R/W R/W
Vlera fillestare 0 0 0 0 0 0 0 0

Pjesët 7: 4 - Rez: Pjesët e rezervuara

Këto bit janë bit të rezervuara në ATtiny25 / 45/85 dhe gjithmonë do të lexohen si zero.

Bit 3 - PRTIM1: Kohëmatësi / Numëruesi i Reduktimit të Energjisë 1

Shkrimi i një logjike në këtë bit mbyll modulin Timer / Counter1. Kur të aktivizohet Timer / Counter1, funksionimi do të vazhdojë si para fikjes.

Bit 2 - PRTIM0: Kohëmatësi / Numëruesi i Reduktimit të Energjisë 0

Shkrimi i një logjike në këtë bit mbyll modulin Timer / Counter0. Kur të aktivizohet Timer / Counter0, funksionimi do të vazhdojë si para fikjes.

Bit 1 - PRUSI: Reduktimi i energjisë USI

Shkrimi i një logjike në këtë bit mbyll USI duke ndaluar orën në modul. Kur zgjoni përsëri USI, USI duhet të inicializohet për të siguruar funksionimin e duhur.

Bit 0 - PRADC: Reduktimi i energjisë ADC

Shkrimi i një logjike në këtë bit mbyll ADC. ADC duhet të çaktivizohet para se të mbyllet. Vini re se ora ADC përdoret gjithashtu nga disa pjesë të krahasuesit analog, që do të thotë se krahasuesi analog nuk mund të përdoret kur kjo bit është e lartë.

Kontrolli dhe Rivendosja e Sistemit

Rivendosja e AVR

Gjatë rivendosjes, të gjithë Regjistrat e I / O vendosen në vlerat e tyre fillestare, dhe programi fillon ekzekutimin nga Vetsori i Rivendosjes. Udhëzimi i vendosur në Vektorin e Rivendosjes duhet të jetë një udhëzim RJMP - Relative Jump - për rutinën e trajtimit të rivendosjes. Nëse programi nuk lejon kurrë një burim ndërprerjeje, Vektorët e Ndërprerjes nuk përdoren, dhe kodi i rregullt i programit mund të vendoset në këto vende. Diagrami i qarkut në Figura 8-1 tregon logjikën e rivendosjes. Parametrat elektrikë të qarkut të rivendosjes janë dhënë në "Karakteristikat e Sistemit dhe Rivendosjes" në faqen 165.

Figura 8-1 Rivendosja e logjikës Rivendos-logjika

Portet I / O të AVR rivendosen menjëherë në gjendjen e tyre fillestare kur një burim i rivendosjes aktivizohet. Kjo nuk kërkon që të funksionojë asnjë burim i orës.

Pasi të gjitha burimet e rivendosjes kanë mbetur joaktive, thirret një numërues i vonesës, që shtrin rivendosjen e brendshme. Kjo lejon që fuqia të arrijë një nivel të qëndrueshëm para se të fillojë funksionimi normal. Periudha e skadimit të kohëzgjatjes së vonesës përcaktohet nga përdoruesi përmes siguresave SUT dhe CKSEL. Përzgjedhjet e ndryshme për periudhën e vonesës janë paraqitur në “Ora Burimet ”në faqen 25.

Rivendosni burimet

ATtiny25 / 45/85 ka katër burime të rivendosjes:

Rivendosja e ndezjes MCU rivendoset kur furnizimi voltage është nën pragun e rivendosjes së ndezjes (VPOT).

Rivendosja e jashtme. MCU rivendoset kur një nivel i ulët është i pranishëm në pin RESET për më shumë se gjatësia minimale e impulsit.

Rivendos vëzhguesin. MCU rivendoset kur skadon periudha e Mbrojtësit të Kohëmatësit dhe aktivizohet Mbikëqyrësi.

Rivendosja me ngjyrë kafe MCU rivendoset kur furnizimi voltage VCC është nën pragun e rivendosjes së kafesë (VBOT) dhe Detektori i daljes kafe është i aktivizuar.

Rivendosja e ndezjes

Një impuls i Rivendosjes së Ndezjes (POR) gjenerohet nga një qark i zbulimit në chip. Niveli i zbulimit përcaktohet në "Sys- Tem dhe Reset Karakteristikat ”në faqen 165. POR aktivizohet sa herë që VCC është nën nivelin e zbulimit. Qarku POR mund të përdoret për të aktivizuar rivendosjen e fillimit, si dhe për të zbuluar një dështim në vëllimin e furnizimittage.

Një qark Power-on Reset (POR) siguron që pajisja të rivendoset nga Power-on. Arritja e pragut të rivendosjes së fuqisë voltage thërret numëruesin e vonesave, i cili përcakton se sa kohë do të mbahet pajisja në RESET pas ngritjes së VCC. Sinjali RESET aktivizohet përsëri, pa asnjë vonesë, kur VCC ulet nën nivelin e zbulimit.

Figura 8-2. Nisja e MCU, RESET Lidhur me VCC

RISET E BRENDSHME

Figura 8-3. Nisja e MCU, RESET Extended nga jashtë

Rivendosja e jashtme

Një Rivendosje e Jashtme gjenerohet nga një nivel i ulët në pin RESET nëse aktivizohet. Rivendosni impulset më shumë se gjerësia minimale e impulsit (shih "Karakteristikat e Sistemit dhe Rivendosjes" në faqen 165) do të gjenerojë një rivendosje, edhe nëse ora nuk po funksionon. Impulset më të shkurtra nuk janë të garantuara për të gjeneruar një rivendosje. Kur sinjali i aplikuar arrin Reset Threshold Voltage – VRST – në skajin e tij pozitiv, numëruesi i vonesave nis MCU pasi të ketë skaduar periudha e Kohës së Përfundimit.

Figura 8-4. Rivendosja e jashtme gjatë funksionimit Fig8.4

Zbulimi i skuqjes

ATtiny25/45/85 ka një qark të zbulimit të daljes kafe në çip (BOD) për monitorimin e nivelit të VCC gjatë funksionimit duke e krahasuar atë me një nivel fiks të këmbëzës. Niveli i këmbëzës për BOD mund të zgjidhet nga Siguresat BODLEVEL. Niveli i këmbëzës ka një histerezë për të siguruar Zbulimin e daljes kafe pa thumba. Histereza në nivelin e zbulimit duhet të interpretohet si VBOT+ = VBOT + VHYST/2 dhe VBOT- = VBOT – VHYST/2.

Kur BOD është i aktivizuar dhe VCC zvogëlohet në një vlerë nën nivelin e këmbëzës (VBOT-në Figura 8-5), Rivendosja e Brown-out aktivizohet menjëherë. Kur VCC rritet mbi nivelin e këmbëzës (VBOT+ in Figura 8-5), numëruesi i vonesave nis MCU pasi të ketë skaduar periudha e Kohës së Përfundimit tTOUT.

Qarku BOD do të zbulojë një rënie në VCC vetëm nëse voltage qëndron nën nivelin e këmbëzës për më shumë se tBOD e dhënë "Karakteristikat e Sistemit dhe Rivendosjes" në faqen 165. Fig8.5

Rivendos vëzhguesin

Kur koha e Watchdog mbaron, do të gjenerojë një puls të shkurtër rivendosjeje me një kohëzgjatje të një cikli CK. Në skajin në rënie të këtij pulsi, kohëmatësi i vonesës fillon të numërojë periudhën e Kohës së Përfundimit tTOUT. I referohet "Kohëmatësi i vrojtimit" në faqen 42 për detaje mbi funksionimin e Kohëmatësit vëzhgues.

Vëlltage Referenca Aktivizoni sinjalet dhe kohën e fillimit

VëllimitagReferenca ka një kohë fillimi që mund të ndikojë në mënyrën se si duhet të përdoret. Koha e fillimit jepet "Karakteristikat e Sistemit dhe Rivendosjes" në faqen 165. Për të kursyer energji, referenca nuk është gjithmonë e ndezur. Referenca është e ndezur gjatë situatave të mëposhtme:

Kur BOD është i aktivizuar (duke programuar BODLEVEL [2: 0] Bits Fuse).

Kur referenca e bandgap është e lidhur me Analog Comparator (duke vendosur bitin ACBG në ACSR).

Kur ADC është aktivizuar.

Kështu, kur BOD nuk është aktivizuar, pasi të vendosni bitin ACBG ose të keni mundësuar ADC, përdoruesi gjithmonë duhet të lejojë që referenca të fillojë para se të përdoret rezultati nga Krahasuesi Analog ose ADC. Për të zvogëluar konsumin e energjisë në modalitetin e fikjes, përdoruesi mund të shmangë tre kushtet e mësipërme për të siguruar që referenca të jetë fikur përpara se të hyjë në modalitetin e ndërprerjes së energjisë.

Watchdog Timer

Kohëmatësi i Mbikëqyrjes është me kohë nga një Oscillator On-chip i cili funksionon me 128 kHz. Duke kontrolluar ruajtësin e Watcher-it Timer, intervali i Rivendosjes së Mbikëqyrësit mund të rregullohet siç tregohet në Tabela 8-3 në faqen 46. Udhëzimi WDR - Watchdog Reset - rivendos orën Watchdog. Kohëmatësi i vrojtimit rivendoset gjithashtu kur është me aftësi të kufizuara dhe kur ndodh një Rivendosje e Çipit. Dhjetë periudha të ndryshme të ciklit të orës mund të zgjidhen për të përcaktuar periudhën e rivendosjes. Nëse periudha e rivendosjes skadon pa një rivendosje tjetër të Watchdog, ATtiny25 / 45/85 rivendoset dhe ekzekutohet nga Vektori i Rivendosjes. Për detajet e kohës në Reset Watchdog, referojuni Tabela 8-3 në faqen 46.

Kohëmatësi i Mbikëqyrjes gjithashtu mund të konfigurohet për të gjeneruar një ndërprerje në vend të një rivendosjeje. Kjo mund të jetë shumë e dobishme kur përdorni Watchdog për t'u zgjuar nga Ndërprerja e energjisë.

Për të parandaluar çaktivizimin e paqëllimtë të Mbikëqyrësit ose ndryshimin e paqëllimtë të periudhës së ndërprerjes, dy nivele të ndryshme sigurie zgjidhen nga siguresa WDTON siç tregohet në Tabela 8-1 Referojuni “Sekuencat me kohë për ndryshimin e kon figuracioni i Kohëmatësit vëzhgues ”në faqen 43 për detaje.

Tabela 8-1. Konfigurimi WDT si një funksion i cilësimeve të siguresave të WDTON

WDTON Niveli i Sigurisë Shteti fillestar i WDT Si të Çaktivizoni WDT Si të ndryshohet koha e ndërprerjes
I paprogramuar 1 I paaftë Sekuenca me kohë Nuk ka kufizime
I programuar 2 Aktivizuar Gjithmonë i aktivizuar Sekuenca me kohë

Figura 8-7. Watchdog Timer Mbrojtës

Sekuencat me kohë për ndryshimin e konfigurimit të kohëmatësit vëzhgues

Sekuenca për ndryshimin e konfigurimit ndryshon paksa midis dy niveleve të sigurisë. Procedurat e ndara përshkruhen për secilin nivel.

Niveli i sigurisë 1: Në këtë modalitet, kohëmatësi Watchdog fillimisht çaktivizohet, por mund të aktivizohet duke shkruar bitin WDE në një pa asnjë kufizim. Një sekuencë me kohë nevojitet kur çaktivizon një kohëmatës të aktivizuar Watchdog. Për të çaktivizuar një kohëmatës Watchdog të aktivizuar, duhet të ndiqet procedura e mëposhtme:

Në të njëjtin operacion, shkruaj një logjike në WDCE dhe WDE. Një logjikë duhet t'i shkruhet WDE, pa marrë parasysh vlerën e mëparshme të bitit WDE.

Brenda katër cikleve të ardhshëm të orës, në të njëjtin operacion, shkruajini bitët WDE dhe WDP sipas dëshirës, ​​por me bitin WDCE të pastruar.

Niveli i sigurisë 2: Në këtë modalitet, kohëmatësi Watchdog është gjithmonë i aktivizuar dhe biti WDE do të lexohet gjithmonë si një. Një sekuencë me kohë nevojitet kur ndryshoni periudhën e skadimit të Watchdog. Për të ndryshuar kohëzgjatjen e Watchdog, duhet të ndiqet procedura e mëposhtme:

Në të njëjtin operacion, shkruaj një logjike në WDCE dhe WDE. Edhe pse WDE është gjithmonë e vendosur, WDE duhet t'i shkruhet njërit për të filluar sekuencën me kohë.

Brenda katër cikleve të ardhshëm të orës, në të njëjtin veprim, shkruajini bitët WDP sipas dëshirës, ​​por me bitin WDCE të pastruar. Vlera e shkruar në bitin WDE është e parëndësishme.

Kodi Sheshample

Kodi i mëposhtëm p.shample tregon një asamble dhe një funksion C për fikjen e WDT. Ishample supozon se ndërprerjet kontrollohen (p.sh., duke i çaktivizuar ndërprerjet në nivel global) në mënyrë që asnjë ndërprerje të mos ndodhë gjatë ekzekutimit të këtyre funksioneve.

Kodi i Kuvendit Pshample(1)
WDT_off:

wdr

; Pastro WDRF në MCUSR

ldi r16, (0<

jashtë MCUSR, r16

; Shkruaj një logjike në WDCE dhe WDE

; Mbani cilësimet e vjetra të parashkollorit për të parandaluar Rivendosjen e paqëllimshme të Mbikëqyrësit

në r16, WDTCR

ori r16, (1<

jashtë WDTCR, r16

; Çaktivizoni WDT

ldi r16, (0<

jashtë WDTCR, r16

ret

Kodi C Pshample(1)
i pavlefshëm WDT_off (i pavlefshëm)

{

_WDR ();

/* Pastro WDRF në MCUSR */ MCUSR = 0x00

/* Shkruani një logjike në WDCE dhe WDE */ WDTCR |= (1<

/ * Çaktivizo WDT * / WDTCR = 0x00;

}

Shënim: 1. Shih “Kodi Sheshamples ”në faqen 6.

Regjistrohu Përshkrimi

MCUSR - Regjistri i Statusit të MCU

Regjistri i Statusit të MCU ofron informacione se cili burim i rivendosjes shkaktoi një Rivendosje të MCU-së.

Bit 7 6 5 4 3 2 1 0
0x34 WDRF BORF EXTRF PORF MKUSR
Lexo/Shkruaj R R R R R/W R/W R/W R/W

Vlera fillestare 0 0 0 0 Shih përshkrimin e bitit

Pjesët 7: 4 - Rez: Pjesët e rezervuara

Këto bit janë bit të rezervuara në ATtiny25 / 45/85 dhe gjithmonë do të lexohen si zero.

Bit 3 - WDRF: Flamuri i rivendosjes së vëzhguesit

Ky bit është vendosur nëse ndodh një Rivendosje e Mbikëqyrësit. Biti rivendoset nga një Rivendosje e ndezjes, ose duke shkruar një logjikë zero në flamur.

Biti 2 - BORF: Flamuri i Rivendosjes me kafe

Kjo bit vendoset nëse ndodh një Rivendosje e Brown-out. Biti rivendoset nga një Rivendosje e ndezjes, ose duke shkruar një logjikë zero në flamur.

Bit 1 - EXTRF: Flamuri i Rivendosjes së Jashtme

Kjo bit vendoset nëse ndodh një Rivendosje e Jashtme. Biti rivendoset nga një Rivendosje e ndezjes, ose duke shkruar një logjikë zero në flamur.

Bit 0 - PORF: Flamuri i rivendosjes së ndezjes

Kjo bit vendoset nëse ndodh një Rivendosje e Ndezjes. Bit-i rivendoset vetëm duke shkruar një logjikë zero në flamur.

Për të përdorur Flamujt e Rivendosjes për të identifikuar një gjendje rivendosjeje, përdoruesi duhet të lexojë dhe pastaj të rivendosë MCUSR sa më shpejt të jetë e mundur në program. Nëse regjistri pastrohet para se të ndodhë një rivendosje tjetër, burimi i rivendosjes mund të gjendet duke shqyrtuar Flamujt e Rivendosjes.

WDTCR - Regjistri i Kontrollit të Kohëmatësit Mbikëqyrës

Bit 7 6 5 4 3 2 1 0
0x21 WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0 WDTCR
Lexo/Shkruaj R/W R/W R/W R/W R/W R/W R/W R/W
Vlera fillestare 0 0 0 0 X 0 0 0

Bit 7 - WDIF: Flamuri i ndërprerjes së mbikëqyrjes së vëzhguesit

Kjo bit caktohet kur ndodh një ndërprerje e kohës në Watcher-Timer dhe Watchdog Timer është konfiguruar për ndërprerje. WDIF pastrohet nga hardueri kur ekzekuton vektorin përkatës të trajtimit të ndërprerjeve. Përndryshe, WDIF pastrohet duke shkruar një logjikë në flamur. Kur caktohet I-bit në SREG dhe WDIE, ekzekutohet ndërprerja e mbarimit të vrojtimit.

Bit 6 - WDIE: Aktivizo ndërprerjen e mbikëqyrjes së vëzhguesit

Kur kjo bit është shkruar në një, WDE pastrohet dhe vendoset I-bit në Regjistrin e Statusit, ndërprerja e mbarimit të vëzhguesit është e aktivizuar. Në këtë mënyrë, ndërprerja përkatëse ekzekutohet në vend të një rivendosjeje nëse ndodh një ndërprerje e kohës në Watcher Dog Timer.

Nëse WDE është vendosur, WDIE pastrohet automatikisht nga pajisja kur ndodh një ndërprerje e kohës. Kjo është e dobishme për të mbajtur sigurinë Watchdog Reset ndërsa përdorni ndërprerjen. Pasi të pastrohet biti WDIE, koha-dalja tjetër do të gjenerojë një rivendosje. Për të shmangur Rivendosjen e Mbikëqyrësit, WDIE duhet të vendoset pas çdo ndërprerjeje.

Tabela 8-2. Konfigurimi i kohëmatësit Watchdog

WDE WDIE Shteti vëzhgues i kohëmatësit Aksioni për Time-out
0 0 Ndaloi Asnjë
0 1 Vrapimi Ndërprisni
1 0 Vrapimi Rivendos
1 1 Vrapimi Ndërprisni

Bit 4 - WDCE: Aktivizo ndryshimin e vëzhguesit

Kjo bit duhet të vendoset kur bit WDE është shkruar në logjikën zero. Përndryshe, vëzhguesi nuk do të çaktivizohet. Pasi të shkruhet në një, hardueri do ta pastrojë këtë bit pas katër cikleve të orës. Referojuni përshkrimit të bitit WDE për një procedurë të çaktivizimit të Watchdog. Kjo bit duhet të vendoset edhe kur ndryshoni copat e prescaler. Shiko “Sekuencat me kohë për Ndryshimin e Konfigurimit të Kohëmatësit Mbikëqyrës ”në faqen 43.

Bit 3 - WDE: Mbikëqyrësi aktivizon

Kur WDE është shkruar në atë logjike, Kohëmatësi i Mbikëqyrjes është i aktivizuar dhe nëse WDE është shkruar në logjikën zero, funksioni i Kohëmatësit Mbikëqyrës është i çaktivizuar. WDE mund të pastrohet vetëm nëse bit WDCE ka nivelin logjik një. Për të çaktivizuar një Timer Watchdog të aktivizuar, duhet të ndiqet procedura e mëposhtme:

Në të njëjtin operacion, shkruaj një logjike në WDCE dhe WDE. Një logjikë duhet t'i shkruhet WDE edhe pse është vendosur në një para se të fillojë operacioni i çaktivizimit.

Brenda katër cikleve të ardhshëm të orës, shkruaj një logjikë 0 në WDE. Kjo e pamundëson vëzhguesin.

Në nivelin e sigurisë 2, nuk është e mundur të çaktivizoni Timerin e Vëzhguesit, madje edhe me algoritmin e përshkruar më sipër. Shiko “Sekuencat me kohë për ndryshimin e konfigurimit të kohëmatësit vëzhgues” në faqen 43.

Në nivelin e sigurisë 1, WDE është tejkaluar nga WDRF në MCUSR. Shiko “MCUSR - Regjistri i Statusit të MCU” në faqen 44 për përshkrimin e WDRF. Kjo do të thotë që WDE vendoset gjithmonë kur vendoset WDRF. Për të pastruar WDE, WDRF duhet të pastrohet përpara se të çaktivizoni Watchdog me procedurën e përshkruar më sipër. Kjo veçori siguron rivendosje të shumëfishtë gjatë kushteve që shkaktojnë dështimin, dhe një startim të sigurt pas dështimit.

Shënim: Nëse kohëmatësi i mbikëqyrjes nuk do të përdoret në aplikacion, është e rëndësishme të kaloni një procedurë çaktivizimi të mbikëqyrësit në inicializimin e pajisjes. Nëse Watchdog është aktivizuar aksidentalisht, p.shampnga një tregues i arratisur ose nga një gjendje e zbehtë, pajisja do të rivendoset, e cila nga ana tjetër do të çojë në një rivendosje të re të rojes. Për të shmangur këtë situatë, softueri i aplikacionit duhet të pastrojë gjithmonë flamurin WDRF dhe bitin e kontrollit WDE në rutinën e fillimit.

Pjesët 5, 2: 0 - WDP [3: 0]: Mbikëqyrësi i vrojtimit Timer Prescaler 3, 2, 1 dhe 0

Bitet WDP [3: 0] përcaktojnë paraprakisht Kohëmatësi i Mbikëqyrësit kur aktivizohet Kohëmatësi i Mbikëqyrjes. Vlerat e ndryshme të parashkrimit dhe Periudhat e tyre përkatëse të Afatit janë treguar në Tabela 8-3.

Tabela 8-3. Zgjedhja e parashkallëzimit të kohëmatësit Watchdog

WDP3 WDP2 WDP1 WDP0 Numri i cikleve oshilatorë WDT Koha tipike në VCC = 5.0V
0 0 0 0 Cikle 2K (2048) 16 ms
0 0 0 1 Cikle 4K (4096) 32 ms
0 0 1 0 Cikle 8K (8192) 64 ms
0 0 1 1 Cikle 16K (16384) 0.125 s
0 1 0 0 Cikle 32K (32764) 0.25 s
0 1 0 1 Cikle 64K (65536) 0.5 s
0 1 1 0 Cikle 128K (131072) 1.0 s
0 1 1 1 Cikle 256K (262144) 2.0 s
1 0 0 0 Cikle 512K (524288) 4.0 s
1 0 0 1 Cikle 1024K (1048576) 8.0 s

Tabela 8-3. Zgjedhja e parashkallëzimit të kohëmatësit Watchdog (Vazhdo)

WDP3 WDP2 WDP1 WDP0 Numri i cikleve oshilatorë WDT Koha tipike në VCC = 5.0V
1 0 1 0 Rezervuar(1)
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

Shënim: 1. Nëse zgjidhet, do të përdoret një nga cilësimet e vlefshme nën 0b1010.

Ndërpret

Kjo pjesë përshkruan specifikat e trajtimit të ndërprerjeve siç kryhen në ATtiny25 / 45/85. Për një shpjegim të përgjithshëm të trajtimit të ndërprerjeve AVR, referojuni “Rivendos dhe Trajtimi i Ndërprerjes” në faqen 12.

Ndërpritni vektorët në ATtiny25 / 45/85

Vektorët e ndërprerjeve të ATtiny25 / 45/85 janë përshkruar në Tabela 9-1më poshtë.

Tabela 9-1. Vektorët e rivendosjes dhe ndërprerjes

Nr vektori Adresa e Programit Burimi Përkufizimi i ndërprerjes
1 0x0000 RISET Pin i jashtëm, Rivendosja e ndezjes, Rivendosja e nxirë, Rivendosja e vëzhguesit
2 0x0001 INT0 Kërkesa e jashtme për ndërprerje 0
3 0x0002 PCINT0 Kërkesa për ndërprerje të ndryshimit të kunjave 0
4 0x0003 TIMER1_COMPA Kohëmatësi / Numëruesi1 Krahasoni Ndeshjen A
5 0x0004 TIMER1_OVF Kohëmatësi / Counter1 Mbingarkesa
6 0x0005 TIMER0_OVF Kohëmatësi / Counter0 Mbingarkesa
7 0x0006 EE_RDY EEPROM gati
8 0x0007 ANA_COMP Krahasues analog
9 0x0008 ADC Konvertimi ADC i plotë
10 0x0009 TIMER1_COMPB Kohëmatësi / numëruesi1 Krahasoni Ndeshjen B
11 0x000A TIMER0_COMPA Kohëmatësi / Numëruesi0 Krahasoni Ndeshjen A
12 0x000B TIMER0_COMPB Kohëmatësi / numëruesi0 Krahasoni Ndeshjen B
13 0x000C WDT Time-out i vëzhguesit
14 0x000D USI_START USI FILLONI
15 0x000E USI_OVF Mbingarkesa USI

Nëse programi nuk lejon kurrë një burim ndërprerjeje, Vektorët e Ndërprerjes nuk përdoren, dhe kodi i rregullt i programit mund të vendoset në këto vende.

Një konfigurim tipik dhe i përgjithshëm për adresat vektoriale të ndërprera në ATtiny25/45/85 është treguar në programin exampmë poshtë.

Kodi i Kuvendit Pshample
.org 0x0000 ; Vendos adresën e radhës deklaratë
rjmp RESETO ; Adresa 0x0000
rjmp INT0_ISR ; Adresa 0x0001
rjmp PCINT0_ISR ; Adresa 0x0002
rjmp TIM1_COMPA_ISR ; Adresa 0x0003
rjmp TIM1_OVF_ISR ; Adresa 0x0004
rjmp TIM0_OVF_ISR ; Adresa 0x0005
rjmp EE_RDY_ISR ; Adresa 0x0006
rjmp ANA_COMP_ISR ; Adresa 0x0007
rjmp ADC_ISR ; Adresa 0x0008
rjmp TIM1_COMPB_ISR ; Adresa 0x0009
rjmp TIM0_COMPA_ISR ; Adresa 0x000A
rjmp TIM0_COMPB_ISR ; Adresa 0x000B
rjmp WDT_ISR ; Adresa 0x000C
rjmp USI_START_ISR ; Adresa 0x000D
rjmp USI_OVF_ISR ; Adresa 0x000E
Rivendosni: ; Fillimi i programit kryesor
; Adresa 0x000F

Shënim: Shih “Kodi Sheshamples ”në faqen 6.

Ndërprerjet e jashtme

Ndërprerjet e Jashtme shkaktohen nga kunja INT0 ose ndonjë nga kunjat PCINT [5: 0]. Vëzhgoni që, nëse janë të aktivizuara, ndërprerjet do të shkaktojnë edhe nëse kunjat INT0 ose PCINT [5: 0] janë konfiguruar si rezultate. Kjo karakteristikë ofron një mënyrë për të gjeneruar një ndërprerje të softuerit. Ndërprerjet e ndryshimit të pinit PCI do të shkaktojë nëse ka aktivizuar kunjat e pinit PCINT [5: 0]. Regjistri i PCMSK kontrollon se cilat kunja kontribuojnë në ndërprerjet e ndryshimit të kunjit. Ndërprerjet e ndryshimit të kunjave në PCINT [5: 0] zbulohen në mënyrë asinkrone. Kjo nënkupton që këto ndërprerje mund të përdoren për zgjimin e pjesës edhe nga modalitetet e gjumit përveç modalitetit të Idle.

Ndërprerjet INT0 mund të shkaktohen nga një avantazh në rënie ose ngritje ose një nivel i ulët. Kjo është vendosur siç tregohet në specifikimet për Regjistrin e Kontrollit të MCU - MCUCR. Kur ndërprerja INT0 është e aktivizuar dhe konfigurohet si shkaktar i nivelit, ndërprerja do të shkaktojë për sa kohë që pin-i mbahet i ulët. Vini re se njohja e ndërprerjeve të rënies ose ngritjes së skajit në INT0 kërkon praninë e një ore I / O, të përshkruar në "Sistemet e orës dhe shpërndarja e tyre" më faqe 23.

Ndërprerja e nivelit të ulët

Një ndërprerje e nivelit të ulët në INT0 zbulohet në mënyrë asinkrone. Kjo nënkupton që kjo ndërprerje mund të përdoret për zgjimin e pjesës edhe nga modalitetet e gjumit përveç modalitetit të Idle. Ora I / O ndalet në të gjitha mënyrat e gjumit përveç modalitetit të Idle.

Vini re se nëse një ndërprerje e aktivizuar në nivel përdoret për zgjimin nga Fikja, niveli i kërkuar duhet të mbahet mjaftueshëm që MCU të përfundojë zgjimin për të shkaktuar ndërprerjen e nivelit. Nëse niveli zhduket përpara përfundimit të Kohës së Fillimit, MCU do të zgjohet ende, por nuk do të krijohet asnjë ndërprerje. Koha e nisjes përcaktohet nga siguresat SUT dhe CKSEL siç përshkruhet në “Ora e Sistemit dhe Opsionet e Orës” në faqen 23.

Nëse niveli i ulët në pinin e ndërprerjes hiqet para se pajisja të zgjohet, ekzekutimi i programit nuk do të devijohet në rutinën e shërbimit të ndërprerjes, por vazhdoni nga udhëzimi duke ndjekur komandën SLEEP.

Koha e ndërprerjes së ndryshimit të pinit

Një ishampkoha e ndërprerjes së ndryshimit të kunjit tregohet në Figura 9-1.

Regjistrohu Përshkrimi

MCUCR - Regjistri i Kontrollit të MCU

Regjistri i Kontrollit të Jashtëm të Ndërprerjeve A përmban bit kontrolli për kontrollin e sensit të ndërprerjes.

Bit 7 6 5 4 3 2 1 0
0x35 OBD PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Lexo/Shkruaj R R/W R/W R/W R/W R R/W R/W
Vlera fillestare 0 0 0 0 0 0 0 0

Bitët 1: 0 - ISC0 [1: 0]: Ndërprerja e Kontrollit të Shqisave 0 Bit 1 dhe Bit 0

Ndërprerja e jashtme 0 aktivizohet nga kunja e jashtme INT0 nëse vendoset flamuri SREG I dhe maska ​​përkatëse e ndërprerjes. Niveli dhe skajet në kunjin e jashtëm INT0 që aktivizojnë ndërprerjen përcaktohen në Tabela 9-2Me Vlera në pinin INT0 është sampudhëhequr para zbulimit të skajeve. Nëse zgjidhet ndërprerja e buzës ose ndërrimit, pulset që zgjasin më shumë se një periudhë të orës do të gjenerojnë një ndërprerje. Impulset më të shkurtra nuk janë të garantuara të krijojnë një ndërprerje. Nëse zgjidhet ndërprerja e nivelit të ulët, niveli i ulët duhet të mbahet deri në përfundimin e udhëzimit aktualisht ekzekutues për të gjeneruar një ndërprerje.

Tabela 9-2. Ndërprerja 0 Sense Control

ISC01 ISC00 Përshkrimi
0 0 Niveli i ulët i INT0 gjeneron një kërkesë për ndërprerje.
0 1 Çdo ndryshim logjik në INT0 gjeneron një kërkesë për ndërprerje.
1 0 Buza në rënie e INT0 gjeneron një kërkesë për ndërprerje.
1 1 Buza në rritje e INT0 gjeneron një kërkesë për ndërprerje.

GIMSK - Regjistri i Maskave të Përgjithshme të Ndërprerjeve

Bit 7 6 5 4 3 2 1 0
0x3B INT0 PCIe GIMSK
Lexo/Shkruaj R R/W R/W R R R R R
Vlera fillestare 0 0 0 0 0 0 0 0

Pjesët 7, 4: 0 - Rez: Bitë të rezervuara

Këto bit janë bit të rezervuara në ATtiny25 / 45/85 dhe gjithmonë do të lexohen si zero.

Bit 6 - INT0: Kërkesa e jashtme e ndërprerjes 0 Aktivizo

Kur vendoset biti INT0 (një) dhe vendoset I-bit në Status Register (SREG) (një), aktivizohet ndërprerja e jashtme e pinit. Kontrolli i Ndërprerjes së Kontrollit0 bit 1/0 (ISC01 dhe ISC00) në Regjistrin e Kontrollit MCU (MCUCR) përcakton nëse ndërprerja e jashtme aktivizohet në ngritjen dhe / ose rënien e buzës ose nivelit të ndjeshëm të INT0. Aktiviteti në pin do të shkaktojë një kërkesë ndërprerje edhe nëse INT0 është konfiguruar si një dalje. Ndërprerja përkatëse e Kërkesës së Ndërprerjes së Jashtme 0 ekzekutohet nga Vektori i Ndërprerjes INT0.

Bit 5 - PCIE: Aktivizo ndërprerjen e ndryshimit të kunjave

Kur vendoset biti PCIE (një) dhe vendoset I-bit në Status Register (SREG) (një), aktivizohet ndërprerja e ndryshimit të kunjit. Çdo ndryshim në çdo pin të aktivizuar PCINT [5: 0] do të shkaktojë një ndërprerje. Ndërprerja përkatëse e Kërkesës për Ndërprerje të Ndryshimit të Pinit ekzekutohet nga PCI Interrupt Vector. Kunjat PCINT [5: 0] aktivizohen individualisht nga Regjistri PCMSK0.

GIFR - Regjistri i Flamurit i Përgjithshëm i Ndërprerjeve

Bit 7 6 5 4 3 2 1 0
0x3A INTF0 PCIF GIFR
Lexo/Shkruaj R R/W R/W R R R R R
Vlera fillestare 0 0 0 0 0 0 0 0

Pjesët 7, 4: 0 - Rez: Bitë të rezervuara

Këto bit janë bit të rezervuara në ATtiny25 / 45/85 dhe gjithmonë do të lexohen si zero.

Bit 6 - INTF0: Flamuri i Jashtëm i Ndërprerjeve 0

Kur një ndryshim buzë ose logjike në kunjin INT0 shkakton një kërkesë për ndërprerje, INTF0 bëhet i vendosur (një). Nëse vendosen (një) bit-i në SREG dhe bit-i INT0 në GIMSK, MCU do të kalojë në Vektorin përkatës të Ndërprerjes. Flamuri pastrohet kur ekzekutohet rutina e ndërprerjes. Përndryshe, flamuri mund të pastrohet duke i shkruar një logjik. Ky flamur pastrohet gjithmonë kur INT0 konfigurohet si ndërprerje niveli.

Bit 5 - PCIF: Flamuri i ndërprerjes së ndryshimit të kunjve

Kur një ndryshim logjik në çdo pin PCINT [5: 0] shkakton një kërkesë ndërprerjeje, PCIF vendoset (një). Nëse I-bit në SREG dhe bit PCIE në GIMSK janë vendosur (një), MCU do të kalojë në Vektorin përkatës të Ndërprerjes. Flamuri pastrohet kur ekzekutohet rutina e ndërprerjes. Përndryshe, flamuri mund të pastrohet duke i shkruar një logjik.

PCMSK - Regjistri i Maskave të Ndryshimit të Pinëve

Bit 7 6 5 4 3 2 1 0
0x15 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 PCMSK
Lexo/Shkruaj R R R/W R/W R/W R/W R/W R/W
Vlera fillestare 0 0 0 0 0 0 0 0

Pjesët 7: 6 - Rez: Pjesët e rezervuara

Këto bit janë bit të rezervuara në ATtiny25 / 45/85 dhe gjithmonë do të lexohen si zero.

Pjesët 5: 0 - PCINT [5: 0]: Ndryshimi i pinit Aktivizo maskën 5: 0

Çdo bit PCINT [5: 0] zgjedh nëse ndërprerja e ndryshimit të kunjit është e aktivizuar në kunjin përkatës I / O. Nëse është vendosur PCINT [5: 0] dhe është vendosur biti PCIE në GIMSK, ndërprerja e ndryshimit të kunjit aktivizohet në kunjin përkatës I / O. Nëse PCINT [5: 0] pastrohet, ndërprerja e ndryshimit të kunjit në kunjin përkatës I / O është çaktivizuar.

Portet I/O

Hyrje

Të gjitha portet AVR kanë funksion të vërtetë Lexo-Ndrysho-Shkruaj kur përdoren si porte të përgjithshme dixhitale I/O. Kjo do të thotë që drejtimi i një kunj porti mund të ndryshohet pa ndryshuar pa qëllim drejtimin e ndonjë kunji tjetër me udhëzimet e SBI dhe CBI. E njëjta gjë vlen kur ndryshoni vlerën e diskut (nëse konfigurohet si dalje) ose aktivizoni/çaktivizoni rezistorët tërheqës (nëse konfigurohen si hyrje). Çdo tampon dalës ka karakteristika simetrike të makinës me lavaman të lartë dhe aftësi burimi. Drejtuesi i pin -it është mjaft i fortë për të drejtuar drejtpërdrejt ekranet LED. Të gjitha kunjat e portit kanë rezistente tërheqëse të zgjedhura individualisht me një volum furnizimitage rezistencë e pandryshueshme. Të gjitha kunjat I/O kanë dioda mbrojtëse si për VCC ashtu edhe për Tokë siç tregohet në Figura 10-1. Referojuni "Karakteristikat elektrike" në faqen 161 për një listë të plotë të parametrave.

Figura 10-1. Skema ekuivalente e pinit I/O

Fig10

Të gjithë regjistrat dhe referencat e bitit në këtë seksion janë shkruar në formë të përgjithshme. Një shkronjë e vogël "x" përfaqëson shkronjën numëruese për portën, dhe një shkronjë e vogël "n" përfaqëson numrin e bitit. Sidoqoftë, kur përdorni regjistrin ose bitin e përcaktuar në një program, duhet të përdoret forma e saktë. Për ishample, PORTB3 për bitin nr. 3 në Portin B, të dokumentuar këtu përgjithësisht si PORTxn. Regjistrat fizikë të I/O dhe vendndodhjet e bitëve janë të listuara në "Regjistro Regjistrimin" në faqe 64.

Tre vendndodhje të adresave të memorjes I / O janë caktuar për secilën portë, një për Regjistrin e të Dhënave - PORTx, Regjistrin e Drejtimit të të Dhënave - DDRx dhe Kunjat e Hyrjes Port - PINx. Vendndodhja I / O e Portave të Hyrjes Porte lexohet vetëm, ndërsa Regjistri i të Dhënave dhe Regjistri i Drejtimit të të Dhënave lexohen / shkruhen. Sidoqoftë, shkrimi i një logjike një nga një në Regjistrin PINx, do të rezultojë në një këmbe në bitin përkatës në Regjistrin e të Dhënave. Për më tepër, Pull-up Disable - PUD bit në MCUCR pamundëson funksionin pull-up për të gjitha kunjat në të gjitha portat kur vendoset.

Përdorimi i portës I / O si General Digital I / O përshkruhet në “Portet si I / O e përgjithshme dixhitale” në faqen 53. Shumica e kunjeve të portave janë të multipleksuara me funksione alternative për tiparet periferike në pajisje. Si përshkruhet secili funksion alternativ me ndërfaqen e portës "Funksionet e Portës Alternative" në faqen 57. Referojuni seksioneve të modulit individual për një përshkrim të plotë të funksioneve alternative.

Vini re se mundësimi i funksionit alternativ të disa prej kunjeve të portës nuk ndikon në përdorimin e kunjave të tjerë në port si I / O i përgjithshëm dixhital.

Portet si I / O e Përgjithshme Dixhitale

Portet janë porte I / O me dy drejtime me tërheqje të brendshme opsionale. Figura 10-2 tregon një përshkrim funksional të një pini të portës I / O, këtu i quajtur gjerësisht Pxn.

Figura 10-2. I/O dixhitale e përgjithshme(1)

Fig10

Konfigurimi i Pin-it

Çdo pin port përbëhet nga tre bit regjistrues: DDxn, PORTxn dhe PINxn. Siç tregohet në "Regjistro Regjistrimin" në faqe 64, bitët DDxn arrihen në adresën I / O DDRx, bitët PORTxn në adresën I / O PORTx, dhe bitët PINxn në adresën I / O PINx.

Biti DDxn në Regjistrin DDRx zgjedh drejtimin e këtij pini. Nëse DDxn është e shkruar logjike një, Pxn konfigurohet si një pin dalës. Nëse DDxn shkruhet logjikë zero, Pxn konfigurohet si një pin hyrës.

Nëse PORTxn është e shkruar logjike një kur pin është konfiguruar si një pin hyrëse, rezistenca tërheqëse aktivizohet. Për të fikur rezistencën tërheqëse, PORTxn duhet të shkruhet logjika zero ose kunja duhet të konfigurohet si një kunj dalës. Kunjat e portës trefishohen kur gjendja e rivendosjes bëhet aktive, edhe nëse nuk funksionojnë orë.

Nëse PORTxn është e shkruar logjike një kur pin është konfiguruar si një pin dalje, pin port është drejtuar lartë (një). Nëse PORTxn shkruhet logjikë zero kur pin-i konfigurohet si një pin dalës, pin-i i portit drejtohet ulët (zero).

Toggling Pin

Shkrimi i një logjike tek PINxn ndryshon vlerën e PORTxn, të pavarur nga vlera e DDRxn. Vini re se udhëzimi SBI mund të përdoret për të ndryshuar një bit të vetëm në një port.

Kalimi ndërmjet hyrjes dhe daljes

Kur kaloni midis gjendjes treshe ({DDxn, PORTxn} = 0b00) dhe daljes së lartë ({DDxn, PORTxn} = 0b11), një gjendje e ndërmjetme ose me tërheqje të aktivizuar {DDxn, PORTxn} = 0b01) ose dalje të ulët ({DDxn, PORTxn} = 0b10) duhet të ndodhë. Normalisht, gjendja e aktivizuar për tërheqje është plotësisht e pranueshme, pasi një mjedis me impedant të lartë nuk do të vërejë ndryshimin midis një drejtuesi të fortë të lartë dhe një tërheqjeje. Nëse nuk është kështu, biti PUD në Regjistrin MCUCR mund të vendoset për të çaktivizuar të gjitha tërheqjet në të gjitha portet.

Kalimi midis hyrjes me tërheqje dhe dalje të ulët gjeneron të njëjtin problem. Përdoruesi duhet të përdorë ose një gjendje të trefishtë ({DDxn, PORTxn} = 0b00) ose gjendjen e lartë të daljes ({DDxn, PORTxn} = 0b10) si një hap i ndërmjetëm.

Tabela 10-1 përmbledh sinjalet e kontrollit për vlerën pin.

Tabela 10-1. Konfigurimet e pinit të portit

DDxn PORTxn PUD

(në MCUCR)

I/O Tërheqje Koment
0 0 X Input Nr Tri-shtet (Hi-Z)
0 1 0 Input po Pxn do të burojë rrymë nëse ext. tërhiqet ulët.
0 1 1 Input Nr Tri-shtet (Hi-Z)
1 0 X Prodhimi Nr Dalja e ulët (lavamani)
1 1 X Prodhimi Nr Output High (Burimi)

Leximi i vlerës së kunjit

Pavarësisht nga vendosja e bitit Direction Data DDxn, pin-i i portit mund të lexohet përmes bitit Regjistrohuni PINxn. Siç tregohet në Figura 10-2, biti i Regjistrit PINxn dhe shulja pararendëse përbëjnë një sinkronizues. Kjo është e nevojshme për të shmangur metastabilitetin nëse kunja fizike ndryshon vlerën afër buzës së orës së brendshme, por gjithashtu paraqet një vonesë. Figura 10-3 tregon një diagram kohor të sinkronizimit kur lexoni një vlerë pine të aplikuar nga jashtë. Vonesat maksimale dhe minimale të përhapjes shënohen përkatësisht tpd, max dhe tpd, min.

Merrni parasysh periudhën e orës që fillon menjëherë pas skajit të parë në rënie të orës së sistemit. Shulja mbyllet kur ora është e ulët dhe shkon transparente kur ora është e lartë, siç tregohet nga rajoni i hijëzuar i sinjalit "SYNC LATCH". Vlera e sinjalit mbyllet kur ora e sistemit shkon ulët. Edshtë futur në Regjistrin PINxn në skajin pozitiv të orës që pason. Siç tregohet nga dy shigjetat tpd, max dhe tpd, min, një kalim i vetëm i sinjalit në pin do të vonohet midis ½ dhe 1½ periudhës së orës së sistemit në varësi të kohës së pohimit.

Kur lexoni përsëri një softuer të caktuar me vlerë pin, duhet të futet një udhëzim nop siç tregohet në Figura 10-4. Udhëzimi out përcakton sinjalin "SYNC LATCH" në skajin pozitiv të orës. Në këtë rast, vonesa tpd përmes sinkronizuesit është një periudhë e orës së sistemit.

Kodi i mëposhtëm p.shample tregon se si të vendosen kunjat e portit B 0 dhe 1 të lartë, 2 dhe 3 të ulët, dhe të përcaktohen kunjat e portit nga 4 në 5 si hyrje me një tërheqje të caktuar për pinin 4. Vlerat e pinit që rezultojnë lexohen përsëri, por siç u diskutua më parë, përfshihet një instruksion nop për të qenë në gjendje të lexoni përsëri vlerën e caktuar së fundi për disa nga kunjat.

Kodi i Kuvendit Pshample(1)

; Përcaktoni tërheqjet dhe vendosni rezultatet e larta

; Përcaktoni udhëzimet për kunjat e portit

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

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

jashtë PORTB,r16

jashtë DDRB,r17

; Fut nop për sinkronizim

jo

; Lexoni kunjat e portit

në r16, PINB

Shënim: Për programin e montimit, përdoren dy regjistra të përkohshëm për të minimizuar kohën nga vendosja e tërheqjeve në kunjat 0, 1 dhe 4, derisa pjesët e drejtimit të vendosen saktë, duke përcaktuar bitin 2 dhe 3 si të ulët dhe duke ripërcaktuar bitet 0 dhe 1 si drejtues të fortë të lartë.

Kodi C Pshample
char i panënshkruar;

/* Përcaktoni tërheqjet dhe vendosni rezultate të larta */

/* Përcaktoni drejtimet për kunjat e portit */ PORTB = (1<

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

/* Fut nop për sinkronizim*/

_NOP ();

/* Lexoni kunjat e portit */ i = PINB;

Modalitetet e Aktivizimit të Hyrjes Dixhitale dhe Gjumit

Siç tregohet në Figura 10-2, sinjali dixhital i hyrjes mund të jetë clamped në tokë në hyrje të schmitt-trigger. Sinjali i shënuar SLEEP në figurë, vendoset nga kontrolluesi i gjumit MCU në modalitetin e fikjes për të shmangur konsumin e lartë të energjisë nëse disa sinjale hyrëse lihen në lëvizje ose kanë një nivel sinjali analog afër VCC/2.

SLEEP është tejkaluar për kunjat e portave të aktivizuara si kunjat e ndërprerjeve të jashtme. Nëse kërkesa për ndërprerje të jashtme nuk është e aktivizuar, SLEEP është aktiv edhe për këto kunja. SLEEP tejkalohet gjithashtu nga funksione të ndryshme të tjera alternative siç përshkruhet në "Funksionet e Portës Alternative" në faqen 57.

Nëse një nivel i lartë logjik ("një") është i pranishëm në një kunj të ndërprerjes së jashtme asinkrone të konfiguruar si "Ndërprerje në skajin në rritje, buzë në rënie ose ndonjë ndryshim logjik në pin" ndërkohë që ndërprerja e jashtme nuk është aktivizuar, flamuri përkatës i ndërprerjes së jashtme do të vendoset kur rifilloni nga modaliteti i gjumit i përmendur më sipër, si klampfutja në këto mënyra gjumi prodhon ndryshimin e kërkuar logjik.

Kunjat e palidhura

Nëse disa kunja janë të papërdorura, rekomandohet të siguroheni që këto kunja kanë një nivel të përcaktuar. Edhe pse shumica e hyrjeve dixhitale janë me aftësi të kufizuara në mënyrat e gjumit të thellë siç përshkruhet më sipër, hyrjet lundruese duhet të shmangen për të zvogëluar konsumin aktual në të gjitha modalitetet e tjera ku janë të aktivizuara hyrjet dixhitale (Rivendos, Modaliteti Aktiv dhe Modaliteti i Idle).

Metoda më e thjeshtë për të siguruar një nivel të përcaktuar të një pineje të papërdorur, është të aktivizoni tërheqjen e brendshme. Në këtë rast, tërheqja do të çaktivizohet gjatë rivendosjes. Nëse konsumi i ulët i energjisë gjatë rivendosjes është i rëndësishëm, rekomandohet të përdorni një tërheqje ose tërheqje të jashtme. Lidhja e kunjave të papërdorura drejtpërdrejt me VCC ose GND nuk rekomandohet, pasi kjo mund të shkaktojë rryma të tepërta nëse kunja konfigurohet aksidentalisht si një dalje.

Funksionet alternative të portës

Shumica e kunjeve të portave kanë funksione alternative përveç që janë I / O të përgjithshme dixhitale. Figura 10-5 tregon se si sinjali i kontrollit të pin pin nga i thjeshtuar Figura 10-2 mund të mbivlerësohen nga funksione alternative. Sinjalet mbizotëruese mund të mos jenë të pranishme në të gjitha kunjat e portave, por figura shërben si një përshkrim i përgjithshëm i zbatueshëm për të gjitha kunjat e portave në familjen e mikrokontrolluesve AVR.

Tabela 10-2. Përshkrimi i përgjithshëm i sinjaleve mbizotëruese për funksionet alternative

Emri i sinjalit Emri i plotë Përshkrimi
PUOE Mbivendosja e tërheqjes Aktivizo Nëse ky sinjal është vendosur, mundësia e tërheqjes kontrollohet nga sinjali PUOV. Nëse ky sinjal pastrohet, tërheqja aktivizohet kur

{DDxn, PORTxn, PUD} = 0b010.

PUOV Vlera e Mbivendosjes së Tërheqjes Nëse vendoset PUOE, tërheqja aktivizohet / çaktivizohet kur vendoset / pastrohet PUOV, pavarësisht nga vendosja e copave të Regjistrit DDxn, PORTxn dhe PUD.
DDOE Aktivizo anulimin e drejtimit të të dhënave Nëse ky sinjal është i vendosur, Aktivizuesi i Shoferit të Daljes kontrollohet nga sinjali DDOV. Nëse ky sinjal pastrohet, drejtuesi i Daljes aktivizohet nga biti i Regjistrit DDxn.
DDOV Vlera e Mbivendosjes së Drejtimit të të Dhënave Nëse vendoset DDOE, Shoferi i Outputit aktivizohet / çaktivizohet kur vendoset / pastrohet DDOV, pavarësisht nga vendosja e bitit të Regjistrit DDxn.
PVOE Mbivendosja e vlerës së portës Aktivizo Nëse ky sinjal është vendosur dhe Driver Output është i aktivizuar, vlera e portës kontrollohet nga sinjali PVOV. Nëse PVOE pastrohet, dhe Shoferi i Outputit është i aktivizuar, Vlera e portës kontrollohet nga biti i PORTxn Register.
PVOV Vlera e mbivlerësimit të vlerës së portit Nëse vendoset PVOE, vlera e portës vendoset në PVOV, pavarësisht nga vendosja e bitit të Regjistrit PORTxn.
PTOE Aktivizo anulimin e portit Toggle Nëse vendoset PTOE, biti i Regjistrit PORTxn përmbyset.
DIEOE Aktivizimi i hyrjes dixhitale Mbivendosja Aktivizo Nëse është vendosur kjo bit, Enable Digital Input Enable kontrollohet nga sinjali DIEOV. Nëse ky sinjal pastrohet, Aktivizimi i hyrjes dixhitale përcaktohet nga gjendja MCU (modaliteti normal, modaliteti i gjumit).
DIEOV Hyrja Dixhitale Aktivizo Vlerën e Anashkalimit Nëse është caktuar DIEOE, Hyrja Dixhitale aktivizohet / çaktivizohet kur DIEOV vendoset / pastrohet, pavarësisht nga gjendja MCU (Modaliteti normal, modaliteti i gjumit).
DI Hyrja dixhitale Ky është Input Digital për funksione alternative. Në figurë, sinjali është i lidhur me daljen e schmitt-trigjerit por para sinkronizuesit. Në qoftë se Input Digital nuk përdoret si burim i orës, moduli me funksionin alternativ do të përdorë sinkronizuesin e tij.
AIO Hyrja / Dalja Analog Ky është Input / Output Analog në / nga funksionet alternative. Sinjali është i lidhur drejtpërdrejt me bllokun dhe mund të përdoret në mënyrë të dyanshme.

Nënseksionet e mëposhtme përshkruajnë shkurtimisht funksionet alternative për secilën portë dhe lidhin sinjalet kryesore me funksionin alternativ. Referojuni përshkrimit të funksionit alternativ për detaje të mëtejshme.

Funksionet alternative të Portit B

Kunjat e Portit B me funksion alternativ tregohen në Tabela 10-3.

Tabela 10-3. Funksionet alternative të kunjave të portit B

Pin porti Funksioni Alternativ
PB5

RISHIKON: Rivendos pin

dW: korrigjim i gabuarWIRE I / O ADC0: ADC Input Channel 0

PCINT5: Ndërprerja e ndryshimit të kunjave, Burimi 5

PB4 XTAL2: Dalja e oshilatorit kristal CLKO: Dalja e orës së sistemit ADC2: Kanali i hyrjes ADC 2

OC1B: Kohëmatësi / njehsori1 Krahasoni daljen e ndeshjes B PCINT4: Ndërprerja e ndryshimit të kunjave 0, Burimi 4

PB3 XTAL1: Hyrja e oshilatorit kristal CLKI: Hyrja e orës së jashtme ADC3: Kanali i hyrjes ADC 3

OC1B: Kohëmatësi / numëruesi plotësues1 Krahasoni daljen e ndeshjes B PCINT3: Ndërprerja e ndryshimit të kunjave 0, Burimi 3

PB2 SCK: Hyrja e orës serike ADC1: Kanali i hyrjes ADC 1

T0: Timer / Counter0 Burimi i orës USCK: Ora USI (Modaliteti tre tel) SCL: Ora USI (modaliteti dy tel) INT0: Ndërprerja e jashtme 0 Hyrja PCINT2: Ndërprerja e ndryshimit të kunjit 0, Burimi 2

PB1 MISO: SPI Master Input Data / Slave Data Output AIN1: Krahasues Analog, Input Negativ OC0B: Kohëmatësi / Counter0 Krahasoni Ndeshjen B Dalja OC1A: Timer / Counter1 Krahasoni Ndeshjen A Output DO: USI Data Output (Modeli me tre tel) PCINT1: Ndërprerja e ndryshimit të kunjit 0, Burimi 1
PB0 MOSI :: Dalja Master e të Dhënave SPI / Input Data Slave AIN0: Krahasuesi Analog, Hyrja Pozitive

OC0A: Timer/Counter0 Krahasoni Match A output

OC1A: Kohëmatësi plotësues / Numëruesi1 Krahasoni Ndeshjen me Një Dalje DI: Hyrja e të Dhënave USI (Modaliteti me tre tel)

SDA: Hyrja e të Dhënave USI (Modaliteti dy tel) AREF: Referenca e jashtme analoge PCINT0: Ndërprerja e ndryshimit të kunjave 0, Burimi 0

Porti B, Biti 5 - RESET / dW / ADC0 / PCINT5

RESET: Hyrja e Rivendosjes së Jashtme është aktive e ulët dhe mundësohet nga mosprogramimi ("1") i siguresës RSTDISBL. Pullup aktivizohet dhe shoferi i daljes dhe hyrja dixhitale çaktivizohen kur pin përdoret si pin RESET.

dW: Kur programohet siguresa debugWIRE Enable (DWEN) dhe copëzat Lock nuk janë programuar, sistemi debugWIRE brenda pajisjes së synuar aktivizohet. PINI i portës RESET është konfiguruar si një kabllo I / O me dy drejtime me tel-DHE (kullimi i hapur) me aktivizim të tërheqjes dhe bëhet porta e komunikimit midis synimit dhe emulatorit.

ADC0: Konvertuesi analog në dixhital, Kanali 0.

PCINT5: Burimi i ndërprerjes së ndryshimit të pinit 5.

Porti B, Biti 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4

XTAL2: Kunji i oshilatorit të orës së çipit 2. Përdoret si kunj i orës për të gjitha burimet e orës së çipit, përveç oshilatorit të brendshëm të kalibruar RC dhe orës së jashtme. Kur përdoret si një kunj i orës, kunji nuk mund të përdoret si një kunj I / O. Kur përdorni oshilator të brendshëm të kalibrueshëm ose orë të jashtme si burime të orës Chip, PB4 shërben si një kunj i zakonshëm I / O.

CLKO: Ora e sistemit të ndarë mund të dalë në kunjin PB4. Ora e ndarë e sistemit do të dalë nëse programohet siguresa CKOUT, pavarësisht nga cilësimet PORTB4 dhe DDB4. Do të dalë gjithashtu gjatë rivendosjes.

ADC2: Konvertuesi analog në dixhital, Kanali 2.

OC1B: Output Krahasoni Daljen e Ndeshjes: Pini PB4 mund të shërbejë si një dalje e jashtme për Timer / Counter1 Krahasoni Ndeshjen B kur konfigurohet si një dalje (grupi DDB4). Kunja OC1B është gjithashtu kunja e daljes për funksionin e kohëmatësit të modalitetit PWM.

PCINT4: Burimi i ndërprerjes së ndryshimit të pinit 4.

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

XTAL1: Kunja e oshilatorit të orës së çipave 1. Përdoret për të gjitha burimet e orës së çipave përveç oshilatorit të brendshëm të kalibruar RC. Kur përdoret si një kunj i orës, kunji nuk mund të përdoret si një kunj I / O.

CLKI: Hyrja e orës nga një burim i jashtëm i orës, shih “Ora e jashtme” në faqen 26.

ADC3: Konvertuesi analog në dixhital, Kanali 3.

OC1B: Output i Përmbysur Krahasoni Daljen e Ndeshjes: Pin-i PB3 mund të shërbejë si një dalje e jashtme për Timer / Counter1 Krahasoni Ndeshjen B kur konfigurohet si një dalje (grupi DDB3). Kunja OC1B është gjithashtu kunja dalëse e përmbysur për funksionin e kohëmatësit të modalitetit PWM.

PCINT3: Burimi i ndërprerjes së ndryshimit të pinit 3.

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

SCK: Dalja e orës Master, kunji i hyrjes së orës Slave për kanalin SPI. Kur SPI aktivizohet si Skllav, ky pin konfigurohet si hyrje pavarësisht cilësimit të DDB2. Kur SPI aktivizohet si Master, drejtimi i të dhënave të këtij pin kontrollohet nga DDPB2. Kur pin-i detyrohet nga SPI të jetë një hyrje, tërheqja përsëri mund të kontrollohet nga biti PORTB2.

ADC1: Konvertuesi analog në dixhital, Kanali 1.

T0: Burimi i numëratorit të Kohëmatësit / Counter0.

USCK: Ora me ndërfaqe seriale universale në mënyrë me tre tela.

SCL: Modaliteti me dy tela Ora Serike për modalitetin USI Dy-tela.

INT0: Burimi i Jashtëm i Ndërprerjes 0.

PCINT2: Burimi i ndërprerjes së ndryshimit të pinit 2.

Porti B, Biti 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1

MISO: Futja kryesore e të dhënave, PIN i daljes së të dhënave skllav për kanalin SPI. Kur SPI aktivizohet si Master, ky pin konfigurohet si hyrje pavarësisht cilësimit të DDB1. Kur SPI aktivizohet si Skllav, drejtimi i të dhënave të këtij pin kontrollohet nga DDB1. Kur pin-i detyrohet nga SPI të jetë një hyrje, tërheqja përsëri mund të kontrollohet nga biti PORTB1.

AIN1: Input Negativ i Krahasuesit Analog. Konfiguroni pinin e portës si hyrje me tërheqjen e brendshme të fikur për të shmangur ndërhyrjen e funksionit të portës dixhitale në funksionin e Krahasuesit Analog.

OC0B: Output Krahasoni Daljen e ndeshjes. Pin PB1 mund të shërbejë si një dalje e jashtme për Timer / Counter0 Krahasoni Ndeshjen B. Pin PB1 duhet të konfigurohet si një dalje (grupi DDB1 (një)) për të shërbyer këtë funksion. Kunja OC0B është gjithashtu kunja e daljes për funksionin e kohëmatësit të mënyrës PWM.

OC1A: Output Krahasoni Daljen e Ndeshjes: Pini PB1 mund të shërbejë si një dalje e jashtme për Timer / Counter1 Krahasoni Ndeshjen B kur konfigurohet si një dalje (grupi DDB1). Kunja OC1A është gjithashtu kunja e daljes për funksionin e kohëmatësit të modalitetit PWM.

BOJ: Modeli me tre tela Prodhimi i të dhënave të Ndërfaqes Seriale Universale. Modaliteti me tre tela Dalja e të dhënave tejkalon vlerën PORTB1 dhe drejtohet në port kur vendoset biti i drejtimit të të dhënave DDB1 (një). PORTB1 ende mundëson tërheqjen, nëse drejtimi është futur dhe PORTB1 është vendosur (një).

PCINT1: Burimi i ndërprerjes së ndryshimit të pinit 1.

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

MOSI: Dalja kryesore e të dhënave SPI, Futja e të dhënave skllav për kanalin SPI. Kur SPI aktivizohet si Skllav, ky pin konfigurohet si hyrje pavarësisht cilësimit të DDB0. Kur SPI aktivizohet si Master, drejtimi i të dhënave të këtij pin kontrollohet nga DDB0. Kur pin-i detyrohet nga SPI të jetë një hyrje, tërheqja përsëri mund të kontrollohet nga biti PORTB0.

AIN0: Hyrja pozitive e krahasuesit analog. Konfiguroni pinin e portës si hyrje me tërheqjen e brendshme të fikur për të shmangur ndërhyrjen e funksionit të portës dixhitale në funksionin e Krahasuesit Analog.

OC0A: Output Krahasoni Daljen e ndeshjes. Pin PB0 mund të shërbejë si një dalje e jashtme për Kohëmatësi / Counter0 Krahasoni Ndeshjen A kur konfigurohet si një dalje (grupi DDB0 (një)). Kunja OC0A është gjithashtu kunja e daljes për funksionin e kohëmatësit të modalitetit PWM.

OC1A: Output i Përmbysur Krahasoni Prodhimin e Ndeshjes: Pini PB0 mund të shërbejë si një dalje e jashtme për Timer / Counter1 Krahasoni Ndeshjen B kur konfigurohet si një dalje (caktuar DDB0). Kunja OC1A është gjithashtu kunji dalës i përmbysur për funksionin e kohëmatësit të modalitetit PWM.

SDA: Të dhënat e ndërfaqes serike të modës me dy tela.

AREF: Referenca e jashtme analoge për ADC. Drejtuesi tërheqës dhe dalës janë të çaktivizuar në PB0 kur kunja përdoret si referencë e jashtme ose Volumi i brendshëmtage Referenca me kondensatorin e jashtëm në kunjin AREF.

DI: Hyrja e të dhënave në mënyrën USI me tre tela. Modaliteti USI me tre tela nuk i tejkalon funksionet normale të portës, prandaj pin duhet të konfigurohet si një hyrje për funksionin DI.

PCINT0: Burimi i ndërprerjes së ndryshimit të pinit 0.

Tabela 10-4 dhe Tabela 10-5 lidhin funksionet alternative të Portit B me sinjalet mbizotëruese të paraqitura në Figura 10-5 më faqe 58.

Tabela 10-4. Sinjalet mbizotëruese për funksionet alternative në PB[5:3]

Emri i sinjalit PB5 / RESET / ADC0 / PCINT5 PB4/ADC2/XTAL2/ OC1B/PCINT4 PB3/ADC3/XTAL1/ OC1B/PCINT3
PUOE

RSTDISBL(1) • DWEN(1)

0 0
PUOV 1 0 0
DDOE RSTDISBL(1) • DWEN(1) 0 0
DDOV DebugWire Transmet 0 0
PVOE 0 Aktivizo OC1B

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

Shënim: kur siguresa është "0" (Programuar).

Tabela 10-5. Sinjalet mbizotëruese për funksionet alternative në PB[2:0]

Emri i sinjalit 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 Aktivizo OC0B + Aktivizo OC1A + USI_THREE_WIRE

OC0A Aktivizo + OC1A Aktivizo + (USI_TWO_WIRE

DDB0)

PVOV 0 OC0B + OC1A + BONI

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 /

Hyrja PCINT2

Hyrja PCINT1 Hyrja DI / SDA / PCINT0
AIO Hyrja ADC1 Input Negativ i Krahasuesit Analog Hyrja pozitive e krahasuesit analog

Regjistrohu Përshkrimi

MCUCR - Regjistri i Kontrollit të MCU

Bit 7 6 5 4 3 2 1 0
0x35 OBD PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Lexo/Shkruaj R R/W R/W R/W R/W R R/W R/W
Vlera fillestare 0 0 0 0 0 0 0 0

Bit 6 - PUD: Çaktivizo tërheqjen

Kur kjo bit është shkruar në një, tërheqjet në portat I / O janë çaktivizuar edhe nëse Regjistrat DDxn dhe PORTxn janë konfiguruar për të mundësuar tërheqjet ({DDxn, PORTxn} = 0b01). Shiko "Konfigurimi i kunjit" në faqen 54 për më shumë detaje rreth kësaj veçorie.

PORTB - Regjistri i të Dhënave Port B

Bit 7 6 5 4 3 2 1 0
0x18 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
Lexo/Shkruaj R R R/W R/W R/W R/W R/W R/W
Vlera fillestare 0 0 0 0 0 0 0 0

DDRB - Regjistri i Drejtimit të të Dhënave Port B

Bit 7 6 5 4 3 2 1 0
0x17 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Lexo/Shkruaj R R R/W R/W R/W R/W R/W R/W
Vlera fillestare 0 0 0 0 0 0 0 0

PINB - Adresa e kunjave të hyrjes në Port B

Bit 7 6 5 4 3 2 1 0
0x16 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Lexo/Shkruaj R R R/W R/W R/W R/W R/W R/W
Vlera fillestare 0 0 N/A N/A N/A N/A N/A N/A

Kohëmatësi / numëruesi 8 bitësh me PWM

Veçoritë

Dy njësi të pavarura të krahasimit të prodhimit

Rezultati i dyfishtë i tamponuar Krahasoni regjistrat

Pastro kohëmatësin në krahasimin e ndeshjes (ringarko automatikisht)

Modulues pa gjerësi, fazë korrekte me gjerësi impulsi (PWM)

Periudha e ndryshueshme e PWM

Gjeneratori i frekuencës

Tre burime të pavarura të ndërprerjeve (TOV0, OCF0A dhe OCF0B)

Mbiview

Timer / Counter0 është një modul kohor / numërues 8-bitësh me qëllim të përgjithshëm, me dy njësi të pavarura të krahasimit të daljes dhe me mbështetjen e PWM. Lejon kohën e saktë të ekzekutimit të programit (menaxhimi i ngjarjes) dhe gjenerimin e valëve.

Një skemë e thjeshtë bllok e Kohëmatësit / Numëruesit 8-bit është treguar në Figura 11-1. Për vendosjen aktuale të kunjave I / O, referojuni “Pinout ATtiny25 / 45/85” në faqen 2. Regjistrat e arritshëm të CPU-së, duke përfshirë bitet I / O dhe kunjat I / O, tregohen me shkronja të zeza. Regjistri specifik i pajisjes I / O dhe vendndodhjet e bitit renditen në “Regjistro përshkrimin” në faqen 77.

Kohëmatësi/Numëruesi (TCNT0) dhe Regjistrat e Krahasimit të Daljeve (OCR0A dhe OCR0B) janë regjistra 8-bitësh. Sinjalet e kërkesës për ndërprerje (shkurtuar në Int.Req. në figurë) janë të gjitha të dukshme në Regjistrin e Flamurit të Ndërprerjes së Kohëmatorit (TIFR). Të gjitha ndërprerjet maskohen individualisht me regjistrin e maskës së ndërprerjes së kohëmatësit (TIMSK). TIFR dhe TIMSK nuk janë paraqitur në figurë.

Kohëmatësi/Numëruesi mund të akordohet nga brenda, nëpërmjet shkallëzuesit paraprak, ose nga një burim i jashtëm i orës në pinin T0. Blloku logjik i Zgjedhjes së orës kontrollon burimin dhe skajin e orës që përdor Timer/Numëruesi për të rritur (ose ulur) vlerën e tij. Kohëmatësi/Numëruesi është joaktiv kur nuk zgjidhet asnjë burim i orës. Dalja nga logjika e zgjedhjes së orës referohet si ora me kohëmatës (clkT0).

Regjistrat e Krahasimit të Daljes me buffer të dyfishtë (OCR0A dhe OCR0B) krahasohen me vlerën e Kohëmatësit / Numëruesit në çdo kohë. Rezultati i krahasimit mund të përdoret nga Gjeneratori i Formave të Valëve për të gjeneruar një PWM ose një dalje të frekuencës së ndryshueshme në kunjat e Krahasimit të Daljes (OC0A dhe OC0B). Shikoni “Njësia e Krahasimit të Rezultateve” në faqen 69. per detaje. Ngjarja Krahasoni Ndeshjen gjithashtu do të caktojë Krahasoni Flamurin (OCF0A ose OCF0B) i cili mund të përdoret për të gjeneruar një kërkesë për Ndërprerje të Krahasoni Produktin.

Përkufizimet

Shumë referenca regjistri dhe bit në këtë seksion janë shkruar në formë të përgjithshme. Një shkronjë e vogël “n” zëvendëson numrin e Kohëmatësit / Numëruesit, në këtë rast 0. Një shkronjë e vogël “x” zëvendëson Njësinë e Krahasimit të Prodhimit, në këtë rast Krahasoni Njësinë A ose Krahasoni Njësinë B. Sidoqoftë, kur përdorni regjistrin ose përcaktoni bitin në një program, duhet të përdoret formulari i saktë, dmth., TCNT0 për hyrjen në kundërvlerën e Timer / Counter0 etj.

Përkufizimet në Tabela 11-1 janë përdorur gjerësisht në të gjithë dokumentin.

Tabela 11-1. Përkufizimet

Konstante Përshkrimi
POSHTET Numëruesi arrin BOTT kur të bëhet 0x00
MAX Numëruesi arrin maksimumin e tij kur bëhet 0xFF (dhjetor 255)
TOP Numëruesi arrin TOP kur bëhet i barabartë me vlerën më të lartë në sekuencën e numërimit. Vlera TOP mund të caktohet të jetë vlera fikse 0xFF (MAX) ose vlera e ruajtur në Regjistrin OCR0A. Caktimi varet nga mënyra e funksionimit

Kohëmatësi / Counter Prescaler dhe Ora Burimet

Kohëmatësi / Numëruesi mund të kalkulohet nga një burim i brendshëm ose i jashtëm i orës. Burimi i orës zgjidhet nga logjika Clock Select e cila kontrollohet nga bitët Clock Select (c) të vendosura në Regjistrin e Kontrollit Timer / Counter0 (TCCR0B).

Burimi i Brendshëm i Orës me Precaler

Kohëmatësi/Counter0 mund të akordohet drejtpërdrejt nga ora e sistemit (duke vendosur CS0[2:0] = 1). Kjo siguron funksionimin më të shpejtë, me një frekuencë maksimale të orës së kohëmatësit/matësit të barabartë me frekuencën e orës së sistemit (fCLK_I/O). Përndryshe, një nga katër trokitje e lehtë nga parashkallëzuesi mund të përdoret si një burim i orës. Ora e shkallëzuar paraprakisht ka një frekuencë të njërës prej tyre

Rivendosni prescaler

Parashkarkuesi funksionon falas, dmth. Funksionon në mënyrë të pavarur nga logjika Clock Select e Kohëmatësit/Counter0. Meqenëse parashkarkuesi nuk ndikohet nga përzgjedhja e orës së kohëmatësit/numëruesit, gjendja e parashkruesit do të ketë implikime për situatat ku përdoret një orë e paracaktuar. Një ishampLe të një artefakti të parakalimit është kur kohëmatësi/numëruesi është i aktivizuar dhe i vendosur nga parashkruesi (6> CS0 [2: 0]> 1). Numri i cikleve të orës së sistemit nga momenti kur aktivizohet kohëmatësi deri në numërimin e parë mund të jetë nga 1 në ciklet e orës së sistemit N+1, ku N është i barabartë me pjestuesin e para -shkallëzimit (8, 64, 256, ose 1024).

Possibleshtë e mundur të përdorni Reset Prescaler Reset për sinkronizimin e Timer / Counter për ekzekutimin e programit.

Burimi i orës së jashtme

Një burim i jashtëm i orës i aplikuar në pinin T0 mund të përdoret si kohëmatës/orë numërues (clkT0). Pini T0 është sampudhëhequr një herë çdo cikël të orës së sistemit nga logjika e sinkronizimit të pin. I sinkronizuar (sampled) sinjali kalohet më pas

përmes detektorit të buzës. Figura 11-2 tregon një bllok diagram ekuivalent funksional të sinkronizimit T0 dhe logjikës së detektorit të skajeve. Regjistrat akordohen në skajin pozitiv të orës së brendshme të sistemit (clkI/O). Shulja është transparente në periudhën e lartë të orës së sistemit të brendshëm.

Detektori i skajit gjeneron një puls clkT0 për çdo skaj pozitiv (CS0[2:0] = 7) ose negativ (CS0[2:0] = 6) që zbulon.

Regjistrat OCR0x ruhen me mbrojtje të dyfishtë kur përdorni ndonjë nga modet e Modulimit të Gjerësisë së Pulsit (PWM). Për mënyrat normale dhe të Pastrimit të Kohëmatësit në Krahasoni (CTC), buffering i dyfishtë është çaktivizuar. Buffering-i i dyfishtë sinkronizon azhurnimin e OCR0x Krahasoni Regjistrat ose në krye ose në fund të sekuencës së numërimit. Sinkronizimi parandalon shfaqjen e impulseve PWM me gjatësi të çuditshme, jo simetrike, duke e bërë kështu prodhimin pa probleme.

Hyrja në Regjistrin OCR0x mund të duket komplekse, por nuk është kështu. Kur aktivizohet memoria e dyfishtë, CPU-ja ka qasje në Regjistrin e Buferëve OCR0x, dhe nëse buffering-u i dyfishtë është i çaktivizuar, CPU-ja do të hyjë direkt në OCR0x.

Krahasoni Produktin e Forcës

Në modalitetet e gjenerimit të formës valore jo PWM, rezultati i përputhjes së krahasuesit mund të detyrohet duke shkruar një në bitin e krahasimit të daljes së forcës (FOC0x). Forcimi i Krahasimit të Ndeshjes nuk do të vendosë Flamurin OCF0x ose nuk do të ringarkojë / pastrojë kohëmatësin, por kunja OC0x do të azhurnohet sikur të kishte ndodhur një Ndeshje e Krahasuar e vërtetë (cilësimet e bitëve COM0x [1: 0] përcaktojnë nëse pini OC0x është vendosur, pastruar ose toggled).

Krahasoni Bllokimin e Ndeshjes nga TCNT0 Shkruaj

Të gjitha operacionet e shkrimit të CPU në Regjistrin TCNT0 do të bllokojnë çdo krahasim krahasimi që ndodh në ciklin tjetër të orës së kohëmatësit, edhe kur kohëmatësi është i ndalur. Kjo veçori lejon që OCR0x të inicializohet në të njëjtën vlerë si TCNT0 pa shkaktuar ndërprerje kur aktivizohet ora e Kohëmatësit / Numëruesit.

Përdorimi i Njësisë së Krahasimit të Prodhimit

Meqenëse shkrimi i TCNT0 në çdo mënyrë funksionimi do të bllokojë të gjitha Krahasoni Ndeshjet për një cikël të orës me kohëmatës, ka rreziqe të përfshira kur ndryshoni TCNT0 kur përdorni Njësinë e Krahasimit të Daljes, pavarësisht nëse Timer / Counter po funksionon apo jo. Nëse vlera e shkruar në TCNT0 është e barabartë me vlerën OCR0x, krahasimi i krahasimit do të humbasë, duke rezultuar në gjenerim të pasaktë të formës valore. Në mënyrë të ngjashme, mos shkruani vlerën TCNT0 të barabartë me BOTTOM kur numëruesi është duke numëruar poshtë.

Instalimi i OC0x duhet të kryhet para se të vendosni Regjistrin e Drejtimit të të Dhënave për daljen e pinit të portit. Mënyra më e lehtë për të vendosur vlerën OC0x është përdorimi i bitit të strobeve të krahasimit të daljes së forcës (FOC0x) në modalitetin normal. Regjistrat OC0x mbajnë vlerat e tyre edhe kur ndryshojnë midis mënyrave të Gjenerimit të Formës së Valëve.

Jini të vetëdijshëm që bitët COM0x [1: 0] nuk janë të mbrojtur dy herë së bashku me vlerën e krahasimit. Ndryshimi i bitëve COM0x [1: 0] do të hyjë në fuqi menjëherë.

Krahasoni njësinë e daljes së ndeshjes

Bitet e Krahasoni mënyrën e daljes (COM0x [1: 0]) kanë dy funksione. Gjeneratori i formës valore përdor bitët COM0x [1: 0] për përcaktimin e gjendjes së krahasimit të daljes (OC0x) në krahasimin tjetër të krahasimit. Gjithashtu, bitët COM0x [1: 0] kontrollojnë burimin e daljes së kunjit OC0x. Figura 11-6 tregon një skemë të thjeshtuar të logjikës së prekur nga cilësimi i bitit COM0x [1: 0]. Regjistrat I / O, bitet I / O dhe kunjat I / O në figurë tregohen me shkronja të zeza. Shfaqen vetëm pjesët e Regjistrave të Përgjithshëm të Kontrollit të Portit I / O (DDR dhe PORT) që preken nga bitët COM0x [1: 0]. Kur i referohemi gjendjes OC0x, referenca është për Regjistrin e brendshëm OC0x, jo pinin OC0x. Nëse ndodh një rivendosje e sistemit, Regjistri OC0x rivendoset në "0".

Kur OC0A / OC0B është i lidhur me pinin I / O, funksioni i bitëve COM0A [1: 0] / COM0B [1: 0] varet nga cilësimi i bitëve WGM0 [2: 0]. Tabela 11-2 tregon funksionalitetin e bitit COM0x [1: 0] kur bitët WGM0 [2: 0] vendosen në një mënyrë normale ose CTC (jo PWM).

Tabela 11-2. Krahasoni modalitetin e daljes, modalitetin jo-PWM

COM0A1 COM0B1 COM0A0 COM0B0 Përshkrimi
0 0 Funksionimi normal i portit, OC0A / OC0B është shkëputur.
0 1 Ndërro OC0A / OC0B në krahasimin e ndeshjes
1 0 Pastro OC0A / OC0B në krahasimin e ndeshjes
1 1 Vendosni OC0A / OC0B në Krahasoni Ndeshjen

Tabela 11-3 tregon funksionalitetin e bitit COM0x [1: 0] kur bitët WGM0 [2: 0] vendosen në modalitetin e shpejtë PWM.

Tabela 11-3. Krahasoni modalitetin e daljes, modalitetin e shpejtë PWM(1)

COM0A1 COM0B1 COM0A0 COM0B0 Përshkrimi
0 0 Funksionimi normal i portit, OC0A / OC0B është shkëputur.
0 1 Rezervuar
1 0 Pastroni OC0A / OC0B në Krahasoni Ndeshjen, vendosni OC0A / OC0B në BOTTOM (modaliteti jo invertues)
1 1 Vendosni OC0A / OC0B në Krahasoni Ndeshjen, pastroni OC0A / OC0B në BOTTOM (modaliteti i përmbysjes)

Shënim: Një rast i veçantë ndodh kur OCR0A ose OCR0B është e barabartë me TOP dhe është vendosur COM0A1/COM0B1. Në këtë rast, përputhja e krahasimit shpërfillet, por vendosja ose pastrimi bëhet në BOTTOM. Shiko "Modaliteti i shpejtë PWM" në faqen 73 për më shumë detaje.

Tabela 11-4 tregon funksionalitetin e bitit COM0x [1: 0] kur bitët WGM0 [2: 0] vendosen në modalitetin e saktë PWM fazor.

Tabela 11-4. Krahasoni modalitetin e daljes, modalitetin e saktë të fazës PWM(1)

COM0A1 COM0B1 COM0A0 COM0B0 Përshkrimi
0 0 Funksionimi normal i portit, OC0A / OC0B është shkëputur.
0 1 Rezervuar
1 0 Pastroni OC0A / OC0B në Krahasoni Ndeshjen kur numëroni lart. Vendosni OC0A / OC0B në Krahasoni Ndeshjen kur numëroni poshtë.
1 1 Vendosni OC0A / OC0B në Krahasoni Ndeshjen kur numëroni lart. Pastro OC0A / OC0B në krahasimin e ndeshjes kur numëron pak.

Shënim: 1. Ndodh një rast i veçantë kur OCR0A ose OCR0B është i barabartë me TOP dhe vendoset COM0A1/COM0B1. Në këtë rast, Përputhja e Krahasimit shpërfillet, por vendosja ose pastrimi bëhet në TOP. Shiko "Modaliteti i saktë i fazës PWM" në faqen 74 për më shumë detaje.

Pjesët 3: 2 - Rez: Pjesët e rezervuara

Këto bit janë bit të rezervuara në ATtiny25 / 45/85 dhe gjithmonë do të lexohen si zero.

Bitët 1: 0 - WGM0 [1: 0]: Modaliteti i gjenerimit të formës valore

Kombinuar me bitin WGM02 që gjendet në Regjistrin TCCR0B, këto bit kontrollojnë sekuencën e numërimit të numëratorit, burimin për vlerën maksimale të vlerësimit (TOP) dhe llojin e gjenerimit të formës valore që do të përdoret, shih Tabela 11-5. Mënyrat e funksionimit të mbështetura nga Njësia e Kohëmatësit / Numëruesit janë: Modaliteti normal (numëruesi), Pastruesi i kohëmatjes në mënyrën e krahasimit të përputhjes (CTC) dhe dy lloje të modaliteteve të modulimit të gjerësisë së pulsit (PWM) (shih "Mënyrat e funksionimit" në faqen 71).

Tabela 11-5. Përshkrimi i bitit të modalitetit të gjenerimit të formës së valës

Modaliteti GP 02 GP 01 GP 00 Kohëmatësi / Mënyra e numërimit të funksionimit TOP Përditësimi i OCRx në Vendosur Flamuri TOV
0 0 0 0 Normale 0xFF E menjëhershme MAX(1)
1 0 0 1 PWM, Faza e Saktë 0xFF TOP POSHTET(2)
2 0 1 0 CTC OKRA E menjëhershme MAX(1)
3 0 1 1 PWM e shpejtë 0xFF POSHTET(2) MAX(1)
4 1 0 0 Rezervuar
5 1 0 1 PWM, Faza e Saktë OKRA TOP POSHTET(2)
6 1 1 0 Rezervuar
7 1 1 1 PWM e shpejtë OKRA POSHTET(2) TOP

Biti 7 - FOC0A: Rezultati i forcës Krahasoni A

Biti FOC0A është aktiv vetëm kur bitët WGM specifikojnë një mënyrë jo-PWM.

Sidoqoftë, për të siguruar pajtueshmëri me pajisjet e ardhshme, kjo bit duhet të vendoset në zero kur shkruhet TCCR0B kur operon në modalitetin PWM. Kur shkruani një logjik në bitin FOC0A, një krahasim i menjëhershëm i krahasimit detyrohet në njësinë e gjenerimit të formës valore. Dalja e OC0A ndryshohet në përputhje me cilësimin e bitëve COM0A [1: 0]. Vini re se biti FOC0A zbatohet si strobe. Prandaj është vlera e pranishme në bitët COM0A [1: 0] që përcakton efektin e krahasimit të detyruar.

Një strobe FOC0A nuk do të gjenerojë ndonjë ndërprerje, as nuk do të pastrojë kohëmatësin në modalitetin CTC duke përdorur OCR0A si TOP. Biti FOC0A lexohet gjithmonë si zero.

Bit 6 - FOC0B: Krahasoni prodhimin e forcës B

Biti FOC0B është aktiv vetëm kur bitët WGM specifikojnë një mënyrë jo-PWM.

Sidoqoftë, për të siguruar pajtueshmëri me pajisjet e ardhshme, kjo bit duhet të vendoset në zero kur shkruhet TCCR0B kur operon në modalitetin PWM. Kur shkruani një logjik në bitin FOC0B, një krahasim i menjëhershëm i krahasimit detyrohet në njësinë e gjenerimit të formës valore. Prodhimi OC0B ndryshohet në përputhje me cilësimin e bitëve COM0B [1: 0]. Vini re se biti FOC0B zbatohet si një strobe. Prandaj është vlera e pranishme në bitët COM0B [1: 0] që përcakton efektin e krahasimit të detyruar.

Një strobe FOC0B nuk do të gjenerojë ndonjë ndërprerje, as nuk do të pastrojë kohëmatësin në modalitetin CTC duke përdorur OCR0B si TOP.

Biti FOC0B lexohet gjithmonë si zero.

Pjesët 5: 4 - Rez: Pjesët e rezervuara

Këto bit janë bit të rezervuara në ATtiny25 / 45/85 dhe gjithmonë do të lexohen si zero.

Bit 3 - WGM02: Modaliteti i gjenerimit të formës valore

Shihni përshkrimin në “TCCR0A - Regjistri i Kontrollit të Kohëmatës / Counter A” në faqen 77.

Pjesët 2: 0 - CS0 [2: 0]: Zgjedh orën

Të tre bitët e zgjedhjes së orës zgjedhin burimin e orës që do të përdoret nga Timer / Counter.

Tabela 11-6. Përshkrimi i bitit të përzgjedhjes së orës

CS02 CS01 CS00 Përshkrimi
0 0 0 Asnjë burim i orës (Kohëmatësi / Numëruesi u ndal)
0 0 1 clkI/O/(Pa shkallëzim paraprak)
0 1 0 clkI/O/8 (Nga prescaler)
0 1 1 clkI/O/64 (Nga prescaler)
1 0 0 clkI/O/256 (Nga prescaler)
1 0 1 clkI/O/1024 (Nga prescaler)
1 1 0 Burimi i orës së jashtme në kunjin T0. Ora në buzë që bie.
1 1 1 Burimi i orës së jashtme në kunjin T0. Ora në buzë në rritje.

Nëse përdoren modalitetet e jashtme të kunjit për Timer / Counter0, tranzicionet në kunjin T0 do ta ktheni counter-in edhe nëse kunji është konfiguruar si dalje. Kjo veçori lejon kontrollin e softverit të numërimit.

Numëroni dhe Krahasoni Njësitë

Operacioni i përgjithshëm Timer / Counter1 përshkruhet në modalitetin asinkron dhe operacioni në modalitetin sinkron përmendet vetëm nëse ka ndryshime midis këtyre dy mënyrave. Figura 12-2 tregon bllok diagramin e regjistrit të sinkronizimit Timer / Counter 1 dhe vonesat e sinkronizimit ndërmjet regjistrave. Vini re se të gjitha detajet e mbledhjes së orës nuk janë treguar në figurë. Vlerat e regjistrit Timer / Counter1 kalojnë nëpër regjistrat e brendshëm të sinkronizimit, të cilat shkaktojnë vonesën e sinkronizimit të hyrjes, përpara se të ndikojnë në funksionimin e counter. Regjistrat TCCR1, GTCCR, OCR1A, OCR1B dhe OCR1C mund të lexohen përsëri menjëherë pasi të keni shkruar regjistrin. Vlerat e kthimit të leximit vonohen për regjistrin Timer / Counter1 (TCNT1) dhe flamujt (OCF1A, OCF1B dhe TOV1), për shkak të sinkronizimit të hyrjes dhe daljes.

Timer / Counter1 përmban një rezolucion të lartë dhe një përdorim të saktësisë së lartë me mundësitë më të ulta të paracaktimit. Mund të mbështesë gjithashtu dy Modulues të Gjerësisë së Pulsit me shpejtësi të lartë, me shpejtësi të lartë, 8-bit, duke përdorur shpejtësinë e orës deri në 64 MHz (ose 32 MHz në Modalitetin e Shpejtësisë së Ulët). Në këtë mënyrë, Timer / Counter1 dhe regjistrat e krahasimit të rezultateve shërbejnë si PWM të dyfishta të pavarura me rezultate jo të mbivendosura jo të përmbysura dhe të përmbysura. I referohet faqe 86 për një përshkrim të hollësishëm të këtij funksioni. Në mënyrë të ngjashme, mundësitë e larta të paracaktimit e bëjnë këtë njësi të dobishme për funksione me shpejtësi më të ulët ose funksione të sakta të kohës me veprime të rralla.

Figura 12-2. Kohëmatësi/Numëruesi 1 Sinkronizimi i Bllokut të Regjistrit.

Timer / Counter1 dhe prescaler lejojnë drejtimin e CPU-së nga çdo burim i orës, ndërsa prescaler po punon në orën PCK të shpejtë 64 MHz (ose 32 MHz në Modalitetin e Shpejtësisë së Ulët) në modalitetin asinkron.

Vini re se frekuenca e orës së sistemit duhet të jetë më e ulët se një e treta e frekuencës PCK. Mekanizmi i sinkronizimit të Kohëmatësit / Numëruesit asinkron 1 ka nevojë për të paktën dy skaje të PCK kur ora e sistemit është e lartë. Nëse frekuenca e orës së sistemit është shumë e lartë, është rrezik që të dhënat ose vlerat e kontrollit të humbin.

Në vijim Figura 12-3 tregon bllok diagramin për Timer / Counter1.

Tabela 12-1. Mënyra e krahasimit Zgjidhni në modalitetin PWM

COM1x1 COM1x0 Efekti në Output Krahasoni kunjat
0 0 OC1x nuk është i lidhur. OC1x nuk është i lidhur.
0 1 OC1x pastroi në krahasimin e krahasimit. Vendosni kurTCNT1 = 00 $. OC1x u vendos në krahasimin e krahasimit. Pastrohet kur TCNT1 = 00 $.
1 0 OC1x pastroi në krahasimin e krahasimit. Vendosni kur TCNT1 = 00 $. OC1x nuk është i lidhur.
1 1 OC1x Vendos në krahasimin e krahasimit. Pastrohet kur TCNT1 = 00 $. OC1x nuk është i lidhur.

Karakteristikat e ADC

Tabela 21-8. Karakteristikat e ADC, Kanalet me Përfundim të Vetëm. TA = -40°C deri +85°C

Simboli Parametri gjendja Min Tip Maks Njësitë
Rezolucioni 10 Bit
Saktësia absolute (Përfshirë INL, DNL dhe kuantizim, gabime fitimi dhe kompensimi) VREF = 4V, VCC = 4V,

Ora ADC = 200 kHz

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

Ora ADC = 1 MHz

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

Ora ADC = 200 kHz

Modaliteti i zvogëlimit të zhurmës

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

Ora ADC = 1 MHz

Modaliteti i zvogëlimit të zhurmës

2.5 LSB
Jo-lineariteti integral (INL) (Saktësia pas kalibrimit të kompensimit dhe fitimit) VREF = 4V, VCC = 4V,

Ora ADC = 200 kHz

1 LSB
Jo-lineariteti diferencial (DNL) VREF = 4V, VCC = 4V,

Ora ADC = 200 kHz

0.5 LSB
Fitimi i gabimit VREF = 4V, VCC = 4V,

Ora ADC = 200 kHz

2.5 LSB
Gabim kompensimi VREF = 4V, VCC = 4V,

Ora ADC = 200 kHz

1.5 LSB
Koha e konvertimit Shndërrimi falas në ekzekutim 14 280 μs
Frekuenca e orës 50 1000 kHz
VIN Volumi i hyrjestage GND VREF V
Gjerësia e Bandës së Hyrjes 38.4 kHz
AREF Referenca e jashtme Voltage 2.0 KQV V
VINT Vëllimi i brendshëmtage Referenca 1.0 1.1 1.2 V
Referencë e brendshme 2.56V (1) KQV > 3.0V 2.3 2.56 2.8 V
RREF 32
SHI Rezistenca e hyrjes analoge 100
Dalja e ADC 0 1023 LSB

Shënim: 1. Vlerat janë vetëm udhëzime.

Tabela 21-9. Karakteristikat ADC, Kanalet Diferenciale (Modaliteti Unipolar). TA = -40°C deri +85°C

Simboli Parametri gjendja Min Tip Maks Njësitë
Rezolucioni Fitimi = 1x 10 Bit
Fitimi = 20x 10 Bit
Saktësia absolute (Përfshirë INL, DNL dhe

Gabimet e vlerësimit, fitimit dhe kompensimit)

Fitimi = 1x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

10.0 LSB
Fitimi = 20x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

20.0 LSB
Jo-lineariteti integral (INL) (Saktësia pas kalibrimit të kompensimit dhe fitimit) Fitimi = 1x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

4.0 LSB
Fitimi = 20x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

10.0 LSB
Fitimi i gabimit Fitimi = 1x 10.0 LSB
Fitimi = 20x 15.0 LSB
Gabim kompensimi Fitimi = 1x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

3.0 LSB
Fitimi = 20x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

4.0 LSB
Koha e konvertimit Shndërrimi falas në ekzekutim 70 280 μs
Frekuenca e orës 50 200 kHz
VIN Volumi i hyrjestage GND KQV V
VDIFF Diferencial Diferenca Voltage VREF/Gain V
Gjerësia e Bandës së Hyrjes 4 kHz
AREF Referenca e jashtme Voltage 2.0 KQV – 1.0 V
VINT Vëllimi i brendshëmtage Referenca 1.0 1.1 1.2 V
Referencë e brendshme 2.56V (1) KQV > 3.0V 2.3 2.56 2.8 V
RREF Rezistenca e hyrjes referuese 32
SHI Rezistenca e hyrjes analoge 100
Rezultati i konvertimit ADC 0 1023 LSB

Shënim: Vlerat janë vetëm udhëzime.

Tabela 21-10. Karakteristikat e ADC, Kanalet Diferenciale (Modaliteti Bipolar). TA = -40°C deri +85°C

Simboli Parametri gjendja Min Tip Maks Njësitë
Rezolucioni Fitimi = 1x 10 Bit
Fitimi = 20x 10 Bit
Saktësia absolute (Përfshirë INL, DNL dhe

Gabimet e vlerësimit, fitimit dhe kompensimit)

Fitimi = 1x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

8.0 LSB
Fitimi = 20x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

8.0 LSB
Jo-lineariteti integral (INL) (Saktësia pas kalibrimit të kompensimit dhe fitimit) Fitimi = 1x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

4.0 LSB
Fitimi = 20x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

5.0 LSB
Fitimi i gabimit Fitimi = 1x 4.0 LSB
Fitimi = 20x 5.0 LSB
Gabim kompensimi Fitimi = 1x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

3.0 LSB
Fitimi = 20x

VREF = 4V, VCC = 5V

Ora ADC = 50 - 200 kHz

4.0 LSB
Koha e konvertimit Shndërrimi falas në ekzekutim 70 280 μs
Frekuenca e orës 50 200 kHz
VIN Volumi i hyrjestage GND KQV V
VDIFF Diferencial Diferenca Voltage VREF/Gain V
Gjerësia e Bandës së Hyrjes 4 kHz
AREF Referenca e jashtme Voltage 2.0 KQV – 1.0 V
VINT Vëllimi i brendshëmtage Referenca 1.0 1.1 1.2 V
Referencë e brendshme 2.56V (1) KQV > 3.0V 2.3 2.56 2.8 V
RREF Rezistenca e hyrjes referuese 32
SHI Rezistenca e hyrjes analoge 100
Rezultati i konvertimit ADC -512 511 LSB

Përmbledhje e grupeve të udhëzimeve

Mnemonikë Operandat Përshkrimi Operacioni Flamujt # Orët
UDHUCTZIME ARITMETIKE DHE LOGIKE
SHTO Rd, Rr Shtoni dy regjistra Rd ← Rd + Rr Z, C, N, V, H 1
ADC Rd, Rr Shtoni me Mbani dy Regjistra Rd ← Rd + Rr + C Z, C, N, V, H 1
ADIW Rdl, K Shto menjëherë në Word Rdh:Rdl ← Rdh:Rdl + K Z, C, N, V, S 2
NËN Rd, Rr Zbrit dy regjistra Rd ← Rd – Rr Z, C, N, V, H 1
SUBI Rd, K Zbritni Constant nga Regjistrohuni Rd ← Rd – K Z, C, N, V, H 1
SBC Rd, Rr Zbrit me Mbani dy Regjistra Rd ← Rd – Rr – C Z, C, N, V, H 1
SBCI Rd, K Zbrit me Carry Constant nga Reg. Rd ← Rd – K – C Z, C, N, V, H 1
SBIW Rdl, K Zbritni Immediate nga Word Rdh:Rdl ← Rdh:Rdl – K Z, C, N, V, S 2
DHE Rd, Rr Logjike DHE Regjistrat Rd ← Rd ∙ Rr Z, N, V 1
ANDI Rd, K Logjike DHE Regjistrohu dhe Vazhdon Rd ← Rd ∙ K Z, N, V 1
OR Rd, Rr Regjistrimet logjike OSE Rd ← Rd v Rr Z, N, V 1
ORI Rd, K Logjike OSE Regjistrohu dhe Vazhdon Rd ← Rd v K Z, N, V 1
EOR Rd, Rr Regjistrime ekskluzive OSE Rd ← Rd ⊕ Rr Z, N, V 1
COM Rd Plotësimi i dikujt Rd ← 0xFF − Rd Z, C, N, V 1
NEG Rd Komplementi i dyve Rd ← 0x00 − Rd Z, C, N, V, H 1
SBR Rd, K Vendos Bit (et) në Regjistrohu Rd ← Rd v K Z, N, V 1
CBR Rd, K Pastro Bit (et) në Regjistrohu Rd ← Rd ∙ (0xFF – K) Z, N, V 1
INC Rd Rritje Rd ← Rd + 1 Z, N, V 1
Dhjetor Rd Zbërthimi Rd ← Rd − 1 Z, N, V 1
TST Rd Test për Zero ose Minus Rd ← Rd ∙ Rd Z, N, V 1
CLR Rd Pastro regjistrin Rd ← Rd ⊕ Rd Z, N, V 1
SER Rd Vendos Regjistrohu Rd ← 0xFF Asnjë 1
UDHUCTZIMET E DEGS
RJMP k Kërcimi relativ PC ← PC + k + 1 Asnjë 2
IJMP Kërcimi indirekt në (Z) PC ← Z Asnjë 2
THIRRJE k Thirrje relative e nënrutinës PC ← PC + k + 1 Asnjë 3
THIRRJE Telefonatë indirekte në (Z) PC ← Z Asnjë 3
RET Kthimi i nënrutinës PC ← STACK Asnjë 4
RETI Ndërprerja e kthimit PC ← STACK I 4
CPSE Rd, Rr Krahasoni, Kaloni nëse është i Barabartë nëse (Rd = Rr) PC ← PC + 2 ose 3 Asnjë 1/2/3
CP Rd, Rr Krahasoni Rd − Rr Z, N, V, C, H 1
CPC Rd, Rr Krahasoni me Carry Rd − Rr − C Z, N, V, C, H 1
CPI Rd, K Krahasoni Regjistrohuni me Immediate Rd − K Z, N, V, C, H 1
SBRC Rr, b Kalo nëse Bit in Regjistrohu Pastruar nëse (Rr(b)=0) PC ← PC + 2 ose 3 Asnjë 1/2/3
SBRS Rr, b Kalo nëse Bit në Regjistër është vendosur nëse (Rr(b)=1) PC ← PC + 2 ose 3 Asnjë 1/2/3
SBIC P, b Kaloni nëse Bit in Regjistrohu I / O pastrohet nëse (P(b)=0) PC ← PC + 2 ose 3 Asnjë 1/2/3
SBIS P, b Kalo nëse Bit është vendosur në regjistrin I / O nëse (P(b)=1) PC ← PC + 2 ose 3 Asnjë 1/2/3
BRBS s, k Dega nëse Vendoset Flamuri i Statusit nëse (SREG(s) = 1) atëherë PC←PC+k + 1 Asnjë 1/2
BRBC s, k Dega nëse Flamuri i Statusit është Pastruar nëse (SREG(s) = 0) atëherë PC←PC+k + 1 Asnjë 1/2
BREQ k Dega nëse është e barabartë nëse (Z = 1) atëherë PC ← PC + k + 1 Asnjë 1/2
BRNE k Dega nëse nuk është e barabartë nëse (Z = 0) atëherë PC ← PC + k + 1 Asnjë 1/2
BRCS k Dega nëse Set Carry nëse (C = 1) atëherë PC ← PC + k + 1 Asnjë 1/2
BRCC k Dega nëse mbart pastruar nëse (C = 0) atëherë PC ← PC + k + 1 Asnjë 1/2
BRSH k Dega nëse është e njëjtë ose më e lartë nëse (C = 0) atëherë PC ← PC + k + 1 Asnjë 1/2
BRLO k Dega nëse Ulët nëse (C = 1) atëherë PC ← PC + k + 1 Asnjë 1/2
BRMI k Dega nëse Minus nëse (N = 1) atëherë PC ← PC + k + 1 Asnjë 1/2
BRPL k Dega nëse Plus nëse (N = 0) atëherë PC ← PC + k + 1 Asnjë 1/2
BRGE k Dega nëse është më e madhe ose e barabartë, e nënshkruar nëse (N ⊕ V= 0) atëherë PC ← PC + k + 1 Asnjë 1/2
BRLT k Dega nëse është më pak se zero, nënshkruhet nëse (N ⊕ V= 1) atëherë PC ← PC + k + 1 Asnjë 1/2
BRHS k Dega nëse vendoset gjysma e flamurit nëse (H = 1) atëherë PC ← PC + k + 1 Asnjë 1/2
BRHC k Dega nëse Fshihet Flamuri Gjysmë Bartës nëse (H = 0) atëherë PC ← PC + k + 1 Asnjë 1/2
BRTS k Dega nëse Vendoset Flamuri T nëse (T = 1) atëherë PC ← PC + k + 1 Asnjë 1/2
BRTC k Dega nëse Flamuri T Pastrohet nëse (T = 0) atëherë PC ← PC + k + 1 Asnjë 1/2
BRVS k Dega nëse është vendosur Flamuri i tejmbushjes nëse (V = 1) atëherë PC ← PC + k + 1 Asnjë 1/2
BRVC k Dega nëse Fshihet Flamuri i Mbingarkesës nëse (V = 0) atëherë PC ← PC + k + 1 Asnjë 1/2
SHKURTIM k Dega nëse ndërprerja është e mundur nëse ( I = 1) atëherë PC ← PC + k + 1 Asnjë 1/2
NGUSH k Dega nëse ndërprerja është me aftësi të kufizuara nëse ( I = 0) atëherë PC ← PC + k + 1 Asnjë 1/2
UDHUCTZIME BIT DHE BIT-TEST
SBI P, b Vendos Bit në Regjistrin I / O I/O(P,b) ← 1 Asnjë 2
CBI P, b Pastro bitin në regjistrin I / O I/O(P,b) ← 0 Asnjë 2
LSL Rd Zhvendosja logjike majtas Rd(n+1) ← Rd(n), Rd(0) ← 0 Z, C, N, V 1
LSR Rd Zhvendosja logjike djathtas Rd(n) ← Rd(n+1), Rd(7) ← 0 Z, C, N, V 1
ROLI Rd Rrotulloheni majtas përmes bartjes Rd(0)←C,Rd(n+1)←Rd(n),C←Rd(7) Z, C, N, V 1
ROR Rd Rrotullohuni drejt përmes bartni Rd(7)←C,Rd(n)←Rd(n+1),C←Rd(0) Z, C, N, V 1
ASR Rd Zhvendosja aritmetike djathtas Rd(n) ← Rd(n+1), n=0..6 Z, C, N, V 1
Mnemonikë Operandat Përshkrimi Operacioni Flamujt # Orët
SHKËRBIMI Rd Shkëmbe Nibbles Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) Asnjë 1
BSET s Set flamuri SREG(et) ← 1 SREG (s) 1
BCLR s Flamuri i Pastër SREG(et) ← 0 SREG (s) 1
BST Rr, b Dyqani Bit nga Regjistrohu në T T ← Rr(b) T 1
BLD Rd, b Ngarkesa bit nga T në Regjistrohuni Rd(b) ← T Asnjë 1
SEC Set Carry C ← 1 C 1
CLC Pastro mbaj C ← 0 C 1
SEN Vendosni Flamurin Negativ N ← 1 N 1
CLN Pastro Flamurin Negativ N ← 0 N 1
SEZ Vendosni Flamurin Zero Z ← 1 Z 1
CLZ Pastroni Flamurin Zero Z ← 0 Z 1
ISHM Aktivizo ndërprerjen globale Unë ← 1 I 1
CLI Çaktivizo ndërprerjen globale Unë ← 0 I 1
SES Vendos Flamurin e Testuar të Nënshkruar S ← 1 S 1
CLS Pastro Flamurin Test të Nënshkruar S ← 0 S 1
SEV Vendosni mbingarkesën e plotësuesve të Twos. V ← 1 V 1
CLV Clear Twos Plotësimi i Plotësuesve V ← 0 V 1
SET Vendosni T në SREG T ← 1 T 1
CLT Pastro T në SREG T ← 0 T 1
SEH Vendosni Flamurin Gjysmë Bartës në SREG H ← 1 H 1
CLH Pastroni Flamurin Gjysmë Bartës në SREG H ← 0 H 1
UDHZIME PANR TRANSFERIMIN E TAT DHATNAVE
MOV Rd, Rr Lëviz mes regjistrave Rd ← Rr Asnjë 1
MOVW Rd, Rr Kopjo Fjalën e Regjistrimit Rd+1:Rd ← Rr+1:Rr Asnjë 1
LDI Rd, K Ngarko menjëherë Rd ← K Asnjë 1
LD Rd, X Ngarkesa indirekte Rd ← (X) Asnjë 2
LD Rd, X + Ngarko Indirekt dhe Post-Inc. Rd ← (X), X ← X + 1 Asnjë 2
LD Rd, - X Ngarko ngarkesë indirekte dhe para-dhjetor. X ← X – 1, Rd ← (X) Asnjë 2
LD Rd, Y Ngarkesa indirekte Rd ← (Y) Asnjë 2
LD Rd, Y + Ngarko Indirekt dhe Post-Inc. Rd ← (Y), Y ← Y + 1 Asnjë 2
LD Rd, - Y Ngarko ngarkesë indirekte dhe para-dhjetor. Y ← Y – 1, Rd ← (Y) Asnjë 2
LDD Rd, Y + q Ngarkesa indirekte me zhvendosjen Rd ← (Y + q) Asnjë 2
LD Rd, Z Ngarkesa indirekte Rd ← (Z) Asnjë 2
LD Rd, Z + Ngarko Indirekt dhe Post-Inc. Rd ← (Z), Z ← Z+1 Asnjë 2
LD Rd, -Z Ngarko ngarkesë indirekte dhe para-dhjetor. Z ← Z – 1, Rd ← (Z) Asnjë 2
LDD Rd, Z + q Ngarkesa indirekte me zhvendosjen Rd ← (Z + q) Asnjë 2
LDS Rd, k Ngarko direkt nga SRAM Rd ← (k) Asnjë 2
ST X, Rr Ruani indirekt (X) ← Rr Asnjë 2
ST X +, Rr Dyqani Indirekt dhe Post-Inc. (X) ← Rr, X ← X + 1 Asnjë 2
ST - X, Rr Ruani indirekt dhe para-dhjetor. X ← X – 1, (X) ← Rr Asnjë 2
ST Y, Rr Ruani indirekt (Y) ← Rr Asnjë 2
ST Y +, Rr Dyqani Indirekt dhe Post-Inc. (Y) ← Rr, Y ← Y + 1 Asnjë 2
ST - Y, Rr Ruani indirekt dhe para-dhjetor. Y ← Y – 1, (Y) ← Rr Asnjë 2
STD Y + q, Rr Ruani indirekt me zhvendosjen (Y + q) ← Rr Asnjë 2
ST Z, Rr Ruani indirekt (Z) ← Rr Asnjë 2
ST Z +, Rr Dyqani Indirekt dhe Post-Inc. (Z) ← Rr, Z ← Z + 1 Asnjë 2
ST -Z, Rr Ruani indirekt dhe para-dhjetor. Z ← Z – 1, (Z) ← Rr Asnjë 2
STD Z + q, Rr Ruani indirekt me zhvendosjen (Z + q) ← Rr Asnjë 2
STS k, Rr Ruani direkt në SRAM (k) ← Rr Asnjë 2
LPM Load Memory Program R0 ← (Z) Asnjë 3
LPM Rd, Z Load Memory Program Rd ← (Z) Asnjë 3
LPM Rd, Z + Memoria e Programit të Ngarkesës dhe Post-Inc Rd ← (Z), Z ← Z+1 Asnjë 3
SPM Ruani kujtesën e programit (z) ← R1:R0 Asnjë
IN Rd, P Në Port Rd ← P Asnjë 1
JASHTË P, Rr Jashtë Portit P ← Rr Asnjë 1
SHTYTJE Rr Regjistrohu në Shtyp STACK ← Rr Asnjë 2
POP Rd Regjistrohu Pop nga Stack Rd ← STACK Asnjë 2
UDHUCTZIME PTR KONTROLL MCU
JO Asnjë operacion Asnjë 1
GJUM Flini (shih përshkrimin specifik. për funksionin e gjumit) Asnjë 1
WDR Rivendos vëzhguesin (shih përshkrimet specifike për WDR / Timer) Asnjë 1
THYES Pushim
Shpejtësia (MHz) (1) Furnizimi VoltagE (v) Gama e temperaturës Paketa (2) Kodi i porositjes (3)
10 1.8 – 5.5 Industriale

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

(-40 ° C deri + 85 ° C) (4)

8P3 ATtiny45-20PU
8S2 ATtiny45-20SU ATtiny45-20SUR

ATtiny45-20SH ATtiny45-20SHR

8X ATtiny45-20XU ATtiny45-20XUR
20M1 ATtiny45-20MU ATtiny45-20MUR

Shënime: 1. Për shpejtësinë kundrejt furnizimit voltage, shih pjesën 21.3 "Shpejtësia" në faqen 163.

Të gjitha paketat janë pa Pb, pa halide dhe plotësisht jeshile dhe ato përputhen me direktivën Evropiane për Kufizimin e Substancave të Rrezikshme (RoHS).

Treguesit e kodit

H: Përfundimi i plumbit NiPdAu

U: kallaj mat

R: shirit & mbështjell

Këto pajisje gjithashtu mund të furnizohen në formë meshë. Ju lutemi kontaktoni zyrën tuaj lokale të shitjes së Atmel për informacion të hollësishëm të porositjes dhe sasitë minimale.

I gabuar

Errata ATtiny25

Letra e rishikimit në këtë pjesë i referohet rishikimit të pajisjes ATtiny25.

Rev D - F

Asnjë errata e njohur.

Rev B - C

Leximi EEPROM mund të dështojë në volumin e ulët të furnizimittage / frekuencë e ulët e orës

Leximi EEPROM mund të dështojë në volumin e ulët të furnizimittage / frekuencë e ulët e orës

Përpjekja për të lexuar EEPROM në frekuenca të ulëta të orës dhe/ose volum të ulët të furnizimittage mund të rezultojë në të dhëna të pavlefshme.

Rregullimi / zgjidhja e problemit

Mos e përdorni EEPROM kur frekuenca e orës është nën 1 MHz dhe furnizimi voltage është nën 2V. Nëse frekuenca e funksionimit nuk mund të rritet mbi 1 MHz, atëherë furnizoni volumintage duhet të jetë më shumë se 2V. Në mënyrë të ngjashme, nëse furnizimi voltage nuk mund të ngrihet mbi 2V atëherë frekuenca e funksionimit duhet të jetë më shumë se 1MHz.

Kjo karakteristikë dihet se varet nga temperatura, por nuk është karakterizuar. Udhëzime jepen vetëm për temperaturën e dhomës.

Rev A

Jo sampudhëhequr.

Errata ATtiny45

Letra e rishikimit në këtë pjesë i referohet rishikimit të pajisjes ATtiny45.

Rev F - G

Asnjë errata e njohur

Rev D - E

Leximi EEPROM mund të dështojë në volumin e ulët të furnizimittage / frekuencë e ulët e orës

Leximi EEPROM mund të dështojë në volumin e ulët të furnizimittage / frekuencë e ulët e orës

Përpjekja për të lexuar EEPROM në frekuenca të ulëta të orës dhe/ose volum të ulët të furnizimittage mund të rezultojë në të dhëna të pavlefshme.

Rregullimi / zgjidhja e problemit

Mos e përdorni EEPROM kur frekuenca e orës është nën 1 MHz dhe furnizimi voltage është nën 2V. Nëse frekuenca e funksionimit nuk mund të rritet mbi 1 MHz, atëherë furnizoni volumintage duhet të jetë më shumë se 2V. Në mënyrë të ngjashme, nëse furnizimi voltage nuk mund të ngrihet mbi 2V atëherë frekuenca e funksionimit duhet të jetë më shumë se 1MHz.

Kjo karakteristikë dihet se varet nga temperatura, por nuk është karakterizuar. Udhëzime jepen vetëm për temperaturën e dhomës.

Rev B - C

PLL nuk po bllokohet

EEPROM i lexuar nga kodi i aplikacionit nuk punon në Modalitetin e Mbylle të Bitit 3

Leximi EEPROM mund të dështojë në volumin e ulët të furnizimittage / frekuencë e ulët e orës

Timer Counter 1 Gjenerimi i daljes PWM në OC1B- XOC1B nuk funksionon si duhet

PLL nuk po bllokohet

Kur në frekuenca nën 6.0 MHz, PLL nuk do të kyçet

Rregullimi i problemit / Zgjidhja e problemit

Kur përdorni PLL, ekzekutoni në 6.0 MHz ose më të lartë.

EEPROM i lexuar nga kodi i aplikacionit nuk punon në Modalitetin e Mbylle të Bitit 3

Kur Bit Memory Lock LB2 dhe LB1 programohen në modalitetin 3, leximi EEPROM nuk funksionon nga kodi i aplikacionit.

Rregullimi i problemit / Puna përreth

Mos vendosni Modalitetin e Mbrojtjes së Mbrojtjes së Bit-it 3 kur kodi i aplikacionit duhet të lexohet nga EEPROM.

Leximi EEPROM mund të dështojë në volumin e ulët të furnizimittage / frekuencë e ulët e orës

Përpjekja për të lexuar EEPROM në frekuenca të ulëta të orës dhe/ose volum të ulët të furnizimittage mund të rezultojë në të dhëna të pavlefshme.

Rregullimi / zgjidhja e problemit

Mos e përdorni EEPROM kur frekuenca e orës është nën 1 MHz dhe furnizimi voltage është nën 2V. Nëse frekuenca e funksionimit nuk mund të rritet mbi 1 MHz, atëherë furnizoni volumintage duhet të jetë më shumë se 2V. Në mënyrë të ngjashme, nëse furnizimi voltage nuk mund të ngrihet mbi 2V atëherë frekuenca e funksionimit duhet të jetë më shumë se 1MHz.

Kjo karakteristikë dihet se varet nga temperatura, por nuk është karakterizuar. Udhëzime jepen vetëm për temperaturën e dhomës.

Timer Counter 1 Gjenerimi i daljes PWM në OC1B - XOC1B nuk funksionon si duhet

Numëruesi i kohëmatësit1 Dalja PWM OC1B-XOC1B nuk funksionon si duhet. Vetëm në rastin kur bitët e kontrollit, COM1B1 dhe COM1B0 janë në të njëjtën mënyrë me COM1A1 dhe COM1A0, përkatësisht, pajisja OC1B-XOC1B funksionon si duhet.

Rregullimi i problemit / Puna përreth

E vetmja rrugëdalje është të përdorni cilësimin e njëjtë të kontrollit në bitët e kontrollit COM1A [1: 0] dhe COM1B [1: 0], shih tabelën 14-4 në fletën e të dhënave. Problemi është rregulluar për Tiny45 rev D.

Rev A

Fuqia shumë e lartë e konsumit të energjisë

DebugWIRE humbet komunikimin kur hyn vetëm në ndërprerje

PLL nuk po bllokohet

EEPROM i lexuar nga kodi i aplikacionit nuk punon në Modalitetin e Mbylle të Bitit 3

Leximi EEPROM mund të dështojë në volumin e ulët të furnizimittage / frekuencë e ulët e orës

Fuqia shumë e lartë e konsumit të energjisë

Tri situata do të çojnë në një rrymë shumë të lartë të konsumit të energjisë. Këto janë:

Një orë e jashtme zgjidhet nga siguresat, por PORTI I / O është ende i aktivizuar si dalje.

Lexohet EEPROM para se të fiket.

KQV-ja është 4.5 volt ose më e lartë.

Mohim përgjegjësie: Informacioni në këtë dokument jepet në lidhje me produktet e Atmel. Asnjë licencë, e shprehur ose e nënkuptuar, nga estoppel ose ndryshe, për ndonjë të drejtë të pronësisë intelektuale nuk jepet nga ky dokument ose në lidhje me shitjen e produkteve të Atmel. PËRVEÇ SIÇ PARAQET NË KUSHTET DHE KUSHTET E SHITJEVE TË ATMEL TË GJENDURA NË ATMEL WEBFAQJA, ATMEL NUK MERR ASNJË ASNJË PËRGJEGJËSI DHE HEFON ASNJË GARANCI TË SHPREHUR, TË nënkuptuar ose statutore LIDHUR ME PRODUKTET E TIJ PËRFSHIRË, POR JO KUFIZUAR ME KUFIZIMIN E PARAQITURËS TË GARANCISË TË KUFIZUAR TË KUFIZIMIT TË KUFIZUARIT TË KUFIZUARIT TË KUFIZUARIT TË GARANCISË. NË ASNJË RAST ATMEL DO TË JETË PËRGJEGJËS PËR ASNJË DËME TË DREJTTË, INDIREKT, PASOJUESE, Ndëshkuese, VEÇANTA APO RASTËSISHME (PERFSHIRË, PA KUFIZIM, DËME PËR HUMBJEN E HUMBJEVE DHE HUMBJEN E HUMBJEVE DHE FITIMET E SHB. KY DOKUMENT, EDHE NËSE ATMEL ËSHTË KËSHILLUAR PËR MUNDËSINË E DËMEVE TË TIJ.

Atmel nuk bën asnjë përfaqësim ose garanci në lidhje me saktësinë ose plotësinë e përmbajtjes së këtij dokumenti dhe rezervon të drejtën për të bërë ndryshime në specifikimet dhe përshkrimet e produkteve në çdo kohë pa paralajmërim. Atmel nuk merr asnjë angazhim për të përditësuar informacionin e përfshirë këtu. Përveç nëse parashikohet në mënyrë specifike ndryshe, produktet Atmel nuk janë të përshtatshme dhe nuk do të përdoren në aplikacionet e automobilave. Produktet Atmel nuk janë të destinuara, të autorizuara ose të garantuara për përdorim si komponentë në aplikacionet që synojnë të mbështesin ose mbështesin jetën.

Referencat

Lini një koment

Adresa juaj e emailit nuk do të publikohet. Fushat e kërkuara janë shënuar *