Mikrokontrollues AVR 8-bit Atmel me Flash të programueshëm në sistem 2/4/8K byte
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
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
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
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.
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.
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.
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
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
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
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 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
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.
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.
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
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 24, Aktiv "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
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
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.
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
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
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)
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 | ![]() |
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 | kΩ | ||||
SHI | Rezistenca e hyrjes analoge | 100 | MΩ | |||
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 | kΩ | |||
SHI | Rezistenca e hyrjes analoge | 100 | MΩ | |||
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 | kΩ | |||
SHI | Rezistenca e hyrjes analoge | 100 | MΩ | |||
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.