Atmel 8 bitu AVR mikrokontrolleris ar 2/4/8K baitu sistēmā programmējamu zibspuldzi
Funkcijas
- Augstas veiktspējas mazjaudas AVR® 8 bitu mikrokontrolleris
- Uzlabota RISC arhitektūra
- 120 jaudīgas instrukcijas - lielākā daļa viena pulksteņa cikla izpildes
- 32 x 8 vispārējas nozīmes darba reģistri
- Pilnībā statiska darbība
- Nepastāvīga programma un datu atmiņas
- 2/4 / 8K baiti sistēmā programmējamas programmas atmiņas zibspuldzes
- Izturība: 10,000 XNUMX rakstīšanas/dzēšanas ciklu
- 128/256/512 baitu sistēmā programmējams EEPROM
- Izturība: 100,000 XNUMX rakstīšanas/dzēšanas ciklu
- 128/256/512 baitu iekšējais SRAM
- Programmēšanas atslēga pašprogrammējošai Flash programmai un EEPROM datu drošībai
Perifērijas funkcijas
- 8 bitu taimeris / skaitītājs ar preskaleru un diviem PWM kanāliem
- 8 bitu ātrgaitas taimeris / skaitītājs ar atsevišķu preskaleru
- 2 augstas frekvences PWM izejas ar atsevišķiem izejas salīdzināšanas reģistriem
- Programmējams mirušā laika ģenerators
- USI - universāla sērijas saskarne ar sākuma stāvokļa detektoru
- 10 bitu ADC
4 vienreizēji kanāli
2 diferenciālie ADC kanālu pāri ar programmējamu pastiprinājumu (1x, 20x)
Temperatūras mērīšana
Programmējams sargsuņa taimeris ar atsevišķu mikroshēmas oscilatoru
Mikroshēmas analogais salīdzinātājs
Īpašās mikrokontrolleru funkcijas
debugWIRE mikroshēmas atkļūdošanas sistēma
Sistēmā programmējams, izmantojot SPI portu
Ārējie un iekšējie traucējumu avoti
Zema enerģijas dīkstāves, ADC trokšņa samazināšanas un izslēgšanas režīmi
Uzlabota ieslēgšanas atiestatīšanas ķēde
Programmējama izslēgšanas noteikšanas shēma
Iekšējais kalibrētais oscilators
I / O un paketes
Sešas programmējamas I / O līnijas
8 kontaktu PDIP, 8 kontaktu SOIC, 20 spilventiņu QFN / MLF un 8 kontaktu TSSOP (tikai ATtiny45 / V)
Darbības sējtage
- 1.8 - 5.5 V ATtiny25V / 45V / 85V
- 2.7 - 5.5 V ATtiny25 / 45/85
Ātruma pakāpe
- ATtiny25V / 45V / 85V: 0 - 4 MHz @ 1.8 - 5.5 V, 0 - 10 MHz @ 2.7 - 5.5 V
- ATtiny25 / 45/85: 0 - 10 MHz @ 2.7 - 5.5 V, 0 - 20 MHz @ 4.5 - 5.5 V
Rūpniecības temperatūras diapazons
Zems enerģijas patēriņš
Aktīvais režīms:
1 MHz, 1.8 V: 300 µA
Izslēgšanas režīms:
Piespraudes konfigurācijas
Pinout ATtiny25 / 45/85
Piespraudes apraksti
VCC: piegādes apjomstage.
GND: Zeme.
Ports B (PB5:PB0): Ports B ir 6 bitu divvirzienu I/O ports ar iekšējiem uzvilkšanas rezistoriem (atlasīts katram bitam). Porta B izvades buferiem ir simetriskas piedziņas raksturlielumi ar augstu izlietnes un avota spēju. Kā ieejas porta B tapas, kas ir ārēji zemas, avota strāvu, ja tiek aktivizēti pievilkšanas rezistori. B porta kontakti tiek iestatīti trīs reizes, kad atiestatīšanas nosacījums kļūst aktīvs, pat ja pulkstenis nedarbojas.
B osta kalpo arī dažādu ATtiny25 / 45/85 īpašo funkciju funkcijām, kā norādīts
Programmā ATtiny25 programmējamie I / O porti PB3 un PB4 (2. un 3. tapas) tiek apmainīti ATtiny15 saderības režīmā, lai atbalstītu atpakaļejošu savietojamību ar ATtiny15.
RESET: Atiestatīt ievadi. Zems šīs tapas līmenis ilgāk par minimālo impulsa garumu radīs atiestatīšanu, pat ja pulkstenis nedarbojas un ja atiestatīšanas tapa nav atspējota. Minimālais impulsa garums ir norādīts 21-4 tabula 165. lappusē. Īsāki impulsi negarantē atiestatīšanu.
Atiestatīšanas tapu var izmantot arī kā (vāju) I / O tapu.
Beigāsview
ATtiny25 / 45/85 ir mazjaudas CMOS 8 bitu mikrokontrolleris, kas balstīts uz AVR uzlaboto RISC arhitektūru. Izpildot jaudīgas instrukcijas vienā pulksteņa ciklā, ATtiny25 / 45/85 sasniedz caurlaidspēju, kas tuvojas 1 MIPS uz MHz, ļaujot sistēmas dizainerim optimizēt enerģijas patēriņu pret apstrādes ātrumu.
Blokshēma
AVR kodols apvieno bagātīgu instrukciju kopu ar 32 vispārējas nozīmes darba reģistriem. Visi 32 reģistri ir tieši savienoti ar aritmētiskās loģikas vienību (ALU), ļaujot piekļūt diviem neatkarīgiem reģistriem vienā instrukcijā, kas izpildīta vienā pulksteņa ciklā. Rezultātā iegūtā arhitektūra ir koda ziņā efektīvāka, vienlaikus sasniedzot līdz pat desmit reizēm ātrāku ātrumu nekā parastie CISC mikrokontrolleri.
ATtiny25 / 45/85 nodrošina šādas funkcijas: 2/4 / 8K baiti sistēmā programmējamas zibspuldzes, 128/256/512 baiti EEPROM, 128/256/256 baiti SRAM, 6 vispārējas nozīmes I / O līnijas, 32 vispārīgi darba reģistri, viens 8 bitu taimeris / skaitītājs ar salīdzināšanas režīmiem, viens 8 bitu ātrgaitas taimeris / skaitītājs, universālā seriālā saskarne, iekšējie un ārējie pārtraucēji, 4 kanālu, 10 bitu ADC, programmējams sargsuņa taimeris ar iekšējo Oscilators un trīs programmatūras izvēlēti enerģijas taupīšanas režīmi. Gaidīšanas režīmā CPU tiek apturēts, vienlaikus ļaujot SRAM, taimerim / skaitītājam, ADC, analogajam salīdzinātājam un pārtrauktai sistēmai turpināt darboties. Izslēgšanas režīms saglabā reģistra saturu, atspējojot visas mikroshēmas funkcijas līdz nākamajam pārtraukumam vai aparatūras atiestatīšanai. ADC trokšņu samazināšanas režīms aptur CPU un visus I / O moduļus, izņemot ADC, lai samazinātu komutācijas troksni ADC pārveidošanas laikā.
Ierīce tiek ražota, izmantojot Atmel augsta blīvuma nepastāvīgās atmiņas tehnoloģiju. Mikroshēmas ISP zibspuldze ļauj programmas atmiņu pārprogrammēt sistēmā, izmantojot SPI sērijas interfeisu, izmantojot parasto nestabilo atmiņas programmētāju vai ar On-chip sāknēšanas kodu, kas darbojas uz AVR kodola.
ATtiny25 / 45/85 AVR tiek atbalstīts ar pilnu programmu un sistēmu izstrādes rīku komplektu, ieskaitot: C pilerus, makro montētājus, programmu atkļūdotājus / simulatorus un novērtēšanas komplektus.
Par resursiem
Visaptverošs izstrādes rīku komplekts, lietojumprogrammu piezīmes un datu lapas ir lejupielādējamas vietnē http://www.atmel.com/avr.
Kods Piemamples
Šī dokumentācija satur vienkāršu kodu, piemampkas īsumā parāda, kā izmantot dažādas ierīces daļas. Šie kodi, piemamples pieņem, ka konkrētās daļas galvene file ir iekļauta pirms apkopošanas. Ņemiet vērā, ka ne visi C kompilatora piegādātāji galvenē iekļauj bitu definīcijas files un pārtraukšanas apstrāde C ir atkarīga no kompilatora. Lai iegūtu sīkāku informāciju, lūdzu, apstipriniet to ar C kompilatora dokumentāciju.
I / O reģistriem, kas atrodas paplašinātajā I / O kartē, instrukcijas “IN”, “OUT”, “SBIS”, “SBIC”, “CBI” un “SBI” jāaizstāj ar instrukcijām, kas ļauj piekļūt paplašinātajai I / O. Parasti tas nozīmē “LDS” un “STS” apvienojumā ar “SBRS”, “SBRC”, “SBR” un “CBR”. Ņemiet vērā, ka ne visās AVR ierīcēs ir iekļauta paplašināta I / O karte.
Kapacitatīvā skārienjutība
Atmel QTouch Library nodrošina vienkārši lietojamu risinājumu skārienjutīgām saskarnēm Atmel AVR mikrokontrolleros. QTouch bibliotēka ietver atbalstu QTouch® un QMatrix® iegūšanas metodēm.
Skārienjūtību var viegli pievienot jebkurai lietojumprogrammai, saistot QTouch bibliotēku un izmantojot bibliotēkas lietojumprogrammu saskarni (API), lai noteiktu skārienkanālus un sensorus. Pēc tam lietojumprogramma izsauc API, lai izgūtu kanāla informāciju un noteiktu skārienjutētāja stāvokli.
QTouch bibliotēka ir bezmaksas, un to var lejupielādēt no Atmel webvietne. Plašāku informāciju un detalizētu informāciju par ieviešanu skatiet QTouch bibliotēkas lietotāja rokasgrāmatā - pieejama arī vietnē Atmel webvietne.
Datu saglabāšana
Uzticamības kvalifikācijas rezultāti rāda, ka prognozētais datu saglabāšanas kļūmju līmenis ir daudz mazāks par 1 PPM 20 gadu laikā 85 ° C temperatūrā vai 100 gadus 25 ° C temperatūrā.
AVR CPU kodols
Ievads
Šajā sadaļā vispārīgi aplūkota AVR kodola arhitektūra. Centrālā procesora kodola galvenā funkcija ir nodrošināt pareizu programmas izpildi. Tāpēc procesoram jāspēj piekļūt atmiņām, veikt aprēķinus, vadīt perifērijas ierīces un apstrādāt pārtraukumus.
Arhitektūras beidzāsview
Lai maksimizētu veiktspēju un paralēlismu, AVR izmanto Hārvardas arhitektūru - ar atsevišķām atmiņām un kopnēm programmu un datu apstrādei. Instrukcijas programmas atmiņā tiek izpildītas ar viena līmeņa cauruļvadu. Kamēr tiek izpildīta viena instrukcija, nākamā instrukcija tiek iepriekš ielādēta no programmas atmiņas. Šī koncepcija ļauj izpildīt instrukcijas katrā pulksteņa ciklā. Programmas atmiņa ir sistēmā pārprogrammējama zibatmiņa.
Ātrās piekļuves reģistrs File satur 32 x 8 bitu vispārējas nozīmes darba reģistrus ar vienu pulksteņa cikla piekļuves laiku. Tas nodrošina viena cikla aritmētiskās loģiskās vienības (ALU) darbību. Tipiskā ALU operācijā no reģistra tiek izvadīti divi operandi File, darbība tiek izpildīta, un rezultāts tiek saglabāts reģistrā File- vienā pulksteņa ciklā.
Sešus no 32 reģistriem var izmantot kā trīs 16 bitu netiešo adrešu reģistra rādītājus datu telpas adresēšanai - ļaujot efektīvi veikt adrešu aprēķinus. Vienu no šiem adrešu rādītājiem var izmantot arī kā adrešu rādītājus tabulu meklēšanai Flash programmas atmiņā. Šie pievienoto funkciju reģistri ir 16 bitu X-, Y- un Z-reģistrs, kas aprakstīts vēlāk šajā sadaļā.
ALU atbalsta aritmētiskās un loģiskās darbības starp reģistriem vai starp konstanti un reģistru. Vienotā reģistra darbības var veikt arī ALU. Pēc aritmētiskās darbības statusa reģistrs tiek atjaunināts, lai atspoguļotu informāciju par operācijas rezultātu.
Programmas plūsmu nodrošina nosacītas un beznosacījuma lēciena un izsaukuma instrukcijas, kas spēj tieši adresēt visu adreses telpu. Lielākajai daļai AVR instrukciju ir viens 16 bitu vārdu formāts, taču ir arī 32 bitu instrukcijas.
Pārtraukumu un apakšprogrammas zvanu laikā atgriešanās adrese Program Counter (PC) tiek saglabāta kaudzē. Steks tiek efektīvi iedalīts vispārējo datu SRAM, un līdz ar to kaudzes lielumu ierobežo tikai kopējais SRAM izmērs un SRAM izmantošana. Visām lietotāja programmām ir jāinicializē SP atjaunošanas rutīnā (pirms tiek izpildītas apakšprogrammas vai pārtraukumi). Steka rādītājs (SP) ir lasīšanas / rakstīšanas pieejams I / O telpā. Dati SRAM var viegli piekļūt, izmantojot piecus dažādus adresēšanas režīmus, kurus atbalsta AVR arhitektūra.
Atmiņas vietas AVR arhitektūrā ir lineāras un regulāras atmiņas kartes.
Elastīga pārtraukuma moduļa vadības reģistri atrodas I / O telpā un papildu globālā pārtraukuma iespējošanas bits statusa reģistrā. Visiem pārtraukumiem tabulā Interrupt Vector ir atsevišķs Interrupt Vector. Pārtraucējiem ir prioritāte atbilstoši viņu pārtraukšanas vektora pozīcijai. Jo zemāka ir Interrupt Vector adrese, jo augstāka ir prioritāte.
I/O atmiņas telpā ir 64 adreses CPU perifērijas funkcijām kā vadības reģistri, SPI un citas I/O funkcijas. I/O atmiņai var piekļūt tieši vai kā datu telpas atrašanās vietas pēc reģistra File, 0x20 - 0x5F.
ALU - Aritmētiskās loģikas vienība
Augstas veiktspējas AVR ALU darbojas tiešā savienojumā ar visiem 32 vispārējas nozīmes darba reģistriem. Viena pulksteņa cikla laikā tiek veiktas aritmētiskās darbības starp vispārējas nozīmes reģistriem vai starp reģistru un tiešo. ALU darbības ir sadalītas trīs galvenajās kategorijās - aritmētiskās, loģiskās un bitu funkcijas. Daži arhitektūras ieviešanas varianti nodrošina arī jaudīgu reizinātāju, kas atbalsta gan parakstītu / neparakstītu reizinājumu, gan daļēju formātu. Detalizētu aprakstu skatiet sadaļā “Instrukciju komplekts”.
Statusa reģistrs
Statusa reģistrā ir informācija par pēdējās izpildītās aritmētiskās instrukcijas rezultātu. Šo informāciju var izmantot, lai mainītu programmas plūsmu, lai veiktu nosacītas darbības. Ņemiet vērā, ka statusa reģistrs tiek atjaunināts pēc visām ALU darbībām, kā norādīts instrukciju kopas atsaucē. Tas daudzos gadījumos novērsīs nepieciešamību izmantot īpašās salīdzināšanas instrukcijas, tādējādi iegūstot ātrāku un kompaktāku kodu.
Statusa reģistrs netiek automātiski saglabāts, ievadot pārtraukuma rutīnu, un netiek atjaunots, atgriežoties no pārtraukuma. Tas jārisina programmatūrai.
SREG - AVR statusa reģistrs
AVR statusa reģistrs - SREG - ir definēts kā:
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | SREG |
Lasīt/rakstīt | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7. bits - I: Globālā pārtraukuma iespējošana
Lai iespējotu pārtraukumus, ir jāiestata bits Globālā pārtraukuma iespējošana. Pēc tam individuālā pārtraukuma iespējošanas vadība tiek veikta atsevišķos vadības reģistros. Ja globālā pārtraukuma iespējošanas reģistrs tiek notīrīts, neviens no pārtraukumiem netiek iespējots neatkarīgi no individuālā pārtraukuma iespējošanas iestatījumiem. I bitu aparatūra notīra pēc pārtraukuma, un to nosaka RETI instrukcija, lai iespējotu nākamos pārtraukumus. I bitu var iestatīt un notīrīt arī lietojumprogramma, izmantojot SEI un CLI instrukcijas, kā aprakstīts instrukciju kopas atsaucē.
Bits 6 - T: bitu kopiju glabāšana
Bitu kopēšanas norādījumi BLD (Bit LoaD) un BST (Bit STore) izmanto T-bitu kā darbināmā bita avotu vai galamērķi. Nedaudz no reģistra reģistrā File var nokopēt T ar BST instrukciju, un mazliet T var iekopēt bitu reģistra reģistrā File pēc BLD instrukcijas.
5. bits - H: puspārnesuma karogs
Half Carry karodziņš H norāda Half Carry dažās aritmētiskajās operācijās. Half Carry ir noderīga BCD aritmētikā. Sīkāku informāciju skatiet “Instrukciju komplekta aprakstā”.
4. bits — S: zīmes bits, S = N ⊕ V
S bits vienmēr ir ekskluzīvs vai atrodas starp negatīvo karodziņu N un divu komplementārā pārplūdes karogu V. Sīkāku informāciju skatiet instrukciju komplekta aprakstā.
3. bits - V: Divu papildinājuma pārplūdes karogs
Divu papildinājuma pārplūdes karogs V atbalsta divu papildinājumu aritmētiku. Sīkāku informāciju skatiet “Instrukciju komplekta aprakstā”.
2. bits - N: negatīvs karogs
Negatīvais karogs N norāda uz negatīvu rezultātu aritmētiskajā vai loģiskajā darbībā. Sīkāku informāciju skatiet “Instrukciju komplekta aprakstā”.
1. bits - Z: nulles karogs
Nulles karogs Z norāda nulles rezultātu aritmētiskajā vai loģiskajā darbībā. Sīkāku informāciju skatiet “Instrukciju komplekta aprakstā”.
Bits 0 - C: Pārnēsāšanas karogs
Pārnēsāšanas karogs C norāda pārnesi aritmētiskā vai loģiskā darbībā. Sīkāku informāciju skatiet “Instrukciju komplekta aprakstā”.
Vispārējā mērķa reģistrs File
Reģistrs File ir optimizēts AVR Enhanced RISC instrukciju kopumam. Lai sasniegtu vajadzīgo veiktspēju un elastību, reģistrs atbalsta šādas ievades/izvades shēmas File:
Viens 8 bitu izvades operands un viena 8 bitu rezultātu ievade
Divi 8 bitu izvades operandi un viena 8 bitu rezultātu ievade
Divi 8 bitu izvades operandi un viena 16 bitu rezultātu ievade
Viens 16 bitu izvades operands un viena 16 bitu rezultātu ievade
Attēls 4-2 parāda CPU 32 vispārējas nozīmes darba reģistru struktūru.
Kā parādīts Attēls 4-2, katram reģistram tiek piešķirta arī datu atmiņas adrese, kartējot tos tieši pirmajās 32 lietotāja datu telpas vietās. Lai gan šī atmiņas organizācija netiek fiziski ieviesta kā SRAM atrašanās vieta, tā nodrošina lielu elastību piekļūt reģistriem, jo X-, Y- un Z-rādītāju reģistrus var iestatīt, lai indeksētu jebkuru reģistru file.Lielākā daļa instrukciju, kas darbojas Reģistrā File ir tieša piekļuve visiem reģistriem, un lielākā daļa no tiem ir viena cikla instrukcijas.
X reģistrs, Y reģistrs un Z reģistrs
Reģistriem R26..R31 to vispārīgajam lietojumam ir dažas papildu funkcijas. Šie reģistri ir 16 bitu adrešu rādītāji datu telpas netiešai adresēšanai. Trīs netiešo adrešu reģistri X, Y un Z ir definēti, kā aprakstīts Attēls 4-3.
Dažādos adresācijas režīmos šiem adrešu reģistriem ir fiksētas pārvietošanas, automātiskas palielināšanas un automātiskas samazināšanas funkcijas (sīkāku informāciju skatiet instrukciju kopas atsaucē).
Steka rādītājs
Steks galvenokārt tiek izmantots pagaidu datu, vietējo mainīgo un atgriešanās adrešu saglabāšanai pēc pārtraukumiem un apakšprogrammas zvaniem. Steka rādītāju reģistrs vienmēr norāda uz kaudzes augšdaļu. Ņemiet vērā, ka kaudze tiek realizēta kā pieaugoša no lielākas atmiņas vietām līdz zemākām atmiņas vietām. Tas nozīmē, ka komanda Stack PUSH samazina kaudzes rādītāju.
Steka rādītājs norāda uz datu SRAM kaudzes apgabalu, kur atrodas apakšprogramma un pārtraucošā kaudze. Šī kaudzes vieta datu SRAM jānosaka programmai, pirms tiek izpildīti visi apakšprogrammas zvani vai iespējoti pārtraukumi. Steka rādītājam jābūt iestatītam uz punktu virs 0x60. Steka rādītājs tiek samazināts par vienu, kad dati tiek virzīti uz skursteni ar PUSH instrukciju, un tas tiek samazināts par diviem, kad atgriešanās adrese tiek virzīta uz kaudzīti ar apakšprogrammas zvanu vai pārtraukumu. Steka rādītājs tiek palielināts par vienu, kad dati tiek parādīti no kaudzes ar POP instrukciju, un tas tiek palielināts ar diviem, kad dati tiek parādīti no kaudzes, atgriežoties no apakšprogrammas RET vai atgriežoties no pārtraukuma RETI.
AVR skursteņa rādītājs tiek ieviests kā divi 8 bitu reģistri I / O telpā. Faktiski izmantoto bitu skaits ir atkarīgs no ieviešanas. Ņemiet vērā, ka datu telpa dažās AVR arhitektūras realizācijās ir tik maza, ka ir nepieciešama tikai SPL. Šajā gadījumā SPH reģistrs nebūs pieejams.
SPH un SPL - kaudzes rādītāju reģistrs
Mazliet | 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 | ||
Lasīt/rakstīt | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Lasīt/rakstīt | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Sākotnējā vērtība | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | |
Sākotnējā vērtība | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND | RAMEND |
Instrukciju izpildes laiks
Šajā sadaļā ir aprakstītas vispārīgās piekļuves laika koncepcijas instrukciju izpildei. AVR CPU darbina CPU pulkstenis clkCPU, kas tieši ģenerēts no mikroshēmai atlasītā pulksteņa avota. Iekšējais pulksteņa dalījums netiek izmantots.
Attēls 4-4 parāda paralēlo instrukciju ielādi un instrukciju izpildi, ko nodrošina Hārvardas arhitektūra un ātrās piekļuves reģistrs File jēdziens. Šī ir pamata cauruļvadu koncepcija, lai iegūtu līdz 1 MIPS uz MHz ar atbilstošiem unikāliem rezultātiem par izmaksām, funkcijām uz vienu pulksteņu un funkcijām uz vienu barošanas bloku.
Attēls 4-5. Viena cikla ALU darbība
Atiestatīt un pārtraukt apstrādi
AVR nodrošina vairākus dažādus pārtraukuma avotus. Šiem pārtraukumiem un atsevišķam atiestatīšanas vektoram katram ir atsevišķs programmas vektors programmas atmiņas telpā. Visiem pārtraukumiem tiek piešķirti individuāli iespējošanas biti, kuriem jābūt uzrakstītiem loģiskiem, kopā ar Globālo traucējumu iespējošanas bitu Statusa reģistrā, lai iespējotu pārtraukumu.
Zemākās adreses programmas atmiņas telpā pēc noklusējuma ir definētas kā atiestatīšanas un pārtraukšanas vektori. Pilns vektoru saraksts ir parādīts “Pārtrauc” 48. lpp. Sarakstā ir noteikti arī dažādu pārtraukumu prioritāšu līmeņi. Jo zemāka adrese, jo augstāks ir prioritātes līmenis. RESET ir visaugstākā prioritāte, un nākamais ir INT0 - ārējā pārtraukuma pieprasījums 0.
Kad notiek pārtraukums, globālais pārtraukuma iespējošanas I bits tiek notīrīts un visi pārtraukumi ir atspējoti. Lietotāja programmatūra var ierakstīt loģiku uz I bitu, lai iespējotu ligzdotus pārtraukumus. Pēc tam visi iespējotie pārtraukumi var pārtraukt pašreizējo pārtraukumu rutīnu. I bits tiek automātiski iestatīts, kad tiek izpildīta atgriešanās no pārtraukuma instrukcija - RETI.
Būtībā ir divu veidu pārtraukumi. Pirmo veidu izraisa notikums, kas nosaka pārtraukuma karodziņu. Šiem pārtraukumiem Programmas skaitītājs tiek vektorizēts līdz faktiskajam pārtraukuma vektoram, lai izpildītu pārtraukumu apstrādes rutīnu, un aparatūra notīra attiecīgo pārtraukuma karodziņu. Pārtraucošos karodziņus var arī notīrīt, ierakstot loģiku karodziņa (-u) pozīcijā (-ās), kas jāizdzēš. Ja pārtraukuma nosacījums notiek, kamēr tiek iztīrīts atbilstošais pārtraukuma iespējošanas bits, tiks iestatīts pārtraukuma karodziņš un tas tiks atcerēts, līdz pārtraukums ir iespējots vai karodziņš tiek notīrīts ar programmatūru. Līdzīgi, ja rodas viens vai vairāki pārtraukuma apstākļi, kamēr tiek notīrīts globālās pārtraukšanas iespējošanas bits, tiks iestatīts un saglabāts atbilstošais (-ie) pārtraukuma karodziņš (-i), līdz tiks iestatīts (-i) globālās pārtraukšanas iespējošanas bits, un pēc tam tie tiks izpildīti pēc prioritātes secības.
Otrā veida pārtraukumi tiks aktivizēti, kamēr būs pārtraukuma nosacījums. Šiem pārtraukumiem nav obligāti pārtraukuma karodziņu. Ja pārtraukuma nosacījums pazūd pirms pārtraukuma iespējošanas, pārtraukums netiks aktivizēts.
Kad AVR iziet no pārtraukuma, tas vienmēr atgriezīsies galvenajā programmā un izpildīs vēl vienu instrukciju pirms gaidīšanas pārtraukuma.
Ievērojiet, ka statusa reģistrs netiek automātiski saglabāts, ievadot pārtraukuma rutīnu, un netiek atjaunots, atgriežoties no pārtraukuma rutīnas. Tas jārisina programmatūrai.
Izmantojot CLI instrukciju, lai atspējotu pārtraukumus, pārtraukumi tiks nekavējoties atspējoti. Pārtraukums netiks izpildīts pēc CLI instrukcijas, pat ja tas notiek vienlaikus ar CLI instrukciju. Tālāk minample parāda, kā to var izmantot, lai izvairītos no pārtraukumiem EEPROM ierakstīšanas secības laikā.
Montāžas kods Piemample |
r16, SREG; saglabāt SREG vērtību
cli ; atspējot pārtraukumus noteiktas secības laikā sbi EECR, EEMPE ; sāciet EEPROM rakstīšanu sbi EECR, EEPE ārā SREG, r16 ; atjaunot SREG vērtību (I bits) |
C Kods Piemample |
char cSREG;
cSREG = SREG; /* saglabāt SREG vērtību */ /* atspējot pārtraukumus noteiktā secībā */ _CLI (); EECR |= (1< EEKR | = (1 < SREG = cSREG; /* atjaunot SREG vērtību (I-bit) */ |
Izmantojot SEI instrukciju, lai iespējotu pārtraukumus, instrukcija, kas seko SEI, tiks izpildīta pirms gaidāmajiem pārtraukumiem, kā parādīts šajā example.
Montāžas kods Piemample |
sei ; iestatiet Global Interrupt Enable
Gulēt; ieejiet miegā, gaidot pārtraukumu ; piezīme: ieslēgs miega režīmu pirms gaidīšanas ; pārtraukt (-s) |
C Kods Piemample |
_SEI(); /* iestatīt globālā pārtraukuma iespējotu */
_GULĒT(); /* ieiet miega režīmā, gaidot pārtraukumu */ / * piezīme: ieslēgs miega režīmu pirms gaidāma (-iem) pārtraukuma (-iem) |
Pārtraukt reakcijas laiku
Visu iespējoto AVR pārtraukumu pārtraukšanas izpildes atbilde ir vismaz četri pulksteņa cikli. Pēc četriem pulksteņu cikliem tiek izpildīta programmas Vector Vector adrese faktiskajai pārtraukumu apstrādes kārtībai. Šajā četru pulksteņu cikla periodā programmu skaitītājs tiek nospiests uz skursteņa. Vektors parasti ir lēciens uz pārtraukšanas rutīnu, un šim lēcienam nepieciešami trīs pulksteņa cikli. Ja daudzciklu instrukcijas izpildes laikā rodas pārtraukums, šī instrukcija tiek pabeigta pirms pārtraukuma izpildes. Ja pārtraukums notiek, kad MCU ir miega režīmā, pārtraukuma izpildes reakcijas laiks tiek palielināts par četriem pulksteņa cikliem. Šis pieaugums tiek papildināts ar sākuma laiku no izvēlētā miega režīma.
Atgriešanās no pārtraukuma apstrādes rutīnas prasa četrus pulksteņa ciklus. Šo četru pulksteņu ciklu laikā Programmas skaitītājs (divi baiti) tiek atkal atvērts no kaudzes, kaudzes rādītājs tiek palielināts par diviem un tiek iestatīts I bits SREG.
AVR atmiņas
Šajā sadaļā ir aprakstītas ATtiny25 / 45/85 dažādās atmiņas. AVR arhitektūrai ir divas galvenās atmiņas vietas - datu atmiņa un programmas atmiņas vieta. Turklāt datu glabāšanai ATtiny25 / 45/85 ir EEPROM atmiņa. Visas trīs atmiņas vietas ir lineāras un regulāras.
Sistēmā pārprogrammējama Flash programmas atmiņa
ATtiny25 / 45/85 satur 2/4 / 8K baitus mikroshēmas iekšējā sistēmā pārprogrammējamu zibatmiņu programmu glabāšanai. Tā kā visu AVR instrukciju platums ir 16 vai 32 biti, zibspuldze tiek organizēta kā 1024/2048/4096 x 16.
Zibatmiņas izturība ir vismaz 10,000 25 rakstīšanas / dzēšanas ciklu. Programmas skaitītājs ATtiny45 / 85/10 (PC) ir 11/12/1024 bitu plats, tādējādi pievēršoties programmas 2048/4096/XNUMX atmiņas vietām. “Atmiņas programma- ming ”147. lpp satur detalizētu aprakstu par Flash datu sērijveida lejupielādi, izmantojot SPI tapas.
Pastāvīgas tabulas var piešķirt visā programmas atmiņas adrešu telpā (skat. LPM - Programmas ielādes atmiņas instrukciju aprakstu).
Attēls 5-1. Programmas atmiņas karte
SRAM datu atmiņa
Attēls 5-2 parāda, kā tiek organizēta ATtiny25 / 45/85 SRAM atmiņa.
Apakšējās 224/352/607 datu atmiņas vietas adresē gan reģistru File, I/O atmiņa un iekšējie dati SRAM. Pirmās 32 vietas adresē reģistru File, nākamās 64 atrašanās vietas standarta I/O atmiņa un pēdējās 128/256/512 atrašanās vietas adresē iekšējos datus SRAM.
Pieci dažādi adresātu režīmi datu atmiņai: tieša, netieša ar pārvietojumu, netieša, netieša ar iepriekšēju samazināšanu un netieša ar palielinājumu. Reģistrā File, reģistros R26 līdz R31 ir netiešās adresēšanas rādītāju reģistri.
Tiešā adresēšana sasniedz visu datu telpu.
Režīms Netiešais ar pārvietošanu sasniedz 63 adrešu vietas no bāzes adreses, ko sniedz Y vai Z reģistrs.
Izmantojot reģistra netiešās adresēšanas režīmus ar automātisku priekšrādītāja samazināšanu un palielināšanu, adrešu reģistri X, Y un Z tiek samazināti vai palielināti.
32 vispārējie darba reģistri, 64 I/O reģistri un 128/256/512 baiti iekšējo datu SRAM ATtiny25/45/85 ir pieejami visos šajos adresēšanas režīmos. Reģistrs File ir aprakstīts “Ģen. mērķu reģistrs File”10. lpp.
Attēls 5-2. Datu atmiņas karte
Piekļuve datu atmiņai reizes
Šajā sadaļā ir aprakstīti vispārējie piekļuves laika jēdzieni piekļuvei iekšējai atmiņai. Piekļuve iekšējiem datiem SRAM tiek veikta divos clkCPU ciklos, kā aprakstīts Attēls 5-3.
Attēls 5-3. Mikroshēmas datu SRAM piekļuves cikli EEPROM datu atmiņa
ATtiny25 / 45/85 satur 128/256/512 baitus datu EEPROM atmiņas. Tas ir organizēts kā atsevišķa datu telpa, kurā var lasīt un rakstīt atsevišķus baitus. EEPROM izturība ir vismaz 100,000 XNUMX rakstīšanas / dzēšanas ciklu. Piekļuve starp EEPROM un CPU ir aprakstīta turpmāk, norādot EEPROM adrešu reģistrus, EEPROM datu reģistru un EEPROM vadības reģistru. Sīkāku informāciju skatīt “Sērijveida lejupielāde” 151. lpp.
EEPROM lasīšanas / rakstīšanas piekļuve
EEPROM piekļuves reģistri ir pieejami I / O telpā.
EEPROM rakstīšanas piekļuves laiks ir norādīts 5-1. Tabula 21. lpp. Tomēr automātiskā laika funkcija ļauj lietotāja programmatūrai noteikt, kad var ierakstīt nākamo baitu. Ja lietotāja kodā ir norādījumi, kas ieraksta EEPROM, ir jāveic daži piesardzības pasākumi. Spēcīgi filtrētos barošanas blokos VCC, visticamāk, paaugstināsies vai lēnām samazināsies
Ieslēgšana/izslēgšana. Tas liek ierīcei kādu laiku darboties ar tilpumutage ir zemāks par izmantoto pulksteņa frekvenci kā norādīts kā minimums. Skat “EEPROM korupcijas novēršana” 19. lpp informāciju par to, kā izvairīties no problēmām šajās situācijās.
Lai novērstu nejaušu EEPROM rakstīšanu, ir jāievēro īpaša rakstīšanas procedūra. Atsaukties uz “Atoms Baitu programmēšana ”17. lpp un “Sadalītā baita programmēšana” 17. lpp lai iegūtu sīkāku informāciju par to.
Kad tiek lasīts EEPROM, CPU tiek apturēts četrus pulksteņa ciklus, pirms tiek izpildīta nākamā instrukcija. Kad ir rakstīts EEPROM, CPU tiek apturēts uz diviem pulksteņa cikliem, pirms tiek izpildīta nākamā instrukcija.
Atomu baitu programmēšana
Atomic baitu programmēšana ir vienkāršākais režīms. Rakstot baitu EEPROM, lietotājam ir jāieraksta adrese EEAR reģistrā un dati EEDR reģistrā. Ja EEPMn biti ir nulle, EEPE rakstīšana (četru ciklu laikā pēc EEMPE uzrakstīšanas) izraisīs dzēšanas / rakstīšanas darbību. Gan dzēšanas, gan ierakstīšanas cikls tiek veikts vienā operācijā, un kopējais programmēšanas laiks ir norādīts 5-1. Tabula 21. lpp. EEPE bits paliek iestatīts, līdz dzēšanas un rakstīšanas darbības ir pabeigtas. Kamēr ierīce ir aizņemta ar programmēšanu, citas EEPROM darbības nav iespējams veikt.
Dalītā baita programmēšana
Dzēšanas un rakstīšanas ciklu ir iespējams sadalīt divās dažādās operācijās. Tas var būt noderīgi, ja sistēmai ir nepieciešams īss piekļuves laiks noteiktam laika periodam (parasti, ja barošanas avota apjomstage nokrīt). Lai gūtu labumu- tagIzmantojot šo metodi, pirms rakstīšanas operācijas ir jāizdzēš rakstāmās vietas. Bet, tā kā dzēšanas un rakstīšanas darbības ir sadalītas, ir iespējams veikt dzēšanas darbības, kad sistēma ļauj veikt laika kritiskās darbības (parasti pēc ieslēgšanas).
Dzēst
Lai izdzēstu baitu, adrese jāuzraksta EEAR. Ja EEPMn biti ir 0b01, rakstot EEPE (četru ciklu laikā pēc EEMPE rakstīšanas), tiks aktivizēta tikai dzēšanas darbība (programmēšanas laiks ir norādīts 5-1. Tabula 21. lpp). EEPE bits paliek iestatīts, līdz dzēšanas darbība ir pabeigta. Kamēr ierīce ir aizņemta ar programmēšanu, citas EEPROM darbības nav iespējams veikt.
Rakstiet
Lai ierakstītu atrašanās vietu, lietotājam ir jāieraksta adrese EEAR un dati - EEDR. Ja EEPMn biti ir 0b10, rakstot EEPE (četru ciklu laikā pēc EEMPE uzrakstīšanas), tiks aktivizēta tikai rakstīšanas darbība (programmēšanas laiks ir norādīts 5-1. Tabula 21. lpp). EEPE bits paliek iestatīts, līdz rakstīšanas darbība ir pabeigta. Ja ierakstāmā vieta pirms rakstīšanas nav izdzēsta, saglabātie dati jāuzskata par zaudētiem. Kamēr ierīce ir aizņemta ar programmēšanu, citas EEPROM darbības nav iespējams veikt.
Kalibrētais oscilators tiek izmantots EEPROM piekļuves laika noteikšanai. Pārliecinieties, ka oscilatora frekvence atbilst prasībām, kas aprakstītas “OSCCAL - oscilatoru kalibrēšanas reģistrs” 31. lpp.
Šāds kods, piemamples parāda vienu montāžu un vienu C funkciju EEPROM dzēšanai, rakstīšanai vai atomu ierakstīšanai. BijušaisampTiek pieņemts, ka pārtraukumi tiek kontrolēti (piemēram, globāli atspējojot pārtraukumus), lai šo funkciju izpildes laikā netiktu pārtraukumi.
Montāžas kods Piemample |
EEPROM_write:
; Pagaidiet, līdz pabeigta iepriekšējā rakstīšana sbic EECR,EEPE rjmp EEPROM_write ; Iestatiet programmēšanas režīmu ldi r16, (0<<EEPM1)|(0<<EEPM0) out EECR, r16 ; Iestatiet adresi (r18: r17) adrešu reģistrā out EEARH, r18 out EEARL, r17 ; Rakstiet datus (r19) datu reģistrā out EEDR, r19 ; Uzrakstiet loģisku EEMPE sbi EECR, EEMPE ; Sāciet eeprom rakstīšanu, iestatot EEPE sbi EECR,EEPE ret |
C Kods Piemample |
void EEPROM_write(neparakstīta char ucAddress, neparakstīta char ucData)
{ /* Pagaidiet, līdz tiek pabeigta iepriekšējā rakstīšana */ while(EECR & (1< ; /* Iestatīt programmēšanas režīmu */ EEKR = (0 < / * Izveidot adrešu un datu reģistrus * / EEAR = ucAddress; EEDR = ucData; /* Uzrakstiet loģisku EEMPE */ EEKR | = (1 < / * Sāciet eeprom rakstīšanu, iestatot EEPE * / EEKR | = (1 < } |
Nākamais kods, piemamples parāda montāžas un C funkcijas EEPROM lasīšanai. BijušaisampTiek pieņemts, ka pārtraukumi tiek kontrolēti tā, lai šo funkciju izpildes laikā netiktu novēroti pārtraukumi.
Montāžas kods Piemample |
EEPROM_lasīt:
; Pagaidiet, līdz pabeigta iepriekšējā rakstīšana sbic EECR,EEPE rjmp EEPROM_lasīts ; Iestatiet adresi (r18: r17) adrešu reģistrā out EEARH, r18 out EEARL, r17 ; Sāciet lasīt eeprom, rakstot EERE sbi EECR,EERE ; Lasīt datus no datu reģistra r16,EEDR ret |
C Kods Piemample |
unsigned char EEPROM_read(neparakstīta char ucAddress)
{ / * Pagaidiet, līdz pabeigta iepriekšējā rakstīšana * / kamēr (EECR & (1 < ; / * Izveidot adrešu reģistru * / EEAR = ucAddress; /* Sāciet eeprom lasīšanu, rakstot EERE */ EEKR | = (1 < / * Atgriezt datus no datu reģistra * / atgriezt EEDR; } |
EEPROM korupcijas novēršana
Zema VCC periodos EEPROM dati var tikt bojāti, jo piegādes apjomstage ir pārāk zems, lai CPU un EEPROM darbotos pareizi. Šīs problēmas ir tādas pašas kā valdes līmeņa sistēmām, kurās tiek izmantota EEPROM, un jāpiemēro tie paši dizaina risinājumi.
EEPROM datu bojājumus var izraisīt divas situācijas, kad sējtage ir pārāk zems. Pirmkārt, regulārai EEPROM rakstīšanas secībai ir nepieciešams minimālais tilpumstage, lai pareizi darbotos. Otrkārt, pats CPU var nepareizi izpildīt norādījumus, ja piegādes apjomstage ir pārāk zems.
EEPROM datu korupciju var viegli novērst, ievērojot šo dizaina ieteikumu:
Turiet AVR RESET aktīvu (zemu) periodos, kad nav pietiekami daudz barošanas avotatage. To var izdarīt, iespējojot iekšējo Brown-out detektoru (BOD). Ja iekšējā BOD noteikšanas līmenis neatbilst
nepieciešamo noteikšanas līmeni, var izmantot ārēju zemu VCC atiestatīšanas aizsardzības ķēdi. Ja rakstīšanas darbības laikā notiek atiestatīšana, rakstīšanas darbība tiks pabeigta ar nosacījumu, ka barošanas avota tilptage ir pietiekams.
I / O atmiņa
ATtiny25 / 45/85 I / O telpas definīcija ir parādīta “Reģistrācijas kopsavilkums” 200. lpp.
Visas ATtiny25 / 45/85 I / O un perifērijas ierīces tiek ievietotas I / O telpā. Visām I / O vietām var piekļūt ar LD / LDS / LDD un ST / STS / STD instrukcijām, pārsūtot datus starp 32 vispārējas nozīmes darba reģistriem un I / O telpu. I / O reģistri adrešu diapazonā 0x00 - 0x1F ir tieši pieejami bitiem, izmantojot SBI un CBI instrukcijas. Šajos reģistros atsevišķu bitu vērtību var pārbaudīt, izmantojot SBIS un SBIC instrukcijas. Plašāku informāciju skatiet instrukciju kopas sadaļā. Izmantojot I / O īpašās komandas IN un OUT, jāizmanto I / O adreses 0x00 - 0x3F. Risinot I / O reģistrus kā datu telpu, izmantojot LD un ST instrukcijas, šīm adresēm jāpievieno 0x20.
Lai nodrošinātu saderību ar nākotnes ierīcēm, rezervētie biti, ja tiem ir piekļuve, būtu jānorāda uz nulli. Nekad nevajadzētu rakstīt rezervētās I / O atmiņas adreses.
Daži no statusa karodziņiem tiek notīrīti, uzrakstot tiem loģisku. Ņemiet vērā, ka CBI un SBI instrukcijas darbosies tikai ar norādīto bitu, un tāpēc tās var izmantot reģistros, kas satur šādus statusa karodziņus. CBI un SBI instrukcijas darbojas tikai ar reģistriem no 0x00 līdz 0x1F.
I / O un perifērijas ierīču kontroles reģistri ir paskaidroti nākamajās sadaļās.
Reģistrācijas apraksts
EEARH - EEPROM adrešu reģistrs
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1F | – | – | – | – | – | – | – | EARAR8 | AIZSARGS |
Lasīt/rakstīt | R | R | R | R | R | R | R | R/W | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
Biti 7: 1 - Res: rezervētie biti
Šie biti ir rezervēti izmantošanai nākotnē un vienmēr tiks nolasīti kā nulle.
Biti 0 - EEAR8: EEPROM adrese
Šis ir nozīmīgākais EEPROM adreses bits ATtiny85. Ierīcēs ar mazāk EEPROM, ti, ATtiny25 / ATtiny45, šis bits ir rezervēts un vienmēr nolasīs nulli. EEPROM adrešu reģistra (EEAR) sākotnējā vērtība nav definēta, un tāpēc pirms piekļuves EEPROM ir jāuzraksta pareiza vērtība.
EEARL - EEPROM adrešu reģistrs
Mazliet
0x1E | EARAR7 | EARAR6 | EARAR5 | EARAR4 | EARAR3 | EARAR2 | EARAR1 | EARAR0 | EEARL |
Aizmugure / rakstīšana | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Sākotnējā vērtība | X | X | X | X | X | X | X | X |
7. bits - EEAR7: EEPROM adrese
Šis ir nozīmīgākais EEPROM adreses bits ATtiny45. Ierīcēs ar mazāk EEPROM, ti, ATtiny25, šis bits ir rezervēts un vienmēr nolasīs nulli. EEPROM adrešu reģistra (EEAR) sākotnējā vērtība nav definēta, un tāpēc pirms piekļuves EEPROM ir jāuzraksta pareiza vērtība.
Biti 6: 0 - EEAR [6: 0]: EEPROM adrese
Tie ir (zemie) EEPROM adrešu reģistra biti. EEPROM datu baiti tiek adresēti lineāri diapazonā no 0… (128/256 / 512-1). Sākotnējā EEAR vērtība nav noteikta, un tāpēc, lai varētu piekļūt EEPROM, ir jāuzraksta pareiza vērtība.
EEDR - EEPROM datu reģistrs
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | EEDR7 | EEDR6 | EEDR5 | EEDR4 | EEDR3 | EEDR2 | EEDR1 | EEDR0 | EEDR |
Lasīt/rakstīt | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
EEPROM rakstīšanas operācijai EEDR reģistrā ir dati, kas rakstāmi EEPROM uz EARA reģistra norādīto adresi. EEPROM lasīšanas operācijai EEDR satur datus, kas nolasīti no
EEPROM EĀDD norādītajā adresē.
5.5.4. EECR - EEPROM kontroles reģistrs |
|||||||||
Bits 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0x1C – | – | EEPM1 | EEPM0 | DAUDZĪGI | EEMPE | EEPE | EERE | EEKR | |
Lasīt / rakstīt R R R / W | R/W | R/W | R/W | R/W | R/W | ||||
Sākotnējā vērtība 0 0 X | X | 0 | 0 | X | 0 |
Bits 7 - Res: rezervēts bits
Šis bits ir rezervēts izmantošanai nākotnē, un tas vienmēr būs 0 kā ATtiny25 / 45/85. Lai nodrošinātu saderību ar nākotnes AVR ierīcēm, vienmēr ierakstiet šo bitu līdz nullei. Pēc izlasīšanas maskējiet šo mazliet.
Bits 6 - Res: rezervēts bits
Šis bits ir rezervēts ATtiny25 / 45/85 un vienmēr tiks nolasīts kā nulle.
Biti 5: 4 - EEPM [1: 0]: EEPROM programmēšanas režīma biti
EEPROM programmēšanas režīma bitu iestatījums nosaka, kura programmēšanas darbība tiks aktivizēta, rakstot EEPE. Ir iespējams datus ieprogrammēt vienā atomu operācijā (izdzēst veco vērtību un ieprogrammēt jauno vērtību) vai sadalīt operācijas Dzēst un Rakstīt divās dažādās operācijās. Dažādu režīmu programmēšanas laiki ir parādīti 5-1 tabula. Kamēr EEPE ir iestatīta, jebkura rakstīšana EEPMn tiks ignorēta. Atiestatīšanas laikā EEPMn biti tiks atiestatīti uz 0b00, ja vien EEPROM nav aizņemts ar programmēšanu.
Tabula 5-1. EEPROM režīma biti
EEPM1 | EEPM0 | Programmēšanas laiks | Darbība |
0 | 0 | 3.4 ms | Dzēst un rakstīt vienā operācijā (Atomic Operation) |
0 | 1 | 1.8 ms | Tikai dzēst |
1 | 0 | 1.8 ms | Tikai rakstīt |
1 | 1 | – | Rezervēts turpmākai lietošanai |
3. bits - EERIE: EEPROM Ready Interrupt Enable
EERIE rakstīšana uz vienu ļauj EEPROM Ready pārtraukt, ja SREG ir iestatīts I bits. Rakstot EERIE uz nulli, displejs tiek pārtraukts. EEPROM Ready Interrupt ģenerē pastāvīgu pārtraukumu, kad negaistošā atmiņa ir gatava programmēšanai.
2. bits - EEMPE: EEPROM maģistra programma iespējota
EEMPE bits nosaka, vai EEPE rakstīšana vienam būs efektīva.
Kad EEMPE ir iestatīts, iestatot EEPE četru pulksteņu ciklu laikā, EEPROM tiks ieprogrammēts izvēlētajā adresē. Ja EEMPE ir nulle, EEPE iestatīšana neietekmēs. Kad programmatūra ir ierakstījusi EEMPE, aparatūra pēc četriem pulksteņa cikliem notīra bitu līdz nullei.
1. bits - EEPE: EEPROM programma iespējota
EEPROM programmas iespējošanas signāls EEPE ir programmēšanas iespējošanas signāls EEPROM. Kad ir rakstīts EEPE, EEPROM tiks ieprogrammēts atbilstoši EEPMn bitu iestatījumam. EEMPE bits ir jāuzraksta vienam, pirms loģiskais tiek rakstīts EEPE, pretējā gadījumā EEPROM rakstīšana nenotiek. Kad ir beidzies rakstīšanas piekļuves laiks, aparatūra notīra EEPE bitu. Kad ir iestatīta EEPE, pirms nākamās instrukcijas izpildes CPU tiek apturēts uz diviem cikliem.
0 bits - EERE: EEPROM lasīšanas iespējošana
EEPROM lasīšanas iespējošanas signāls - EERE - ir EEPROM lasīšanas strobe. Kad EEAR reģistrā ir iestatīta pareizā adrese, EERE bits ir jāuzraksta uz vienu, lai aktivizētu EEPROM lasīšanu. EEPROM lasīšanas piekļuve prasa vienu instrukciju, un pieprasītie dati ir pieejami uzreiz. Kad tiek lasīts EEPROM, CPU tiek apturēts četrus ciklus, pirms tiek izpildīta nākamā instrukcija. Pirms lasīšanas darbības sākšanas lietotājam jāaptaujā EEPE bits. Ja notiek rakstīšanas darbība, nav iespējams nolasīt EEPROM vai mainīt EARR reģistru.
Sistēmas pulkstenis un pulksteņa opcijas
Pulksteņu sistēmas un to izplatīšana
Procesora pulkstenis
CPU pulkstenis tiek novirzīts uz sistēmas daļām, kas saistītas ar AVR kodola darbību. PiemampŠādi moduļi ir Vispārējo mērķu reģistrs File, statusa reģistram un datu atmiņai, kurā atrodas kaudzes rādītājs. CPU pulksteņa apturēšana neļauj kodolam veikt vispārīgas darbības un aprēķinus.
I / O pulkstenis - clkI / O
Ieejas / izejas pulksteni izmanto lielākā daļa I / O moduļu, piemēram, Taimeris / Skaitītājs. Ieejas / izejas pulksteni izmanto arī ārējā pārtraukuma modulis, taču ņemiet vērā, ka dažus ārējos traucējumus nosaka asinhronā loģika, ļaujot šādus pārtraukumus atklāt pat tad, ja I / O pulkstenis ir apturēts.
Zibspuldzes pulkstenis - clkFLASH
Flash pulkstenis kontrolē Flash saskarnes darbību. Flash pulkstenis parasti ir aktīvs vienlaikus ar CPU pulksteni.
ADC pulkstenis - clkADC
ADC ir nodrošināts ar īpašu pulksteņa domēnu. Tas ļauj apturēt CPU un I / O pulksteņus, lai samazinātu digitālo shēmu radīto troksni. Tas dod precīzākus ADC pārveidošanas rezultātus.
Iekšējais PLL ātrai perifēro pulksteņu ģenerēšanai - clkPCK
Iekšējais PLL, kas atrodas ATtiny25 / 45/85, ģenerē pulksteņa frekvenci, kas ir 8x reizināta no avota ieejas. Pēc noklusējuma PLL kā avotu izmanto iekšējā 8.0 MHz RC oscilatora izeju. Alternatīvi, ja ir iestatīts PLLCSR bits LSM, PLL izmantos RC oscilatora izeju, dalot ar diviem. Tādējādi PLL, ātrās perifērijas pulksteņa izeja ir 64 MHz. Ātro perifēro pulksteni vai no tā eskalcētu pulksteni var izvēlēties kā taimera / skaitītāja1 pulksteņa avotu vai kā sistēmas pulksteni. Skat Attēls 6-2. Ātrā perifērijas pulksteņa frekvence tiek dalīta ar divi, kad ir iestatīts PLLCSR LSM, kā rezultātā pulksteņa frekvence ir 32 MHz. Ņemiet vērā, ka LSM nevar iestatīt, ja PLLCLK tiek izmantots kā sistēmas pulkstenis.
Attēls 6-2. PCK pulksteņu sistēma.
PLL ir bloķēts RC oscilatorā, un, pielāgojot RC oscilatoru, izmantojot OSCCAL reģistru, vienlaikus tiks pielāgots ātrās perifērijas pulkstenis. Tomēr pat tad, ja RC oscilatoru pārraida uz augstāku frekvenci nekā 8 MHz, ātrā perifērijas pulksteņa frekvence piesātinās pie 85 MHz (sliktākajā gadījumā) un paliek svārstīga pie maksimālās frekvences. Jāatzīmē, ka PLL šajā gadījumā vairs netiek bloķēts ar RC oscilatora pulksteni. Tāpēc, lai saglabātu PLL pareizajā darbības diapazonā, OSCCAL korekcijas nav ieteicams veikt augstākā frekvencē par 8 MHz.
Iekšējais PLL tiek iespējots, ja:
PLLE bits reģistrā PLLCSR ir iestatīts.
CKSEL drošinātājs ir ieprogrammēts uz '0001'.
CKSEL drošinātājs ir ieprogrammēts uz '0011'.
PLLCSR bits PLOCK tiek iestatīts, kad PLL ir bloķēts. Gan iekšējais RC oscilators, gan PLL tiek izslēgti izslēgšanas un gaidīšanas miega režīmā.
Iekšējais PLL ATtiny15 saderības režīmā
Tā kā ATtiny25 / 45/85 ir migrācijas ierīce ATtiny15 lietotājiem, aizmugures saderībai ir pieejams ATtiny15 saderības režīms. ATtiny15 saderības režīms tiek izvēlēts, programmējot CKSEL drošinātājus uz “0011”.
Saderības režīmā ATtiny15 iekšējā RC oscilatora frekvence tiek kalibrēta līdz 6.4 MHz, un PLL reizināšanas koeficients ir iestatīts uz 4x. Skat Attēls 6-3. Veicot šos pielāgojumus, pulksteņa rādītāju sistēma ir saderīga ar ATtiny15, un iegūtā ātrā perifērā pulksteņa frekvence ir 25.6 MHz (tāda pati kā ATtiny15).
Attēls 6-3. PCK pulksteņa sistēma ATtiny15 saderības režīmā.
Pulksteņa avoti
Ierīcei ir šādas pulksteņa avota iespējas, kuras var izvēlēties ar Flash Fuse bitiem, kā parādīts zemāk. Pulkstenis no izvēlētā avota tiek ievadīts AVR pulksteņa ģeneratorā un tiek virzīts uz atbilstošajiem moduļiem.
6-1 tabula. Ierīces pulksteņa opcijas Izvēlieties
Ierīces pulksteņa opcija | CKSEL[3:0](1) |
Ārējais pulkstenis (skat 26. lpp) | 0000 |
Augstas frekvences PLL pulkstenis (skat 26. lpp) | 0001 |
Kalibrēts iekšējais oscilators (skat 27. lpp) | 0010(2) |
Kalibrēts iekšējais oscilators (skat 27. lpp) | 0011(3) |
Iekšējais 128 kHz oscilators (skat 28. lpp) | 0100 |
Zemas frekvences kristāla oscilators (skat 29. lpp) | 0110 |
Kristāla oscilators / keramikas rezonators (skat 29. lpp) | 1000-1111 |
Rezervēts | 0101, 0111 |
Visiem drošinātājiem “1” nozīmē neprogrammētu, bet “0” - ieprogrammētu.
Ierīce tiek piegādāta, atlasot šo opciju.
Tas izvēlēsies ATtiny15 savietojamības režīmu, kur sistēmas pulkstenis tiek dalīts ar četriem, kā rezultātā tiks sasniegta 1.6 MHz pulksteņa frekvence. Plašāku inormāciju skatiet “Kalibrēts iekšējais oscilators” 27. lpp.
Dažādas izvēles iespējas katrai pulksteņa opcijai ir norādītas nākamajās sadaļās. Kad CPU pamostas no izslēgšanas, izvēlētais pulksteņa avots tiek izmantots startēšanas laika noteikšanai, nodrošinot stabilu oscilatora darbību pirms instrukciju izpildes sākuma. Kad CPU sākas no atiestatīšanas, rodas papildu aizkave, kas ļauj jaudai sasniegt stabilu līmeni pirms normālas darbības uzsākšanas. Watchdog oscilators tiek izmantots šīs reālā laika sākuma laika noteikšanai. Katrā taimautā izmantoto WDT oscilatoru ciklu skaits ir parādīts 6-2 tabula.
6-2 tabula. Watchdog oscilatora ciklu skaits
Ierakstīt taimautu | Ciklu skaits |
4 ms | 512 |
64 ms | 8 K (8,192) |
Ārējais pulkstenis
Lai vadītu ierīci no ārēja pulksteņa avota, CLKI jādarbina, kā parādīts Attēls 6-4. Lai ierīci darbinātu ar ārēju pulksteni, CKSEL drošinātājiem jābūt ieprogrammētiem uz “00”.
Attēls 6-4. Ārējā pulksteņa piedziņas konfigurācija
Kad ir izvēlēts šis pulksteņa avots, palaišanas laiku nosaka SUT drošinātāji, kā parādīts 6-3 tabula.
6-3 tabula. Iedarbināšanas laiki ārējā pulksteņa izvēlei
SUT[1:0] | Sākuma laiks no izslēgšanas | Papildu aizkave no atiestatīšanas | Ieteicamā lietošana |
00 | 6 CK | 14CK | BOD iespējots |
01 | 6 CK | 14CK + 4 ms | Strauji augoša jauda |
10 | 6 CK | 14CK + 64 ms | Lēnām augoša jauda |
11 | Rezervēts |
Lietojot ārējo pulksteni, ir jāizvairās no pēkšņām piemērotā pulksteņa frekvences izmaiņām, lai nodrošinātu stabilu MCU darbību. Biežuma svārstības, kas pārsniedz 2% no viena pulksteņa cikla uz nākamo, var izraisīt neparedzamu uzvedību. Šādu pulksteņa frekvences izmaiņu laikā ir jānodrošina, ka MCU tiek saglabāts Reset.
Ņemiet vērā, ka System Clock Presale var izmantot, lai ieviestu iekšējā pulksteņa frekvences izpildes laika izmaiņas, vienlaikus nodrošinot stabilu darbību. Atsaukties uz “System Clock Prescaler” 31. lpp sīkākai informācijai.
Augstas frekvences PLL pulkstenis
Ir iekšējs PLL, kas nomināli nodrošina 64 MHz takts frekvenci, kas ir bloķēta RC oscilatoram, lai izmantotu perifēro taimeri / skaitītāju1 un sistēmas pulksteņa avotu. Atlasot kā sistēmas pulksteņa avotu, programmējot CKSEL drošinātājus uz '0001', tas tiek dalīts ar četriem, kā parādīts 6-4 tabula.
6-4 tabula. Augstas frekvences PLL pulksteņa darbības režīmi
CKSEL[3:0] | Nominālais frekvence |
0001 | 16 MHz |
Kad ir izvēlēts šis pulksteņa avots, palaišanas laiku nosaka SUT drošinātāji, kā parādīts 6-5 tabula.
6-5 tabula. Augstas frekvences PLL pulksteņa palaišanas laiki
SUT[1:0] | Sākuma laiks no izslēgšanas | Papildu aizkave no ieslēgšanas atiestatīšanas (VCC = 5.0 V) | Ieteicamais lietojums |
00 | 14KK + 1K (1024) CK + 4 ms | 4 ms | BOD iespējots |
6-5 tabula. Augstas frekvences PLL pulksteņa palaišanas laiki
SUT[1:0] | Sākuma laiks no izslēgšanas | Papildu aizkave no ieslēgšanas atiestatīšanas (VCC = 5.0 V) | Ieteicamais lietojums |
01 | 14KK + 16K (16384) CK + 4 ms | 4 ms | Strauji augoša jauda |
10 | 14KK + 1K (1024) CK + 64 ms | 4 ms | Lēnām augoša jauda |
11 | 14KK + 16K (16384) CK + 64 ms | 4 ms | Lēnām augoša jauda |
Kalibrēts iekšējais oscilators
Pēc noklusējuma iekšējais RC oscilators nodrošina aptuveni 8.0 MHz pulksteni. Lai gan sējtage un atkarībā no temperatūras, šo pulksteni lietotājs var ļoti precīzi kalibrēt. Skat “Kalibrēts iekšējais RC oscilatoru akumulators racy ”164. lpp un “Iekšējā oscilatora ātrums” 192. lpp lai iegūtu sīkāku informāciju. Ierīce tiek piegādāta ar ieprogrammētu drošinātāju CKDIV8. Skat “System Clock Prescaler” 31. lpp lai iegūtu sīkāku informāciju.
Šo pulksteni var izvēlēties kā sistēmas pulksteni, programmējot CKSEL drošinātājus, kā parādīts 6-6. Tabula lappusē
27. Ja tas ir atlasīts, tas darbosies bez ārējiem komponentiem. Atiestatīšanas laikā aparatūra ielādē iepriekš ieprogrammēto kalibrēšanas vērtību OSCCAL reģistrā un tādējādi automātiski kalibrē RC oscilatoru. Šīs kalibrēšanas precizitāte tiek parādīta kā rūpnīcas kalibrēšana 21-2. Tabula 164. lpp.
Mainot OSCCAL reģistru no SW, skat “OSCCAL - oscilatoru kalibrēšanas reģistrs” 31. lpp, ir iespējams iegūt lielāku kalibrēšanas precizitāti nekā izmantojot rūpnīcas kalibrēšanu. Šīs kalibrēšanas precizitāte tiek parādīta kā lietotāja kalibrēšana 21-2. Tabula 164. lpp.
Ja šo oscilatoru izmanto kā mikroshēmas pulksteni, sargsuņa oscilatoru joprojām izmantos sargsuns taimerim un atiestatīšanas taimautam. Plašāku informāciju par iepriekš ieprogrammēto kalibrēšanas vērtību skatiet sadaļā “Kali- bration Bytes ”150. lpp.
Iekšējo oscilatoru var iestatīt arī tā, lai nodrošinātu 6.4 MHz pulksteni, ierakstot CKSEL drošinātājus uz “0011”, kā parādīts 6-6 tabula zemāk. Šis iestatījums tiek norādīts kā ATtiny15 saderības režīms, un tas ir paredzēts, lai nodrošinātu kalibrētu pulksteņa avotu 6.4 MHz frekvencē, tāpat kā ATtiny15. ATtiny15 saderības režīmā PLL izmanto iekšējo oscilatoru, kas darbojas ar ātrumu 6.4 MHz, lai ģenerētu 25.6 MHz perifēro pulksteņa signālu taimerim / skaitītājam1 (sk. “8 bitu taimeris / skaitītājs1 collas ATtiny15 režīms ”95. lpp). Ņemiet vērā, ka šajā darbības režīmā 6.4 MHz pulksteņa signāls vienmēr tiek dalīts ar četriem, nodrošinot 1.6 MHz sistēmas pulksteni.
6-6 tabula. Iekšējie kalibrētie RC oscilatora darbības režīmi
CKSEL[3:0] | Nominālais frekvence |
0010(1) | 8.0 MHz |
0011(2) | 6.4 MHz |
Ierīce tiek piegādāta, atlasot šo opciju.
Šis iestatījums atlasīs saderības režīmu ATtiny15, kur sistēmas pulkstenis tiek dalīts ar četriem, kā rezultātā tiks sasniegta 1.6 MHz takts frekvence.
Kad kalibrētais 8 MHz iekšējais oscilators ir izvēlēts kā pulksteņa avots, palaišanas laiku nosaka SUT drošinātāji, kā parādīts 6-7 tabula zemāk.
6-7 tabula. Iekšējā kalibrētā RC oscilatora pulksteņa palaišanas laiki
SUT[1:0] | Sākuma laiks no izslēgšanas | Papildu aizkave no atiestatīšanas (VCC = 5.0 V) | Ieteicamā lietošana |
00 | 6 CK | 14CK(1) | BOD iespējots |
01 | 6 CK | 14CK + 4 ms | Strauji augoša jauda |
10(2) | 6 CK | 14CK + 64 ms | Lēnām augoša jauda |
11 | Rezervēts |
1. Ja ir ieprogrammēts drošinātājs RSTDISBL, šis palaišanas laiks tiek palielināts līdz 14CK + 4 ms, lai nodrošinātu programmēšanas režīma ievadīšanu.
2. Ierīce tiek piegādāta, atlasot šo opciju.
ATtiny15 saderības režīmā palaišanas laiku nosaka SUT drošinātāji, kā parādīts 6-8 tabula zemāk.
6-8 tabula. Iekšējā kalibrētā RC oscilatora pulksteņa palaišanas laiki (ATtiny15 režīmā)
SUT[1:0] | Sākuma laiks no izslēgšanas | Papildu aizkave no atiestatīšanas (VCC = 5.0 V) | Ieteicamā lietošana |
00 | 6 CK | 14CK + 64 ms | |
01 | 6 CK | 14CK + 64 ms | |
10 | 6 CK | 14CK + 4 ms | |
11 | 1 CK | 14CK(1) |
Piezīme: Ja RSTDISBL drošinātājs ir ieprogrammēts, šis palaišanas laiks tiks palielināts līdz 14CK + 4 ms, lai nodrošinātu programmēšanas režīma ievadīšanu.
Kopumā vairāk informācijas par ATtiny15 saderības režīmu var atrast sadaļās Ieslēgts “B ports (PB5: PB0)” 2. lpp, “Iekšējā PLL ATtiny15 saderības režīmā” 24. lpp, Ieslēgts “8 bitu taimeris / skaitītājs1 režīmā ATtiny15” 95. lpp, “DebugWIRE ierobežojumi” 140. lpp, “Kalibrēšanas baiti” 150. lpp un tabulā “Pulksteņa preskaleris Atlasīt ”33. lpp.
Iekšējais 128 kHz oscilators
128 kHz iekšējais oscilators ir mazjaudas oscilators, kas nodrošina 128 kHz takts frekvenci. Frekvence ir nominālā pie 3V un 25°C. Šo pulksteni var izvēlēties kā sistēmas pulksteni, ieprogrammējot CKSEL drošinātājus uz “0100”.
Kad ir izvēlēts šis pulksteņa avots, palaišanas laiku nosaka SUT drošinātāji, kā parādīts 6-9 tabula.
6-9 tabula. 128 kHz iekšējā oscilatora palaišanas laiki
SUT[1:0] | Sākuma laiks no izslēgšanas | Papildu aizkave no atiestatīšanas | Ieteicamā lietošana |
00 | 6 CK | 14CK(1) | BOD iespējots |
01 | 6 CK | 14CK + 4 ms | Strauji augoša jauda |
10 | 6 CK | 14CK + 64 ms | Lēnām augoša jauda |
11 | Rezervēts |
Piezīme: Ja RSTDISBL drošinātājs ir ieprogrammēts, šis palaišanas laiks tiks palielināts līdz 14CK + 4 ms, lai nodrošinātu programmēšanas režīma ievadīšanu.
Zemas frekvences kristāla oscilators
Lai izmantotu 32.768 kHz pulksteņa kristālu kā ierīces pulksteņa avotu, jāizvēlas zemfrekvences kristāla oscilators, iestatot CKSEL drošinātājus stāvoklī “0110”. Kristālam jābūt savienotam, kā parādīts Attēls 6-5. Lai atrastu piemērotu slodzes kapacitāti 32.768 kHz krizālam, lūdzu, skatiet ražotāja datu lapu.
Kad šis oscilators ir izvēlēts, palaišanas laiku nosaka SUT drošinātāji, kā parādīts 6-10 tabula.
6-10 tabula. Palaišanas laiki zemfrekvences kristāla oscilatora pulksteņa izvēlei
SUT[1:0] | Sākuma laiks no izslēgšanas | Papildu aizkave no atiestatīšanas (VCC = 5.0 V) | Ieteicamais lietojums |
00 | 1K (1024) CK(1) | 4 ms | Ātri pieaugoša jauda vai BOD iespējota |
01 | 1K (1024) CK(1) | 64 ms | Lēnām augoša jauda |
10 | 32K (32768) CK | 64 ms | Stabila frekvence starta laikā |
11 | Rezervēts |
Piezīme. Šīs opcijas jāizmanto tikai tad, ja frekvences stabilitāte palaišanas laikā nav svarīga.
Zemfrekvences kristāla oscilators nodrošina iekšējo slodzes kapacitāti, sk 6-11 tabula pie katras TOSC tapas.
6-11 tabula. Zemfrekvences kristāla oscilatora kapacitāte
Ierīce | 32 kHz osc. Tips | Vāciņš (Xtal1 / Tosc1) | Vāciņš (Xtal2 / Tosc2) |
ATtiny25 / 45/85 | Sistēma Osc. | 16 pF | 6 pF |
Kristāla oscilators / keramikas rezonators
XTAL1 un XTAL2 ir attiecīgi apgrieztā ieeja un izeja amplifier, ko var konfigurēt lietošanai kā mikroshēmas oscilatoru, kā parādīts Attēls 6-5. Var izmantot vai nu kvarca kristālu, vai keramisko rezonatoru.
C1 un C2 vienmēr jābūt vienādiem gan kristāliem, gan rezonatoriem. Kondensatoru optimālā vērtība ir atkarīga no izmantotā kristāla vai rezonatora, izkliedētās kapacitātes daudzuma un vides elektromagnētiskā trokšņa. Ir sniegti daži sākotnējie norādījumi kondensatoru izvēlei lietošanai ar kristāliem 6-12 tabula zemāk. Keramiskajiem rezonatoriem jāizmanto ražotāja norādītās kondensatora vērtības.
6-12 tabula. Kristāla oscilatoru darbības režīmi
CKSEL[3:1] | Frekvenču diapazons (MHz) | C1 un C2 kondensatoru ieteicamais diapazons lietošanai ar kristāliem (pF) |
100(1) | 0.4-0.9 | – |
101 | 0.9-3.0 | 12-22 |
110 | 3.0-8.0 | 12-22 |
111 | 8.0 XNUMX – | 12-22 |
Piezīmes: Šo opciju nevajadzētu izmantot ar kristāliem, tikai ar keramikas rezonatoriem.
Oscilators var darboties trīs dažādos režīmos, katrs optimizēts noteiktam frekvenču diapazonam. Darba režīmu izvēlas drošinātāji CKSEL [3: 1], kā parādīts 6-12 tabula.
CKSEL0 drošinātājs kopā ar SUT [1: 0] drošinātājiem izvēlas palaišanas laiku, kā parādīts attēlā 6-13 tabula.
6-13 tabula. Palaišanas laiki kristāla oscilatora pulksteņa izvēlei
CKSEL0 | SUT[1:0] | Sākuma laiks no izslēgšanas | Papildu aizkave no atiestatīšanas | Ieteicamā lietošana |
0 | 00 | 258 CK(1) | 14CK + 4 ms | Keramikas rezonators, strauji augoša jauda |
0 | 01 | 258 CK(1) | 14CK + 64 ms | Keramikas rezonators, lēnām augoša jauda |
0 | 10 | 1K (1024) CK(2) | 14CK | Keramikas rezonators, iespējots BOD |
0 | 11 | 1K (1024) CK(2) | 14CK + 4 ms | Keramikas rezonators, strauji augoša jauda |
1 | 00 | 1K (1024) CK(2) | 14CK + 64 ms | Keramikas rezonators, lēnām augoša jauda |
1 | 01 | 16K (16384) CK | 14CK | Kristāla oscilators, iespējots BOD |
1 | 10 | 16K (16384) CK | 14CK + 4 ms | Kristāla oscilators, strauji augoša jauda |
1 | 11 | 16K (16384) CK | 14CK + 64 ms | Kristāla oscilators, lēnām augoša jauda |
Piezīmes
Šīs opcijas jāizmanto tikai tad, ja tās nedarbojas tuvu ierīces maksimālajai frekvencei, un tikai tad, ja frekvences stabilitāte palaišanas laikā lietojumprogrammai nav svarīga. Šīs iespējas nav piemērotas kristāliem.
Šīs opcijas ir paredzētas lietošanai ar keramikas rezonatoriem, un tās nodrošinās frekvences stabilitāti startēšanas laikā. Tos var izmantot arī ar kristāliem, ja tie nedarbojas tuvu ierīces maksimālajai frekvencei un ja frekvences stabilitāte palaišanas laikā nav svarīga lietojumprogrammai.
Noklusējuma pulksteņa avots
Ierīce tiek piegādāta ar ieprogrammētu CKSEL = “0010”, SUT = “10” un CKDIV8. Tāpēc noklusējuma pulksteņa avota iestatījums ir iekšējais RC oscilators, kas darbojas 8 MHz frekvencē ar visilgāko palaišanas laiku un sākotnējais sistēmas pulksteņa iepriekšēja mērogošana ir 8, kā rezultātā tiek iegūts 1.0 MHz sistēmas pulkstenis. Šis noklusējuma iestatījums nodrošina, ka visi lietotāji var iestatīt vēlamo pulksteņa avota iestatījumu, izmantojot sistēmā iebūvētu vai lielu tilpumutage programmētājs.
Sistēmas pulksteņa prescaler
ATtiny25 / 45/85 sistēmas pulksteni var sadalīt, iestatot “CLKPR - Pulksteņa pirmsskolas reģistrs” 32. lpp. Šo funkciju var izmantot, lai samazinātu enerģijas patēriņu, ja prasība pēc apstrādes jaudas ir zema. To var izmantot ar visām pulksteņa avota opcijām, un tas ietekmēs CPU un visu sinhrono perifērijas ierīču takts frekvenci. clkI/O, clkADC, clkCPU un clkFLASH tiek dalīti ar koeficientu, kā parādīts 6-15. Tabula 33. lpp.
Pārslēgšanās laiks
Pārslēdzoties starp prescaler iestatījumiem, System Clock Prescaler nodrošina, ka pulksteņa sistēmā nerodas kļūmes un ka starpposma frekvence nav augstāka par ne iepriekšējā iestatījumam atbilstošo pulksteņa frekvenci, ne jaunajam iestatījumam atbilstošo pulksteņa frekvenci.
Viļņu skaitītājs, kas ievada presskaleru, darbojas ar nedalīta pulksteņa frekvenci, kas var būt ātrāka par CPU pulksteņa frekvenci. Tādējādi nav iespējams noteikt preskalaera stāvokli - pat ja tas būtu nolasāms, un precīzu laiku, kas nepieciešams, lai pārslēgtos no viena pulksteņa dalījuma uz citu, nevar precīzi paredzēt.
Sākot no CLKPS vērtību ierakstīšanas, paiet starp T1 + T2 un T1 + 2 * T2, pirms ir aktivizēta jaunā pulksteņa frekvence. Šajā intervālā tiek ražotas 2 aktīvās pulksteņa malas. Šeit T1 ir iepriekšējais pulksteņa periods, un T2 ir periods, kas atbilst jaunajam preskalera iestatījumam.
Pulksteņa izvades buferis
Ierīce var izvadīt sistēmas pulksteni uz CLKO tapas (ja to neizmanto kā XTAL2 tapu). Lai iespējotu izvadi, ir jāprogrammē drošinātājs CKOUT. Šis režīms ir piemērots, ja mikroshēmas pulksteni izmanto citu sistēmas ķēžu vadīšanai. Ņemiet vērā, ka atiestatīšanas laikā pulkstenis netiks izvadīts un ka ieprogrammējot drošinātāju, I / O kontakta parastā darbība tiks ignorēta. Iekšējo RC oscilatoru, WDT oscilatoru, PLL un ārējo pulksteni (CLKI) var izvēlēties, kad pulkstenis tiek izvadīts uz CLKO. Kristāla oscilatorus (XTAL1, XTAL2) nevar izmantot CLKO pulksteņa izvadei. Ja tiek izmantots System Clock Prescaler, tiek izvadīts sadalītais sistēmas pulkstenis.
Reģistrācijas apraksts
OSCCAL - oscilatoru kalibrēšanas reģistrs
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | OSCCAL |
Lasīt/rakstīt | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Biti 7: 0 - CAL [7: 0]: Oscilatora kalibrēšanas vērtība
Oscilatoru kalibrēšanas reģistrs tiek izmantots, lai apgrieztu kalibrēto iekšējo RC oscilatoru, lai noņemtu procesa variācijas no oscilatora frekvences. Iepriekš ieprogrammēta kalibrēšanas vērtība tiek automātiski ierakstīta šajā reģistrā mikroshēmas atiestatīšanas laikā, dodot rūpnīcas kalibrēto frekvenci, kā norādīts 21-2. Tabula 164. lpp. Lietojumprogramma var ierakstīt šo reģistru, lai mainītu oscilatora frekvenci. Oscilatoru var kalibrēt pēc frekvencēm, kā norādīts 21-2. Tabula 164. lpp. Kalibrēšana ārpus šī diapazona netiek garantēta.
Ņemiet vērā, ka šis oscilators tiek izmantots EEPROM un Flash rakstīšanas piekļuves laika noteikšanai, un šie rakstīšanas laiki tiks attiecīgi ietekmēti. Ja ir rakstīts EEPROM vai Flash, nekalibrējiet vairāk par 8.8 MHz. Pretējā gadījumā EEPROM vai Flash rakstīšana var neizdoties.
CAL7 bits nosaka oscilatora darbības diapazonu. Iestatot šo bitu uz 0, tiek iegūts viszemākais frekvenču diapazons, bet iestatot šo bitu uz 1, tiek iegūts augstākais frekvenču diapazons. Abi frekvenču diapazoni pārklājas, citiem vārdiem sakot, iestatījums OSCCAL = 0x7F dod augstāku frekvenci nekā OSCCAL = 0x80.
CAL [6: 0] biti tiek izmantoti, lai noregulētu frekvenci izvēlētajā diapazonā. 0x00 iestatījums dod zemāko frekvenci šajā diapazonā, un 0x7F iestatījums nodrošina augstāko frekvenci diapazonā.
Lai nodrošinātu stabilu MCU darbību, kalibrēšanas vērtība ir jāmaina mazā. Biežuma svārstības, kas pārsniedz vienu% no viena cikla uz nākamo, var izraisīt neparedzamu uzvedību. Izmaiņas OSCCAL katrā kalibrēšanā nedrīkst pārsniegt 2x0. Šādu pulksteņa frekvences izmaiņu laikā ir jānodrošina, ka MCU tiek saglabāts Reset
6-14 tabula. Iekšējā RC oscilatora frekvenču diapazons
OSCCAL vērtība | Tipisks zemākais biežums attiecībā uz nominālo frekvenci | Tipisks augstākais biežums attiecībā uz nominālo frekvenci |
0x00 | 50% | 100% |
0x3F | 75% | 150% |
0x7F | 100% | 200% |
CLKPR - Pulksteņa pirmsskolas reģistrs
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x26 | CLKPCE | – | – | – | CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | CLKPR |
Lasīt/rakstīt | R/W | R | R | R | R/W | R/W | R/W | R/W |
Sākotnējā vērtība 0 0 0 0 Skatīt bitu aprakstu
7. bits - CLKPCE: Pulksteņa preskalera maiņas iespējošana
Lai iespējotu CLKPS bitu maiņu, CLKPCE bits ir jāuzraksta pēc loģikas. CLKPCE bits tiek atjaunināts tikai tad, kad pārējie CLKPR biti tiek vienlaicīgi ierakstīti uz nulli. CLKPCE ar aparatūru notīra četrus ciklus pēc tā uzrakstīšanas vai pēc CLKPS bitu uzrakstīšanas. CLKPCE bita pārrakstīšana šajā noildzes periodā nepagarina taimauta periodu un neizdzēš CLKPCE bitu.
Biti 6: 4 - Res: rezervētie biti
Šie biti ir rezervēti biti ATtiny25 / 45/85, un tie vienmēr tiks nolasīti kā nulle.
Biti 3: 0 - CLKPS [3: 0]: Pulksteņa preskalera atlases biti 3 - 0
Šie biti nosaka sadalījuma koeficientu starp izvēlēto pulksteņa avotu un iekšējās sistēmas pulksteni. Šos bitus var ierakstīt izpildes laikā, lai mainītu pulksteņa frekvenci, lai tā atbilstu lietojuma prasībām. Kad dalītājs sadala galveno pulksteņa ievadi MCU, visu sinhrono perifērijas ierīču ātrums tiek samazināts, ja tiek izmantots dalīšanas koeficients. Sadalījuma koeficienti ir doti 6-15 tabula.
Lai izvairītos no nejaušas pulksteņa frekvences maiņas, ir jāievēro īpaša rakstīšanas procedūra, lai mainītu CLKPS bitus:
Uzrakstiet bitu Clock Prescaler Change Enable (CLKPCE) uz vienu un visus pārējos CLKPR bitus uz nulli.
Četru ciklu laikā CLKPS ierakstiet vēlamo vērtību, CLKPCE ierakstot nulli.
Mainot presskalera iestatījumus, ir jāatspējo pārtraukumi, lai pārliecinātos, ka rakstīšanas procedūra netiek pārtraukta.
CKDIV8 drošinātājs nosaka CLKPS bitu sākotnējo vērtību. Ja CKDIV8 nav ieprogrammēts, CLKPS biti tiks atiestatīti uz “0000”. Ja ir ieprogrammēts CKDIV8, CLKPS biti tiek atiestatīti uz “0011”, iedarbinot dalīšanas koeficientu astoņi. Šī funkcija ir jāizmanto, ja izvēlētajam pulksteņa avotam ir augstāka frekvence nekā ierīces maksimālā frekvence pašreizējos darbības apstākļos. Ņemiet vērā, ka CLKPS bitos var ierakstīt jebkuru vērtību neatkarīgi no CKDIV8 drošinātāja iestatījuma. Lietojumprogrammatūrai jānodrošina pietiekams dalījuma koeficients
izvēlēts, ja izvēlētajam pulksteņa avotam ir augstāka frekvence nekā ierīces maksimālajai frekvencei pašreizējos darba apstākļos. Ierīce tiek piegādāta ar ieprogrammētu drošinātāju CKDIV8.
6-15 tabula. Clock Prescaler Select
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | Pulksteņu dalīšanas koeficients |
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 | Rezervēts |
1 | 0 | 1 | 0 | Rezervēts |
1 | 0 | 1 | 1 | Rezervēts |
1 | 1 | 0 | 0 | Rezervēts |
1 | 1 | 0 | 1 | Rezervēts |
1 | 1 | 1 | 0 | Rezervēts |
1 | 1 | 1 | 1 | Rezervēts |
Piezīme. Priekšskalotājs ir atspējots ATtiny15 saderības režīmā, un ne rakstīšana uz CLKPR, ne CKDIV8 drošinātāja programmēšana neietekmē sistēmas pulksteni (kas vienmēr būs 1.6 MHz).
Enerģijas pārvaldība un miega režīmi
Augstas veiktspējas un nozares vadošā koda efektivitāte padara AVR mikrokontrollerus par ideālu izvēli mazjaudas lietojumprogrammām. Turklāt miega režīmi ļauj lietojumprogrammai izslēgt neizmantotos moduļus MCU, tādējādi ietaupot enerģiju. AVR nodrošina dažādus miega režīmus, kas ļauj lietotājam pielāgot enerģijas patēriņu lietojumprogrammas prasībām.
Miega režīmi
6-1. Attēls 23. lpp iepazīstina ar dažādām pulksteņu sistēmām un to sadalījumu ATtiny25 / 45/85. Attēls ir noderīgs, izvēloties atbilstošu miega režīmu. 7-1 tabula parāda dažādus miega režīmus un to pamodināšanas avotus.
7-1 tabula. Aktīvie pulksteņa domēni un modināšanas avoti dažādos miega režīmos
Aktīvie pulksteņa domēni | Oscilatori | Modināšanas avoti | ||||||||||
Miega režīms | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | Galvenais pulksteņa avots ir iespējots | INT0 un tapu maiņa | SPM / EEPROM
Gatavs |
USI sākuma nosacījums |
ADC | Cita I/O | Sargsuns Pārtraukt |
Dīkstāvē | X | X | X | X | X | X | X | X | X | X | ||
ADC trokšņa samazināšana | X | X | X(1) | X | X | X | X | |||||
Izslēgt | X(1) | X | X |
Piezīme: INT0 gadījumā tikai līmeņa pārtraukums.
Lai ievadītu jebkuru no trim miega režīmiem, SE bits MCUCR ir jāuzraksta pēc loģikas un jāizpilda SLEEP instrukcija. SM [1: 0] biti MCUCR reģistrā izvēlas, kurš miega režīms (dīkstāves, ADC trokšņa samazināšana vai izslēgšana) tiks aktivizēts ar SLEEP instrukciju. Skat 7-2 tabula kopsavilkumam.
Ja iespējots pārtraukums notiek, kamēr MCU ir miega režīmā, MCU pamostas. Pēc tam MCU tiek apturēts uz četriem cikliem papildus palaišanas laikam, tiek izpildīts pārtraukuma režīms un tiek atsākta izpilde no instrukcijas pēc SLEEP. Reģistra saturs File un SRAM nemainās, kad ierīce pamostas no miega. Ja miega režīmā notiek atiestatīšana, MCU pamostas un tiek izpildīts no atiestatīšanas vektora.
Piezīme: ja pamodināšanai tiek izmantots līmeņa izraisīts pārtraukums, mainītais līmenis kādu laiku ir jāpatur, lai pamodinātu MCU (un lai MCU ievadītu pārtraukuma pakalpojuma rutīnu). Skat “Ārējie pārtraukumi” 49. lpp sīkākai informācijai.
Gaidīšanas režīms
Kad SM[1:0] biti tiek ierakstīti uz 00, SLEEP instrukcija liek MCU pāriet dīkstāves režīmā, apturot centrālo procesoru, bet ļaujot Analog Comparator, ADC, USI, Taimerim/skaitītājam, Watchdog un pārtraukumu sistēmai turpināt darbību. ēšanas. Šis miega režīms pamatā aptur clkCPU un clkFLASH, vienlaikus ļaujot darboties citiem pulksteņiem.
Gaidīšanas režīms ļauj MCU pamosties no ārējiem aktivizētiem pārtraukumiem, kā arī no iekšējiem, piemēram, taimera pārpildes. Ja modināšana no Analog Comparator pārtraukuma nav nepieciešama, Analog Comparator var izslēgt, iestatot ACD bitu “ACSR - Analogā salīdzinātāja vadības un statusa reģistrs” 120. lpp. Tas samazinās enerģijas patēriņu gaidīšanas režīmā. Ja ADC ir iespējota, pārveidošana sākas automātiski, kad tiek ievadīts šis režīms.
ADC trokšņa samazināšanas režīms
Kad SM[1:0] biti tiek rakstīti uz 01, SLEEP instrukcija liek MCU pāriet ADC trokšņu samazināšanas režīmā, apturot centrālo procesoru, bet ļaujot ADC, ārējiem pārtraukumiem un Watchdog turpināt darbību (ja ir iespējots). Šis miega režīms aptur clkI/O, clkCPU un clkFLASH, vienlaikus ļaujot darboties citiem pulksteņiem.
Tas uzlabo ADC trokšņa vidi, ļaujot veikt augstākas izšķirtspējas mērījumus. Ja ADC ir iespējota, pārveidošana sākas automātiski, kad tiek ievadīts šis režīms. Izņemot ADC Conversion Complete pārtraukumu, MCU no ADC trokšņa samazināšanas var pamodināt tikai ārējā atiestatīšana, sargsuņa atiestatīšana, atiestatīšana no jauna, SPM / EEPROM gatavs pārtraukums, INT0 ārēja līmeņa pārtraukums vai tapas maiņas pārtraukums. režīmā.
Izslēgšanas režīms
Kad SM [1: 0] biti tiek ierakstīti uz 10, SLEEP instrukcija liek MCU pāriet izslēgšanas režīmā. Šajā režīmā oscilators tiek apturēts, kamēr ārējais pārtrauc darbību, USI sākuma stāvokļa noteikšana un Watchdog turpina darboties (ja tas ir iespējots). MCU var pamodināt tikai ārējā atiestatīšana, sargsuņa atiestatīšana, atiestatīšana no jauna, USI sākuma stāvokļa pārtraukums, ārējā līmeņa pārtraukums INT0 vai tapas maiņas pārtraukums. Šis miega režīms aptur visus ģenerētos pulksteņus, ļaujot darboties tikai asinhronajiem moduļiem.
Programmatūras BOD atspējošana
Kad Brown-out detektoru (BOD) ir iespējojuši BODLEVEL drošinātāji (skat 20-4. Tabula 148. lpp), BOD aktīvi uzrauga piegādes apjomutage miega laikā. Dažās ierīcēs ir iespējams ietaupīt enerģiju, izslēdzot BOD ar programmatūru izslēgšanas miega režīmā. Enerģijas patēriņš miega režīmā būs tādā pašā līmenī kā tad, ja BOD ir globāli atspējots ar drošinātājiem.
Ja programmatūra BOD ir atspējota, BOD funkcija tiek izslēgta uzreiz pēc pāriešanas miega režīmā. Pēc pamošanās no miega režīma BOD atkal tiek automātiski iespējots. Tas nodrošina drošu darbību gadījumā, ja miega perioda laikā VCC līmenis ir pazeminājies.
Kad BOD ir atspējots, pamodināšanas laiks no miega režīma būs tāds pats kā laiks, lai pamostos no RESET. Lietotājam manuāli jākonfigurē pamošanās laiki tā, lai joslas atstarpes atsaucei būtu laiks sākt, un BOD darbotos pareizi, pirms MCU turpina izpildīt kodu. Skatiet SUT [1: 0] un CKSEL [3: 0] drošinātāju bitus tabulā “Drošinātāja zemais baits” 149. lpp
BOD atspējošanu kontrolē MCU vadības reģistra BODS (BOD miega) bits, sk “MCUCR - MCU vadība Reģistrēties ”37. lpp. Rakstot šo bitu vienam, BOD tiek izslēgts Power-Down režīmā, bet, ierakstot nulli, BOD tiek saglabāts aktīvs. Noklusējuma iestatījums ir nulle, ti, BOD ir aktīvs.
Rakstīšanu uz BODS bitu kontrolē noteikta laika secība un iespējošanas bits, skat “MCUCR - MCU vadības reģistrs ter ”37. lpp.
Ierobežojumi
BOD atspējošanas funkcionalitāte ir ieviesta tikai šādās ierīcēs:
ATtiny25, E pārskatīšana un jaunāka
ATtiny45, D pārskatīšana un jaunāka
ATtiny85, C pārskatīšana un jaunāka
Pārskatījumi ir atzīmēti uz ierīces iepakojuma, un tos var atrast šādi:
Iepakojuma 8P3 un 8S2 apakšējā puse
Iepakojuma 20M1 augšējā puse
Jaudas samazināšanas reģistrs
Jaudas samazināšanas reģistrs (PRR), sk “PRR - jaudas samazināšanas reģistrs” 38. lpp, nodrošina metodi enerģijas patēriņa samazināšanai, apturot pulksteni atsevišķām perifērijas ierīcēm. Pašreizējais perifērijas stāvoklis ir iesaldēts, un I / O reģistrus nevar lasīt vai rakstīt. Resursi, kurus perifērija izmanto, apturot pulksteni, paliks aizņemti, tāpēc pirms pulksteņa apturēšanas perifērijas ierīce vairumā gadījumu ir jāatspējo. Modināt moduli, kas tiek veikts, notīrot bitu PRR, modulis tiek iestatīts tādā pašā stāvoklī kā pirms izslēgšanas.
Moduļa izslēgšanu var izmantot gaidīšanas režīmā un aktīvajā režīmā, lai ievērojami samazinātu kopējo enerģijas patēriņu. Visos pārējos miega režīmos pulkstenis jau ir apturēts. Skat “I / O moduļu barošanas strāva” 177. lpp piemamples.
Samazinot enerģijas patēriņu
Mēģinot samazināt enerģijas patēriņu AVR kontrolētā sistēmā, jāņem vērā vairāki jautājumi. Parasti miega režīmi jāizmanto pēc iespējas vairāk, un miega režīms jāizvēlas tā, lai darbotos pēc iespējas mazāk ierīces funkciju. Visas funkcijas, kas nav vajadzīgas, ir jāatspējo. Īpaši jāņem vērā šādi moduļi, mēģinot sasniegt pēc iespējas zemāku enerģijas patēriņu.
Analogais-digitālais pārveidotājs
Ja tas ir iespējots, ADC tiks iespējots visos miega režīmos. Lai taupītu enerģiju, pirms jebkura miega režīma ieslēgšanas ADC ir jāatspējo. Kad ADC ir izslēgts un atkal ieslēgts, nākamā reklāmguvums būs pagarināts reklāmguvums. Atsaukties uz “Analogais uz ciparu pārveidotājs” 122. lpp lai iegūtu sīkāku informāciju par ADC darbību.
Analogais salīdzinātājs
Ieejot gaidīšanas režīmā, analogo salīdzinātāju vajadzētu atspējot, ja to neizmanto. Ieejot ADC trokšņu samazināšanas režīmā, analogo salīdzinātāju vajadzētu atspējot. Citos miega režīmos Analog Comparator tiek automātiski atspējots. Tomēr, ja Analog Comparator ir iestatīts, lai izmantotu Internal Voltage Atsauce kā ievade, Analog Comparator ir jāatspējo visos miega režīmos. Pretējā gadījumā iekšējais sējtage Atsauce tiks iespējota neatkarīgi no miega režīma. Atsaukties uz “Analogais salīdzinātājs” 119. lpp lai iegūtu sīkāku informāciju par analogā salīdzinātāja konfigurēšanu.
Apbrūnojies detektors
Ja lietojumprogrammā nav nepieciešams Brown-out detektors, šis modulis ir jāizslēdz. Ja BODLEVEL drošinātāji iespējo Brown-out detektoru, tas tiks iespējots visos miega režīmos un tādējādi vienmēr patērē enerģiju. Dziļāka miega režīmos tas ievērojami veicinās kopējo pašreizējo patēriņu. Skat “Brown-out detektors “41. lpp un “Programmatūras BOD atspējošana” 35. lpp lai iegūtu sīkāku informāciju par Brown-out detektora konfigurēšanu.
Iekšējais sējtage Atsauce
Iekšējais sējumstage Atsauce tiks iespējota, kad to pieprasa izgaismošanās noteikšana, analogais salīdzinātājs vai ADC. Ja šie moduļi ir atspējoti, kā aprakstīts iepriekšējās sadaļās, iekšējais tilpumstagAtsauce tiks atspējota, un tā neizmantos enerģiju. Kad tas atkal tiek ieslēgts, lietotājam jāļauj atskaitei sākt pirms izvades izmantošanas. Ja atsauce tiek ieslēgta miega režīmā, izvadi var izmantot nekavējoties. Atsaukties uz “Iekšējais sējtage Atsauce ”42. lpp lai iegūtu sīkāku informāciju par sākuma laiku.
Sargsuņa taimeris
Ja Watchdog taimeris lietojumprogrammā nav nepieciešams, šis modulis ir jāizslēdz. Ja Watchdog taimeris ir iespējots, tas tiks iespējots visos miega režīmos un tādējādi vienmēr patērē enerģiju. Dziļāka miega režīmos tas ievērojami veicinās kopējo pašreizējo patēriņu. Atsaukties uz “Sargsuņa taimeris” 42. lpp lai iegūtu sīkāku informāciju par Watchdog taimera konfigurēšanu.
Ostas tapas
Pārejot miega režīmā, visas porta tapas ir jākonfigurē tā, lai tās izmantotu minimālu jaudu. Vissvarīgākais tad ir nodrošināt, lai neviena tapa neizraisītu pretestības slodzi. Miega režīmā, kad ir apturēts gan I/O pulkstenis (clkI/O), gan ADC pulkstenis (clkADC), ierīces ievades buferi tiks atspējoti. Tas nodrošina, ka netiek patērēta jauda
pēc ievades loģikas, kad tas nav nepieciešams. Dažos gadījumos ievades loģika ir nepieciešama, lai noteiktu pamošanās apstākļus, un
pēc tam tas tiks iespējots. Skatiet sadaļu “Digitālās ievades iespējošana un miega režīmi” 57. lpp lai iegūtu informāciju par to, kuras tapas ir iespējotas. Ja ievades buferis ir iespējots un ievades signāls paliek peldošs vai tā analogā signāla līmenis ir tuvu VCC/2, ievades buferis izmantos pārmērīgu jaudu.
Analogās ievades tapām digitālās ievades buferis vienmēr ir jāatspējo. Analogā signāla līmenis, kas ir tuvu VCC/2 uz ievades tapas, var izraisīt ievērojamu strāvu pat aktīvajā režīmā. Digitālās ievades buferus var atspējot, ierakstot digitālās ievades atspējošanas reģistrā (DIDR0). Atsaukties uz “DIDR0 - digitālās ievades atspējošanas reģistrs 0” 121. lpp sīkākai informācijai.
Reģistrācijas apraksts
MCUCR - MCU vadības reģistrs
MCU vadības reģistrs satur vadības bitus enerģijas pārvaldībai.
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Lasīt/rakstīt | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7. bits - BODS: BOD Sleep
BOD atspējošanas funkcionalitāte ir pieejama tikai dažās ierīcēs. Skat “Ierobežojumi” 36. lpp.
Lai atspējotu BOD miega laikā (skat 7-1. Tabula 34. lpp) BODS bits ir jāraksta loģiski. To kontrolē noteikta laika secība un iespējošanas bits BODSE MCUCR. Pirmkārt, gan BODS, gan BODSE ir jāiestata uz vienu. Otrkārt, četru pulksteņu ciklu laikā BODS ir jāiestata uz vienu, un BODSE - uz nulli. BODS bits ir aktīvs trīs pulksteņu ciklus pēc tā iestatīšanas. Miega instrukcija ir jāizpilda, kamēr BODS ir aktīvs, lai izslēgtu BOD faktiskajam miega režīmam. BODS bits tiek automātiski notīrīts pēc trim pulksteņu cikliem.
Ierīcēs, kurās miega BOD nav ieviests, šis bits netiek izmantots un vienmēr nolasīs nulli.
5. bits - SE: miega režīms
SE bits ir jāieraksta uz loģisko vienu, lai MCU pārietu miega režīmā, kad tiek izpildīta SLEEP instrukcija. Lai izvairītos no MCU pāriešanas miega režīmā, ja vien tas nav programmētāja mērķis, ir ieteicams rakstīt miega iespējošanas (SE) bitu uz vienu tieši pirms SLEEP instrukcijas izpildes un notīrīt to tūlīt pēc pamošanās.
Bits 4: 3 - SM [1: 0]: Miega režīms Atlasiet 1. un 0. bitu
Šie biti izvēlas vienu no trim pieejamajiem miega režīmiem, kā parādīts 7-2 tabula.
7-2 tabula. Miega režīma izvēle
SM1 | SM0 | Miega režīms |
0 | 0 | Dīkstāvē |
0 | 1 | ADC trokšņa samazināšana |
1 | 0 | Izslēgt |
1 | 1 | Rezervēts |
2. bits - BODSE: BOD Sleep Enable
BOD atspējošanas funkcionalitāte ir pieejama tikai dažās ierīcēs. Skat “Ierobežojumi” 36. lpp.
BODSE bits ļauj iestatīt BODS vadības bitu, kā paskaidrots BODS bitu aprakstā. BOD atspējošanu kontrolē noteikta laika secība.
Šis bits netiek izmantots ierīcēs, kurās programmatūras BOD atspējošana nav ieviesta, un šajās ierīcēs tā tiks nolasīta kā nulle.
PRR - jaudas samazināšanas reģistrs
Jaudas samazināšanas reģistrs nodrošina metodi enerģijas patēriņa samazināšanai, ļaujot atspējot perifērijas pulksteņa signālus.
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRTIM1 | PRTIM0 | PRUSI | PRADC | PRR |
Lasīt/rakstīt | R | R | R | R | R/W | R/W | R/W | R/W | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Biti 7: 4 - Res: rezervētie biti
Šie biti ir rezervēti biti ATtiny25 / 45/85, un tie vienmēr tiks nolasīti kā nulle.
3. bits - PRTIM1: jaudas samazināšanas taimeris / skaitītājs1
Rakstot loģisku šo bitu, tiek izslēgts taimeris / skaitītājs1. Kad taimeris / skaitītājs1 ir iespējots, darbība tiks turpināta tāpat kā pirms izslēgšanas.
2. bits - PRTIM0: jaudas samazināšanas taimeris / skaitītājs0
Rakstot loģisku šo bitu, tiek izslēgts taimeris / skaitītājs0. Kad taimeris / skaitītājs0 ir iespējots, darbība tiks turpināta tāpat kā pirms izslēgšanas.
1. bits - PRUSI: jaudas samazināšana USI
Uzrakstot loģisku šo bitu, tiek izslēgts USI, apturot moduļa pulksteni. Atkārtoti pamodinot USI, USI ir jāatjauno, lai nodrošinātu pareizu darbību.
Bits 0 - PRADC: jaudas samazināšanas ADC
Uzrakstot loģisku šo bitu, tiek izslēgta ADC darbība. Pirms izslēgšanas ADC ir jāatspējo. Ņemiet vērā, ka ADC pulksteni izmanto arī dažas analogā salīdzinātāja daļas, kas nozīmē, ka analogo salīdzinātāju nevar izmantot, ja šis bits ir augsts.
Sistēmas vadība un atiestatīšana
AVR atiestatīšana
Atiestatīšanas laikā visi I / O reģistri tiek iestatīti uz to sākotnējām vērtībām, un programma sāk izpildi no Reset Vecator. Norādījumiem, kas ievietoti atiestatīšanas vektorā, jābūt RJMP - Relative Jump - norādījumam par atiestatīšanas kārtību. Ja programma nekad neiespējo pārtraukuma avotu, pārtraucošie vektori netiek izmantoti, un šajās vietās var ievietot parasto programmas kodu. Shēma shēmā Attēls 8-1 parāda atiestatīšanas loģiku. Atiestatīšanas shēmas elektriskie parametri ir norādīti “Sistēmas un atiestatīšanas raksturlielumi” 165. lpp.
Attēls 8-1 Atiestatīšanas loģika
Kad atiestatīšanas avots kļūst aktīvs, AVR I / O porti tiek nekavējoties atiestatīti sākotnējā stāvoklī. Tam nav nepieciešams neviens pulksteņa avots.
Kad visi atiestatīšanas avoti ir kļuvuši neaktīvi, tiek izsaukts aizkaves skaitītājs, izstiepjot iekšējo atiestatīšanu. Tas ļauj jaudai sasniegt stabilu līmeni pirms normālas darbības sākuma. Kavēšanās skaitītāja taimauta periodu nosaka lietotājs, izmantojot SUT un CKSEL drošinātājus. Dažādas aizkaves perioda izvēles ir norādītas “Pulkstenis Avoti ”25. lpp.
Atiestatīt avotus
ATtiny25 / 45/85 ir četri atiestatīšanas avoti:
Ieslēgšanas atiestatīšana. MCU tiek atiestatīts, kad padeves tilpumstage ir zem ieslēgšanas atiestatīšanas sliekšņa (VPOT).
Ārējā atiestatīšana. MCU tiek atiestatīts, ja RESET tapā ir zems līmenis ilgāk par minimālo impulsa garumu.
Sargsuņa atiestatīšana. MCU tiek atiestatīts, kad ir beidzies sargsuņa taimera periods un sargsuns ir iespējots.
Braun-out Reset. MCU tiek atiestatīts, kad padeves tilpumstage VCC ir zem Brown-out atiestatīšanas sliekšņa (VBOT), un Brown-out detektors ir iespējots.
Ieslēgšanas atiestatīšana
Ieslēgšanas atiestatīšanas (POR) impulsu rada On-chip noteikšanas ķēde. Noteikšanas līmenis ir noteikts “Sistēma- un Reset Characteristics ”165. lpp. POR tiek aktivizēts ikreiz, kad VCC ir zem noteikšanas līmeņa. POR ķēdi var izmantot, lai aktivizētu palaišanas atiestatīšanu, kā arī lai noteiktu piegādes apjoma kļūmitage.
Ieslēgšanas atiestatīšanas (POR) ķēde nodrošina ierīces atiestatīšanu no ieslēgšanas. Ieslēgšanas atiestatīšanas sliekšņa sasniegšana, voltage izsauc aizkaves skaitītāju, kas nosaka, cik ilgi ierīce tiek turēta RESET režīmā pēc VCC pieauguma. RESET signāls atkal tiek aktivizēts bez kavēšanās, kad VCC samazinās zem noteikšanas līmeņa.
Attēls 8-2. MCU palaišana, RESET Saistīts ar VCC
IEKŠĒJĀ RESET
Attēls 8-3. MCU palaišana, RESET paplašināta ārēji
Ārējā atiestatīšana
Ārējo atiestatīšanu ģenerē zems līmenis RESET tapā, ja tas ir iespējots. Atiestatīt impulsus, kas ir garāki par minimālo impulsa platumu (sk “Sistēmas un atiestatīšanas raksturlielumi” 165. lpp) radīs atiestatīšanu, pat ja pulkstenis nedarbojas. Nav garantēts, ka īsāki impulsi radīs atiestatīšanu. Kad pielietotais signāls sasniedz Reset Threshold Voltage – VRST – tā pozitīvajā malā aizkaves skaitītājs iedarbina MCU pēc taimauta perioda beigām.
Attēls 8-4. Ārējā atiestatīšana darbības laikā
Brūnas krāsas noteikšana
ATtiny25/45/85 ir mikroshēmas Brown-out Detection (BOD) shēma VCC līmeņa uzraudzībai darbības laikā, salīdzinot to ar fiksētu sprūda līmeni. BOD sprūda līmeni var izvēlēties ar BODLEVEL drošinātājiem. Sprūda līmenim ir histerēze, lai nodrošinātu brūnās izplūdes noteikšanu bez smailēm. Histerēze noteikšanas līmenī jāinterpretē kā VBOT+ = VBOT + VHYST/2 un VBOT- = VBOT – VHYST/2.
Kad BOD ir iespējots un VCC samazinās līdz vērtībai, kas ir zemāka par trigera līmeni (VBOT-in Attēls 8-5), tiek nekavējoties aktivizēta Brown-out Reset. Kad VCC palielinās virs sprūda līmeņa (VBOT+ in Attēls 8-5), aizkaves skaitītājs iedarbina MCU pēc taimauta perioda tTOUT beigām.
BOD ķēde noteiks VCC kritumu tikai tad, ja tilptage paliek zem sprūda līmeņa ilgāk par norādīto tBOD “Sistēmas un atiestatīšanas raksturlielumi” 165. lpp.
Sargsuņa atiestatīšana
Kad Watchdog taimauts beidzas, tas ģenerēs īsu atiestatīšanas impulsu viena CK cikla garumā. Šī impulsa krītošajā malā aizkaves taimeris sāk skaitīt taimauta periodu tTOUT. Atsaukties uz “Sargsuņa taimeris” 42. lpp lai iegūtu sīkāku informāciju par Watchdog taimera darbību.
Voltage Atsauce Iespējot signālus un palaišanas laiku
SējtagAtsaucei ir sākuma laiks, kas var ietekmēt tā izmantošanu. Palaišanas laiks ir norādīts “Sistēmas un atiestatīšanas raksturlielumi” 165. lpp. Lai taupītu enerģiju, atsauce ne vienmēr tiek ieslēgta. Atsauce notiek šādās situācijās:
Kad BOD ir iespējots (ieprogrammējot BODLEVEL [2: 0] drošinātāju bitus).
Kad joslas diapazona atsauce ir savienota ar analogo salīdzinātāju (iestatot ACBG bitu ACSR).
Kad ADC ir iespējots.
Tādējādi, ja BOD nav iespējots, pēc ACBG bitu iestatīšanas vai ADC iespējošanas lietotājam vienmēr jāļauj atsaucei startēt, pirms tiek izmantota izeja no Analog Comparator vai ADC. Lai samazinātu enerģijas patēriņu izslēgšanās režīmā, lietotājs var izvairīties no trim iepriekš minētajiem nosacījumiem, lai pirms ieslēgšanas izslēgšanas režīmā nodrošinātu, ka atsauce ir izslēgta.
Sargsuņa taimeris
Watchdog taimeris tiek fiksēts no mikroshēmas oscilatora, kas darbojas ar 128 kHz frekvenci. Vadot Watchdog Timer prescaler, Watchdog Reset intervālu var noregulēt, kā parādīts 8-3. Tabula 46. lpp. WDR - Watchdog Reset - instrukcija atiestata Watchdog taimeri. Watchdog taimeris tiek atiestatīts arī tad, kad tas ir atspējots un kad notiek mikroshēmas atiestatīšana. Lai noteiktu atiestatīšanas periodu, var izvēlēties desmit dažādus pulksteņa cikla periodus. Ja atiestatīšanas periods beidzas bez citas sargsuņa atiestatīšanas, ATtiny25 / 45/85 atiestata un izpilda no atiestatīšanas vektora. Sīkāku informāciju par Watchdog Reset laiku skatiet 8-3. Tabula 46. lpp.
Sardzes taimeri var arī konfigurēt tā, lai atiestatīšanas vietā ģenerētu pārtraukumu. Tas var būt ļoti noderīgi, ja Watchdog tiek izmantots, lai pamostos no izslēgšanas.
Lai novērstu nejaušu sargsuņa atspējošanu vai nejaušu taimauta maiņu, drošinātājs WDTON izvēlas divus dažādus drošības līmeņus, kā parādīts 8-1 tabula Atsaucieties uz “Konfigurācijas mainīšanas secība Sargsuņa taimera figurācija ”43. lpp sīkākai informācijai.
8-1 tabula. WDT konfigurācija kā WDTON drošinātāju iestatījumu funkcija
WDTON | Drošības līmenis | WDT sākotnējais stāvoklis | Kā atspējot WDT | Kā mainīt taimautu |
Nav ieprogrammēts | 1 | Atspējots | Laika secība | Nav ierobežojumu |
Programmēts | 2 | Iespējots | Vienmēr iespējots | Laika secība |
Attēls 8-7. Sargsuņa taimeris
Laika uzraudzības sarga taimera konfigurācijas maiņas secība
Konfigurācijas maiņas secība starp diviem drošības līmeņiem nedaudz atšķiras. Katram līmenim ir aprakstītas atsevišķas procedūras.
1. drošības līmenis: šajā režīmā Watchdog Timer sākotnēji ir atspējots, taču to var iespējot, ierakstot WDE bitu vienā bez jebkādiem ierobežojumiem. Atspējojot iespējoto Watchdog taimeri, ir nepieciešama noteikta laika secība. Lai atspējotu iespējotu Watchdog Timer, ir jāveic šāda procedūra:
Tajā pašā operācijā uzrakstiet loģiku WDCE un WDE. Loģika ir jāuzraksta WDE neatkarīgi no WDE bitu iepriekšējās vērtības.
Nākamo četru pulksteņu ciklu laikā vienā un tajā pašā operācijā pēc vēlēšanās ierakstiet WDE un WDP bitus, bet ar notīrītu WDCE bitu.
2. drošības līmenis: šajā režīmā Watchdog Timer vienmēr ir iespējots, un WDE bits vienmēr tiks nolasīts kā viens. Mainot sargsuņa taimauta periodu, ir nepieciešama noteikta secība. Lai mainītu sargsuņa taimautu, ir jāievēro šāda procedūra:
Tajā pašā operācijā uzrakstiet loģisku WDCE un WDE. Lai arī WDE vienmēr ir iestatīts, WDE ir jāuzraksta uz vienu, lai sāktu plānoto secību.
Nākamo četru pulksteņu ciklu laikā vienā un tajā pašā darbībā ierakstiet WDP bitus pēc vēlēšanās, bet ar WDCE bitu notīrītu. WDE ierakstītajai vērtībai nav nozīmes.
Kods Piemample
Šāds kods, piemample parāda vienu montāžu un vienu C funkciju WDT izslēgšanai. Bijušaisamptiek pieņemts, ka pārtraukumi tiek kontrolēti (piemēram, globāli atspējojot pārtraukumus), lai šo funkciju izpildes laikā netiktu novēroti pārtraukumi.
Montāžas kods Piemample(1) |
WDT_izslēgts:
wdr ; Notīrīt WDRF MCUSR ldi r16, (0< out MCUSR, r16 ; Uzrakstiet loģisku WDCE un WDE ; Saglabājiet veco prescaler iestatījumu, lai novērstu nejaušu sargsuņa atiestatīšanu r16, WDTCR ori r16, (1< out WDTCR, r16 ; Izslēdziet WDT ldi r16, (0< out WDTCR, r16 ret |
C Kods Piemample(1) |
spēkā neesošs WDT_off(neesošs)
{ _WDR (); /* Notīrīt WDRF programmā MCUSR */ MCUSR = 0x00 /* Ierakstiet loģisko WDCE un WDE */ WDTCR |= (1< / * Izslēdziet WDT * / WDTCR = 0x00; } |
Piezīme: 1. Skat “Kods Piemamples ”6. lpp.
Reģistrācijas apraksts
MCUSR - MCU statusa reģistrs
MCU statusa reģistrs sniedz informāciju par to, kurš atiestatīšanas avots izraisīja MCU atiestatīšanu.
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | BORF | EXTRF | PORF | MCUSR |
Lasīt/rakstīt | R | R | R | R | R/W | R/W | R/W | R/W |
Sākotnējā vērtība 0 0 0 0 Skatīt bitu aprakstu
Biti 7: 4 - Res: rezervētie biti
Šie biti ir rezervēti biti ATtiny25 / 45/85, un tie vienmēr tiks nolasīti kā nulle.
3. bits - WDRF: sargsuņa atiestatīšanas karogs
Šis bits ir iestatīts, ja notiek sargsuņa atiestatīšana. Bits tiek atiestatīts ar ieslēgšanas atiestatīšanu vai karodziņā ierakstot loģisko nulli.
2. bits - BORF: izdzēsts karodziņš
Šis bits tiek iestatīts, ja notiek atiestatīšana. Bits tiek atiestatīts ar ieslēgšanas atiestatīšanu vai karodziņā ierakstot loģisko nulli.
1. bits - EXTRF: Ārējās atiestatīšanas karodziņš
Šis bits tiek iestatīts, ja notiek ārējā atiestatīšana. Bits tiek atiestatīts ar ieslēgšanas atiestatīšanu vai karodziņā ierakstot loģisko nulli.
0. bits - PORF: ieslēgšanās atiestatīšanas karogs
Šis bits tiek iestatīts, ja notiek ieslēgšanas atiestatīšana. Bits tiek atiestatīts, karodziņā ierakstot loģisko nulli.
Lai izmantotu atiestatīšanas karodziņus, lai identificētu atiestatīšanas nosacījumus, lietotājam pēc iespējas ātrāk jāizlasa un pēc tam jāiestata MCUSR. Ja reģistrs tiek notīrīts pirms citas atiestatīšanas, atiestatīšanas avotu var atrast, pārbaudot atiestatīšanas karodziņus.
WDTCR - Sargsuņa taimera vadības reģistrs
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x21 | WDIF | WDIE | WDP3 | WDCE | WDE | WDP2 | WDP1 | WDP0 | WDTCR |
Lasīt/rakstīt | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | X | 0 | 0 | 0 |
7. bits - WDIF: sargsuņa noildzes pārtraukuma karodziņš
Šis bits tiek iestatīts, kad Watchdog taimeris iestājas taimauts un Watchdog taimeris ir konfigurēts pārtraukumam. Veicot atbilstošo pārtraukumu apstrādes vektoru, WDIF tiek notīrīts ar aparatūru. Alternatīvi, WDIF tiek notīrīts, ierakstot loģiku karogam. Kad ir iestatīts I bits SREG un WDIE, tiek izpildīts sargsuņa taimauta pārtraukums.
6. bits - WDIE: sargsuņa taimauta pārtraukuma iespējošana
Kad šis bits ir ierakstīts vienā, WDE tiek notīrīts un statusa reģistra I bits ir iestatīts, ir iespējots Watchdog taimauta pārtraukums. Šajā režīmā atbilstošais pārtraukums tiek veikts atiestatīšanas vietā, ja Watchdog taimeris iestājas noildze.
Ja ir iestatīts WDE, tad, kad iestājas taimauts, aparatūra automātiski notīra WDIE. Tas ir noderīgi, lai saglabātu Watchdog Reset drošību, kamēr tiek izmantots pārtraukums. Pēc WDIE bita notīrīšanas nākamais taimauts radīs atiestatīšanu. Lai izvairītos no sargsuņa atiestatīšanas, pēc katra pārtraukuma ir jāiestata WDIE.
8-2 tabula. Watchdog taimera konfigurācija
WDE | WDIE | Sargsuņa taimera stāvoklis | Darbība pēc taimauta |
0 | 0 | Apstājās | Nav |
0 | 1 | Skriešana | Pārtraukt |
1 | 0 | Skriešana | Atiestatīt |
1 | 1 | Skriešana | Pārtraukt |
4. bits - WDCE: sargsuņa maiņas iespējošana
Šis bits ir jāiestata, kad WDE bits tiek ierakstīts nulles loģikā. Pretējā gadījumā sargsuns netiks atspējots. Kad vienums ir ierakstīts, aparatūra šo bitu notīrīs pēc četriem pulksteņa cikliem. Skatiet WDE bitu aprakstu, lai skatītu Watchdog atspējošanas procedūru. Šis bits ir jāiestata arī, mainot priekšskalera bitus. Skat “Laika secība sardzes taimera konfigurācijas maiņai ”43. lpp.
3. bits - WDE: sargsuns iespējot
Kad WDE ir ierakstīts loģiski, ir iespējots sargsuņa taimeris, un, ja WDE ir ierakstīts nulles loģikā, sardzes taimera funkcija ir atspējota. WDE var notīrīt tikai tad, ja WDCE bitam ir pirmais loģikas līmenis. Lai atspējotu iespējotu sargsuņa taimeri, ir jāievēro šāda procedūra:
Tajā pašā operācijā uzrakstiet loģiku WDCE un WDE. Loģika ir jāuzraksta WDE, pat ja tā ir iestatīta uz vienu, pirms tiek sākta atspējošanas darbība.
Nākamo četru pulksteņu ciklu laikā WDE ierakstiet loģiku 0. Tas atspējo Watchdog.
2. drošības līmenī nav iespējams atspējot Watchdog taimeri pat ar iepriekš aprakstīto algoritmu. Skat “Sargsuņa taimera konfigurācijas mainīšanas secības 43. lpp.
1. drošības līmenī MCDER WDRF pārspēj WDE. Skat “MCUSR - MCU statusa reģistrs” 44. lpp WDRF aprakstam. Tas nozīmē, ka WDE vienmēr tiek iestatīts, kad ir iestatīta WDRF. Lai notīrītu WDE, pirms Watchdog atspējošanas ar iepriekš aprakstīto procedūru ir jāizdzēš WDRF. Šī funkcija nodrošina vairāku atiestatīšanu apstākļos, kas izraisa kļūmi, un drošu palaišanu pēc kļūmes.
Piezīme. Ja lietojumprogrammā netiks izmantots sargsuņa taimeris, ierīces inicializācijā ir svarīgi veikt sargsuņa atspējošanas procedūru. Ja Watchdog ir nejauši iespējots, piemēram,ampja ar aizbēgušu rādītāju vai brūnā stāvoklī ierīce tiks atiestatīta, kas savukārt novedīs pie jauna sargsuņa atiestatīšanas. Lai izvairītos no šīs situācijas, lietojumprogrammatūrai inicializācijas rutīnā vienmēr ir jānoņem WDRF karogs un WDE vadības bits.
5. bits, 2: 0 - WDP [3: 0]: sargsuņa taimera preskaleris 3, 2, 1 un 0
WDP [3: 0] biti nosaka sargsuņa taimera iepriekšēju mērogošanu, kad ir iespējots sargsuņa taimeris. Dažādas pirmsskalas vērtības un tām atbilstošie taimauta periodi ir parādīti 8-3 tabula.
8-3 tabula. Watchdog Timer Prescale Select
WDP3 | WDP2 | WDP1 | WDP0 | WDT oscilatoru ciklu skaits | Tipisks taimauts pie VCC = 5.0 V |
0 | 0 | 0 | 0 | 2K (2048) cikli | 16 ms |
0 | 0 | 0 | 1 | 4K (4096) cikli | 32 ms |
0 | 0 | 1 | 0 | 8K (8192) cikli | 64 ms |
0 | 0 | 1 | 1 | 16K (16384) cikli | 0.125 s |
0 | 1 | 0 | 0 | 32K (32764) cikli | 0.25 s |
0 | 1 | 0 | 1 | 64K (65536) cikli | 0.5 s |
0 | 1 | 1 | 0 | 128K (131072) cikli | 1.0 s |
0 | 1 | 1 | 1 | 256K (262144) cikli | 2.0 s |
1 | 0 | 0 | 0 | 512K (524288) cikli | 4.0 s |
1 | 0 | 0 | 1 | 1024K (1048576) cikli | 8.0 s |
8-3 tabula. Watchdog Timer Prescale Select (turpinājums)
WDP3 | WDP2 | WDP1 | WDP0 | WDT oscilatoru ciklu skaits | Tipisks taimauts pie VCC = 5.0 V |
1 | 0 | 1 | 0 | Rezervēts(1) | |
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 0 | 1 | ||
1 | 1 | 1 | 0 | ||
1 | 1 | 1 | 1 |
Piezīme: 1. Ja atlasīts, tiks izmantots viens no derīgajiem iestatījumiem zem 0b1010.
Pārtrauc
Šajā sadaļā aprakstīta pārtraukuma apstrādes specifika, kas veikta ATtiny25 / 45/85. Vispārīgu skaidrojumu par AVR pārtraukumu apstrādi skatiet “Atiestatīt un pārtraukt apstrādi” 12. lpp.
Pārtrauciet vektorus ATtiny25 / 45/85
ATtiny25 / 45/85 pārtraukuma vektori ir aprakstīti 9-1 tabulazemāk.
9-1 tabula. Atiestatīt un pārtraukt vektorus
Vektora Nr. | Programmas adrese | Avots | Pārtraukt definīciju |
1 | 0x0000 | RESET | Ārējā tapa, ieslēgšanas atiestatīšana, izdzēšana no jauna, sargsuņa atiestatīšana |
2 | 0x0001 | INT0 | Ārējā pārtraukuma pieprasījums 0 |
3 | 0x0002 | PCINT0 | Piespraudes maiņas pārtraukuma pieprasījums 0 |
4 | 0x0003 | TIMER1_COMPA | Taimeris / skaitītājs1 Salīdziniet spēli A |
5 | 0x0004 | TIMER1_OVF | Taimeris / skaitītājs1 Pārplūde |
6 | 0x0005 | TIMER0_OVF | Taimeris / skaitītājs0 Pārplūde |
7 | 0x0006 | EE_RDY | EEPROM gatavs |
8 | 0x0007 | ANA_KOMP | Analogais salīdzinātājs |
9 | 0x0008 | ADC | ADC pārveidošana pabeigta |
10 | 0x0009 | TIMER1_COMPB | Taimeris / skaitītājs1 Salīdziniet spēli B |
11 | 0x000A | TIMER0_COMPA | Taimeris / skaitītājs0 Salīdziniet spēli A |
12 | 0x000B | TIMER0_COMPB | Taimeris / skaitītājs0 Salīdziniet spēli B |
13 | 0x000C | WDT | Sargsuņa noildze |
14 | 0x000D | USI_START | USI START |
15 | 0x000E | USI_OVF | USI pārpilde |
Ja programma nekad neiespējo pārtraukuma avotu, pārtraucošie vektori netiek izmantoti, un šajās vietās var ievietot parasto programmas kodu.
Tipisks un vispārējs pārtraukuma vektoru adrešu iestatījums ATtiny25/45/85 ir parādīts programmā example zemāk.
Montāžas kods Piemample | ||
.org 0x0000 | ; Iestatiet nākamā adresi | paziņojums |
rjmp ATIESTATĪT | ; Adrese 0x0000 | |
rjmp INT0_ISR | ; Adrese 0x0001 | |
rjmp PCINT0_ISR | ; Adrese 0x0002 | |
rjmp TIM1_COMPA_ISR | ; Adrese 0x0003 | |
rjmp TIM1_OVF_ISR | ; Adrese 0x0004 | |
rjmp TIM0_OVF_ISR | ; Adrese 0x0005 | |
rjmp EE_RDY_ISR | ; Adrese 0x0006 | |
rjmp ANA_COMP_ISR | ; Adrese 0x0007 | |
rjmp ADC_ISR | ; Adrese 0x0008 | |
rjmp TIM1_COMPB_ISR | ; Adrese 0x0009 | |
rjmp TIM0_COMPA_ISR | ; Adrese 0x000A | |
rjmp TIM0_COMPB_ISR | ; Adrese 0x000B | |
rjmp WDT_ISR | ; Adrese 0x000C | |
rjmp USI_START_ISR | ; Adrese 0x000D | |
rjmp USI_OVF_ISR | ; Adrese 0x000E | |
ATIESTATĪT: | ; Galvenās programmas sākums | |
; Adrese 0x000F | ||
… |
Piezīme: Skat “Kods Piemamples ”6. lpp.
Ārējie pārtraukumi
Ārējos traucējumus iedarbina INT0 tapa vai jebkura no PCINT [5: 0] tapām. Ievērojiet, ka, ja tas ir iespējots, pārtraukumi tiks aktivizēti pat tad, ja INT0 vai PCINT [5: 0] tapas ir konfigurētas kā izejas. Šī funkcija nodrošina programmatūras pārtraukuma ģenerēšanas veidu. Piespraudes maiņa pārtrauc PCI, ja aktivizējas jebkura iespējota PCINT [5: 0] tapa. PCMSK reģistra vadība, kuras tapas veicina tapu maiņu, tiek pārtrauktas. Tapu maiņas pārtraukumi PCINT [5: 0] tiek noteikti asinhroni. Tas nozīmē, ka šos pārtraukumus var izmantot, lai modinātu daļu arī no miega režīmiem, izņemot gaidīšanas režīmu.
INT0 pārtraukumus var izraisīt krītoša vai augoša mala vai zems līmenis. Tas ir iestatīts, kā norādīts MCU vadības reģistra - MCUCR specifikācijā. Kad INT0 pārtraukums ir iespējots un ir konfigurēts kā līmeņa aktivizēts, pārtraukums tiks aktivizēts tik ilgi, kamēr tapu tur zemu. Ņemiet vērā, ka krītošu vai augošu malu pārtraukumu atpazīšanai INT0 ir nepieciešams I / O pulkstenis, kas aprakstīts XNUMX Ieslēdzas “Pulksteņu sistēmas un to izplatīšana” 23. lpp.
Zema līmeņa pārtraukums
Zema līmeņa pārtraukums INT0 tiek noteikts asinhroni. Tas nozīmē, ka šo pārtraukumu var izmantot, lai modinātu daļu arī no miega režīmiem, izņemot gaidīšanas režīmu. Ieejas / izejas pulkstenis tiek apturēts visos miega režīmos, izņemot gaidīšanas režīmu.
Ņemiet vērā, ka, ja pamodināšanai no izslēgšanas tiek izmantots līmeņa aktivizēts pārtraukums, nepieciešamais līmenis ir jāuztur pietiekami ilgi, lai MCU varētu pabeigt pamodināšanu, lai aktivizētu līmeņa pārtraukumu. Ja līmenis pazūd pirms palaišanas laika beigām, MCU joprojām pamostas, bet pārtraukums netiks ģenerēts. Palaišanas laiku nosaka SUT un CKSEL drošinātāji, kā aprakstīts “Sistēmas pulksteņa un pulksteņa opcijas” 23. lpp.
Ja zemais pārtraukuma tapas līmenis tiek noņemts, pirms ierīce ir pamodusies, programmas izpilde netiks novirzīta uz pārtraukšanas pakalpojuma rutīnu, bet turpināsies no instrukcijas, izpildot komandu SLEEP.
Piespraudes maiņas pārtraukuma laiks
Bijušaisampir parādīts tapas maiņas pārtraukuma laika grafiks Attēls 9-1.
Reģistrācijas apraksts
MCUCR - MCU vadības reģistrs
Ārējā pārtraukumu kontroles reģistrā A ir vadības biti pārtraukuma sajūtas kontrolei.
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Lasīt/rakstīt | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Biti 1: 0 - ISC0 [1: 0]: Pārtraukt Sense Control 0 bitu 1 un bitu 0
Ārējo pārtraukumu 0 aktivizē ārējais kontakts INT0, ja ir iestatīts SREG I karodziņš un atbilstošā pārtraukuma maska. Ārējā INT0 tapas līmenis un malas, kas aktivizē pārtraukumu, ir definēti 9-2 tabula. INT0 tapas vērtība ir sampvadīja pirms malu noteikšanas. Ja ir izvēlēts malas vai pārslēgšanas pārtraukums, impulsi, kas ilgst vairāk nekā vienu pulksteņa periodu, radīs pārtraukumu. Nav garantēts, ka īsāki impulsi radīs pārtraukumu. Ja ir izvēlēts zema līmeņa pārtraukums, zemais līmenis jāuztur, līdz tiek pabeigta pašlaik izpildāmā instrukcija, lai ģenerētu pārtraukumu.
9-2 tabula. Pārtraukt 0 Sense Control
ISC01 | ISC00 | Apraksts |
0 | 0 | Zemais INT0 līmenis ģenerē pārtraukuma pieprasījumu. |
0 | 1 | Jebkuras loģiskas izmaiņas INT0 ģenerē pārtraukuma pieprasījumu. |
1 | 0 | INT0 krītošā mala ģenerē pārtraukuma pieprasījumu. |
1 | 1 | INT0 pieaugošā mala ģenerē pārtraukuma pieprasījumu. |
GIMSK - Vispārējs pārtraucošo masku reģistrs
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | INT0 | PCIE | – | – | – | – | – | GIMSK |
Lasīt/rakstīt | R | R/W | R/W | R | R | R | R | R | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bits 7, 4: 0 - Res: Rezervētie biti
Šie biti ir rezervēti biti ATtiny25 / 45/85, un tie vienmēr tiks nolasīti kā nulle.
6. bits - INT0: ārējā pārtraukuma pieprasījums 0 iespējot
Kad ir iestatīts INT0 bits (viens) un I bits statusa reģistrā (SREG) ir iestatīts (viens), tiek iespējots ārējā kontakta pārtraukums. Interrupt Sense Control0 biti 1/0 (ISC01 un ISC00) MCU vadības reģistrā (MCUCR) nosaka, vai ārējais pārtraukums tiek aktivizēts, pieaugot un / vai krītot INT0 tapas malai vai uztverot līmeni. Darbība ar tapu izraisīs pārtraukuma pieprasījumu, pat ja INT0 ir konfigurēta kā izeja. Attiecīgais ārējā pārtraukuma pieprasījuma 0 pārtraukums tiek veikts no INT0 pārtraukuma vektora.
5. bits - PCIE: iespējot tapu maiņas pārtraukumu
Kad PCIE bits ir iestatīts (viens) un I bits statusa reģistrā (SREG) ir iestatīts (viens), ir iespējota tapu maiņas pārtraukšana. Jebkuras izmaiņas jebkurā iespējotajā PCINT [5: 0] tapā izraisīs pārtraukumu. Attiecīgais Pin Change Interrupt pieprasījuma pārtraukums tiek izpildīts no PCI Interrupt Vector. PCMSK5 reģistrs individuāli iespējo PCINT [0: 0] tapas.
GIFR - Vispārējs pārtraukumu karogu reģistrs
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3A | – | INTF0 | PCIF | – | – | – | – | – | GIFR |
Lasīt/rakstīt | R | R/W | R/W | R | R | R | R | R | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bits 7, 4: 0 - Res: Rezervētie biti
Šie biti ir rezervēti biti ATtiny25 / 45/85, un tie vienmēr tiks nolasīti kā nulle.
6. bits - INTF0: ārējais pārtraukuma karogs 0
Kad mala vai loģikas izmaiņas INT0 tapā izraisa pārtraukuma pieprasījumu, INTF0 kļūst iestatīts (viens). Ja I bits SREG un INT0 bits GIMSK ir iestatīts (viens), MCU pāriet uz atbilstošo pārtraukuma vektoru. Karogs tiek notīrīts, kad tiek izpildīta pārtraukšanas rutīna. Alternatīvi, karodziņu var notīrīt, uzrakstot tam loģisku. Šis karodziņš vienmēr tiek notīrīts, kad INT0 ir konfigurēts kā līmeņa pārtraukums.
5. bits - PCIF: Pin Change Interrupt Flag
Kad jebkuras PCINT [5: 0] tapas loģiskās izmaiņas izraisa pārtraukuma pieprasījumu, PCIF kļūst iestatīts (viens). Ja I bits SREG un PCIE bits GIMSK ir iestatīts (viens), MCU pāriet uz atbilstošo pārtraukuma vektoru. Karogs tiek notīrīts, kad tiek izpildīta pārtraukšanas rutīna. Alternatīvi, karodziņu var notīrīt, uzrakstot tam loģisku.
PCMSK - tapu maiņas maskas reģistrs
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | PCMSK |
Lasīt/rakstīt | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Biti 7: 6 - Res: rezervētie biti
Šie biti ir rezervēti biti ATtiny25 / 45/85, un tie vienmēr tiks nolasīti kā nulle.
Bits 5: 0 - PCINT [5: 0]: Pin Change Enable Mask 5: 0
Katrs PCINT [5: 0] bits izvēlas, vai tapas maiņas pārtraukums ir iespējots attiecīgajā I / O tapā. Ja ir iestatīts PCINT [5: 0] un ir iestatīts PCIE bits GIMSK, tapas maiņas pārtraukums ir iespējots attiecīgajā I / O tapā. Ja PCINT [5: 0] ir notīrīts, tapas maiņas pārtraukums attiecīgajā I / O tapā ir atspējots.
I/O porti
Ievads
Visiem AVR portiem ir patiesa Read-Modify-Write funkcionalitāte, ja tos izmanto kā vispārējus digitālos I/O portus. Tas nozīmē, ka viena porta tapas virzienu var mainīt, nejauši nemainot nevienas citas tapas virzienu, izmantojot SBI un CBI norādījumus. Tas pats attiecas, mainot piedziņas vērtību (ja tā ir konfigurēta kā izeja) vai iespējojot/atspējojot uzvilkšanas rezistorus (ja tā ir konfigurēta kā ievade). Katram izvades buferim ir simetriskas piedziņas īpašības ar augstu izlietnes un avota spēju. Tapas virzītājs ir pietiekami spēcīgs, lai tieši vadītu LED displejus. Visām pieslēgvietām ir individuāli atlasāmi uzvilkšanas rezistori ar pieplūdes tilpumutage nemainīga pretestība. Visām I/O tapām ir aizsargdiodes gan VCC, gan zemei, kā norādīts Attēls 10-1. Atsaucieties uz “Elektriskie parametri” 161. lpp lai iegūtu pilnu parametru sarakstu.
Attēls 10-1. I/O tapu ekvivalenta shēma
Visi reģistri un bitu atsauces šajā sadaļā ir uzrakstīti vispārīgā formā. Mazie burti “x” apzīmē ostas numerācijas burtu, bet mazie “n” apzīmē bitu numuru. Tomēr, programmā izmantojot reģistru vai bitu definīcijas, jāizmanto precīza forma. Piemample, PORTB3 bitam Nr. 3 B ostā, šeit parasti dokumentēts kā PORTxn. Fiziskie I/O reģistri un bitu atrašanās vietas ir norādītas Ieslēgts “Reģistrācijas apraksts” 64. lpp.
Katram portam tiek piešķirtas trīs ieejas / izejas atmiņas adreses, katra pa vienai datu reģistram - PORTx, datu virzienu reģistram - DDRx un porta ievades tapām - PINx. Porta ievades kontaktu I / O atrašanās vieta ir tikai lasāma, savukārt datu reģistrs un datu virzienu reģistrs tiek lasīts / rakstīts. Tomēr, ierakstot loģiku viens uz otru PINx reģistrā, datu reģistrā tiks pārslēgts attiecīgais bits. Turklāt MCUCR bits Pull-up Disable - PUD atspējo visu pogu izvilkšanas funkciju, ja tā ir iestatīta.
I / O porta izmantošana kā vispārēju digitālo I / O ir aprakstīta “Porti kā vispārējs digitālais I / O” 53. lpp. Lielākā daļa portu tapu ir multipleksētas ar alternatīvām ierīces perifēro funkciju funkcijām. Tas, kā katra alternatīvā funkcija mijiedarbojas ar porta tapu, ir aprakstīts “Alternatīvās ostas funkcijas” 57. lpp. Pilnu alternatīvo funkciju aprakstu skatiet atsevišķu moduļu sadaļās.
Ņemiet vērā, ka dažu porta tapu alternatīvās funkcijas iespējošana neietekmē citu portā esošo kontaktu izmantošanu kā vispārēju digitālo I / O.
Ostas kā vispārējā digitālā I / O
Pieslēgvietas ir divvirzienu I / O pieslēgvietas ar izvēles iekšējiem izvilkumiem. Attēls 10-2 parāda vienas I / O porta tapas, ko šeit parasti sauc par Pxn, funkcionālu aprakstu.
Attēls 10-2. Vispārējā digitālā I/O(1)
Konfigurē tapu
Katra porta tapa sastāv no trim reģistra bitiem: DDxn, PORTxn un PINxn. Kā parādīts Ieslēgts “Reģistrācijas apraksts” 64. lpp, DDxn bitiem var piekļūt DDRx I / O adresē, PORTxn bitiem PORTx I / O adresē un PINxn bitiem PINx I / O adresē.
DDRx reģistra DDxn bits izvēlas šīs tapas virzienu. Ja DDxn ir loģisks raksturs, Pxn ir konfigurēts kā izvades tapa. Ja DDxn ir loģiska nulle, Pxn ir konfigurēts kā ievades tapa.
Ja PORTxn ir loģiska loģika, kad tapa ir konfigurēta kā ievades tapa, tiek aktivizēts pievilkšanas rezistors. Lai izslēgtu pievilkšanas rezistoru, PORTxn ir jānorāda loģika nulle vai tapa ir jākonfigurē kā izvades tapa. Porta tapas tiek noteiktas trīs reizes, kad atiestatīšanas stāvoklis kļūst aktīvs, pat ja nedarbojas neviens pulkstenis.
Ja PORTxn ir loģiska loģika, kad tapa ir konfigurēta kā izvades tapa, porta tapa tiek virzīta augstu (viena). Ja PORTxn ir ierakstīta loģiskā nulle, kad tapa ir konfigurēta kā izvades tapa, porta tapa tiek virzīta zemu (nulle).
Pieskaroties tapai
Rakstot loģiku PINxn, tiek pārslēgta PORTxn vērtība neatkarīgi no DDRxn vērtības. Ņemiet vērā, ka SBI instrukciju var izmantot, lai ostā pārslēgtu vienu bitu.
Pārslēgšanās starp ieeju un izeju
Pārslēdzoties starp trīsstāvokļiem ({DDxn, PORTxn} = 0b00) un augstu izvadi ({DDxn, PORTxn} = 0b11), starpstāvokli ar iespējotu vilkšanu {DDxn, PORTxn} = 0b01) vai zemu izvadi. ({DDxn, PORTxn} = 0b10) ir jānotiek. Parasti pievilkšanas iespējotais stāvoklis ir pilnībā pieņemams, jo augsta pretestības vide nepamanīs atšķirību starp spēcīgu augstu vadītāju un pievilkšanos. Ja tas tā nav, PUD bitu MCUCR reģistrā var iestatīt, lai atspējotu visus uzvilkumus visos portos.
Pārslēgšanās starp ieeju ar izvilkšanu un zemu izeju rada to pašu problēmu. Lietotājam kā starpposms jāizmanto vai nu trīsstāvoklis ({DDxn, PORTxn} = 0b00), vai augsts izejas stāvoklis ({DDxn, PORTxn} = 0b10).
10-1 tabula apkopo tapas vērtības vadības signālus.
10-1 tabula. Porta pin konfigurācijas
DDxn | PORTxn | PUD
(MCUCR) |
I/O | Pievilkšanās | komentēt |
0 | 0 | X | Ievade | Nē | Trīsvalsts (Hi-Z) |
0 | 1 | 0 | Ievade | Jā | Pxn avotu strāvu, ja ext. vilkts zemu. |
0 | 1 | 1 | Ievade | Nē | Trīsvalsts (Hi-Z) |
1 | 0 | X | Izvade | Nē | Zema izeja (izlietne) |
1 | 1 | X | Izvade | Nē | Augsta izeja (avots) |
Pin vērtības nolasīšana
Neatkarīgi no datu virziena bita DDxn iestatīšanas, porta tapu var nolasīt caur PINxn reģistra bitu. Kā parādīts Attēls 10-2, PINxn reģistra bits un iepriekšējais aizbīdnis veido sinhronizatoru. Tas ir nepieciešams, lai izvairītos no metastabilitātes, ja fiziskā piespraude maina vērtību netālu no iekšējā pulksteņa malas, taču tas arī ievieš kavēšanos. Attēls 10-3 parāda sinhronizācijas laika diagrammu, nolasot ārēji lietotu tapas vērtību. Maksimālā un minimālā izplatīšanās aizkave ir attiecīgi apzīmēta ar tpd,max un tpd,min.
Apsveriet pulksteņa periodu, kas sākas neilgi pēc sistēmas pulksteņa pirmās kritošās malas. Fiksators ir aizvērts, kad pulkstenis ir zems, un, kad pulkstenis ir augsts, tas kļūst caurspīdīgs, kā norāda signāla “SYNC LATCH” aizēnotais reģions. Signāla vērtība tiek fiksēta, kad sistēmas pulkstenis ir zems. Tas tiek reģistrēts PINxn reģistrā pozitīvajā pulksteņa malā. Kā norāda divas bultiņas tpd, max un tpd, min, viena signāla pāreja uz tapas tiks aizkavēta starp ½ un 1 sistēmas pulksteņa periodu atkarībā no apgalvojuma laika.
Izlasot programmatūrai piešķirto PIN vērtību, jāievieto nop instrukcija, kā norādīts Attēls 10-4. Out out instrukcija “SYNC LATCH” signālu iestata pulksteņa pozitīvajā malā. Šajā gadījumā kavēšanās tpd caur sinhronizatoru ir viens sistēmas pulksteņa periods.
Šāds kods, piemample parāda, kā iestatīt porta B kontaktus 0 un 1 augstumā, 2 un 3 zemu un definēt pieslēgvietas tapas no 4 līdz 5 kā ievadi ar izvilkšanu, kas piešķirta porta kontaktam 4. Iegūtās tapu vērtības tiek nolasītas vēlreiz, bet kā minēts iepriekš, ir iekļauta nop instrukcija, lai varētu nolasīt vērtību, kas nesen piešķirta dažiem tapām.
Montāžas kods Piemample(1) |
…
; Definējiet pievilkšanos un iestatiet augstus rezultātus ; Definējiet portu tapu virzienus ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0) ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) out PORTB,r16 ārā DDRB,r17 ; Ievietojiet nop sinhronizācijai nē ; Lasīt porta tapas r16, PINB … |
Piezīme. Montāžas programmā tiek izmantoti divi pagaidu reģistri, lai samazinātu laiku no pievilkšanas brīža uz 0, 1 un 4 tapām, līdz virziena biti ir pareizi iestatīti, definējot 2. un 3. bitu kā zemu un no jauna definējot bitus 0 un 1. XNUMX kā spēcīgi augsti braucēji.
C Kods Piemample |
neparakstīts char i;
… /* Definējiet pievilkšanos un iestatiet augstu izvadi */ /* Norādiet virzienus porta tapām */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Sinhronizācijai ievietot nop*/ _NOP (); /* Lasīt porta tapas */ i = PINB; … |
Digitālās ievades iespējošana un miega režīmi
Kā parādīts Attēls 10-2, digitālais ievades signāls var būt clamped uz zemējumu pie Šmita sprūda ieejas. Signālu, kas attēlā apzīmēts ar SLEEP, MCU miega kontrolieris iestata izslēgšanas režīmā, lai izvairītos no liela enerģijas patēriņa, ja daži ieejas signāli paliek peldoši vai tiem ir analogā signāla līmenis tuvu VCC/2.
SLEEP tiek ignorēts ostas tapām, kas iespējotas kā ārējās pārtraukšanas tapas. Ja ārējā pārtraukuma pieprasījums nav iespējots, SLEEP ir aktīvs arī šīm tapām. SLEEP tiek ignorētas arī ar dažādām citām alternatīvām funkcijām, kā aprakstīts “Alternatīvās ostas funkcijas” 57. lpp.
Ja asinhronā ārējā pārtraukuma tapā, kas konfigurēta kā “Pārtraukums uz augšupejas malas, krītoša mala vai jebkura loģikas maiņa uz tapas”, ir augsts loģikas līmenis (“viens”), kamēr ārējais pārtraukums nav iespējots, tiks parādīts atbilstošais ārējā pārtraukuma karodziņš. jāiestata, atsākot no iepriekš minētā miega režīma, jo clampŠajā miega režīmā tiek veiktas vajadzīgās loģikas izmaiņas.
Nesavienotas piespraudes
Ja dažas tapas netiek izmantotas, ieteicams pārliecināties, ka šīm tapām ir noteikts līmenis. Lai gan lielākā daļa digitālo ieeju ir izslēgta dziļā miega režīmos, kā aprakstīts iepriekš, ir jāizvairās no peldošām ieejām, lai samazinātu strāvas patēriņu visos pārējos režīmos, kur ir iespējotas digitālās ieejas (Atiestatīt, Aktīvais režīms un Dīkstāves režīms).
Vienkāršākā metode, kā nodrošināt noteiktu neizmantotas tapas līmeni, ir iespējot iekšējo vilkšanu. Šādā gadījumā atiestatīšanas laikā vilkšana tiks atspējota. Ja atiestatīšanas laikā ir svarīgs zems enerģijas patēriņš, ieteicams izmantot ārēju pievilkšanas vai nolaižamo ierīci. Nav ieteicams tieši savienot neizmantotos kontaktus ar VCC vai GND, jo tas var izraisīt pārmērīgu strāvu, ja kontaktdakša tiek nejauši konfigurēta kā izeja.
Alternatīvās ostas funkcijas
Lielākajai daļai ostu tapu ir arī alternatīvas funkcijas, turklāt tās ir vispārējas digitālās I / Os. Attēls 10-5 parāda, kā porta tapas vadības signāli no vienkāršotā Attēls 10-2 var aizstāt ar alternatīvām funkcijām. Galvenie signāli, iespējams, nav visos pieslēgvietu tapās, bet attēls kalpo kā vispārīgs apraksts, kas piemērojams visām AVR mikrokontrolleru saimes pieslēgvietām.
10-2 tabula. Vispārējs alternatīvo funkciju ignorēšanas signālu apraksts
Signāla nosaukums | Pilns vārds | Apraksts |
PUOE | Iespējot augšupielādes ignorēšanu | Ja šis signāls ir iestatīts, izvilkšanas iespējošanu kontrolē PUOV signāls. Ja šis signāls tiek notīrīts, izvilkšana tiek iespējota, kad
{DDxn, PORTxn, PUD} = 0b010. |
PUOV | Pull-up ignorēt vērtību | Ja PUOE ir iestatīts, izvilkšana tiek iespējota / atspējota, kad PUOV ir iestatīts / notīrīts, neatkarīgi no DDxn, PORTxn un PUD reģistra bitu iestatījuma. |
DDOE | Datu virziena ignorēšanas iespējošana | Ja šis signāls ir iestatīts, Output Driver Enable kontrolē DDOV signāls. Ja šis signāls tiek notīrīts, izvades draiveris tiek iespējots ar DDxn reģistra bitu. |
DDOV | Datu virziena ignorēšanas vērtība | Ja ir iestatīts DDOE, izejas draiveris tiek iespējots / atspējots, kad DDOV ir iestatīts / notīrīts, neatkarīgi no DDxn reģistra bita iestatījuma. |
PVOE | Pārtikas vērtības ignorēšana Iespējot | Ja šis signāls ir iestatīts un izejas draiveris ir iespējots, porta vērtību kontrolē PVOV signāls. Ja PVOE ir notīrīts un izejas draiveris ir iespējots, porta vērtību kontrolē bits PORTxn Register. |
PVOV | Porta vērtības ignorēšanas vērtība | Ja ir iestatīts PVOE, porta vērtība tiek iestatīta uz PVOV neatkarīgi no PORTxn reģistra bita iestatījuma. |
Jūgvārpsta | Portu pārslēgšanas ignorēšanas iespējošana | Ja ir iestatīts PTOE, tiek apgriezts PORTxn reģistra bits. |
DIEOE | Digitālās ievades iespējošana Pārvarēšanas iespējošana | Ja šis bits ir iestatīts, digitālās ievades iespējošanu kontrolē DIEOV signāls. Ja šis signāls tiek notīrīts, digitālās ievades iespējošanu nosaka MCU stāvoklis (normāls režīms, miega režīms). |
DIEOV | Digitālā ievade Iespējot ignorēt vērtību | Ja ir iestatīts DIEOE, digitālā ieeja tiek iespējota / atspējota, kad DIEOV ir iestatīts / notīrīts, neatkarīgi no MCU stāvokļa (parastais režīms, miega režīms). |
DI | Digitālā ieeja | Šī ir digitālā ieeja alternatīvām funkcijām. Attēlā signāls ir savienots ar schmitt-trigera izeju, bet pirms sinhronizatora. Ja vien digitālo ieeju neizmanto kā pulksteņa avotu, modulis ar alternatīvo funkciju izmantos savu sinhronizatoru. |
AIO | Analogā ieeja / izeja | Šī ir analogā ievade / izeja uz / no alternatīvām funkcijām. Signāls ir savienots tieši ar spilventiņu, un to var izmantot divvirzienu virzienā. |
Turpmākajās apakšnodaļās īsi aprakstītas alternatīvās funkcijas katram portam un galvenie signāli ir saistīti ar alternatīvo funkciju. Papildinformāciju skatiet alternatīvajā funkcijas aprakstā.
B ostas alternatīvās funkcijas
B porta tapas ar alternatīvu funkciju ir parādītas 10-3 tabula.
10-3 tabula. Porta B tapas Alternatīvās funkcijas
Porta pin | Alternatīvā funkcija |
PB5 | ![]() ATIESTATĪT: Atiestatīt tapu dW: atkļūdošanaWIRE I / O ADC0: ADC ievades kanāls 0 PCINT5: tapas maiņas pārtraukums, 5. avots |
PB4 | XTAL2: kristāla oscilatora izeja CLKO: sistēmas pulksteņa izeja ADC2: ADC ievades 2. kanāls
OC1B: taimeris / skaitītājs1 salīdziniet spēles B izeju PCINT4: tapas maiņas pārtraukums 0, avots 4 |
PB3 | XTAL1: kristāla oscilatora ieeja CLKI: ārējā pulksteņa ieeja ADC3: ADC ievades 3. kanāls
OC1B: papildu taimeris / skaitītājs1 salīdziniet spēles B izeju PCINT3: tapas maiņas pārtraukums 0, avots 3 |
PB2 | SCK: sērijveida pulksteņa ievade ADC1: ADC ievades 1. kanāls
T0: taimeris / skaitītājs0 pulksteņa avots USCK: USI pulkstenis (trīs vadu režīms) SCL: USI pulkstenis (divu vadu režīms) INT0: ārējs pārtraukums 0 ievade PCINT2: tapas maiņas pārtraukums 0, avots 2 |
PB1 | MISO: SPI pamatdatu ievade / pakārtoto datu izeja AIN1: analogais salīdzinātājs, negatīvā ievade OC0B: taimeris / skaitītājs0 salīdzinājums B atbilstības izeja OC1A: taimeris / skaitītājs1 salīdzināt atbilstības A izeju DO: USI datu izvade (trīs vadu režīms) PCINT1: tapas maiņas pārtraukums 0, 1. avots |
PB0 | MOSI :: SPI pamatdatu izvade / vergu datu ievade AIN0: analogais salīdzinātājs, pozitīvā ievade
OC0A: Timer/Counter0 Salīdziniet atbilstības A izvadi OC1A: papildu taimeris / skaitītājs1 Salīdziniet atbilstības A izeju DI: USI datu ievade (trīs vadu režīms) SDA: USI datu ievade (divu vadu režīms) AREF: ārējā analogā atsauce PCINT0: tapas maiņas pārtraukums 0, avots 0 |
B ports, 5. bits - RESET / dW / ADC0 / PCINT5
Atiestatīt: ārējā atiestatīšanas ievade ir aktīva, un tā ir iespējota, atprogramējot (“1”) RSTDISBL drošinātāju. Ja tapu izmanto kā RESET tapu, tiek aktivizēta izvilkšana un izejas draiveris un digitālā ieeja.
dW: Kad ir ieprogrammēts atkļūdošanas WIRE Enable (DWEN) drošinātājs un bloķēšanas biti nav ieprogrammēti, mērķa ierīcē tiek aktivizēta debugWIRE sistēma. RESET porta tapa ir konfigurēta kā divvirzienu I / O tapa ar vadu UN (atvērta aizplūšana) ar iespējotu uzvilkšanu un kļūst par komunikācijas vārteju starp mērķi un emulatoru.
ADC0: analogais-digitālais pārveidotājs, 0. kanāls.
PCINT5: Pin Change Interrupt avots 5.
B ports, 4. bits - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: mikroshēmas pulksteņa oscilatora tapa 2. Izmanto kā pulksteņa tapu visiem mikroshēmas pulksteņa avotiem, izņemot iekšējo kalibrējamo RC oscilatoru un ārējo pulksteni. Ja to izmanto kā pulksteņa tapu, tapu nevar izmantot kā I / O tapu. Izmantojot mikroshēmas iekšējo kalibrējamo oscilatoru vai ārējo pulksteni kā mikroshēmas pulksteņa avotus, PB4 kalpo kā parasta I / O tapa.
CLKO: Sadalīto sistēmas pulksteni var izvadīt uz tapas PB4. Sadalītais sistēmas pulkstenis tiks izvadīts, ja tiek ieprogrammēts drošinātājs CKOUT, neatkarīgi no PORTB4 un DDB4 iestatījumiem. Tas tiks izvadīts arī atiestatīšanas laikā.
ADC2: analogais-digitālais pārveidotājs, 2. kanāls.
OC1B: izejas salīdzināšanas atbilstības izeja: PB4 tapa var kalpot kā taimera / skaitītāja1 salīdzināt maču B ārēja izeja, ja tā ir konfigurēta kā izeja (DDB4 komplekts). OC1B tapa ir arī PWM režīma taimera funkcijas izvades tapa.
PCINT4: Pin Change Interrupt avots 4.
B ports, 3. bits - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: mikroshēmas pulksteņa oscilatora tapa 1. Izmanto visiem mikroshēmas pulksteņa avotiem, izņemot iekšējo kalibrējamo RC oscilatoru. Ja to izmanto kā pulksteņa tapu, tapu nevar izmantot kā I / O tapu.
CLKI: pulksteņa ievade no ārēja pulksteņa avota, sk “Ārējais pulkstenis” 26. lpp.
ADC3: analogais-digitālais pārveidotājs, 3. kanāls.
OC1B: Apgriezta izvades salīdzināšanas atbilstības izeja: PB3 tapa var kalpot kā taimera / skaitītāja1 Salīdzināt maču B ārēja izeja, ja tā ir konfigurēta kā izeja (DDB3 komplekts). OC1B tapa ir arī apgrieztā izvades tapa PWM režīma taimera funkcijai.
PCINT3: Pin Change Interrupt avots 3.
B ports, 2. bits - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: galvenā pulksteņa izeja, vergu pulksteņa ievades tapa SPI kanālam. Kad SPI ir iespējots kā vergs, šī tapa tiek konfigurēta kā ieeja neatkarīgi no DDB2 iestatījuma. Kad SPI ir iespējots kā Master, šīs tapas datu virzienu kontrolē DDPB2. Kad SPI piespiež tapu būt ievadam, izvilkšanu joprojām var kontrolēt ar PORTB2 bitu.
ADC1: analogais-digitālais pārveidotājs, 1. kanāls.
T0: taimera / skaitītāja0 skaitītāja avots.
USCK: trīs vadu režīma universālais seriālās saskarnes pulkstenis.
SCL: divu vadu režīma sērijveida pulkstenis USI divu vadu režīmam.
INT0: ārējais pārtraukuma avots 0.
PCINT2: Pin Change Interrupt avots 2.
B ports, 1. bits - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: pamatdatu ievade, vergu datu izvades tapa SPI kanālam. Kad SPI ir iespējots kā Master, šī tapa tiek konfigurēta kā ieeja neatkarīgi no DDB1 iestatījuma. Kad SPI ir iespējots kā vergs, šīs tapas datu virzienu kontrolē DDB1. Kad SPI piespiež tapu būt ievadam, izvilkšanu joprojām var kontrolēt ar PORTB1 bitu.
AIN1: Analogā salīdzinātāja negatīvā ievade. Konfigurējiet porta tapu kā ievadi ar izslēgtu iekšējo pievilkšanas ierīci, lai digitālā porta funkcija netraucētu Analog Comparator funkciju.
OC0B: izeja salīdzināt izejas rezultātu. PB1 tapa var kalpot kā ārēja izeja taimera / skaitītāja0 salīdzinājumam B. PB1 tapa ir jākonfigurē kā izeja (DDB1 komplekts (viens)), lai kalpotu šai funkcijai. OC0B tapa ir arī PWM režīma taimera funkcijas izvades tapa.
OC1A: izejas salīdzināšanas atbilstības izeja: PB1 tapa var kalpot kā taimera / skaitītāja1 salīdzināšanas mača B ārēja izeja, ja tā ir konfigurēta kā izeja (DDB1 komplekts). OC1A tapa ir arī PWM režīma taimera funkcijas izvades tapa.
DO: trīs vadu režīma universālās sērijas saskarnes datu izvade. Trīs vadu režīms Datu izvade ignorē PORTB1 vērtību, un tā tiek virzīta uz portu, kad ir iestatīts datu virziena bits DDB1 (viens). PORTB1 joprojām nodrošina izvilkšanu, ja tiek ievadīts virziens un PORTB1 ir iestatīts (viens).
PCINT1: Pin Change Interrupt avots 1.
B ports, 0. bits - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: SPI pamatdatu izvade, vergu datu ievade SPI kanālam. Kad SPI ir iespējots kā vergs, šī tapa tiek konfigurēta kā ieeja neatkarīgi no DDB0 iestatījuma. Kad SPI ir iespējots kā Master, šīs tapas datu virzienu kontrolē DDB0. Kad SPI piespiež tapu būt ievadam, izvilkšanu joprojām var kontrolēt ar PORTB0 bitu.
AIN0: Analogā salīdzinātāja pozitīvā ievade. Konfigurējiet porta tapu kā ievadi ar izslēgtu iekšējo pievilkšanas ierīci, lai digitālā porta funkcija netraucētu Analog Comparator funkciju.
OC0A: izeja salīdzināt izejas rezultātu. PB0 tapa var kalpot kā taimera / skaitītāja0 salīdzināt maču A ārēja izeja, ja tā ir konfigurēta kā izeja (DDB0 komplekts (viens)). OC0A tapa ir arī PWM režīma taimera funkcijas izvades tapa.
OC1A: Apgriezta izvades salīdzināšanas atbilstības izeja: PB0 tapa var kalpot kā taimera / skaitītāja1 Salīdzināt atbilstību B ārēja izeja, ja tā ir konfigurēta kā izeja (DDB0 komplekts). OC1A tapa ir arī apgrieztā izvades tapa PWM režīma taimera funkcijai.
SDA: divu vadu režīma sērijas interfeisa dati.
AREF: Ārējā analogā atsauce ADC. Savilkšanas un izvades draiveris ir atspējots PB0, ja tapu izmanto kā ārēju atsauci vai iekšējo sējumutage Atsauce uz ārējo kondensatoru pie AREF tapas.
DI: datu ievade USI trīsvadu režīmā. USI Trīs vadu režīmā netiek ignorētas parastās porta funkcijas, tāpēc tapai jābūt konfigurētai kā ieejai DI funkcijai.
PCINT0: Pin Change Interrupt avots 0.
10-4 tabula un 10-5 tabula saistīt B porta alternatīvās funkcijas ar galvenajiem signāliem, kas parādīti Attēls 10-5 ieslēgts 58. lpp.
10-4 tabula. Signālu ignorēšana alternatīvām funkcijām PB[5:3]
Signāla nosaukums | 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 pārsūtīšana | 0 | 0 |
PVOE | 0 | OC1B Iespējot | ![]() OC1B Iespējot |
PVOV | 0 | OC1B | OC1B |
Jūgvārpsta | 0 | 0 | 0 |
DIEOE | ![]() RSTDISBL(1) + (PCINT5 • PCIE + ADC0D) |
PCINT4 • PCIE + ADC2D | PCINT3 • PCIE + ADC3D |
DIEOV | ADC0D | ADC2D | ADC3D |
DI | PCINT5 ieeja | PCINT4 ieeja | PCINT3 ieeja |
AIO | RESET ieeja, ADC0 ieeja | ADC2 ievade | ADC3 ievade |
Piezīme: ja drošinātājs ir “0” (ieprogrammēts).
10-5 tabula. Signālu ignorēšana alternatīvām funkcijām PB[2:0]
Signāla nosaukums | PB2/SCK/ADC1/T0/ USCK/SCL/INT0/PCINT2 | PB1/MISO/DO/AIN1/ OC1A/OC0B/PCINT1 | PB0/MOSI/DI/SDA/AIN0/AR EF/OC1A/OC0A/
PCINT0 |
PUOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
PUOV | 0 | 0 | 0 |
DDOE | USI_TWO_WIRE | 0 | USI_TWO_WIRE |
DDOV | (USI_SCL_HOLD + PORTB2) • DDB2 | 0 | ![]() ![]() (SDA + PORTB0) • DDB0 |
PVOE | USI_TWO_WIRE • DDB2 | OC0B Iespējot + OC1A Iespējot + USI_THREE_WIRE | ![]() OC0A Iespējot + OC1A Iespējot + (USI_TWO_WIRE DDB0) |
PVOV | 0 | OC0B + OC1A + DO | ![]() OC0A + OC1A |
Jūgvārpsta | USITC | 0 | 0 |
DIEOE | PCINT2 • PCIE + ADC1D + USISIE | PCINT1 • PCIE + AIN1D | PCINT0 • PCIE + AIN0D + USISIE |
DIEOV | ADC1D | AIN1D | AIN0D |
DI | T0 / USCK / SCL / INT0 /
PCINT2 ieeja |
PCINT1 ieeja | DI / SDA / PCINT0 ieeja |
AIO | ADC1 ievade | Analoga salīdzinātāja negatīvā ievade | Analogā salīdzinātāja pozitīvā ievade |
Reģistrācijas apraksts
MCUCR - MCU vadības reģistrs
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Lasīt/rakstīt | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
6. bits - PUD: atspiešanās atspējota
Kad šis bits ir ierakstīts vienam, ievades I / O portos tiek atspējotas, pat ja DDxn un PORTxn reģistri ir konfigurēti, lai iespējotu izvilkumus ({DDxn, PORTxn} = 0b01). Skat “Piespraudes konfigurēšana” 54. lpp lai iegūtu sīkāku informāciju par šo funkciju.
PORTB - B ostas datu reģistrs
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 | PORTB |
Lasīt/rakstīt | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - B porta datu virzienu reģistrs
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | DDRB |
Lasīt/rakstīt | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Sākotnējā vērtība | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - B porta ievades kontaktu adrese
Mazliet | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 | PINB |
Lasīt/rakstīt | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Sākotnējā vērtība | 0 | 0 | N/A | N/A | N/A | N/A | N/A | N/A |
8 bitu taimeris / skaitītājs0 ar PWM
Funkcijas
Divas neatkarīgas izejas salīdzināšanas vienības
Dubultā bufera izejas salīdzināšanas reģistri
Notīrīt taimeri, salīdzinot spēli (automātiskā ielāde)
Bez traucējumiem, fāzes pareiza impulsa platuma modulators (PWM)
Mainīgs PWM periods
Frekvenču ģenerators
Trīs neatkarīgi pārtraucoši avoti (TOV0, OCF0A un OCF0B)
Beigāsview
Taimeris / skaitītājs0 ir vispārējas nozīmes 8 bitu taimera / skaitītāja modulis ar divām neatkarīgām izejas salīdzināšanas vienībām un ar PWM atbalstu. Tas ļauj precīzu programmas izpildes laiku (notikumu pārvaldību) un viļņu ģenerēšanu.
Vienkāršota 8 bitu taimera / skaitītāja blokshēma ir parādīta Attēls 11-1. I / O tapu faktisko izvietojumu skatiet “Pinout ATtiny25 / 45/85” 2. lpp. Procesoram pieejamie I / O reģistri, ieskaitot I / O bitus un I / O tapas, ir parādīti treknrakstā. Ierīcei raksturīgais I / O reģistrs un bitu atrašanās vietas ir norādītas “Reģistrācijas apraksts” 77. lpp.
Taimeris/skaitītājs (TCNT0) un izvades salīdzināšanas reģistri (OCR0A un OCR0B) ir 8 bitu reģistri. Pārtraukuma pieprasījuma (attēlā saīsināti kā Int.Req.) signāli ir redzami taimera pārtraukuma karoga reģistrā (TIFR). Visi pārtraukumi ir individuāli maskēti ar taimera pārtraukumu masku reģistru (TIMSK). TIFR un TIMSK nav parādīti attēlā.
Taimeri/skaitītāju var iestatīt iekšēji, izmantojot priekšskalotāju vai ārēju pulksteņa avotu uz T0 tapas. Pulksteņa atlases loģikas bloks kontrolē, kuru pulksteņa avotu un malu taimeris/skaitītājs izmanto, lai palielinātu (vai samazinātu) vērtību. Taimeris/skaitītājs ir neaktīvs, ja nav atlasīts neviens pulksteņa avots. Pulksteņa izvēles loģikas izvade tiek saukta par taimera pulksteni (clkT0).
Divreiz buferēti izejas salīdzināšanas reģistri (OCR0A un OCR0B) visu laiku tiek salīdzināti ar taimera / skaitītāja vērtību. Salīdzināšanas rezultātu viļņu formas ģenerators var izmantot, lai ģenerētu PWM vai mainīgas frekvences izvadi uz izejas salīdzināšanas tapām (OC0A un OC0B). Sk. “Izejas salīdzināšanas vienība” 69. lpp. lai iegūtu sīkāku informāciju. Salīdzināšanas spēles notikums arī iestatīs salīdzināšanas karodziņu (OCF0A vai OCF0B), kuru var izmantot, lai ģenerētu izejas salīdzināšanas pārtraukuma pieprasījumu.
Definīcijas
Daudzas reģistru un bitu atsauces šajā sadaļā ir uzrakstītas vispārīgā formā. Mazais burts “n” aizstāj taimera / skaitītāja numuru, šajā gadījumā 0. Mazais burts “x” aizstāj izejas salīdzināšanas vienību, šajā gadījumā salīdziniet vienību A vai salīdziniet vienību B. Tomēr, lietojot reģistru vai definējot bitu, programmā ir jāizmanto precīza forma, ti, TCNT0, lai piekļūtu taimera / skaitītāja0 skaitītāja vērtībai un tā tālāk.
Definīcijas 11-1 tabula tiek plaši izmantoti arī visā dokumentā.
11-1 tabula. Definīcijas
Pastāvīgi | Apraksts |
Apakšā | Skaitītājs sasniedz BOTTOM, kad tas kļūst par 0x00 |
MAX | Skaitītājs sasniedz maksimumu, kad tas kļūst par 0xFF (decimālskaitlis 255) |
TOP | Skaitītājs sasniedz TOP, kad tas kļūst vienāds ar augstāko vērtību skaitīšanas secībā. TOP vērtībai var piešķirt fiksēto vērtību 0xFF (MAX) vai vērtību, kas saglabāta OCR0A reģistrā. Piešķiršana ir atkarīga no darbības veida |
Taimera / skaitītāja preskaler un pulksteņa avoti
Taimeri / skaitītāju var regulēt iekšējais vai ārējais pulksteņa avots. Pulksteņa avotu izvēlas loģika Clock Select, kuru kontrolē biti Clock Select (c), kas atrodas taimera / skaitītāja0 vadības reģistrā (TCCR0B).
Iekšējais pulksteņa avots ar Prescaler
Taimeri/skaitītāju0 var iestatīt tieši ar sistēmas pulksteni (iestatot CS0[2:0] = 1). Tas nodrošina ātrāko darbību ar maksimālo taimera/skaitītāja pulksteņa frekvenci, kas vienāda ar sistēmas pulksteņa frekvenci (fCLK_I/O). Kā pulksteņa avotu var izmantot arī vienu no četriem pieskārieniem no priekšskalotāja. Iepriekš mērogotajam pulkstenim ir viena vai otra frekvence
Prescaler Reset
Prescaler darbojas brīvi, ti, tas darbojas neatkarīgi no taimera/skaitītāja0 pulksteņa izvēles loģikas. Tā kā taimera/skaitītāja pulksteņa izvēle neietekmē prescaler, iepriekšēja palielinājuma stāvoklis ietekmēs situācijas, kurās tiek izmantots iepriekš pielāgots pulkstenis. Viens bijušaisampIepriekšēja mērogošanas artefakts ir tad, kad taimeris/skaitītājs ir iespējots un pulksteņa rādītājs ir palielināts (6> CS0 [2: 0]> 1). Sistēmas pulksteņa ciklu skaits no taimera iespējošanas līdz pirmajam skaitīšanas gadījumam var būt no 1 līdz N+1 sistēmas pulksteņa cikls, kur N ir vienāds ar iepriekšēja palielinājuma dalītāju (8, 64, 256 vai 1024).
Taimera / skaitītāja sinhronizēšanai ar programmas izpildi ir iespējams izmantot Prescaler Reset.
Ārējā pulksteņa avots
Ārējo pulksteņa avotu, kas tiek pievienots T0 tapai, var izmantot kā taimeri/skaitītāju (clkT0). T0 tapa ir sampvienu reizi katrā sistēmas pulksteņa ciklā vadīja pēc tapas sinhronizācijas loģikas. Sinhronizētās (sampLED) signāls tiek nodots tālāk
caur malu detektoru. Attēls 11-2 parāda funkcionāli ekvivalentu T0 sinhronizācijas un malu detektora loģikas blokshēmu. Reģistri tiek fiksēti iekšējā sistēmas pulksteņa pozitīvā malā (clkI/O). Aizbīdnis ir caurspīdīgs iekšējā sistēmas pulksteņa augstajā periodā.
Malu detektors ģenerē vienu clkT0 impulsu katrai pozitīvajai (CS0[2:0] = 7) vai negatīvajai (CS0[2:0] = 6) malai, ko tas nosaka.
Izmantojot jebkuru no impulsa platuma modulācijas (PWM) režīmiem, OCR0x reģistri tiek dubultā buferēti. Parastajiem un Clear Timer on Compare (CTC) darbības režīmiem dubultā buferošana ir atspējota. Dubultā buferizācija sinhronizē OCR0x salīdzināšanas reģistru atjaunināšanu vai nu skaitīšanas secības augšpusē, vai apakšā. Sinhronizācija novērš nepāra garuma, nesimetrisku PWM impulsu rašanos, tādējādi padarot izeju bez traucējumiem.
OCR0x reģistra piekļuve var šķist sarežģīta, taču tas tā nav. Kad dubultā buferošana ir iespējota, centrālajam procesoram ir piekļuve OCR0x buferu reģistram, un, ja dubultā buferošana ir atspējota, centrālais procesors piekļūs tieši OCR0x.
Spēka izejas salīdzinājums
Viļņu formas ģenerēšanas režīmos, kas nav PWM, salīdzināšanas izejas rezultātu var piespiest, ierakstot bitu Force Output Compare (FOC0x). Piespiežot salīdzināšanas spēli, OCF0x karogs netiks iestatīts vai taimeris tiks atkārtoti ielādēts / notīrīts, bet OC0x tapa tiks atjaunināta tā, it kā būtu notikusi reāla salīdzināšanas atbilstība (COM0x [1: 0] bitu iestatījumi nosaka, vai OC0x tapa ir iestatīta, notīrīta vai pārslēgts).
Salīdziniet spēles bloķēšanu pēc TCNT0 Write
Visas CPU rakstīšanas operācijas TCNT0 reģistrā bloķēs visas salīdzināšanas spēles, kas notiek nākamajā taimera pulksteņa ciklā, pat ja taimeris ir apturēts. Šī funkcija ļauj inicializēt OCR0x tādā pašā vērtībā kā TCNT0, neizraisot pārtraukumu, ja taimeris / skaitītājs ir iespējots.
Izmantojot izejas salīdzināšanas vienību
Tā kā TCNT0 rakstīšana jebkurā darbības režīmā bloķēs visas salīdzināšanas atbilstības vienam taimera pulksteņa ciklam, pastāv risks, ka, mainot TCNT0, izmantojot izejas salīdzināšanas vienību, neatkarīgi no tā, vai taimeris / skaitītājs darbojas vai nē. Ja vērtība, kas ierakstīta TCNT0, ir vienāda ar OCR0x vērtību, salīdzināšanas atbilstība tiks izlaista, kā rezultātā radīsies nepareiza viļņu forma. Tāpat arī nerakstiet TCNT0 vērtību, kas vienāda ar BOTTOM, kad skaitītājs tiek skaitīts uz leju.
OC0x iestatīšana jāveic pirms datu virziena reģistra iestatīšanas porta tapai izvadīšanai. Vienkāršākais veids, kā iestatīt OC0x vērtību, ir izmantot strāvas bitu Force Output Compare (FOC0x) normālā režīmā. OC0x reģistri saglabā savas vērtības pat tad, ja mainās starp viļņu formas ģenerēšanas režīmiem.
Ņemiet vērā, ka COM0x [1: 0] biti netiek dubultā buferēti kopā ar salīdzināšanas vērtību. COM0x [1: 0] bitu maiņa stāsies spēkā nekavējoties.
Salīdziniet atbilstības izvades vienību
Bitu salīdzināšanas izvades (COM0x [1: 0]) bitiem ir divas funkcijas. Viļņu formas ģenerators izmanto bitu COM0x [1: 0], lai definētu izejas salīdzināšanas (OC0x) stāvokli nākamajā salīdzināšanas mačā. Arī COM0x [1: 0] biti kontrolē OC0x tapas izejas avotu. Attēls 11-6 parāda vienkāršotu loģikas shēmu, kuru ietekmē bitu iestatījums COM0x [1: 0]. I / O reģistri, I / O biti un I / O tapas attēlā ir parādītas treknrakstā. Tiek parādītas tikai tās vispārējo I / O pieslēgvietu kontroles reģistru daļas (DDR un PORT), kuras ietekmē COM0x [1: 0] biti. Atsaucoties uz OC0x stāvokli, atsauce attiecas uz iekšējo OC0x reģistru, nevis OC0x tapu. Ja notiek sistēmas atiestatīšana, OC0x reģistrs tiek atiestatīts uz “0”.
Kad OC0A / OC0B ir pievienots I / O kontaktam, COM0A [1: 0] / COM0B [1: 0] bitu funkcija ir atkarīga no WGM0 [2: 0] bitu iestatījuma. 11-2 tabula parāda COM0x [1: 0] bitu funkcionalitāti, kad WGM0 [2: 0] biti ir iestatīti normālā vai CTC režīmā (nav PWM).
11-2 tabula. Salīdziniet izvades režīmu ar ne-PWM režīmu
COM0A1 COM0B1 | COM0A0 COM0B0 | Apraksts |
0 | 0 | Normāla porta darbība, atvienots OC0A / OC0B. |
0 | 1 | Pārslēdziet OC0A / OC0B uz Salīdzināt spēli |
1 | 0 | Notīriet OC0A / OC0B, salīdzinot spēli |
1 | 1 | Iestatiet OC0A / OC0B uz Salīdzināt spēli |
11-3 tabula parāda COM0x [1: 0] bitu funkcionalitāti, kad WGM0 [2: 0] biti ir iestatīti uz ātru PWM režīmu.
11-3 tabula. Salīdziniet izvades režīmu, ātro PWM režīmu(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Apraksts |
0 | 0 | Normāla porta darbība, atvienots OC0A / OC0B. |
0 | 1 | Rezervēts |
1 | 0 | Notīriet OC0A / OC0B, salīdzinot spēli, iestatiet OC0A / OC0B stāvoklī BOTTOM (neinvertējošs režīms) |
1 | 1 | Iestatiet OC0A / OC0B uz Salīdzināt spēli, notīriet OC0A / OC0B pie BOTTOM (invertēšanas režīms) |
Piezīme. Īpašs gadījums rodas, ja OCR0A vai OCR0B ir vienāds ar TOP un ir iestatīts COM0A1/COM0B1. Šajā gadījumā salīdzināšanas atbilstība tiek ignorēta, bet iestatīšana vai dzēšana tiek veikta Apakšā. Skat “Ātrais PWM režīms” 73. lpp lai iegūtu sīkāku informāciju.
11-4 tabula parāda COM0x [1: 0] bitu funkcionalitāti, kad WGM0 [2: 0] biti ir iestatīti uz fāzu pareizo PWM režīmu.
Tabula 11-4. Salīdziniet izvades režīmu, fāzes pareizo PWM režīmu(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Apraksts |
0 | 0 | Normāla porta darbība, atvienots OC0A / OC0B. |
0 | 1 | Rezervēts |
1 | 0 | Notīriet OC0A / OC0B uz Salīdzināt spēli, skaitot augšup. Iestatiet opciju OC0A / OC0B uz Salīdzināt spēli, kad skaitīšana tiek samazināta. |
1 | 1 | Iestatiet opciju OC0A / OC0B sadaļā Salīdzināt spēli, skaitot augšup. Notīriet OC0A / OC0B uz Salīdzināt spēli, kad tiek skaitīts mazāk. |
Piezīme: 1. Īpašs gadījums rodas, ja OCR0A vai OCR0B ir vienāds ar TOP un ir iestatīts COM0A1/COM0B1. Šajā gadījumā salīdzināšanas atbilstība tiek ignorēta, bet iestatīšana vai dzēšana tiek veikta AUGŠĀ. Skat “Pareizs fāzes PWM režīms” 74. lpp lai iegūtu sīkāku informāciju.
Biti 3: 2 - Res: rezervētie biti
Šie biti ir rezervēti biti ATtiny25 / 45/85, un tie vienmēr tiks nolasīti kā nulle.
Biti 1: 0 - WGM0 [1: 0]: viļņu formas ģenerēšanas režīms
Kombinācijā ar TCCR02B reģistrā atrodamo WGM0 bitu šie biti kontrolē skaitītāja skaitīšanas secību, maksimālās (TOP) skaitītāja vērtības avotu un to, kāda veida viļņu ģenerēšanu izmantot, sk. 11-5 tabula. Taimera / skaitītāja ierīces atbalstītie darbības režīmi ir: Parastais režīms (skaitītājs), Notīrīt taimeri, salīdzinot režīmu (CTC), un divu veidu impulsu platuma modulācijas (PWM) režīmi (sk. “Darbības veidi” 71. lappusē).
Tabula 11-5. Viļņu formas ģenerēšanas režīma bitu apraksts
Režīms | WGM 02 | WGM 01 | WGM 00 | Taimera / skaitītāja darbības režīms | TOP | OCRx atjauninājums plkst | Ieslēgts TOV karodziņš |
0 | 0 | 0 | 0 | Normāls | 0xFF | Tūlītēja | MAX(1) |
1 | 0 | 0 | 1 | PWM, pareiza fāze | 0xFF | TOP | Apakšā(2) |
2 | 0 | 1 | 0 | CTC | OCRA | Tūlītēja | MAX(1) |
3 | 0 | 1 | 1 | Ātrs PWM | 0xFF | Apakšā(2) | MAX(1) |
4 | 1 | 0 | 0 | Rezervēts | – | – | – |
5 | 1 | 0 | 1 | PWM, pareiza fāze | OCRA | TOP | Apakšā(2) |
6 | 1 | 1 | 0 | Rezervēts | – | – | – |
7 | 1 | 1 | 1 | Ātrs PWM | OCRA | Apakšā(2) | TOP |
7. bits - FOC0A: spēka izvades salīdzinājums A.
FOC0A bits ir aktīvs tikai tad, ja WGM biti norāda režīmu, kas nav PWM.
Tomēr, lai nodrošinātu saderību ar nākotnes ierīcēm, šis bits ir jāiestata uz nulli, kad TCCR0B tiek rakstīts, kad darbojas PWM režīmā. Rakstot loģisku FOC0A bitam, viļņu formas ģenerēšanas vienībai tiek piespiesta tūlītēja salīdzināšanas atbilstība. OC0A izeja tiek mainīta atbilstoši tā COM0A [1: 0] bitu iestatījumam. Ņemiet vērā, ka FOC0A bits tiek ieviests kā strobe. Tāpēc piespiedu salīdzināšanas efektu nosaka COM0A bitos esošā vērtība [1: 0].
FOC0A strobe neradīs nekādu pārtraukumu, kā arī neizdzēsīs taimeri CTC režīmā, izmantojot OCR0A kā TOP. FOC0A bits vienmēr tiek nolasīts kā nulle.
6. bits - FOC0B: spēka izvades salīdzinājums B.
FOC0B bits ir aktīvs tikai tad, ja WGM biti norāda režīmu, kas nav PWM.
Tomēr, lai nodrošinātu saderību ar nākotnes ierīcēm, šis bits ir jāiestata uz nulli, kad TCCR0B tiek rakstīts, kad darbojas PWM režīmā. Rakstot loģisku FOC0B bitam, viļņu formas ģenerēšanas vienībai tiek piespiesta tūlītēja salīdzināšanas spēle. OC0B izeja tiek mainīta atbilstoši tā COM0B [1: 0] bitu iestatījumam. Ņemiet vērā, ka FOC0B bits tiek ieviests kā strobe. Tāpēc piespiedu salīdzināšanas efektu nosaka COM0B [1: 0] bitos esošā vērtība.
FOC0B strobe neradīs pārtraukumu, kā arī neizdzēsīs taimeri CTC režīmā, izmantojot OCR0B kā TOP.
FOC0B bits vienmēr tiek nolasīts kā nulle.
Biti 5: 4 - Res: rezervētie biti
Šie biti ir rezervēti biti ATtiny25 / 45/85, un tie vienmēr tiks nolasīti kā nulle.
3. bits - WGM02: viļņu formas ģenerēšanas režīms
Skatīt aprakstu “TCCR0A - Taimera / skaitītāja vadības reģistrs A” 77. lpp.
Biti 2: 0 - CS0 [2: 0]: Pulksteņa izvēle
Trīs pulksteņa atlases biti izvēlas pulksteņa avotu, kas jāizmanto taimerim / skaitītājam.
Tabula 11-6. Pulkstenis Izvēlieties bitu apraksts
CS02 | CS01 | CS00 | Apraksts |
0 | 0 | 0 | Nav pulksteņa avota (taimeris / skaitītājs ir apturēts) |
0 | 0 | 1 | clkI/O/(bez iepriekšējas mērogošanas) |
0 | 1 | 0 | clkI/O/8 (no priekšskalotāja) |
0 | 1 | 1 | clkI/O/64 (no priekšskalotāja) |
1 | 0 | 0 | clkI/O/256 (no priekšskalotāja) |
1 | 0 | 1 | clkI/O/1024 (no priekšskalotāja) |
1 | 1 | 0 | Ārējā pulksteņa avots uz T0 tapas. Pulkstenis uz krītošās malas. |
1 | 1 | 1 | Ārējā pulksteņa avots uz T0 tapas. Pulkstenis uz augošās malas. |
Ja taimerim / skaitītājam0 tiek izmantoti ārējie tapu režīmi, pārejas uz T0 tapas rādīs skaitītāju, pat ja tapa ir konfigurēta kā izeja. Šī funkcija ļauj programmatūru kontrolēt skaitīšanu.
Skaitīt un salīdzināt vienības
Taimera / skaitītāja1 vispārējā darbība ir aprakstīta asinhronajā režīmā, un darbība sinhronizētajā režīmā tiek pieminēta tikai tad, ja starp šiem diviem režīmiem ir atšķirības. Attēls 12-2 parāda taimera / skaitītāja 1 sinhronizācijas reģistra blokshēmu un sinhronizācijas kavējumus starp reģistriem. Ņemiet vērā, ka visas pulksteņa pārraides detaļas nav redzamas attēlā. Taimera / skaitītāja1 reģistra vērtības iet cauri iekšējiem sinhronizācijas reģistriem, kas izraisa ieejas sinhronizācijas aizkavi, pirms tiek ietekmētas skaitītāja darbības. Reģistrus TCCR1, GTCCR, OCR1A, OCR1B un OCR1C var nolasīt uzreiz pēc reģistra uzrakstīšanas. Taimera / skaitītāja1 (TCNT1) reģistra un karodziņu (OCF1A, OCF1B un TOV1) nolasīšanas vērtības tiek aizkavētas ieejas un izejas sinhronizācijas dēļ.
Taimeris / skaitītājs1 piedāvā augstu izšķirtspēju un augstas precizitātes lietojumu ar zemākām pirmsskalošanas iespējām. Tas var arī atbalstīt divus precīzus, ātrgaitas, 8 bitu impulsa platuma modulatorus, izmantojot pulksteņa ātrumu līdz 64 MHz (vai 32 MHz maza ātruma režīmā). Šajā režīmā taimeris / skaitītājs1 un izejas salīdzināšanas reģistri kalpo kā dubultas atsevišķas PWM ar nepārklājas neapgrieztām un apgrieztām izejām. Atsaukties uz 86. lpp detalizētu šīs funkcijas aprakstu. Tāpat augstās mērogošanas iespējas padara šo ierīci noderīgu mazāka ātruma funkcijām vai precīzām laika funkcijām ar retām darbībām.
Attēls 12-2. Taimeris/skaitītājs 1 sinhronizācijas reģistra blokshēma.
Taimeris / Skaitītājs1 un preskaler ļauj CPU darbināt no jebkura pulksteņa avota, kamēr preskaler darbojas asinhronajā režīmā ar ātru 64 MHz (vai 32 MHz zemā ātruma režīmā) PCK pulksteni.
Ņemiet vērā, ka sistēmas pulksteņa frekvencei jābūt zemākai par vienu trešdaļu no PCK frekvences. Asinhronā taimera / skaitītāja1 sinhronizācijas mehānismam ir nepieciešamas vismaz divas PCK malas, kad sistēmas pulkstenis ir augsts. Ja sistēmas pulksteņa frekvence ir pārāk augsta, pastāv risks, ka dati vai vadības vērtības tiks zaudētas.
Tālāk Attēls 12-3 parāda taimera / skaitītāja1 blokshēmu.
12-1 tabula. Salīdzināt režīmu Izvēlieties PWM režīmā
COM1x1 | COM1x0 | Ietekme uz izejas salīdzināšanas tapām |
0 | 0 | OC1x nav savienots. OC1x nav savienots. |
0 | 1 | OC1x noskaidrots salīdzināšanas mačā. Iestatiet, kadTCNT1 = $ 00. OC1x iestatīts salīdzināšanas mačā. Notīrīts, kad TCNT1 = $ 00. |
1 | 0 | OC1x noskaidrots salīdzināšanas mačā. Iestatiet, kad TCNT1 = $ 00. OC1x nav savienots. |
1 | 1 | OC1x iestatiet salīdzināšanas spēli. Notīrīts, kad TCNT1 = $ 00. OC1x nav savienots. |
ADC raksturojums
Tabula 21-8. ADC raksturlielumi, viena gala kanāli. TA = -40°C līdz +85°C
Simbols | Parametrs | Stāvoklis | Min | Tip | Maks | Vienības |
Izšķirtspēja | 10 | Bits | ||||
Absolūta precizitāte (ieskaitot INL, DNL un kvantēšanas, pieauguma un nobīdes kļūdas) | VREF = 4 V, VCC = 4 V,
ADC pulkstenis = 200 kHz |
2 | LSB | |||
VREF = 4 V, VCC = 4 V,
ADC pulkstenis = 1 MHz |
3 | LSB | ||||
VREF = 4 V, VCC = 4 V,
ADC pulkstenis = 200 kHz Trokšņa samazināšanas režīms |
1.5 | LSB | ||||
VREF = 4 V, VCC = 4 V,
ADC pulkstenis = 1 MHz Trokšņa samazināšanas režīms |
2.5 | LSB | ||||
Integral nelinearitāte (INL) (precizitāte pēc nobīdes un pastiprinājuma kalibrēšanas) | VREF = 4 V, VCC = 4 V,
ADC pulkstenis = 200 kHz |
1 | LSB | |||
Diferenciālā nelinearitāte (DNL) | VREF = 4 V, VCC = 4 V,
ADC pulkstenis = 200 kHz |
0.5 | LSB | |||
Gain kļūda | VREF = 4 V, VCC = 4 V,
ADC pulkstenis = 200 kHz |
2.5 | LSB | |||
Nobīdes kļūda | VREF = 4 V, VCC = 4 V,
ADC pulkstenis = 200 kHz |
1.5 | LSB | |||
Reklāmguvuma laiks | Bezmaksas Running Conversion | 14 | 280 | µs | ||
Pulksteņa biežums | 50 | 1000 | kHz | |||
VIN | Ievades apjomstage | GND | VREF | V | ||
Ieejas joslas platums | 38.4 | kHz | ||||
AREF | Ārējā atsauce, sējtage | 2.0 | VCC | V | ||
VINT | Iekšējais sējtage Atsauce | 1.0 | 1.1 | 1.2 | V | |
Iekšējā 2.56 V atsauce (1) | VCC > 3.0 V | 2.3 | 2.56 | 2.8 | V | |
RREF | 32 | kΩ | ||||
LIETUS | Analogā ieejas pretestība | 100 | MΩ | |||
ADC izeja | 0 | 1023 | LSB |
Piezīme: 1. Vērtības ir tikai vadlīnijas.
21-9 tabula. ADC raksturlielumi, diferenciālie kanāli (vienpolārais režīms). TA = -40°C līdz +85°C
Simbols | Parametrs | Stāvoklis | Min | Tip | Maks | Vienības |
Izšķirtspēja | Pastiprinājums = 1x | 10 | Bits | |||
Pastiprinājums = 20x | 10 | Bits | ||||
Absolūtā precizitāte (ieskaitot INL, DNL un
Kvantēšanas, pieauguma un nobīdes kļūdas) |
Pastiprinājums = 1x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
10.0 | LSB | |||
Pastiprinājums = 20x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
20.0 | LSB | ||||
Integral nelinearitāte (INL) (precizitāte pēc nobīdes un ieguvuma kalibrēšanas) | Pastiprinājums = 1x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
4.0 | LSB | |||
Pastiprinājums = 20x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
10.0 | LSB | ||||
Gain kļūda | Pastiprinājums = 1x | 10.0 | LSB | |||
Pastiprinājums = 20x | 15.0 | LSB | ||||
Nobīdes kļūda | Pastiprinājums = 1x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
3.0 | LSB | |||
Pastiprinājums = 20x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
4.0 | LSB | ||||
Reklāmguvuma laiks | Bezmaksas Running Conversion | 70 | 280 | µs | ||
Pulksteņa biežums | 50 | 200 | kHz | |||
VIN | Ievades apjomstage | GND | VCC | V | ||
VDIFF | Ievades diferenciālis Sējtage | VREF/Gain | V | |||
Ieejas joslas platums | 4 | kHz | ||||
AREF | Ārējā atsauce, sējtage | 2.0 | VCC – 1.0 | V | ||
VINT | Iekšējais sējtage Atsauce | 1.0 | 1.1 | 1.2 | V | |
Iekšējā 2.56 V atsauce (1) | VCC > 3.0 V | 2.3 | 2.56 | 2.8 | V | |
RREF | Atsauces ieejas pretestība | 32 | kΩ | |||
LIETUS | Analogā ieejas pretestība | 100 | MΩ | |||
ADC reklāmguvumu izeja | 0 | 1023 | LSB |
Piezīme. Vērtības ir tikai vadlīnijas.
Tabula 21-10. ADC raksturlielumi, diferenciālie kanāli (bipolārais režīms). TA = -40°C līdz +85°C
Simbols | Parametrs | Stāvoklis | Min | Tip | Maks | Vienības |
Izšķirtspēja | Pastiprinājums = 1x | 10 | Bits | |||
Pastiprinājums = 20x | 10 | Bits | ||||
Absolūtā precizitāte (ieskaitot INL, DNL un
Kvantēšanas, pieauguma un nobīdes kļūdas) |
Pastiprinājums = 1x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
8.0 | LSB | |||
Pastiprinājums = 20x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
8.0 | LSB | ||||
Integral nelinearitāte (INL) (precizitāte pēc nobīdes un ieguvuma kalibrēšanas) | Pastiprinājums = 1x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
4.0 | LSB | |||
Pastiprinājums = 20x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
5.0 | LSB | ||||
Gain kļūda | Pastiprinājums = 1x | 4.0 | LSB | |||
Pastiprinājums = 20x | 5.0 | LSB | ||||
Nobīdes kļūda | Pastiprinājums = 1x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
3.0 | LSB | |||
Pastiprinājums = 20x
VREF = 4 V, VCC = 5 V ADC pulkstenis = 50 - 200 kHz |
4.0 | LSB | ||||
Reklāmguvuma laiks | Bezmaksas Running Conversion | 70 | 280 | µs | ||
Pulksteņa biežums | 50 | 200 | kHz | |||
VIN | Ievades apjomstage | GND | VCC | V | ||
VDIFF | Ievades diferenciālis Sējtage | VREF/Gain | V | |||
Ieejas joslas platums | 4 | kHz | ||||
AREF | Ārējā atsauce, sējtage | 2.0 | VCC – 1.0 | V | ||
VINT | Iekšējais sējtage Atsauce | 1.0 | 1.1 | 1.2 | V | |
Iekšējā 2.56 V atsauce (1) | VCC > 3.0 V | 2.3 | 2.56 | 2.8 | V | |
RREF | Atsauces ieejas pretestība | 32 | kΩ | |||
LIETUS | Analogā ieejas pretestība | 100 | MΩ | |||
ADC reklāmguvumu izeja | -512 | 511 | LSB |
Instrukciju kopas kopsavilkums
Mnemonika | Operandi | Apraksts | Darbība | Karogi | # Clocks |
ARITMĒTISKĀS UN LOGISKĀS INSTRUKCIJAS | |||||
PIEVIENOT | Rd, Rr | Pievienojiet divus reģistrus | Rd ← Rd + Rr | Z, C, N, V, H | 1 |
ADC | Rd, Rr | Pievienojiet ar Pārnēsājiet divus reģistrus | Rd ← Rd + Rr + C | Z, C, N, V, H | 1 |
ADIW | Rdl, K | Pievienojiet tūlītēju Word | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
SUB | Rd, Rr | Atņemiet divus reģistrus | Rd ← Rd – Rr | Z, C, N, V, H | 1 |
ES PĒCĀS AUGŠĀ | Rd, K. | No reģistra atņemiet nemainīgu | Rd ← Rd – K | Z, C, N, V, H | 1 |
SBC | Rd, Rr | Atņemiet ar Pārvadāt divus reģistrus | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Rd, K. | No reģ. Atņemiet Carry Constant. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | Rdl, K | No Word atņemiet tūlītēju | Rdh:Rdl ← Rdh:Rdl – K | Z, C, N, V, S | 2 |
UN | Rd, Rr | Loģiskie UN reģistri | Rd ← Rd ∙ Rr | Z, N, V | 1 |
ANDI | Rd, K. | Loģiski UN reģistrēties un pastāvīgi | Rd ← Rd ∙ K | Z, N, V | 1 |
OR | Rd, Rr | Loģiski VAI reģistri | Rd ← Rd v Rr | Z, N, V | 1 |
ORI | Rd, K. | Loģiski VAI reģistrēties un nemainīgi | Rd ← Rd pret K | Z, N, V | 1 |
EOR | Rd, Rr | Ekskluzīvi VAI reģistri | Rd ← Rd ⊕ Rr | Z, N, V | 1 |
COM | Rd | Viens ir papildinājums | Rd ← 0xFF − Rd | Z, C, N, V | 1 |
NEG | Rd | Divu papildinājums | Rd ← 0x00 − Rd | Z, C, N, V, H | 1 |
SBR | Rd, K | Iestatiet bitu (-us) reģistrā | Rd ← Rd pret K | Z, N, V | 1 |
CBR | Rd, K | Notīrīt bitu (-us) reģistrā | Rd ← Rd ∙ (0xFF – K) | Z, N, V | 1 |
INC | Rd | Pieaugums | Rd ← Rd + 1 | Z, N, V | 1 |
DEC | Rd | Dekrēts | Rd ← Rd - 1 | Z, N, V | 1 |
TST | Rd | Pārbaude uz nulli vai mīnusu | Rd ← Rd ∙ Rd | Z, N, V | 1 |
CLR | Rd | Notīrīt reģistru | Rd ← Rd ⊕ Rd | Z, N, V | 1 |
SER | Rd | Iestatīt reģistru | Rd ← 0xFF | Nav | 1 |
FILIĀLU INSTRUKCIJAS | |||||
RJMP | k | Relatīvais lēciens | PC ← PC + k + 1 | Nav | 2 |
IJMP | Netiešs lēciens uz (Z) | PC ← Z | Nav | 2 | |
IZSAUKŠANĀS | k | Relatīvais apakšprogrammas izsaukums | PC ← PC + k + 1 | Nav | 3 |
ICALL | Netiešais zvans uz (Z) | PC ← Z | Nav | 3 | |
RET | Apakšprogrammas atgriešanās | Dators ← STACK | Nav | 4 | |
TĪKLI | Pārtraukt atgriešanos | Dators ← STACK | I | 4 | |
CPSE | Rd, Rr | Salīdziniet, izlaidiet, ja vienāds | ja (Rd = Rr) PC ← PC + 2 vai 3 | Nav | 1/2/3 |
CP | Rd, Rr | Salīdziniet | Rd − Rr | Z, N, V, C, H | 1 |
MPK | Rd, Rr | Salīdziniet ar Carry | Rd - Rr - C | Z, N, V, C, H | 1 |
PCI | Rd, K | Salīdzināt reģistrāciju ar tūlītēju | Rd - K | Z, N, V, C, H | 1 |
SBRC | Rr, dz | Izlaist, ja bits reģistrā ir notīrīts | ja (Rr(b)=0) PC ← PC + 2 vai 3 | Nav | 1/2/3 |
SBRS | Rr, dz | Izlaist, ja ir iestatīts bits reģistrā | ja (Rr(b)=1) PC ← PC + 2 vai 3 | Nav | 1/2/3 |
SBIC | P, b | Izlaist, ja I / O reģistrā bits ir notīrīts | ja (P(b)=0) PC ← PC + 2 vai 3 | Nav | 1/2/3 |
SBIS | P, b | Izlaist, ja I / O reģistrā ir iestatīts bits | ja (P(b)=1) PC ← PC + 2 vai 3 | Nav | 1/2/3 |
BRBS | s, k | Filiāle, ja ir iestatīts statusa karodziņš | ja (SREG(s) = 1), tad PC←PC+k + 1 | Nav | 1/2 |
BRBC | s, k | Filiāle, ja statusa karodziņš ir notīrīts | ja (SREG(s) = 0), tad PC←PC+k + 1 | Nav | 1/2 |
BREQ | k | Filiāle, ja vienāda | ja (Z = 1), tad PC ← PC + k + 1 | Nav | 1/2 |
BRNE | k | Filiāle, ja nav vienāda | ja (Z = 0), tad PC ← PC + k + 1 | Nav | 1/2 |
BRCS | k | Filiāle, ja nēsāšanas komplekts | ja (C = 1), tad PC ← PC + k + 1 | Nav | 1/2 |
BRCC | k | Filiāle, ja nēsāšana ir notīrīta | ja (C = 0), tad PC ← PC + k + 1 | Nav | 1/2 |
BRSH | k | Filiāle, ja tā pati vai augstāka | ja (C = 0), tad PC ← PC + k + 1 | Nav | 1/2 |
BRLO | k | Filiāle, ja zemāka | ja (C = 1), tad PC ← PC + k + 1 | Nav | 1/2 |
BRMI | k | Filiāle, ja mīnus | ja (N = 1), tad PC ← PC + k + 1 | Nav | 1/2 |
BRPL | k | Filiāle, ja Plus | ja (N = 0), tad PC ← PC + k + 1 | Nav | 1/2 |
BRGE | k | Filiāle, ja lielāka vai vienāda, parakstīta | ja (N ⊕ V= 0), tad PC ← PC + k + 1 | Nav | 1/2 |
BRLT | k | Filiāle, ja tā ir mazāka par nulli, parakstīts | ja (N ⊕ V= 1), tad PC ← PC + k + 1 | Nav | 1/2 |
BRHS | k | Filiāle, ja ir uzstādīts puse nēsāšanas karogs | ja (H = 1), tad PC ← PC + k + 1 | Nav | 1/2 |
BRHC | k | Filiāle, ja puse nēsāšanas karogs ir notīrīts | ja (H = 0), tad PC ← PC + k + 1 | Nav | 1/2 |
BRTS | k | Filiāle, ja iestatīts T karogs | ja (T = 1), tad PC ← PC + k + 1 | Nav | 1/2 |
BRTC | k | Zars, ja T karogs ir notīrīts | ja (T = 0), tad PC ← PC + k + 1 | Nav | 1/2 |
BRVS | k | Zars, ja ir iestatīts pārpildes karogs | ja (V = 1), tad PC ← PC + k + 1 | Nav | 1/2 |
BRVC | k | Zars, ja ir notīrīts pārpildes karogs | ja (V = 0), tad PC ← PC + k + 1 | Nav | 1/2 |
BRIE | k | Filiāle, ja iespējota pārtraukšana | ja ( I = 1), tad PC ← PC + k + 1 | Nav | 1/2 |
TILTA | k | Filiāle, ja invalīds ir pārtraukts | ja ( I = 0), tad PC ← PC + k + 1 | Nav | 1/2 |
BIT UN BIT-TEST INSTRUKCIJAS | |||||
SBI | P, b | Iestatiet bitu I / O reģistrā | I/O (P,b) ← 1 | Nav | 2 |
CBI | P, b | Notīrīt bitu I / O reģistrā | I/O (P,b) ← 0 | Nav | 2 |
LSL | Rd | Loģiskā maiņa pa kreisi | Rd(n+1) ← Rd(n), Rd(0) ← 0 | Z, C, N, V | 1 |
LSR | Rd | Loģiskā maiņa pa labi | Rd(n) ← Rd(n+1), Rd(7) ← 0 | Z, C, N, V | 1 |
LOMA | Rd | Pagrieziet pa kreisi caur pārvadāšanu | Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) | Z, C, N, V | 1 |
ROR | Rd | Pagrieziet pa labi caur pārvadāšanu | Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) | Z, C, N, V | 1 |
ASR | Rd | Aritmētiskā maiņa pa labi | Rd(n) ← Rd(n+1), n=0..6 | Z, C, N, V | 1 |
Mnemonika | Operandi | Apraksts | Darbība | Karogi | # Clocks |
MAIŅA | Rd | Apmaini Nibbles | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Nav | 1 |
BSET | s | Karodziņu komplekts | SREG(-i) ← 1 | SREG (s) | 1 |
BCLR | s | Karogs skaidrs | SREG(-i) ← 0 | SREG (s) | 1 |
BST | Rr, dz | Bitu veikals no reģistra līdz T | T ← Rr(b) | T | 1 |
BLD | Rd, dz | Bitu slodze no T līdz reģistram | Rd(b) ← T | Nav | 1 |
SEC | Iestatiet Carry | C ← 1 | C | 1 | |
CLC | Notīrīt Nēsāt | C ← 0 | C | 1 | |
SEN | Iestatīt negatīvo karodziņu | N ← 1 | N | 1 | |
CLN | Notīrīt negatīvu karogu | N ← 0 | N | 1 | |
SEZ | Iestatiet nulles karogu | Z ← 1 | Z | 1 | |
CLZ | Skaidrs nulles karogs | Z ← 0 | Z | 1 | |
SEI | Globālā pārtraukuma iespējošana | Es ← 1 | I | 1 | |
CLI | Globālā pārtraukuma atspējošana | Es ← 0 | I | 1 | |
SES | Iestatiet parakstītu testa karodziņu | S ← 1 | S | 1 | |
CLS | Notīrīt parakstītu testa karogu | S ← 0 | S | 1 | |
SEV | Iestatiet divu papildinājumu pārpildi. | V ← 1 | V | 1 | |
CLV | Notīrīt divu papildinājumu pārpildi | V ← 0 | V | 1 | |
IESTATĪT | SREG iestatiet T | T ← 1 | T | 1 | |
CLT | Notīriet T SREG | T ← 0 | T | 1 | |
SEH | SREG iestatiet Half Carry karogu | H ← 1 | H | 1 | |
CLH | Notīriet pusnesuma karogu SREG | H ← 0 | H | 1 | |
DATU NODOŠANAS INSTRUKCIJAS | |||||
MOV | Rd, Rr | Pārvietoties starp reģistriem | Rd ← Rr | Nav | 1 |
MOVW | Rd, Rr | Kopēt reģistrēt vārdu | Rd+1:Rd ← Rr+1:Rr | Nav | 1 |
LDI | Rd, K. | Ielādēt tūlīt | Rd ← K | Nav | 1 |
LD | Rd, X | Netieša ielāde | Rd ← (X) | Nav | 2 |
LD | Rd, X + | Ielādēt netiešo un Post-Inc. | Rd ← (X), X ← X + 1 | Nav | 2 |
LD | Rd, - X | Ielādēt netieši un pirms dec. | X ← X – 1, Rd ← (X) | Nav | 2 |
LD | Rd, Y | Netieša ielāde | Rd ← (Y) | Nav | 2 |
LD | Rd, Y + | Ielādēt netiešo un Post-Inc. | Rd ← (Y), Y ← Y + 1 | Nav | 2 |
LD | Rd, - Y | Ielādēt netieši un pirms dec. | Y ← Y — 1, Rd ← (Y) | Nav | 2 |
LDD | Rd, Y + q | Netieši ielādējiet ar pārvietojumu | Rd ← (Y + q) | Nav | 2 |
LD | Rd, Z | Netieša ielāde | Rd ← (Z) | Nav | 2 |
LD | Rd, Z + | Ielādēt netiešo un Post-Inc. | Rd ← (Z), Z ← Z+1 | Nav | 2 |
LD | Rd, -Z | Ielādēt netieši un pirms dec. | Z ← Z – 1, Rd ← (Z) | Nav | 2 |
LDD | Rd, Z + q | Netieši ielādējiet ar pārvietojumu | Rd ← (Z + q) | Nav | 2 |
LDS | Rd, k | Ielādēt tieši no SRAM | Rd ← (k) | Nav | 2 |
ST | X, Rr | Veikals Netiešs | (X) ← Rr | Nav | 2 |
ST | X +, Rr | Veikals Netiešais un Post-Inc. | (X) ← Rr, X ← X + 1 | Nav | 2 |
ST | - X, Rr | Veikals Netiešais un pirmsdec. | X ← X – 1, (X) ← Rr | Nav | 2 |
ST | Y, Rr | Veikals Netiešs | (Y) ← Rr | Nav | 2 |
ST | Y +, Rr | Veikals Netiešais un Post-Inc. | (Y) ← Rr, Y ← Y + 1 | Nav | 2 |
ST | - Y, Rr | Veikals Netiešais un pirmsdec. | Y ← Y – 1, (Y) ← Rr | Nav | 2 |
STS | Y + q, Rr | Glabājiet netieši ar pārvietojumu | (Y + q) ← Rr | Nav | 2 |
ST | Z, Rr | Veikals Netiešs | (Z) ← Rr | Nav | 2 |
ST | Z +, Rr | Veikals Netiešais un Post-Inc. | (Z) ← Rr, Z ← Z + 1 | Nav | 2 |
ST | -Z, Rr | Veikals Netiešais un pirmsdec. | Z ← Z – 1, (Z) ← Rr | Nav | 2 |
STS | Z + q, Rr | Glabājiet netieši ar pārvietojumu | (Z + q) ← Rr | Nav | 2 |
STS | k, Rr | Uzglabāt tieši SRAM | (k) ← Rr | Nav | 2 |
LPM | Ielādēt programmas atmiņu | R0 ← (Z) | Nav | 3 | |
LPM | Rd, Z | Ielādēt programmas atmiņu | Rd ← (Z) | Nav | 3 |
LPM | Rd, Z + | Ielādēt programmas atmiņu un Post-Inc | Rd ← (Z), Z ← Z+1 | Nav | 3 |
SPM | Saglabājiet programmas atmiņu | (z) ← R1:R0 | Nav | ||
IN | Rd, P. | Ostā | Rd ← P | Nav | 1 |
ĀRĀ | P, Rr | Ārpus ostas | P ← Rr | Nav | 1 |
PUSH | Rr | Spiediet Reģistrēties uz kaudzes | KAUVE ← Rr | Nav | 2 |
POP | Rd | Pop reģistrēties no kaudzes | Rd ← STACK | Nav | 2 |
MCU KONTROLES INSTRUKCIJAS | |||||
NOP | Nav Operācijas | Nav | 1 | ||
GULĒT | Gulēt | (skatiet miega funkcijas specifisko aprakstu) | Nav | 1 | |
WDR | Sargsuņa atiestatīšana | (skatiet WDR / taimera īpašo aprakstu) | Nav | 1 | |
BREAK | Pārtraukums |
Ātrums (MHz) (1) | Piegāde Voltage (V) | Temperatūras diapazons | Iepakojums (2) | Pasūtīšanas kods (3) |
10 | 1.8-5.5 | Rūpnieciskais
(-40 ° C līdz +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 | Rūpnieciskais
(-40 ° C līdz +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 |
Piezīmes: 1. Ātrumam pret piegādi tilptage, skatiet sadaļu 21.3 “Ātrums” 163. lpp.
Visi iepakojumi ir bez Pb, bez halogenīdiem un pilnīgi zaļi, un tie atbilst Eiropas direktīvai par bīstamo vielu ierobežošanu (RoHS).
Koda indikatori
H: NiPdAu svina apdare
U: matēta alva
R: lente un spole
Šīs ierīces var piegādāt arī vafeļu formā. Lūdzu, sazinieties ar vietējo Atmel tirdzniecības biroju, lai iegūtu sīkāku informāciju par pasūtīšanu un minimālo daudzumu.
Kļūda
Kļūda ATtiny25
Pārskatīšanas vēstule šajā sadaļā attiecas uz ierīces ATtiny25 pārskatīšanu.
Rev D - F
Nav zināma kļūdīšanās.
B - C red
EEPROM nolasīšana var neizdoties pie zema pieplūdes tilpumatage / zema pulksteņa frekvence
EEPROM nolasīšana var neizdoties pie zema pieplūdes tilpumatage / zema pulksteņa frekvence
Mēģina lasīt EEPROM ar zemām pulksteņa frekvencēm un/vai zemu piegādes tilpumutage var izraisīt nederīgus datus.
Problēmu novēršana / risinājums
Nelietojiet EEPROM, ja pulksteņa frekvence ir zemāka par 1 MHz un barošanas tilpumstage ir zem 2V. Ja darba frekvenci nevar paaugstināt virs 1MHz, tad piegādes tilpumstage jābūt vairāk nekā 2V. Līdzīgi, ja piegādes tilptage nevar paaugstināt virs 2V, tad darbības frekvencei jābūt lielākai par 1MHz.
Ir zināms, ka šī funkcija ir atkarīga no temperatūras, taču tā nav raksturota. Norādījumi tiek sniegti tikai istabas temperatūrai.
Rev. A
Ne sampvadīja.
Kļūda ATtiny45
Pārskatīšanas vēstule šajā sadaļā attiecas uz ierīces ATtiny45 pārskatīšanu.
Rev F - G
Nav zināma kļūdīšanās
Rev D - E
EEPROM nolasīšana var neizdoties pie zema pieplūdes tilpumatage / zema pulksteņa frekvence
EEPROM nolasīšana var neizdoties pie zema pieplūdes tilpumatage / zema pulksteņa frekvence
Mēģina lasīt EEPROM ar zemām pulksteņa frekvencēm un/vai zemu piegādes tilpumutage var izraisīt nederīgus datus.
Problēmu novēršana / risinājums
Nelietojiet EEPROM, ja pulksteņa frekvence ir zemāka par 1 MHz un barošanas tilpumstage ir zem 2V. Ja darba frekvenci nevar paaugstināt virs 1MHz, tad piegādes tilpumstage jābūt vairāk nekā 2V. Līdzīgi, ja piegādes tilptage nevar paaugstināt virs 2V, tad darbības frekvencei jābūt lielākai par 1MHz.
Ir zināms, ka šī funkcija ir atkarīga no temperatūras, taču tā nav raksturota. Norādījumi tiek sniegti tikai istabas temperatūrai.
B - C red
PLL netiek bloķēts
EEPROM, kas nolasīts no lietojumprogrammas koda, nedarbojas Lock Bit Mode 3
EEPROM nolasīšana var neizdoties pie zema pieplūdes tilpumatage / zema pulksteņa frekvence
Taimera 1. skaitītāja PWM izejas ģenerēšana OC1B-XOC1B nedarbojas pareizi
PLL netiek bloķēts
Atrodoties frekvencēs, kas zemākas par 6.0 MHz, PLL netiks bloķēta
Problēmas novēršana / risinājums
Izmantojot PLL, palaidiet frekvenci 6.0 MHz vai lielāku.
EEPROM, kas nolasīts no lietojumprogrammas koda, nedarbojas Lock Bit Mode 3
Kad atmiņas bloķēšanas biti LB2 un LB1 ir ieprogrammēti 3. režīmā, EEPROM lasīšana nedarbojas no lietojumprogrammas koda.
Problēmu novēršana / darbs apkārt
Nenorādiet bloķēšanas bitu aizsardzības režīmu 3, kad lietojumprogrammas kods ir jālasa no EEPROM.
EEPROM nolasīšana var neizdoties pie zema pieplūdes tilpumatage / zema pulksteņa frekvence
Mēģina lasīt EEPROM ar zemām pulksteņa frekvencēm un/vai zemu piegādes tilpumutage var izraisīt nederīgus datus.
Problēmu novēršana / risinājums
Nelietojiet EEPROM, ja pulksteņa frekvence ir zemāka par 1 MHz un barošanas tilpumstage ir zem 2V. Ja darba frekvenci nevar paaugstināt virs 1MHz, tad piegādes tilpumstage jābūt vairāk nekā 2V. Līdzīgi, ja piegādes tilptage nevar paaugstināt virs 2V, tad darbības frekvencei jābūt lielākai par 1MHz.
Ir zināms, ka šī funkcija ir atkarīga no temperatūras, taču tā nav raksturota. Norādījumi tiek sniegti tikai istabas temperatūrai.
Taimera 1. skaitītāja PWM izejas ģenerēšana OC1B - XOC1B nedarbojas pareizi
Taimera 1. skaitītāja PWM izeja OC1B-XOC1B nedarbojas pareizi. Tikai tad, ja vadības biti, COM1B1 un COM1B0 ir tādā pašā režīmā kā attiecīgi COM1A1 un COM1A0, OC1B-XOC1B izvade darbojas pareizi.
Problēmu novēršana / darbs apkārt
Vienīgais risinājums ir izmantot vienu un to pašu vadības iestatījumu vadības bitiem COM1A [1: 0] un COM1B [1: 0]; skatiet datu lapas 14.-4. Tabulu. Problēma ir novērsta Tiny45 rev D versijā.
Rev. A
Pārāk liels jaudas samazināšanas enerģijas patēriņš
DebugWIRE zaudē komunikāciju, kad viens cilvēks iejaucas pārtraukumos
PLL netiek bloķēts
EEPROM, kas nolasīts no lietojumprogrammas koda, nedarbojas Lock Bit Mode 3
EEPROM nolasīšana var neizdoties pie zema pieplūdes tilpumatage / zema pulksteņa frekvence
Pārāk liels jaudas samazināšanas enerģijas patēriņš
Trīs situācijas novedīs pie pārāk liela enerģijas patēriņa. Šie ir:
Ārējo pulksteni izvēlas drošinātāji, bet I / O PORT joprojām ir iespējots kā izeja.
EEPROM tiek nolasīts pirms ieslēgšanas.
VCC ir 4.5 volti vai vairāk.
Atruna: informācija šajā dokumentā ir sniegta saistībā ar Atmel produktiem. Šis dokuments vai saistībā ar Atmel produktu pārdošanu nepiešķir nekādas tiešas vai netiešas licences intelektuālā īpašuma tiesībām. IZŅEMOT TO, KAS PAREDZĒTS ATMEL TIRDZNIECĪBAS NOTEIKUMIEM UN NOSACĪJUMIEM, KAS ATRODAS ATMEL WEBVIETNE, ATMEL UZŅEMAS NEKĀDAS ATBILDĪBAS UN ATSAUC JEBKĀDAS TIEŠAS, NETIEŠAS VAI STRUKTŪRAS GARANTIJAS ATTIECĪBĀ UZ TĀS PRODUKTIEM, IESKAITOT, BET NE Aprobežojoties, TIRDZNIECĪBAS, TIRDZNIECĪBAS DARBĪBAS DARBĪBAS GARANTIJAS NETIEŠĀS GARANTIJAS. NEKĀDĀ GADĪJUMĀ ATMEL NAV ATBILDĪGS PAR JEBKĀDIEM TIEŠIEM, NETIEŠIEM, IZSEKOTIEM, SODĪGIEM, ĪPAŠIEM VAI NEJAUŠIEM ZAUDĒJUMIEM (TOStarp BEZ IEROBEŽOJUMIEM ZAUDĒJUMIEM UN PEĻŅAS, UZŅĒMĒJDARBĪBAS PĀRTRAUKŠANAS LIETOŠANAS PĀRTRAUKŠANAI, ŠO DOKUMENTU, PAT JA ATMEL IR BŪTIS PĀRDOTS PAR ŠĀDU BOJĀJUMU IESPĒJU.
Atmel nesniedz nekādus apliecinājumus vai garantijas attiecībā uz šī dokumenta satura precizitāti vai pilnīgumu un patur tiesības jebkurā laikā bez brīdinājuma veikt izmaiņas specifikācijās un produktu aprakstos. Atmel neuzņemas nekādas saistības atjaunināt šeit ietverto informāciju. Ja vien nav īpaši noteikts citādi, Atmel produkti nav piemēroti un tos nedrīkst izmantot automobiļu vajadzībām. Atmel produkti nav paredzēti, nav atļauti vai garantēti lietošanai kā komponenti lietojumos, kas paredzēti dzīvības uzturēšanai vai uzturēšanai.