Atmel

8-bitni AVR mikrokrmilnik Atmel z 2/4/8K bajti sistemsko programabilnega Flashačip

 

Lastnosti

  • Visoko zmogljiv 8-bitni mikrokrmilnik AVR® z nizko porabo
  • Napredna arhitektura RISC
  • 120 zmogljivih navodil – izvedba večine ciklov z eno uro
  • 32 x 8 splošnih delovnih registrov
  • Popolnoma statično delovanje
  • Nehlapni programski in podatkovni pomnilniki
  • 2/4/8K bajtov v sistemskem programabilnem programskem pomnilniku Flash
  • Vzdržljivost: 10,000 ciklov pisanja/brisanja
  • 128/256/512 bajtov EEPROM, ki ga je mogoče programirati v sistemu
  • Vzdržljivost: 100,000 ciklov pisanja/brisanja
  • 128/256/512 bajtov notranji SRAM
  • Programska ključavnica za samoprogramiranje programa Flash in varnost podatkov EEPROM

Periferne funkcije

  • 8-bitni časovnik/števec s preddelilnikom in dvema kanaloma PWM
  • 8-bitni hitri časovnik/števec z ločenim preddelilnikom
  • 2 visokofrekvenčna PWM izhoda z ločenima izhodnima primerjalnima registroma
  • Programabilni generator mrtvega časa
  • USI – Univerzalni serijski vmesnik z detektorjem stanja zagona
  • 10-bitni ADC

4 enojni kanali

2 para diferencialnih kanalov ADC s programirljivim ojačanjem (1x, 20x)

Merjenje temperature

Programabilni nadzorni časovnik z ločenim oscilatorjem na čipu

Analogni primerjalnik na čipu

Posebne funkcije mikrokrmilnika

sistem za odpravljanje napak na čipu debugWIRE

Programiranje znotraj sistema prek vrat SPI

Zunanji in notranji viri prekinitev

Načini mirovanja z nizko porabo energije, zmanjševanje šuma ADC in načini izklopa

Izboljšano vezje za ponastavitev ob vklopu

Programabilno vezje za zaznavanje porjavitve

Notranji kalibrirani oscilator

V/I in paketi

Šest programabilnih V/I linij

8-pin PDIP, 8-pin SOIC, 20-pin QFN/MLF in 8-pin TSSOP (samo ATtiny45/V)

Delovna zvezatage
– 1.8 – 5.5 V za ATtiny25V/45V/85V
– 2.7 – 5.5 V za ATtiny25/45/85

Stopnja hitrosti
– ATtiny25V/45V/85V: 0 – 4 MHz pri 1.8 – 5.5 V, 0 – 10 MHz pri 2.7 – 5.5 V
– ATtiny25/45/85: 0 – 10 MHz pri 2.7 – 5.5 V, 0 – 20 MHz pri 4.5 – 5.5 V

Razpon industrijskih temperatur

Nizka poraba energije

Aktivni način:

1 MHz, 1.8 V: 300 µA

Način izklopa:

Konfiguracije pinov

Pinout ATtiny25/45/85 Konfiguracija

Opisi žebljičkov

VCC: Supply voltage.
GND: Ozemljitev.
Vrata B (PB5:PB0): Vrata B so 6-bitna dvosmerna V/I vrata z notranjimi vlečnimi upori (izbranimi za vsak bit). Izhodni medpomnilniki vrat B imajo simetrične pogonske lastnosti z visoko zmogljivostjo ponora in vira. Kot vhodi bodo zatiči vrat B, ki so zunaj nizko potegnjeni, vir toka, če so aktivirani vlečni upori. Zatiči vrat B so v treh položajih, ko postane pogoj ponastavitve aktiven, tudi če ura ne teče.

Vrata B služijo tudi funkcijam različnih posebnih funkcij ATtiny25/45/85, kot je navedeno
Na ATtiny25 se programabilna V/I vrata PB3 in PB4 (zatiči 2 in 3) zamenjajo v načinu združljivosti ATtiny15 za podporo združljivosti nazaj z ATtiny15.

RESET: Ponastavi vhod. Nizek nivo na tem zatiču, ki je daljši od minimalne dolžine impulza, bo povzročil ponastavitev, tudi če ura ne teče in pod pogojem, da zatič za ponastavitev ni bil onemogočen. Najmanjša dolžina impulza je navedena v Tabela 21-4 na strani 165. Ni zajamčeno, da bodo krajši impulzi ustvarili ponastavitev.

Zatič za ponastavitev se lahko uporablja tudi kot (šibek) I/O zatič.

konecview

ATtiny25/45/85 je CMOS 8-bitni mikrokrmilnik z nizko porabo energije, ki temelji na AVR izboljšani RISC arhitekturi. Z izvajanjem zmogljivih navodil v enem taktu ATtiny25/45/85 doseže prepustnost, ki se približuje 1 MIPS na MHz, kar oblikovalcu sistema omogoča optimizacijo porabe energije glede na hitrost obdelave.

Diagram blokov Blok diagram

Jedro AVR združuje bogat nabor navodil z 32 splošnimi delovnimi registri. Vseh 32 registrov je neposredno povezanih z aritmetično logično enoto (ALU), kar omogoča dostop do dveh neodvisnih registrov v enem samem ukazu, ki se izvede v enem taktu. Nastala arhitektura je bolj učinkovita pri kodiranju, hkrati pa dosega do desetkrat hitrejše prepustnosti kot običajni mikrokrmilniki CISC.

ATtiny25/45/85 ponuja naslednje funkcije: 2/4/8K bajtov programabilnega bliska v sistemu, 128/256/512 bajtov EEPROM, 128/256/256 bajtov SRAM, 6 splošnih V/I linij, 32 splošnih namenski delovni registri, en 8-bitni časovnik/števec z načini primerjave, en 8-bitni visokohitrostni časovnik/števec, univerzalni serijski vmesnik, notranje in zunanje prekinitve, 4-kanalni 10-bitni ADC, programabilni nadzorni časovnik z notranjim Oscilator in trije programsko izbrani načini varčevanja z energijo. Način nedejavnosti ustavi CPE, hkrati pa omogoči nadaljnje delovanje SRAM-a, časovnika/števca, ADC-ja, analognega primerjalnika in sistema prekinitev. Način izklopa shrani vsebino registra in onemogoči vse funkcije čipa do naslednje prekinitve ali ponastavitve strojne opreme. Način zmanjševanja hrupa ADC ustavi CPE in vse V/I module razen ADC, da zmanjša šum preklapljanja med pretvorbami ADC.

Naprava je izdelana z uporabo Atmelove tehnologije obstojnega pomnilnika visoke gostote. ISP Flash na čipu omogoča ponovno programiranje programskega pomnilnika v sistemu prek serijskega vmesnika SPI, z običajnim obstojnim programatorjem pomnilnika ali z zagonsko kodo na čipu, ki se izvaja na jedru AVR.

ATtiny25/45/85 AVR je podprt s celotno zbirko orodij za razvoj programov in sistemov, vključno s prevajalniki C, sestavljalci makrov, razhroščevalniki/simulatorji programov in kompleti za ocenjevanje.

O virih

Obsežen nabor razvojnih orodij, opomb o aplikacijah in podatkovnih listov je na voljo za prenos http://www.atmel.com/avr.

Koda npramples

Ta dokumentacija vsebuje preprosto kodo, nprampdatoteke, ki na kratko prikazujejo uporabo različnih delov naprave. Ta koda nprampdomnevamo, da del specifične glave file je vključen pred kompilacijo. Zavedajte se, da vsi prodajalci prevajalnika C ne vključujejo bitnih definicij v glavo files in obravnavanje prekinitev v C je odvisno od prevajalnika. Za več podrobnosti potrdite z dokumentacijo prevajalnika C.

Za V/I registre, ki se nahajajo v razširjeni V/I preslikavi, je treba navodila “IN”, “OUT”, “SBIS”, “SBIC”, “CBI” in “SBI” zamenjati z navodili, ki omogočajo dostop do razširjenega I /O. Običajno to pomeni "LDS" in "STS" v kombinaciji s "SBRS", "SBRC", "SBR" in "CBR". Upoštevajte, da vse naprave AVR ne vključujejo razširjenega V/I zemljevida.

Kapacitivno zaznavanje dotika

Atmel QTouch Library ponuja preprosto rešitev za vmesnike, občutljive na dotik, na mikrokontrolerjih Atmel AVR. Knjižnica QTouch Library vključuje podporo za metode pridobivanja QTouch® in QMatrix®.

Zaznavanje dotika je enostavno dodano kateri koli aplikaciji s povezovanjem knjižnice QTouch in uporabo vmesnika za programiranje aplikacij (API) knjižnice za definiranje kanalov na dotik in senzorjev. Aplikacija nato pokliče API, da pridobi informacije o kanalu in določi stanje senzorja za dotik.

Knjižnica QTouch je brezplačna in jo lahko prenesete iz Atmela webmesto. Za več informacij in podrobnosti o implementaciji glejte QTouch Library User Guide – na voljo tudi pri Atmelu webmesto.

Hramba podatkov

Rezultati kvalifikacije zanesljivosti kažejo, da je predvidena stopnja napak pri hrambi podatkov veliko manjša od 1 PPM v 20 letih pri 85 °C ali 100 letih pri 25 °C.

CPU jedro AVR

Uvod

Ta razdelek govori o jedrni arhitekturi AVR na splošno. Glavna funkcija jedra procesorja je zagotavljanje pravilnega izvajanja programa. CPE mora zato imeti možnost dostopa do pomnilnikov, izvajanja izračunov, nadzora perifernih naprav in obravnavanja prekinitev.

Arhitekturni konecview Arhitektura

Da bi povečali zmogljivost in vzporednost, AVR uporablja harvardsko arhitekturo – z ločenimi pomnilniki in vodili za program in podatke. Navodila v programskem pomnilniku se izvajajo z enostopenjskim cevovodom. Medtem ko se eno navodilo izvaja, je naslednje navodilo vnaprej pridobljeno iz pomnilnika programa. Ta koncept omogoča, da se ukazi izvajajo v vsakem taktu. Programski pomnilnik je bliskovni pomnilnik, ki ga je mogoče ponovno programirati v sistemu.

Register s hitrim dostopom File vsebuje 32 x 8-bitnih splošnih delovnih registrov z enim dostopnim časom taktnega cikla. To omogoča enociklično delovanje aritmetično logične enote (ALU). Pri tipični operaciji ALU se iz registra izdata dva operanda File, se operacija izvede, rezultat pa se shrani nazaj v register File– v enem taktu.

Šest od 32 registrov je mogoče uporabiti kot tri 16-bitne kazalce posrednega naslovnega registra za naslavljanje podatkovnega prostora – kar omogoča učinkovite izračune naslovov. Enega od teh kazalcev naslovov lahko uporabite tudi kot kazalec naslovov za iskalne tabele v pomnilniku programa Flash. Ti dodani funkcijski registri so 16-bitni X-, Y- in Z-register, opisani kasneje v tem razdelku.

ALU podpira aritmetične in logične operacije med registri ali med konstanto in registrom. Operacije z enim registrom se lahko izvajajo tudi v ALU. Po aritmetični operaciji se statusni register posodobi, da odraža informacije o rezultatu operacije.

Potek programa je zagotovljen s pogojnimi in brezpogojnimi navodili za skok in klic, ki lahko neposredno naslovijo celoten naslovni prostor. Večina ukazov AVR ima eno samo 16-bitno besedno obliko, vendar obstajajo tudi 32-bitna navodila.

Med prekinitvami in klici podprogramov je povratni naslov Program Counter (PC) shranjen v skladu. Sklad je dejansko dodeljen v splošnem podatkovnem SRAM-u, zato je velikost sklada omejena samo s skupno velikostjo SRAM-a in uporabo SRAM-a. Vsi uporabniški programi morajo inicializirati SP v rutini Reset (preden se izvedejo podprogrami ali prekinitve). Kazalec sklada (SP) je dostopen za branje/pisanje v V/I prostoru. Do podatkovnega SRAM-a je mogoče zlahka dostopati prek petih različnih načinov naslavljanja, ki jih podpira arhitektura AVR.

Vsi pomnilniški prostori v arhitekturi AVR so linearni in navadni pomnilniški zemljevidi.

Fleksibilni prekinitveni modul ima svoje krmilne registre v V/I prostoru z dodatnim bitom za omogočanje globalne prekinitve v statusnem registru. Vse prekinitve imajo ločen prekinitveni vektor v tabeli prekinitvenih vektorjev. Prekinitve imajo prednost v skladu s svojim položajem prekinitvenega vektorja. Nižji kot je naslov prekinitvenega vektorja, višja je prioriteta.

V/I pomnilniški prostor vsebuje 64 naslovov za periferne funkcije CPU, kot so kontrolni registri, SPI in druge V/I funkcije. Do V/I pomnilnika je mogoče dostopati neposredno ali kot lokacije podatkovnega prostora, ki sledijo lokacijam registra File, 0x20 – 0x5F.

ALU – Aritmetično logična enota

Visoko zmogljiva AVR ALU deluje v neposredni povezavi z vsemi 32 splošnimi delovnimi registri. Znotraj enega takta se izvajajo aritmetične operacije med registri splošnega namena ali med registrom in takojšnjim. Operacije ALU so razdeljene v tri glavne kategorije – aritmetične, logične in bitne funkcije. Nekatere izvedbe arhitekture nudijo tudi zmogljiv množitelj, ki podpira predznačeno/nepodznačeno množenje in ulomek. Za podroben opis si oglejte razdelek »Nabor navodil«.

Statusni register

Statusni register vsebuje informacije o rezultatu zadnjega izvedenega aritmetičnega ukaza. Te informacije se lahko uporabijo za spreminjanje poteka programa za izvajanje pogojnih operacij. Upoštevajte, da se statusni register posodobi po vseh operacijah ALU, kot je določeno v Referenci nabora navodil. To bo v mnogih primerih odpravilo potrebo po uporabi namenskih navodil za primerjavo, kar bo povzročilo hitrejšo in bolj kompaktno kodo.

Statusni register se ne shrani samodejno ob vstopu v prekinitveno rutino in obnovi ob vrnitvi iz prekinitve. To mora obravnavati programska oprema.

SREG – register statusa AVR

Statusni register AVR – SREG – je opredeljen kot:

bit 7 6 5 4 3 2 1 0
0x3F I T H S V N Z C SREG
Branje/Pisanje R/W R/W R/W R/W R/W R/W R/W R/W
Začetna vrednost 0 0 0 0 0 0 0 0

Bit 7 – I: Omogočanje globalne prekinitve

Global Interrupt Enable bit mora biti nastavljen, da so prekinitve omogočene. Posamezno krmiljenje omogočanja prekinitev se nato izvaja v ločenih kontrolnih registrih. Če je Global Interrupt Enable Register počiščen, nobena od prekinitev ni omogočena neodvisno od posameznih nastavitev za omogočanje prekinitve. I-bit izbriše strojna oprema, potem ko pride do prekinitve, in ga nastavi ukaz RETI, da omogoči nadaljnje prekinitve. I-bit lahko nastavi in ​​počisti tudi aplikacija z navodili SEI in CLI, kot je opisano v sklicu na nabor navodil.

Bit 6 – T: shranjevanje bitnih kopij

Navodila za kopiranje bitov BLD (Bit LoaD) in BST (Bit STore) uporabljajo T-bit kot vir ali cilj za upravljani bit. Malo iz registra v Registru File lahko prekopirate v T z ukazom BST, bit v T pa lahko prekopirate v bit v registru v registru File po navodilih BLD.

Bit 5 – H: Zastavica za polovični prenos

Zastavica Half Carry H označuje Half Carry v nekaterih aritmetičnih operacijah. Half Carry je uporaben pri aritmetiki BCD. Za podrobne informacije glejte »Opis nabora navodil«.

Bit 4 – S: bit predznaka, S = N ⊕ V

S-bit je vedno izključujoč ali med negativno zastavico N in zastavico preliva komplementa dveh V. Glejte »Opis nabora navodil« za podrobne informacije.

Bit 3 – V: Zastavica prelivanja komplementa dveh

Zastavica prelivanja komplementa dveh V podpira aritmetiko komplementa dveh. Za podrobne informacije glejte »Opis nabora navodil«.

Bit 2 – N: Negativna zastavica

Negativna zastavica N označuje negativen rezultat aritmetične ali logične operacije. Za podrobne informacije glejte »Opis nabora navodil«.

Bit 1 – Z: ničelna zastavica

Ničelna zastavica Z označuje ničelni rezultat aritmetične ali logične operacije. Za podrobne informacije glejte »Opis nabora navodil«.

Bit 0 – C: Zastavica za prenos

Zastavica za prenos C označuje prenos v aritmetični ali logični operaciji. Za podrobne informacije glejte »Opis nabora navodil«.

Register za splošne namene File

Register File je optimiziran za nabor navodil AVR Enhanced RISC. Da bi dosegli zahtevano zmogljivost in prilagodljivost, register podpira naslednje vhodno/izhodne sheme File:

En 8-bitni izhodni operand in en 8-bitni vhodni rezultat

Dva 8-bitna izhodna operanda in en 8-bitni vhodni rezultat

Dva 8-bitna izhodna operanda in en 16-bitni vhodni rezultat

En 16-bitni izhodni operand in en 16-bitni vhodni rezultat

Slika 4-2 prikazuje strukturo 32 splošnih delovnih registrov v CPU. Splošni namen

Kot je prikazano v Slika 4-2, je vsakemu registru dodeljen tudi naslov podatkovnega pomnilnika, ki jih preslika neposredno v prvih 32 lokacij uporabniškega podatkovnega prostora. Čeprav ta organizacija pomnilnika ni fizično implementirana kot lokacije SRAM, zagotavlja veliko prilagodljivost pri dostopu do registrov, saj je mogoče registre kazalcev X, Y in Z nastaviti tako, da indeksirajo kateri koli register v file.Večina navodil, ki delujejo na Register File imajo neposreden dostop do vseh registrov, večina pa je enocikličnih navodil.

X-register, Y-register in Z-register

Registri R26..R31 imajo poleg splošne uporabe še nekaj dodatnih funkcij. Ti registri so 16-bitni naslovni kazalci za posredno naslavljanje podatkovnega prostora. Trije posredni naslovni registri X, Y in Z so definirani, kot je opisano v Slika 4-3.

Registrirajte se

V različnih načinih naslavljanja imajo ti naslovni registri funkcije kot fiksni premik, samodejno povečevanje in samodejno zmanjševanje (za podrobnosti glejte referenco nabora navodil).

Kazalec sklada

Stack se uporablja predvsem za shranjevanje začasnih podatkov, za shranjevanje lokalnih spremenljivk in za shranjevanje povratnih naslovov po prekinitvah in klicih podprogramov. Register kazalca sklada vedno kaže na vrh sklada. Upoštevajte, da je sklad implementiran tako, da raste z višjih pomnilniških lokacij na nižje pomnilniške lokacije. To pomeni, da ukaz Stack PUSH zmanjša kazalec sklada.

Kazalec sklada kaže na področje podatkovnega sklada SRAM, kjer se nahajajo skladi podprogramov in prekinitev. Ta prostor sklada v podatkovnem SRAM-u mora definirati program, preden se izvedejo kakršni koli podprogramski klici ali omogočijo prekinitve. Kazalec sklada mora biti nastavljen na točko nad 0x60. Kazalec sklada se zmanjša za eno, ko se podatki potisnejo v sklad z ukazom PUSH, in se zmanjša za dve, ko se povratni naslov potisne v sklad s klicem podprograma ali prekinitvijo. Kazalec sklada se poveča za eno, ko se podatki izvlečejo iz sklada z ukazom POP, in se poveča za dve, ko se podatki izvlečejo iz sklada z vrnitvijo iz podprograma RET ali vrnitvijo iz prekinitve RETI.

AVR Stack Pointer je implementiran kot dva 8-bitna registra v I/O prostoru. Število dejansko uporabljenih bitov je odvisno od izvedbe. Upoštevajte, da je podatkovni prostor v nekaterih izvedbah arhitekture AVR tako majhen, da je potreben samo SPL. V tem primeru register SPH ne bo prisoten.

SPH in SPL — register kazalcev sklada

bit 15 14 13 12 11 10 9 8
0x3E SP15 SP14 SP13 SP12 SP11 SP10 SP9 SP8 SPH
0x3D SP7 SP6 SP5 SP4 SP3 SP2 SP1 SP0 SPL
7 6 5 4 3 2 1 0
Branje/Pisanje R/W R/W R/W R/W R/W R/W R/W R/W
Branje/Pisanje R/W R/W R/W R/W R/W R/W R/W R/W
Začetna vrednost RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND
Začetna vrednost RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND

Čas izvedbe navodil

Ta razdelek opisuje splošne koncepte časovnega razporejanja dostopa za izvajanje navodil. CPE AVR poganja ura CPE clkCPU, neposredno ustvarjena iz izbranega vira takta za čip. Notranja delitev ure se ne uporablja.

Fig4.4

Slika 4-4 prikazuje vzporedno pridobivanje navodil in izvajanje navodil, ki jih omogočata harvardska arhitektura in register hitrega dostopa File koncept. To je osnovni koncept cevovoda za pridobitev do 1 MIPS na MHz z ustreznimi edinstvenimi rezultati za funkcije na ceno, funkcije na takte in funkcije na napajalno enoto.

Slika 4-5. Enociklično delovanje ALU

Fig4.5

Obravnava ponastavitve in prekinitve

AVR ponuja več različnih virov prekinitev. Te prekinitve in ločen vektor ponastavitve imajo vsak ločen programski vektor v pomnilniškem prostoru programa. Vsem prekinitvam so dodeljeni posamezni omogočitveni biti, ki morajo biti zapisani kot logična ena skupaj z bitom za omogočitev globalne prekinitve v statusnem registru, da omogočijo prekinitev.

Najnižji naslovi v pomnilniškem prostoru programa so privzeto definirani kot vektorji ponastavitve in prekinitve. Celoten seznam vektorjev je prikazan v “Prekinitve” na strani 48. Seznam določa tudi stopnje prioritete različnih prekinitev. Nižji kot je naslov, višja je stopnja prioritete. RESET ima najvišjo prioriteto, naslednji pa je INT0 – zahteva za zunanjo prekinitev 0.

Ko pride do prekinitve, se I-bit Global Interrupt Enable počisti in vse prekinitve so onemogočene. Uporabniška programska oprema lahko zapiše logično ena v I-bit, da omogoči ugnezdene prekinitve. Vse omogočene prekinitve lahko nato prekinejo trenutno prekinitveno rutino. I-bit se samodejno nastavi, ko se izvede navodilo za vrnitev iz prekinitve – RETI.

V osnovi obstajata dve vrsti prekinitev. Prvo vrsto sproži dogodek, ki nastavi zastavico prekinitve. Za te prekinitve je programski števec vektoriran na dejanski prekinitveni vektor, da se izvede rutina za obdelavo prekinitev, strojna oprema pa počisti ustrezno prekinitveno zastavico. Prekinitvene zastavice je mogoče počistiti tudi tako, da zapišete logično enoto na položaj(e) bitov zastavice, ki jih želite počistiti. Če pride do prekinitvenega stanja, medtem ko je ustrezen bit za omogočanje prekinitve počiščen, bo zastavica prekinitve nastavljena in shranjena, dokler prekinitev ni omogočena ali programska oprema ne počisti zastavice. Podobno, če pride do enega ali več prekinitvenih pogojev, medtem ko je bit za omogočanje globalne prekinitve počiščen, bodo ustrezne zastavice za prekinitev nastavljene in shranjene, dokler ni nastavljen bit za omogočanje globalne prekinitve, nato pa bodo izvedene po prednostnem vrstnem redu.

Druga vrsta prekinitev se bo sprožila, dokler je prisotno prekinitveno stanje. Te prekinitve nimajo nujno prekinitvenih zastavic. Če prekinitveni pogoj izgine, preden je prekinitev omogočena, se prekinitev ne bo sprožila.

Ko AVR zapusti prekinitev, se bo vedno vrnil v glavni program in izvedel še en ukaz, preden bo postrežena kakršna koli čakajoča prekinitev.

Upoštevajte, da se statusni register ne shrani samodejno, ko vstopite v prekinitveno rutino, niti se ne obnovi, ko se vrnete iz prekinitvene rutine. To mora obravnavati programska oprema.

