Atmel 8-bitni AVR mikrokontroler s 2/4/8K bajta programabilnim Flashom unutar sustava
Značajke
- AVR® 8-bitni mikrokontroler visokih performansi male snage
- Napredna RISC arhitektura
- 120 snažnih uputa - Izvođenje većine ciklusa jednog sata
- 32 x 8 radna registra opće namjene
- Potpuno statična operacija
- Trajna memorija programa i podataka
- 2/4 / 8K bajta Flash memorije programa koji se može programirati u sustavu
- Izdržljivost: 10,000 XNUMX ciklusa pisanja/brisanja
- 128/256/512 bajtova EEPROM koji se može programirati u sustavu
- Izdržljivost: 100,000 XNUMX ciklusa pisanja/brisanja
- 128/256/512 Bytes Interni SRAM
- Programska brava za samoprogramiranje Flash programa i EEPROM sigurnost podataka
Periferne značajke
- 8-bitni timer / brojač s uređajem za predskaliranje i dva PWM kanala
- 8-bitni tajmer / brojač velike brzine s odvojenim uređajem za pretcjenjivanje
- 2 visokofrekventna PWM izlaza s odvojenim registrima za usporedbu izlaza
- Programabilni generator mrtvog vremena
- USI - Univerzalno serijsko sučelje s detektorom stanja pokretanja
- 10-bitni ADC
4 jednokračna kanala
2 diferencijalna para ADC kanala s programabilnim pojačanjem (1x, 20x)
Mjerenje temperature
Programirani nadzorni sat s odvojenim oscilatorom na čipu
Ugrađena analogna usporednica na čipu
Posebne značajke mikrokontrolera
debugWIRE sustav za uklanjanje pogrešaka na čipu
Mogućnost programiranja u sustavu putem SPI porta
Vanjski i unutarnji izvori prekida
Neaktivni režim rada u mirovanju, ADC smanjenje buke i isključivanje
Poboljšani krug za resetiranje pri uključivanju
Programabilni krug za otkrivanje smeđeg izlaza
Unutarnji kalibrirani oscilator
Ulazno-izlazni i paketi
Šest programabilnih I / O linija
8-pinski PDIP, 8-pinski SOIC, 20 jastučića QFN / MLF i 8-pinski TSSOP (samo ATtiny45 / V)
Operativni svtage
- 1.8 - 5.5 V za ATtiny25V / 45V / 85V
- 2.7 - 5.5 V za ATtiny25 / 45/85
Ocjena brzine
- ATtiny25V / 45V / 85V: 0 - 4 MHz @ 1.8 - 5.5 V, 0 - 10 MHz @ 2.7 - 5.5 V
- ATtiny25 / 45/85: 0 - 10 MHz pri 2.7 - 5.5 V, 0 - 20 MHz pri 4.5 - 5.5 V
Raspon industrijskih temperatura
Niska potrošnja energije
Aktivni način rada:
1 MHz, 1.8 V: 300 uA
Način isključivanja:
Konfiguracije pinova
Pinout ATtiny25 / 45/85
Opisi pribadača
VCC: Supply svtage.
GND: Uzemljenje.
Priključak B (PB5:PB0): Priključak B je 6-bitni dvosmjerni ulazno-izlazni priključak s unutarnjim otpornicima (odabranim za svaki bit). Izlazni međuspremnici priključka B imaju simetrične pogonske karakteristike s visokom sposobnošću ponora i izvora. Kao ulazi, pinovi priključka B koji su eksterno povučeni nisko će biti izvor struje ako se aktiviraju pull-up otpornici. Pinovi priključka B imaju trostruko stanje kada uvjet resetiranja postane aktivan, čak i ako sat ne radi.
Luka B također služi funkcijama različitih posebnosti ATtiny25 / 45/85 kako su navedene
Na ATtiny25, programibilni I / O priključci PB3 i PB4 (pinovi 2 i 3) zamjenjuju se u načinu kompatibilnosti ATtiny15 radi podrške za povratnu kompatibilnost s ATtiny15.
RESETIRANJE: Resetiranje ulaza. Niska razina na ovom pinu dulja od minimalne duljine impulsa će generirati resetiranje, čak i ako sat ne radi i pod uvjetom da pin za resetiranje nije onemogućen. Minimalna duljina impulsa navedena je u Tablica 21-4 na stranici 165. Za kraći impuls nije zajamčeno da će generirati reset.
Igla za resetiranje može se koristiti i kao (slaba) I / O pinova.
Nadview
ATtiny25 / 45/85 je CMOS-ov 8-bitni mikrokontroler male snage, zasnovan na AVR poboljšanoj RISC arhitekturi. Izvršavajući moćne upute u jednom taktu, ATtiny25 / 45/85 postiže protok koji se približava 1 MIPS po MHz, omogućavajući dizajneru sustava da optimizira potrošnju energije u odnosu na brzinu obrade.
Blok dijagram
Jezgra AVR kombinira bogat set uputa s 32 radna registra opće namjene. Svih 32 registra izravno su povezani s jedinicom aritmetičke logike (ALU), što omogućava pristup dvama neovisnim registrima u jednoj jedinoj naredbi koja se izvršava u jednom taktu. Rezultirajuća arhitektura učinkovitija je kodom, a postiže propusnost do deset puta bržu od uobičajenih CISC mikrokontrolera.
ATtiny25 / 45/85 pruža sljedeće značajke: 2/4 / 8K bajtova programabilnog bljeskalice u sustavu, 128/256/512 bajtova EEPROM-a, 128/256/256 bajtova SRAM-a, 6 I / O linija opće namjene, 32 općenito namjenski radni registri, jedan 8-bitni timer / brojač s načinima usporedbe, jedan 8-bitni brzi timer / brojač, univerzalno serijsko sučelje, unutarnji i vanjski prekidi, 4-kanalni, 10-bitni ADC, programabilni čuvar vremena s unutarnjim Oscilator i tri načina uštede energije koja se mogu odabrati prema softveru. U načinu mirovanja zaustavlja se CPU, a istovremeno omogućuje da SRAM, tajmer / brojač, ADC, analogni komparator i sustav prekida nastave funkcionirati. Način isključivanja sprema sadržaj registra, onemogućavajući sve funkcije čipa do sljedećeg prekida ili resetiranja hardvera. ADC način smanjenja šuma zaustavlja CPU i sve I / O module osim ADC-a, kako bi se smanjio šum prebacivanja tijekom ADC konverzija.
Uređaj je proizveden korištenjem Atmelove tehnologije hlapljive memorije velike gustoće. Ugrađeni ISP Flash omogućuje programiranu memoriju da se ponovo programira u sustavu putem serijskog sučelja SPI, pomoću konvencionalnog nehlapnog memorijskog programera ili pomoću čip-a za pokretanje na čipu koji radi na jezgri AVR-a.
ATtiny25 / 45/85 AVR podržan je s kompletnim paketom alata za razvoj programa i sustava, uključujući: C kompajlere, Macro Assemblers, program za pronalaženje pogrešaka / simulatore i komplete za procjenu.
O Resursima
Sveobuhvatan set razvojnih alata, napomena o aplikacijama i tablica podataka dostupan je za preuzimanje http://www.atmel.com/avr.
Kod npramples
Ova dokumentacija sadrži jednostavan kod npramplekcije koje ukratko pokazuju kako koristiti različite dijelove uređaja. Ovi kodovi npramples pretpostavlja da je zaglavlje specifično za dio file uključen je prije kompilacije. Imajte na umu da svi dobavljači C prevoditelja ne uključuju definicije bitova u zaglavlje files i rukovanje prekidima u C-u ovisi o prevodiocu. Molimo potvrdite s dokumentacijom C kompajlera za više pojedinosti.
Za U / I registre smještene na proširenoj I / O karti, upute "IN", "OUT", "SBIS", "SBIC", "CBI" i "SBI" moraju se zamijeniti uputama koje omogućuju pristup proširenom I / O. To obično znači "LDS" i "STS" u kombinaciji sa "SBRS", "SBRC", "SBR" i "CBR". Imajte na umu da svi AVR uređaji ne sadrže proširenu I / O kartu.
Kapacitivni senzor dodira
Atmel QTouch Library pruža jednostavno rješenje za sučelja osjetljiva na dodir na Atmel AVR mikrokontrolerima. QTouch Library uključuje podršku za QTouch® i QMatrix® metode akvizicije.
Detekcija dodira lako se dodaje u bilo koju aplikaciju povezivanjem knjižnice QTouch i korištenjem programskog sučelja za programiranje (API) knjižnice za definiranje dodirnih kanala i senzora. Zatim aplikacija poziva API za dohvaćanje podataka o kanalu i određivanje stanja osjetnika dodira.
QTouch knjižnica je besplatna i može se preuzeti s Atmela webmjesto. Za više informacija i pojedinosti o implementaciji pogledajte Korisnički vodič za knjižnicu QTouch – također dostupan kod Atmela webmjesto.
Zadržavanje podataka
Rezultati kvalifikacije pouzdanosti pokazuju da je predviđena stopa neuspjeha zadržavanja podataka mnogo manja od 1 PPM tijekom 20 godina na 85 ° C ili 100 godina na 25 ° C.
AVR CPU jezgra
Uvod
Ovaj odjeljak govori o arhitekturi jezgre AVR općenito. Glavna funkcija CPU jezgre je osigurati ispravno izvršavanje programa. CPU stoga mora biti u mogućnosti pristupiti memorijama, izvoditi izračune, kontrolirati periferne uređaje i upravljati prekidima.
Arhitektonski prekoview
Kako bi maksimalizirao performanse i paralelizam, AVR koristi arhitekturu Harvard - s odvojenim memorijama i sabirnicama za program i podatke. Upute u memoriji programa izvršavaju se cjevovodom s jednom razinom. Dok se izvršava jedna naredba, sljedeća se naredba unaprijed dohvaća iz memorije programa. Ovaj koncept omogućuje izvršavanje uputa u svakom taktu. Programska memorija je ugrađena Flash memorija u sustavu.
Registar brzog pristupa File sadrži 32 x 8-bitna radna registra opće namjene s jednim pristupnim vremenom takta. To omogućuje rad aritmetičko-logičke jedinice (ALU) u jednom ciklusu. U tipičnoj ALU operaciji, dva operanda izlaze iz registra File, operacija se izvršava, a rezultat se pohranjuje natrag u Registar File- u jednom ciklusu sata.
Šest od 32 registra mogu se koristiti kao tri 16-bitna indirektna pokazivača registara adresa za adresiranje prostora podataka - što omogućuje učinkovite izračune adresa. Jedan od ovih pokazivača adresa može se koristiti i kao pokazivač adrese za traženje tablica u memoriji Flash programa. Ovi dodani registri funkcija su 16-bitni X-, Y- i Z-registar, opisani kasnije u ovom odjeljku.
ALU podržava aritmetičke i logičke operacije između registara ili između konstante i registra. Operacije pojedinačnog registra mogu se izvršiti i u ALU. Nakon aritmetičke operacije, Statusni registar se ažurira tako da odražava informacije o rezultatu operacije.
Tok programa omogućen je uvjetnim i bezuvjetnim uputama za preskakanje i pozivanje, koje mogu izravno adresirati cijeli adresni prostor. Većina AVR uputa ima jedan 16-bitni format riječi, ali postoje i 32-bitne upute.
Tijekom prekida i poziva potprograma, brojač programa za povratak (PC) pohranjuje se na stog. Sklop je učinkovito dodijeljen u općenitim podacima SRAM-a, pa je stoga veličina snopa ograničena samo ukupnom veličinom SRAM-a i upotrebom SRAM-a. Svi korisnički programi moraju inicijalizirati SP u rutini Resetiranje (prije izvršavanja potprograma ili prekida). Pokazivač sloga (SP) dostupan je za čitanje / pisanje u I / O prostoru. Podaci SRAM-u mogu se lako pristupiti kroz pet različitih načina adresiranja podržanih u AVR arhitekturi.
Memorijski prostori u AVR arhitekturi su linearne i redovite memorijske karte.
Fleksibilni modul prekida ima svoje kontrolne registre u I / O prostoru s dodatnim bitom za omogućavanje globalnog prekida u Registru statusa. Svi prekidi imaju zasebni Vektor prekida u tablici Vektor prekida. Prekidi imaju prioritet u skladu s njihovim položajem Vektor prekida. Što je niža adresa vektora prekida, to je veći prioritet.
I/O memorijski prostor sadrži 64 adrese za CPU periferne funkcije kao što su kontrolni registri, SPI i druge I/O funkcije. I/O memoriji se može pristupiti izravno ili kao lokacijama podatkovnog prostora nakon onih u registru. File, 0x20 – 0x5F.
ALU - Aritmetička logička jedinica
AVR ALU visokih performansi djeluje u izravnoj vezi sa svih 32 radna registra opće namjene. Unutar jednog takta izvršavaju se aritmetičke operacije između registara opće namjene ili između registra i neposrednog. ALU operacije podijeljene su u tri glavne kategorije - aritmetičke, logičke i bit-funkcije. Neke implementacije arhitekture također pružaju snažan množitelj koji podržava množenje s potpisom / nepotpisom i razlomljeni format. Pogledajte odjeljak "Set uputa" za detaljan opis.
Registar statusa
Registar statusa sadrži informacije o rezultatu najnovije izvršene aritmetičke upute. Te se informacije mogu koristiti za promjenu tijeka programa radi izvođenja uvjetnih operacija. Imajte na umu da se Statusni status ažurira nakon svih ALU operacija, kako je navedeno u Referenci skupa uputa. To će u mnogim slučajevima ukloniti potrebu za korištenjem posebnih uputa za usporedbu, što rezultira bržim i kompaktnijim kodom.
Registar statusa ne pohranjuje se automatski prilikom unosa rutine prekida i ne vraća se kad se vraća s prekida. To mora riješiti softver.
SREG - AVR statusni registar
AVR statusni registar - SREG - definiran je kao:
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3F | I | T | H | S | V | N | Z | C | SREG |
Čitanje/Pisanje | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - I: Omogućeno globalno prekidanje
Za omogućavanje prekida mora se postaviti bit globalnog omogućavanja prekida. Pojedinačna kontrola omogućavanja prekida zatim se izvodi u zasebnim kontrolnim registrima. Ako je Globalni registar za omogućavanje prekida obrisan, niti jedan od prekida nije omogućen neovisno o pojedinačnim postavkama omogućavanja prekida. I-bit se hardverski briše nakon što je došlo do prekida, a postavlja ga RETI uputa da omogući naknadne prekide. I-bit aplikacija također može postaviti i obrisati pomoću SEI i CLI uputa, kako je opisano u uputama za skup uputa.
Bit 6 - T: Pohrana za kopiranje bitova
Upute za kopiranje bita BLD (Bit LoaD) i BST (Bit STore) koriste T-bit kao izvor ili odredište za upravljani bit. Malo iz registra u Registru File može se kopirati u T pomoću BST instrukcije, a bit u T može se kopirati u bit u registru u registru File prema BLD uputama.
Bit 5 - H: Zastavica s pola nošenja
Oznaka Half Carry H označava Half Carry u nekim aritmetičkim operacijama. Half Carry je koristan u BCD aritmetici. Pogledajte “Opis seta uputa” za detaljne informacije.
Bit 4 – S: Bit predznaka, S = N ⊕ V
S-bit je uvijek ekskluzivni ili između negativne zastavice N i zastave prelijevanja komplementa Dvoje. Pogledajte "Opis skupa uputa" za detaljne informacije.
Bit 3 - V: Oznaka prelijevanja komplementa Two
Oznaka preljeva komplementa Dvoje podržava aritmetiku komplementa dvojke. Pogledajte “Opis seta uputa” za detaljne informacije.
Bit 2 - N: Negativna zastavica
Negativna zastavica N označava negativan rezultat u aritmetičkoj ili logičkoj operaciji. Pogledajte “Opis seta uputa” za detaljne informacije.
Bit 1 - Z: Nulta zastavica
Nulta zastavica Z označava nulti rezultat u aritmetičkoj ili logičkoj operaciji. Pogledajte “Opis seta uputa” za detaljne informacije.
Bit 0 - C: Nosi zastavicu
Oznaka Carry C označava prijenos u aritmetičkoj ili logičkoj operaciji. Pogledajte “Opis seta uputa” za detaljne informacije.
Registar opće namjene File
Registar File optimiziran je za AVR Enhanced RISC skup instrukcija. Kako bi se postigle potrebne performanse i fleksibilnost, Registar podržava sljedeće ulazno/izlazne sheme File:
Jedan 8-bitni izlazni operand i jedan 8-bitni ulazni rezultat
Dva 8-bitna izlazna operanda i jedan 8-bitni ulazni rezultat
Dva 8-bitna izlazna operanda i jedan 16-bitni ulazni rezultat
Jedan 16-bitni izlazni operand i jedan 16-bitni ulazni rezultat
Slika 4-2 prikazuje strukturu 32 radna registra opće namjene u CPU-u.
Kao što je prikazano u Slika 4-2, svakom registru je također dodijeljena adresa memorije podataka, mapirajući ih izravno u prva 32 mjesta korisničkog podatkovnog prostora. Iako nije fizički implementirana kao SRAM lokacije, ova organizacija memorije pruža veliku fleksibilnost u pristupu registrima, budući da se registri pokazivača X, Y i Z mogu postaviti da indeksiraju bilo koji registar u file.Većina uputa koje djeluju na Registar File imaju izravan pristup svim registrima, a većina njih su instrukcije u jednom ciklusu.
X-registar, Y-registar i Z-registar
Registri R26..R31 imaju neke dodane funkcije za svoju opću namjenu. Ti su registri 16-bitni adresni pokazivači za neizravno adresiranje podatkovnog prostora. Tri registra neizravnih adresa X, Y i Z definirana su kako je opisano u Slika 4-3.
U različitim načinima adresiranja ovi adresni registri imaju funkcije kao fiksni pomak, automatski porast i automatski dekrement (za detalje pogledajte referencu skupa uputa).
Pokazivač naslaga
Stog se uglavnom koristi za pohranu privremenih podataka, za pohranu lokalnih varijabli i za pohranu povratnih adresa nakon prekida i poziva potprograma. Registar pokazivača stoga uvijek pokazuje na vrh stoga. Imajte na umu da se Stack implementira kako raste s većih memorijskih mjesta na niža memorijska mjesta. To podrazumijeva da naredba Stack PUSH smanjuje pokazivač stoga.
Pokazivač stoga pokazuje na područje SRAM stoga podataka gdje se nalaze stogovi potprograma i prekida. Ovaj prostor steka u podatkovnom SRAM-u program mora definirati prije izvođenja bilo kakvih poziva potprograma ili omogućavanja prekida. Pokazivač sloga mora biti postavljen na točku iznad 0x60. Pokazivač stoga smanjuje se za jedan kada se podaci guraju na stog s naredbom PUSH, a smanjuje za dva kad se povratna adresa gurne na stek pozivom ili prekidom potprograma. Pokazivač stoga povećava se za jedan kada se podaci iskaču iz stoga s POP naredbom, a povećava se za dva kada se podaci iskaču iz stoga s povratkom iz potprograma RET ili povratom iz prekida RETI.
Pokazivač AVR stacka implementiran je kao dva 8-bitna registra u I / O prostoru. Broj stvarno korištenih bitova ovisi o implementaciji. Imajte na umu da je podatkovni prostor u nekim implementacijama AVR arhitekture toliko malen da je potreban samo SPL. U tom slučaju, SPH registar neće biti prisutan.
SPH i SPL - Registar pokazivača stoga
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 | ||
Čitanje/Pisanje | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Čitanje/Pisanje | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Početna vrijednost | RAMENDA | RAMENDA | RAMENDA | RAMENDA | RAMENDA | RAMENDA | RAMENDA | RAMENDA | |
Početna vrijednost | RAMENDA | RAMENDA | RAMENDA | RAMENDA | RAMENDA | RAMENDA | RAMENDA | RAMENDA |
Vrijeme izvršenja upute
Ovaj odjeljak opisuje opće koncepte vremena pristupa za izvođenje instrukcija. AVR CPU pokreće CPU takt clkCPU, izravno generiran iz odabranog izvora takta za čip. Ne koristi se unutarnja podjela sata.
Slika 4-4 prikazuje paralelna dohvaćanja instrukcija i izvršenja instrukcija omogućena harvardskom arhitekturom i registrom brzog pristupa File koncept. Ovo je osnovni koncept cjevovoda za dobivanje do 1 MIPS po MHz s odgovarajućim jedinstvenim rezultatima za funkcije po cijeni, funkcije po taktu i funkcije po jedinici napajanja.
Slika 4-5. ALU rad s jednim ciklusom
Ponovno postavljanje i rukovanje prekidima
AVR nudi nekoliko različitih izvora prekida. Ovi prekidi i odvojeni vektor resetiranja imaju zasebni programski vektor u prostoru memorije programa. Svim prekidima dodijeljeni su pojedinačni bitovi za omogućavanje koji moraju biti napisani kao logički jedan zajedno s bitom za globalno prekidanje u Registru statusa kako bi se omogućio prekid.
Najniže adrese u programskom memorijskom prostoru prema zadanim su postavkama definirane kao resetiranje i prekid vektora. Cjelovit popis vektora prikazan je u “Prekidi” na stranici 48. Popis također određuje razine prioriteta različitih prekida. Što je adresa niža to je razina prioriteta veća. RESET ima najveći prioritet, a sljedeći je INT0 - Vanjski zahtjev za prekidom 0.
Kada se dogodi prekid, I-bit za globalno omogućavanje prekida se briše i svi su prekidi onemogućeni. Korisnički softver može upisati logički jedan u I-bit kako bi omogućio ugniježđena prekida. Svi omogućeni prekidi tada mogu prekinuti trenutnu rutinu prekida. I-bit se automatski postavlja kada se izvrši naredba Povratak s prekida - RETI.
U osnovi postoje dvije vrste prekida. Prvi tip pokreće događaj koji postavlja zastavicu prekida. Za ove prekide, programski brojač se vektorira na stvarni vektor prekida kako bi izvršio rutinu rukovanja prekidima, a hardver briše odgovarajuću zastavicu prekida. Oznake prekida također se mogu obrisati pisanjem logičke na položaje bitova zastave koje treba očistiti. Ako se dogodi uvjet prekida dok se briše odgovarajući bit za omogućavanje prekida, zastava prekida postavit će se i pamtiti dok se prekid ne omogući ili se zastavica ukloni softverom. Slično tome, ako se dogodi jedan ili više uvjeta prekida dok se briše bit za omogućavanje globalnog prekida, odgovarajuće zastavice (prekida) postavit će se i pamtiti sve dok se ne postavi bit za omogućavanje globalnog prekida, a zatim će se izvršavati prema redoslijedu prioriteta.
Druga vrsta prekida aktivirat će se sve dok je prisutno stanje prekida. Ovi prekidi nemaju nužno zastavice prekida. Ako uvjet prekida nestane prije nego što je prekid omogućen, prekid se neće aktivirati.
Kad AVR izađe iz prekida, uvijek će se vratiti u glavni program i izvršiti još jednu naredbu prije nego što se posluži bilo koji prekid na čekanju.
Imajte na umu da se Registar statusa ne pohranjuje automatski prilikom unosa rutine prekida, niti obnavlja kad se vraća iz rutine prekida. To mora riješiti softver.
Kada koristite CLI instrukciju za onemogućavanje prekida, prekidi će biti odmah onemogućeni. Nijedan prekid neće biti izvršen nakon CLI instrukcije, čak i ako se dogodi istovremeno s CLI naredbom. Sljedeći prampLe pokazuje kako se to može koristiti da se izbjegnu prekidi tijekom tempirane sekvence pisanja u EEPROM.
Montažni kodeks prample |
u r16, SREG; pohraniti SREG vrijednost
cli; onemogućiti prekide tijekom vremenskog niza sbi EECR, EEMPE ; započeti pisanje EEPROM-a sbi EECR, EEPE van SREG, r16; vratiti SREG vrijednost (I-bit) |
C kod nprample |
char cSREG;
cSREG = SREG; /* pohranjuje SREG vrijednost */ /* onemogući prekide tijekom vremenskog niza */ _CLI (); EECR |= (1< EECR | = (1 < SREG = cSREG; /* vrati SREG vrijednost (I-bit) */ |
Kada koristite SEI instrukciju za omogućavanje prekida, instrukcija koja slijedi SEI izvršit će se prije bilo kakvih prekida na čekanju, kao što je prikazano u ovom pr.ample.
Montažni kodeks prample |
sei ; postavite Global Interrupt Enable
spavati; ući u stanje mirovanja, čekajući prekid ; napomena: ući će u stanje spavanja prije bilo kojeg stanja na čekanju ; prekid (i) |
C kod nprample |
_SEI(); /* postavi globalno uključivanje prekida */
_SPAVATI(); /* ulazak u stanje mirovanja, čekanje prekida */ / * napomena: ući će u stanje mirovanja prije bilo kojih prekida na čekanju * / |
Vrijeme odziva na prekid
Odgovor izvršenja prekida za sve omogućene AVR prekide je najmanje četiri ciklusa takta. Nakon četiri ciklusa takta izvršava se programska vektorska adresa za stvarnu rutinu obrade prekida. Tijekom ovog razdoblja od četiri sata, programski brojač gurne se na stog. Vektor je obično skok na rutinu prekida i ovaj skok traje tri ciklusa sata. Ako se tijekom izvršavanja višecikličke naredbe dogodi prekid, ova se uputa dovršava prije nego što se prekid posluži. Ako se prekine kada je MCU u stanju mirovanja, vrijeme odgovora izvršavanja prekida povećava se za četiri ciklusa takta. Ovo povećanje dolazi uz vrijeme pokretanja iz odabranog načina mirovanja.
Povratak iz rutine upravljanja prekidima traje četiri ciklusa sata. Tijekom ova četiri ciklusa takta, programski brojač (dva bajta) iskače se iz stoga, pokazivač stoga povećava se za dva i postavlja I-bit u SREG-u.
AVR sjećanja
Ovaj odjeljak opisuje različita sjećanja u ATtiny25 / 45/85. Arhitektura AVR ima dva glavna memorijska prostora, Data memoriju i Programsku memoriju. Uz to, ATtiny25 / 45/85 ima EEPROM memoriju za pohranu podataka. Sva su tri memorijska prostora linearna i pravilna.
Re-programibilna memorija Flash programa u sustavu
ATtiny25 / 45/85 sadrži 2/4 / 8K bajtova ugrađene Flash memorije u sustavu, koja se može programirati u sustavu, za pohranu programa. Budući da su sve AVR upute široke 16 ili 32 bita, Flash je organiziran kao 1024/2048/4096 x 16.
Flash memorija ima izdržljivost od najmanje 10,000 25 ciklusa upisivanja / brisanja. Programski brojač ATtiny45 / 85/10 (PC) širok je 11/12/1024 bita, obraćajući se tako memorijskim mjestima programa 2048/4096/XNUMX. “Program memorije- ming “na stranici 147 sadrži detaljan opis serijskog preuzimanja Flash podataka pomoću SPI pinova.
Stalne tablice mogu se dodijeliti unutar cijelog adresnog prostora memorije programa (pogledajte opis uputa LPM - Load Program memory).
Slika 5-1. Mapa memorije programa
SRAM memorija podataka
Slika 5-2 pokazuje kako je organizirana ATtiny25 / 45/85 SRAM memorija.
Donje memorijske lokacije 224/352/607 podataka adresiraju oba registra File, I/O memoriju i SRAM internih podataka. Prva 32 mjesta adresiraju Registar File, sljedećih 64 mjesta je standardna I/O memorija, a posljednjih 128/256/512 lokacija adresiraju interni podatkovni SRAM.
Pet različitih načina adresiranja za pokrov memorije podataka: izravno, neizravno s pomakom, neizravno, neizravno s preddekrementom i neizravno s naknadnim povećanjem. U Registru File, registri R26 do R31 sadrže registre pokazivača neizravnog adresiranja.
Izravno adresiranje doseže čitav podatkovni prostor.
Način neizravnog pomicanja doseže 63 lokacije adresa od osnovne adrese koju daje Y- ili Z- registar.
Kada se koriste načini neizravnog adresiranja registara s automatskim preddekrementiranjem i naknadnim povećanjem, registri adresa X, Y i Z se smanjuju ili povećavaju.
32 radna registra opće namjene, 64 I/O registra i 128/256/512 bajtova internog podatkovnog SRAM-a u ATtiny25/45/85 svi su dostupni kroz sve ove načine adresiranja. Registar File opisano je u „Gen- eralni registar namjene File” na stranici 10.
Slika 5-2. Mapa memorije podataka
Pristup memoriji podataka puta
Ovaj odjeljak opisuje opće koncepte vremena pristupa za pristup internoj memoriji. Pristup SRAM internim podacima izvodi se u dva clkCPU ciklusa kao što je opisano u Slika 5-3.
Slika 5-3. Ciklusi pristupa SRAM podacima na čipu EEPROM memorija podataka
ATtiny25 / 45/85 sadrži 128/256/512 bajtova podatkovne EEPROM memorije. Organiziran je kao zaseban podatkovni prostor u kojem se mogu čitati i pisati pojedinačni bajtovi. EEPROM ima izdržljivost od najmanje 100,000 XNUMX ciklusa upisivanja / brisanja. Pristup između EEPROM-a i CPU-a opisan je u nastavku, navodeći EEPROM-ove adresne registre, EEPROM-ov podatkovni registar i EEPROM-ov kontrolni registar. Za detalje pogledajte “Serijsko preuzimanje” na stranici 151.
EEPROM pristup za čitanje / pisanje
Pristupni registri EEPROM-a dostupni su u I / O prostoru.
Vremena pristupa za pisanje za EEPROM data su u Tablica 5-1 na stranici 21. Međutim, funkcija samotempiranja omogućuje korisničkom softveru da otkrije kada se sljedeći bajt može zapisati. Ako korisnički kod sadrži upute koje zapisuju EEPROM, potrebno je poduzeti neke mjere opreza. U jako filtriranim izvorima napajanja, VCC će vjerojatno polagano rasti ili padati
Uključivanje/isključivanje. To uzrokuje da uređaj neko vrijeme radi na voltage niže od navedenog kao minimuma za korištenu frekvenciju takta. Vidjeti “Sprečavanje EEPROM korupcije” na stranici 19 za detalje o tome kako izbjeći probleme u tim situacijama.
Da bi se spriječilo nenamjerno upisivanje EEPROM-a, mora se slijediti određeni postupak upisivanja. Pogledajte “Atomski Programiranje bajtova ”na stranici 17 i “Programiranje podijeljenog bajta” na stranici 17 za detalje o ovome.
Kada se pročita EEPROM, CPU se zaustavlja na četiri takta prije izvršavanja sljedeće naredbe. Kada se napiše EEPROM, CPU se zaustavlja na dva takta prije izvršavanja sljedeće naredbe.
Programiranje atomskih bajtova
Korištenje atomskog bajt programiranja najjednostavniji je način. Prilikom upisivanja bajta u EEPROM, korisnik mora upisati adresu u EEAR registar, a podatke u EEDR registar. Ako su EEPMn bitovi nula, pisanje EEPE (unutar četiri ciklusa nakon što se napiše EEMPE) pokrenut će operaciju brisanja / pisanja. I ciklus brisanja i pisanja izvodi se u jednoj operaciji, a ukupno vrijeme programiranja daje se u Tablica 5-1 na stranici 21. EEPE bit ostaje postavljen sve dok se operacije brisanja i pisanja ne dovrše. Dok je uređaj zauzet programiranjem, nije moguće raditi druge EEPROM operacije.
Programiranje podijeljenih bajtova
Moguće je podijeliti ciklus brisanja i pisanja u dvije različite operacije. Ovo može biti korisno ako sustav zahtijeva kratko vrijeme pristupa kroz neko ograničeno vremensko razdoblje (obično ako je napajanje voltage pada). Da biste iskoristili prednost- tage ove metode, potrebno je da se mjesta koja se upisuju budu izbrisana prije operacije pisanja. No budući da su operacije brisanja i pisanja podijeljene, moguće je izvršiti operacije brisanja kada sustav dopušta izvođenje vremenski kritičnih operacija (obično nakon uključivanja).
Izbriši
Da biste izbrisali bajt, adresa mora biti zapisana u EEAR. Ako su EEPMn bitovi 0b01, pisanje EEPE-a (unutar četiri ciklusa nakon što se napiše EEMPE) pokrenut će samo operaciju brisanja (vrijeme programiranja dato je u Tablica 5-1 na stranica 21). EEPE bit ostaje postavljen sve dok se operacija brisanja ne dovrši. Dok je uređaj zauzet programiranjem, nije moguće obavljati druge EEPROM operacije.
Pisati
Da bi napisao mjesto, korisnik mora upisati adresu u EEAR, a podatke u EEDR. Ako su EEPMn bitovi 0b10, pisanje EEPE-a (unutar četiri ciklusa nakon što se napiše EEMPE) pokrenut će samo operaciju upisivanja (vrijeme programiranja dato je u Tablica 5-1 na stranici 21). EEPE bit ostaje postavljen dok se operacija upisa ne dovrši. Ako mjesto koje se zapisuje nije izbrisano prije pisanja, pohranjeni podaci moraju se smatrati izgubljenima. Dok je uređaj zauzet programiranjem, nije moguće raditi druge EEPROM operacije.
Kalibrirani oscilator koristi se za vremensko usklađivanje pristupa EEPROM-u. Provjerite je li frekvencija oscilatora unutar zahtjeva opisanih u “OSCCAL - Registar kalibracije oscilatora” na stranici 31.
Sljedeći kod npramplesovi pokazuju jedan sklop i jednu C funkciju za brisanje, pisanje ili atomsko upisivanje EEPROM-a. BivšiampPretpostavljamo da se prekidi kontroliraju (npr. globalno onemogućavanjem prekida) tako da se prekidi neće dogoditi tijekom izvršavanja ovih funkcija.
Montažni kodeks prample |
EEPROM_pisati:
; Pričekajte završetak prethodnog pisanja sbic EECR,EEPE rjmp EEPROM_pisati ; Postavite način programiranja ldi r16, (0<<EEPM1)|(0<<EEPM0) van EECR, r16 ; Postavite adresu (r18: r17) u registar adresa van EEARH, r18 van EEARL, r17 ; Zapišite podatke (r19) u registar podataka van EEDR, r19 ; Napišite logični u EEMPE sbi EECR,EEMPE ; Pokrenite pisanje eeproma postavljanjem EEPE sbi EECR,EEPE ret |
C kod nprample |
void EEPROM_write(unsigned char ucAddress, unsigned char ucData)
{ /* Pričekajte završetak prethodnog pisanja */ while(EECR & (1< ; /* Postavi način programiranja */ EECR = (0 < / * Postavi registre adresa i podataka * / EEAR = ucAddress; EEDR = ucData; /* Napiši logički jedan u EEMPE */ EECR | = (1 < / * Započnite pisanje eeproma postavljanjem EEPE * / EECR | = (1 < } |
Sljedeći kod npramples show funkcije sklopa i C za čitanje EEPROM-a. BivšiampPretpostavljamo da su prekidi kontrolirani tako da se prekidi neće dogoditi tijekom izvršavanja ovih funkcija.
Montažni kodeks prample |
EEPROM_čitano:
; Pričekajte završetak prethodnog pisanja sbic EECR,EEPE rjmp EEPROM_čitanje ; Postavite adresu (r18: r17) u registar adresa van EEARH, r18 van EEARL, r17 ; Započnite čitanje eeproma pisanjem EERE sbi EECR,EERE ; Očitavanje podataka iz registra podataka u r16,EEDR ret |
C kod nprample |
unsigned char EEPROM_read(unsigned char ucAddress)
{ / * Pričekajte dovršetak prethodnog pisanja * / dok (EECR & (1 < ; / * Postavi registar adresa * / EEAR = ucAddress; /* Započnite čitanje eeproma pisanjem EERE */ EECR | = (1 < / * Vrati podatke iz registra podataka * / vratiti EEDR; } |
Sprječavanje EEPROM korupcije
Tijekom razdoblja niskog VCC-a, EEPROM podaci mogu biti oštećeni jer je voltage je prenizak da bi CPU i EEPROM ispravno radili. Ovi problemi su isti kao i za sustave na razini ploče koji koriste EEPROM, a trebala bi se primijeniti ista projektna rješenja.
Oštećenje podataka EEPROM-a može biti uzrokovano dvije situacije kada je voltage je preniska. Prvo, redoviti slijed upisivanja u EEPROM zahtijeva minimalni volumentage da radi ispravno. Drugo, sam CPU može pogrešno izvršiti instrukcije, ako je opskrba voltage je prenizak.
Oštećenje EEPROM podataka lako se može izbjeći slijedeći ovu preporuku za dizajn:
Održavajte AVR RESET aktivnim (niskim) tijekom razdoblja nedovoljnog napajanja voltage. To se može učiniti omogućavanjem internog detektora zatamnjenja (BOD). Ako razina detekcije internog BOD-a ne odgovara
potrebnu razinu detekcije, može se koristiti vanjski niski VCC zaštitni krug za resetiranje. Ako dođe do resetiranja dok je operacija pisanja u tijeku, operacija pisanja će biti dovršena pod uvjetom da je voltage je dovoljno.
I / O memorija
Definicija I / O prostora ATtiny25 / 45/85 prikazana je u “Sažetak registracije” na stranici 200.
Svi I / O uređaji i periferne jedinice ATtiny25 / 45/85 smješteni su u I / O prostor. Uputama LD / LDS / LDD i ST / STS / STD mogu se pristupiti svim I / O lokacijama, prenoseći podatke između 32 opća namjenska radna registra i I / O prostorom. Ulazno-izlazni registri unutar raspona adresa 0x00 - 0x1F izravno su bitno dostupni pomoću SBI i CBI uputa. U tim registrima vrijednost pojedinačnih bitova može se provjeriti pomoću uputa SBIS i SBIC. Više pojedinosti potražite u odjeljku s uputama. Kada se koriste I / O naredbe IN i OUT, moraju se koristiti I / O adrese 0x00 - 0x3F. Kada se I / O registri obraćaju kao podatkovni prostor pomoću LD i ST uputa, na ove adrese mora se dodati 0x20.
Radi kompatibilnosti s budućim uređajima, rezervirane bitove treba zapisati na nulu ako im se pristupi. Rezervirane adrese I / O memorije nikada ne smiju biti napisane.
Neke se statusne zastave brišu na način da im se napiše logička. Imajte na umu da će CBI i SBI upute raditi samo na navedenom bitu i stoga se mogu koristiti na registrima koji sadrže takve statusne oznake. Upute CBI i SBI rade samo s registrima 0x00 do 0x1F.
Ulazno-izlazni i periferni kontrolni registri objašnjeni su u sljedećim odjeljcima.
Opis registra
EEARH - EEPROM adresni registar
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1F | – | – | – | – | – | – | – | UHO8 | UHO |
Čitanje/Pisanje | R | R | R | R | R | R | R | R/W | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | X/0 |
Bitovi 7: 1 - Rez: Rezervirani bitovi
Ti su bitovi rezervirani za buduću upotrebu i uvijek će se čitati kao nula.
Bitovi 0 - EEAR8: EEPROM adresa
Ovo je najznačajniji EEPROM adresni bit ATtiny85. U uređajima s manje EEPROM-a, tj. ATtiny25 / ATtiny45, ovaj je bit rezerviran i uvijek će čitati nulu. Početna vrijednost EEPROM adresnog registra (EEAR) nije definirana i zato se mora pristupiti odgovarajućoj vrijednosti prije pristupanja EEPROM-u.
EEARL - EEPROM adresni registar
bit
0x1E | UHO7 | UHO6 | UHO5 | UHO4 | UHO3 | UHO2 | UHO1 | UHO0 | RANO |
Stražnji / Napiši | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Početna vrijednost | X | X | X | X | X | X | X | X |
Bit 7 - EEAR7: EEPROM adresa
Ovo je najznačajniji EEPROM adresni bit ATtiny45. U uređajima s manje EEPROM-a, tj. ATtiny25, ovaj je bit rezerviran i uvijek će čitati nulu. Početna vrijednost EEPROM adresnog registra (EEAR) nije definirana i stoga se mora pristupiti odgovarajućoj vrijednosti prije pristupanja EEPROM-u.
Bitovi 6: 0 - EEAR [6: 0]: EEPROM adresa
To su (niski) bitovi EEPROM adresnog registra. EEPROM podatkovni bajtovi adresiraju se linearno u rasponu 0 ... (128/256 / 512-1). Početna vrijednost EEAR-a nije definirana i stoga mora biti napisana odgovarajuća vrijednost prije pristupanja EEPROM-u.
EEDR - EEPROM registar podataka
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x1D | EEDR7 | EEDR6 | EEDR5 | EEDR4 | EEDR3 | EEDR2 | EEDR1 | EEDR0 | EEDR |
Čitanje/Pisanje | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Za operaciju pisanja EEPROM-a, EEDR registar sadrži podatke koji se upisuju u EEPROM na adresu navedenu u EEAR-ovom registru. Za operaciju čitanja EEPROM-a, EEDR sadrži podatke očitane iz
EEPROM na adresi koju je dao EEAR.
5.5.4 EECR - EEPROM kontrolni registar |
|||||||||
Bit 7 6 5 | 4 | 3 | 2 | 1 | 0 | ||||
0x1C – | – | EEPM1 | EEPM0 | JEZIV | EEMPE | EEPE | EERE | EECR | |
Čitanje / pisanje R R R / W | R/W | R/W | R/W | R/W | R/W | ||||
Početna vrijednost 0 0 X | X | 0 | 0 | X | 0 |
Bit 7 - Res: Rezervirani bit
Ovaj je bit rezerviran za buduću upotrebu i u ATtiny0 / 25/45 uvijek će čitati kao 85. Radi kompatibilnosti s budućim AVR uređajima, uvijek zapišite ovaj bit na nulu. Nakon čitanja zamaskirajte ovaj dio.
Bit 6 - Res: Rezervirani bit
Ovaj je bit rezerviran u ATtiny25 / 45/85 i uvijek će se čitati kao nula.
Bitovi 5: 4 - EEPM [1: 0]: Bitovi načina programiranja EEPROM-a
Postavka bitova načina programiranja EEPROM definira koja će se programska radnja pokrenuti prilikom pisanja EEPE-a. Moguće je programirati podatke u jednoj atomskoj operaciji (izbrisati staru vrijednost i programirati novu vrijednost) ili podijeliti operacije brisanja i pisanja u dvije različite operacije. Vremena programiranja za različite načine prikazana su u Tablica 5-1. Dok je postavljen EEPE, svako zapisivanje u EEPMn bit će zanemareno. Tijekom resetiranja, EEPMn bitovi vratit će se na 0b00, osim ako je EEPROM zauzet programiranjem.
Tablica 5-1. Bitovi EEPROM načina rada
EEPM1 | EEPM0 | Vrijeme programiranja | Operacija |
0 | 0 | 3.4 ms | Brisanje i pisanje u jednoj operaciji (atomska operacija) |
0 | 1 | 1.8 ms | Samo obriši |
1 | 0 | 1.8 ms | Samo piši |
1 | 1 | – | Rezervirano za buduću upotrebu |
Bit 3 - EERIE: Omogućen prekid spreman za EEPROM
Zapisivanje EERIE na jedan omogućuje EEPROM spreman prekid ako je postavljen I-bit u SREG-u. Zapisivanje EERIE na nulu onemogućava prekid. Prekid spreman za EEPROM generira stalni prekid kada je trajna memorija spremna za programiranje.
Bit 2 - EEMPE: Omogućen glavni program EEPROM-a
EEMPE bit određuje hoće li pisanje EEPE na jedan imati učinka ili ne.
Kada se postavi EEMPE, postavljanjem EEPE unutar četiri takta programira se EEPROM na odabranoj adresi. Ako je EEMPE nula, postavljanje EEPE neće imati učinka. Kada je softver EEMPE zapisan na jedan, hardver briše bit na nulu nakon četiri takta.
Bit 1 - EEPE: Omogućivanje programa EEPROM
Signal za omogućavanje programa EEPROM EEPE je signal za omogućavanje programiranja na EEPROM. Kada se napiše EEPE, EEPROM će se programirati prema postavci EEPMn bitova. EEMPE bit mora biti zapisan u jedan prije nego što je logični zapisan u EEPE, inače se ne događa EEPROM upisivanje. Kada protekne vrijeme pristupa upisu, hardver briše EEPE bit. Kad je postavljen EEPE, CPU se zaustavlja na dva ciklusa prije izvršavanja sljedeće naredbe.
Bit 0 - EERE: Omogući čitanje EEPROM-a
EEPROM signal za omogućavanje čitanja - EERE - je strop za čitanje na EEPROM. Kada se u EEAR registru postavi ispravna adresa, EERE bit mora biti zapisan u jedan da bi se pokrenulo čitanje EEPROM-a. Pristup za čitanje EEPROM-a traje jednu uputu i zatraženi podaci su odmah dostupni. Kada se pročita EEPROM, CPU se zaustavlja na četiri ciklusa prije izvršavanja sljedeće naredbe. Korisnik bi trebao anketirati EEPE bit prije početka postupka čitanja. Ako je operacija upisa u tijeku, nije moguće pročitati EEPROM niti promijeniti EEAR registar.
Sistemski sat i opcije sata
Sustavi satova i njihova distribucija
CPU sat
CPU takt se usmjerava na dijelove sustava koji se bave radom AVR jezgre. nprampTakvi moduli su Registar opće namjene File, statusni registar i memoriju podataka koja drži pokazivač staka. Zaustavljanje CPU takta sprječava jezgru u izvođenju općih operacija i izračuna.
I / O sat - clkI / O
Ulazno-izlazni sat koristi većina I / O modula, poput Timer / Counter. Ulazno-izlazni sat također koristi modul Vanjski prekid, ali imajte na umu da se neki vanjski prekidi detektiraju asinkronom logikom, što omogućuje otkrivanje takvih prekida čak i ako je I / O sat zaustavljen.
Flash sat - clkFLASH
Flash sat kontrolira rad Flash sučelja. Flash sat je obično aktivan istovremeno s CPU taktom.
ADC sat - clkADC
ADC je opremljen namjenskom domenom sata. To omogućuje zaustavljanje CPU i I / O satova kako bi se smanjio šum koji generiraju digitalni sklopovi. To daje preciznije rezultate pretvorbe ADC-a.
Interni PLL za brzu perifernu generaciju sata - clkPCK
Interni PLL u ATtiny25 / 45/85 generira frekvenciju takta koja je 8x pomnožena od ulaznog izvora. Prema zadanim postavkama PLL koristi izvor internog, 8.0 MHz RC oscilatora kao izvor. Ako je postavljen bit LSM za PLLCSR, PLL će koristiti izlaz RC oscilatora podijeljen s dva. Stoga je izlaz PLL-a, brzi periferni takt 64 MHz. Brzi periferni sat ili sat koji je unaprijed predškoliran može se odabrati kao izvor sata za Timer / Counter1 ili kao sistemski sat. Vidjeti Slika 6-2. Frekvencija brzog perifernog takta dijeli se s dva kada je postavljen LSM od PLLCSR, što rezultira frekvencijom takta od 32 MHz. Imajte na umu da se LSM ne može postaviti ako se PLLCLK koristi kao sistemski sat.
Slika 6-2. PCK sustav takta.
PLL je zaključan na RC oscilatoru, a podešavanje RC oscilatora putem OSCCAL registra istovremeno će prilagoditi brzi periferni sat. Međutim, čak i ako se RC oscilator odvede na višu frekvenciju od 8 MHz, brza periferna frekvencija sata zasićuje se na 85 MHz (najgori slučaj) i ostaje oscilirajuća na maksimalnoj frekvenciji. Treba imati na umu da PLL u ovom slučaju više nije zaključan s RC oscilator satom. Stoga se preporučuje da ne podesite OSCCAL podešavanja na veću frekvenciju od 8 MHz kako bi se PLL održao u ispravnom radnom opsegu.
Interni PLL omogućen je kada:
Postavljen je PLLE bit u registru PLLCSR.
Osigurač CKSEL programiran je na '0001'.
Osigurač CKSEL programiran je na '0011'.
PLLCSR bit PLOCK postavljen je kada je PLL zaključan. I interni RC oscilator i PLL isključeni su u načinu rada isključenog napajanja i mirovanja u stanju mirovanja.
Interni PLL u načinu kompatibilnosti ATtiny15
Budući da je ATtiny25 / 45/85 uređaj za migraciju korisnika ATtiny15, postoji način kompatibilnosti ATtiny15 za kompatibilnost s pozadinama. Način kompatibilnosti ATtiny15 odabire se programiranjem CKSEL osigurača na '0011'.
U načinu kompatibilnosti ATtiny15 frekvencija internog RC oscilatora kalibrirana je na 6.4 MHz, a faktor množenja PLL-a postavljen na 4x. Vidjeti Slika 6-3. Ovim prilagodbama sustav takta je kompatibilan s ATtiny15, a rezultirajući brzi periferni sat ima frekvenciju od 25.6 MHz (isto kao u ATtiny15).
Slika 6-3. PCK sustav takta u načinu kompatibilnosti s ATtiny15.
Izvori sata
Uređaj ima sljedeće mogućnosti izvora sata, koje se mogu odabrati bljeskovima bljeskalica, kao što je prikazano u nastavku. Sat iz odabranog izvora ulazi se u generator AVR takta i usmjerava na odgovarajuće module.
Tablica 6-1. Opcije sata uređaja Odaberite
Opcija takta uređaja | CKSEL[3:0](1) |
Vanjski sat (vidjeti stranica 26) | 0000 |
Visokofrekventni PLL sat (vidjeti stranica 26) | 0001 |
Kalibrirani unutarnji oscilator (vidjeti stranica 27) | 0010(2) |
Kalibrirani unutarnji oscilator (vidjeti stranica 27) | 0011(3) |
Interni oscilator od 128 kHz (vidjeti stranica 28) | 0100 |
Kristalni oscilator niske frekvencije (vidjeti stranica 29) | 0110 |
Kristalni oscilator / keramički rezonator (vidjeti stranica 29) | 1000 – 1111 |
Rezervirano | 0101, 0111 |
Za sve osigurače "1" znači neprogramirano, dok "0" znači programirano.
Uređaj se isporučuje s odabranom ovom opcijom.
Ovo će odabrati način kompatibilnosti ATtiny15, gdje je sistemski sat podijeljen s četiri, što rezultira frekvencijom takta od 1.6 MHz. Za više informacija, vidi “Kalibrirani unutarnji oscilator” na stranici 27.
Različiti izbori za svaku opciju takta dani su u sljedećim odjeljcima. Kada se CPU probudi nakon isključivanja, odabrani izvor takta koristi se za vremensko određivanje pokretanja, osiguravajući stabilan rad oscilatora prije početka izvršavanja naredbi. Kada se CPU pokrene od resetiranja, dolazi do dodatnog kašnjenja koje omogućuje da snaga dosegne stabilnu razinu prije početka normalnog rada. Oscilator čuvara koristi se za vremensko određivanje ovog dijela vremena pokretanja u stvarnom vremenu. Broj ciklusa WDT oscilatora korištenih za svako vremensko ograničenje prikazan je u Tablica 6-2.
Tablica 6-2. Broj ciklusa Watchdog oscilatora
Tipično istek | Broj ciklusa |
4 ms | 512 |
64 ms | 8K (8,192) |
Vanjski sat
Za pogon uređaja iz vanjskog izvora takta, CLKI treba voziti kako je prikazano na Slika 6-4. Da bi uređaj radio na vanjskom taktu, osigurači CKSEL moraju biti programirani na "00".
Slika 6-4. Konfiguracija pogona vanjskog sata
Kad je odabran ovaj izvor sata, vremena pokretanja određuju se osiguračima SUT, kao što je prikazano u Tablica 6-3.
Tablica 6-3. Vremena pokretanja za odabir vanjskog sata
SUB[1:0] | Vrijeme pokretanja nakon isključivanja | Dodatno kašnjenje od resetiranja | Preporučena uporaba |
00 | 6 KZ | 14CK | BPK omogućen |
01 | 6 KZ | 14CK + 4 ms | Snaga koja brzo raste |
10 | 6 KZ | 14CK + 64 ms | Polako rastuća snaga |
11 | Rezervirano |
Pri primjeni vanjskog sata potrebno je izbjegavati nagle promjene primijenjene frekvencije takta kako bi se osigurao stabilan rad MCU-a. Varijacija frekvencije od više od 2% od jednog do drugog ciklusa takta može dovesti do nepredvidljivog ponašanja. Potrebno je osigurati da se MCU zadrži u resetiranju tijekom takvih promjena u frekvenciji takta.
Imajte na umu da se pretprodaja sistemskog sata može koristiti za provođenje promjena vremena rada interne frekvencije takta, a da istovremeno osigurava stabilan rad. Pogledajte “Prescaler sistemskog sata” na stranici 31 za detalje.
Visokofrekventni PLL sat
Postoji interni PLL koji nudi nominalni takt od 64 MHz zaključan na RC oscilator za upotrebu perifernog timera / brojača1 i za izvor sistemskog takta. Kada se odabere kao izvor sistemskog sata, programiranjem CKSEL osigurača na '0001', podijeljen je s četiri kao što je prikazano u Tablica 6-4.
Tablica 6-4. Načini rada visokofrekventnog PLL takta
CKSEL[3:0] | Nominalna frekvencija |
0001 | 16 MHz |
Kad je odabran ovaj izvor sata, vremena pokretanja određuju se SUT osiguračima, kao što je prikazano u Tablica 6-5.
Tablica 6-5. Vremena pokretanja za visokofrekventni PLL takt
SUB[1:0] | Vrijeme pokretanja od isključenja | Dodatna odgoda od resetiranja pri uključivanju (VCC = 5.0 V) | Preporučena uporaba |
00 | 14CK + 1K (1024) CK + 4 ms | 4 ms | BPK omogućen |
Tablica 6-5. Vremena pokretanja za visokofrekventni PLL takt
SUB[1:0] | Vrijeme pokretanja od isključenja | Dodatna odgoda od resetiranja pri uključivanju (VCC = 5.0 V) | Preporučena uporaba |
01 | 14CK + 16K (16384) CK + 4 ms | 4 ms | Snaga koja brzo raste |
10 | 14CK + 1K (1024) CK + 64 ms | 4 ms | Polako rastuća snaga |
11 | 14CK + 16K (16384) CK + 64 ms | 4 ms | Polako rastuća snaga |
Kalibrirani unutarnji oscilator
Prema zadanim postavkama, interni RC oscilator osigurava takt od približno 8.0 MHz. Iako je godtagOvisno o temperaturi, ovaj sat korisnik može vrlo precizno kalibrirati. Vidjeti „Kalibrirani unutarnji RC oscilator racy “na stranici 164 i “Interna brzina oscilatora” na stranici 192 za više detalja. Uređaj se isporučuje s programiranim osiguračem CKDIV8. Vidjeti “Prescaler sistemskog sata” na stranici 31 za više detalja.
Ovaj sat se može odabrati kao sistemski sat programiranjem CKSEL osigurača kako je prikazano na Tablica 6-6 na stranici
27. Ako se odabere, radit će bez vanjskih komponenata. Tijekom resetiranja, hardver učitava unaprijed programiranu vrijednost kalibracije u OSCCAL registar i time automatski kalibrira RC oscilator. Točnost ove kalibracije prikazana je kao tvornička kalibracija u Tablica 21-2 na stranici 164.
Promjenom registra OSCCAL iz SW, vidi “OSCCAL - Registar kalibracije oscilatora” na stranici 31, moguće je postići veću točnost kalibracije nego korištenjem tvorničke kalibracije. Točnost ove kalibracije prikazana je kao Korisnička kalibracija u Tablica 21-2 na stranici 164.
Kad se ovaj oscilator koristi kao čipovski sat, oscilator čuvara i dalje će se koristiti za nadzorni sat i vremensko ograničenje resetiranja. Za više informacija o unaprijed programiranoj vrijednosti kalibracije, pogledajte odjeljak „Kali- bration Bytes “na stranici 150.
Unutarnji oscilator također se može postaviti tako da pruža takt od 6.4 MHz zapisujući CKSEL osigurače na "0011", kao što je prikazano u Tablica 6-6 ispod. Ova se postavka naziva ATtiny15 način kompatibilnosti i namijenjena je kalibriranom taktu od 6.4 MHz, kao u ATtiny15. U načinu kompatibilnosti ATtiny15, PLL koristi unutarnji oscilator koji radi na 6.4 MHz za generiranje perifernog takta od 25.6 MHz za timer / brojač1 (vidi “8-bitni timer / brojač1 in Način ATtiny15 ”na stranici 95). Imajte na umu da je u ovom načinu rada signal takta od 6.4 MHz uvijek podijeljen s četiri, pružajući sistemski takt od 1.6 MHz.
Tablica 6-6. Načini rada internog kalibriranog RC oscilatora
CKSEL[3:0] | Nominalna frekvencija |
0010(1) | 8.0 MHz |
0011(2) | 6.4 MHz |
Uređaj se isporučuje s odabranom ovom opcijom.
Ova postavka će odabrati način kompatibilnosti ATtiny15, gdje je sistemski sat podijeljen s četiri, što rezultira taktnom frekvencijom od 1.6 MHz.
Kada je kalibrirani unutarnji oscilator od 8 MHz odabran kao izvor takta, vremena pokretanja određuju se SUT osiguračima kao što je prikazano u Tablica 6-7 ispod.
Tablica 6-7. Vremena pokretanja internog kalibriranog sata RC oscilatora
SUB[1:0] | Vrijeme pokretanja nakon isključivanja | Dodatna odgoda od resetiranja (VCC = 5.0 V) | Preporučena uporaba |
00 | 6 KZ | 14CK(1) | BPK omogućen |
01 | 6 KZ | 14CK + 4 ms | Snaga koja brzo raste |
10(2) | 6 KZ | 14CK + 64 ms | Polako rastuća snaga |
11 | Rezervirano |
1. Ako je programiran osigurač RSTDISBL, ovo vrijeme pokretanja povećat će se na 14CK + 4 ms kako bi se osiguralo da se može ući u način programiranja.
2. Uređaj se isporučuje s odabranom ovom opcijom.
U načinu rada kompatibilnosti ATtiny15 vremena pokretanja određuju se SUT osiguračima kao što je prikazano na Tablica 6-8 ispod.
Tablica 6-8. Vremena pokretanja internog kalibriranog sata RC oscilatora (u načinu rada ATtiny15)
SUB[1:0] | Vrijeme pokretanja nakon isključivanja | Dodatna odgoda od resetiranja (VCC = 5.0 V) | Preporučena uporaba |
00 | 6 KZ | 14CK + 64 ms | |
01 | 6 KZ | 14CK + 64 ms | |
10 | 6 KZ | 14CK + 4 ms | |
11 | 1 KZ | 14CK(1) |
Napomena: Ako je RSTDISBL osigurač programiran, ovo vrijeme pokretanja će se povećati na 14CK + 4 ms kako bi se osiguralo da se može ući u način programiranja.
Ukratko, više informacija o načinu kompatibilnosti ATtiny15 možete pronaći u odjeljcima "Priključak B (PB5: PB0)" uključen stranica 2, “Interni PLL u načinu kompatibilnosti ATtiny15” na stranici 24, “8-bitni timer / brojač1 u načinu ATtiny15” uključen stranica 95, “Ograničenja programa za ispravljanje pogrešaka” na stranici 140, “Kalibracijski bajtovi” na stranici 150 i u tablici “Isključivač sata Odaberite ”na stranici 33.
Interni oscilator od 128 kHz
Interni oscilator od 128 kHz je oscilator male snage koji ima takt od 128 kHz. Frekvencija je nominalna na 3V i 25°C. Ovaj sat se može odabrati kao sistemski sat programiranjem CKSEL osigurača na “0100”.
Kad je odabran ovaj izvor sata, vremena pokretanja određuju se osiguračima SUT, kao što je prikazano u Tablica 6-9.
Tablica 6-9. Vremena pokretanja internog oscilatora od 128 kHz
SUB[1:0] | Vrijeme pokretanja nakon isključivanja | Dodatno kašnjenje od resetiranja | Preporučena uporaba |
00 | 6 KZ | 14CK(1) | BPK omogućen |
01 | 6 KZ | 14CK + 4 ms | Snaga koja brzo raste |
10 | 6 KZ | 14CK + 64 ms | Polako rastuća snaga |
11 | Rezervirano |
Napomena: Ako je RSTDISBL osigurač programiran, ovo vrijeme pokretanja će se povećati na 14CK + 4 ms kako bi se osiguralo da se može ući u način programiranja.
Kristalni oscilator niske frekvencije
Da biste koristili satni kristal od 32.768 kHz kao izvor sata za uređaj, niskofrekventni kristalni oscilator mora se odabrati postavljanjem osigurača CKSEL na '0110'. Kristal treba spojiti kako je prikazano na Slika 6-5. Da biste pronašli prikladnu nosivost za krisal od 32.768 kHz, obratite se tehničkom listu proizvođača.
Kada je odabran ovaj oscilator, vremena pokretanja određuju se osiguračima SUT, kao što je prikazano u Tablica 6-10.
Tablica 6-10. Vremena pokretanja za odabir takta niskofrekventnog kristalnog oscilatora
SUB[1:0] | Vrijeme pokretanja od isključenja | Dodatna odgoda od resetiranja (VCC = 5.0 V) | Preporučena uporaba |
00 | 1K (1024) CK(1) | 4 ms | Omogućena brza snaga ili BOD |
01 | 1K (1024) CK(1) | 64 ms | Polako rastuća snaga |
10 | 32K (32768) CK | 64 ms | Stabilna frekvencija pri pokretanju |
11 | Rezervirano |
Napomena: Ove opcije treba koristiti samo ako stabilnost frekvencije pri pokretanju nije važna.
Niskofrekventni kristalni oscilator pruža unutarnju nosivost, vidi Tablica 6-11 na svakom TOSC pinu.
Tablica 6-11. Kapacitet niskofrekventnog kristalnog oscilatora
Uređaj | 32 kHz Osc. Tip | Poklopac (Xtal1 / Tosc1) | Poklopac (Xtal2 / Tosc2) |
ATtiny25 / 45/85 | Osc. Sustava. | 16 pF | 6 pF |
Kristalni oscilator / keramički rezonator
XTAL1 i XTAL2 su ulaz, odnosno izlaz invertiranja ampLifier koji se može konfigurirati za korištenje kao On-chip oscilator, kao što je prikazano u Slika 6-5. Može se koristiti kvarcni kristal ili keramički rezonator.
C1 i C2 trebaju uvijek biti jednaki i za kristale i za rezonatore. Optimalna vrijednost kondenzatora ovisi o kristalu ili rezonatoru koji se koristi, količini rasipnog kapaciteta i elektromagnetskom šumu okoline. Neke početne smjernice za odabir kondenzatora za korištenje s kristalima dane su u Tablica 6-12 ispod. Za keramičke rezonatore treba koristiti vrijednosti kondenzatora koje daje proizvođač.
Tablica 6-12. Načini rada kristalnog oscilatora
CKSEL[3:1] | Raspon frekvencija (MHz) | Preporučeni raspon za kondenzatore C1 i C2 za upotrebu s kristalima (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 |
Napomene: ovu opciju ne treba koristiti s kristalima, samo s keramičkim rezonatorima.
Oscilator može raditi u tri različita načina rada, svaki optimiziran za određeni frekvencijski raspon. Način rada odabiru osigurači CKSEL [3: 1] kako je prikazano na Tablica 6-12.
Osigurač CKSEL0 zajedno sa osiguračima SUT [1: 0] odabire vrijeme pokretanja kao što je prikazano na Tablica 6-13.
Tablica 6-13. Vremena pokretanja za odabir sata kristalnog oscilatora
CKSEL0 | SUB[1:0] | Vrijeme pokretanja nakon isključivanja | Dodatno kašnjenje od resetiranja | Preporučena uporaba |
0 | 00 | 258 KZ(1) | 14CK + 4 ms | Keramički rezonator, brzo rastuća snaga |
0 | 01 | 258 KZ(1) | 14CK + 64 ms | Keramički rezonator, polako rastuća snaga |
0 | 10 | 1K (1024) CK(2) | 14CK | Keramički rezonator, omogućen BPK |
0 | 11 | 1K (1024) CK(2) | 14CK + 4 ms | Keramički rezonator, brzo rastuća snaga |
1 | 00 | 1K (1024) CK(2) | 14CK + 64 ms | Keramički rezonator, polako rastuća snaga |
1 | 01 | 16K (16384) CK | 14CK | Kristalni oscilator, BOD omogućen |
1 | 10 | 16K (16384) CK | 14CK + 4 ms | Kristalni oscilator, brzo rastuća snaga |
1 | 11 | 16K (16384) CK | 14CK + 64 ms | Kristalni oscilator, polako rastuća snaga |
Bilješke
Ove se opcije trebaju koristiti samo kada ne rade blizu maksimalne frekvencije uređaja i samo ako stabilnost frekvencije pri pokretanju nije važna za aplikaciju. Ove opcije nisu prikladne za kristale.
Ove su opcije namijenjene za upotrebu s keramičkim rezonatorima i osigurat će stabilnost frekvencije pri pokretanju. Također se mogu koristiti s kristalima kada ne rade blizu maksimalne frekvencije uređaja, a ako stabilnost frekvencije pri pokretanju nije važna za primjenu.
Zadani izvor sata
Uređaj se isporučuje s programiranim CKSEL = “0010”, SUT = “10” i CKDIV8. Zadana postavka izvora takta je stoga unutarnji RC oscilator koji radi na 8 MHz s najdužim vremenom pokretanja i početnim predskaliranjem takta sustava od 8, što rezultira taktom sustava od 1.0 MHz. Ova zadana postavka osigurava da svi korisnici mogu postaviti željenu postavku izvora sata koristeći In-System ili High-voltage Programer.
Preskaler za sistemski sat
Sistemski sat ATtiny25 / 45/85 može se podijeliti podešavanjem “CLKPR - Registar pretkale sata” na stranici 32. Ova se značajka može koristiti za smanjenje potrošnje energije kada je zahtjev za procesorskom snagom nizak. Ovo se može koristiti sa svim opcijama izvora takta, a to će utjecati na frekvenciju takta CPU-a i svih sinkronih perifernih uređaja. clkI/O, clkADC, clkCPU i clkFLASH podijeljeni su faktorom kao što je prikazano u Tablica 6-15 na stranici 33.
Vrijeme prebacivanja
Kada se prebacujete između postavki predcjelitelja, sistemski sat za predscjepljivanje osigurava da se u satnom sustavu ne dogode propusti i da nijedna međufrekvencija ne bude veća od frekvencije takta koja odgovara prethodnoj postavci, niti frekvencije takta koja odgovara novoj postavci.
Brojač mreškanja koji implementira uređaj za predskaliranje radi na frekvenciji nepodijeljenog takta, što može biti brže od frekvencije takta CPU-a. Stoga nije moguće odrediti stanje predcjeljivača - čak i ako je čitljivo, a točno vrijeme potrebno za prelazak s jedne podjele sata na drugu ne može se točno predvidjeti.
Od trenutka kada se zapišu vrijednosti CLKPS, potrebno je između T1 + T2 i T1 + 2 * T2 prije nego što nova frekvencija sata bude aktivna. U tom se intervalu stvaraju 2 aktivna ruba sata. Ovdje je T1 prethodno razdoblje takta, a T2 razdoblje koje odgovara novoj postavci uređaja za predkaliranje.
Izlazni međuspremnik takta
Uređaj može izlaziti sistemski sat na CLKO pin (kada se ne koristi kao XTAL2 pin). Da bi se omogućio izlaz, mora se programirati osigurač CKOUT. Ovaj je način prikladan kada se čipovni sat koristi za pogon drugih sklopova u sustavu. Imajte na umu da se sat neće resetirati tijekom resetiranja i da će normalan rad I / O pina biti nadjačan kada se programira osigurač. Unutarnji RC oscilator, WDT oscilator, PLL i vanjski sat (CLKI) mogu se odabrati kada se sat prikazuje na CLKO. Kristalni oscilatori (XTAL1, XTAL2) ne mogu se koristiti za izlaz sata na CLKO. Ako se koristi sistemski pretkazar sata, izlaz je podijeljeni sistemski sat.
Opis registra
OSCCAL - Registar kalibracije oscilatora
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x31 | CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 | OSKALNO |
Čitanje/Pisanje | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
Bitovi 7: 0 - CAL [7: 0]: Vrijednost kalibracije oscilatora
Registar kalibracije oscilatora koristi se za obrezivanje kalibriranog unutarnjeg RC oscilatora kako bi se uklonile varijacije procesa s frekvencije oscilatora. Unaprijed programirana vrijednost kalibracije automatski se zapisuje u ovaj registar tijekom resetiranja čipa, dajući tvornički kalibriranu frekvenciju kako je navedeno u Tablica 21-2 na stranici 164. Aplikacijski softver može zapisati ovaj registar za promjenu frekvencije oscilatora. Oscilator se može kalibrirati na frekvencije kako je navedeno u Tablica 21-2 na stranici 164. Kalibracija izvan tog raspona nije zajamčena.
Imajte na umu da se ovaj oscilator koristi za vremensko usklađivanje pristupa EEPROM-u i Flash zapisu, a na to će se vremenski utjecati. Ako su napisani EEPROM ili Flash, ne kalibrirajte na više od 8.8 MHz. U suprotnom, EEPROM ili Flash zapis mogu propasti.
Bit CAL7 određuje opseg rada oscilatora. Postavljanje ovog bita na 0 daje najniži raspon frekvencija, a postavljanje ovog bita na 1 daje najviši raspon frekvencija. Dva frekvencijska raspona se preklapaju, drugim riječima postavka OSCCAL = 0x7F daje veću frekvenciju od OSCCAL = 0x80.
Bitovi CAL [6: 0] koriste se za podešavanje frekvencije unutar odabranog raspona. Postavka 0x00 daje najnižu frekvenciju u tom rasponu, a postavka 0x7F daje najvišu frekvenciju u tom rasponu.
Da bi se osigurao stabilan rad MCU-a, vrijednost kalibracije treba malo mijenjati. Varijacija frekvencije od jednog do drugog ciklusa veća od 2% može dovesti do nepredvidivog ponašanja. Promjene u OSCCAL-u ne bi trebale prelaziti 0x20 za svaku kalibraciju. Potrebno je osigurati da se MCU zadrži u resetiranju tijekom takvih promjena u frekvenciji takta
Tablica 6-14. Frekvencijski raspon unutarnjeg RC oscilatora
OSCCAL Vrijednost | Tipična najniža frekvencija s obzirom na nominalnu frekvenciju | Tipična najviša frekvencija s obzirom na nominalnu frekvenciju |
0x00 | 50% | 100% |
0x3F | 75% | 150% |
0x7F | 100% | 200% |
CLKPR - Registar pretkale sata
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x26 | CLKPCE | – | – | – | CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | CLKPR |
Čitanje/Pisanje | R/W | R | R | R | R/W | R/W | R/W | R/W |
Početna vrijednost 0 0 0 0 Pogledajte opis bita
Bit 7 - CLKPCE: Omogući promjenu pretkolača sata
CLKPCE bit mora biti zapisan u logički da bi se omogućila promjena CLKPS bitova. Bit CLKPCE ažurira se samo kada su ostali bitovi u CLKPR istovremeno zapisani na nulu. CLKPCE se hardverski briše četiri ciklusa nakon što je napisan ili kada su napisani CLKPS bitovi. Ponovno prepisivanje CLKPCE bita unutar ovog razdoblja isteka ne produžuje razdoblje isteka niti brisanje CLKPCE bita.
Bitovi 6: 4 - Rez: Rezervirani bitovi
Ovi su bitovi rezervirani bitovi u ATtiny25 / 45/85 i uvijek će se čitati kao nula.
Bitovi 3: 0 - CLKPS [3: 0]: Bitovi za odabir uređaja za predskaliranje sata 3 - 0
Ovi bitovi definiraju faktor podjele između odabranog izvora takta i unutarnjeg sata sata. Ti se bitovi mogu zapisati u vrijeme izvođenja kako bi se frekvencija takta mijenjala prema zahtjevima aplikacije. Kako razdjelnik dijeli ulaz glavnog sata na MCU, brzina svih sinkronih perifernih uređaja smanjuje se kada se koristi faktor podjele. Faktori podjele dani su u Tablica 6-15.
Da bi se izbjegle nenamjerne promjene frekvencije takta, mora se slijediti poseban postupak pisanja za promjenu CLKPS bitova:
Zapišite bit za omogućavanje promjene predračunača sata (CLKPCE) na jedan, a sve ostale bitove u CLKPR na nulu.
Unutar četiri ciklusa zapišite željenu vrijednost u CLKPS dok ispisujete nulu u CLKPCE.
Prekidi se moraju onemogućiti prilikom promjene postavke pretkolača kako bi se osiguralo da postupak upisa nije prekinut.
CKDIV8 Fuse određuje početnu vrijednost CLKPS bitova. Ako CKDIV8 nije programiran, CLKPS bitovi će se resetirati na "0000". Ako je CKDIV8 programiran, CLKPS bitovi se vraćaju na "0011", dajući faktor dijeljenja osam pri pokretanju. Ovu značajku treba koristiti ako odabrani izvor takta ima višu frekvenciju od maksimalne frekvencije uređaja u trenutnim radnim uvjetima. Imajte na umu da se bilo koja vrijednost može upisati u CLKPS bitove bez obzira na postavku CKDIV8 Fuse. Aplikacijski softver mora osigurati dovoljan faktor dijeljenja
odabrano ako odabrani izvor takta ima veću frekvenciju od maksimalne frekvencije uređaja u trenutnim radnim uvjetima. Uređaj se isporučuje s programiranim osiguračem CKDIV8.
Tablica 6-15. Clock Prescaler Odaberite
CLKPS3 | CLKPS2 | CLKPS1 | CLKPS0 | Faktor podjele sata |
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 |
Napomena: Prescaler je onemogućen u načinu rada kompatibilnosti s ATtiny15 i niti pisanje u CLKPR niti programiranje osigurača CKDIV8 nema nikakvog utjecaja na takt sustava (koji će uvijek biti 1.6 MHz).
Upravljanje napajanjem i načini mirovanja
Visoke performanse i vodeća efikasnost koda čine AVR mikrokontrolere idealnim izborom za primjene male snage. Osim toga, načini mirovanja omogućuju aplikaciji isključivanje neiskorištenih modula u MCU-u, štedeći tako energiju. AVR pruža različite načine mirovanja omogućujući korisniku prilagodbu potrošnje energije prema zahtjevima aplikacije.
Načini mirovanja
Slika 6-1 na stranici 23 predstavlja različite satne sustave i njihovu distribuciju u ATtiny25 / 45/85. Slika je korisna pri odabiru odgovarajućeg načina mirovanja. Tablica 7-1 prikazuje različite načine mirovanja i njihove izvore buđenja.
Tablica 7-1. Domene aktivnog sata i izvori buđenja u različitim načinima mirovanja
Domene aktivnog sata | Oscilatori | Izvori buđenja | ||||||||||
Način mirovanja | clkCPU | clkFLASH | clkIO | clkADC | clkPCK | Omogućen glavni izvor sata | INT0 i promjena pina | SPM / EEPROM
Spreman |
USI startni uvjet |
ADC | Drugi I/O | Pas čuvar Prekinuti |
besposlen | X | X | X | X | X | X | X | X | X | X | ||
ADC smanjenje buke | X | X | X(1) | X | X | X | X | |||||
Nema struje | X(1) | X | X |
Napomena: Za INT0, samo prekid razine.
Da biste ušli u bilo koji od tri načina mirovanja, bit SE u MCUCR mora biti zapisan u logički jedan i mora se izvršiti SLEEP naredba. SM [1: 0] bitovi u MCUCR registru odabiru koji će način mirovanja (Idle, ADC Noise Reduction ili Power-down) aktivirati SLEEP naredba. Vidjeti Tablica 7-2 za sažetak.
Ako dođe do omogućenog prekida dok je MCU u stanju mirovanja, MCU se budi. MCU se zatim zaustavlja na četiri ciklusa uz vrijeme pokretanja, izvršava rutinu prekida i nastavlja izvršavanje iz instrukcije nakon SLEEP. Sadržaj Registra File i SRAM su nepromijenjeni kada se uređaj probudi iz stanja mirovanja. Ako dođe do resetiranja tijekom stanja mirovanja, MCU se budi i izvršava iz Reset Vector.
Napomena: ako se prekid aktiviran razinom koristi za buđenje, promijenjena razina se mora zadržati neko vrijeme da se probudi MCU (i da MCU uđe u rutinu usluge prekida). Vidjeti “Vanjski prekidi” na stranici 49 za detalje.
Način mirovanja
Kada se SM[1:0] bitovi zapišu na 00, instrukcija SLEEP tjera MCU da uđe u stanje mirovanja, zaustavljajući CPU, ali dopuštajući analognom komparatoru, ADC-u, USI-ju, mjeraču vremena/brojaču, nadzornom pasu i sustavu prekida da nastave s radom. jesti. Ovaj način mirovanja u osnovi zaustavlja clkCPU i clkFLASH, dok dopušta ostalim satovima da rade.
Način mirovanja omogućuje MCU-u da se probudi iz vanjskih okidačkih prekida kao i unutarnjih poput Timer Overflow. Ako buđenje iz prekida analognog usporednika nije potrebno, analogni usporednik može se isključiti postavljanjem ACD bita u “ACSR - Registar upravljanja i stanja analognih komparatora” na stranici 120. To će smanjiti potrošnju energije u načinu mirovanja. Ako je ADC omogućen, pretvorba započinje automatski kada se uđe u ovaj način.
ADC način smanjenja buke
Kada se SM[1:0] bitovi zapišu u 01, instrukcija SLEEP tjera MCU da uđe u način rada za smanjenje šuma ADC-a, zaustavljajući CPU, ali dopuštajući ADC-u, vanjskim prekidima i Watchdogu da nastave s radom (ako je omogućen). Ovaj način mirovanja zaustavlja clkI/O, clkCPU i clkFLASH, dok dopušta ostalim satovima da rade.
Ovo poboljšava okruženje buke za ADC, omogućujući mjerenja veće razlučivosti. Ako je ADC omogućen, pretvorba započinje automatski kada se uđe u ovaj način. Osim prekida ADC Conversion Complete, samo vanjski reset, reset Watchdoga, Brown-out reset, SPM / EEPROM spreman prekid, prekid vanjske razine na INT0 ili prekid promjene pina mogu probuditi MCU iz ADC smanjenja šuma način rada.
Način isključivanja
Kada se SM [1: 0] bitovi zapišu na 10, SLEEP naredba navodi MCU da uđe u način isključenja. U ovom načinu rada oscilator se zaustavlja, dok vanjski prekida, otkrivanje stanja pokretanja USI i Watchdog nastavljaju raditi (ako je omogućeno). Samo vanjski reset, reset Watchdoga, Brown-out reset, USI start prekid, vanjski nivo prekida na INT0 ili prekid promjene pin-a mogu probuditi MCU. Ovaj način mirovanja zaustavlja sve generirane satove, omogućujući rad samo asinkronih modula.
Onemogući BPK softvera
Kad je detektor izbacivanja (BOD) omogućen BODLEVEL osiguračima (vidi Tablica 20-4 na stranici 148), BOD aktivno prati opskrbu voltage tijekom perioda spavanja. U nekim je uređajima moguće uštedjeti energiju tako da softverski onemogući BOD u načinu mirovanja s isključenim napajanjem. Potrošnja energije u stanju mirovanja tada će biti na istoj razini kao kada je BOD globalno onemogućen osiguračima.
Ako je BOD softver onemogućen, BOD funkcija se isključuje odmah nakon ulaska u stanje mirovanja. Nakon buđenja iz stanja mirovanja, BOD se automatski ponovno uključuje. Ovo osigurava siguran rad u slučaju da je razina VCC pala tijekom razdoblja mirovanja.
Kad je BOD onemogućen, vrijeme buđenja iz stanja mirovanja bit će isto kao i vrijeme buđenja iz RESET-a. Korisnik mora ručno konfigurirati vrijeme buđenja tako da referentna širina pojasa ima vremena za pokretanje i da BPK ispravno radi prije nego što MCU nastavi s izvršavanjem koda. Pogledajte bitove osigurača SUT [1: 0] i CKSEL [3: 0] u tablici “Osigurač s malim bajtom” na stranici 149
BOD onemogućavanje kontrolira BODS (BOD Sleep) bit MCU kontrolnog registra, vidi “MCUCR - MCU kontrola Registriraj se ”na stranici 37. Zapisivanjem ovog bita u jedan isključuje se BPK u Power-Downu, dok upisivanje nule održava BPK aktivnim. Zadana postavka je nula, tj. BOD aktivan.
Zapisivanje u BODS bit kontrolira se vremenskim slijedom i bitom za omogućavanje, vidi „MCUCR - Registar upravljanja MCU- ter ”na stranici 37.
Ograničenja
Funkcija onemogućavanja BPK-a implementirana je samo na sljedeće uređaje:
ATtiny25, revizija E i novija
ATtiny45, revizija D i novija
ATtiny85, revizija C i novija
Revizije su označene na paketu uređaja i mogu se nalaziti na sljedeći način:
Donja strana paketa 8P3 i 8S2
Gornja strana paketa 20M1
Registar smanjenja snage
Registar smanjenja snage (PRR), vidi “PRR - Registar smanjenja snage” na stranici 38, pruža metodu za smanjenje potrošnje energije zaustavljanjem sata na pojedinim perifernim uređajima. Trenutno stanje periferne jedinice je zamrznuto i I / O registri se ne mogu čitati ili pisati. Resursi koje periferna jedinica koristi prilikom zaustavljanja sata ostat će zauzeti, stoga bi perifernu mrežu u većini slučajeva trebalo onemogućiti prije zaustavljanja sata. Buđenje modula, što se vrši brisanjem bita u PRR-u, dovodi modul u isto stanje kao i prije isključivanja.
Isključivanje modula može se koristiti u načinu mirovanja i aktivnom načinu rada kako bi se značajno smanjila ukupna potrošnja energije. U svim ostalim načinima mirovanja sat je već zaustavljen. Vidjeti “Opskrbna struja I / O modula” na stranici 177 na primjeramples.
Minimiziranje potrošnje energije
Postoji nekoliko problema koje treba uzeti u obzir kada pokušavate smanjiti potrošnju energije u sustavu kontroliranom AVR-om. Općenito, način mirovanja treba koristiti što je više moguće, a način mirovanja treba odabrati tako da radi što manje funkcija uređaja. Treba onemogućiti sve funkcije koje nisu potrebne. Konkretno, sljedeći će moduli možda trebati posebno razmotriti kada pokušavaju postići najmanju moguću potrošnju energije.
Analogno-digitalni pretvarač
Ako je omogućeno, ADC će biti omogućen u svim načinima mirovanja. Da biste uštedjeli energiju, ADC treba onemogućiti prije ulaska u bilo koji način mirovanja. Kad se ADC isključi i ponovno uključi, sljedeća pretvorba bit će proširena pretvorba. Pogledajte “Analogno-digitalni pretvarač” na stranici 122 za detalje o radu ADC-a.
Analogna usporednica
Prilikom ulaska u stanje mirovanja, analogni komparator bi trebao biti onemogućen ako se ne koristi. Prilikom ulaska u način rada za smanjenje šuma ADC-a, analogni komparator bi trebao biti onemogućen. U drugim načinima mirovanja, analogni komparator je automatski onemogućen. Međutim, ako je analogni komparator postavljen za korištenje Internal Voltage Referentni kao ulaz, analogni komparator bi trebao biti onemogućen u svim načinima mirovanja. Inače, Internal Voltage Referenca će biti omogućena, neovisno o načinu mirovanja. Pogledajte na “Analogna usporedba” na stranici 119 za detalje o tome kako konfigurirati analogni komparator.
Smeđi detektor
Ako Brown-out detektor nije potreban u aplikaciji, ovaj modul treba isključiti. Ako je BODLEVEL osiguračima omogućen Brown-out detektor, on će biti omogućen u svim načinima mirovanja i stoga uvijek troši energiju. U dubljem načinu mirovanja, to će značajno pridonijeti ukupnoj trenutnoj potrošnji. Vidjeti “Otkrivanje smeđeg cija “na stranici 41 i “Softver BOD Disable” na stranici 35 za detalje o tome kako konfigurirati Brown-out detektor.
Unutarnji svtage Referenca
The Internal Voltage Referenca će biti omogućena kada je to potrebno za detekciju zatamnjenja, analogni komparator ili ADC. Ako su ovi moduli onemogućeni kako je opisano u gornjim odjeljcima, interni voltagReferenca će biti onemogućena i neće trošiti energiju. Kada se ponovno uključi, korisnik mora dopustiti da se referenca pokrene prije nego što se koristi izlaz. Ako je referenca uključena u stanju mirovanja, izlaz se može odmah koristiti. Pogledajte na “Interni svtage Referenca” na stranici 42 za detalje o vremenu pokretanja.
Watchdog Timer
Ako u aplikaciji nije potreban Watchdog Timer, ovaj bi modul trebao biti isključen. Ako je Watchdog Timer omogućen, bit će omogućen u svim načinima mirovanja, a time i uvijek troši energiju. U dubljem načinu mirovanja, to će značajno pridonijeti ukupnoj trenutnoj potrošnji. Pogledajte “Watchdog Timer” na stranici 42 za detalje o tome kako konfigurirati Watchdog Timer.
Lučke igle
Prilikom ulaska u stanje mirovanja, svi pinovi porta trebaju biti konfigurirani za korištenje minimalne snage. Najvažnije je tada osigurati da nijedan zatik ne pokreće otporna opterećenja. U načinima mirovanja gdje su I/O takt (clkI/O) i ADC takt (clkADC) zaustavljeni, ulazni međuspremnici uređaja bit će onemogućeni. Time se osigurava da se ne troši struja
logikom unosa kad nije potrebno. U nekim je slučajevima ulazna logika potrebna za otkrivanje uvjeta buđenja i
tada će biti omogućeno. Pogledajte odlomak “Omogućavanje digitalnog ulaza i načini mirovanja” na stranici 57 za detalje o tome koji su pribadači omogućeni. Ako je ulazni međuspremnik omogućen, a ulazni signal ne radi ili ima razinu analognog signala blizu VCC/2, ulazni međuspremnik će koristiti prekomjernu snagu.
Za analogne ulazne pinove, digitalni ulazni međuspremnik treba uvijek biti onemogućen. Razina analognog signala blizu VCC/2 na ulaznom pinu može uzrokovati značajnu struju čak iu aktivnom načinu rada. Digitalni ulazni međuspremnici mogu se onemogućiti upisivanjem u registar za onemogućavanje digitalnog ulaza (DIDR0). Odnosi se na “DIDR0 - Registar za onemogućavanje digitalnog ulaza 0” na stranici 121 za detalje.
Opis registra
MCUCR - MCU kontrolni registar
MCU kontrolni registar sadrži kontrolne bitove za upravljanje napajanjem.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Čitanje/Pisanje | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 7 - BODS: BOD Sleep
Funkcija onemogućavanja BPK-a dostupna je samo na nekim uređajima. Vidjeti “Ograničenja” na stranici 36.
Kako bi onemogućili BPK tijekom spavanja (vidi Tablica 7-1 na stranici 34) bit BODS mora biti zapisan u logički. To kontrolira vremenski slijed i bit za omogućavanje, BODSE u MCUCR. Prvo, i BODS i BODSE moraju biti postavljeni na jedan. Drugo, unutar četiri ciklusa takta, BODS mora biti postavljen na jedan, a BODSE mora biti postavljen na nulu. Bit BODS aktivan je tri takta nakon što je postavljen. Upute za spavanje moraju se izvršiti dok je BODS aktivan kako bi se BOD isključio za stvarni način mirovanja. Bit BODS automatski se briše nakon tri takta.
Na uređajima u kojima zaspan BPK nije implementiran, ovaj bit se ne koristi i uvijek će očitavati nulu.
Bit 5 - SE: Omogući stanje mirovanja
Bit SE mora biti zapisan u logiku jedan kako bi MCU ušao u stanje mirovanja kada se izvrši instrukcija SLEEP. Kako bi se izbjegao ulazak MCU-a u stanje mirovanja, osim ako to nije svrha programatora, preporuča se zapisati bit Sleep Enable (SE) na jedan neposredno prije izvršenja SLEEP instrukcije i izbrisati ga odmah nakon buđenja.
Bitovi 4: 3 - SM [1: 0]: Biranje bitova 1 i 0 u načinu mirovanja
Ovi bitovi biraju između tri dostupna načina mirovanja, kao što je prikazano u Tablica 7-2.
Tablica 7-2. Odabir načina mirovanja
SM1 | SM0 | Način mirovanja |
0 | 0 | besposlen |
0 | 1 | ADC smanjenje buke |
1 | 0 | Nema struje |
1 | 1 | Rezervirano |
Bit 2 - BODSE: Omogući BOD spavanje
Funkcija onemogućavanja BPK-a dostupna je samo na nekim uređajima. Vidjeti “Ograničenja” na stranici 36.
Bit BODSE omogućuje postavljanje kontrolnog bita BODS, kao što je objašnjeno u opisu boda BODS. Onemogućavanje BPK kontrolira se vremenskim slijedom.
Taj se bit ne koristi na uređajima na kojima nije implementiran onemogućavanje BPK-a i na tim će uređajima čitati kao nulu.
PRR - Registar smanjenja snage
Registar smanjenja napajanja nudi metodu za smanjenje potrošnje energije omogućavajući onemogućavanje signala perifernog sata.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x20 | – | – | – | – | PRTIM1 | PRTIM0 | PRUSI | PRADC | PRR |
Čitanje/Pisanje | R | R | R | R | R/W | R/W | R/W | R/W | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitovi 7: 4 - Rez: Rezervirani bitovi
Ovi su bitovi rezervirani bitovi u ATtiny25 / 45/85 i uvijek će se čitati kao nula.
Bit 3 - PRTIM1: Tajmer / brojač redukcije snage
Zapisivanje logičkog na ovaj bit isključuje modul Timer / Counter1. Kad je timer / brojač1 omogućen, rad će se nastaviti kao i prije isključivanja.
Bit 2 - PRTIM0: Tajmer / brojač redukcije snage
Zapisivanje logičkog na ovaj bit isključuje modul Timer / Counter0. Kad je timer / brojač0 omogućen, rad će se nastaviti kao i prije isključivanja.
Bit 1 - PRUSI: USI za smanjenje snage
Zapisivanje logičkog na ovaj bit isključuje USI zaustavljanjem sata na modulu. Kada se ponovno budi USI, USI treba ponovno pokrenuti kako bi se osigurao ispravan rad.
Bit 0 - PRADC: ADC za smanjenje snage
Zapisivanje logičkog na ovaj bit isključuje ADC. ADC mora biti onemogućen prije isključivanja. Imajte na umu da ADC sat koriste i neki dijelovi analogne usporedbe, što znači da se analogna usporednica ne može koristiti kada je ovaj bit visok.
Kontrola i poništavanje sustava
Resetiranje AVR-a
Tijekom resetiranja svi su I / O registri postavljeni na svoje početne vrijednosti, a program započinje izvršavanje iz Reset vektora. Uputa smještena na Vektor za poništavanje mora biti RJMP - Relativni skok - uputa za rutinu rukovanja resetiranjem. Ako program nikada ne omogući izvor prekida, vektori prekida se ne koriste i na tim se mjestima može postaviti redoviti programski kod. Shema spoja u Slika 8-1 prikazuje logiku resetiranja. Električni parametri sklopa za resetiranje dati su u “Karakteristike sustava i resetiranja” na stranici 165.
Slika 8-1 Logika resetiranja
Ulazno / izlazni priključci AVR-a odmah se vraćaju u početno stanje kada izvor resetiranja postane aktivan. To ne zahtijeva pokretanje bilo kojeg izvora sata.
Nakon što svi izvori resetiranja postanu neaktivni, poziva se brojač kašnjenja, istežući unutarnje resetiranje. To omogućuje da snaga dosegne stabilnu razinu prije početka normalnog rada. Razdoblje vremenskog ograničenja brojača kašnjenja definira korisnik putem osigurača SUT i CKSEL. Različiti odabiri za razdoblje kašnjenja predstavljeni su u "Sat Izvori ”na stranici 25.
Resetiranje izvora
ATtiny25 / 45/85 ima četiri izvora resetiranja:
Resetiranje pri uključivanju. MCU se resetira kada se opskrbni voltage je ispod praga ponovnog postavljanja nakon uključenja (VPOT).
Vanjsko resetiranje. MCU se resetira kada je na RESET pinu prisutna niska razina dulju od minimalne duljine impulsa.
Vraćanje čuvara. MCU se resetira kada istekne razdoblje Watchdog Timer i Watchdog je omogućen.
Poništavanje zatamnjenja. MCU se resetira kada se napajanje voltage VCC je ispod praga za ponovno postavljanje Brown-out (VBOT) i detektor Brown-outa je omogućen.
Resetiranje nakon uključivanja
Puls za ponovno pokretanje (POR) generira se krugom za otkrivanje na čipu. Razina otkrivanja definirana je u "Sys- tem i resetiranje karakteristika “na stranici 165. POR se aktivira kad god je VCC ispod razine detekcije. POR sklop se može koristiti za pokretanje resetiranja pri pokretanju, kao i za detektiranje kvara u voltage.
Krug za resetiranje pri uključivanju (POR) osigurava da se uređaj resetuje nakon uključivanja. Dostizanje praga za ponovno postavljanje pri uključivanju voltage poziva brojač kašnjenja, koji određuje koliko dugo se uređaj drži u RESET-u nakon porasta VCC. Signal RESET ponovno se aktivira, bez ikakve odgode, kada VCC padne ispod razine detekcije.
Slika 8-2. MCU pokretanje, RESET Vezano za VCC
INTERNO RESETIRANJE
Slika 8-3. MCU pokretanje, RESET prošireno eksterno
Vanjsko resetiranje
Vanjsko poništavanje generira se niskom razinom na RESET pinu ako je omogućeno. Resetirajte impulse duže od minimalne širine impulsa (vidi “Karakteristike sustava i resetiranja” na stranici 165) će generirati resetiranje, čak i ako sat ne radi. Nije zajamčeno da će kraći impulsi generirati resetiranje. Kada primijenjeni signal dosegne Reset Threshold Voltage – VRST – na svom pozitivnom rubu, brojač odgode pokreće MCU nakon isteka vremenskog razdoblja.
Slika 8-4. Vanjski reset tijekom rada
Otkrivanje smeđeg out-a
ATtiny25/45/85 ima sklop za detekciju kvara (BOD) na čipu za praćenje razine VCC tijekom rada uspoređujući je s fiksnom razinom okidača. Razina okidanja za BOD može se odabrati osiguračima BODLEVEL. Razina okidača ima histerezu kako bi se osiguralo otkrivanje smeđe boje bez šiljaka. Histerezu na razini detekcije treba tumačiti kao VBOT+ = VBOT + VHYST/2 i VBOT- = VBOT – VHYST/2.
Kada je BOD omogućen i VCC se smanjuje na vrijednost ispod razine okidača (VBOT-in Slika 8-5), Resetiranje zatamnjenja se odmah aktivira. Kada se VCC poveća iznad razine okidača (VBOT+ in Slika 8-5), brojač odgode pokreće MCU nakon isteka vremenskog razdoblja tTOUT.
BOD sklop će detektirati pad VCC samo ako voltage ostaje ispod razine okidača dulje od danog tBOD “Karakteristike sustava i resetiranja” na stranici 165.
Vraćanje čuvara
Kada Watchdog istekne, generirat će kratki impuls resetiranja u trajanju od jednog CK ciklusa. Na padajućem rubu ovog impulsa, mjerač vremena odgode počinje brojati razdoblje istjecanja tTOUT. Odnosi se na “Watchdog Timer” na stranici 42 za detalje o radu Watchdog Timer-a.
Voltage Referentni signali za omogućavanje i vrijeme pokretanja
VoltagReferenca ima vrijeme početka koje može utjecati na način na koji bi se trebala koristiti. Vrijeme pokretanja je navedeno “Karakteristike sustava i resetiranja” na stranici 165. Da biste uštedjeli energiju, referenca nije uvijek uključena. Reference su uključene u sljedećim situacijama:
Kada je BOD omogućen (programiranjem BODLEVEL [2: 0] bitova osigurača).
Kad je referentna širina pojasa povezana s analognim usporednikom (postavljanjem ACBG bita u ACSR).
Kad je ADC omogućen.
Dakle, kada BOD nije omogućen, nakon postavljanja ACBG bita ili omogućavanja ADC-a, korisnik mora uvijek dopustiti pokretanje reference prije nego što se koristi izlaz iz Analognog usporednika ili ADC-a. Kako bi smanjio potrošnju energije u načinu isključenja, korisnik može izbjeći gornja tri uvjeta kako bi osigurao da se referenca isključi prije ulaska u način isključenja.
Watchdog Timer
Watchdog Timer radi na oscilatoru na čipu koji radi na 128 kHz. Upravljanjem prescalerom Watchdog Timer, interval resetiranja Watchdog-a može se prilagoditi kako je prikazano na Tablica 8-3 na stranici 46. WDR - Poništavanje čuvara - upute resetiraju tajmer za nadzor. Watchdog timer se također resetira kad je onemogućen i kada se dogodi reset čipa. Za određivanje razdoblja resetiranja može se odabrati deset različitih ciklusa takta. Ako razdoblje resetiranja istekne bez ponovnog resetiranja čuvara, ATtiny25 / 45/85 se resetira i izvršava iz vektora za resetiranje. Pojedinosti o vremenskom okviru za Vraćanje čuvara potražite na Tablica 8-3 na stranici 46.
Watchdog Timer se također može konfigurirati da generira prekid umjesto resetiranja. To može biti vrlo korisno kada se Watchdog koristi za buđenje nakon isključivanja.
Da bi se spriječilo nenamjerno onemogućavanje čuvara ili nenamjerna promjena razdoblja isteka, osiguračem WDTON odabiru se dvije različite sigurnosne razine kao što je prikazano u Tablica 8-1 Odnosi se na „Tempirani nizovi za promjenu kon- figuracija Watchdog Timer-a “na stranici 43 za detalje.
Tablica 8-1. WDT konfiguracija kao funkcija postavki osigurača WDTON-a
WDTON | Razina sigurnosti | WDT početno stanje | Kako onemogućiti WDT | Kako promijeniti vremensko ograničenje |
Neprogramirano | 1 | Onesposobljeno | Vremenski slijed | Bez ograničenja |
Programirano | 2 | Omogućeno | Uvijek omogućeno | Vremenski slijed |
Slika 8-7. Watchdog Timer
Vremenske sekvence za promjenu konfiguracije nadzornika vremena
Redoslijed promjene konfiguracije neznatno se razlikuje između dviju razina sigurnosti. Za svaku razinu opisani su zasebni postupci.
Razina sigurnosti 1: U ovom načinu rada Watchdog Timer je inicijalno onemogućen, ali se može omogućiti upisivanjem WDE bita u jedan bez ikakvih ograničenja. Vremenski slijed je potreban kada se onemogućuje omogućen Watchdog Timer. Da biste onemogućili omogućen Watchdog Timer, morate slijediti sljedeći postupak:
U istoj operaciji napišite logičku WDCE i WDE. Logika se mora upisati u WDE bez obzira na prethodnu vrijednost WDE bita.
U sljedeća četiri ciklusa takta, u istoj operaciji, napišite WDE i WDP bitove po želji, ali s brisanim WDCE bitom.
Sigurnosna razina 2: U ovom načinu rada Watchdog Timer je uvijek omogućen, a WDE bit će uvijek čitati kao jedan. Vremenski određen slijed je potreban kada se mijenja Watchdog Time-out period. Da biste promijenili Watchdog Time-out, morate slijediti sljedeći postupak:
U istoj operaciji napišite logički WDCE i WDE. Iako je WDE uvijek postavljen, WDE mora biti zapisan na jedan da bi započeo vremenski slijed.
U sljedeća četiri ciklusa takta, u istoj operaciji, napišite WDP bitove po želji, ali s brisanim WDCE bitom. Vrijednost zapisana u WDE bit nije bitna.
Kod nprample
Sljedeći kod nprample prikazuje jedan sklop i jednu C funkciju za isključivanje WDT-a. Bivšiample pretpostavlja da su prekidi kontrolirani (npr. globalno onemogućavanjem prekida) tako da se prekidi neće dogoditi tijekom izvršavanja ovih funkcija.
Montažni kodeks prample(1) |
WDT_isključenje:
wdr ; Očisti WDRF u MCUSR-u ldi r16, (0< van MCUSR, r16 ; Napišite logički WDCE i WDE ; Zadržite staru postavku predograđivača kako biste spriječili nenamjerno resetiranje nadzornika u r16, WDTCR ori r16, (1< van WDTCR, r16 ; Isključite WDT ldi r16, (0< van WDTCR, r16 ret |
C kod nprample(1) |
void WDT_off(void)
{ _WDR (); /* Obriši WDRF u MCUSR */ MCUSR = 0x00 /* Upišite logički jedan u WDCE i WDE */ WDTCR |= (1< / * Isključi WDT * / WDTCR = 0x00; } |
Napomena: 1. Vidi “Pramples” na stranici 6.
Opis registra
MCUSR - Registar statusa MCU
Registar statusa MCU pruža informacije o tome koji je izvor resetiranja uzrokovao reset MCU-a.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x34 | – | – | – | – | WDRF | BORF | EXTRF | PORF | MCUSR |
Čitanje/Pisanje | R | R | R | R | R/W | R/W | R/W | R/W |
Početna vrijednost 0 0 0 0 Pogledajte opis bita
Bitovi 7: 4 - Rez: Rezervirani bitovi
Ovi su bitovi rezervirani bitovi u ATtiny25 / 45/85 i uvijek će se čitati kao nula.
Bit 3 - WDRF: Oznaka za poništavanje čuvara
Ovaj je bit postavljen ako se dogodi Reset čuvara. Bit se resetira Power-on Resetom ili ispisom logičke nule na zastavicu.
Bit 2 - BORF: Smeđe zastavica resetiranja
Ovaj je bit postavljen ako se dogodi Brown-out Reset. Bit se resetira Power-on Resetom ili ispisom logičke nule na zastavicu.
Bit 1 - EXTRF: Oznaka vanjskog resetiranja
Ovaj je bit postavljen ako se dogodi vanjsko resetiranje. Bit se resetira Power-on Resetom ili ispisom logičke nule na zastavicu.
Bit 0 - PORF: Oznaka resetiranja po uključenju
Ovaj je bit postavljen ako se dogodi resetiranje po uključenju. Bit se resetira samo zapisivanjem logičke nule u zastavicu.
Da bi upotrijebio Reset Flags za identificiranje stanja resetiranja, korisnik bi trebao pročitati i resetirati MCUSR što je ranije moguće u programu. Ako je registar obrisan prije ponovnog resetiranja, izvor resetiranja može se pronaći ispitivanjem zastavica za poništavanje.
WDTCR - Registar nadzora nadzornika
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x21 | WDIF | WDIE | WDP3 | WDCE | WDE | WDP2 | WDP1 | WDP0 | WDTCR |
Čitanje/Pisanje | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W | |
Početna vrijednost | 0 | 0 | 0 | 0 | X | 0 | 0 | 0 |
Bit 7 - WDIF: Oznaka prekida vremenskog ograničenja čuvara
Ovaj se bit postavlja kada se u nadzornom tajmeru dogodi vremensko ograničenje i kada se vremenski tajmer konfigurira za prekid. WDIF se uklanja hardverom pri izvršavanju odgovarajućeg vektora upravljanja prekidima. Alternativno, WDIF se briše pisanjem logičkog na zastavu. Kada se postave I-bit u SREG-u i WDIE-u, izvršava se prekid vremenskog ograničenja čuvara.
Bit 6 - WDIE: Omogućeno prekidanje vremenskog ograničenja
Kada se ovaj bit upiše u jedan, WDE se briše i postavlja I-bit u registru statusa, omogućen je prekid nadzornog vremena. U ovom se načinu izvršava odgovarajući prekid umjesto resetiranja ako dođe do vremenskog ograničenja u Watchdog Timeru.
Ako je postavljen WDE, WDIE se automatski uklanja pomoću hardvera kada dođe do vremenskog ograničenja. Ovo je korisno za čuvanje sigurnosnih postavki čuvara tijekom korištenja prekida. Nakon brisanja WDIE bita, sljedeći time-out će generirati reset. Da bi se izbjeglo resetiranje nadzornika, WDIE se mora postaviti nakon svakog prekida.
Tablica 8-2. Konfiguracija nadzornog mjerača vremena
WDE | WDIE | Držav tajmera | Akcija na time-outu |
0 | 0 | Zaustavljeno | Nijedan |
0 | 1 | Trčanje | Prekinuti |
1 | 0 | Trčanje | Resetiraj |
1 | 1 | Trčanje | Prekinuti |
Bit 4 - WDCE: Omogući promjenu čuvara
Ovaj bit mora biti postavljen kada je WDE bit zapisan na logičku nulu. U suprotnom, Watchdog neće biti onemogućen. Jednom kad je zapisan na jedan, hardver će očistiti ovaj bit nakon četiri takta. Pogledajte opis WDE bita za postupak onemogućavanja Watchdoga. Ovaj bit mora biti postavljen i pri promjeni bitova za predskaliranje. Vidjeti “Vremenske sekvence za promjenu konfiguracije Watchdog timera ”na stranici 43.
Bit 3 - WDE: Omogući čuvara
Kada se WDE upiše u logičku jedinicu, Watchdog Timer je omogućen, a ako je WDE zapisan u logičku nulu, funkcija Watchdog Timer je onemogućena. WDE se može obrisati samo ako WDCE bit ima logičku razinu jedan. Da biste onemogućili omogućeni Watchdog Timer, mora se slijediti sljedeći postupak:
U istoj operaciji napišite logičku WDCE i WDE. Logika mora biti zapisana u WDE iako je postavljena na jednu prije nego što započne operacija onemogućavanja.
U sljedeća četiri ciklusa takta upišite logiku 0 u WDE. Ovo onemogućava Watchdoga.
U razini sigurnosti 2, nije moguće onemogućiti Watchdog Timer, čak ni s gore opisanim algoritmom. Vidjeti “Tempirani nizovi za promjenu konfiguracije nadzornika vremena” na stranici 43.
U razini sigurnosti 1, WDE je nadjačan od strane WDRF u MCUSR-u. Vidjeti “MCUSR - Registar statusa MCU” na stranici 44 za opis WDRF-a. To znači da se WDE uvijek postavlja kad se postavi WDRF. Da biste očistili WDE, potrebno je očistiti WDRF prije nego što onemogućite Watchdoga gore opisanim postupkom. Ova značajka osigurava višestruko resetiranje tijekom uvjeta koji uzrokuju kvar i sigurno pokretanje nakon kvara.
Napomena: Ako se nadzorni mjerač vremena neće koristiti u aplikaciji, važno je proći kroz proceduru onemogućavanja nadzornog psa u inicijalizaciji uređaja. Ako je Watchdog slučajno uključen, nprampAko se pobjegne pokazivač ili stanje zatamnjenja, uređaj će se resetirati, što će zauzvrat dovesti do ponovnog resetiranja nadzornog psa. Kako bi se izbjegla ova situacija, aplikacijski softver uvijek treba izbrisati WDRF zastavicu i WDE kontrolni bit u inicijalizacijskoj rutini.
Bitovi 5, 2: 0 - WDP [3: 0]: Watchrog Timer Prescaler 3, 2, 1 i 0
WDP [3: 0] bitovi određuju prednamjenjivanje Watchdog Timer-a kada je Watchdog Timer omogućen. Različite vrijednosti predkaliranja i pripadajuća razdoblja isteka prikazana su u Tablica 8-3.
Tablica 8-3. Watchdog Timer Prescale Select
WDP3 | WDP2 | WDP1 | WDP0 | Broj ciklusa WDT oscilatora | Tipično vremensko ograničenje pri VCC = 5.0 V |
0 | 0 | 0 | 0 | 2K (2048) ciklusa | 16 ms |
0 | 0 | 0 | 1 | 4K (4096) ciklusa | 32 ms |
0 | 0 | 1 | 0 | 8K (8192) ciklusa | 64 ms |
0 | 0 | 1 | 1 | 16K (16384) ciklusa | 0.125 s |
0 | 1 | 0 | 0 | 32K (32764) ciklusa | 0.25 s |
0 | 1 | 0 | 1 | 64K (65536) ciklusa | 0.5 s |
0 | 1 | 1 | 0 | 128K (131072) ciklusa | 1.0 s |
0 | 1 | 1 | 1 | 256K (262144) ciklusa | 2.0 s |
1 | 0 | 0 | 0 | 512K (524288) ciklusa | 4.0 s |
1 | 0 | 0 | 1 | 1024K (1048576) ciklusa | 8.0 s |
Tablica 8-3. Watchdog Timer Prescale Select (nastavak)
WDP3 | WDP2 | WDP1 | WDP0 | Broj ciklusa WDT oscilatora | Tipično vremensko ograničenje 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 |
Napomena: 1. Ako je odabrano, koristit će se jedna od važećih postavki ispod 0b1010.
prekida
Ovaj odjeljak opisuje specifičnosti obrade prekida kako je izvedeno u ATtiny25 / 45/85. Opće objašnjenje postupanja s AVR prekidima potražite u “Ponovno postavljanje i rukovanje prekidima” na stranici 12.
Vektori prekida u ATtiny25 / 45/85
Vektori prekida ATtiny25 / 45/85 opisani su u Tablica 9-1ispod.
Tablica 9-1. Vektori resetiranja i prekida
Vektor br. | Adresa programa | Izvor | Definicija prekida |
1 | 0x0000 | RESETIRANJE | Vanjski pin, resetiranje napajanja, resetiranje smeđeg, vraćanje čuvara |
2 | 0x0001 | INT0 | Vanjski zahtjev za prekidom 0 |
3 | 0x0002 | PCINT0 | Zahtjev za prekidom izmjene pribadače 0 |
4 | 0x0003 | TIMER1_COMPA | Tajmer / brojač1 Usporedite podudaranje A |
5 | 0x0004 | TIMER1_OVF | Tajmer / brojač1 Preljev |
6 | 0x0005 | TIMER0_OVF | Tajmer / brojač0 Preljev |
7 | 0x0006 | EE_RDY | EEPROM spreman |
8 | 0x0007 | ANA_COMP | Analogna usporednica |
9 | 0x0008 | ADC | ADC konverzija dovršena |
10 | 0x0009 | TIMER1_COMPB | Tajmer / brojač1 Usporedite podudaranje B |
11 | 0x000A | TIMER0_COMPA | Tajmer / brojač0 Usporedite podudaranje A |
12 | 0x000B | TIMER0_COMPB | Tajmer / brojač0 Usporedite podudaranje B |
13 | 0x000C | WDT | Istek čuvara |
14 | 0x000D | USI_START | USI POČETAK |
15 | 0x000E | USI_OVF | USI Preljev |
Ako program nikada ne omogući izvor prekida, vektori prekida se ne koriste i na tim se mjestima može postaviti redoviti programski kod.
Tipična i opća postavka za adrese vektora prekida u ATtiny25/45/85 prikazana je u programu npr.ample ispod.
Montažni kodeks prample | ||
.org 0x0000 | ; Postavite adresu sljedećeg | izjava |
rjmp RESETIRANJE | ; Adresa 0x0000 | |
rjmp INT0_ISR | ; Adresa 0x0001 | |
rjmp PCINT0_ISR | ; Adresa 0x0002 | |
rjmp TIM1_COMPA_ISR | ; Adresa 0x0003 | |
rjmp TIM1_OVF_ISR | ; Adresa 0x0004 | |
rjmp TIM0_OVF_ISR | ; Adresa 0x0005 | |
rjmp EE_RDY_ISR | ; Adresa 0x0006 | |
rjmp ANA_COMP_ISR | ; Adresa 0x0007 | |
rjmp ADC_ISR | ; Adresa 0x0008 | |
rjmp TIM1_COMPB_ISR | ; Adresa 0x0009 | |
rjmp TIM0_COMPA_ISR | ; Adresa 0x000A | |
rjmp TIM0_COMPB_ISR | ; Adresa 0x000B | |
rjmp WDT_ISR | ; Adresa 0x000C | |
rjmp USI_START_ISR | ; Adresa 0x000D | |
rjmp USI_OVF_ISR | ; Adresa 0x000E | |
VRAĆANJE: | ; Početak glavnog programa | |
; Adresa 0x000F | ||
… |
Napomena: Vidi “Pramples” na stranici 6.
Vanjski prekidi
Vanjske prekide pokreće pin INT0 ili bilo koji od pinova PCINT [5: 0]. Imajte na umu da će se, ako je omogućeno, prekida aktivirati čak i ako su pinovi INT0 ili PCINT [5: 0] konfigurirani kao izlazi. Ova značajka pruža način generiranja softverskog prekida. Prekidi promjene pina PCI će se aktivirati ako se uključi bilo koji omogućeni pint PCINT [5: 0]. PCMSK Registar kontrolira koje igle doprinose prekidima promjene igle. Prekidi promjene pinova na PCINT-u [5: 0] otkrivaju se asinkrono. To podrazumijeva da se ovi prekidi mogu koristiti za buđenje dijela i iz načina mirovanja koji nisu iz mirovanja.
Prekidi INT0 mogu se pokrenuti padom ili usponom ruba ili niskom razinom. Ovo je postavljeno kako je navedeno u specifikaciji za MCU kontrolni registar - MCUCR. Kada je omogućen prekid INT0 i konfiguriran je kao okidač razine, prekid će se aktivirati sve dok se pin drži nisko. Imajte na umu da prepoznavanje prekida prekida ili padajućeg ruba na INT0 zahtijeva prisutnost I / O sata, opisanog u "Sustavi satova i njihova distribucija" na stranica 23.
Prekid niske razine
Prekid niske razine na INT0 otkriva se asinkrono. To implicira da se ovaj prekid može koristiti za buđenje dijela i iz načina mirovanja koji nisu iz mirovanja. I / O sat zaustavljen je u svim načinima mirovanja, osim u stanju mirovanja.
Imajte na umu da ako se prekid aktiviran razinom koristi za buđenje nakon isključenja, zahtijevana razina mora se držati dovoljno dugo da MCU dovrši buđenje kako bi pokrenuo prekid razine. Ako razina nestane prije kraja vremena pokretanja, MCU će se i dalje probuditi, ali se neće generirati prekid. Vrijeme pokretanja definirano je osiguračima SUT i CKSEL kao što je opisano u “Sistemski sat i opcije sata” na stranici 23.
Ako se donja razina na prekidnom pinu ukloni prije nego što se uređaj probudi, izvršavanje programa neće se preusmjeriti na rutinu usluge prekida, već će se nastaviti s uputama nakon naredbe SLEEP.
Vreme prekida pin promjene
Bivšiampprikazano je vrijeme prekida promjene pina Slika 9-1.
Opis registra
MCUCR - MCU kontrolni registar
Vanjski registar kontrole prekida A sadrži kontrolne bitove za kontrolu osjećaja prekida.
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Čitanje/Pisanje | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitovi 1: 0 - ISC0 [1: 0]: Kontrola osjeta prekida 0 Bit 1 i Bit 0
Vanjski prekid 0 aktivira se vanjskim pinom INT0 ako su postavljeni SREG I-zastavica i odgovarajuća maska prekida. Razina i rubovi na vanjskom INT0 pinu koji aktiviraju prekid definirani su u Tablica 9-2. Vrijednost na pinu INT0 je sampvodio prije otkrivanja rubova. Ako je odabran rubni ili preklopni prekid, impulsi koji traju dulje od jednog takta generirat će prekid. Nije zajamčeno da će kraći impulsi generirati prekid. Ako je odabran prekid niske razine, niska razina se mora zadržati do završetka instrukcije koja se trenutno izvršava kako bi se generirao prekid.
Tablica 9-2. Prekid 0 Kontrola osjetila
ISC01 | ISC00 | Opis |
0 | 0 | Niska razina INT0 generira zahtjev za prekidom. |
0 | 1 | Svaka logička promjena na INT0 generira zahtjev za prekidom. |
1 | 0 | Donji rub INT0 generira zahtjev za prekidom. |
1 | 1 | Uzlazni rub INT0 generira zahtjev za prekidom. |
GIMSK - Opći registar maski prekida
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3B | – | INT0 | PCIE | – | – | – | – | – | GIMSK |
Čitanje/Pisanje | R | R/W | R/W | R | R | R | R | R | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitovi 7, 4: 0 - Rez: Rezervirani bitovi
Ovi su bitovi rezervirani bitovi u ATtiny25 / 45/85 i uvijek će se čitati kao nula.
Bit 6 - INT0: Omogućen vanjski zahtjev za prekidom 0
Kada je postavljen bit INT0 (jedan) i postavljen je I-bit u registru statusa (SREG) (jedan), omogućen je vanjski prekid pina. Kontrolni senzori prekida 0 bitova 1/0 (ISC01 i ISC00) u MCU upravljačkom registru (MCUCR) definiraju hoće li se vanjski prekid aktivirati na rastućem i / ili padajućem rubu INT0 pina ili osjetne razine. Aktivnost na pinu uzrokovat će zahtjev za prekidom čak i ako je INT0 konfiguriran kao izlaz. Odgovarajući prekid vanjskog zahtjeva za prekidom 0 izvršava se iz vektora prekida INT0.
Bit 5 - PCIE: Omogući prekid promjene pina
Kad je postavljen PCIE bit (jedan) i postavljen je I-bit u registru statusa (SREG) (jedan), omogućen je prekid promjene pina. Svaka promjena na bilo kojem omogućenom PCINT [5: 0] pinu uzrokovat će prekid. Odgovarajući prekid zahtjeva za prekidom promjene pina izvršava se iz vektora prekida PCI. PCINT [5: 0] pinove omogućuje PCMSK0 Registar pojedinačno.
GIFR - Registar općih prekida
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x3A | – | INTF0 | PCIF | – | – | – | – | – | GIFR |
Čitanje/Pisanje | R | R/W | R/W | R | R | R | R | R | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitovi 7, 4: 0 - Rez: Rezervirani bitovi
Ovi su bitovi rezervirani bitovi u ATtiny25 / 45/85 i uvijek će se čitati kao nula.
Bit 6 - INTF0: Oznaka vanjskog prekida 0
Kada promjena ruba ili logike na pinu INT0 pokrene zahtjev za prekidom, INTF0 postaje postavljen (jedan). Ako su postavljeni I-bit u SREG-u i INT0-bit u GIMSK-u (jedan), MCU će skočiti na odgovarajući vektor prekida. Oznaka se briše kada se izvrši rutina prekida. Alternativno se zastava može očistiti tako da joj se napiše logična. Ova se zastavica uvijek briše kada je INT0 konfiguriran kao prekid razine.
Bit 5 - PCIF: Oznaka prekida za promjenu pina
Kada promjena logike na bilo kojem PCINT [5: 0] pinu pokrene zahtjev za prekidom, PCIF postaje postavljen (jedan). Ako su postavljeni I-bit u SREG-u i PCIE bit u GIMSK-u (jedan), MCU će skočiti na odgovarajući Vektor prekida. Oznaka se briše kada se izvrši rutina prekida. Alternativno se zastava može očistiti tako da joj se napiše logična.
PCMSK - Registar za promjenu maske za pin
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x15 | – | – | PCINT5 | PCINT4 | PCINT3 | PCINT2 | PCINT1 | PCINT0 | PCMSK |
Čitanje/Pisanje | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bitovi 7: 6 - Rez: Rezervirani bitovi
Ovi su bitovi rezervirani bitovi u ATtiny25 / 45/85 i uvijek će se čitati kao nula.
Bitovi 5: 0 - PCINT [5: 0]: Maska za omogućavanje promjene pina 5: 0
Svaki bit PCINT [5: 0] odabire je li omogućen prekid promjene pina na odgovarajućem I / O pinu. Ako je postavljeno PCINT [5: 0] i postavljen je PCIE bit u GIMSK, prekid promjene pina omogućen je na odgovarajućem I / O pinu. Ako se PCINT [5: 0] izbriše, onemogućen je prekid promjene pina na odgovarajućem I / O pinu.
I/O portovi
Uvod
Svi AVR portovi imaju istinsku funkciju Read-Modify-Write kada se koriste kao opći digitalni I/O portovi. To znači da se smjer jednog pina porta može promijeniti bez nenamjerne promjene smjera bilo kojeg drugog pina s uputama SBI i CBI. Isto vrijedi za promjenu vrijednosti pogona (ako je konfiguriran kao izlaz) ili omogućavanje/onemogućavanje pull-up otpornika (ako je konfigurirano kao ulaz). Svaki izlazni međuspremnik ima simetrične karakteristike pogona s velikom sposobnošću ponora i izvora. Pin drajver je dovoljno jak da izravno pokreće LED zaslone. Svi pinovi priključka imaju individualno odabrane pull-up otpornike s napajanjemtage nepromjenljivi otpor. Svi I/O pinovi imaju zaštitne diode i za VCC i za uzemljenje kao što je naznačeno u Slika 10-1. Odnosi se na “Električne karakteristike” na stranici 161 za potpuni popis parametara.
Slika 10-1. I/O Pin ekvivalentna shema
Svi registri i reference bitova u ovom odjeljku napisani su u općem obliku. Malo slovo “x” predstavlja numeričko slovo za port, a malo “n” predstavlja broj bita. Međutim, kada se koristi registar ili bit definira u programu, mora se koristiti precizan oblik. Za nprample, PORTB3 za bit br. 3 u portu B, ovdje je općenito dokumentirano kao PORTxn. Fizički I/O registri i mjesta bitova navedeni su u "Opis registra" na stranica 64.
Tri su lokacije U / I memorijske adrese dodijeljene za svaki port, po jedno za Registar podataka - PORTx, Registar usmjeravanja podataka - DDRx i Ulazni pinovi ulaza - PINx. Ulazno / izlazno mjesto ulaznih pinova priključka samo je za čitanje, dok se Registar podataka i Registar za usmjeravanje podataka čitaju / zapisuju. Međutim, upisivanje logičkog u bit u PINx registar rezultirat će prebacivanjem u odgovarajući bit u Registru podataka. Uz to, Pull-up Disable - PUD bit u MCUCR-u onemogućava funkciju pull-up za sve pinove u svim priključcima kada je postavljen.
Korištenje ulazno-izlaznog priključka kao općeg digitalnog I / O-a opisano je u “Priključci kao opći digitalni I / O” na stranici 53. Većina pinova priključaka multipleksira se s zamjenskim funkcijama za periferne značajke na uređaju. Kako je svaka zamjenska funkcija ometala pin priključka opisano je u “Alternativne funkcije porta” na stranici 57. Pogledajte pojedine odjeljke modula za cjelovit opis zamjenskih funkcija.
Imajte na umu da omogućavanje zamjenske funkcije nekih pinova priključka ne utječe na upotrebu ostalih pinova u priključku kao općeniti digitalni I / O.
Priključci kao General Digital I / O
Priključci su dvosmjerni I / O priključci s opcijskim unutarnjim izvlačenjima. Slika 10-2 prikazuje funkcionalni opis jednog I / O-portnog pina, ovdje generički nazvanog Pxn.
Slika 10-2. Opći digitalni I/O(1)
Konfiguriranje pribadače
Svaki pin priključka sastoji se od tri bita registra: DDxn, PORTxn i PINxn. Kao što je prikazano u "Opis registra" na stranica 64, DDxn bitovima se pristupa na DDRx I / O adresi, PORTxn bitovima na PORTx I / O adresi, a PINxn bitovima na PINx I / O adresi.
DDxn bit u registru DDRx odabire smjer ovog pina. Ako je DDxn zapisan kao logički, Pxn je konfiguriran kao izlazni pin. Ako je DDxn zapisan kao logička nula, Pxn je konfiguriran kao ulazni pin.
Ako je PORTxn zapisan kao logički jedan kada je pin konfiguriran kao ulazni pin, aktivira se otpor za izvlačenje. Da biste isključili pull-up otpornik, PORTxn mora biti zapisan kao logička nula ili pin mora biti konfiguriran kao izlazni pin. Pribadače porta se navode tri puta kada stanje resetiranja postane aktivno, čak i ako ne rade satovi.
Ako je PORTxn zapisan kao logički jedan kada je pin konfiguriran kao izlazni pin, pin priključka je postavljen visoko (jedan). Ako je PORTxn napisana logička nula kada je pin konfiguriran kao izlazni pin, pin priključka se vozi nisko (nula).
Prebacivanje pina
Pisanje logičke logike u PINxn prebacuje vrijednost PORTxn, neovisno o vrijednosti DDRxn. Imajte na umu da se SBI uputa može koristiti za prebacivanje jednog bita u priključku.
Prebacivanje između ulaza i izlaza
Prilikom prebacivanja između trostrukog stanja ({DDxn, PORTxn} = 0b00) i visokog izlaza ({DDxn, PORTxn} = 0b11), srednjeg stanja s omogućenim podizanjem {DDxn, PORTxn} = 0b01) ili niskog izlaza ({DDxn, PORTxn} = 0b10) se mora pojaviti. Normalno, omogućeno stanje povlačenja u potpunosti je prihvatljivo, jer okruženje visoke impedancije neće primijetiti razliku između snažnog visokog pokretača i povlačenja. Ako to nije slučaj, PUD bit u registru MCUCR može se postaviti da onemogući sva povlačenja u svim priključcima.
Prebacivanje između ulaza s povlačenjem i izlaza nisko generira isti problem. Korisnik mora upotrijebiti ili tri-stanje ({DDxn, PORTxn} = 0b00) ili visoko izlazno stanje ({DDxn, PORTxn} = 0b10) kao međukorak.
Tablica 10-1 sažima upravljačke signale za vrijednost pina.
Tablica 10-1. Konfiguracije pinova porta
DDxn | PORTxn | PUD
(u MCUCR) |
I/O | Povlačenje | Komentar |
0 | 0 | X | Ulazni | Ne | Tri države (Hi-Z) |
0 | 1 | 0 | Ulazni | Da | Pxn će izvor struje ako je vanjski. povukao nisko. |
0 | 1 | 1 | Ulazni | Ne | Tri države (Hi-Z) |
1 | 0 | X | Izlaz | Ne | Izlaz nizak (sudoper) |
1 | 1 | X | Izlaz | Ne | Izlaz visok (izvor) |
Čitanje vrijednosti pribadače
Neovisno o postavci bita za usmjeravanje podataka DDxn, pin porta može se pročitati kroz bit za registraciju PINxn. Kao što je prikazano u Slika 10-2, bit za registraciju PINxn i prethodni zasun čine sinkronizator. To je potrebno kako bi se izbjegla metastabilnost ako fizički pin mijenja vrijednost blizu ruba unutarnjeg sata, ali uvodi i kašnjenje. Slika 10-3 prikazuje vremenski dijagram sinkronizacije pri očitavanju vanjske primijenjene vrijednosti pina. Maksimalna i minimalna kašnjenja širenja označena su tpd,max i tpd,min respektivno.
Razmotrite razdoblje sata koje počinje ubrzo nakon prvog pada ruba sistemskog sata. Zasun je zatvoren kad je sat nizak, a postaje proziran kada je sat visok, što pokazuje zasjenjeno područje signala "SYNC LATCH". Vrijednost signala zaključava se kada sistemski sat padne. Uvršten je u PINxn registar na sljedećem pozitivnom rubu sata. Kao što pokazuju dvije strelice tpd, max i tpd, min, jedan prijelaz signala na pinu odgodit će se između ½ i 1½ razdoblja takta sustava, ovisno o vremenu tvrdnje.
Pri ponovnom očitavanju softverski dodijeljene vrijednosti pin-a, mora se umetnuti nop uputa kako je naznačeno u Slika 10-4. Uputa za izlaz postavlja signal "SYNC LATCH" na pozitivnom rubu sata. U ovom slučaju, kašnjenje tpd kroz sinkronizator jedno je vrijeme sata sustava.
Sljedeći kod nprample pokazuje kako postaviti pinove porta B 0 i 1 visoko, 2 i 3 na nisko i definirati pinove porta od 4 do 5 kao ulaz s povlačenjem dodijeljenim pinu porta 4. Rezultirajuće vrijednosti pinova ponovno se očitavaju, ali kao što je prethodno objašnjeno, nop instrukcija je uključena kako bi se mogla pročitati vrijednost nedavno dodijeljena nekim od pinova.
Montažni kodeks prample(1) |
…
; Definirajte zgibove i postavite visoke rezultate ; Definirajte upute za priključke ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0) ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0) izlaz PORTB,r16 van DDRB, r17 ; Umetnite nop za sinkronizaciju ne ; Očitajte priključke pinova u r16, PINB … |
Napomena: Za asemblerski program, dva privremena registra koriste se za minimiziranje vremena od postavljanja povlačenja na pinove 0, 1 i 4, dok se bitovi smjera ne postave ispravno, definirajući bitove 2 i 3 kao niske i redefinirajući bitove 0 i 1 kao jaki visoki vozači.
C kod nprample |
nepotpisani znak i;
… /* Definirajte zgibove i postavite visoke rezultate */ /* Definirajte smjerove za pinove porta */ PORTB = (1< DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0); /* Umetnite nop za sinkronizaciju*/ _NOP (); /* Čitaj pinove porta */ i = PINB; … |
Omogućeni digitalni ulaz i režimi mirovanja
Kao što je prikazano u Slika 10-2, digitalni ulazni signal može biti clamped na masu na ulazu schmitt-triggera. Signal koji je na slici označen kao SLEEP, postavlja MCU Sleep Controller u Power-down modu kako bi se izbjegla velika potrošnja energije ako neki ulazni signali ostanu neaktivni ili imaju razinu analognog signala blizu VCC/2.
SLEEP je nadjačan za pinove priključaka omogućene kao vanjske pinove prekida. Ako vanjski zahtjev za prekidom nije omogućen, SLEEP je aktivan i za ove pinove. SLEEP također nadjačavaju razne druge zamjenske funkcije kako je opisano u “Alternativne funkcije porta” na stranici 57.
Ako je logička visoka razina ("jedan") prisutna na asinkronom vanjskom prekidnom pinu konfiguriranom kao "Prekid na rastućem rubu, padajućem rubu ili bilo kojoj logičkoj promjeni na pinu", dok vanjski prekid nije omogućen, odgovarajuća zastavica vanjskog prekida će postaviti kada se vraćate iz gore navedenog stanja mirovanja, kao clampstavljanje u ovaj način mirovanja proizvodi traženu logičku promjenu.
Nepovezane igle
Ako se neke igle ne koriste, preporučuje se osigurati da te igle imaju definiranu razinu. Iako je većina digitalnih ulaza onemogućena u načinima dubokog spavanja, kao što je gore opisano, plutajuće ulaze treba izbjegavati kako bi se smanjila potrošnja struje u svim ostalim načinima u kojima su omogućeni digitalni ulazi (Resetiranje, aktivni način rada i način mirovanja).
Najjednostavnija metoda za osiguranje definirane razine neiskorištene igle je omogućiti unutarnje povlačenje. U tom slučaju, pull-up će biti onemogućen tijekom resetiranja. Ako je niska potrošnja energije tijekom resetiranja važna, preporučuje se korištenje vanjskog pull-up ili pulldown. Spajanje pinova koji se ne koriste izravno na VCC ili GND se ne preporučuje, budući da to može uzrokovati prekomjerne struje ako se pin slučajno konfigurira kao izlaz.
Alternativne funkcije porta
Većina pinova priključaka imaju i zamjenske funkcije, uz općenite digitalne U / I. Slika 10-5 pokazuje kako upravljački signali pin-a ulaza iz pojednostavljenog Slika 10-2 mogu nadjačati zamjenske funkcije. Nadređeni signali možda neće biti prisutni u svim priključcima priključaka, ali slika služi kao generički opis primjenjiv na sve priključke u obitelji AVR mikrokontrolera.
Tablica 10-2. Generički opis nadjačavajućih signala za alternativne funkcije
Naziv signala | Puno ime | Opis |
PUOE | Pull-up Override Enable | Ako je postavljen ovaj signal, omogućavanjem povlačenja upravlja PUOV signal. Ako se ovaj signal izbriše, povlačenje je omogućeno kada
{DDxn, PORTxn, PUD} = 0b010. |
PUOV | Vrijednost nadjačavanja navlačenja | Ako je postavljen PUOE, povlačenje je omogućeno / onemogućeno kad je postavljen / obrisan PUOV, bez obzira na postavke bita DDxn, PORTxn i PUD. |
DDOE | Omogući nadjačavanje smjera podataka | Ako je ovaj signal postavljen, izlaznim pokretačkim programom omogućuje se DDOV signal. Ako se ovaj signal izbriše, izlazni pokretački pogon omogućuje bit za registraciju DDxn. |
DDOV | Vrijednost nadjačavanja smjera podataka | Ako je postavljen DDOE, izlazni pokretački program je omogućen / onemogućen kad je postavljen / obrisan DDOV, bez obzira na postavku bita za registraciju DDxn. |
PVOE | Omogući poništavanje vrijednosti priključka | Ako je ovaj signal postavljen i omogućen je izlazni pokretački program, vrijednost priključka kontrolira se PVOV signalom. Ako je PVOE obrisan, a izlazni pokretački program omogućen, Vrijednost porta kontrolira bit PORTxn Registra. |
PVOV | Vrijednost nadjačavanja vrijednosti priključka | Ako je postavljen PVOE, vrijednost priključka postavljena je na PVOV, bez obzira na postavku bita PORTxn registra. |
PTOE | Omogući premošćivanje prebacivanja priključka | Ako je postavljen PTOE, bit registra PORTxn se obrće. |
DIEOE | Omogući digitalni ulaz Omogući poništavanje | Ako je ovaj bit postavljen, Omogućivanjem digitalnog ulaza upravlja DIEOV signal. Ako se ovaj signal izbriše, Omogućavanje digitalnog ulaza određuje se prema stanju MCU-a (normalni način, način mirovanja). |
DIEOV | Vrijednost nadjačavanja digitalnog ulaza | Ako je postavljeno DIEOE, digitalni ulaz je omogućen / onemogućen kad je postavljen / obrisan DIEOV, bez obzira na stanje MCU-a (normalni način rada, način mirovanja). |
DI | Digitalni ulaz | Ovo je digitalni ulaz za zamjenu funkcija. Na slici je signal povezan s izlazom Schmitt-okidača, ali prije sinkronizatora. Ako se digitalni ulaz ne koristi kao izvor takta, modul s zamjenskom funkcijom koristit će vlastiti sinkronizator. |
AIO | Analogni ulaz / izlaz | Ovo je analogni ulaz / izlaz na / iz zamjenskih funkcija. Signal je povezan izravno s pločicom i može se koristiti dvosmjerno. |
Sljedeći pododjeljci ukratko opisuju zamjenske funkcije za svaki port i povezuju nadjačavajuće signale s zamjenskom funkcijom. Dodatne pojedinosti potražite u opisu zamjenske funkcije.
Alternativne funkcije priključka B
Pribadače porta B s zamjenskom funkcijom prikazane su u Tablica 10-3.
Tablica 10-3. Alternativne funkcije pinova priključka B
Port Pin | Alternativna funkcija |
PB5 | ![]() RESET: Resetiraj pin dW: otklanjanje pogrešakaWIRE I / O ADC0: ADC ulazni kanal 0 PCINT5: Prekid promjene pina, izvor 5 |
PB4 | XTAL2: Izlaz kristalnog oscilatora CLKO: Sistemski izlaz sata ADC2: ADC ulazni kanal 2
OC1B: Tajmer / brojač1 Usporedite izlaz B podudaranja PCINT4: Prekid promjene pina 0, izvor 4 |
PB3 | XTAL1: Ulaz kristalnog oscilatora CLKI: Ulaz vanjskog takta ADC3: ADC ulazni kanal 3
OC1B: Dopunski timer / brojač1 Usporedite izlaz B podudaranja PCINT3: Prekid promjene pina 0, izvor 3 |
PB2 | SCK: Ulaz serijskog sata ADC1: Ulazni kanal ADC 1
T0: Tajmer / brojač0 Izvor sata USCK: USI sat (trožični način rada) SCL: USI sat (dvožični način rada) INT0: Vanjski prekid 0 Ulaz PCINT2: Prekid promjene pina 0, izvor 2 |
PB1 | MISO: Ulaz glavnih podataka SPI / izlaz slave podataka AIN1: Analogna usporedba, negativni ulaz OC0B: Tajmer / brojač0 Usporedba rezultata B Izlaz OC1A: Tajmer / brojač1 Usporedba izlaza A podudaranje DO: USI izlaz podataka (način rada s tri žice) PCINT1: Prekid promjene pina 0, Izvor 1 |
PB0 | MOSI :: Izlaz matičnih podataka SPI / Ulaz podataka podređenih podataka AIN0: Analogna usporednica, pozitivan ulaz
OC0A: Timer/Counter0 Compare Match A izlaz OC1A: Dopunski timer / brojač1 Usporedite podudaranje izlaza DI: Ulaz podataka USI (način rada s tri žice) SDA: USI unos podataka (dvožični način) AREF: Vanjska analogna referenca PCINT0: Prekid promjene pina 0, izvor 0 |
Priključak B, bit 5 - RESET / dW / ADC0 / PCINT5
RESET: Ulaz vanjskog resetiranja aktivan je nizak i omogućen je neprogramiranjem („1“) osigurača RSTDISBL. Pullp se aktivira i izlazni pokretački program i digitalni ulaz deaktiviraju se kada se pin koristi kao RESET pin.
dW: Kada je programiran osigurač za omogućavanje ispravljača (DWEN), a bitovi za zaključavanje nisu programirani, aktivira se sustav za uklanjanje pogrešaka u ciljnom uređaju. PIN za RESET priključka konfiguriran je kao dvosmjerni I / O pin sa žicom I (otvorenim odvodom) s omogućenim povlačenjem i postaje komunikacijski pristupnik između cilja i emulatora.
ADC0: Analogno-digitalni pretvarač, kanal 0.
PCINT5: Izvor prekida za promjenu pina 5.
Priključak B, bit 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4
XTAL2: Pin čipa oscilatora sata 2. Koristi se kao klin sata za sve izvore takta čipa, osim unutarnjeg kalibriranog RC oscilatora i vanjskog sata. Kad se koristi kao pin sata, ne može se koristiti kao I / O pin. Kada koristite unutarnji kalibrirajući RC oscilator ili vanjski sat kao izvore čipskog sata, PB4 služi kao obični I / O pin.
CLKO: Podijeljeni sistemski sat može se prikazati na pinu PB4. Podijeljeni sistemski sat izlazit će ako je programiran osigurač CKOUT, bez obzira na postavke PORTB4 i DDB4. Također će biti prikazan tijekom resetiranja.
ADC2: Analogno-digitalni pretvarač, kanal 2.
OC1B: Izlaz za usporedbu rezultata podudaranja: PB4 pin može poslužiti kao vanjski izlaz za timer / brojač1 Usporedite podudaranje B kada je konfiguriran kao izlaz (set DDB4). OC1B pin je ujedno i izlazni pin za funkciju tajmera PWM načina.
PCINT4: Izvor prekida za promjenu pina 4.
Priključak B, bit 3 - XTAL1 / CLKI / ADC3 / OC1B / PCINT3
XTAL1: Pribadača oscilatora čipsa sata 1. Koristi se za sve izvore takta čipa, osim unutarnjeg kalibriranog RC oscilatora. Kad se koristi kao pin sata, ne može se koristiti kao I / O pin.
CLKI: Ulaz sata iz vanjskog izvora takta, vidi “Vanjski sat” na stranici 26.
ADC3: Analogno-digitalni pretvarač, kanal 3.
OC1B: Izlaz za usporedbu obrnutog izlaza: Pin PB3 može poslužiti kao vanjski izlaz za Timer / Counter1 Compare Match B kada je konfiguriran kao izlaz (DDB3 set). OC1B pin je ujedno i obrnuti izlazni pin za funkciju tajmera PWM načina.
PCINT3: Izvor prekida za promjenu pina 3.
Priključak B, bit 2 - SCK / ADC1 / T0 / USCK / SCL / INT0 / PCINT2
SCK: Izlaz glavnog sata, ulazni pin podređenog sata za SPI kanal. Kad je SPI omogućen kao slave, ovaj je pin konfiguriran kao ulaz bez obzira na postavku DDB2. Kad je SPI omogućen kao glavni, smjer podataka ovog pina kontrolira DDPB2. Kada SPI prisili da je SPI ulaz, povlačenjem se i dalje može upravljati bitom PORTB2.
ADC1: Analogno-digitalni pretvarač, kanal 1.
T0: Timer / Counter0 izvor brojača.
USCK: Sat s univerzalnim serijskim sučeljem s tri žice.
SCL: Serijski sat s dvožičnim načinom rada za dvožični način rada USI.
INT0: Vanjski izvor prekida 0.
PCINT2: Izvor prekida za promjenu pina 2.
Priključak B, bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1
MISO: Unos matičnih podataka, podređeni izlazni pin za SPI kanal. Kad je SPI omogućen kao glavni, ovaj je pin konfiguriran kao ulaz bez obzira na postavku DDB1. Kad je SPI omogućen kao slave, smjerom podataka ovog pina upravlja DDB1. Kad je SPI prisiljen da je ulaz ulaz, povlačenjem se i dalje može upravljati bitom PORTB1.
AIN1: Negativni ulaz analogne usporedbe. Konfigurirajte pin priključka kao ulaz s isključenim unutarnjim povlačenjem kako biste izbjegli ometanje funkcije digitalnih priključaka u funkciji analognog usporednika.
OC0B: Izlaz Usporedite izlaz. Pin PB1 može poslužiti kao vanjski izlaz za upoređivanje podudarnosti Timer / Counter0 B. Pin PB1 mora biti konfiguriran kao izlaz (set DDB1 (jedan)) da bi služio ovoj funkciji. OC0B pin je ujedno i izlazni pin za funkciju tajmera PWM načina.
OC1A: Izlaz za usporedbu izlaza: Pin PB1 može poslužiti kao vanjski izlaz za timer / brojač1 Usporedi podudaranje B kada je konfiguriran kao izlaz (set DDB1). OC1A pin je ujedno i izlazni pin za funkciju tajmera PWM načina.
DO: Izlaz podataka univerzalnog serijskog sučelja u načinu rada s tri žice. Trožični način Izlaz podataka zamjenjuje vrijednost PORTB1 i on se preusmjerava na priključak kad je postavljen bit smjera podataka DDB1 (jedan). PORTB1 i dalje omogućuje povlačenje, ako je smjer ulazni i ako je PORTB1 postavljen (jedan).
PCINT1: Izvor prekida za promjenu pina 1.
Priključak B, bit 0 - MOSI / AIN0 / OC0A / OC1A / DI / SDA / AREF / PCINT0
MOSI: Izlaz glavnih podataka SPI-a, Unos podataka slave-a za SPI kanal. Kad je SPI omogućen kao slave, ovaj je pin konfiguriran kao ulaz bez obzira na postavku DDB0. Kad je SPI omogućen kao glavni, smjerom podataka ovog pina upravlja DDB0. Kada SPI prisili da je SPI ulaz, povlačenjem se i dalje može upravljati PORTB0 bitom.
AIN0: Pozitivni ulaz analogne usporedbe. Konfigurirajte pin priključka kao ulaz s isključenim unutarnjim izvlačenjem kako biste izbjegli ometanje funkcije digitalnih priključaka u funkciji analognog usporednika.
OC0A: Izlaz Usporedite izlaz. Pin PB0 može poslužiti kao vanjski izlaz za timer / brojač0 Usporedi podudaranje A kada je konfiguriran kao izlaz (DDB0 set (jedan)). OC0A pin je ujedno i izlazni pin za funkciju tajmera PWM načina.
OC1A: Izlaz za usporedbu obrnutog izlaza: Pin PB0 može poslužiti kao vanjski izlaz za Timer / Counter1 Compare Match B kada je konfiguriran kao izlaz (DDB0 set). OC1A pin je ujedno i obrnuti izlazni pin za funkciju timera PWM načina.
SDA: Podaci o serijskom sučelju s dvije žice.
AREF: Vanjska analogna referenca za ADC. Drajver za povlačenje i izlaz su onemogućeni na PB0 kada se pin koristi kao vanjska referenca ili unutarnji Voltage Referenca s vanjskim kondenzatorom na pinu AREF.
DI: Unos podataka u USI trožičnom načinu. USI trožični način rada ne nadjačava uobičajene funkcije priključka, pa pin mora biti konfiguriran kao ulaz za DI funkciju.
PCINT0: Izvor prekida za promjenu pina 0.
Tablica 10-4 i Tablica 10-5 povezuju zamjenske funkcije priključka B s glavnim signalima prikazanim u Slika 10-5 na stranica 58.
Tablica 10-4. Nadjačavanje signala za alternativne funkcije u PB-u[5:3]
Naziv signala | PB5 / RESET / ADC0 / PCINT5 | PB4/ADC2/XTAL2/ OC1B/PCINT4 | PB3/ADC3/XTAL1/ OC1B/PCINT3 |
PUOE | ![]() |
0 | 0 |
PUOV | 1 | 0 | 0 |
DDOE | RSTDISBL(1) • DWEN(1) | 0 | 0 |
DDOV | debugWire Prijenos | 0 | 0 |
PVOE | 0 | OC1B Omogući | ![]() OC1B Omoguć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 | Ulaz PCINT5 | Ulaz PCINT4 | Ulaz PCINT3 |
AIO | RESET ulaz, ADC0 ulaz | ADC2 ulaz | ADC3 ulaz |
Napomena: kada je osigurač "0" (programirano).
Tablica 10-5. Nadjačavanje signala za alternativne funkcije u PB-u[2:0]
Naziv 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_DVIJE_ŽICE | 0 | USI_DVIJE_ŽICE |
PUOV | 0 | 0 | 0 |
DDOE | USI_DVIJE_ŽICE | 0 | USI_DVIJE_ŽICE |
DDOV | (USI_SCL_HOLD + PORTB2) • DDB2 | 0 | ![]() ![]() (SDA + PORTB0) • DDB0 |
PVOE | USI_DVIJE_ŽICE • DDB2 | OC0B Omogući + OC1A Omogući + USI_THREE_WIRE | ![]() OC0A Omogući + OC1A Omoguć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 /
Ulaz PCINT2 |
Ulaz PCINT1 | DI / SDA / PCINT0 ulaz |
AIO | ADC1 ulaz | Negativni ulaz analogne usporedbe | Pozitivni ulaz analogne usporedbe |
Opis registra
MCUCR - MCU kontrolni registar
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x35 | BODS | PUD | SE | SM1 | SM0 | BODSE | ISC01 | ISC00 | MCUCR |
Čitanje/Pisanje | R | R/W | R/W | R/W | R/W | R | R/W | R/W | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Bit 6 - PUD: Onemogućeno povlačenje
Kada se ovaj bit zapiše u jedan, povlačenja u U / I priključcima su onemogućena čak i ako su registri DDxn i PORTxn konfigurirani da omoguće izvlačenja ({DDxn, PORTxn} = 0b01). Vidjeti “Konfiguriranje pribadače” na stranici 54 za više detalja o ovoj značajci.
PORTB - Registar podataka porta B
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x18 | – | – | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 | PORTB |
Čitanje/Pisanje | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
DDRB - Registar usmjeravanja podataka porta B
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x17 | – | – | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | DDRB |
Čitanje/Pisanje | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Početna vrijednost | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
PINB - Adresa ulaznih pinova priključka B
bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
0x16 | – | – | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 | PINB |
Čitanje/Pisanje | R | R | R/W | R/W | R/W | R/W | R/W | R/W | |
Početna vrijednost | 0 | 0 | N/A | N/A | N/A | N/A | N/A | N/A |
8-bitni timer / brojač0 s PWM-om
Značajke
Dvije neovisne jedinice za usporedbu izlaza
Registri za usporedbu dvostrukog međuspremnika izlaza
Očisti odbrojavanje za usporedbu podudaranja (automatsko ponovno učitavanje)
Modul za ispravljanje fazne ispravne širine impulsa (PWM), bez kvarova
Promjenjivo PWM razdoblje
Generator frekvencije
Tri nezavisna izvora prekida (TOV0, OCF0A i OCF0B)
Nadview
Timer / Counter0 je 8-bitni modul tajmera / brojača opće namjene, s dvije neovisne jedinice za usporedbu izlaza i s PWM podrškom. Omogućuje točno vrijeme izvršavanja programa (upravljanje događajima) i generiranje valova.
Pojednostavljeni blok dijagram 8-bitnog tajmera / brojača prikazan je u Slika 11-1. Za stvarno postavljanje I / O zatiča pogledajte “Pinout ATtiny25 / 45/85” na stranici 2. Ulazno-izlazni registri s CPU-om, uključujući I / O bitove i I / O pinove, prikazani su podebljanim slovima. Ulazno-izlazni registar specifičan za uređaj i mjesta bitova navedeni su u “Opis registra” na stranici 77.
Timer/Counter (TCNT0) i registri usporedbe izlaza (OCR0A i OCR0B) su 8-bitni registri. Svi signali zahtjeva za prekid (skraćeno od Int.Req. na slici) vidljivi su u Registru zastavice prekida vremena (TIFR). Svi prekidi su pojedinačno maskirani s Timer Interrupt Mask Register (TIMSK). TIFR i TIMSK nisu prikazani na slici.
Tajmer/brojač se može taktirati interno, preko predskalera ili pomoću vanjskog izvora takta na T0 pinu. Logički blok odabira sata kontrolira koji izvor takta i rub koristi tajmer/brojač za povećanje (ili smanjenje) svoje vrijednosti. Timer/Counter je neaktivan kada nije odabran izvor sata. Izlaz iz logike odabira sata naziva se sat tajmera (clkT0).
Dvostruko puferirani izlazni usporedni registri (OCR0A i OCR0B) u svakom se trenutku uspoređuju s vrijednošću tajmera / brojača. Rezultat usporedbe može se koristiti generatorom valnih oblika za generiranje PWM-a ili promjenjive frekvencijske izlazne vrijednosti na izlaznim usporednim pinovima (OC0A i OC0B). Pogledajte “Izlazna jedinica za usporedbu” na stranici 69. za detalje. Događaj Usporedba podudaranja također će postaviti zastavicu za usporedbu (OCF0A ili OCF0B) koja se može koristiti za generiranje zahtjeva za prekidom Usporedba rezultata.
Definicije
Mnoge reference i bitovi u ovom odjeljku napisane su u općenitom obliku. Malim slovom "n" zamjenjuje se broj tajmera / brojača, u ovom slučaju 0. Malim slovom "x" zamjenjuje se jedinica za usporedbu izlaza, u ovom slučaju jedinica za usporedbu A ili jedinica za usporedbu B. Međutim, kada se koristi registar ili bit definira u programu se mora koristiti precizan obrazac, tj. TCNT0 za pristup vrijednosti brojača Timer / Counter0 i tako dalje.
Definicije u Tablica 11-1 također se široko koriste u cijelom dokumentu.
Tablica 11-1. Definicije
Konstanta | Opis |
DNO | Brojač doseže DNO kada postane 0x00 |
MAKS | Brojač dosegne svoj MAXimum kada postane 0xFF (decimalni 255) |
VRH | Brojač doseže VRH kada postane jednak najvećoj vrijednosti u slijedu brojanja. VRHUNSKOJ vrijednosti može se dodijeliti fiksna vrijednost 0xFF (MAX) ili vrijednost pohranjena u OCR0A registru. Dodjeljivanje ovisi o načinu rada |
Izmjerivač brojača / brojača i izvori sata
Tajmer / brojač može taktirati unutarnji ili vanjski izvor sata. Izvor sata odabire logika odabira sata kojom upravlja bitovi za odabir sata (c) koji se nalaze u kontrolnom registru vremena / brojača0 (TCCR0B).
Unutarnji izvor sata s prescalerom
Tajmer/Brojač0 može se taktirati izravno satom sustava (postavljanjem CS0[2:0] = 1). Ovo omogućuje najbrži rad, s maksimalnom frekvencijom takta mjerača vremena/brojača koja je jednaka frekvenciji takta sustava (fCLK_I/O). Alternativno, jedan od četiri odvojka iz predskalera može se koristiti kao izvor takta. Prethodno skalirani sat ima frekvenciju bilo koje
Resetiranje predsmjenjivača
Predskaler radi slobodno, tj. radi neovisno o logici odabira sata za Timer/Counter0. Budući da na predskaler ne utječe odabir sata timera/brojača, stanje predskalera imat će implikacije za situacije u kojima se koristi unaprijed skalirani sat. Jedan bivšiampLe artefakta predskaliranja je kada je mjerač vremena/brojač omogućen i taktiran od strane predskalera (6 > CS0[2:0] > 1). Broj ciklusa sistemskog takta od trenutka kada je timer omogućen do prvog brojanja može biti od 1 do N+1 ciklusa takta sustava, gdje je N jednako djelitelju predskalera (8, 64, 256 ili 1024).
Moguće je koristiti Resetiranje prescalera za sinkronizaciju odbrojavanja / brojača za izvršavanje programa.
Vanjski izvor sata
Vanjski izvor takta primijenjen na pin T0 može se koristiti kao sat tajmera/brojača (clkT0). Pin T0 je sampvođen jednom u svakom ciklusu takta sustava pomoću pin sinkronizacije logike. Sinkronizirani (sampled) signal se tada propušta
kroz detektor ruba. Slika 11-2 prikazuje funkcionalni ekvivalentni blok dijagram T0 sinkronizacije i logike detektora rubova. Registri se taktiraju na pozitivnom rubu internog sistemskog sata (clkI/O). Zasun je proziran u visokom razdoblju unutarnjeg sistemskog sata.
Detektor ruba generira jedan impuls clkT0 za svaki pozitivni (CS0[2:0] = 7) ili negativni (CS0[2:0] = 6) rub koji detektira.
OCR0x registri dvostruko su međuspremni kada se koristi bilo koji od načina modulacije širine impulsa (PWM). Za normalni i Clear Timer na načinima Usporedbe (CTC) dvostruko međuspremništvo je onemogućeno. Dvostruko puferiranje sinkronizira ažuriranje OCR0x Registra za usporedbu na vrh ili na dno niza brojanja. Sinkronizacija sprječava pojavu nesimetričnih PWM impulsa neparne duljine, čineći tako izlaz bez grešaka.
Pristup OCR0x Registru može se činiti složenim, ali to nije slučaj. Kada je omogućeno dvostruko puferiranje, CPU ima pristup registru OCR0x međuspremnika, a ako je dvostruko međuspremništvo onemogućeno, CPU će pristupiti OCR0x izravno.
Usporedba izlaznih snaga
U načinima generiranja valnog oblika koji nisu PWM, izlazni rezultat usporedbe može se prisiliti upisivanjem jednog u bit Usporedbe izlaznih sila (FOC0x). Prisiljavanje Usporedbe podudaranja neće postaviti OCF0x zastavicu niti će ponovno učitati / obrisati tajmer, ali OC0x pribadača će se ažurirati kao da je došlo do stvarne Usporedbe podudaranja (postavke bitova COM0x [1: 0] definiraju je li OC0x pribadača postavljena, obrisana ili prebačena).
Usporedite blokiranje podudaranja TCNT0 Write
Sve operacije upisivanja CPU-a u registar TCNT0 blokirat će svako uspoređivanje koje se dogodi u sljedećem ciklusu takta, čak i kad je tajmer zaustavljen. Ova značajka omogućuje inicijalizaciju OCR0x na istu vrijednost kao TCNT0 bez pokretanja prekida kada je omogućen sat odbrojavanja / brojača.
Korištenje jedinice za usporedbu rezultata
Budući da će pisanje TCNT0 u bilo kojem načinu rada blokirati sve Usporedne podudarnosti za jedan ciklus takta timera, postoje rizici povezani s promjenom TCNT0 kada se koristi jedinica za usporedbu izlaza, neovisno o tome radi li tajmer / brojač. Ako je vrijednost zapisana u TCNT0 jednaka vrijednosti OCR0x, uspoređivanje će se propustiti, što će rezultirati nepravilnim generiranjem valnog oblika. Slično tome, ne zapisujte vrijednost TCNT0 jednaku Dnu kada brojač odbrojava.
Postavljanje OC0x treba izvršiti prije postavljanja Registra smjera podataka za izlaz porta pin-a. Najlakši način postavljanja vrijednosti OC0x je upotreba strob-bitova Force Output Compare (FOC0x) u normalnom načinu rada. OC0x registri zadržavaju svoje vrijednosti čak i kada se mijenjaju između načina generiranja valnih oblika.
Imajte na umu da COM0x [1: 0] bitovi nisu dvostruko međuspremni zajedno s vrijednošću usporedbe. Promjena bitova COM0x [1: 0] stupit će na snagu odmah.
Usporedite izlaznu jedinicu podudaranja
Bitovi načina Usporedba izlaza (COM0x [1: 0]) imaju dvije funkcije. Generator valnih oblika koristi COM0x [1: 0] bitove za definiranje stanja izlazne usporedbe (OC0x) na sljedećem Usporednom uspoređivanju. Također, bitovi COM0x [1: 0] kontroliraju izlazni izvor pin-a OC0x. Slika 11-6 prikazuje pojednostavljenu shemu logike na koju utječe postavka bita COM0x [1: 0]. I / O registri, I / O bitovi i I / O zatiči na slici prikazani su podebljano. Prikazani su samo dijelovi općih U / I registara za kontrolu ulaza (DDR i PORT) na koje utječu bitovi COM0x [1: 0]. Kada se govori o stanju OC0x, referenca se odnosi na interni OC0x Registar, a ne na OC0x pin. Ako se dogodi resetiranje sustava, OC0x Registar vraća se na "0".
Kad je OC0A / OC0B spojen na I / O pin, funkcija bitova COM0A [1: 0] / COM0B [1: 0] ovisi o postavci bita WGM0 [2: 0]. Tablica 11-2 prikazuje funkciju bita COM0x [1: 0] kada su bitovi WGM0 [2: 0] postavljeni na normalan ili CTC način rada (ne-PWM).
Tablica 11-2. Usporedite izlazni način, ne-PWM način
COM0A1 COM0B1 | COM0A0 COM0B0 | Opis |
0 | 0 | Uobičajeni rad priključka, OC0A / OC0B je odspojen. |
0 | 1 | Prebaci OC0A / OC0B na Match Match |
1 | 0 | Očistite OC0A / OC0B na Match Matchu |
1 | 1 | Postavite OC0A / OC0B na Match Match |
Tablica 11-3 prikazuje funkciju bita COM0x [1: 0] kada su bitovi WGM0 [2: 0] postavljeni na brzi PWM način.
Tablica 11-3. Usporedite izlazni način, brzi PWM način(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Opis |
0 | 0 | Uobičajeni rad priključka, OC0A / OC0B je odspojen. |
0 | 1 | Rezervirano |
1 | 0 | Očistite OC0A / OC0B na Usporednom podudaranju, postavite OC0A / OC0B na DNO (neinvertirajući način) |
1 | 1 | Postavite OC0A / OC0B na Usporedi podudaranje, očistite OC0A / OC0B DONO (način okretanja) |
Napomena: Poseban slučaj se događa kada je OCR0A ili OCR0B jednako TOP i postavljeno je COM0A1/COM0B1. U ovom slučaju, usporedba podudaranja se zanemaruje, ali postavljanje ili brisanje se vrši na DNU. Vidjeti “Način brzog PWM-a” na stranici 73 za više detalja.
Tablica 11-4 prikazuje funkciju bita COM0x [1: 0] kad su bitovi WGM0 [2: 0] postavljeni na fazno ispravan PWM način.
Tablica 11-4. Usporedite izlazni način rada, PWM način ispravne faze(1)
COM0A1 COM0B1 | COM0A0 COM0B0 | Opis |
0 | 0 | Uobičajeni rad priključka, OC0A / OC0B je odspojen. |
0 | 1 | Rezervirano |
1 | 0 | Očistite OC0A / OC0B na Match Matchu prilikom brojanja. Postavite OC0A / OC0B na Usporedi podudaranje prilikom odbrojavanja. |
1 | 1 | Postavite OC0A / OC0B na Usporedi podudaranje prilikom brojanja prema gore. Očistite OC0A / OC0B na Match Matchu prilikom odbrojavanja. |
Napomena: 1. Poseban slučaj se događa kada je OCR0A ili OCR0B jednako TOP i postavljeno je COM0A1/COM0B1. U ovom slučaju, usporedba podudaranja se zanemaruje, ali postavljanje ili brisanje se vrši na VRHU. Vidjeti “Način ispravljanja PWM faze” na stranici 74 za više detalja.
Bitovi 3: 2 - Rez: Rezervirani bitovi
Ovi su bitovi rezervirani bitovi u ATtiny25 / 45/85 i uvijek će se čitati kao nula.
Bitovi 1: 0 - WGM0 [1: 0]: Način generiranja valnog oblika
U kombinaciji s bitom WGM02 koji se nalazi u registru TCCR0B, ovi bitovi kontroliraju slijed brojenja brojača, izvor maksimalne (TOP) vrijednosti brojača i vrstu generiranja valnog oblika, pogledajte Tablica 11-5. Načini rada koje podržava jedinica Timer / Counter su: Normalni način rada (brojač), Clear Timer on Compare Match (CTC) način rada i dvije vrste načina modulacije impulsne širine (PWM) (vidi “Načini rada” na stranici 71).
Tablica 11-5. Opis bita načina generiranja valnog oblika
Način rada | WGM 02 | WGM 01 | WGM 00 | Način rada timera / brojača | VRH | Ažuriranje OCRx na | Postavljena zastava TOV |
0 | 0 | 0 | 0 | Normalan | 0xFF | Odmah | MAKS(1) |
1 | 0 | 0 | 1 | PWM, faza ispravna | 0xFF | VRH | DNO(2) |
2 | 0 | 1 | 0 | CTC | OCRA | Odmah | MAKS(1) |
3 | 0 | 1 | 1 | Brzi PWM | 0xFF | DNO(2) | MAKS(1) |
4 | 1 | 0 | 0 | Rezervirano | – | – | – |
5 | 1 | 0 | 1 | PWM, faza ispravna | OCRA | VRH | DNO(2) |
6 | 1 | 1 | 0 | Rezervirano | – | – | – |
7 | 1 | 1 | 1 | Brzi PWM | OCRA | DNO(2) | VRH |
Bit 7 - FOC0A: Usporedba izlaza snage A
Bit FOC0A aktivan je samo kada WGM bitovi određuju način koji nije PWM.
Međutim, da bi se osigurala kompatibilnost s budućim uređajima, ovaj bit mora biti postavljen na nulu kada je zapisan TCCR0B kada se radi u PWM načinu. Kada zapisujete logički u bit FOC0A, odmah se uspoređuje podudaranje na jedinici za generiranje valnih oblika. Izlaz OC0A mijenja se prema postavci bitova COM0A [1: 0]. Imajte na umu da je bit FOC0A implementiran kao stroboskop. Stoga je vrijednost prisutna u COM0A [1: 0] bitovima taj koji određuje učinak prisilne usporedbe.
Strobonski signal FOC0A neće generirati nikakav prekid niti će očistiti tajmer u CTC načinu rada koristeći OCR0A kao TOP. Bit FOC0A uvijek se čita kao nula.
Bit 6 - FOC0B: Usporedba izlaza snage B
Bit FOC0B aktivan je samo kada WGM bitovi određuju način koji nije PWM.
Međutim, da bi se osigurala kompatibilnost s budućim uređajima, ovaj bit mora biti postavljen na nulu kada je TCCR0B zapisan kada radi u PWM načinu. Prilikom upisivanja logičkog u bit FOC0B, odmah se uspoređuje podudaranje na jedinici za generiranje valnih oblika. Izlaz OC0B mijenja se u skladu s postavkom bitova COM0B [1: 0]. Imajte na umu da je bit FOC0B implementiran kao stroboskop. Stoga vrijednost prisutna u COM0B [1: 0] bitovima određuje učinak prisilne usporedbe.
Strobonski signal FOC0B neće generirati nikakav prekid niti će očistiti tajmer u CTC načinu rada koristeći OCR0B kao TOP.
Bit FOC0B uvijek se čita kao nula.
Bitovi 5: 4 - Rez: Rezervirani bitovi
Ovi su bitovi rezervirani bitovi u ATtiny25 / 45/85 i uvijek će se čitati kao nula.
Bit 3 - WGM02: Način generiranja valnog oblika
Pogledajte opis u “TCCR0A - Registar kontrole vremena / brojača A” na stranici 77.
Bitovi 2: 0 - CS0 [2: 0]: odabir sata
Tri bita za odabir sata odabiru izvor sata koji će koristiti timer / brojač.
Tablica 11-6. Sat Odaberite Opis bita
CS02 | CS01 | CS00 | Opis |
0 | 0 | 0 | Nema izvora sata (tajmer / brojač zaustavljen) |
0 | 0 | 1 | clkI/O/(bez predskaliranja) |
0 | 1 | 0 | clkI/O/8 (iz predskalera) |
0 | 1 | 1 | clkI/O/64 (iz predskalera) |
1 | 0 | 0 | clkI/O/256 (iz predskalera) |
1 | 0 | 1 | clkI/O/1024 (iz predskalera) |
1 | 1 | 0 | Vanjski izvor takta na T0 pinu. Sat na padajućem rubu. |
1 | 1 | 1 | Vanjski izvor takta na T0 pinu. Sat na usponu ruba. |
Ako se za timer / brojač0 koriste vanjski načini pinova, prijelazi na T0 pinu taktirat će brojač, čak i ako je pin konfiguriran kao izlaz. Ova značajka omogućuje softversku kontrolu brojanja.
Broji i usporedi jedinice
Općenita radnja Timer / Counter1 opisana je u asinkronom načinu rada, a rad u sinkronom načinu rada spominje se samo ako postoje razlike između ova dva načina. Slika 12-2 prikazuje blok-dijagram registra sinkronizacije brojač / brojač 1 i kašnjenja sinkronizacije između registara. Imajte na umu da svi detalji o dobivanju sata nisu prikazani na slici. Vrijednosti registra Timer / Counter1 prolaze kroz interne registre sinkronizacije, koji uzrokuju kašnjenje ulazne sinkronizacije, prije nego što utječu na rad brojača. Registri TCCR1, GTCCR, OCR1A, OCR1B i OCR1C mogu se pročitati odmah nakon pisanja registra. Vrijednosti povratnog očitanja kasne za registar Timer / Counter1 (TCNT1) i zastavice (OCF1A, OCF1B i TOV1), zbog ulazne i izlazne sinkronizacije.
Odbrojavanje / Brojilo1 odlikuje se visokom razlučivošću i visokom preciznošću uz niže mogućnosti predkaliranja. Također može podržati dva precizna, 8-bitna modulatora širine impulsa velike brzine koji koriste brzine takta do 64 MHz (ili 32 MHz u načinu male brzine). U ovom načinu rada, timer / brojač1 i registri za usporedbu izlaza služe kao dvostruki samostalni PWM s nepreklopljenim neinvertiranim i invertiranim izlazima. Pogledajte stranica 86 za detaljan opis ove funkcije. Slično tome, mogućnosti visokog predkaliranja čine ovu jedinicu korisnom za funkcije niže brzine ili za točno određivanje vremena s rijetkim radnjama.
Slika 12-2. Blok dijagram registra sinkronizacije mjerača vremena/brojača 1.
Tajmer / Brojač1 i uređaj za predskaliranje omogućuju pokretanje CPU-a iz bilo kojeg izvora takta dok uređaj za predskaliranje radi na brzom 64 MHz (ili 32 MHz u načinu brze obrade) PCK taktu u asinkronom načinu rada.
Imajte na umu da taktna frekvencija sustava mora biti niža od jedne trećine PCK frekvencije. Mehanizam sinkronizacije asinkronog mjerača vremena / brojača1 treba najmanje dva ruba PCK-a kada je sistemski sat visok. Ako je frekvencija sistemskog sata previsoka, rizik je da se podaci ili kontrolne vrijednosti izgube.
Sljedeće Slika 12-3 prikazuje blok dijagram za Timer / Counter1.
Tablica 12-1. Način usporedbe Odaberite u načinu rada PWM
COM1x1 | COM1x0 | Učinak na izlazne usporedne igle |
0 | 0 | OC1x nije povezan. OC1x nije povezan. |
0 | 1 | OC1x je obrisan na usporedbi. Postavite kadaTCNT1 = $ 00. OC1x postavljen na usporedbu. Brisano kada je TCNT1 = 00 USD. |
1 | 0 | OC1x je obrisan na usporedbi. Postavite kada je TCNT1 = $ 00. OC1x nije povezan. |
1 | 1 | OC1x Postavljeno za usporedbu. Brisano kada je TCNT1 = 00 USD. OC1x nije povezan. |
Karakteristike ADC-a
Tablica 21-8. Karakteristike ADC-a, jednostruki kanali. TA = -40°C do +85°C
Simbol | Parametar | Stanje | Min | Tip | Maks | jedinice |
Rezolucija | 10 | Bitovi | ||||
Apsolutna točnost (uključujući INL, DNL i kvantizaciju, pogreške pojačanja i pomaka) | VREF = 4V, VCC = 4V,
ADC takt = 200 kHz |
2 | LSB | |||
VREF = 4V, VCC = 4V,
ADC takt = 1 MHz |
3 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC takt = 200 kHz Način smanjenja buke |
1.5 | LSB | ||||
VREF = 4V, VCC = 4V,
ADC takt = 1 MHz Način smanjenja buke |
2.5 | LSB | ||||
Integralna nelinearnost (INL) (točnost nakon kalibracije pomaka i pojačanja) | VREF = 4V, VCC = 4V,
ADC takt = 200 kHz |
1 | LSB | |||
Diferencijalna nelinearnost (DNL) | VREF = 4V, VCC = 4V,
ADC takt = 200 kHz |
0.5 | LSB | |||
Dobiti pogrešku | VREF = 4V, VCC = 4V,
ADC takt = 200 kHz |
2.5 | LSB | |||
Pogreška pomaka | VREF = 4V, VCC = 4V,
ADC takt = 200 kHz |
1.5 | LSB | |||
Vrijeme pretvorbe | Besplatna pretvorba | 14 | 280 | pS | ||
Frekvencija sata | 50 | 1000 | kHz | |||
VIN broj | Ulazni voltage | GND | VREF | V | ||
Ulazna širina pojasa | 38.4 | kHz | ||||
AREF | Vanjske reference Voltage | 2.0 | VCC | V | ||
VINT | Unutarnji svtage Referenca | 1.0 | 1.1 | 1.2 | V | |
Interna referenca od 2.56 V (1) | VCC > 3.0 V | 2.3 | 2.56 | 2.8 | V | |
RREF | 32 | kΩ | ||||
KIŠA | Otpor analognog ulaza | 100 | MΩ | |||
Izlaz ADC-a | 0 | 1023 | LSB |
Napomena: 1. Vrijednosti su samo smjernice.
Tablica 21-9. Karakteristike ADC-a, diferencijalni kanali (unipolarni način). TA = -40°C do +85°C
Simbol | Parametar | Stanje | Min | Tip | Maks | jedinice |
Rezolucija | Dob = 1x | 10 | Bitovi | |||
Dob = 20x | 10 | Bitovi | ||||
Apsolutna točnost (uključujući INL, DNL i
Pogreške kvantizacije, pojačanja i pomaka) |
Dob = 1x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
10.0 | LSB | |||
Dob = 20x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
20.0 | LSB | ||||
Integralna nelinearnost (INL) (preciznost nakon pomaka i kalibracije pojačanja) | Dob = 1x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
4.0 | LSB | |||
Dob = 20x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
10.0 | LSB | ||||
Dobiti pogrešku | Dob = 1x | 10.0 | LSB | |||
Dob = 20x | 15.0 | LSB | ||||
Pogreška pomaka | Dob = 1x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
3.0 | LSB | |||
Dob = 20x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
4.0 | LSB | ||||
Vrijeme pretvorbe | Besplatna pretvorba | 70 | 280 | pS | ||
Frekvencija sata | 50 | 200 | kHz | |||
VIN broj | Ulazni voltage | GND | VCC | V | ||
VDIFF | Ulazni diferencijal Voltage | VREF/pojačanje | V | |||
Ulazna širina pojasa | 4 | kHz | ||||
AREF | Vanjske reference Voltage | 2.0 | VCC – 1.0 | V | ||
VINT | Unutarnji svtage Referenca | 1.0 | 1.1 | 1.2 | V | |
Interna referenca od 2.56 V (1) | VCC > 3.0 V | 2.3 | 2.56 | 2.8 | V | |
RREF | Referentni ulazni otpor | 32 | kΩ | |||
KIŠA | Otpor analognog ulaza | 100 | MΩ | |||
Izlaz ADC pretvorbe | 0 | 1023 | LSB |
Napomena: vrijednosti su samo smjernice.
Tablica 21-10. Karakteristike ADC-a, Diferencijalni kanali (Bipolarni mod). TA = -40°C do +85°C
Simbol | Parametar | Stanje | Min | Tip | Maks | jedinice |
Rezolucija | Dob = 1x | 10 | Bitovi | |||
Dob = 20x | 10 | Bitovi | ||||
Apsolutna točnost (uključujući INL, DNL i
Pogreške kvantizacije, pojačanja i pomaka) |
Dob = 1x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
8.0 | LSB | |||
Dob = 20x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
8.0 | LSB | ||||
Integralna nelinearnost (INL) (preciznost nakon pomaka i kalibracije pojačanja) | Dob = 1x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
4.0 | LSB | |||
Dob = 20x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
5.0 | LSB | ||||
Dobiti pogrešku | Dob = 1x | 4.0 | LSB | |||
Dob = 20x | 5.0 | LSB | ||||
Pogreška pomaka | Dob = 1x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
3.0 | LSB | |||
Dob = 20x
VREF = 4V, VCC = 5V ADC sat = 50 - 200 kHz |
4.0 | LSB | ||||
Vrijeme pretvorbe | Besplatna pretvorba | 70 | 280 | pS | ||
Frekvencija sata | 50 | 200 | kHz | |||
VIN broj | Ulazni voltage | GND | VCC | V | ||
VDIFF | Ulazni diferencijal Voltage | VREF/pojačanje | V | |||
Ulazna širina pojasa | 4 | kHz | ||||
AREF | Vanjske reference Voltage | 2.0 | VCC – 1.0 | V | ||
VINT | Unutarnji svtage Referenca | 1.0 | 1.1 | 1.2 | V | |
Interna referenca od 2.56 V (1) | VCC > 3.0 V | 2.3 | 2.56 | 2.8 | V | |
RREF | Referentni ulazni otpor | 32 | kΩ | |||
KIŠA | Otpor analognog ulaza | 100 | MΩ | |||
Izlaz ADC pretvorbe | -512 | 511 | LSB |
Sažetak skupa uputa
Mnemotehnika | Operandi | Opis | Operacija | Zastave | # Satovi |
ARITMETIČKE I LOGIČKE UPUTE | |||||
DODATI | 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 | Riječ dodajte odmah | Rdh:Rdl ← Rdh:Rdl + K | Z, C, N, V, S | 2 |
POD | Rd, Rr | Oduzmi dva registra | Rd ← Rd – Rr | Z, C, N, V, H | 1 |
POPEO SAM SE | Rd, K | Oduzmi konstantu iz Registra | Rd ← Rd – K | Z, C, N, V, H | 1 |
SBC | Rd, Rr | Oduzmi s Carry dva registra | Rd ← Rd – Rr – C | Z, C, N, V, H | 1 |
SBCI | Rd, K | Oduzmi s Carry Constant iz Reg. | Rd ← Rd – K – C | Z, C, N, V, H | 1 |
SBIW | Rdl, K | Oduzmi odmah od riječi | Rdh:Rdl ← Rdh:Rdl – K | Z, C, N, V, S | 2 |
I | Rd, Rr | Logički I registri | Rd ← Rd ∙ Rr | Z, N, V | 1 |
ANDI | Rd, K | Logično I registriraj se i konstantno | Rd ← Rd ∙ K | Z, N, V | 1 |
OR | Rd, Rr | Logični ILI registri | Rd ← Rd v Rr | Z, N, V | 1 |
ORI | Rd, K | Logično ILI registrirati i konstantno | Rd ← Rd v K | Z, N, V | 1 |
EOR | Rd, Rr | Ekskluzivni ILI registri | Rd ← Rd ⊕ Rr | Z, N, V | 1 |
COM | Rd | Nečiji dodatak | Rd ← 0xFF − Rd | Z, C, N, V | 1 |
NEG | Rd | Komplement dvojke | Rd ← 0x00 − Rd | Z, C, N, V, H | 1 |
SBR | Rd, K | Postavite bit (e) u Registrirajte se | Rd ← Rd v K | Z, N, V | 1 |
CBR | Rd, K | Očisti bit (ove) u Registruj se | Rd ← Rd ∙ (0xFF – K) | Z, N, V | 1 |
INC | Rd | Povećanje | Rd ← Rd + 1 | Z, N, V | 1 |
PROS | Rd | opadanje | Rd ← Rd − 1 | Z, N, V | 1 |
TST | Rd | Test za nulu ili minus | Rd ← Rd ∙ Rd | Z, N, V | 1 |
CLR | Rd | Očisti registar | Rd ← Rd ⊕ Rd | Z, N, V | 1 |
SER | Rd | Postavi registar | Rd ← 0xFF | Nijedan | 1 |
UPUTE ZA PODRUŽNICE | |||||
RJMP | k | Relativni skok | PC ← PC + k + 1 | Nijedan | 2 |
IJMP | Neizravni skok na (Z) | PC ← Z | Nijedan | 2 | |
POZOVITE | k | Relativni poziv potprograma | PC ← PC + k + 1 | Nijedan | 3 |
ICALL | Neizravni poziv na (Z) | PC ← Z | Nijedan | 3 | |
RET | Povratak potprograma | PC ← STOK | Nijedan | 4 | |
MREŽE | Povratak prekida | PC ← STOK | I | 4 | |
CPSE | Rd, Rr | Usporedite, preskočite ako je jednako | ako je (Rd = Rr) PC ← PC + 2 ili 3 | Nijedan | 1 |
CP | Rd, Rr | Usporedi | Rd − Rr | Z, N, V, C, H | 1 |
CPK | Rd, Rr | Usporedi s Carry | Rd − Rr − C | Z, N, V, C, H | 1 |
CPI | Rd, K | Usporedite registraciju s neposrednom | Rd − K | Z, N, V, C, H | 1 |
SBRC | Rr, b | Preskoči ako je bit u Registru izbrisan | ako je (Rr(b)=0) PC ← PC + 2 ili 3 | Nijedan | 1 |
SBRS | Rr, b | Preskoči ako je postavljeno Bit in Register | ako je (Rr(b)=1) PC ← PC + 2 ili 3 | Nijedan | 1 |
ŠBIĆ | P, rođ | Preskoči ako je izbrisan bit u I / O registru | ako je (P(b)=0) PC ← PC + 2 ili 3 | Nijedan | 1 |
SBIS | P, rođ | Preskoči ako je postavljeno Bit in I / O Register | ako je (P(b)=1) PC ← PC + 2 ili 3 | Nijedan | 1 |
BRBS | s, k | Podružnica ako je postavljena zastava statusa | ako je (SREG(s) = 1) tada je PC ←PC+k + 1 | Nijedan | 1/2 |
BRBC | s, k | Podružnica ako je oznaka statusa izbrisana | ako je (SREG(s) = 0) tada je PC ←PC+k + 1 | Nijedan | 1/2 |
BREQ | k | Grana ako je jednaka | ako je (Z = 1) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRNE | k | Grana ako nije jednaka | ako je (Z = 0) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRCS | k | Podružnica ako nosi set | ako je (C = 1) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRCC | k | Podružnica ako je Carry Clearing | ako je (C = 0) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRSH | k | Podružnica ako je ista ili viša | ako je (C = 0) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRLO | k | Podružnica ako je niža | ako je (C = 1) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRMI | k | Podružnica ako je minus | ako je (N = 1) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRPL | k | Podružnica ako je plus | ako je (N = 0) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRGE | k | Podružnica ako je veća ili jednaka, potpisana | ako je (N ⊕ V= 0) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRLT | k | Podružnica ako je manja od nule, potpisano | ako je (N ⊕ V= 1) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRHS | k | Grana ako je postavljena zastavica s pola nosača | ako je (H = 1) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRHC | k | Podružnica ako je oznaka upola nošena | ako je (H = 0) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRTS | k | Grana ako je postavljena zastavica T | ako je (T = 1) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRTC | k | Grana ako je T zastavica uklonjena | ako je (T = 0) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRVS | k | Grananje ako je postavljena zastavica za prelijevanje | ako je (V = 1) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRVC | k | Razgranaj se ako je obrisana zastavica preljeva | ako je (V = 0) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
BRIE | k | Podružnica ako je omogućen prekid | ako je ( I = 1) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
VJEBENICA | k | Podružnica ako je prekid onemogućen | ako je ( I = 0) tada je PC ← PC + k + 1 | Nijedan | 1/2 |
UPUTE ZA BIT I BIT-TEST | |||||
SBI | P, b | Postavi bit u I / O registru | I/O(P,b) ← 1 | Nijedan | 2 |
CBI | P, b | Očisti bit u I / O registru | I/O(P,b) ← 0 | Nijedan | 2 |
LSL | Rd | Logičan pomak ulijevo | Rd(n+1) ← Rd(n), Rd(0) ← 0 | Z, C, N, V | 1 |
LSR | Rd | Logičan pomak udesno | Rd(n) ← Rd(n+1), Rd(7) ← 0 | Z, C, N, V | 1 |
ULOGA | Rd | Rotirajte lijevo kroz Carry | Rd(0)←C,Rd(n+1) ← Rd(n),C←Rd(7) | Z, C, N, V | 1 |
ROR | Rd | Rotiraj desno kroz Carry | Rd(7)←C,Rd(n) ← Rd(n+1),C←Rd(0) | Z, C, N, V | 1 |
ASR | Rd | Aritmetički pomak udesno | Rd(n) ← Rd(n+1), n=0..6 | Z, C, N, V | 1 |
Mnemotehnika | Operandi | Opis | Operacija | Zastave | # Satovi |
ZAMJENA | Rd | Zamijenite grickalice | Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) | Nijedan | 1 |
BSET | s | Set zastava | SREG(ovi) ← 1 | SREG (s) | 1 |
BCLR | s | Označi jasno | SREG(ovi) ← 0 | SREG (s) | 1 |
BST | Rr, b | Bit Store od Registriraj se do T | T ← Rr(b) | T | 1 |
BLD | Rd, b | Bitno opterećenje od T do Registra | Rd(b) ← T | Nijedan | 1 |
SEK | Postavi Carry | C ← 1 | C | 1 | |
CLC | Clear Carry | C ← 0 | C | 1 | |
SEN | Postavi negativnu zastavicu | N ← 1 | N | 1 | |
CLN | Očisti negativnu zastavicu | N ← 0 | N | 1 | |
SEZ | Postavi nultu zastavicu | Z ← 1 | Z | 1 | |
CLZ | Jasna nulta zastavica | Z ← 0 | Z | 1 | |
SEI | Omogućivanje globalnog prekida | ja ← 1 | I | 1 | |
CLI | Onemogući globalni prekid | ja ← 0 | I | 1 | |
SES | Postavite potpisanu testnu zastavicu | S ← 1 | S | 1 | |
CLS | Očistite potpisanu testnu zastavicu | S ← 0 | S | 1 | |
SEV | Postavite Dvostruko nadopunjavanje. | V ← 1 | V | 1 | |
CLV | Očistite preljev dopunjavanja dvojki | V ← 0 | V | 1 | |
SET | Postavite T u SREG | T ← 1 | T | 1 | |
CLT | Vedro T u SREG-u | T ← 0 | T | 1 | |
SEH | Postavite Half Carry Flag u SREG | H ← 1 | H | 1 | |
CLH | Očistite zastavicu za pola nošenja u SREG-u | H ← 0 | H | 1 | |
UPUTE ZA PRIJENOS PODATAKA | |||||
MOV | Rd, Rr | Pomicanje između registara | Rd ← Rr | Nijedan | 1 |
MOVW | Rd, Rr | Kopiraj Registar riječi | Rd+1:Rd ← Rr+1:Rr | Nijedan | 1 |
LDI | Rd, K | Opterećenje odmah | Rd ← K | Nijedan | 1 |
LD | Rd, X | Opterećenje neizravno | Rd ← (X) | Nijedan | 2 |
LD | Rd, X + | Učitaj neizravno i naknadno uklj. | Rd ← (X), X ← X + 1 | Nijedan | 2 |
LD | Rd, - X | Učitaj neizravno i prije prosinca. | X ← X – 1, Rd ← (X) | Nijedan | 2 |
LD | Rd, Y | Opterećenje neizravno | Rd ← (Y) | Nijedan | 2 |
LD | Rd, Y + | Učitaj neizravno i naknadno uklj. | Rd ← (Y), Y ← Y + 1 | Nijedan | 2 |
LD | Rd, - Y | Učitaj neizravno i prije prosinca. | Y ← Y – 1, Rd ← (Y) | Nijedan | 2 |
LDD | Rd, Y + q | Neizravno opterećenje istiskivanjem | Rd ← (Y + q) | Nijedan | 2 |
LD | Rd, Z | Opterećenje neizravno | Rd ← (Z) | Nijedan | 2 |
LD | Rd, Z + | Učitaj neizravno i naknadno uklj. | Rd ← (Z), Z ← Z+1 | Nijedan | 2 |
LD | Rd, -Z | Učitaj neizravno i prije prosinca. | Z ← Z – 1, Rd ← (Z) | Nijedan | 2 |
LDD | Rd, Z + q | Neizravno opterećenje istiskivanjem | Rd ← (Z + q) | Nijedan | 2 |
LDS | Rd, k | Učitaj izravno iz SRAM-a | Rd ← (k) | Nijedan | 2 |
ST | X, Rr | Pohranite neizravno | (X) ← Rr | Nijedan | 2 |
ST | X +, Rr | Pohranite neizravno i naknadno uključeno. | (X) ← Rr, X ← X + 1 | Nijedan | 2 |
ST | - X, Rr | Pohranite neizravno i prije prosinca. | X ← X – 1, (X) ← Rr | Nijedan | 2 |
ST | Y, Rr | Pohranite neizravno | (Y) ← Rr | Nijedan | 2 |
ST | Y +, Rr | Pohranite neizravno i naknadno uključeno. | (Y) ← Rr, Y ← Y + 1 | Nijedan | 2 |
ST | - Da, Rr | Pohranite neizravno i prije prosinca. | Y ← Y – 1, (Y) ← Rr | Nijedan | 2 |
STD | Y + q, Rr | Pohranite neizravno s istiskivanjem | (Y + q) ← Rr | Nijedan | 2 |
ST | Z, Rr | Pohranite neizravno | (Z) ← Rr | Nijedan | 2 |
ST | Z +, Rr | Pohranite neizravno i naknadno uključeno. | (Z) ← Rr, Z ← Z + 1 | Nijedan | 2 |
ST | -Z, Rr | Pohranite neizravno i prije prosinca. | Z ← Z – 1, (Z) ← Rr | Nijedan | 2 |
STD | Z + q, Rr | Pohranite neizravno s istiskivanjem | (Z + q) ← Rr | Nijedan | 2 |
OPS | k, Rr | Pohranite izravno na SRAM | (k) ← Rr | Nijedan | 2 |
LPM | Učitaj memoriju programa | R0 ← (Z) | Nijedan | 3 | |
LPM | Rd, Z | Učitaj memoriju programa | Rd ← (Z) | Nijedan | 3 |
LPM | Rd, Z + | Učitaj memoriju programa i post-Inc | Rd ← (Z), Z ← Z+1 | Nijedan | 3 |
SPM | Pohranite programsku memoriju | (z) ← R1:R0 | Nijedan | ||
IN | Rd, P. | U luci | Rd ← P | Nijedan | 1 |
VAN | P, Rr | Izlazna luka | P ← Rr | Nijedan | 1 |
GURNUTI | Rr | Pritisnite registra na stogu | STOK ← Rr | Nijedan | 2 |
POP | Rd | Pop registar iz stoga | Rd ← STOG | Nijedan | 2 |
UPUTE ZA UPRAVLJANJE MCU-om | |||||
NOP | Bez operacije | Nijedan | 1 | ||
SPAVATI | Spavati | (vidi specifični opis funkcije spavanja) | Nijedan | 1 | |
WDR | Vraćanje čuvara | (vidi specifični opis za WDR / timer) | Nijedan | 1 | |
BREAK | Pauza |
Brzina (MHz) (1) | Opskrba Voltage (V) | Raspon temperature | Paket (2) | Kod naručivanja (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 |
Napomene: 1. Za brzinu u odnosu na opskrbu voltage, vidi odjeljak 21.3 “Brzina” na stranici 163.
Sva su pakiranja bez Pb, bez halida i potpuno zelena te su u skladu s Europskom direktivom o ograničavanju opasnih tvari (RoHS).
Indikatori koda
H: NiPdAu vodeća završna obrada
U: mat lim
R: traka i kolut
Ovi se uređaji mogu isporučiti i u obliku oblatne. Molimo kontaktirajte vaš lokalni prodajni ured Atmel za detaljne informacije o narudžbi i minimalne količine.
tiskarske pogreške
Pogreška ATtiny25
Revizijsko pismo u ovom odjeljku odnosi se na reviziju uređaja ATtiny25.
Otk D - F
Nije poznata pogreška.
Otkrivenje B - C
Čitanje EEPROM-a možda neće uspjeti pri malom volumenu napajanjatage / niska taktna frekvencija
Čitanje EEPROM-a možda neće uspjeti pri malom volumenu napajanjatage / niska taktna frekvencija
Pokušaj čitanja EEPROM-a na niskim taktnim frekvencijama i/ili malom volumenu napajanjatage može rezultirati nevažećim podacima.
Rješavanje problema / rješenje
Nemojte koristiti EEPROM kada je frekvencija takta ispod 1MHz i volumen napajanjatage je ispod 2V. Ako se radna frekvencija ne može povisiti iznad 1MHz, tada se obtage bi trebao biti veći od 2V. Slično, ako opskrba voltage se ne može povisiti iznad 2V tada bi radna frekvencija trebala biti veća od 1MHz.
Poznato je da je ova značajka ovisna o temperaturi, ali nije karakterizirana. Smjernice su dane samo za sobnu temperaturu.
Vlč
Ne sampvodio.
Pogreška ATtiny45
Revizijsko pismo u ovom odjeljku odnosi se na reviziju uređaja ATtiny45.
Otk F - G
Nije poznata pogreška
Otk D - E
Čitanje EEPROM-a možda neće uspjeti pri malom volumenu napajanjatage / niska taktna frekvencija
Čitanje EEPROM-a možda neće uspjeti pri malom volumenu napajanjatage / niska taktna frekvencija
Pokušaj čitanja EEPROM-a na niskim taktnim frekvencijama i/ili malom volumenu napajanjatage može rezultirati nevažećim podacima.
Rješavanje problema / rješenje
Nemojte koristiti EEPROM kada je frekvencija takta ispod 1MHz i volumen napajanjatage je ispod 2V. Ako se radna frekvencija ne može povisiti iznad 1MHz, tada se obtage bi trebao biti veći od 2V. Slično, ako opskrba voltage se ne može povisiti iznad 2V tada bi radna frekvencija trebala biti veća od 1MHz.
Poznato je da je ova značajka ovisna o temperaturi, ali nije karakterizirana. Smjernice su dane samo za sobnu temperaturu.
Otkrivenje B - C
PLL se ne zaključava
EEPROM čitanje iz aplikacijskog koda ne radi u načinu zaključavanja bitova 3
Čitanje EEPROM-a možda neće uspjeti pri malom volumenu napajanjatage / niska taktna frekvencija
Generiranje izlaza PWM brojača brojača vremena 1 na OC1B-XOC1B ne radi ispravno
PLL se ne zaključava
Kada je na frekvencijama ispod 6.0 MHz, PLL se neće zaključati
Rješavanje problema / rješenje
Kada koristite PLL, pokrenite na 6.0 MHz ili više.
EEPROM čitanje iz aplikacijskog koda ne radi u načinu zaključavanja bitova 3
Kada su bitovi za zaključavanje memorije LB2 i LB1 programirani u način 3, EEPROM očitanje ne radi iz aplikacijskog koda.
Rješavanje problema / zaobilaženje
Ne postavljajte način zaštite zaključavanja bitova 3 kada kod aplikacije treba čitati s EEPROM-a.
Čitanje EEPROM-a možda neće uspjeti pri malom volumenu napajanjatage / niska taktna frekvencija
Pokušaj čitanja EEPROM-a na niskim taktnim frekvencijama i/ili malom volumenu napajanjatage može rezultirati nevažećim podacima.
Rješavanje problema / rješenje
Nemojte koristiti EEPROM kada je frekvencija takta ispod 1MHz i volumen napajanjatage je ispod 2V. Ako se radna frekvencija ne može povisiti iznad 1MHz, tada se obtage bi trebao biti veći od 2V. Slično, ako opskrba voltage se ne može povisiti iznad 2V tada bi radna frekvencija trebala biti veća od 1MHz.
Poznato je da je ova značajka ovisna o temperaturi, ali nije karakterizirana. Smjernice su dane samo za sobnu temperaturu.
Generiranje izlaza PWM brojača brojača 1 na OC1B - XOC1B ne radi ispravno
Izlaz brojača vremena 1 PWM OC1B-XOC1B ne radi ispravno. Samo u slučaju kada su upravljački bitovi COM1B1 i COM1B0 u istom načinu rada kao COM1A1, odnosno COM1A0, izlaz OC1B-XOC1B radi ispravno.
Rješavanje problema / zaobilaženje
Jedino zaobilazno rješenje je korištenje iste kontrolne postavke na upravljačkim bitovima COM1A [1: 0] i COM1B [1: 0], pogledajte tablicu 14-4 u tehničkom listu. Problem je riješen za Tiny45 rev D.
Vlč
Prevelika potrošnja električne energije
DebugWIRE gubi komunikaciju kada pojedinačno prelazi u prekide
PLL se ne zaključava
EEPROM čitanje iz aplikacijskog koda ne radi u načinu zaključavanja bitova 3
Čitanje EEPROM-a možda neće uspjeti pri malom volumenu napajanjatage / niska taktna frekvencija
Prevelika potrošnja električne energije
Tri situacije će dovesti do previsoke potrošnje električne energije. Ovi su:
Vanjski sat odabiru osigurači, ali I / O PORT je i dalje omogućen kao izlaz.
EEPROM se očitava prije ulaska u napajanje.
VCC je 4.5 volti ili veći.
Odricanje od odgovornosti: Informacije u ovom dokumentu dane su u vezi s Atmel proizvodima. Ovim dokumentom ili u vezi s prodajom Atmelovih proizvoda ne daje se nikakva licenca, izričita ili implicitna, estoppelom ili na drugi način, za bilo koje pravo intelektualnog vlasništva. OSIM KAKO JE NAVEDENO U ATMEL UVJETIMA I ODREDBAMA PRODAJE KOJI SE NALAZE NA ATMEL-U WEBMJESTA, ATMEL NE PREUZIMA NIKAKVU ODGOVORNOST I ODRIČE SE BILO KAKVOG IZRIČITOG, IMPLICITNOG ILI ZAKONSKOG JAMSTVA KOJE SE ODNOSI NA NJEGOVE PROIZVODE, UKLJUČUJUĆI, ALI NE OGRANIČAVAJUĆI SE NA, IMPLICITNO JAMSTVO PRODAJE, PRIKLADNOSTI ZA ODREĐENU NAMJENU ILI NEKRŠENJA. ATMEL NI U KOM SLUČAJU NEĆE BITI ODGOVORAN ZA BILO KAKVU IZRAVNU, NEIZRAVNU, POSLJEDIČNU, KAZNENU, POSEBNU ILI SLUČAJNU ŠTETU (UKLJUČUJUĆI, BEZ OGRANIČENJA, ŠTETU ZBOG GUBITKA I DOBITI, PREKIDA U POSLOVANJU ILI GUBITKA INFORMACIJA) KOJA PROIZLAZI ZRAK UPOTREBE ILI NEMOGUĆNOSTI OVAJ DOKUMENT, ČAK I AKO JE ATMEL UPOZOREN O MOGUĆNOSTI TAKVE ŠTETE.
Atmel ne daje nikakva zastupanja niti jamstva u pogledu točnosti ili potpunosti sadržaja ovog dokumenta i zadržava pravo izmjene specifikacija i opisa proizvoda u bilo kojem trenutku bez prethodne najave. Atmel se ne obvezuje ažurirati ovdje sadržane informacije. Osim ako nije drugačije navedeno, Atmel proizvodi nisu prikladni i ne smiju se koristiti u automobilskim aplikacijama. Atmel proizvodi nisu namijenjeni, ovlašteni ili zajamčeni za upotrebu kao komponente u aplikacijama namijenjenim održavanju ili održavanju života.