Ko uporabite navodilo CLI za onemogočanje prekinitev, bodo prekinitve takoj onemogočene. Po ukazu CLI ne bo izvedena nobena prekinitev, tudi če se pojavi hkrati z ukazom CLI. Naslednji exampLe prikazuje, kako se to lahko uporabi za izogibanje prekinitvam med časovno določenim zapisovalnim zaporedjem EEPROM.

Koda sestavljanja Example
v r16, SREG; shrani vrednost SREG

cli ; onemogočite prekinitve med časovnim zaporedjem

sbi EECR, EEMPE ; zaženite zapisovanje v EEPROM

sbi EECR, EEPE

ven SREG, r16 ; obnovi vrednost SREG (I-bit)

C Koda Example
char cSREG;

cSREG = SREG; /* shrani vrednost SREG */

/* onemogoči prekinitve med časovnim zaporedjem */

_CLI();

EECR |= (1<

EECR |= (1<

SREG = cSREG; /* obnovi vrednost SREG (I-bit) */

Pri uporabi ukaza SEI za omogočanje prekinitev se bo ukaz, ki sledi SEI, izvedel pred morebitnimi čakajočimi prekinitvami, kot je prikazano v tem primeruample.

Koda sestavljanja Example
sei ; nastavite Global Interrupt Enable

spanje; vstopi v stanje spanja in čaka na prekinitev

; opomba: preklopil bo v stanje spanja pred vsemi čakajočimi

; prekinitev(e)

C Koda Example
_SEI(); /* nastavi globalno omogoči prekinitev */

_SLEEP(); /* vstop v stanje mirovanja, čakanje na prekinitev */

/* opomba: prešel bo v stanje mirovanja pred kakršno koli čakajočo(-imi) prekinitvijo(-ami) */

Odzivni čas prekinitve

Odziv izvajanja prekinitve za vse omogočene prekinitve AVR je najmanj štiri takte. Po štirih taktih se izvede naslov programskega vektorja za dejansko rutino za obdelavo prekinitev. V tem obdobju štirih urnih ciklov je programski števec potisnjen na sklad. Vektor je običajno skok na prekinitveno rutino in ta skok traja tri takte. Če med izvajanjem ukaza z več cikli pride do prekinitve, se to navodilo zaključi, preden je prekinitev postrežena. Če pride do prekinitve, ko je MCU v načinu mirovanja, se odzivni čas izvajanja prekinitve poveča za štiri takte. To povečanje pride poleg časa zagona iz izbranega načina mirovanja.

Vrnitev iz rutine za obdelavo prekinitev traja štiri takte. Med temi štirimi taktnimi cikli se programski števec (dva bajta) vrne iz sklada, kazalec sklada se poveča za dva in nastavi se I-bit v SREG.

AVR spomini

V tem razdelku so opisani različni pomnilniki v ATtiny25/45/85. Arhitektura AVR ima dva glavna pomnilniška prostora, podatkovni pomnilnik in programski pomnilniški prostor. Poleg tega ima ATtiny25/45/85 pomnilnik EEPROM za shranjevanje podatkov. Vsi trije pomnilniški prostori so linearni in pravilni.

Programski bliskovni pomnilnik, ki ga je mogoče ponovno programirati v sistemu

ATtiny25/45/85 vsebuje 2/4/8K bajtov vgrajenega sistemskega bliskovnega pomnilnika, ki ga je mogoče ponovno programirati, za shranjevanje programov. Ker so vsa navodila AVR široka 16 ali 32 bitov, je Flash organiziran kot 1024/2048/4096 x 16.

Flash pomnilnik ima vzdržljivost vsaj 10,000 ciklov pisanja/brisanja. Programski števec ATtiny25/45/85 (PC) je širok 10/11/12 bitov in tako obravnava 1024/2048/4096 programskih pomnilniških mest. "Program za spomin- ming« na strani 147 vsebuje podroben opis serijskega prenosa podatkov Flash z uporabo zatičev SPI.

Konstantne tabele je mogoče dodeliti znotraj celotnega naslovnega prostora programskega pomnilnika (glejte opis navodil LPM – Load Program memory).

Slika 5-1. Zemljevid programskega pomnilnika Zemljevid spomina

Podatkovni pomnilnik SRAM

Slika 5-2 prikazuje, kako je organiziran pomnilnik ATtiny25/45/85 SRAM.

Nižje 224/352/607 Podatkovne pomnilniške lokacije obravnavajo oba registra File, V/I pomnilnik in notranji podatkovni SRAM. Prvih 32 lokacij naslavlja Register File, naslednjih 64 lokacij standardni V/I pomnilnik, zadnjih 128/256/512 lokacij pa naslavlja notranji podatkovni SRAM.

Pet različnih načinov naslavljanja za podatkovni pomnilnik zajema: neposredno, posredno s premikom, posredno, posredno s predzmanjševanjem in posredno z naknadnim prirastkom. V registru File, registri R26 do R31 vsebujejo registre kazalcev posrednega naslavljanja.

Neposredno naslavljanje doseže celoten podatkovni prostor.

Način Indirektno s premikom doseže 63 naslovnih lokacij od osnovnega naslova, ki ga poda Y- ali Z- register.

Pri uporabi načinov posrednega naslavljanja registra s samodejnim pred-dekrementom in post-inkrementom se naslovni registri X, Y in Z dekrementirajo ali povečajo.

32 splošnih delovnih registrov, 64 V/I registrov in 128/256/512 bajtov notranjih podatkov SRAM v ATtiny25/45/85 so vsi dostopni prek vseh teh načinov naslavljanja. Register File je opisano v "Gen- eralni register namenov File« na strani 10.

Slika 5-2. Zemljevid pomnilnika podatkov Zemljevid spomina 2

Dostop do pomnilnika podatkov Times

Ta razdelek opisuje splošne koncepte časovnega razporeda dostopa za dostop do notranjega pomnilnika. Dostop do notranjih podatkov SRAM se izvede v dveh ciklih clkCPE, kot je opisano v Slika 5-3.

Slika 5-3. Cikli dostopa do podatkov SRAM na čipu Podatki o čipu Podatkovni pomnilnik EEPROM

ATtiny25/45/85 vsebuje 128/256/512 bajtov podatkovnega pomnilnika EEPROM. Organiziran je kot ločen podatkovni prostor, v katerem je mogoče brati in zapisovati posamezne bajte. EEPROM ima vzdržljivost vsaj 100,000 ciklov pisanja/brisanja. V nadaljevanju je opisan dostop med EEPROM in CPE, ki določa naslovne registre EEPROM, podatkovni register EEPROM in kontrolni register EEPROM. Za podrobnosti glej “Serijski prenos” na strani 151.

EEPROM dostop za branje/pisanje

Dostopni registri EEPROM so dostopni v V/I prostoru.

Dostopni časi pisanja za EEPROM so podani v Tabela 5-1 na strani 21. Funkcija samočasovnega merjenja pa omogoča, da uporabniška programska oprema zazna, kdaj se lahko zapiše naslednji bajt. Če uporabniška koda vsebuje navodila, ki zapisujejo EEPROM, je treba sprejeti nekaj previdnostnih ukrepov. V močno filtriranih napajalnikih bo VCC verjetno počasi naraščal ali padal

Vklop/izklop. To povzroči, da naprava nekaj časa deluje pri voltage nižji od določenega kot najmanjšega za uporabljeno taktno frekvenco. glej “Preprečevanje poškodb EEPROM-a” na strani 19 za podrobnosti o tem, kako se izogniti težavam v teh situacijah.

Da bi preprečili nenamerno pisanje v EEPROM, je treba upoštevati poseben postopek zapisovanja. Nanašati se na »Atomsko Programiranje bajtov” na strani 17 in “Programiranje deljenih bajtov” na strani 17 za podrobnosti o tem.

Ko je EEPROM prebran, se CPE ustavi za štiri takte, preden se izvede naslednji ukaz. Ko je EEPROM zapisan, se CPE ustavi za dva cikla ure, preden se izvede naslednji ukaz.

Programiranje atomskega bajta

Uporaba atomskega bajtnega programiranja je najenostavnejši način. Pri zapisovanju bajta v EEPROM mora uporabnik zapisati naslov v register EEAR in podatke v register EEDR. Če so biti EEPMn nič, bo pisanje EEPE (v štirih ciklih po zapisu EEMPE) sprožilo operacijo brisanja/pisanja. Tako cikel brisanja kot pisanja se izvedeta v eni operaciji in podan je skupni čas programiranja Tabela 5-1 na strani 21. Bit EEPE ostane nastavljen, dokler se operacije brisanja in pisanja ne zaključijo. Medtem ko je naprava zaposlena s programiranjem, ni mogoče izvajati drugih operacij EEPROM.

Programiranje razdeljenih bajtov

Cikel brisanja in pisanja je mogoče razdeliti na dve različni operaciji. To je lahko uporabno, če sistem zahteva kratek dostopni čas za neko omejeno časovno obdobje (običajno, če napajalnik voltage pade). Da bi napredoval- tagPri tej metodi se zahteva, da so bila mesta za pisanje izbrisana pred operacijo pisanja. Ker pa sta operaciji brisanja in pisanja razdeljeni, je brisanje mogoče izvesti, ko sistem omogoča izvajanje časovno kritičnih operacij (običajno po vklopu).

Izbriši

Za brisanje bajta je treba naslov zapisati v EEAR. Če so biti EEPMn 0b01, bo pisanje EEPE (v štirih ciklih po zapisu EEMPE) sprožilo samo operacijo brisanja (čas programiranja je podan v Tabela 5-1 naprej stran 21). Bit EEPE ostane nastavljen, dokler se brisanje ne zaključi. Medtem ko je naprava zaposlena s programiranjem, ni mogoče izvajati drugih operacij EEPROM.

Pišite

Za zapis lokacije mora uporabnik vpisati naslov v EEAR in podatke v EEDR. Če so biti EEPMn 0b10, bo pisanje EEPE (v štirih ciklih po zapisu EEMPE) sprožilo samo operacijo pisanja (čas programiranja je podan v Tabela 5-1 na strani 21). Bit EEPE ostane nastavljen, dokler se zapisovanje ne zaključi. Če lokacija za pisanje ni bila izbrisana pred pisanjem, je treba shranjene podatke šteti za izgubljene. Medtem ko je naprava zaposlena s programiranjem, ni mogoče izvajati drugih operacij EEPROM.

Umerjeni oscilator se uporablja za merjenje časa dostopov do EEPROM-a. Prepričajte se, da je frekvenca oscilatorja znotraj zahtev, opisanih v “OSCCAL – kalibracijski register oscilatorja” na strani 31.

Naslednja koda nprampprikazujejo en sklop in eno funkcijo C za brisanje, pisanje ali atomsko pisanje EEPROM-a. BivšiampPredpostavljamo, da so prekinitve nadzorovane (npr. z onemogočanjem prekinitev globalno), tako da med izvajanjem teh funkcij ne bo prišlo do prekinitev.

Koda sestavljanja Example
EEPROM_zapis:

; Počakajte na dokončanje prejšnjega pisanja

sbic EECR,EEPE

rjmp EEPROM_write

; Nastavite način programiranja

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

ven EECR, r16

; Nastavite naslov (r18:r17) v registru naslovov

ven EEARH, r18

ven EEARL, r17

; Zapis podatkov (r19) v register podatkov

ven EEDR, r19

; Napiši logično enico v EEMPE

sbi EECR,EEMPE

; Zaženite zapisovanje v eeprom z nastavitvijo EEPE

sbi EECR,EEPE

ret

C Koda Example
void EEPROM_write(unsigned char ucAddress, unsigned char ucData)

{

/* Počakajte na dokončanje prejšnjega pisanja */ while(EECR & (1<

;

/* Nastavi način programiranja */

EECR = (0<

/* Nastavitev registrov naslovov in podatkov */ EEAR = ucAddress;

EEDR = ucData;

/* Zapiši logično enico v EEMPE */

EECR |= (1<

/* Začni zapisovanje v eeprom z nastavitvijo EEPE */

EECR |= (1<

}

Naslednja koda nprampprikazujejo sestavljanje in funkcije C za branje EEPROM-a. Bivšiamppredpostavljamo, da so prekinitve nadzorovane, tako da med izvajanjem teh funkcij ne bo prišlo do prekinitev.

Koda sestavljanja Example
EEPROM_branje:

; Počakajte na dokončanje prejšnjega pisanja

sbic EECR,EEPE

rjmp EEPROM_branje

; Nastavite naslov (r18:r17) v registru naslovov

ven EEARH, r18

ven EEARL, r17

; Začnite brati eeprom tako, da napišete EERE

sbi EECR,EERE

; Branje podatkov iz registra podatkov

v r16, EEDR

ret

C Koda Example
unsigned char EEPROM_read(unsigned char ucAddress)

{

/* Počakajte na dokončanje prejšnjega pisanja */

medtem ko(EECR & (1<

;

/* Nastavi register naslovov */ EEAR = ucAddress;

/* Zaženite branje eeproma z zapisom EERE */

EECR |= (1<

/* Vrni podatke iz registra podatkov */

vrni EEDR;

}

Preprečevanje poškodb EEPROM-a

V obdobjih nizkega VCC se lahko podatki EEPROM poškodujejo, ker voltage je prenizek, da bi CPE in EEPROM pravilno delovala. Te težave so enake kot pri sistemih na ravni plošče, ki uporabljajo EEPROM, in uporabiti je treba enake oblikovalske rešitve.

Poškodbo podatkov EEPROM lahko povzročita dve situaciji, ko voltage je prenizek. Prvič, običajno zaporedje pisanja v EEPROM zahteva minimalno voltage za pravilno delovanje. Drugič, CPE sam lahko nepravilno izvaja navodila, če je dobava voltage je prenizek.

Poškodbam podatkov EEPROM se je mogoče preprosto izogniti z upoštevanjem tega priporočila za načrtovanje:

Pusti AVR RESET aktivno (nizko) v obdobjih nezadostne voltage. To lahko storite tako, da omogočite notranji detektor rjave barve (BOD). Če se raven zaznave notranjega BOD ne ujema z

potrebna raven zaznavanja, lahko uporabite zunanje zaščitno vezje za ponastavitev nizkega VCC. Če pride do ponastavitve med potekom pisanja, se bo zapisovanje zaključilo pod pogojem, da je voltage zadostuje.

V/I pomnilnik

Definicija V/I prostora ATtiny25/45/85 je prikazana v “Povzetek registra” na strani 200.

Vsi V/I in zunanje naprave ATtiny25/45/85 so nameščeni v V/I prostoru. Do vseh V/I lokacij je mogoče dostopati z navodili LD/LDS/LDD in ST/STS/STD, ki prenašajo podatke med 32 splošnimi delovnimi registri in V/I prostorom. V/I registri v območju naslovov 0x00 – 0x1F so neposredno bitno dostopni z uporabo navodil SBI in CBI. V teh registrih je mogoče preveriti vrednost posameznih bitov z uporabo navodil SBIS in SBIC. Za več podrobnosti glejte razdelek z navodili. Pri uporabi posebnih V/I ukazov IN in OUT je treba uporabiti V/I naslove 0x00 – 0x3F. Pri naslavljanju V/I registrov kot podatkovnega prostora z uporabo navodil LD in ST je treba tem naslovom dodati 0x20.

Zaradi združljivosti s prihodnjimi napravami je treba rezervirane bite zapisati na nič, če do njih dostopate. Rezerviranih V/I pomnilniških naslovov se ne sme nikoli zapisovati.

Nekatere statusne zastavice se počistijo tako, da se jim zapiše logična ena. Upoštevajte, da bodo ukazi CBI in SBI delovali samo na podanem bitu in jih je zato mogoče uporabiti v registrih, ki vsebujejo takšne statusne zastavice. Navodila CBI in SBI delujejo samo z registri 0x00 do 0x1F.

V/I in krmilni registri perifernih naprav so razloženi v naslednjih razdelkih.

Opis registra

EEARH – EEPROM naslovni register

bit 7 6 5 4 3 2 1 0
0x1F EEAR8 EEARH
Branje/Pisanje R R R R R R R R/W
Začetna vrednost 0 0 0 0 0 0 0 X/0

Biti 7:1 – Res: rezervirani biti

Ti biti so rezervirani za prihodnjo uporabo in se vedno berejo kot nič.

Biti 0 – EEAR8: naslov EEPROM

To je najpomembnejši bit naslova EEPROM ATtiny85. V napravah z manj EEPROM-a, npr. ATtiny25/ATtiny45, je ta bit rezerviran in bo vedno prebral ničlo. Začetna vrednost registra naslovov EEPROM (EEAR) je nedefinirana, zato je treba pred dostopom do EEPROM-a zapisati pravilno vrednost.

EEARL – EEPROM naslovni register

bit

0x1E EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 EEARL
Zadaj/Pisanje R/W R/W R/W R/W R/W R/W R/W R/W
Začetna vrednost X X X X X X X X

Bit 7 – EEAR7: naslov EEPROM

To je najpomembnejši bit naslova EEPROM ATtiny45. V napravah z manj EEPROM-a, npr. ATtiny25, je ta bit rezerviran in bo vedno prebral ničlo. Začetna vrednost EEPROM Address Register (EEAR) je nedefinirana, zato je treba pred dostopom do EEPROM zapisati pravilno vrednost.

Biti 6:0 – EEAR[6:0]: naslov EEPROM

To so (nizki) biti registra naslovov EEPROM. Podatkovni bajti EEPROM-a so naslovljeni linearno v območju 0…(128/256/512-1). Začetna vrednost EEAR je nedefinirana, zato je treba pred dostopom do EEPROM-a zapisati pravilno vrednost.

EEDR – register podatkov EEPROM

bit 7 6 5 4 3 2 1 0
0x1D EEDR7 EEDR6 EEDR5 EEDR4 EEDR3 EEDR2 EEDR1 EEDR0 EEDR
Branje/Pisanje R/W R/W R/W R/W R/W R/W R/W R/W
Začetna vrednost 0 0 0 0 0 0 0 0

Za operacijo zapisovanja v EEPROM register EEDR vsebuje podatke, ki jih je treba zapisati v EEPROM na naslovu, ki ga poda register EEAR. Za operacijo branja EEPROM-a EEDR vsebuje podatke, prebrane iz

EEPROM na naslovu EEAR.

 

5.5.4 EECR – kontrolni register EEPROM

Bit 7 6 5 4 3 2 1 0
0x1C        – EEPM1 EEPM0 JEZIČNO EEMPE EEPE EERE EECR
Branje/pisanje R R R/W R/W R/W R/W R/W R/W
Začetna vrednost 0 0 X X 0 0 X 0

Bit 7 – Res: rezerviran bit

Ta bit je rezerviran za prihodnjo uporabo in se bo v ATtiny0/25/45 vedno glasil kot 85. Za združljivost s prihodnjimi napravami AVR ta bit vedno zapišite na nič. Po branju zakrijte ta del.

Bit 6 – Res: rezerviran bit

Ta bit je rezerviran v ATtiny25/45/85 in se bo vedno bral kot nič.

Biti 5:4 – EEPM[1:0]: Biti načina programiranja EEPROM

Nastavitev bitov načina programiranja EEPROM določa, katero dejanje programiranja se bo sprožilo pri zapisovanju EEPE. Podatke je mogoče programirati v eni atomski operaciji (izbriši staro vrednost in programirati novo vrednost) ali razdeliti operaciji brisanja in pisanja v dve različni operaciji. Časi programiranja za različne načine so prikazani v Tabela 5-1. Medtem ko je EEPE nastavljen, bo vsako pisanje v EEPMn prezrto. Med ponastavitvijo bodo biti EEPMn ponastavljeni na 0b00, razen če je EEPROM zaseden s programiranjem.

Tabela 5-1. Biti načina EEPROM

EEPM1 EEPM0 Čas programiranja Delovanje
0 0 3.4 ms Brisanje in pisanje v eni operaciji (Atomsko delovanje)
0 1 1.8 ms Samo brisanje
1 0 1.8 ms Samo piši
1 1 Rezervirano za prihodnjo uporabo

Bit 3 – EERIE: EEPROM Ready Interrupt Enable

Zapis EERIE v eno omogoči prekinitev EEPROM Ready Interrupt, če je nastavljen I-bit v SREG. Zapis EERIE na nič onemogoči prekinitev. EEPROM pripravljena prekinitev ustvari stalno prekinitev, ko je obstojni pomnilnik pripravljen za programiranje.

Bit 2 – EEMPE: Omogočanje glavnega programa EEPROM

Bit EEMPE določa, ali bo pisanje EEPE v enega imelo učinek ali ne.

Ko je nastavljen EEMPE, bo nastavitev EEPE v štirih taktih programirala EEPROM na izbranem naslovu. Če je EEMPE enak nič, nastavitev EEPE ne bo imela učinka. Ko programska oprema zapiše EEMPE v eno, strojna oprema po štirih taktih počisti bit na nič.

Bit 1 – EEPE: Omogočanje programa EEPROM

Signal za omogočanje programa EEPROM EEPE je signal za omogočanje programiranja v EEPROM. Ko je EEPE zapisan, bo EEPROM programiran v skladu z nastavitvijo bitov EEPMn. Bit EEMPE je treba zapisati v eno, preden se v EEPE zapiše logična ena, sicer zapis v EEPROM ne poteka. Ko se čas dostopa do pisanja izteče, strojna oprema izbriše bit EEPE. Ko je EEPE nastavljen, se CPU ustavi za dva cikla, preden se izvede naslednji ukaz.

Bit 0 – EERE: Omogočeno branje EEPROM-a

Signal za omogočanje branja EEPROM – EERE – je bralni utrip v EEPROM. Ko je v registru EEAR nastavljen pravilen naslov, je treba bit EERE zapisati v eno, da se sproži branje EEPROM-a. Dostop za branje EEPROM-a traja eno navodilo, zahtevani podatki pa so na voljo takoj. Ko je EEPROM prebran, se CPE ustavi za štiri cikle, preden se izvede naslednji ukaz. Uporabnik mora vprašati bit EEPE, preden začne z operacijo branja. Če poteka zapisovanje, ni mogoče prebrati EEPROM-a niti spremeniti registra EEAR.

Sistemska ura in možnosti ure

Urni sistemi in njihova distribucija

Distribucija ure

Ura CPU-ja

Ura CPU je usmerjena v dele sistema, ki so povezani z delovanjem jedra AVR. nprampdeli takšnih modulov so register splošnih namenov File, statusni register in podatkovni pomnilnik, v katerem je kazalec sklada. Zaustavitev takta procesorja onemogoči jedru izvajanje splošnih operacij in izračunov.

V/I ura – clkI/O

V/I uro uporablja večina V/I modulov, kot je časovnik/števec. V/I uro uporablja tudi modul za zunanje prekinitve, vendar upoštevajte, da nekatere zunanje prekinitve zazna asinhrona logika, kar omogoča zaznavanje takšnih prekinitev, tudi če je V/I ura zaustavljena.

Ura bliskavice – clkFLASH

Ura Flash nadzoruje delovanje vmesnika Flash. Ura Flash je običajno aktivna sočasno z uro procesorja.

Ura ADC – clkADC

ADC ima namensko domeno ure. To omogoča zaustavitev taktov CPU in I/O, da se zmanjša šum, ki ga ustvarja digitalno vezje. To daje natančnejše rezultate pretvorbe ADC.

Notranji PLL za hitro generiranje perifernega takta – clkPCK

Notranji PLL v ATtiny25/45/85 ustvari taktno frekvenco, ki je 8x pomnožena z vhodom vira. PLL privzeto uporablja izhod notranjega oscilatorja RC 8.0 MHz kot vir. Če je bit LSM PLLCSR nastavljen, bo PLL uporabil izhod RC oscilatorja, deljen z dva. Tako je izhod PLL, hitra periferna ura, 64 MHz. Hitra periferna ura ali ura, vnaprej skalirana iz nje, se lahko izbere kot vir ure za Timer/Counter1 ali kot sistemska ura. glej Slika 6-2. Frekvenca hitre periferne ure je deljena z dva, ko je nastavljen LSM PLLCSR, kar ima za posledico taktno frekvenco 32 MHz. Upoštevajte, da LSM ni mogoče nastaviti, če se kot sistemska ura uporablja PLLCLK.

Slika 6-2. Urni sistem PCK. PCK takt

PLL je zaklenjen na RC oscilatorju in prilagajanje RC oscilatorja prek registra OSCCAL bo hkrati prilagodilo hitro periferno uro. Toda tudi če je RC oscilator nastavljen na višjo frekvenco od 8 MHz, se hitra frekvenca periferne ure nasiči pri 85 MHz (v najslabšem primeru) in ostane nihajoča pri najvišji frekvenci. Upoštevati je treba, da PLL v tem primeru ni več zaklenjen z uro RC oscilatorja. Zato je priporočljivo, da nastavitve OSCCAL ne izvajate na višjo frekvenco od 8 MHz, da ohranite PLL v pravilnem delovnem območju.

Notranji PLL je omogočen, ko:

Bit PLLE v registru PLLCSR je nastavljen.

Varovalka CKSEL je programirana na '0001'.

Varovalka CKSEL je programirana na '0011'.

Bit PLLCSR PLOCK je nastavljen, ko je PLL zaklenjen. Notranji oscilator RC in PLL sta izklopljena v načinu izklopa in stanju mirovanja.

Notranji PLL v združljivem načinu ATtiny15

Ker je ATtiny25/45/85 naprava za selitev za uporabnike ATtiny15, obstaja način združljivosti ATtiny15 za združljivost s prejšnjimi različicami. Način združljivosti ATtiny15 se izbere s programiranjem varovalk CKSEL na '0011'.

V načinu združljivosti ATtiny15 je frekvenca notranjega oscilatorja RC umerjena na 6.4 MHz, faktor množenja PLL pa je nastavljen na 4x. glej Slika 6-3. S temi prilagoditvami je taktni sistem združljiv z ATtiny15 in posledična hitra periferna ura ima frekvenco 25.6 MHz (enako kot v ATtiny15).

Slika 6-3. PCK taktni sistem v združljivem načinu ATtiny15. Urni sistem

Viri ure

Naprava ima naslednje možnosti vira ure, ki jih je mogoče izbrati z bitji Flash Fuse, kot je prikazano spodaj. Ura iz izbranega vira se vnese v taktni generator AVR in usmeri k ustreznim modulom.

Tabela 6-1. Device Clocking Options Izberite

Možnost merjenja ure naprave CKSEL[3:0](1)
Zunanja ura (glej stran 26) 0000
Visokofrekvenčna ura PLL (glej stran 26) 0001
Kalibriran notranji oscilator (glej stran 27) 0010(2)
Kalibriran notranji oscilator (glej stran 27) 0011(3)
Notranji 128 kHz oscilator (glej stran 28) 0100
Nizkofrekvenčni kristalni oscilator (glej stran 29) 0110
Kristalni oscilator/keramični resonator (glej stran 29) 1000 – 1111
Rezervirano 0101, 0111

Za vse varovalke "1" pomeni neprogramirano, medtem ko "0" pomeni programirano.

Naprava je dobavljena z izbrano to možnostjo.

To bo izbralo način združljivosti ATtiny15, kjer je sistemska ura deljena s štiri, kar ima za posledico urno frekvenco 1.6 MHz. Za več informacij glejte “Umerjeni notranji oscilator” na strani 27.

V naslednjih razdelkih so podane različne možnosti za vsako možnost merjenja ure. Ko se CPE prebudi iz izklopa, se izbrani vir ure uporabi za merjenje časa zagona, kar zagotavlja stabilno delovanje oscilatorja, preden se začne izvajanje navodil. Ko se CPE začne s ponastavitvijo, obstaja dodatna zakasnitev, ki omogoča, da moč doseže stabilno raven, preden začne normalno delovati. Oscilator Watchdog se uporablja za merjenje časa tega dela zagonskega časa v realnem času. Število ciklov oscilatorja WDT, uporabljenih za vsako časovno omejitev, je prikazano v Tabela 6-2.

Tabela 6-2. Število ciklov nadzornega oscilatorja

Vnesite Časovna omejitev Število ciklov
4 ms 512
64 ms 8K (8,192)

Zunanja ura

Če želite poganjati napravo iz zunanjega vira ure, je treba poganjati CLKI, kot je prikazano v Slika 6-4. Za delovanje naprave na zunanji uri morajo biti varovalke CKSEL programirane na "00".

Slika 6-4. Konfiguracija zunanjega pogona ure

Fig6.4

Ko je izbran ta vir ure, zagonske čase določajo varovalke SUT, kot je prikazano v Tabela 6-3.

Tabela 6-3. Zagonski časi za izbiro zunanje ure

NED[1:0] Čas zagona po izklopu Dodatna zamuda pri ponastavitvi Priporočena uporaba
00 6 CK 14CK BOD omogočen
01 6 CK 14CK + 4 ms Hitro naraščajoča moč
10 6 CK 14CK + 64 ms Počasi naraščajoča moč
11 Rezervirano

Pri uporabi zunanje ure se je treba izogibati nenadnim spremembam uporabljene frekvence ure, da se zagotovi stabilno delovanje MCU. Sprememba frekvence za več kot 2 % od enega takta do drugega lahko privede do nepredvidljivega vedenja. Zagotoviti je treba, da je MCU med takšnimi spremembami taktne frekvence v stanju Reset.

Upoštevajte, da lahko predprodajo sistemske ure uporabite za izvajanje sprememb med izvajanjem frekvence notranje ure, medtem ko še vedno zagotavljate stabilno delovanje. Nanašati se na “Preddelilnik sistemske ure” na strani 31 za podrobnosti.

Visokofrekvenčna ura PLL

Obstaja notranji PLL, ki zagotavlja nominalno frekvenco 64 MHz, zaklenjeno na RC oscilator za uporabo perifernega časovnika/števca1 in za vir sistemske ure. Ko je izbran kot vir sistemske ure, se s programiranjem varovalk CKSEL na '0001' razdeli na štiri, kot je prikazano v Tabela 6-4.

Tabela 6-4. Načini delovanja visokofrekvenčnega PLL takta

CKSEL[3:0] Nominalna frekvenca
0001 16 MHz

Ko je izbran ta vir ure, so časi zagona določeni z varovalkami SUT, kot je prikazano v Tabela 6-5.

Tabela 6-5. Zagonski časi za visokofrekvenčno uro PLL

NED[1:0] Čas zagona po izklopu Dodatna zakasnitev po ponastavitvi ob vklopu (VCC = 5.0 V) Priporočena uporaba
00 14CK + 1K (1024) CK + 4 ms 4 ms BOD omogočen

Tabela 6-5. Zagonski časi za visokofrekvenčno uro PLL

NED[1:0] Čas zagona po izklopu Dodatna zakasnitev po ponastavitvi ob vklopu (VCC = 5.0 V) Priporočena uporaba
01 14CK + 16K (16384) CK + 4 ms 4 ms Hitro naraščajoča moč
10 14CK + 1K (1024) CK + 64 ms 4 ms Počasi naraščajoča moč
11 14CK + 16K (16384) CK + 64 ms 4 ms Počasi naraščajoča moč

Kalibriran notranji oscilator

Notranji oscilator RC privzeto zagotavlja takt približno 8.0 MHz. Čeprav voltage in odvisno od temperature lahko to uro uporabnik zelo natančno umeri. glej »Umerjeni notranji akumulator RC oscilatorja Racy« na strani 164 in “Hitrost notranjega oscilatorja” na strani 192 za več podrobnosti. Naprava je dobavljena s programirano varovalko CKDIV8. glej “Preddelilnik sistemske ure” na strani 31 za več podrobnosti.

To uro lahko izberete kot sistemsko uro s programiranjem varovalk CKSEL, kot je prikazano v Tabela 6-6 na strani

27. Če je izbrana, bo delovala brez zunanjih komponent. Med ponastavitvijo strojna oprema naloži vnaprej programirano kalibracijsko vrednost v register OSCCAL in s tem samodejno kalibrira RC oscilator. Natančnost te kalibracije je prikazana kot tovarniška kalibracija v Tabela 21-2 na strani 164.

S spreminjanjem registra OSCCAL iz SW, glejte “OSCCAL – kalibracijski register oscilatorja” na strani 31, je mogoče doseči višjo natančnost kalibracije kot z uporabo tovarniške kalibracije. Natančnost te kalibracije je prikazana kot uporabniška kalibracija v Tabela 21-2 na strani 164.

Ko se ta oscilator uporablja kot ura čipa, bo Watchdog oscilator še vedno uporabljen za Watchdog Timer in za Reset Time-out. Za več informacij o vnaprej programirani vrednosti umerjanja glejte razdelek "Cali- bracijski bajti« na strani 150.

Notranji oscilator lahko nastavite tudi tako, da zagotavlja takt 6.4 MHz, tako da zapišete varovalke CKSEL na "0011", kot je prikazano v Tabela 6-6 spodaj. Ta nastavitev se imenuje način združljivosti ATtiny15 in je namenjena zagotavljanju kalibriranega vira ure pri 6.4 MHz, kot v ATtiny15. V združljivem načinu ATtiny15 PLL uporablja notranji oscilator, ki deluje pri 6.4 MHz, da ustvari 25.6 MHz periferni taktni signal za Timer/Counter1 (glejte “8-bitni časovnik/števec1 in Način ATtiny15« na strani 95). Upoštevajte, da je v tem načinu delovanja signal ure 6.4 MHz vedno deljen s štiri, kar zagotavlja sistemsko uro 1.6 MHz.

Tabela 6-6. Notranji kalibrirani načini delovanja RC oscilatorja

CKSEL[3:0] Nominalna frekvenca
0010(1) 8.0 MHz
0011(2) 6.4 MHz

Naprava je dobavljena z izbrano to možnostjo.

Ta nastavitev bo izbrala način združljivosti ATtiny15, kjer je sistemska ura deljena s štiri, kar ima za posledico urno frekvenco 1.6 MHz.

Ko je kalibriran notranji oscilator 8 MHz izbran kot vir takta, so zagonski časi določeni z varovalkami SUT, kot je prikazano v Tabela 6-7 spodaj.

Tabela 6-7. Zagonski časi za notranjo kalibrirano uro RC oscilatorja

NED[1:0] Čas zagona po izklopu Dodatna zakasnitev pred ponastavitvijo (VCC = 5.0 V) Priporočena uporaba
00 6 CK 14CK(1) BOD omogočen
01 6 CK 14CK + 4 ms Hitro naraščajoča moč
10(2) 6 CK 14CK + 64 ms Počasi naraščajoča moč
11 Rezervirano

1. Če je varovalka RSTDISBL programirana, se ta zagonski čas poveča na 14CK + 4 ms, da se zagotovi vstop v način programiranja.
2. Naprava je dobavljena z izbrano to možnostjo.

V načinu združljivosti ATtiny15 so zagonski časi določeni z varovalkami SUT, kot je prikazano v Tabela 6-8 spodaj.

Tabela 6-8. Zagonski časi za notranjo kalibrirano uro RC oscilatorja (v načinu ATtiny15)

NED[1:0] Čas zagona po izklopu Dodatna zakasnitev pred ponastavitvijo (VCC = 5.0 V) Priporočena uporaba
00 6 CK 14CK + 64 ms
01 6 CK 14CK + 64 ms
10 6 CK 14CK + 4 ms
11 1 CK 14CK(1)

Opomba: Če je varovalka RSTDISBL programirana, se bo ta zagonski čas povečal na 14CK + 4 ms, da se zagotovi vstop v način programiranja.

Če povzamemo, več informacij o načinu združljivosti ATtiny15 najdete v razdelkih »Vrata B (PB5:PB0)« vklopljena stran 2“Notranji PLL v združljivem načinu ATtiny15” na strani 24»8-bitni časovnik/števec1 v načinu ATtiny15« je vklopljen stran 95“Omejitve debugWIRE” na strani 140“Kalibracijski bajti” na strani 150 in v tabeli »Urni predmerilnik Izberite” na strani 33.

Notranji 128 kHz oscilator

Notranji oscilator 128 kHz je oscilator majhne moči, ki zagotavlja takt 128 kHz. Frekvenca je nominalna pri 3V in 25°C. To uro lahko izberete kot sistemsko uro s programiranjem varovalk CKSEL na »0100«.

Ko je izbran ta vir ure, zagonske čase določajo varovalke SUT, kot je prikazano v Tabela 6-9.

Tabela 6-9. Zagonski časi za notranji oscilator 128 kHz

NED[1:0] Čas zagona po izklopu Dodatna zamuda pri ponastavitvi Priporočena uporaba
00 6 CK 14CK(1) BOD omogočen
01 6 CK 14CK + 4 ms Hitro naraščajoča moč
10 6 CK 14CK + 64 ms Počasi naraščajoča moč
11 Rezervirano

Opomba: Če je varovalka RSTDISBL programirana, se bo ta zagonski čas povečal na 14CK + 4 ms, da se zagotovi vstop v način programiranja.

Nizkofrekvenčni kristalni oscilator

Za uporabo kristala ure 32.768 kHz kot vira ure za napravo je treba izbrati nizkofrekvenčni kristalni oscilator z nastavitvijo varovalk CKSEL na '0110'. Kristal je treba povezati, kot je prikazano na Slika 6-5. Če želite najti primerno obremenitveno kapacitivnost za 32.768 kHz crysal, si oglejte proizvajalčev podatkovni list.

Ko je ta oscilator izbran, so časi zagona določeni z varovalkami SUT, kot je prikazano v Tabela 6-10.

Tabela 6-10. Zagonski časi za izbiro ure nizkofrekvenčnega kristalnega oscilatorja

NED[1:0] Čas zagona po izklopu Dodatna zakasnitev pred ponastavitvijo (VCC = 5.0 V) Priporočena uporaba
00 1K (1024) CK(1) 4 ms Omogočeno hitro naraščanje moči ali BPK
01 1K (1024) CK(1) 64 ms Počasi naraščajoča moč
10 32K (32768) CK 64 ms Stabilna frekvenca ob zagonu
11 Rezervirano

Opomba: Te možnosti uporabite le, če stabilnost frekvence ob zagonu ni pomembna.

Nizkofrekvenčni kristalni oscilator zagotavlja notranjo obremenitveno kapacitivnost, glej Tabela 6-11 na vsakem zatiču TOSC.

Tabela 6-11. Kapacitivnost nizkofrekvenčnega kristalnega oscilatorja

Naprava 32 kHz Osc. Vrsta Pokrov (Xtal1/Tosc1) Pokrov (Xtal2/Tosc2)
ATtiny25/45/85 Sistem Osc. 16 pF 6 pF

Kristalni oscilator/keramični resonator

XTAL1 in XTAL2 sta vhod in izhod obračanja amplifier, ki ga je mogoče konfigurirati za uporabo kot oscilator na čipu, kot je prikazano v Slika 6-5. Lahko se uporabi bodisi kvarčni kristal ali keramični resonator.

C1 in C2 morata biti vedno enaka za kristale in resonatorje. Optimalna vrednost kondenzatorjev je odvisna od uporabljenega kristala ali resonatorja, količine blodeče kapacitivnosti in elektromagnetnega šuma okolja. Podanih je nekaj začetnih smernic za izbiro kondenzatorjev za uporabo s kristali Tabela 6-12 spodaj. Za keramične resonatorje je treba uporabiti vrednosti kondenzatorja, ki jih je navedel proizvajalec.

Tabela 6-12. Načini delovanja kristalnega oscilatorja

CKSEL[3:1] Frekvenčno območje (MHz) Priporočeno območje za kondenzatorja C1 in C2 za uporabo s kristali (pF)
100(1) 0.4 – 0.9
101 0.9 – 3.0 12 – 22
110 3.0 – 8.0 12 – 22
111 8.0 – 12 – 22

Opombe: te možnosti ne bi smeli uporabljati s kristali, ampak samo s keramičnimi resonatorji.

Oscilator lahko deluje v treh različnih načinih, od katerih je vsak optimiziran za določeno frekvenčno območje. Način delovanja se izbere z varovalkami CKSEL[3:1], kot je prikazano na Tabela 6-12.

Varovalka CKSEL0 skupaj z varovalkami SUT[1:0] izbereta zagonske čase, kot je prikazano v Tabela 6-13.

Tabela 6-13. Zagonski časi za izbiro ure kristalnega oscilatorja

CKSEL0 NED[1:0] Čas zagona po izklopu Dodatna zamuda pri ponastavitvi Priporočena uporaba
0 00 258 CK(1) 14CK + 4 ms Keramični resonator, hitro naraščajoča moč
0 01 258 CK(1) 14CK + 64 ms Keramični resonator, počasi narašča moč
0 10 1K (1024) CK(2) 14CK Keramični resonator, BOD omogočen
0 11 1K (1024)CK(2) 14CK + 4 ms Keramični resonator, hitro naraščajoča moč
1 00 1K (1024)CK(2) 14CK + 64 ms Keramični resonator, počasi narašča moč
1 01 16K (16384) CK 14CK Kristalni oscilator, BOD omogočen
1 10 16K (16384) CK 14CK + 4 ms Kristalni oscilator, hitro naraščajoča moč
1 11 16K (16384) CK 14CK + 64 ms Kristalni oscilator, počasi naraščajoča moč

Opombe

Te možnosti je treba uporabiti le, če ne delujejo blizu največje frekvence naprave in le, če stabilnost frekvence ob zagonu ni pomembna za aplikacijo. Te možnosti niso primerne za kristale.

Te možnosti so namenjene uporabi s keramičnimi resonatorji in zagotavljajo stabilnost frekvence ob zagonu. Uporabljajo se lahko tudi s kristali, ko ne delujejo blizu maksimalne frekvence naprave in če stabilnost frekvence ob zagonu ni pomembna za aplikacijo.

Privzeti vir ure

Naprava je dobavljena s programiranimi CKSEL = “0010”, SUT = “10” in CKDIV8. Privzeta nastavitev vira ure je torej notranji RC oscilator, ki deluje pri 8 MHz z najdaljšim zagonskim časom in začetnim predskaliranjem sistemske ure 8, kar ima za posledico sistemsko uro 1.0 MHz. Ta privzeta nastavitev zagotavlja, da lahko vsi uporabniki nastavijo želeno nastavitev vira ure z uporabo In-System ali High-voltage Programer.

Preddelilnik sistemske ure

Sistemsko uro ATtiny25/45/85 lahko razdelite tako, da nastavite “CLKPR – Urni predskalni register” na strani 32. To funkcijo lahko uporabite za zmanjšanje porabe energije, ko je zahteva po procesorski moči nizka. To je mogoče uporabiti z vsemi možnostmi vira ure in bo vplivalo na frekvenco ure CPE in vseh sinhronih zunanjih naprav. clkI/O, clkADC, clkCPU in clkFLASH so deljeni s faktorjem, kot je prikazano v Tabela 6-15 na strani 33.

Preklopni čas

Pri preklapljanju med nastavitvami preddelilnika preddelilnik sistemske ure zagotovi, da v sistemu ure ne pride do napak in da nobena vmesna frekvenca ni višja od frekvence ure, ki ustreza prejšnji nastavitvi, niti frekvence ure, ki ustreza novi nastavitvi.

Števec valovanja, ki izvaja preddelilnik, deluje na frekvenci nerazdeljene ure, ki je lahko hitrejša od frekvence ure CPE. Zato ni mogoče določiti stanja preddelilnika – tudi če bi bil berljiv, in natančnega časa, ki je potreben za preklop z enega razdelka ure na drugega, ni mogoče natančno predvideti.

Od trenutka, ko so vrednosti CLKPS zapisane, traja med T1 + T2 in T1 + 2*T2, preden je nova urna frekvenca aktivna. V tem intervalu se ustvarita 2 aktivna robova ure. Tu je T1 prejšnje časovno obdobje, T2 pa obdobje, ki ustreza novi nastavitvi preddelilnika.

Izhodni medpomnilnik ure

Naprava lahko izpiše sistemsko uro na pin CLKO (če se ne uporablja kot pin XTAL2). Za omogočanje izhoda je treba programirati varovalko CKOUT. Ta način je primeren, kadar se ura čipa uporablja za krmiljenje drugih vezij v sistemu. Upoštevajte, da ura med ponastavitvijo ne bo prikazana in da bo normalno delovanje V/I zatiča preglaseno, ko je varovalka programirana. Notranji oscilator RC, oscilator WDT, PLL in zunanjo uro (CLKI) lahko izberete, ko je ura izhodna na CLKO. Kristalnih oscilatorjev (XTAL1, XTAL2) ni mogoče uporabiti za izhod ure na CLKO. Če je uporabljen preddelilnik sistemske ure, je izhod razdeljena sistemska ura.

Opis registra

OSCCAL – Register kalibracije oscilatorja

bit 7 6 5 4 3 2 1 0
0x31 CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 OSCCAL
Branje/Pisanje R/W R/W R/W R/W R/W R/W R/W R/W

Biti 7:0 – CAL[7:0]: vrednost kalibracije oscilatorja

Kalibracijski register oscilatorja se uporablja za prilagoditev kalibriranega notranjega RC oscilatorja, da se odstranijo variacije postopka iz frekvence oscilatorja. Vnaprej programirana vrednost umerjanja se med ponastavitvijo čipa samodejno zapiše v ta register, kar daje tovarniško umerjeno frekvenco, kot je določeno v Tabela 21-2 na strani 164. Programska oprema lahko zapiše ta register, da spremeni frekvenco oscilatorja. Oscilator je mogoče kalibrirati na frekvence, kot je določeno v Tabela 21-2 na strani 164. Kalibracija zunaj tega območja ni zagotovljena.

Upoštevajte, da se ta oscilator uporablja za merjenje časa dostopov za zapisovanje v EEPROM in Flash, kar bo ustrezno vplivalo na čase zapisovanja. Če sta EEPROM ali Flash zapisana, ne kalibrirajte na več kot 8.8 MHz. V nasprotnem primeru lahko pisanje v EEPROM ali Flash ne uspe.

Bit CAL7 določa območje delovanja oscilatorja. Nastavitev tega bita na 0 daje najnižje frekvenčno območje, nastavitev tega bita na 1 pa najvišje frekvenčno območje. Obe frekvenčni območji se prekrivata, z drugimi besedami, nastavitev OSCCAL = 0x7F daje višjo frekvenco kot OSCCAL = 0x80.

Biti CAL[6:0] se uporabljajo za nastavitev frekvence znotraj izbranega območja. Nastavitev 0x00 daje najnižjo frekvenco v tem območju, nastavitev 0x7F pa najvišjo frekvenco v območju.

Za zagotovitev stabilnega delovanja MCU je treba kalibracijsko vrednost spremeniti v majhni meri. Sprememba pogostosti za več kot 2 % od enega cikla do drugega lahko privede do nepredvidljivega vedenja. Spremembe v OSCCAL ne smejo preseči 0x20 za vsako kalibracijo. Zagotoviti je treba, da je MCU med takšnimi spremembami taktne frekvence v stanju Reset

Tabela 6-14. Frekvenčno območje notranjega RC oscilatorja

Vrednost OSCCAL Tipična najnižja frekvenca glede na nazivno frekvenco Tipična najvišja frekvenca glede na nazivno frekvenco
0x00 50 % 100 %
0x3F 75 % 150 %
0x7F 100 % 200 %

CLKPR – Urni predskalni register

bit 7 6 5 4 3 2 1 0
0x26 CLKPCE CLKPS3 CLKPS2 CLKPS1 CLKPS0 CLKPR
Branje/Pisanje R/W R R R R/W R/W R/W R/W

Začetna vrednost 0 0 0 0 Glej opis bitov

Bit 7 – CLKPCE: Omogočena sprememba preddelilnika ure

Bit CLKPCE mora biti zapisan v logično ena, da se omogoči sprememba bitov CLKPS. Bit CLKPCE se posodobi le, ko so drugi biti v CLKPR istočasno zapisani na nič. CLKPCE izbriše strojna oprema štiri cikle po zapisu ali ko so zapisani biti CLKPS. Prepisovanje bita CLKPCE znotraj te časovne omejitve niti ne podaljša časovne omejitve niti ne počisti bita CLKPCE.

Biti 6:4 – Res: rezervirani biti

Ti biti so v ATtiny25/45/85 rezervirani biti in se vedno berejo kot nič.

Biti 3:0 – CLKPS[3:0]: Preddelilnik ure Izbira bitov 3 – 0

Ti biti določajo faktor delitve med izbranim virom ure in notranjo sistemsko uro. Te bite lahko zapišete med izvajanjem, da spremenite frekvenco ure, da ustreza zahtevam aplikacije. Ker delilnik deli vhod glavne ure v MCU, se hitrost vseh sinhronih perifernih naprav zmanjša, ko se uporabi faktor delitve. Faktorji delitve so navedeni v Tabela 6-15.

Da bi se izognili nenamernim spremembam taktne frekvence, je treba za spreminjanje bitov CLKPS upoštevati poseben postopek zapisovanja:

Bit Clock Prescaler Change Enable (CLKPCE) zapišite na ena in vse druge bite v CLKPR na nič.

V štirih ciklih zapišite želeno vrednost v CLKPS, medtem ko v CLKPCE zapišite ničlo.

Prekinitve morajo biti onemogočene pri spreminjanju nastavitve preddelilnika, da zagotovite, da postopek zapisovanja ni prekinjen.

Varovalka CKDIV8 določa začetno vrednost bitov CLKPS. Če CKDIV8 ni programiran, bodo biti CLKPS ponastavljeni na »0000«. Če je programiran CKDIV8, se biti CLKPS ponastavijo na »0011«, kar daje faktor deljenja osem ob zagonu. To funkcijo je treba uporabiti, če ima izbrani vir ure višjo frekvenco od največje frekvence naprave pri trenutnih pogojih delovanja. Upoštevajte, da je mogoče v bite CLKPS zapisati katero koli vrednost, ne glede na nastavitev varovalke CKDIV8. Aplikacijska programska oprema mora zagotoviti zadosten faktor delitve

izbrano, če ima izbrani vir ure višjo frekvenco od največje frekvence naprave pri trenutnih pogojih delovanja. Naprava je dobavljena s programirano varovalko CKDIV8.

Tabela 6-15. Clock Prescaler Select

CLKPS3 CLKPS2 CLKPS1 CLKPS0 Faktor deljenja ure
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 Rezervirano
1 0 1 0 Rezervirano
1 0 1 1 Rezervirano
1 1 0 0 Rezervirano
1 1 0 1 Rezervirano
1 1 1 0 Rezervirano
1 1 1 1 Rezervirano

Opomba: preddelilnik je onemogočen v združljivem načinu ATtiny15 in niti pisanje v CLKPR niti programiranje varovalke CKDIV8 ne vplivata na sistemsko uro (ki bo vedno 1.6 MHz).

Upravljanje porabe energije in načini mirovanja

Zaradi visoke zmogljivosti in vodilne učinkovitosti kode so mikrokrmilniki AVR idealna izbira za aplikacije z nizko porabo energije. Poleg tega načini mirovanja omogočajo aplikaciji, da zaustavi neuporabljene module v MCU, s čimer prihrani energijo. AVR omogoča različne načine mirovanja, ki uporabniku omogočajo prilagajanje porabe energije zahtevam aplikacije.

Načini spanja

Slika 6-1 na strani 23 predstavlja različne sisteme ure in njihovo porazdelitev v ATtiny25/45/85. Slika je v pomoč pri izbiri ustreznega načina mirovanja. Tabela 7-1 prikazuje različne načine spanja in njihove vire bujenja.

Tabela 7-1. Domene aktivne ure in viri bujenja v različnih načinih mirovanja

Domene aktivne ure Oscilatorji Viri za prebujanje
Način mirovanja clkCPU clkFLASH clkIO clkADC clkPCK Glavni vir ure je omogočen INT0 in Pin Change SPM/EEPROM

pripravljena

 

Začetni pogoj USI

ADC Drugi V/I pes čuvaj Prekiniti
nedejaven X X X X X X X X X X
Zmanjšanje šuma ADC X X X(1) X X X X
Izklop X(1) X X

Opomba: Za INT0 samo prekinitev ravni.

Za vstop v katerega koli od treh načinov mirovanja je treba bit SE v MCUCR zapisati v logično ena in izvesti ukaz SLEEP. Biti SM[1:0] v registru MCUCR določajo, kateri način mirovanja (idle, ADC Noise Reduction ali Power-down) bo aktiviran z ukazom SLEEP. glej Tabela 7-2 za povzetek.

Če pride do omogočene prekinitve, ko je MCU v načinu mirovanja, se MCU prebudi. MCU se nato poleg časa zagona ustavi za štiri cikle, izvede prekinitveno rutino in nadaljuje z izvajanjem od navodila, ki sledi SLEEP. Vsebina registra File in SRAM sta nespremenjena, ko se naprava prebudi iz spanja. Če pride do ponastavitve med načinom mirovanja, se MCU prebudi in izvede iz vektorja ponastavitve.

Opomba: če se za prebujanje uporabi prekinitev, ki jo sproži raven, je treba spremenjeno raven zadržati nekaj časa, da prebudi MCU (in da MCU vstopi v servisno rutino prekinitve). glej “Zunanje prekinitve” na strani 49 za podrobnosti.

V stanju pripravljenosti

Ko so biti SM[1:0] zapisani na 00, navodilo SLEEP povzroči, da MCU vstopi v način mirovanja, s čimer ustavi CPE, vendar omogoči analognemu primerjalniku, ADC, USI, časovniku/števcu, čuvaju in sistemu prekinitev, da nadaljujejo z delovanjem. jesti. Ta način mirovanja v bistvu ustavi clkCPU in clkFLASH, medtem ko drugim uram omogoči delovanje.

Način mirovanja omogoča MCU, da se prebudi iz zunanjih sproženih prekinitev in notranjih, kot je Timer Overflow. Če prebujanje iz prekinitve analognega primerjalnika ni potrebno, lahko analogni primerjalnik izklopite z nastavitvijo bita ACD v “ACSR – Nadzorni in statusni register analognega primerjalnika” na strani 120. To bo zmanjšalo porabo energije v stanju mirovanja. Če je ADC omogočen, se pretvorba začne samodejno, ko vstopite v ta način.

Način zmanjševanja šuma ADC

Ko so biti SM[1:0] zapisani v 01, navodilo SLEEP povzroči, da MCU vstopi v način zmanjševanja hrupa ADC, s čimer se ustavi CPE, vendar omogoči, da ADC, zunanje prekinitve in Watchdog nadaljujejo z delovanjem (če so omogočeni). Ta način mirovanja ustavi clkI/O, clkCPU in clkFLASH, medtem ko dovoli delovanje drugih ur.

To izboljša šumno okolje za ADC, kar omogoča meritve višje ločljivosti. Če je ADC omogočen, se pretvorba začne samodejno, ko vstopite v ta način. Razen prekinitve ADC Conversion Complete lahko samo zunanja ponastavitev, ponastavitev Watchdog, ponastavitev Brown-out, prekinitev pripravljenosti SPM/EEPROM, prekinitev zunanjega nivoja na INT0 ali prekinitev spremembe pina lahko prebudi MCU iz zmanjševanja šuma ADC način.

Način izklopa

Ko so biti SM[1:0] zapisani na 10, navodilo SLEEP povzroči, da MCU vstopi v način izklopa. V tem načinu se oscilator ustavi, medtem ko zunanje prekinitve, zaznavanje stanja zagona USI in nadzorni pes nadaljujejo z delovanjem (če so omogočeni). MCU lahko prebudijo samo zunanja ponastavitev, ponastavitev Watchdog, ponastavitev ob izpadu, prekinitev stanja zagona USI, prekinitev zunanjega nivoja na INT0 ali prekinitev spremembe pina. Ta način mirovanja ustavi vse ustvarjene ure in omogoči delovanje samo asinhronih modulov.

Programska oprema BOD Onemogoči

Ko je detektor zagorelosti (BOD) omogočen z varovalkami BODLEVEL (glejte Tabela 20-4 na strani 148), BOD aktivno spremlja dobavo voltage med obdobjem spanja. V nekaterih napravah je mogoče varčevati z energijo tako, da onemogočite BOD s programsko opremo v načinu mirovanja Power-Down. Poraba energije v načinu mirovanja bo takrat na enaki ravni kot takrat, ko je BOD globalno onemogočen z varovalkami.

Če programsko opremo onemogoči BOD, se funkcija BOD izklopi takoj po vstopu v način mirovanja. Po prebujanju iz stanja spanja se BOD znova samodejno omogoči. To zagotavlja varno delovanje v primeru padca ravni VCC med obdobjem mirovanja.

Ko je BOD onemogočen, bo čas prebujanja iz načina spanja enak kot za prebujanje iz RESET. Uporabnik mora ročno konfigurirati čase bujenja, tako da ima referenca pasovne vrzeli čas za zagon in da BOD deluje pravilno, preden MCU nadaljuje z izvajanjem kode. Glej varovalke SUT[1:0] in CKSEL[3:0] v tabeli “Fuse Low Byte” na strani 149

Onemogočanje BOD nadzira bit BODS (BOD Sleep) krmilnega registra MCU, glejte “MCUCR – Nadzor MCU Registracija” na strani 37. Zapisovanje tega bita na ena izklopi BOD v Power-Down, pisanje ničle pa ohranja BOD aktiven. Privzeta nastavitev je nič, tj. BOD je aktiven.

Zapisovanje v bit BODS nadzirata časovno določeno zaporedje in bit za omogočanje, glejte “MCUCR – Nadzorni register MCU- ter” na strani 37.

Omejitve

Funkcija onemogočanja BOD je bila implementirana samo v naslednjih napravah:

ATtiny25, revizija E in novejše

ATtiny45, revizija D in novejše

ATtiny85, revizija C in novejše

Revizije so označene na paketu naprave in jih lahko najdete na naslednji način:

Spodnja stran paketov 8P3 in 8S2

Zgornja stran paketa 20M1

Register zmanjšanja moči

Register zmanjšanja moči (PRR), glejte “PRR – Register zmanjšanja moči” na strani 38, zagotavlja metodo za zmanjšanje porabe energije z zaustavitvijo ure posameznih zunanjih naprav. Trenutno stanje zunanje enote je zamrznjeno in V/I registrov ni mogoče brati ali pisati. Viri, ki jih periferna enota uporablja pri zaustavitvi ure, bodo ostali zasedeni, zato je treba periferno enoto v večini primerov onemogočiti, preden zaustavite uro. Prebujanje modula, ki se izvede z brisanjem bita v PRR, postavi modul v isto stanje kot pred zaustavitvijo.

Zaustavitev modula lahko uporabite v načinu mirovanja in aktivnem načinu, da znatno zmanjšate skupno porabo energije. V vseh drugih načinih mirovanja je ura že ustavljena. glej “Napajalni tok V/I modulov” na strani 177 npramples.

Zmanjšanje porabe energije

Pri poskusu zmanjšanja porabe energije v sistemu, ki ga nadzoruje AVR, je treba upoštevati več vprašanj. Na splošno je treba čim pogosteje uporabljati načine mirovanja, način mirovanja pa izbrati tako, da deluje čim manj funkcij naprave. Vse nepotrebne funkcije je treba onemogočiti. Pri doseganju najnižje možne porabe energije je morda treba posebej upoštevati naslednje module.

Analogno digitalni pretvornik

Če je omogočeno, bo ADC omogočen v vseh načinih mirovanja. Za varčevanje z energijo je treba ADC onemogočiti, preden preklopite v način mirovanja. Ko se ADC izklopi in znova vklopi, bo naslednja pretvorba razširjena pretvorba. Nanašati se na “Analogno-digitalni pretvornik” na strani 122 za podrobnosti o delovanju ADC.

Analogni primerjalnik

Ko vstopite v način mirovanja, mora biti analogni primerjalnik onemogočen, če ga ne uporabljate. Ko vstopite v način zmanjševanja šuma ADC, mora biti analogni primerjalnik onemogočen. V drugih načinih mirovanja je analogni primerjalnik samodejno onemogočen. Vendar, če je analogni primerjalnik nastavljen za uporabo notranjega voltage Referenca kot vnos mora biti analogni primerjalnik onemogočen v vseh načinih mirovanja. Sicer pa je Internal Voltage Referenca bo omogočena, neodvisno od načina mirovanja. Nanašati se na “Analogni primerjalnik” na strani 119 za podrobnosti o konfiguraciji analognega primerjalnika.

Detektor porjavitve

Če Detektor porjavitve v aplikaciji ni potreben, je treba ta modul izklopiti. Če varovalke BODLEVEL omogočijo detektor izgorelosti, bo omogočen v vseh načinih mirovanja in bo zato vedno porabljal energijo. V načinih globljega spanja bo to znatno prispevalo k skupni porabi toka. glej »Zaznavanje porjavelosti tion« na strani 41 in “Onemogočanje BOD programske opreme” na strani 35 za podrobnosti o konfiguraciji detektorja porjavitve.

Notranji zvtage Referenca

The Internal Voltage Referenca bo omogočena, ko jo bodo potrebovali zaznavanje porjavitve, analogni primerjalnik ali ADC. Če so ti moduli onemogočeni, kot je opisano v zgornjih razdelkih, se notranji voltagReferenca bo onemogočena in ne bo porabljala energije. Ko je znova vklopljen, mora uporabnik omogočiti zagon reference, preden se uporabi izhod. Če je referenca vklopljena v načinu mirovanja, je mogoče izhod uporabiti takoj. Nanašati se na “Internal Voltage Referenca« na strani 42 za podrobnosti o času zagona.

Watchdog Timer

Če Watchdog Timer v aplikaciji ni potreben, je treba ta modul izklopiti. Če je Watchdog Timer omogočen, bo omogočen v vseh načinih mirovanja in bo zato vedno porabljal energijo. V načinih globljega spanja bo to znatno prispevalo k skupni porabi toka. Nanašati se na “Watchdog Timer” na strani 42 za podrobnosti o tem, kako konfigurirati Watchdog Timer.

Port Pins

Ko vstopite v način mirovanja, morajo biti vsi zatiči vrat konfigurirani tako, da uporabljajo minimalno moč. Najpomembneje je torej zagotoviti, da nobeni zatiči ne poganjajo uporovnih obremenitev. V načinih mirovanja, kjer sta tako V/I ura (clkI/O) kot ADC ura (clkADC) ustavljena, bodo vhodni medpomnilniki naprave onemogočeni. To zagotavlja, da se energija ne porablja

po logiki vnosa, ko ni potreben. V nekaterih primerih je vhodna logika potrebna za zaznavanje pogojev prebujanja in

nato bo omogočeno. Glejte razdelek “Omogočanje digitalnega vhoda in način mirovanja” na strani 57 za podrobnosti o tem, kateri zatiči so omogočeni. Če je vhodni medpomnilnik omogočen in je vhodni signal lebdeč ali ima raven analognega signala blizu VCC/2, bo vhodni medpomnilnik porabil prekomerno moč.

Za analogne vhodne zatiče mora biti digitalni vhodni medpomnilnik ves čas onemogočen. Raven analognega signala blizu VCC/2 na vhodnem zatiču lahko povzroči znaten tok tudi v aktivnem načinu. Digitalne vhodne medpomnilnike lahko onemogočite tako, da zapišete v register za onemogočanje digitalnega vhoda (DIDR0). Nanašati se na “DIDR0 – Digitalni vhod onemogoči register 0” na strani 121 za podrobnosti.

Opis registra

MCUCR – kontrolni register MCU

Nadzorni register MCU vsebuje kontrolne bite za upravljanje porabe energije.

bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Branje/Pisanje R R/W R/W R/W R/W R R/W R/W
Začetna vrednost 0 0 0 0 0 0 0 0

Bit 7 – BODS: BOD Spanje

Funkcija onemogočanja BOD je na voljo samo v nekaterih napravah. glej “Omejitve” na strani 36.

Če želite onemogočiti BPK med spanjem (glejte Tabela 7-1 na strani 34) bit BODS mora biti zapisan v logično ena. To je nadzorovano s časovnim zaporedjem in omogočitvenim bitom, BODSE v MCUCR. Prvič, tako BODS kot BODSE morata biti nastavljena na eno. Drugič, v štirih taktih mora biti BODS nastavljen na ena, BODSE pa na nič. Bit BODS je aktiven tri cikle ure po tem, ko je nastavljen. Navodilo za mirovanje je treba izvesti, ko je BODS aktiven, da se BOD izklopi za dejanski način mirovanja. Bit BODS se samodejno izbriše po treh taktih.

V napravah, kjer BOD v mirovanju ni bil implementiran, je ta bit neuporabljen in bo vedno bral nič.

Bit 5 – SE: Omogočanje mirovanja

Bit SE mora biti zapisan v logično ena, da MCU preide v način mirovanja, ko se izvede ukaz SLEEP. Da preprečite, da bi MCU vstopil v način mirovanja, razen če je to namen programatorja, je priporočljivo, da bit Sleep Enable (SE) zapišete v eno tik pred izvedbo ukaza SLEEP in ga počistite takoj po prebujanju.

Biti 4:3 – SM[1:0]: Način mirovanja Izberite bita 1 in 0

Ti bitovi izbirajo med tremi razpoložljivimi načini mirovanja, kot je prikazano v Tabela 7-2.

Tabela 7-2. Izbira načina mirovanja

SM1 SM0 Način mirovanja
0 0 nedejaven
0 1 Zmanjšanje šuma ADC
1 0 Izklop
1 1 Rezervirano

Bit 2 – BODSE: Omogočanje mirovanja BOD

Funkcija onemogočanja BOD je na voljo samo v nekaterih napravah. glej “Omejitve” na strani 36.

Bit BODSE omogoča nastavitev kontrolnega bita BODS, kot je razloženo v opisu bitov BODS. Onemogočanje BOD je nadzorovano s časovnim zaporedjem.

Ta bit se ne uporablja v napravah, v katerih onemogočanje BOD programske opreme ni bilo implementirano, in se bo v teh napravah bral kot nič.

PRR – Register zmanjšanja moči

Register za zmanjšanje porabe energije zagotavlja metodo za zmanjšanje porabe energije, tako da omogoči onemogočanje perifernih signalov ure.

bit 7 6 5 4 3 2 1 0
0x20 PRTIM1 PRTIM0 PRUSI PRADC PRR
Branje/Pisanje R R R R R/W R/W R/W R/W
Začetna vrednost 0 0 0 0 0 0 0 0

Biti 7:4 – Res: rezervirani biti

Ti biti so v ATtiny25/45/85 rezervirani biti in se vedno berejo kot nič.

Bit 3 – PRTIM1: Časovnik/števec zmanjšanja moči1

Zapisovanje logične ena v ta bit izklopi modul Timer/Counter1. Ko je Timer/Counter1 omogočen, se bo delovanje nadaljevalo kot pred zaustavitvijo.

Bit 2 – PRTIM0: Časovnik/števec zmanjšanja moči0

Zapisovanje logične ena v ta bit izklopi modul Timer/Counter0. Ko je Timer/Counter0 omogočen, se bo delovanje nadaljevalo kot pred zaustavitvijo.

Bit 1 – PRUSI: USI za zmanjšanje moči

Zapisovanje logične ena v ta bit izklopi USI z zaustavitvijo ure modula. Pri ponovnem prebujanju USI je treba USI ponovno inicializirati, da zagotovite pravilno delovanje.

Bit 0 – PRADC: ADC za zmanjšanje moči

Zapisovanje logične ena v ta bit izklopi ADC. ADC mora biti pred izklopom onemogočen. Upoštevajte, da uro ADC uporabljajo tudi nekateri deli analognega primerjalnika, kar pomeni, da analognega primerjalnika ni mogoče uporabiti, ko je ta bit visok.

Nadzor in ponastavitev sistema

Ponastavitev AVR

Med ponastavitvijo so vsi V/I registri nastavljeni na začetne vrednosti in program se začne izvajati iz vektorja ponastavitve. Navodilo, postavljeno v vektor ponastavitve, mora biti RJMP – Relative Jump – navodilo za rutino za ponastavitev. Če program nikoli ne omogoči prekinitvenega vira, se prekinitveni vektorji ne uporabijo in na ta mesta se lahko postavi redna programska koda. Shema vezja v Slika 8-1 prikazuje logiko ponastavitve. Električni parametri vezja za ponastavitev so podani v “Karakteristike sistema in ponastavitve” na strani 165.

Slika 8-1 Logika ponastavitve Reset-logika

V/I vrata AVR se nemudoma ponastavijo na začetno stanje, ko se aktivira vir ponastavitve. Za to ni potreben noben izvor ure.

Ko so vsi viri ponastavitve neaktivni, se sproži števec zakasnitve, ki podaljša notranjo ponastavitev. To omogoča, da moč doseže stabilno raven, preden se začne normalno delovanje. Obdobje časovne omejitve števca zakasnitve določi uporabnik prek varovalk SUT in CKSEL. Različne izbire za obdobje zamude so predstavljene v »Ura Viri« na strani 25.

Ponastavi vire

ATtiny25/45/85 ima štiri vire ponastavitve:

Ponastavitev ob vklopu. MCU se ponastavi, ko se voltage je pod pragom ponastavitve ob vklopu (VPOT).

Zunanja ponastavitev. MCU se ponastavi, ko je nizka raven na zatiču RESET daljša od minimalne dolžine impulza.

Watchdog Reset. MCU se ponastavi, ko poteče obdobje Watchdog Timerja in je Watchdog omogočen.

Porjavitev Ponastavitev. MCU se ponastavi, ko se voltage VCC je pod pragom za ponastavitev rjave barve (VBOT) in detektor rjave barve je omogočen.

Ponastavitev ob vklopu

Impulz ponastavitve ob vklopu (POR) ustvari vezje za zaznavanje na čipu. Stopnja zaznavanja je določena v "System tem in ponastavi značilnosti” na strani 165. POR se aktivira vedno, ko je VCC pod nivojem zaznave. Vezje POR se lahko uporablja za sprožitev ponastavitve ob zagonu, kot tudi za odkrivanje napake v voltage.

Vezje ponastavitve ob vklopu (POR) zagotavlja, da se naprava ponastavi po vklopu. Doseganje praga za ponastavitev voltage prikliče števec zakasnitve, ki določa, kako dolgo ostane naprava v RESET po dvigu VCC. Signal RESET se ponovno aktivira brez kakršne koli zamude, ko se VCC zmanjša pod raven zaznave.

Slika 8-2. Zagon MCU, PONASTAVITEV Vezano na VCC

NOTRANJA PONASTAVITEV

Slika 8-3. Zagon MCU, RESET Extended External

Zunanja ponastavitev

Zunanjo ponastavitev ustvari nizka raven na zatiču RESET, če je omogočena. Ponastavite impulze, daljše od minimalne širine impulza (glejte “Karakteristike sistema in ponastavitve” na strani 165) bo ustvaril ponastavitev, tudi če ura ne teče. Ni zajamčeno, da bodo krajši impulzi ustvarili ponastavitev. Ko uporabljeni signal doseže Reset Threshold Voltage – VRST – na svojem pozitivnem robu števec zakasnitve zažene MCU po izteku časovne omejitve.

Slika 8-4. Zunanja ponastavitev med delovanjem Fig8.4

Zaznavanje porjavitve

ATtiny25/45/85 ima vezje za zaznavanje izgorevanja (BOD) za spremljanje ravni VCC med delovanjem tako, da jo primerja s fiksno ravnjo sprožitve. Nivo sprožitve za BOD lahko izberete z varovalkami BODLEVEL. Stopnja sprožitve ima histerezo, ki zagotavlja zaznavanje porjavitve brez konic. Histerezo na ravni zaznavanja je treba razlagati kot VBOT+ = VBOT + VHYST/2 in VBOT- = VBOT – VHYST/2.

Ko je BOD omogočen in se VCC zmanjša na vrednost pod sprožilno ravnjo (VBOT-in Slika 8-5), se takoj aktivira ponastavitev zatemnitve. Ko se VCC poveča nad sprožilno raven (VBOT+ in Slika 8-5), števec zakasnitve zažene MCU po izteku časovne omejitve tTOUT.

BOD vezje bo zaznalo padec VCC le, če voltage ostane pod sprožilno ravnjo dlje, kot je dano tBOD “Karakteristike sistema in ponastavitve” na strani 165. Fig8.5

Watchdog Reset

Ko Watchdog poteče, bo ustvaril kratek ponastavitveni impulz v trajanju enega cikla CK. Na padajočem robu tega impulza začne časovnik zakasnitve šteti časovno obdobje tTOUT. Nanašati se na “Watchdog Timer” na strani 42 za podrobnosti o delovanju nadzornega časovnika.

voltage Referenčni signali za omogočanje in čas zagona

VoltagReferenca ima začetni čas, ki lahko vpliva na način njene uporabe. Naveden je čas zagona “Karakteristike sistema in ponastavitve” na strani 165. Zaradi varčevanja z energijo referenca ni vedno vklopljena. Referenca je vklopljena v naslednjih situacijah:

Ko je BOD omogočen (s programiranjem varovalk BODLEVEL [2:0]).

Ko je referenca pasovne vrzeli povezana z analognim primerjalnikom (z nastavitvijo bita ACBG v ACSR).

Ko je ADC omogočen.

Ko BOD ni omogočen, mora uporabnik po nastavitvi bita ACBG ali omogočanju ADC vedno dovoliti zagon reference, preden se uporabi izhod iz analognega primerjalnika ali ADC. Za zmanjšanje porabe energije v načinu izklopa se lahko uporabnik izogne ​​zgornjim trem pogojem in zagotovi, da je referenca izklopljena, preden vstopi v način izklopa.

Watchdog Timer

Watchdog Timer se meri z oscilatorjem na čipu, ki deluje pri 128 kHz. Z nadzorom preddelilnika Watchdog Timer lahko interval Watchdog Reset prilagodite, kot je prikazano v Tabela 8-3 na strani 46. WDR – Watchdog Reset – navodilo ponastavi Watchdog Timer. Watchdog Timer se prav tako ponastavi, ko je onemogočen in ko pride do ponastavitve čipa. Za določitev obdobja ponastavitve je mogoče izbrati deset različnih časovnih obdobij. Če obdobje ponastavitve poteče brez ponovne ponastavitve Watchdog, se ATtiny25/45/85 ponastavi in ​​izvede iz vektorja ponastavitve. Za podrobnosti o časovni razporeditvi Watchdog Reset glejte Tabela 8-3 na strani 46.

Watchdog Timer je mogoče konfigurirati tudi tako, da ustvari prekinitev namesto ponastavitve. To je lahko zelo koristno pri uporabi Watchdog za prebujanje iz izklopa.

Da bi preprečili nenamerno onemogočanje Watchdog-a ali nenamerno spremembo časovne omejitve, se z varovalko WDTON izbereta dve različni varnostni ravni, kot je prikazano v Tabela 8-1 Nanašajte se na »Časovna zaporedja za spreminjanje kon- podoba Watchdog Timerja« na strani 43 za podrobnosti.

Tabela 8-1. Konfiguracija WDT kot funkcija nastavitev varovalke WDTON

WDTON Raven varnosti Začetno stanje WDT Kako onemogočiti WDT Kako spremeniti časovno omejitev
Neprogramirano 1 Onemogočen Časovno zaporedje Brez omejitev
Programirano 2 Omogočeno Vedno omogočeno Časovno zaporedje

Slika 8-7. Watchdog Timer pes čuvaj

Časovna zaporedja za spreminjanje konfiguracije časovnika Watchdog

Zaporedje spreminjanja konfiguracije se med obema varnostnima nivojema nekoliko razlikuje. Za vsako raven so opisani ločeni postopki.

Varnostna stopnja 1: V tem načinu je Watchdog Timer sprva onemogočen, vendar ga je mogoče omogočiti tako, da zapišete bit WDE v eno brez kakršnih koli omejitev. Pri onemogočanju omogočenega nadzornega časovnika je potrebno časovno zaporedje. Če želite onemogočiti omogočen Watchdog Timer, morate slediti naslednjemu postopku:

V isti operaciji zapišite logično enoto v WDCE in WDE. Logično enoto je treba zapisati v WDE ne glede na prejšnjo vrednost bita WDE.

Znotraj naslednjih štirih časovnih ciklov v isti operaciji zapišite bita WDE in WDP po želji, vendar s počiščenim bitom WDCE.

Varnostna stopnja 2: V tem načinu je Watchdog Timer vedno omogočen in bit WDE bo vedno prebran kot ena. Pri spreminjanju časovne omejitve Watchdog je potrebno časovno zaporedje. Če želite spremeniti časovno omejitev Watchdog, morate slediti naslednjemu postopku:

V isti operaciji zapišite logično enoto v WDCE in WDE. Čeprav je WDE vedno nastavljen, mora biti WDE zapisan v eno, da se začne časovno zaporedje.

V naslednjih štirih taktnih ciklih v isti operaciji zapišite bite WDP po želji, vendar s počiščenim bitom WDCE. Vrednost, zapisana v bit WDE, ni pomembna.

Koda nprample

Naslednja koda nprample prikazuje en sklop in eno funkcijo C za izklop WDT. Bivšiample predpostavlja, da so prekinitve nadzorovane (npr. z onemogočanjem prekinitev globalno), tako da med izvajanjem teh funkcij ne bo prišlo do prekinitev.

Koda sestavljanja Example(1)
WDT_off:

wdr

; Počisti WDRF v MCUSR

ldi r16, (0<

zunaj MCUSR, r16

; Zapišite logično 1 v WDCE in WDE

; Ohranite staro nastavitev preddelilnika, da preprečite nenamerno ponastavitev Watchdog

v r16, WDTCR

ori r16, (1<

ven WDTCR, r16

; Izklopite WDT

ldi r16, (0<

ven WDTCR, r16

ret

C Koda Example(1)
void WDT_off(void)

{

_WDR();

/* Počisti WDRF v MCUSR */ MCUSR = 0x00

/* Zapiši logično 1 v WDCE in WDE */ WDTCR |= (1<

/* Izklopi WDT */ WDTCR = 0x00;

}

Opomba: 1. Glej »Kodeks Examples" na strani 6.

Opis registra

MCUSR – register stanja MCU

Register stanja MCU zagotavlja informacije o tem, kateri vir ponastavitve je povzročil ponastavitev MCU.

bit 7 6 5 4 3 2 1 0
0x34 WDRF BORF EXTRF PORF MCUSR
Branje/Pisanje R R R R R/W R/W R/W R/W

Začetna vrednost 0 0 0 0 Glej opis bitov

Biti 7:4 – Res: rezervirani biti

Ti biti so v ATtiny25/45/85 rezervirani biti in se vedno berejo kot nič.

Bit 3 – WDRF: Zastavica za ponastavitev nadzornega psa

Ta bit je nastavljen, če pride do ponastavitve nadzornega psa. Bit se ponastavi s ponastavitvijo ob vklopu ali z zapisom logične ničle v zastavico.

Bit 2 – BORF: Zastavica za ponastavitev porjavitve

Ta bit je nastavljen, če pride do ponastavitve Brown-out. Bit se ponastavi s ponastavitvijo ob vklopu ali z zapisom logične ničle v zastavico.

Bit 1 – EXTRF: zunanja zastavica za ponastavitev

Ta bit je nastavljen, če pride do zunanje ponastavitve. Bit se ponastavi s ponastavitvijo ob vklopu ali z zapisom logične ničle v zastavico.

Bit 0 – PORF: Zastavica ponastavitve ob vklopu

Ta bit je nastavljen, če pride do ponastavitve ob vklopu. Bit se ponastavi samo z zapisom logične ničle na zastavico.

Če želite uporabiti zastavice za ponastavitev za identifikacijo stanja ponastavitve, mora uporabnik prebrati in nato ponastaviti MCUSR čim prej v programu. Če je register počiščen, preden pride do nove ponastavitve, je vir ponastavitve mogoče najti s pregledovanjem zastavic za ponastavitev.

WDTCR – Nadzorni register nadzornega časovnika

bit 7 6 5 4 3 2 1 0
0x21 WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0 WDTCR
Branje/Pisanje R/W R/W R/W R/W R/W R/W R/W R/W
Začetna vrednost 0 0 0 0 X 0 0 0

Bit 7 – WDIF: Zastavica prekinitve časovne omejitve Watchdog

Ta bit je nastavljen, ko pride do časovne omejitve v Watchdog Timerju in je Watchdog Timer konfiguriran za prekinitev. WDIF počisti strojna oprema, ko izvaja ustrezen vektor za obravnavo prekinitev. Druga možnost je, da se WDIF počisti tako, da se zastavici zapiše logična ena. Ko sta I-bit v SREG in WDIE nastavljena, se izvede prekinitev Watchdog Time-out.

Bit 6 – WDIE: Omogočena prekinitev časovne omejitve Watchdog

Ko je ta bit zapisan v eno, je WDE počiščen in je I-bit v statusnem registru nastavljen, prekinitev časovne omejitve Watchdog je omogočena. V tem načinu se namesto ponastavitve izvede ustrezna prekinitev, če pride do časovne omejitve v Watchdog Timerju.

Če je nastavljen WDE, strojna oprema samodejno izbriše WDIE, ko pride do časovne omejitve. To je uporabno za ohranjanje varnosti Watchdog Reset med uporabo prekinitve. Ko je bit WDIE počiščen, bo naslednja časovna omejitev ustvarila ponastavitev. Da bi se izognili ponastavitvi Watchdog, je treba WDIE nastaviti po vsaki prekinitvi.

Tabela 8-2. Konfiguracija nadzornega časovnika

WDE WDIE Stanje nadzornega časovnika Ukrep ob prekinitvi
0 0 ustavil Noben
0 1 tek Prekiniti
1 0 tek Ponastavi
1 1 tek Prekiniti

Bit 4 – WDCE: Watchdog Change Enable

Ta bit je treba nastaviti, ko je bit WDE zapisan na logično ničlo. V nasprotnem primeru Watchdog ne bo onemogočen. Ko je enkrat zapisan v eno, bo strojna oprema počistila ta bit po štirih taktih. Glejte opis bita WDE za postopek onemogočanja nadzornega psa. Ta bit je treba nastaviti tudi pri menjavi bitov preddelilnika. glej »Časovna zaporedja za spreminjanje konfiguracije časovnika Watchdog« na strani 43.

Bit 3 – WDE: Watchdog Enable

Ko je WDE zapisan na logično ena, je Watchdog Timer omogočen, in če je WDE zapisan na logično ničlo, je funkcija Watchdog Timer onemogočena. WDE je mogoče počistiti le, če ima bit WDCE logično raven ena. Če želite onemogočiti omogočen Watchdog Timer, morate slediti naslednjemu postopku:

V isti operaciji zapišite logično enoto v WDCE in WDE. Logično enoto je treba zapisati v WDE, čeprav je nastavljena na ena, preden se začne operacija onemogočanja.

V naslednjih štirih taktih zapišite logično 0 v WDE. To onemogoči Watchdog.

Na ravni varnosti 2 ni mogoče onemogočiti nadzornega časovnika niti z zgoraj opisanim algoritmom. glej “Časovna zaporedja za spreminjanje konfiguracije časovnika Watchdog” na strani 43.

Na ravni varnosti 1 WDE preglasi WDRF v MCUSR. glej “MCUSR – register stanja MCU” na strani 44 za opis WDRF. To pomeni, da je WDE vedno nastavljen, ko je nastavljen WDRF. Če želite počistiti WDE, morate počistiti WDRF, preden onemogočite Watchdog z zgoraj opisanim postopkom. Ta funkcija zagotavlja večkratne ponastavitve med pogoji, ki povzročajo okvaro, in varen zagon po okvari.

Opomba: Če v aplikaciji ne boste uporabljali nadzornega časovnika, je pomembno, da pri inicializaciji naprave opravite postopek onemogočanja nadzornega psa. Če je Watchdog pomotoma omogočen, nprampzaradi pobeglega kazalca ali porjavelosti, bo naprava ponastavljena, kar bo vodilo do nove ponastavitve nadzornega psa. Da bi se izognili tej situaciji, mora aplikacijska programska oprema vedno počistiti zastavico WDRF in kontrolni bit WDE v inicializacijski rutini.

Biti 5, 2:0 – WDP[3:0]: Watchdog Timer Prescaler 3, 2, 1 in 0

Biti WDP[3:0] določajo predhodno skaliranje Watchdog Timerja, ko je Watchdog Timer omogočen. Različne vrednosti predskaliranja in njihove ustrezne časovne omejitve so prikazane v Tabela 8-3.

Tabela 8-3. Watchdog Timer Prescale Select

WDP3 WDP2 WDP1 WDP0 Število ciklov oscilatorja WDT Tipična časovna omejitev pri VCC = 5.0 V
0 0 0 0 2K (2048) ciklov 16 ms
0 0 0 1 4K (4096) ciklov 32 ms
0 0 1 0 8K (8192) ciklov 64 ms
0 0 1 1 16K (16384) ciklov 0.125 s
0 1 0 0 32K (32764) ciklov 0.25 s
0 1 0 1 64K (65536) ciklov 0.5 s
0 1 1 0 128K (131072) ciklov 1.0 s
0 1 1 1 256K (262144) ciklov 2.0 s
1 0 0 0 512K (524288) ciklov 4.0 s
1 0 0 1 1024K (1048576) ciklov 8.0 s

Tabela 8-3. Watchdog Timer Prescale Select (nadaljevanje)

WDP3 WDP2 WDP1 WDP0 Število ciklov oscilatorja WDT Tipična časovna omejitev pri VCC = 5.0 V
1 0 1 0 Rezervirano(1)
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

Opomba: 1. Če je izbrana, bo uporabljena ena od veljavnih nastavitev pod 0b1010.

Prekinitve

Ta razdelek opisuje posebnosti obravnavanja prekinitev, kot se izvaja v ATtiny25/45/85. Za splošno razlago obravnavanja prekinitev AVR glejte “Ponastavitev in obravnavanje prekinitev” na strani 12.

Prekinitveni vektorji v ATtiny25/45/85

Prekinitveni vektorji ATtiny25/45/85 so opisani v Tabela 9-1spodaj.

Tabela 9-1. Vektorji ponastavitve in prekinitve

vektorska št. Naslov programa Vir Definicija prekinitve
1 0x0000 PONASTAVI Zunanji zatič, ponastavitev ob vklopu, ponastavitev izgorevanja, ponastavitev Watchdog
2 0x0001 INT0 Zahteva za zunanjo prekinitev 0
3 0x0002 PCINT0 Zahteva za prekinitev spremembe Pin 0
4 0x0003 TIMER1_COMPA Časovnik/Števec1 Primerjaj ujemanje A
5 0x0004 ČASOVNIK1_OVF Časovnik/Števec1 Prelivanje
6 0x0005 ČASOVNIK0_OVF Časovnik/Števec0 Prelivanje
7 0x0006 EE_RDY EEPROM pripravljen
8 0x0007 ANA_COMP Analogni primerjalnik
9 0x0008 ADC Pretvorba ADC končana
10 0x0009 TIMER1_COMPB Časovnik/Števec1 Primerjaj ujemanje B
11 0x000A TIMER0_COMPA Časovnik/Števec0 Primerjaj ujemanje A
12 0x000B TIMER0_COMPB Časovnik/Števec0 Primerjaj ujemanje B
13 0x000C WDT Watchdog Time-out
14 0x000D USI_START USI START
15 0x000E USI_OVF USI Overflow

Če program nikoli ne omogoči prekinitvenega vira, se prekinitveni vektorji ne uporabijo in na ta mesta se lahko postavi redna programska koda.

Tipična in splošna nastavitev za naslove prekinitvenih vektorjev v ATtiny25/45/85 je prikazana v programu example spodaj.

Koda sestavljanja Example
.org 0x0000 ;Nastavi naslov naslednjega izjava
rjmp PONASTAVI ; Naslov 0x0000
rjmp INT0_ISR ; Naslov 0x0001
rjmp PCINT0_ISR ; Naslov 0x0002
rjmp TIM1_COMPA_ISR ; Naslov 0x0003
rjmp TIM1_OVF_ISR ; Naslov 0x0004
rjmp TIM0_OVF_ISR ; Naslov 0x0005
rjmp EE_RDY_ISR ; Naslov 0x0006
rjmp ANA_COMP_ISR ; Naslov 0x0007
rjmp ADC_ISR ; Naslov 0x0008
rjmp TIM1_COMPB_ISR ; Naslov 0x0009
rjmp TIM0_COMPA_ISR ; Naslov 0x000A
rjmp TIM0_COMPB_ISR ; Naslov 0x000B
rjmp WDT_ISR ; Naslov 0x000C
rjmp USI_START_ISR ; Naslov 0x000D
rjmp USI_OVF_ISR ; Naslov 0x000E
PONASTAVITI: ; Začetek glavnega programa
; Naslov 0x000F

Opomba: Glej »Kodeks Examples" na strani 6.

Zunanje prekinitve

Zunanje prekinitve sproži pin INT0 ali kateri koli od pin-ov PCINT[5:0]. Upoštevajte, da se bodo prekinitve sprožile, če so omogočene, tudi če so nožice INT0 ali PCINT[5:0] konfigurirane kot izhodi. Ta funkcija omogoča način generiranja programske prekinitve. Prekinitve pri spremembi pinov PCI se bodo sprožile, če se kateri koli omogočen pin PCINT[5:0] preklopi. Register PCMSK nadzoruje, kateri pini prispevajo k prekinitvam spremembe pinov. Prekinitve spremembe pina na PCINT[5:0] so zaznane asinhrono. To pomeni, da je mogoče te prekinitve uporabiti za prebujanje dela tudi iz načinov mirovanja, ki niso način mirovanja.

Prekinitve INT0 se lahko sprožijo zaradi padajočega ali naraščajočega roba ali nizke ravni. To je nastavljeno, kot je navedeno v specifikaciji za kontrolni register MCU – MCUCR. Ko je prekinitev INT0 omogočena in je konfigurirana kot sprožena raven, se bo prekinitev sprožila, dokler bo pin nizek. Upoštevajte, da prepoznavanje prekinitev padajočega ali naraščajočega roba na INT0 zahteva prisotnost V/I ure, opisane v "Urni sistemi in njihova distribucija" na stran 23.

Prekinitev na nizki ravni

Prekinitev nizke ravni na INT0 je zaznana asinhrono. To pomeni, da se ta prekinitev lahko uporabi za prebujanje dela tudi iz načinov mirovanja, ki niso način mirovanja. V/I ura se ustavi v vseh načinih mirovanja, razen v stanju mirovanja.

Upoštevajte, da če se za prebujanje iz izklopa uporabi prekinitev, ki jo sproži raven, je treba zahtevano raven zadržati dovolj dolgo, da MCU dokonča prebujenje, da sproži prekinitev ravni. Če raven izgine pred koncem zagonskega časa, se bo MCU še vedno prebudil, vendar ne bo ustvarjena prekinitev. Čas zagona določata varovalki SUT in CKSEL, kot je opisano v “Sistemska ura in možnosti ure” na strani 23.

Če je nizka raven na prekinitvenem zatiču odstranjena, preden se naprava prebudi, potem izvajanje programa ne bo preusmerjeno na prekinitveno servisno rutino, ampak se bo nadaljevalo z navodilom, ki sledi ukazu SLEEP.

Pin Change Interrupt Timing

Bivšiampje prikazan čas prekinitve spremembe pina Slika 9-1.

Opis registra

MCUCR – kontrolni register MCU

Zunanji register za nadzor prekinitev A vsebuje kontrolne bite za nadzor zaznavanja prekinitev.

bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Branje/Pisanje R R/W R/W R/W R/W R R/W R/W
Začetna vrednost 0 0 0 0 0 0 0 0

Biti 1:0 – ISC0[1:0]: Nadzor zaznavanja prekinitev 0 Bit 1 in Bit 0

Zunanjo prekinitev 0 aktivira zunanji pin INT0, če sta nastavljeni zastavica SREG I in ustrezna maska ​​prekinitve. Raven in robovi na zunanjem zatiču INT0, ki aktivirajo prekinitev, so definirani v Tabela 9-2. Vrednost na pinu INT0 je samppred zaznavanjem robov. Če je izbrana prekinitev roba ali preklopa, bodo impulzi, ki trajajo dlje od ene taktne dobe, ustvarili prekinitev. Ni zagotovljeno, da bodo krajši impulzi ustvarili prekinitev. Če je izbrana prekinitev nizke ravni, mora biti nizka raven zadržana do zaključka trenutno izvajajočega se ukaza, da se ustvari prekinitev.

Tabela 9-2. Prekinitev 0 Sense Control

ISC01 ISC00 Opis
0 0 Nizka raven INT0 ustvari zahtevo za prekinitev.
0 1 Vsaka logična sprememba na INT0 ustvari zahtevo za prekinitev.
1 0 Padajoči rob INT0 ustvari zahtevo za prekinitev.
1 1 Naraščajoči rob INT0 ustvari zahtevo za prekinitev.

GIMSK – Splošni register prekinitvenih mask

bit 7 6 5 4 3 2 1 0
0x3B INT0 PCIe GIMSK
Branje/Pisanje R R/W R/W R R R R R
Začetna vrednost 0 0 0 0 0 0 0 0

Biti 7, 4:0 – Res: Rezervirani biti

Ti biti so v ATtiny25/45/85 rezervirani biti in se vedno berejo kot nič.

Bit 6 – INT0: Omogočena zunanja prekinitvena zahteva 0

Ko je bit INT0 nastavljen (ena) in je bit I v statusnem registru (SREG) nastavljen (ena), je prekinitev zunanjega pina omogočena. Biti za nadzor zaznavanja prekinitve0 1/0 (ISC01 in ISC00) v krmilnem registru MCU (MCUCR) določajo, ali se zunanja prekinitev aktivira na naraščajočem in/ali padajočem robu zatiča INT0 ali zaznanega nivoja. Dejavnost na pinu bo povzročila zahtevo za prekinitev, tudi če je INT0 konfiguriran kot izhod. Ustrezna prekinitev zahteve za zunanjo prekinitev 0 se izvede iz prekinitvenega vektorja INT0.

Bit 5 – PCIE: Omogočanje prekinitve spremembe pina

Ko je bit PCIE nastavljen (ena) in I-bit v statusnem registru (SREG) nastavljen (ena), je prekinitev spremembe pina omogočena. Vsaka sprememba na katerem koli omogočenem zatiču PCINT[5:0] bo povzročila prekinitev. Ustrezna prekinitev zahteve za prekinitev Pin Change se izvede iz vektorja prekinitev PCI. Zatiči PCINT[5:0] so posamezno omogočeni z registrom PCMSK0.

GIFR – register splošnih prekinitvenih zastavic

bit 7 6 5 4 3 2 1 0
0x3A INTF0 PCIF GIFR
Branje/Pisanje R R/W R/W R R R R R
Začetna vrednost 0 0 0 0 0 0 0 0

Biti 7, 4:0 – Res: Rezervirani biti

Ti biti so v ATtiny25/45/85 rezervirani biti in se vedno berejo kot nič.

Bit 6 – INTF0: zunanja prekinitvena zastavica 0

Ko rob ali logična sprememba na pinu INT0 sproži zahtevo za prekinitev, INTF0 postane nastavljen (ena). Če sta I-bit v SREG in INT0 bit v GIMSK nastavljena (ena), bo MCU skočil na ustrezen prekinitveni vektor. Zastavica se počisti, ko se izvede prekinitvena rutina. Druga možnost je, da zastavico počistite tako, da vanjo napišete logično enoto. Ta zastavica je vedno počiščena, ko je INT0 konfiguriran kot prekinitev ravni.

Bit 5 – PCIF: Pin Change Interrupt Flag

Ko sprememba logike na katerem koli zatiču PCINT[5:0] sproži zahtevo za prekinitev, PCIF postane nastavljen (ena). Če sta I-bit v SREG in PCIE bit v GIMSK nastavljena (ena), bo MCU skočil na ustrezen prekinitveni vektor. Zastavica se počisti, ko se izvede prekinitvena rutina. Druga možnost je, da zastavico počistite tako, da vanjo napišete logično enoto.

PCMSK – Register maske za spremembo pinov

bit 7 6 5 4 3 2 1 0
0x15 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 PCMSK
Branje/Pisanje R R R/W R/W R/W R/W R/W R/W
Začetna vrednost 0 0 0 0 0 0 0 0

Biti 7:6 – Res: rezervirani biti

Ti biti so v ATtiny25/45/85 rezervirani biti in se vedno berejo kot nič.

Biti 5:0 – PCINT[5:0]: maska ​​za omogočanje spremembe Pin 5:0

Vsak bit PCINT[5:0] izbere, ali je prekinitev spremembe pina omogočena na ustreznem V/I pinu. Če je nastavljen PCINT[5:0] in je bit PCIE v GIMSK nastavljen, je prekinitev spremembe pina omogočena na ustreznem V/I pinu. Če je PCINT[5:0] počiščen, je prekinitev spremembe zatiča na ustreznem V/I zatiču onemogočena.

V/I vrata

Uvod

Vsa vrata AVR imajo resnično funkcijo branja-spreminjanja-pisanja, kadar se uporabljajo kot splošna digitalna V/I vrata. To pomeni, da je mogoče smer enega zatiča vrat spremeniti, ne da bi nenamerno spremenili smer katerega koli drugega zatiča z navodili SBI in CBI. Enako velja pri spreminjanju vrednosti pogona (če je konfiguriran kot izhod) ali omogočanju/onemogočanju vlečnih uporov (če je konfiguriran kot vhod). Vsak izhodni medpomnilnik ima simetrične pogonske značilnosti z visoko zmogljivostjo ponora in vira. Gonilnik nožic je dovolj močan, da neposredno poganja LED zaslone. Vsi pristaniški zatiči imajo individualno izbirne vlečne upore z napajalno voltage invariantni upor. Vsi V/I zatiči imajo zaščitne diode za VCC in ozemljitev, kot je navedeno v Slika 10-1. Sklicuj se na “Električne lastnosti” na strani 161 za celoten seznam parametrov.

Slika 10-1. Ekvivalentna shema I/O Pin

Fig10

Vsi registri in bitne reference v tem razdelku so napisani v splošni obliki. Mala črka "x" predstavlja oštevilčeno črko za vrata, mala črka "n" pa številko bita. Vendar pa je pri uporabi registra ali bitnih definicij v programu treba uporabiti natančno obliko. Na primerample, PORTB3 za bit št. 3 v vratih B, tukaj na splošno dokumentirano kot PORTxn. Fizični V/I registri in bitne lokacije so navedeni v Vklopljen je “Opis registracije”. stran 64.

Za vsaka vrata so dodeljene tri naslovne lokacije V/I pomnilnika, po ena za podatkovni register – PORTx, register usmerjanja podatkov – DDRx in vhodne nožice vrat – PINx. Vhodno/izhodna lokacija vhodnih nožic je samo za branje, medtem ko sta podatkovni register in register za usmerjanje podatkov branje/pisanje. Vendar pa bo zapisovanje logične ena v bit v registru PINx povzročilo preklop v ustreznem bitu v registru podatkov. Poleg tega bit Pull-up Disable – PUD v MCUCR onemogoči funkcijo pull-up za vse zatiče v vseh vratih, ko je nastavljen.

Uporaba V/I vrat kot splošnega digitalnega V/I je opisana v “Vrata kot splošni digitalni V/I” na strani 53. Večina zatičev vrat je multipleksiranih z alternativnimi funkcijami za periferne funkcije v napravi. Kako vsaka alternativna funkcija vpliva na zatič vrat, je opisano v “Nadomestne funkcije vrat” na strani 57. Za popoln opis nadomestnih funkcij glejte razdelke posameznih modulov.

Upoštevajte, da omogočanje nadomestne funkcije nekaterih zatičev vrat ne vpliva na uporabo drugih zatičev v vratih kot splošnega digitalnega V/I.

Vrata kot splošni digitalni V/I

Vrata so dvosmerna V/I vrata z izbirnimi notranjimi potezami. Slika 10-2 prikazuje funkcionalni opis enega priključka V/I-vrat, ki se tukaj splošno imenuje Pxn.

Slika 10-2. Splošni digitalni V/I(1)

Fig10

Konfiguracija Pin-a

Vsak pin vrat je sestavljen iz treh registrskih bitov: DDxn, PORTxn in PINxn. Kot je prikazano v Vklopljen je “Opis registracije”. stran 64, do bitov DDxn se dostopa na naslovu DDRx I/O, do bitov PORTxn na naslovu PORTx I/O in do bitov PINxn na naslovu PINx I/O.

Bit DDxn v registru DDRx izbere smer tega zatiča. Če je DDxn zapisan kot logična ena, je Pxn konfiguriran kot izhodni pin. Če je DDxn zapisana logična ničla, je Pxn konfiguriran kot vhodni pin.

Če je PORTxn zapisan kot logična ena, ko je pin konfiguriran kot vhodni pin, je aktiviran upor za dvig. Za izklop vlečnega upora je treba PORTxn zapisati na logično ničlo ali pa mora biti pin konfiguriran kot izhodni pin. Zatiči vrat so v treh položajih, ko postane pogoj ponastavitve aktiven, tudi če ne teče nobena ura.

Če je PORTxn zapisan kot logična ena, ko je pin konfiguriran kot izhodni pin, je pin vrat nastavljen na visoko raven (ena). Če je PORTxn zapisan kot logična ničla, ko je pin konfiguriran kot izhodni pin, je pin vrat nizko (nič).

Preklapljanje Pin

Zapisovanje logične ena v PINxn preklopi vrednost PORTxn, neodvisno od vrednosti DDRxn. Upoštevajte, da lahko navodilo SBI uporabite za preklop enega samega bita v vratih.

Preklapljanje med vhodom in izhodom

Pri preklapljanju med tristanjem ({DDxn, PORTxn} = 0b00) in visokim izhodom ({DDxn, PORTxn} = 0b11), vmesnim stanjem z omogočenim dvigom {DDxn, PORTxn} = 0b01) ali nizkim izhodom ({DDxn, PORTxn} = 0b10). Običajno je stanje omogočenega vlečenja povsem sprejemljivo, saj okolje z visokim uporom ne bo opazilo razlike med močnim visokim voznikom in vlečenjem. Če temu ni tako, lahko bit PUD v registru MCUCR nastavite tako, da onemogoči vse dvige v vseh vratih.

Preklapljanje med vhodom s potegom navzgor in nizkim izhodom povzroča isto težavo. Uporabnik mora kot vmesni korak uporabiti bodisi tristanje ({DDxn, PORTxn} = 0b00) ali izhodno visoko stanje ({DDxn, PORTxn} = 0b10).

Tabela 10-1 povzema krmilne signale za vrednost pina.

Tabela 10-1. Port Pin Configurations

DDxn PORTxn PUD

(v MCUCR)

I/O Pull-up Komentiraj
0 0 X Vnos št Tristanje (Hi-Z)
0 1 0 Vnos ja Pxn bo vir toka, če zun. potegnil nizko.
0 1 1 Vnos št Tristanje (Hi-Z)
1 0 X Izhod št Izhod nizek (ponor)
1 1 X Izhod št Visok izhod (vir)

Branje vrednosti Pin

Neodvisno od nastavitve bita Data Direction DDxn je mogoče pin vrat brati prek bita registra PINxn. Kot je prikazano v Slika 10-2, bit registra PINxn in predhodni zapah tvorita sinhronizator. To je potrebno, da se izognemo metastabilnosti, če fizični zatič spremeni vrednost blizu roba notranje ure, vendar tudi povzroči zakasnitev. Slika 10-3 prikazuje časovni diagram sinhronizacije pri branju zunanje uporabljene vrednosti pina. Največja in najmanjša zakasnitev širjenja sta označeni s tpd,max oziroma tpd,min.

Razmislite o časovnem obdobju, ki se začne kmalu po prvem padajočem robu sistemske ure. Zapah je zaprt, ko je ura nizka, in postane prosojna, ko je ura visoka, kot kaže zasenčeno območje signala »SYNC LATCH«. Vrednost signala se zaskoči, ko sistemska ura pade nizko. Zapisuje se v register PINxn na naslednjem pozitivnem robu ure. Kot kažeta puščici tpd,max in tpd,min, bo prehod posameznega signala na zatiču zakasnjen med ½ in 1½ periode sistemske ure, odvisno od časa potrditve.

Pri branju vrednosti pina, dodeljene programski opremi, je treba vstaviti ukaz nop, kot je navedeno v Slika 10-4. Izhodno navodilo nastavi signal »SYNC LATCH« na pozitivni rob takta. V tem primeru je zakasnitev tpd skozi sinhronizator ena sistemska ura.

Naslednja koda nprample prikazuje, kako nastaviti pine 0 in 1 vrat B, nizko, 2 in 3 in definirati pine vrat od 4 do 5 kot vhod s potegom, dodeljenim pinu 4 vrat. Dobljene vrednosti pinov se znova preberejo, vendar kot je bilo že omenjeno, je vključeno navodilo nop, da lahko preberete vrednost, ki je bila nedavno dodeljena nekaterim nožicam.

Koda sestavljanja Example(1)

; Določite dvige in nastavite visoke rezultate

; Določite navodila za zatiče vrat

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

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

izhod PORTB,r16

ven DDRB, r17

; Vstavite nop za sinhronizacijo

nop

; Preberite zatiče vrat

v r16, PINB

Opomba: Za montažni program se uporabljata dva začasna registra za minimiziranje časa od nastavitev dvigov na nožice 0, 1 in 4, dokler niso smerni biti pravilno nastavljeni, pri čemer bit 2 in 3 definirata kot nizka in ponovno definirata bita 0 in 1 kot močni visoki vozniki.

C Koda Example
nepodpisani znak i;

/* Določite dvige in nastavite visoke rezultate */

/* Določite smeri za zatiče vrat */ PORTB = (1<

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

/* Vstavi nop za sinhronizacijo*/

_NOP();

/* Branje pinov vrat */ i = PINB;

Omogočanje digitalnega vhoda in način mirovanja

Kot je prikazano v Slika 10-2, digitalni vhodni signal je lahko klampozemljitev na vhodu schmittovega sprožilca. Signal, označen s SLEEP na sliki, nastavi krmilnik mirovanja MCU v načinu izklopa, da se izogne ​​visoki porabi energije, če nekateri vhodni signali ostanejo neaktivni ali imajo raven analognega signala blizu VCC/2.

SLEEP je preglasen za zatiče vrat, ki so omogočeni kot zunanji prekinitveni zatiči. Če zahteva za zunanjo prekinitev ni omogočena, je SLEEP aktiven tudi za te pine. SLEEP preglasijo tudi različne druge nadomestne funkcije, kot je opisano v “Nadomestne funkcije vrat” na strani 57.

Če je na asinhronem zunanjem prekinitvenem pinu, konfiguriranem kot »Prekinitev na naraščajočem robu, padajočem robu ali kateri koli logični spremembi na pinu«, prisotna logična visoka raven (»ena«), medtem ko zunanja prekinitev ni omogočena, bo ustrezna zunanja prekinitvena zastavica nastavite ob preklopu iz zgoraj omenjenega načina mirovanja, kot je clampdelovanje v teh načinih mirovanja povzroči zahtevano logično spremembo.

Nepovezani zatiči

Če so nekateri zatiči neuporabljeni, je priporočljivo zagotoviti, da imajo ti zatiči določeno raven. Čeprav je večina digitalnih vhodov onemogočenih v načinih globokega spanja, kot je opisano zgoraj, se je treba izogibati plavajočim vhodom, da zmanjšate porabo toka v vseh drugih načinih, kjer so digitalni vhodi omogočeni (Ponastavitev, aktivni način in način mirovanja).

Najenostavnejša metoda za zagotovitev določene ravni neuporabljenega zatiča je omogočiti notranji poteg navzgor. V tem primeru bo vlečenje med ponastavitvijo onemogočeno. Če je med ponastavitvijo pomembna nizka poraba energije, je priporočljiva uporaba zunanjega vlečnega ali vlečnega. Povezovanje neuporabljenih zatičev neposredno na VCC ali GND ni priporočljivo, saj lahko to povzroči čezmerne tokove, če je zatič pomotoma konfiguriran kot izhod.

Nadomestne funkcije vrat

Večina zatičev vrat ima poleg splošnih digitalnih V/I tudi druge funkcije. Slika 10-5 prikazuje, kako krmilni signali vrat pin iz poenostavljenega Slika 10-2 lahko preglasijo nadomestne funkcije. Prevladujoči signali morda niso prisotni v vseh zatičih vrat, vendar slika služi kot splošen opis, ki se uporablja za vse zatiče vrat v družini mikrokrmilnikov AVR.

Tabela 10-2. Generični opis preglasitvenih signalov za alternativne funkcije

Ime signala Polno ime Opis
PUOE Pull-up Override Enable Če je ta signal nastavljen, se omogočanje vlečenja krmili s signalom PUOV. Če je ta signal izbrisan, je dvig omogočen, ko

{DDxn, PORTxn, PUD} = 0b010.

PUOV Vrednost preglasitve dviga Če je PUOE nastavljen, je dvig omogočen/onemogočen, ko je PUOV nastavljen/počiščen, ne glede na nastavitev bitov registra DDxn, PORTxn in PUD.
DDOE Omogoči preglasitev smeri podatkov Če je ta signal nastavljen, je Output Driver Enable krmiljen s signalom DDOV. Če je ta signal izbrisan, je izhodni gonilnik omogočen z bitom registra DDxn.
DDOV Vrednost preglasitve smeri podatkov Če je DDOE nastavljen, je izhodni gonilnik omogočen/onemogočen, ko je DDOV nastavljen/počiščen, ne glede na nastavitev bita registra DDxn.
PVOE Omogoči preglasitev vrednosti vrat Če je ta signal nastavljen in je izhodni gonilnik omogočen, vrednost vrat nadzira signal PVOV. Če je PVOE počiščen in je izhodni gonilnik omogočen, vrednost vrat nadzira bit registra PORTxn.
PVOV Vrednost preglasitve vrat Če je nastavljen PVOE, je vrednost vrat nastavljena na PVOV, ne glede na nastavitev bita registra PORTxn.
PTOE Omogoči preglasitev preklopa vrat Če je PTOE nastavljen, se bit registra PORTxn obrne.
DIEOE Digitalni vhod Omogoči Preglasi Omogoči Če je ta bit nastavljen, je digitalni vhod Enable krmiljen s signalom DIEOV. Če je ta signal počiščen, je omogočitev digitalnega vhoda določena s stanjem MCU (normalni način, način mirovanja).
DIEOV Digitalni vhod omogoči preglasitev vrednosti Če je nastavljen DIEOE, je digitalni vhod omogočen/onemogočen, ko je DIEOV nastavljen/počiščen, ne glede na stanje MCU (običajni način, način mirovanja).
DI Digitalni vhod To je digitalni vhod za nadomestne funkcije. Na sliki je signal priključen na izhod schmitt-triggerja, vendar pred sinhronizatorjem. Razen če je digitalni vhod uporabljen kot vir takta, bo modul z alternativno funkcijo uporabljal lasten sinhronizator.
AIO Analogni vhod / izhod To je analogni vhod/izhod v/iz alternativnih funkcij. Signal je priključen neposredno na ploščico in se lahko uporablja dvosmerno.

Naslednji pododdelki na kratko opisujejo nadomestne funkcije za posamezna vrata in povezujejo prevladujoče signale z nadomestno funkcijo. Za dodatne podrobnosti glejte opis nadomestne funkcije.

Nadomestne funkcije vrat B

Zatiči vrat B z alternativno funkcijo so prikazani v Tabela 10-3.

Tabela 10-3. Nadomestne funkcije zatičev vrat B

Port Pin Nadomestna funkcija
PB5

RESET: Ponastavite Pin

dW: V/I debugWIRE ADC0: Vhodni kanal ADC 0

PCINT5: Prekinitev spremembe pina, vir 5

PB4 XTAL2: Izhod kristalnega oscilatorja CLKO: Izhod sistemske ure ADC2: Vhodni kanal ADC 2

OC1B: Timer/Counter1 Compare Match B Output PCINT4: Pin Change Interrupt 0, Source 4

PB3 XTAL1: Vhod kristalnega oscilatorja CLKI: Vhod zunanje ure ADC3: Vhodni kanal ADC 3

OC1B: komplementarni časovnik/števec1 primerjava ujemanja B izhod PCINT3: prekinitev spremembe pina 0, vir 3

PB2 SCK: Vhod serijske ure ADC1: Vhodni kanal ADC 1

T0: Timer/Counter0 Clock Source USCK: USI Clock (Three Wire Mode) SCL: USI Clock (Two Wire Mode) INT0: Zunanja prekinitev 0 Input PCINT2: Pin Change Interrupt 0, Source 2

PB1 MISO: SPI glavni vnos podatkov / izhod podrejenih podatkov AIN1: analogni primerjalnik, negativni vhod OC0B: časovnik/števec0 primerjava ujemanja B izhod OC1A: časovnik/števec1 primerjava ujemanja A izhod DO: podatkovni izhod USI (trižični način) PCINT1: prekinitev spremembe nožice 0, vir 1
PB0 MOSI:: SPI glavni izhod podatkov / podrejeni vhod podatkov AIN0: analogni primerjalnik, pozitivni vhod

OC0A: Timer/Counter0 Compare Match A izhod

OC1A: komplementarni časovnik/števec1 primerjava ujemanja A izhod DI: podatkovni vhod USI (trižični način)

SDA: Podatkovni vnos USI (dvožilni način) AREF: Zunanja analogna referenca PCINT0: Prekinitev spremembe pina 0, vir 0

Vrata B, Bit 5 – RESET/dW/ADC0/PCINT5

RESET: Zunanji vhod za ponastavitev je aktiven nizek in omogočen z odprogramiranjem (»1«) varovalke RSTDISBL. Pullup je aktiviran, izhodni gonilnik in digitalni vhod pa sta deaktivirana, ko se zatič uporablja kot zatič RESET.

dW: Ko je varovalka debugWIRE Enable (DWEN) programirana in so zaklepni biti neprogramirani, se sistem debugWIRE znotraj ciljne naprave aktivira. Zatič vrat RESET je konfiguriran kot dvosmerni V/I zatič za žično IN (odprt odtok) z omogočenim dvigom in postane komunikacijski prehod med ciljem in emulatorjem.

ADC0: Analogno-digitalni pretvornik, kanal 0.

PCINT5: Pin Change Interrupt vir 5.

Vrata B, Bit 4 – XTAL2/CLKO/ADC2/OC1B/PCINT4

XTAL2: pin 2 oscilatorja ure čipa. Uporablja se kot pin ure za vse vire ure čipa, razen notranjega umerljivega RC oscilatorja in zunanje ure. Če se uporablja kot zatič za uro, ga ni mogoče uporabiti kot V/I zatič. Pri uporabi notranjega umerljivega RC oscilatorja ali zunanje ure kot vira takta čipa PB4 služi kot navaden I/O pin.

CLKO: razdeljena sistemska ura je lahko izhodna na pin PB4. Razdeljena sistemska ura bo prikazana, če je programirana varovalka CKOUT, ne glede na nastavitve PORTB4 in DDB4. Izveden bo tudi med ponastavitvijo.

ADC2: Analogno-digitalni pretvornik, kanal 2.

OC1B: Izhod primerjave ujemanja izhoda: Pin PB4 lahko služi kot zunanji izhod za Timer/Counter1 Compare Match B, ko je konfiguriran kot izhod (nastavljen DDB4). Zatič OC1B je tudi izhodni zatič za funkcijo časovnika načina PWM.

PCINT4: Pin Change Interrupt vir 4.

Vrata B, bit 3 – XTAL1/CLKI/ADC3/OC1B/PCINT3

XTAL1: Pin 1 oscilatorja ure čipa. Uporablja se za vse vire takta čipa, razen notranjega kalibriranega oscilatorja RC. Če se uporablja kot zatič za uro, ga ni mogoče uporabiti kot V/I zatič.

CLKI: Ura Vhod iz zunanjega vira ure, glejte “Zunanja ura” na strani 26.

ADC3: Analogno-digitalni pretvornik, kanal 3.

OC1B: Obrnjen izhod primerjave ujemanja izhod: Pin PB3 lahko služi kot zunanji izhod za Timer/Counter1 Compare Match B, ko je konfiguriran kot izhod (nastavljen DDB3). Zatič OC1B je tudi obrnjeni izhodni zatič za funkcijo časovnika načina PWM.

PCINT3: Pin Change Interrupt vir 3.

Vrata B, Bit 2 – SCK/ADC1/T0/USCK/SCL/INT0/PCINT2

SCK: izhod glavne ure, vhodni pin podrejene ure za kanal SPI. Ko je SPI omogočen kot podrejeni, je ta nožica konfigurirana kot vhod ne glede na nastavitev DDB2. Ko je SPI omogočen kot glavni, smer podatkov tega zatiča nadzoruje DDPB2. Ko SPI prisili pin, da je vhod, lahko dvig še vedno nadzira bit PORTB2.

ADC1: Analogno-digitalni pretvornik, kanal 1.

T0: vir števca časovnika/števca0.

USCK: Ura univerzalnega serijskega vmesnika v trižičnem načinu.

SCL: Serijska ura za dvožilni način za dvožilni način USI.

INT0: zunanji prekinitveni vir 0.

PCINT2: Pin Change Interrupt vir 2.

Vrata B, Bit 1 – MISO/AIN1/OC0B/OC1A/DO/PCINT1

MISO: vhodni glavni podatki, izhodni pin podrejenih podatkov za kanal SPI. Ko je SPI omogočen kot glavni, je ta nožica konfigurirana kot vhod ne glede na nastavitev DDB1. Ko je SPI omogočen kot podrejeni, smer podatkov tega zatiča nadzoruje DDB1. Ko SPI prisili pin, da je vhod, lahko dvig še vedno nadzira bit PORTB1.

AIN1: negativni vhod analognega primerjalnika. Konfigurirajte zatič vrat kot vhod z izklopljenim notranjim dvigom, da preprečite, da bi funkcija digitalnih vrat motila delovanje analognega primerjalnika.

OC0B: Izhod Primerjava Ujemaj izhod. Pin PB1 lahko služi kot zunanji izhod za Timer/Counter0 Compare Match B. Pin PB1 mora biti konfiguriran kot izhod (nabor DDB1 (ena)), da služi tej funkciji. Zatič OC0B je tudi izhodni zatič za funkcijo časovnika načina PWM.

OC1A: izhod primerjave ujemanja izhoda: Pin PB1 lahko služi kot zunanji izhod za časovnik/števec1 primerjava ujemanja B, ko je konfiguriran kot izhod (nastavljen DDB1). Zatič OC1A je tudi izhodni zatič za funkcijo časovnika načina PWM.

DO: Izhod podatkov univerzalnega serijskega vmesnika v trižičnem načinu. Trižični način Podatkovni izhod preglasi vrednost PORTB1 in se pošlje v vrata, ko je nastavljen bit podatkovne smeri DDB1 (ena). PORTB1 še vedno omogoča poteg navzgor, če je smer vnesena in je PORTB1 nastavljen (ena).

PCINT1: Pin Change Interrupt vir 1.

Vrata B, Bit 0 – MOSI/AIN0/OC0A/OC1A/DI/SDA/AREF/PCINT0

MOSI: SPI Master Data izhod, Slave Data vhod za SPI kanal. Ko je SPI omogočen kot podrejeni, je ta nožica konfigurirana kot vhod ne glede na nastavitev DDB0. Ko je SPI omogočen kot glavni, smer podatkov tega zatiča nadzoruje DDB0. Ko SPI prisili pin, da je vhod, lahko dvig še vedno nadzira bit PORTB0.

AIN0: Pozitivni vhod analognega primerjalnika. Konfigurirajte zatič vrat kot vhod z izklopljenim notranjim dvigom, da preprečite, da bi funkcija digitalnih vrat motila delovanje analognega primerjalnika.

OC0A: Izhod Primerjava Ujemaj izhod. Nožica PB0 lahko služi kot zunanji izhod za Timer/Counter0 Compare Match A, ko je konfiguriran kot izhod (DDB0 set (ena)). Zatič OC0A je tudi izhodni zatič za funkcijo časovnika načina PWM.

OC1A: Obrnjen izhod primerjave ujemanja izhod: Pin PB0 lahko služi kot zunanji izhod za Timer/Counter1 Compare Match B, ko je konfiguriran kot izhod (nastavljen DDB0). Zatič OC1A je tudi obrnjeni izhodni zatič za funkcijo časovnika načina PWM.

SDA: Podatki serijskega vmesnika dvožilnega načina.

AREF: Zunanja analogna referenca za ADC. Pullup in izhodni gonilnik sta na PB0 onemogočena, ko se nožica uporablja kot zunanja referenca ali notranja vol.tage Referenca z zunanjim kondenzatorjem na zatiču AREF.

DI: Vnos podatkov v trižičnem načinu USI. Trižični način USI ne preglasi običajnih funkcij vrat, zato je treba pin konfigurirati kot vhod za funkcijo DI.

PCINT0: Pin Change Interrupt vir 0.

Tabela 10-4 in Tabela 10-5 povežite nadomestne funkcije vrat B s prevladujočimi signali, prikazanimi v Slika 10-5 naprej stran 58.

Tabela 10-4. Preglasitev signalov za alternativne funkcije v PB[5:3]

Ime signala PB5/PONASTAVI/ADC0/PCINT5 PB4/ADC2/XTAL2/ OC1B/PCINT4 PB3/ADC3/XTAL1/ OC1B/PCINT3
PUOE

RSTDISBL(1) • DWEN(1)

0 0
PUOV 1 0 0
DDOE RSTDISBL(1) • DWEN(1) 0 0
DDOV debugWire Transmit 0 0
PVOE 0 OC1B Omogoči

OC1B Omogoči

PVOV 0 OC1B OC1B
PTOE 0 0 0
DIEOE

RSTDISBL(1) + (PCINT5 • PCIE + ADC0D)

PCINT4 • PCIE + ADC2D PCINT3 • PCIE + ADC3D
DIEOV ADC0D ADC2D ADC3D
DI Vnos PCINT5 Vnos PCINT4 Vnos PCINT3
AIO Vhod RESET, vhod ADC0 ADC2 vhod ADC3 vhod

Opomba: ko je varovalka "0" (programirano).

Tabela 10-5. Preglasitev signalov za alternativne funkcije v PB[2:0]

Ime signala 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 Omogoči + OC1A Omogoči + USI_THREE_WIRE

OC0A Omogoči + OC1A Omogoči + (USI_TWO_WIRE

DDB0)

PVOV 0 OC0B + OC1A + DO

OC0A + OC1A

PTOE USITC 0 0
DIEOE PCINT2 • PCIE + ADC1D + USISIE PCINT1 • PCIE + AIN1D PCINT0 • PCIE + AIN0D + USISIE
DIEOV ADC1D AIN1D AIN0D
DI T0/USCK/SCL/INT0/

Vnos PCINT2

Vnos PCINT1 Vnos DI/SDA/PCINT0
AIO ADC1 vhod Negativni vhod analognega primerjalnika Pozitivni vhod analognega primerjalnika

Opis registra

MCUCR – kontrolni register MCU

bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Branje/Pisanje R R/W R/W R/W R/W R R/W R/W
Začetna vrednost 0 0 0 0 0 0 0 0

Bit 6 – PUD: Pull-up Onemogoči

Ko je ta bit zapisan v eno, so dvigi v V/I vratih onemogočeni, tudi če sta registra DDxn in PORTxn konfigurirana tako, da omogočata dvige ({DDxn, PORTxn} = 0b01). glej “Konfiguracija PIN-a” na strani 54 za več podrobnosti o tej funkciji.

PORTB – Podatkovni register vrat B

bit 7 6 5 4 3 2 1 0
0x18 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
Branje/Pisanje R R R/W R/W R/W R/W R/W R/W
Začetna vrednost 0 0 0 0 0 0 0 0

DDRB – Port B Data Direction Register

bit 7 6 5 4 3 2 1 0
0x17 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Branje/Pisanje R R R/W R/W R/W R/W R/W R/W
Začetna vrednost 0 0 0 0 0 0 0 0

PINB – Port B Input Pins Address

bit 7 6 5 4 3 2 1 0
0x16 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Branje/Pisanje R R R/W R/W R/W R/W R/W R/W
Začetna vrednost 0 0 N/A N/A N/A N/A N/A N/A

8-bitni časovnik/števec0 s PWM

Lastnosti

Dve neodvisni izhodni enoti za primerjavo

Primerjava registrov dvojnega medpomnilnika izhoda

Počisti časovnik ob ujemanju primerjave (samodejno ponovno nalaganje)

Modulator širine impulza (PWM) brez napak, fazno pravilen

Spremenljivo obdobje PWM

Frekvenčni generator

Trije neodvisni viri prekinitev (TOV0, OCF0A in OCF0B)

konecview

Timer/Counter0 je splošni 8-bitni modul Timer/Counter z dvema neodvisnima enotama za primerjavo izhodov in podporo za PWM. Omogoča natančen čas izvajanja programa (upravljanje dogodkov) in generiranje valov.

Poenostavljen blokovni diagram 8-bitnega časovnika/števca je prikazan v Slika 11-1. Za dejansko postavitev V/I zatičev glejte “Pinout ATtiny25/45/85” na strani 2. V/I registri, dostopni CPU, vključno z V/I biti in V/I zatiči, so prikazani krepko. V/I register in lokacije bitov, specifične za napravo, so navedene v “Opis registra” na strani 77.

Časovnik/števec (TCNT0) in registri za primerjavo izhodov (OCR0A in OCR0B) so 8-bitni registri. Vsi signali zahteve za prekinitev (skrajšano za Int.Req. na sliki) so vidni v registru zastavic časovne prekinitve (TIFR). Vse prekinitve so posamično maskirane z registrom maske časovne prekinitve (TIMSK). TIFR in TIMSK nista prikazana na sliki.

Časovnik/števec je mogoče taktirati interno, prek preddelilnika ali zunanjega vira ure na zatiču T0. Logični blok za izbiro ure nadzira, kateri vir in rob ure uporablja časovnik/števec za povečanje (ali zmanjšanje) svoje vrednosti. Časovnik/števec je neaktiven, če ni izbran vir ure. Izhod iz logike izbire ure se imenuje ura časovnika (clkT0).

Izhodni primerjalni registri z dvojnim medpomnilnikom (OCR0A in OCR0B) se ves čas primerjajo z vrednostjo časovnika/števca. Rezultat primerjave lahko uporabi generator valovnih oblik za generiranje izhoda PWM ali spremenljive frekvence na zatičih za primerjavo izhodov (OC0A in OC0B). Glejte “Enota za primerjavo izhoda” na strani 69. za podrobnosti. Dogodek Compare Match bo nastavil tudi zastavico Compare (OCF0A ali OCF0B), ki se lahko uporabi za generiranje zahteve za prekinitev primerjave izhoda.

Definicije

Veliko referenc na registre in bite v tem razdelku je napisanih v splošni obliki. Mala črka "n" nadomesti številko časovnika/števca, v tem primeru 0. Mala črka "x" nadomesti izhodno primerjalno enoto, v tem primeru primerjalno enoto A ali primerjalno enoto B. Vendar pa pri uporabi registra ali bita definira v programu je treba uporabiti natančno obliko, tj. TCNT0 za dostop do vrednosti števca Timer/Counter0 itd.

Definicije v Tabela 11-1 se prav tako pogosto uporabljajo v celotnem dokumentu.

Tabela 11-1. Definicije

Konstanta Opis
SPODNJE Števec doseže DNO, ko postane 0x00
MAKS Števec doseže svoj MAXimum, ko postane 0xFF (decimalno 255)
TOP Števec doseže TOP, ko postane enak najvišji vrednosti v zaporedju štetja. TOP vrednost lahko dodelite fiksni vrednosti 0xFF (MAX) ali vrednosti, shranjeni v registru OCR0A. Dodelitev je odvisna od načina delovanja

Preddelilnik časa/števec in viri ure

Časovnik/števec se lahko uravnava z notranjim ali zunanjim virom ure. Vir ure je izbran z logiko izbire ure, ki jo nadzirajo biti za izbiro ure (c), ki se nahajajo v nadzornem registru časovnika/števca0 (TCCR0B).

Notranji vir ure s preddelilnikom

Časovnik/števec0 lahko merite neposredno s sistemsko uro (z nastavitvijo CS0[2:0] = 1). To zagotavlja najhitrejše delovanje z največjo frekvenco ure časovnika/števca, ki je enaka frekvenci sistemske ure (fCLK_I/O). Druga možnost je, da se kot vir takta uporabi ena od štirih pip iz preddelilnika. Prednastavljena ura ima frekvenco obeh

Ponastavitev preddelilnika

Preddelilnik deluje prosto, tj. deluje neodvisno od logike izbire ure časovnika/števca0. Ker izbira ure časovnika/števca ne vpliva na preddelilnik, bo imelo stanje preddelilnika posledice za situacije, kjer se uporablja prednastavljena ura. En bivšiampartefakt vnaprejšnjega skaliranja je, ko je časovnik/števec omogočen in taktiran z vnaprejšnjim merilnikom (6 > CS0[2:0] > 1). Število ciklov sistemske ure od trenutka, ko je časovnik omogočen, do prvega štetja je lahko od 1 do N+1 ciklov sistemske ure, kjer je N enako delitelju preddelilnika (8, 64, 256 ali 1024).

Možno je uporabiti ponastavitev preddelilnika za sinhronizacijo časovnika/števca z izvajanjem programa.

Zunanji vir ure

Zunanji vir ure, priključen na pin T0, se lahko uporablja kot časovnik/števec (clkT0). Zatič T0 je sampvodi enkrat vsak cikel sistemske ure z logiko sinhronizacije pinov. Sinhronizirani (sampLED) je nato posredovan signal

skozi detektor robov. Slika 11-2 prikazuje funkcionalno enakovredni blokovni diagram T0 sinhronizacije in logike detektorja robov. Registri so taktni na pozitivnem robu notranje sistemske ure (clkI/O). Zapah je v visokem obdobju notranje sistemske ure prozoren.

Detektor robov ustvari en impulz clkT0 za vsak pozitivni (CS0[2:0] = 7) ali negativni (CS0[2:0] = 6) rob, ki ga zazna.

Registri OCR0x so dvojno medpomnilniki pri uporabi katerega koli od načinov modulacije širine impulza (PWM). Za običajni način delovanja in način delovanja Clear Timer on Compare (CTC) je dvojno medpomnjenje onemogočeno. Dvojno medpomnjenje sinhronizira posodobitev primerjalnih registrov OCR0x na vrh ali dno zaporedja štetja. Sinhronizacija preprečuje pojav lihih, nesimetričnih impulzov PWM, zaradi česar je izhod brez napak.

Dostop do registra OCR0x se morda zdi zapleten, vendar ni tako. Ko je omogočeno dvojno medpomnjenje, ima CPE dostop do registra medpomnilnika OCR0x, in če je dvojno medpomnjenje onemogočeno, bo CPE neposredno dostopal do OCR0x.

Force Output Compare

V načinih generiranja valovne oblike brez PWM se lahko ujemanje izhoda primerjalnika vsili tako, da se v bit Force Output Compare (FOC0x) zapiše ena. Prisilno ujemanje primerjave ne bo nastavilo zastavice OCF0x ali znova naložilo/počistilo časovnika, vendar bo pin OC0x posodobljen, kot da bi prišlo do resničnega primerjalnega ujemanja (nastavitve bitov COM0x[1:0] določajo, ali je pin OC0x nastavljen, počiščen ali preklopno).

Primerjaj Match Blocking s TCNT0 Write

Vse operacije pisanja CPE v register TCNT0 bodo blokirale kakršno koli primerjalno ujemanje, ki se pojavi v naslednjem ciklu časovnika, tudi ko je časovnik ustavljen. Ta funkcija omogoča inicializacijo OCR0x na isto vrednost kot TCNT0 brez sprožitve prekinitve, ko je omogočena ura časovnika/števca.

Uporaba enote za primerjavo izhoda

Ker bo pisanje TCNT0 v katerem koli načinu delovanja blokiralo vsa primerjalna ujemanja za en cikel časovnika, obstajajo tveganja pri spreminjanju TCNT0 pri uporabi enote za primerjavo izhoda, ne glede na to, ali se časovnik/števec izvaja ali ne. Če je vrednost, zapisana v TCNT0, enaka vrednosti OCR0x, bo primerjalno ujemanje zgrešeno, kar bo povzročilo nepravilno generiranje valovne oblike. Podobno ne zapišite vrednosti TCNT0, ki je enaka BOTTOM, ko števec odšteva navzdol.

Nastavitev OC0x je treba izvesti, preden nastavite register usmerjanja podatkov za izhodni pin vrat. Najlažji način za nastavitev vrednosti OC0x je uporaba bitov za primerjavo izhodne sile (FOC0x) v običajnem načinu. Registri OC0x ohranjajo svoje vrednosti tudi pri menjavi med načini generiranja valov.

Zavedajte se, da biti COM0x[1:0] niso dvojno medpomnilnik skupaj s primerjalno vrednostjo. Spreminjanje bitov COM0x[1:0] bo začelo veljati takoj.

Primerjaj Match Output Unit

Primerjaj izhodnih bitov (COM0x[1:0]) ima dve funkciji. Generator valovnih oblik uporablja bite COM0x[1:0] za definiranje stanja primerjave izhoda (OC0x) pri naslednjem ujemanju primerjave. Tudi biti COM0x[1:0] nadzorujejo izhodni vir nožice OC0x. Slika 11-6 prikazuje poenostavljeno shemo logike, na katero vpliva bitna nastavitev COM0x[1:0]. V/I registri, V/I biti in V/I zatiči na sliki so prikazani krepko. Prikazani so samo deli splošnih registrov za nadzor V/I vrat (DDR in PORT), na katere vplivajo bitovi COM0x[1:0]. Pri sklicevanju na stanje OC0x je referenca za notranji register OC0x, ne za pin OC0x. Če pride do ponastavitve sistema, se register OC0x ponastavi na »0«.

Ko je OC0A/OC0B priključen na I/O pin, je funkcija bitov COM0A[1:0]/COM0B[1:0] odvisna od nastavitve bita WGM0[2:0]. Tabela 11-2 prikazuje funkcionalnost bita COM0x[1:0], ko so biti WGM0[2:0] nastavljeni na običajni način ali način CTC (brez PWM).

Tabela 11-2. Primerjaj izhodni način, način brez PWM

COM0A1 COM0B1 COM0A0 COM0B0 Opis
0 0 Normalno delovanje vrat, OC0A/OC0B prekinjena.
0 1 Preklopite OC0A/OC0B na primerjavo ujemanja
1 0 Počisti OC0A/OC0B pri primerjalnem ujemanju
1 1 Nastavite OC0A/OC0B na Compare Match

Tabela 11-3 prikazuje funkcionalnost bita COM0x[1:0], ko so biti WGM0[2:0] nastavljeni na hitri način PWM.

Tabela 11-3. Primerjaj izhodni način, hitri način PWM(1)

COM0A1 COM0B1 COM0A0 COM0B0 Opis
0 0 Normalno delovanje vrat, OC0A/OC0B prekinjena.
0 1 Rezervirano
1 0 Počistite OC0A/OC0B pri primerjalnem ujemanju, nastavite OC0A/OC0B na SPODAJ (način brez obračanja)
1 1 Nastavite OC0A/OC0B na Compare Match, počistite OC0A/OC0B na SPODAJ (način obračanja)

Opomba: Poseben primer se pojavi, ko je OCR0A ali OCR0B enako TOP in je nastavljen COM0A1/COM0B1. V tem primeru se primerjalno ujemanje prezre, nastavitev ali brisanje pa se izvede na SPODNJEM. glej “Hitri način PWM” na strani 73 za več podrobnosti.

Tabela 11-4 prikazuje funkcionalnost bita COM0x[1:0], ko so biti WGM0[2:0] nastavljeni na fazno pravilen način PWM.

Tabela 11-4. Primerjajte način izhoda, način pravilne faze PWM(1)

COM0A1 COM0B1 COM0A0 COM0B0 Opis
0 0 Normalno delovanje vrat, OC0A/OC0B prekinjena.
0 1 Rezervirano
1 0 Počisti OC0A/OC0B pri primerjalnem ujemanju pri štetju. Pri štetju navzdol nastavite OC0A/OC0B na Compare Match.
1 1 Pri štetju navzgor nastavite OC0A/OC0B na Compare Match. Počisti OC0A/OC0B pri primerjalnem ujemanju pri štetju navzdol.

Opomba: 1. Do posebnega primera pride, ko je OCR0A ali OCR0B enako TOP in je nastavljen COM0A1/COM0B1. V tem primeru se primerjava ujemanja prezre, nastavitev ali brisanje pa se izvede na VRHU. glej “Phase Correct PWM Mode” na strani 74 za več podrobnosti.

Biti 3:2 – Res: rezervirani biti

Ti biti so v ATtiny25/45/85 rezervirani biti in se vedno berejo kot nič.

Biti 1:0 – WGM0[1:0]: način generiranja valov

V kombinaciji z bitom WGM02, ki ga najdete v registru TCCR0B, ti biti nadzirajo zaporedje štetja števca, vir za največjo (TOP) vrednost števca in vrsto generiranja valovne oblike, ki se uporablja, glejte Tabela 11-5. Načini delovanja, ki jih podpira enota časovnik/števec, so: običajni način (števec), način brisanja časovnika pri primerjanju ujemanja (CTC) in dve vrsti načinov modulacije širine impulza (PWM) (glejte "Načini delovanja" na strani 71).

Tabela 11-5. Bit Opis načina generiranja valovne oblike

Način WGM 02 WGM 01 WGM 00 Način delovanja časovnika/števca TOP Posodobitev OCRx na Zastavica TOV je vklopljena
0 0 0 0 normalno 0xFF Takoj MAKS(1)
1 0 0 1 PWM, pravilna faza 0xFF TOP SPODNJE(2)
2 0 1 0 CTC OCRA Takoj MAKS(1)
3 0 1 1 Hiter PWM 0xFF SPODNJE(2) MAKS(1)
4 1 0 0 Rezervirano
5 1 0 1 PWM, pravilna faza OCRA TOP SPODNJE(2)
6 1 1 0 Rezervirano
7 1 1 1 Hiter PWM OCRA SPODNJE(2) TOP

Bit 7 – FOC0A: Force Output Compare A

Bit FOC0A je aktiven le, če biti WGM določajo način brez PWM.

Za zagotavljanje združljivosti s prihodnjimi napravami pa mora biti ta bit nastavljen na nič, ko je TCCR0B zapisan pri delovanju v načinu PWM. Pri zapisovanju logične enote v bit FOC0A je v enoti za generiranje valov vsiljeno takojšnje primerjalno ujemanje. Izhod OC0A se spremeni glede na njegovo nastavitev bitov COM0A[1:0]. Upoštevajte, da je bit FOC0A implementiran kot stroboskop. Zato je vrednost, prisotna v bitih COM0A[1:0], tista, ki določa učinek prisilne primerjave.

Utrip FOC0A ne bo ustvaril nobene prekinitve, niti ne bo počistil časovnika v načinu CTC z uporabo OCR0A kot TOP. Bit FOC0A se vedno bere kot nič.

Bit 6 – FOC0B: Force Output Compare B

Bit FOC0B je aktiven le, če biti WGM določajo način brez PWM.

Za zagotavljanje združljivosti s prihodnjimi napravami pa mora biti ta bit nastavljen na nič, ko je TCCR0B zapisan pri delovanju v načinu PWM. Pri zapisovanju logične enote v bit FOC0B je v enoti za generiranje valov vsiljeno takojšnje primerjalno ujemanje. Izhod OC0B se spremeni v skladu z nastavitvijo bitov COM0B[1:0]. Upoštevajte, da je bit FOC0B implementiran kot stroboskop. Zato je vrednost, prisotna v bitih COM0B[1:0], tista, ki določa učinek prisilne primerjave.

Utrip FOC0B ne bo ustvaril nobene prekinitve, niti ne bo počistil časovnika v načinu CTC z uporabo OCR0B kot TOP.

Bit FOC0B se vedno bere kot nič.

Biti 5:4 – Res: rezervirani biti

Ti biti so v ATtiny25/45/85 rezervirani biti in se vedno berejo kot nič.

Bit 3 – WGM02: način generiranja valov

Glej opis v “TCCR0A – Nadzorni register časovnika/števca A” na strani 77.

Biti 2:0 – CS0[2:0]: Izbira ure

Trije biti za izbiro ure izberejo vir ure, ki ga bo uporabljal časovnik/števec.

Tabela 11-6. Ura Izberite Bit Opis

CS02 CS01 CS00 Opis
0 0 0 Ni vira ure (časovnik/števec ustavljen)
0 0 1 clkI/O/(brez predhodnega skaliranja)
0 1 0 clkI/O/8 (iz preddelilnika)
0 1 1 clkI/O/64 (iz preddelilnika)
1 0 0 clkI/O/256 (iz preddelilnika)
1 0 1 clkI/O/1024 (iz preddelilnika)
1 1 0 Zunanji vir ure na zatiču T0. Ura na padajočem robu.
1 1 1 Zunanji vir ure na zatiču T0. Ura na naraščajočem robu.

Če se za Timer/Counter0 uporabljajo zunanji načini zatičev, bodo prehodi na zatiču T0 taktirali števec, tudi če je zatič konfiguriran kot izhod. Ta funkcija omogoča programsko upravljanje štetja.

Štetje in primerjava enot

Splošno delovanje Timer/Counter1 je opisano v asinhronem načinu, delovanje v sinhronem načinu pa je omenjeno le, če obstajajo razlike med tema načinoma. Slika 12-2 prikazuje blokovni diagram sinhronizacijskega registra Timer/Counter 1 in sinhronizacijske zakasnitve med registri. Upoštevajte, da na sliki niso prikazane vse podrobnosti o strmitvi ure. Vrednosti registra Timer/Counter1 gredo skozi notranje sinhronizacijske registre, ki povzročijo zakasnitev vhodne sinhronizacije, preden vplivajo na delovanje števca. Registre TCCR1, GTCCR, OCR1A, OCR1B in OCR1C je mogoče prebrati nazaj takoj po pisanju registra. Prebrane vrednosti so zakasnjene za register Timer/Counter1 (TCNT1) in zastavice (OCF1A, OCF1B in TOV1) zaradi vhodne in izhodne sinhronizacije.

Časovnik/števec1 ima visoko ločljivost in visoko natančno uporabo z nižjimi možnostmi predskaliranja. Podpira lahko tudi dva natančna, visokohitrostna, 8-bitna modulatorja širine impulza, ki uporabljata frekvenco do 64 MHz (ali 32 MHz v načinu nizke hitrosti). V tem načinu Timer/Counter1 in izhodni primerjalni registri služijo kot dvojni samostojni PWM z neprekrivajočimi se neinvertiranimi in invertiranimi izhodi. Nanašati se na stran 86 za podroben opis te funkcije. Podobno je zaradi visokih možnosti predskaliranja ta enota uporabna za funkcije nižje hitrosti ali funkcije natančnega merjenja časa z redkimi dejanji.

Slika 12-2. Blok diagrama sinhronizacijskega registra časovnika/števca 1.

Časovnik/števec1 in preddelilnik omogočata delovanje CPU iz katerega koli vira takta, medtem ko preddelilnik deluje na hitri 64 MHz (ali 32 MHz v načinu nizke hitrosti) PCK uri v asinhronem načinu.

Upoštevajte, da mora biti frekvenca sistemske ure nižja od ene tretjine frekvence PCK. Sinhronizacijski mehanizem asinhronega časovnika/števca1 potrebuje vsaj dva robova PCK, ko je sistemska ura visoka. Če je frekvenca sistemske ure previsoka, obstaja nevarnost izgube podatkov ali kontrolnih vrednosti.

Naslednji Slika 12-3 prikazuje blokovni diagram za Timer/Counter1.

Tabela 12-1. Način primerjave Izberite v načinu PWM

COM1x1 COM1x0 Učinek na izhodne primerjalne nožice
0 0 OC1x ni povezan. OC1x ni povezan.
0 1 OC1x počiščen pri primerjalnem ujemanju. Nastavite, ko je TCNT1 = 00 USD. OC1x nastavljen na primerjavo. Počiščeno, ko je TCNT1 = 00 USD.
1 0 OC1x počiščen pri primerjalnem ujemanju. Nastavite, ko je TCNT1 = 00 USD. OC1x ni povezan.
1 1 OC1x Nastavite na primerjavo. Počiščeno, ko je TCNT1= $00. OC1x ni povezan.

Značilnosti ADC

Tabela 21-8. Značilnosti ADC, enojni kanali. TA = -40°C do +85°C

Simbol Parameter Pogoj Min Tip Maks Enote
Resolucija 10 Biti
Absolutna natančnost (vključno z napakami INL, DNL in kvantizacijo, ojačanjem in odmikom) VREF = 4V, VCC = 4V,

Ura ADC = 200 kHz

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

Ura ADC = 1 MHz

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

Ura ADC = 200 kHz

Način za zmanjšanje hrupa

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

Ura ADC = 1 MHz

Način za zmanjšanje hrupa

2.5 LSB
Integralna nelinearnost (INL) (natančnost po kalibraciji odmika in ojačanja) VREF = 4V, VCC = 4V,

Ura ADC = 200 kHz

1 LSB
Diferencialna nelinearnost (DNL) VREF = 4V, VCC = 4V,

Ura ADC = 200 kHz

0.5 LSB
Napaka pridobivanja VREF = 4V, VCC = 4V,

Ura ADC = 200 kHz

2.5 LSB
Napaka odmika VREF = 4V, VCC = 4V,

Ura ADC = 200 kHz

1.5 LSB
Čas pretvorbe Free Running Conversion 14 280 µs
Ura Frekvenca 50 1000 kHz
VIN Vhodna voltage GND VREF V
Vhodna pasovna širina 38.4 kHz
AREF Zunanja referenca Voltage 2.0 VCC V
VINT Notranji zvtage Referenca 1.0 1.1 1.2 V
Notranja referenca 2.56 V (1) VCC > 3.0 V 2.3 2.56 2.8 V
RREF 32
DEŽ Analogni vhodni upor 100
Izhod ADC 0 1023 LSB

Opomba: 1. Vrednosti so samo smernice.

Tabela 21-9. Karakteristike ADC, diferencialni kanali (unipolarni način). TA = -40°C do +85°C

Simbol Parameter Pogoj Min Tip Maks Enote
Resolucija Dobiček = 1x 10 Biti
Dobiček = 20x 10 Biti
Absolutna natančnost (vključno z INL, DNL in

Napake kvantizacije, ojačanja in odmika)

Dobiček = 1x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

10.0 LSB
Dobiček = 20x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

20.0 LSB
Integralna nelinearnost (INL) (natančnost po kalibraciji odmika in ojačanja) Dobiček = 1x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

4.0 LSB
Dobiček = 20x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

10.0 LSB
Napaka pridobivanja Dobiček = 1x 10.0 LSB
Dobiček = 20x 15.0 LSB
Napaka odmika Dobiček = 1x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

3.0 LSB
Dobiček = 20x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

4.0 LSB
Čas pretvorbe Free Running Conversion 70 280 µs
Ura Frekvenca 50 200 kHz
VIN Vhodna voltage GND VCC V
VDIFF Vhodna razlika Voltage VREF/ojačanje V
Vhodna pasovna širina 4 kHz
AREF Zunanja referenca Voltage 2.0 VCC – 1.0 V
VINT Notranji zvtage Referenca 1.0 1.1 1.2 V
Notranja referenca 2.56 V (1) VCC > 3.0 V 2.3 2.56 2.8 V
RREF Referenčni vhodni upor 32
DEŽ Analogni vhodni upor 100
Izhod pretvorbe ADC 0 1023 LSB

Opomba: vrednosti so samo smernice.

Tabela 21-10. Karakteristike ADC, diferencialni kanali (bipolarni način). TA = -40°C do +85°C

Simbol Parameter Pogoj Min Tip Maks Enote
Resolucija Dobiček = 1x 10 Biti
Dobiček = 20x 10 Biti
Absolutna natančnost (vključno z INL, DNL in

Napake kvantizacije, ojačanja in odmika)

Dobiček = 1x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

8.0 LSB
Dobiček = 20x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

8.0 LSB
Integralna nelinearnost (INL) (natančnost po kalibraciji odmika in ojačanja) Dobiček = 1x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

4.0 LSB
Dobiček = 20x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

5.0 LSB
Napaka pridobivanja Dobiček = 1x 4.0 LSB
Dobiček = 20x 5.0 LSB
Napaka odmika Dobiček = 1x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

3.0 LSB
Dobiček = 20x

VREF = 4V, VCC = 5V

Ura ADC = 50 – 200 kHz

4.0 LSB
Čas pretvorbe Free Running Conversion 70 280 µs
Ura Frekvenca 50 200 kHz
VIN Vhodna voltage GND VCC V
VDIFF Vhodna razlika Voltage VREF/ojačanje V
Vhodna pasovna širina 4 kHz
AREF Zunanja referenca Voltage 2.0 VCC – 1.0 V
VINT Notranji zvtage Referenca 1.0 1.1 1.2 V
Notranja referenca 2.56 V (1) VCC > 3.0 V 2.3 2.56 2.8 V
RREF Referenčni vhodni upor 32
DEŽ Analogni vhodni upor 100
Izhod pretvorbe ADC -512 511 LSB

Povzetek niza navodil

Mnemotehnika Operandi Opis Delovanje Zastave #Ure
ARITMETIČNA IN LOGIČNA NAVODILA
DODAJ Rd, Rr Dodajte dva registra Rd ← Rd + Rr Z,C,N,V,H 1
ADC Rd, Rr Dodajte s Carry dva registra Rd ← Rd + Rr + C Z,C,N,V,H 1
ADIW Rdl,K Dodaj takoj v Word Rdh:Rdl ← Rdh:Rdl + K Z,C,N,V,J 2
SUB Rd, Rr Odštejte dva registra Rd ← Rd – Rr Z,C,N,V,H 1
SUBI Rd, K Odštejte konstanto iz registra Rd ← Rd – K Z,C,N,V,H 1
SBC Rd, Rr Odštejte s Carry two Registers Rd ← Rd – Rr – C Z,C,N,V,H 1
SBCI Rd, K Odštejte s Carry Constant od Reg. Rd ← Rd – K – C Z,C,N,V,H 1
SBIW Rdl,K Odštejte takoj od Worda Rdh:Rdl ← Rdh:Rdl – K Z,C,N,V,J 2
IN Rd, Rr Logični registri IN Rd ← Rd ∙ Rr Z,N,V 1
ANDI Rd, K Logični IN register in konstanta Rd ← Rd ∙ K Z,N,V 1
OR Rd, Rr Logični ALI registri Rd ← Rd v Rr Z,N,V 1
ORI Rd, K Logični ALI register in konstanta Rd ← Rd v K Z,N,V 1
EOR Rd, Rr Ekskluzivni OR registri Rd ← Rd ⊕ Rr Z,N,V 1
COM Rd Eno dopolnilo Rd ← 0xFF − Rd Z,C,N,V 1
NEG Rd Komplement dveh Rd ← 0x00 − Rd Z,C,N,V,H 1
SBR Rd,K Nastavite bit(e) v register Rd ← Rd v K Z,N,V 1
CBR Rd,K Počisti bit(e) v registru Rd ← Rd ∙ (0xFF – K) Z,N,V 1
INC Rd Prirastek Rd ← Rd + 1 Z,N,V 1
DEC Rd Zmanjšanje Rd ← Rd − 1 Z,N,V 1
TST Rd Preizkusite nič ali minus Rd ← Rd ∙ Rd Z,N,V 1
CLR Rd Počisti register Rd ← Rd ⊕ Rd Z,N,V 1
SER Rd Nastavite Register Rd ← 0xFF Noben 1
NAVODILA PODRUŽNICE
RJMP k Relativni skok PC ← PC + k + 1 Noben 2
IJMP Posredni skok na (Z) PC ← Z Noben 2
KLIC k Relativni klic podprograma PC ← PC + k + 1 Noben 3
ICALL Posredni klic na (Z) PC ← Z Noben 3
RET Vrnitev podprograma PC ← STAK Noben 4
RETI Prekinitev Vrnitev PC ← STAK I 4
CPSE Rd,Rr Primerjaj, preskoči, če je enako če (Rd = Rr) PC ← PC + 2 ali 3 Noben 1/2/3
CP Rd,Rr Primerjaj Rd − Rr Z, N, V, C, H 1
CNK Rd,Rr Primerjaj s Carryjem Rd − Rr − C Z, N, V, C, H 1
CPI Rd,K Primerjaj Register s takojšnjim Rd − K Z, N, V, C, H 1
SBRC Rr, b Preskoči, če je bit v registru izbrisan če (Rr(b)=0) PC ← PC + 2 ali 3 Noben 1/2/3
SBRS Rr, b Preskoči, če je bit v registru nastavljen če (Rr(b)=1) PC ← PC + 2 ali 3 Noben 1/2/3
SBIC P, b Preskoči, če je bit v V/I registru počiščen če (P(b)=0) PC ← PC + 2 ali 3 Noben 1/2/3
SBIS P, b Preskoči, če je bit v V/I registru nastavljen če (P(b)=1) PC ← PC + 2 ali 3 Noben 1/2/3
BRBS s, k Veja, če je nastavljena zastavica stanja če je (SREG(s) = 1), potem PC←PC+k + 1 Noben 1/2
BRBC s, k Razvej, če je zastavica statusa počiščena če je (SREG(s) = 0), potem PC←PC+k + 1 Noben 1/2
BREQ k Podružnica, če je enaka če je (Z = 1), potem PC ← PC + k + 1 Noben 1/2
BRNE k Branch if Not Equal če je (Z = 0), potem PC ← PC + k + 1 Noben 1/2
BRCS k Branch if Carry Set če je (C = 1), potem PC ← PC + k + 1 Noben 1/2
BRCC k Branch if Carry Cleared če je (C = 0), potem PC ← PC + k + 1 Noben 1/2
BRSH k Podružnica, če je ista ali višja če je (C = 0), potem PC ← PC + k + 1 Noben 1/2
BRLO k Podružnica nižje če je (C = 1), potem PC ← PC + k + 1 Noben 1/2
BRMI k Podružnica če Minus če je (N = 1), potem PC ← PC + k + 1 Noben 1/2
BRPL k Podružnica če Plus če je (N = 0), potem PC ← PC + k + 1 Noben 1/2
BRGE k Veja, če je večja ali enaka, s predznakom če je (N ⊕ V= 0), potem PC ← PC + k + 1 Noben 1/2
BRLT k Podružnica, če je manjša od nič, podpisano če je (N ⊕ V= 1), potem PC ← PC + k + 1 Noben 1/2
BRHS k Branch if Half Carry Flag Set če je (H = 1), potem PC ← PC + k + 1 Noben 1/2
BRHC k Odcep, če je zastavica Half Carry počiščena če je (H = 0), potem PC ← PC + k + 1 Noben 1/2
BRTS k Veja, če je nastavljena zastavica T če (T = 1), potem PC ← PC + k + 1 Noben 1/2
BRTC k Odcep, če je zastavica T počiščena če (T = 0), potem PC ← PC + k + 1 Noben 1/2
BRVS k Razvejajte, če je nastavljena zastavica prelivanja če (V = 1), potem PC ← PC + k + 1 Noben 1/2
BRVC k Razvejajte, če je zastavica za prelivanje počiščena če (V = 0), potem PC ← PC + k + 1 Noben 1/2
BRIE k Razvej, če je prekinitev omogočena če ( I = 1), potem PC ← PC + k + 1 Noben 1/2
NEVESTA k Razvej, če je prekinitev onemogočena če ( I = 0), potem PC ← PC + k + 1 Noben 1/2
BIT IN NAVODILA ZA BITNI TEST
SBI P,b Nastavite bit v V/I registru I/O(P,b) ← 1 Noben 2
CBI P,b Počisti bit v V/I registru I/O(P,b) ← 0 Noben 2
LSL Rd Logičen premik v levo Rd(n+1) ← Rd(n), Rd(0) ← 0 Z,C,N,V 1
LSR Rd Logični premik v desno Rd(n) ← Rd(n+1), Rd(7) ← 0 Z,C,N,V 1
VLOGA Rd Vrtenje v levo skozi prenašanje Rd(0)←C,Rd(n+1) ← Rd(n),C←Rd(7) Z,C,N,V 1
ROR Rd Rotate Right Through Carry Rd(7)←C,Rd(n) ← Rd(n+1),C←Rd(0) Z,C,N,V 1
ASR Rd Aritmetični premik v desno Rd(n) ← Rd(n+1), n=0..6 Z,C,N,V 1
Mnemotehnika Operandi Opis Delovanje Zastave #Ure
ZAMENJAVA Rd Zamenjaj grickalice Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) Noben 1
BSET s Set zastavic SREG(i) ← 1 SREG(i) 1
BCLR s Zastavica Počisti SREG(i) ← 0 SREG(i) 1
BST Rr, b Bit Store iz registra v T T ← Rr(b) T 1
BLD Rd, b Bitna obremenitev od T do registra Rd(b) ← T Noben 1
SEC Set Carry C ← 1 C 1
CLC Clear Carry C ← 0 C 1
SEN Nastavite negativno zastavico N ← 1 N 1
CLN Počisti negativno zastavico N ← 0 N 1
SEZ Nastavite ničelno zastavico Ž ← 1 Z 1
CLZ Počisti ničelno zastavico Ž ← 0 Z 1
SEI Omogoči globalno prekinitev Jaz ← 1 I 1
CLI Onemogoči globalno prekinitev Jaz ← 0 I 1
SES Nastavite podpisano preskusno zastavo S ← 1 S 1
CLS Jasno podpisana testna zastavica S ← 0 S 1
SEV Set Twos Complement Overflow. V ← 1 V 1
CLV Clear Twos Complement Overflow V ← 0 V 1
NASTAVI Nastavite T v SREG T ← 1 T 1
CLT Počisti T v SREG T ← 0 T 1
SEH Nastavite zastavico za polovični prenos v SREG H ← 1 H 1
CLH Počisti zastavico za polovični prenos v SREG H ← 0 H 1
NAVODILA ZA PRENOS PODATKOV
MOV Rd, Rr Premikanje med registri Rd ← Rr Noben 1
MOVW Rd, Rr Kopiraj Register Word Rd+1:Rd ← Rr+1:Rr Noben 1
LDI Rd, K Naloži takoj Rd ← K Noben 1
LD Rd, X Naloži posredno Rd ← (X) Noben 2
LD Rd, X+ Naloži posredno in post-inc. Rd ← (X), X ← X + 1 Noben 2
LD Rd, – X Naloži posredno in pred dec. X ← X – 1, Rd ← (X) Noben 2
LD Rd, Y Naloži posredno Rd ← (Y) Noben 2
LD Rd, Y+ Naloži posredno in post-inc. Rd ← (Y), Y ← Y + 1 Noben 2
LD Rd, – Y Naloži posredno in pred dec. Y ← Y – 1, Rd ← (Y) Noben 2
LDD Rd,Y+q Posredna obremenitev s premikom Rd ← (Y + q) Noben 2
LD Rd, Z Naloži posredno Rd ← (Z) Noben 2
LD Rd, Z+ Naloži posredno in post-inc. Rd ← (Z), Z ← Z+1 Noben 2
LD Rd, -Z Naloži posredno in pred dec. Z ← Z – 1, Rd ← (Z) Noben 2
LDD Rd, Z+q Posredna obremenitev s premikom Rd ← (Z + q) Noben 2
LDS Rd, k Nalaganje neposredno iz SRAM-a Rd ← (k) Noben 2
ST X, Rr Store Indirect (X) ← Rr Noben 2
ST X+, Rr Store Indirect in Post-Inc. (X) ← Rr, X ← X + 1 Noben 2
ST – X, Rr Store Indirect in Pre-Dec. X ← X – 1, (X) ← Rr Noben 2
ST Y, Rr Store Indirect (Y) ← Rr Noben 2
ST Y+, Rr Store Indirect in Post-Inc. (Y) ← Rr, Y ← Y + 1 Noben 2
ST – Y, Rr Store Indirect in Pre-Dec. Y ← Y – 1, (Y) ← Rr Noben 2
STD Y+q,Rr Posredno shranjevanje s premikom (Y + q) ← Rr Noben 2
ST Z, Rr Store Indirect (Z) ← Rr Noben 2
ST Z+, Rr Store Indirect in Post-Inc. (Z) ← Rr, Z ← Z + 1 Noben 2
ST -Z, Rr Store Indirect in Pre-Dec. Z ← Z – 1, (Z) ← Rr Noben 2
STD Z+q,Rr Posredno shranjevanje s premikom (Z + q) ← Rr Noben 2
STS k, Rr Shranjujte neposredno v SRAM (k) ← Rr Noben 2
LPM Naloži programski pomnilnik R0 ← (Z) Noben 3
LPM Rd, Z Naloži programski pomnilnik Rd ← (Z) Noben 3
LPM Rd, Z+ Load Program Memory in Post-Inc Rd ← (Z), Z ← Z+1 Noben 3
SPM Shranite programski pomnilnik (z) ← R1:R0 Noben
IN Rd, P V pristanišču Rd ← P Noben 1
VEN P, Rr Out Port P ← Rr Noben 1
POTISNI Rr Potisni register na sklad STAK ← Rr Noben 2
POP Rd Pop Register iz sklada Rd ← STOK Noben 2
NAVODILA ZA NADZOR MCU
NOP Brez operacije Noben 1
SPANJE spi (glejte poseben opis za funkcijo mirovanja) Noben 1
WDR Watchdog Reset (glejte poseben opis za WDR/Timer) Noben 1
BREAK Zlom
Hitrost (MHz) (1) Dobava Voltage (V) Temperaturno območje Paket (2) Koda za naročanje (3)
10 1.8 – 5.5 Industrijski

(-40 ° C do +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 Industrijski

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

Opombe: 1. Za hitrost v primerjavi s ponudbo voltage, glejte razdelek 21.3 “Hitrost” na strani 163.

Vse embalaže so brez Pb, brez halogenidov in popolnoma zelene ter so v skladu z evropsko direktivo o omejevanju nevarnih snovi (RoHS).

Indikatorji kod

H: svinčeni zaključek NiPdAu

U: mat pločevina

R: trak in kolut

Te naprave so lahko dobavljive tudi v obliki rezin. Za podrobne informacije o naročanju in najmanjše količine se obrnite na vašo lokalno prodajno pisarno Atmel.

Napaka

Napaka ATtiny25

Revizijsko pismo v tem razdelku se nanaša na revizijo naprave ATtiny25.

Rev. D – F

Ni znanih napak.

Rev B – C

Branje EEPROM-a morda ne uspe pri nizki volumnu napajanjatage / nizka taktna frekvenca

Branje EEPROM-a morda ne uspe pri nizki volumnu napajanjatage / nizka taktna frekvenca

Poskus branja EEPROM-a pri nizkih taktnih frekvencah in/ali nizki volumni napajanjatage lahko povzroči neveljavne podatke.

Rešitev težave/rešitev

Ne uporabljajte EEPROM-a, ko je taktna frekvenca pod 1MHz in voltage je pod 2V. Če delovne frekvence ni mogoče dvigniti nad 1MHz, potem napajalno voltage mora biti več kot 2V. Podobno, če dobava voltage ne more biti dvignjen nad 2 V, potem mora biti delovna frekvenca večja od 1 MHz.

Znano je, da je ta lastnost odvisna od temperature, vendar ni bila opredeljena. Smernice so podane samo za sobno temperaturo.

Rev A.

Ne sampLED.

Napaka ATtiny45

Revizijsko pismo v tem razdelku se nanaša na revizijo naprave ATtiny45.

Rev F – G

Ni znanih napak

Rev D – E

Branje EEPROM-a morda ne uspe pri nizki volumnu napajanjatage / nizka taktna frekvenca

Branje EEPROM-a morda ne uspe pri nizki volumnu napajanjatage / nizka taktna frekvenca

Poskus branja EEPROM-a pri nizkih taktnih frekvencah in/ali nizki volumni napajanjatage lahko povzroči neveljavne podatke.

Rešitev težave/rešitev

Ne uporabljajte EEPROM-a, ko je taktna frekvenca pod 1MHz in voltage je pod 2V. Če delovne frekvence ni mogoče dvigniti nad 1MHz, potem napajalno voltage mora biti več kot 2V. Podobno, če dobava voltage ne more biti dvignjen nad 2 V, potem mora biti delovna frekvenca večja od 1 MHz.

Znano je, da je ta lastnost odvisna od temperature, vendar ni bila opredeljena. Smernice so podane samo za sobno temperaturo.

Rev B – C

PLL se ne zaklepa

EEPROM, prebran iz kode aplikacije, ne deluje v Lock Bit Mode 3

Branje EEPROM-a morda ne uspe pri nizki volumnu napajanjatage / nizka taktna frekvenca

Generacija izhoda PWM števca 1 na OC1B-XOC1B ne deluje pravilno

PLL se ne zaklepa

Pri frekvencah pod 6.0 ​​MHz se PLL ne bo zaklenil

Popravek težave/rešitev

Ko uporabljate PLL, zaženite pri 6.0 MHz ali več.

EEPROM, prebran iz kode aplikacije, ne deluje v Lock Bit Mode 3

Ko sta bita za zaklepanje pomnilnika LB2 in LB1 programirana na način 3, branje EEPROM-a ne deluje iz kode aplikacije.

Popravek/obhod težave

Ne nastavite Lock Bit Protection Mode 3, ko mora koda aplikacije brati iz EEPROM-a.

Branje EEPROM-a morda ne uspe pri nizki volumnu napajanjatage / nizka taktna frekvenca

Poskus branja EEPROM-a pri nizkih taktnih frekvencah in/ali nizki volumni napajanjatage lahko povzroči neveljavne podatke.

Rešitev težave/rešitev

Ne uporabljajte EEPROM-a, ko je taktna frekvenca pod 1MHz in voltage je pod 2V. Če delovne frekvence ni mogoče dvigniti nad 1MHz, potem napajalno voltage mora biti več kot 2V. Podobno, če dobava voltage ne more biti dvignjen nad 2 V, potem mora biti delovna frekvenca večja od 1 MHz.

Znano je, da je ta lastnost odvisna od temperature, vendar ni bila opredeljena. Smernice so podane samo za sobno temperaturo.

Generacija izhoda števca časa 1 PWM na OC1B – XOC1B ne deluje pravilno

Timer Counter1 PWM izhod OC1B-XOC1B ne deluje pravilno. Samo v primeru, ko sta krmilna bita COM1B1 in COM1B0 v istem načinu kot COM1A1 oziroma COM1A0, izhod OC1B-XOC1B deluje pravilno.

Popravek/obhod težave

Edina rešitev je uporaba iste nastavitve nadzora na kontrolnih bitih COM1A[1:0] in COM1B[1:0], glejte tabelo 14-4 v podatkovnem listu. Težava je bila odpravljena za Tiny45 rev D.

Rev A.

Previsoka poraba energije pri izklopu

DebugWIRE izgubi komunikacijo, ko enkrat stopi v prekinitve

PLL se ne zaklepa

EEPROM, prebran iz kode aplikacije, ne deluje v Lock Bit Mode 3

Branje EEPROM-a morda ne uspe pri nizki volumnu napajanjatage / nizka taktna frekvenca

Previsoka poraba energije pri izklopu

Tri situacije bodo vodile do previsoke porabe energije pri izklopu. To so:

Zunanja ura je izbrana z varovalkami, vendar je I/O PORT še vedno omogočen kot izhod.

EEPROM se prebere pred izklopom.

VCC je 4.5 voltov ali več.

Zavrnitev odgovornosti: informacije v tem dokumentu so na voljo v povezavi z izdelki Atmel. S tem dokumentom ali v povezavi s prodajo izdelkov Atmel ni podeljena nobena licenca, izrecna ali implicitna, z ustavitvijo ali kako drugače, za katero koli pravico do intelektualne lastnine. RAZEN KOT JE DOLOČENO V PRODAJNIH POGOJIH ATMEL NA STRANI ATMEL WEBSPLETNO MESTO, ATMEL NE PREVZEMA NOBENE ODGOVORNOSTI IN ZAVRAČA KAKRŠNE KOLI IZRECNE, NAZNAČENE ALI ZAKONSKE GARANCIJE V ZVEZI S SVOJIM IZDELKOM, VENDAR NE OMEJENO NA NAZNAČENO GARANCIJO PRIMERNOSTI ZA PRODAJO, PRIMERNOST ZA DOLOČEN NAMEN ALI NEKRŠITEV . ATMEL V NOBENEM PRIMERU NI ODGOVOREN ZA NEPOSREDNO, POSREDNO, POSLEDIČNO, POSEBNO ALI NAKLJUČNO ŠKODO (VKLJUČNO Z, BREZ OMEJITVE, ŠKODO ZA IZGUBO IN DOBIČEK, PREKINITEV POSLOVANJA ALI IZGUBO INFORMACIJ), KI IZHAJA ZARADI UPORABE ALI NESPOSOBNOSTI UPORABE TEGA DOKUMENTA, TUDI ČE JE BIL ATMEL OBVEŠČEN O MOŽNOSTI TAKŠNE ŠKODE.

Atmel ne daje nobenih zagotovil ali jamstev v zvezi s točnostjo ali popolnostjo vsebine tega dokumenta in si pridržuje pravico do sprememb specifikacij in opisov izdelkov kadar koli brez predhodnega obvestila. Atmel se ne zavezuje, da bo posodobil informacije, ki jih vsebuje. Razen če ni posebej določeno drugače, izdelki Atmel niso primerni za avtomobilske aplikacije in se v njih ne smejo uporabljati. Izdelki Atmel niso namenjeni, odobreni ali zajamčeni za uporabo kot komponente v aplikacijah, ki so namenjene podpori ali ohranjanju življenja.

Reference

Pustite komentar

Vaš elektronski naslov ne bo objavljen. Obvezna polja so označena *