Atmel

8-bitový mikrokontrolér Atmel AVR s 2/4/8K bajtovým programovateľným systémom Flashčip

 

Vlastnosti

  • Vysokovýkonný 8-bitový mikrokontrolér AVR® s nízkou spotrebou energie
  • Pokročilá architektúra RISC
  • 120 mocných pokynov - väčšina vykonaní jedného taktu
  • 32 x 8 pracovných registrov na všeobecné účely
  • Plne statická prevádzka
  • Trvalé programové a dátové pamäte
  • 2/4/8 kB bajtov programovateľnej programovej pamäte Flash v systéme
  • Výdrž: 10,000 XNUMX cyklov zápisu/vymazania
  • 128/256/512 bajtov v systéme programovateľná EEPROM
  • Výdrž: 100,000 XNUMX cyklov zápisu/vymazania
  • 128/256/512 bajtov Interná SRAM
  • Programovací zámok pre samo-programovací program Flash a bezpečnosť údajov EEPROM

Periférne funkcie

  • 8-bitový časovač / počítadlo s predradníkom a dvoma kanálmi PWM
  • 8-bitový vysokorýchlostný časovač / počítadlo s oddeleným predradníkom
  • 2 vysokofrekvenčné PWM výstupy so samostatnými výstupnými porovnávacími registrami
  • Programovateľný generátor mŕtveho času
  • USI - Universal Serial Interface with Start Condition Detector
  • 10-bitový ADC

4 samostatné kanály

2 dvojice diferenciálnych kanálov ADC s programovateľným zosilnením (1x, 20x)

Meranie teploty

Programovateľný časovač strážneho psa so samostatným oscilátorom na čipe

Analógový komparátor na čipe

Špeciálne vlastnosti mikrokontroléra

DebugWIRE On-chip Debug System

In-System programovateľný cez SPI port

Externé a interné zdroje prerušenia

Režim nečinnosti s nízkou spotrebou, redukcia šumu ADC a režimy vypnutia

Vylepšený resetovací obvod pri zapnutí

Programovateľný obvod detekcie zhasnutia

Interný kalibrovaný oscilátor

I / O a balíčky

Šesť programovateľných I / O riadkov

8-pin PDIP, 8-pin SOIC, 20-pad QFN / MLF a 8-pin TSSOP (iba ATtiny45 / V)

Prevádzkový zvtage
- 1.8 - 5.5 V pre ATtiny25V / 45V / 85V
- 2.7 - 5.5 V pre ATtiny25 / 45/85

Rýchlostný stupeň
- ATtiny25V / 45V / 85V: 0 - 4 MHz pri 1.8 - 5.5 V, 0 - 10 MHz pri 2.7 - 5.5 V
- ATtiny25 / 45/85: 0 - 10 MHz pri 2.7 - 5.5 V, 0 - 20 MHz pri 4.5 - 5.5 V

Rozsah priemyselných teplôt

Nízka spotreba energie

Aktívny režim:

1 MHz, 1.8 V: 300 uA

Režim vypnutia:

Konfigurácie pinov

Pinout ATtiny25 / 45/85 Konfigurácia

Popisy pinov

VCC: Supply voltage.
GND: Zem.
Port B (PB5:PB0): Port B je 6-bitový obojsmerný I/O port s internými pull-up odpormi (vybratými pre každý bit). Výstupné vyrovnávacie pamäte Port B majú symetrické charakteristiky pohonu s vysokou schopnosťou záchytu aj zdroja. Ako vstupy budú piny Port B, ktoré sú externe stiahnuté na nízku hodnotu, zdrojom prúdu, ak sú aktivované pull-up odpory. Piny portu B sú trojstavové, keď sa aktivuje podmienka resetovania, aj keď hodiny nebežia.

Port B tiež slúži na funkcie rôznych špeciálnych funkcií modelu ATtiny25 / 45/85, ako je uvedené
Na ATtiny25 sa programovateľné I / O porty PB3 a PB4 (piny 2 a 3) vymieňajú v režime kompatibility ATtiny15 na podporu spätnej kompatibility s ATtiny15.

RESET: Resetovanie vstupu. Nízka úroveň na tomto kolíku dlhšia ako minimálna dĺžka impulzu vygeneruje reset, aj keď hodiny nebežia a za predpokladu, že resetovací kolík nebol deaktivovaný. Minimálna dĺžka impulzu je uvedená v Tabuľka 21-4 na strane 165. Nie je zaručené, že kratšie impulzy vygenerujú reset.

Resetovací pin sa dá použiť aj ako (slabý) I / O pin.

Koniecview

ATtiny25 / 45/85 je 8-bitový mikrokontrolér CMOS s nízkym výkonom založený na architektúre RISC s vylepšeným AVR. Vykonaním výkonných pokynov v jednom taktovacom cykle dosahuje procesor ATtiny25 / 45/85 priepustnosť blížiacu sa 1 MIPS na MHz, čo umožňuje návrhárovi systému optimalizovať spotrebu energie v porovnaní s rýchlosťou spracovania.

Bloková schéma Bloková schéma

Jadro AVR kombinuje bohatú inštrukčnú sadu s 32 univerzálnymi pracovnými registrami. Všetkých 32 registrov je priamo pripojených k aritmetickej logickej jednotke (ALU), čo umožňuje prístup k dvom nezávislým registrom v jednej inštrukcii vykonanej v jednom hodinovom cykle. Výsledná architektúra je efektívnejšia z hľadiska kódu a dosahuje priepustnosť až desaťkrát rýchlejšiu ako bežné mikrokontroléry CISC.

ATtiny25 / 45/85 poskytuje nasledujúce funkcie: 2/4 / 8K bajtov In-System Programmable Flash, 128/256/512 bajtov EEPROM, 128/256/256 bajtov SRAM, 6 univerzálnych I / O liniek, 32 všeobecných účelové pracovné registre, jeden 8-bitový časovač / počítadlo s režimami porovnávania, jeden 8-bitový vysokorýchlostný časovač / počítadlo, univerzálne sériové rozhranie, interné a externé prerušenia, 4-kanálový, 10-bitový ADC, programovateľný časovač Watchdog s interným Oscilátor a tri softvérovo voliteľné režimy úspory energie. Pohotovostný režim zastaví procesor a umožní systému SRAM, časovač / počítadlo, ADC, analógový komparátor a systém prerušenia pokračovať v činnosti. Režim vypnutia uloží obsah registra a deaktivuje všetky funkcie čipu až do nasledujúceho prerušenia alebo resetovania hardvéru. Režim redukcie šumu ADC zastaví procesor a všetky I / O moduly okrem ADC, aby sa minimalizoval šum pri prepínaní počas prevodov ADC.

Prístroj je vyrobený pomocou technológie Atmel s vysokou hustotou energeticky nezávislej pamäte. On-chip ISP Flash umožňuje opätovné programovanie programovej pamäte v systéme prostredníctvom sériového rozhrania SPI, konvenčného programátora energeticky nezávislej pamäte alebo bootovacieho kódu na čipu bežiaceho na jadre AVR.

ATtiny25 / 45/85 AVR je podporovaný úplnou sadou nástrojov na vývoj programov a systémov vrátane: C Compilers, Macro Assemblers, Program Debugger / Simulators a Evaluation kits.

O zdrojoch

Komplexná sada vývojových nástrojov, poznámky k aplikácii a údajové listy sú k dispozícii na stiahnutie na http://www.atmel.com/avr.

Kód Examples

Táto dokumentácia obsahuje jednoduchý kód napramples, ktoré stručne ukazujú, ako používať rôzne časti zariadenia. Tieto kódy napramppredpokladajme, že časť špecifická hlavička file je zahrnutý pred kompiláciou. Uvedomte si, že nie všetci dodávatelia kompilátorov C obsahujú v hlavičke bitové definície files a spracovanie prerušenia v C závisí od kompilátora. Bližšie informácie získate v dokumentácii k kompilátoru C.

Pre I / O registre umiestnené na rozšírenej mape I / O musia byť pokyny „IN“, „OUT“, „SBIS“, „SBIC“, „CBI“ a „SBI“ nahradené pokynmi, ktoré umožňujú prístup k rozšíreným I / O. Spravidla to znamená „LDS“ a „STS“ v kombinácii s „SBRS“, „SBRC“, „SBR“ a „CBR“. Upozorňujeme, že nie všetky zariadenia AVR obsahujú rozšírenú mapu I / O.

Kapacitné snímanie dotyku

Atmel QTouch Library poskytuje jednoducho použiteľné riešenie pre dotykové rozhrania na mikroovládačoch Atmel AVR. Knižnica QTouch Library obsahuje podporu pre metódy získavania QTouch® a QMatrix®.

Dotykové snímanie sa ľahko pridáva do akejkoľvek aplikácie prepojením knižnice QTouch a použitím aplikačného programovacieho rozhrania (API) knižnice na definovanie dotykových kanálov a senzorov. Aplikácia potom zavolá API, aby získala informácie o kanáli a určila stav dotykového snímača.

Knižnica QTouch je bezplatná a dá sa stiahnuť z webu Atmel webstránky. Ďalšie informácie a podrobnosti o implementácii nájdete v používateľskej príručke knižnice QTouch - k dispozícii aj od spoločnosti Atmel webstránky.

Uchovávanie údajov

Výsledky kvalifikácie spoľahlivosti ukazujú, že predpokladaná miera zlyhania uchovania údajov je oveľa menej ako 1 PPM počas 20 rokov pri 85 ° C alebo 100 rokov pri 25 ° C.

Jadro procesora AVR

Úvod

Táto časť všeobecne pojednáva o architektúre jadra AVR. Hlavnou funkciou jadra CPU je zabezpečiť správne vykonávanie programu. CPU preto musí byť schopné prístupu k pamätiam, vykonávania výpočtov, riadenia periférií a spracovania prerušenia.

Architektonický koniecview Architektúra

Aby sa maximalizoval výkon a paralelnosť, používa AVR harvardskú architektúru - so samostatnými pamäťami a zbernicami pre program a dáta. Pokyny v programovej pamäti sú vykonávané s jednou úrovňou pipeline. Pokiaľ sa vykonáva jedna inštrukcia, ďalšia inštrukcia sa vopred vyzdvihne z pamäte programu. Táto koncepcia umožňuje vykonávanie pokynov v každom hodinovom cykle. Pamäť programu je programovateľná pamäť typu Flash zabudovaná v systéme.

Register s rýchlym prístupom File obsahuje 32 x 8-bitových všeobecných pracovných registrov s prístupovým časom jedného hodinového cyklu. To umožňuje jednocyklovú prevádzku aritmetickej logickej jednotky (ALU). V typickej operácii ALU sú z registra výstupom dva operandy File, operácia sa vykoná a výsledok sa uloží späť do registra File- v jednom hodinovom cykle.

Šesť z 32 registrov možno použiť ako tri 16-bitové ukazovatele nepriameho adresného registra na adresovanie dátového priestoru - čo umožňuje efektívne výpočty adries. Jeden z týchto ukazovateľov adresy možno použiť aj ako ukazovateľ adresy na vyhľadanie tabuliek v pamäti programu Flash. Týmito pridanými funkčnými registrami sú 16-bitový register X, Y a Z, ktorý je opísaný ďalej v tejto časti.

ALU podporuje aritmetické a logické operácie medzi registrami alebo medzi konštantou a registrom. V ALU je možné vykonávať aj operácie jedného registra. Po aritmetickej operácii sa stavový register aktualizuje, aby odrážal informácie o výsledku operácie.

Priebeh programu je zabezpečený podmienenými a bezpodmienečnými pokynmi na skok a volanie, ktoré sú schopné priamo adresovať celý adresný priestor. Väčšina inštrukcií AVR má jediný 16-bitový formát slova, ale existujú aj 32-bitové pokyny.

Počas prerušenia a hovoru podprogramu sa v zásobníku uloží spätná adresa Program Counter (PC). Zásobník je efektívne alokovaný vo všeobecných údajoch SRAM, a preto je veľkosť zásobníka obmedzená iba celkovou veľkosťou SRAM a využitím SRAM. Všetky užívateľské programy musia inicializovať SP v rutine Reset (predtým, ako sa vykonajú podprogramy alebo prerušenia). Stack Pointer (SP) je na čítanie / zápis prístupný v I / O priestore. K dátam SRAM je možné ľahko získať prístup prostredníctvom piatich rôznych režimov adresovania podporovaných v architektúre AVR.

Pamäťové priestory v architektúre AVR sú lineárne a bežné pamäťové mapy.

Flexibilný modul prerušenia má svoje riadiace registre v I / O priestore s ďalším bitom Global Interrupt Enable v registri stavu. Všetky prerušenia majú v tabuľke Interrupt Vector samostatný vektor prerušenia. Prerušenia majú prioritu v súlade s ich pozíciou vektora prerušenia. Čím nižšia je adresa vektora prerušenia, tým vyššia je priorita.

Pamäťový priestor I/O obsahuje 64 adries pre periférne funkcie CPU ako riadiace registre, SPI a ďalšie funkcie I/O. Do pamäte I/O je možné získať prístup priamo alebo ako do umiestnení dátového priestoru podľa registrátora File, 0x20 - 0x5F.

ALU - aritmetická logická jednotka

Vysokovýkonný AVR ALU pracuje v priamom spojení so všetkými 32 univerzálnymi pracovnými registrami. V rámci jediného hodinového cyklu sa vykonajú aritmetické operácie medzi registrami na všeobecné účely alebo medzi registrom a okamžitým záznamom. Operácie ALU sú rozdelené do troch hlavných kategórií - aritmetické, logické a bitové funkcie. Niektoré implementácie architektúry tiež poskytujú výkonný multiplikátor podporujúci podpísané / nepodpísané násobenie a zlomkový formát. Podrobný popis nájdete v časti „Instruction Set“.

Stavový register

Stavový register obsahuje informácie o výsledku naposledy vykonanej aritmetickej inštrukcie. Tieto informácie možno použiť na zmenu toku programu za účelom vykonania podmienených operácií. Pamätajte, že stavový register sa aktualizuje po všetkých operáciách ALU, ako sa uvádza v príručke k inštrukčnej sade. To v mnohých prípadoch odstráni potrebu používania vyhradených pokynov na porovnanie, čo povedie k rýchlejšiemu a kompaktnejšiemu kódu.

Stavový register sa neuloží automaticky pri zadaní rutiny prerušenia a obnoví sa po návrate z prerušenia. Musí to byť riešené softvérom.

SREG - Register stavu AVR

Register stavu AVR - SREG - je definovaný ako:

Bit 7 6 5 4 3 2 1 0
0x3F I T H S V N Z C SREG
Čítanie/Písanie R/W R/W R/W R/W R/W R/W R/W R/W
Počiatočná hodnota 0 0 0 0 0 0 0 0

Bit 7 - I: Globálne prerušenie je povolené

Aby boli prerušenia povolené, musí byť nastavený bit Global Interrupt Enable. Jednotlivé riadenie aktivácie prerušenia sa potom vykonáva v samostatných riadiacich registroch. Ak je vymazaný register globálneho prerušenia, žiadne z prerušení nie je povolené nezávisle od nastavenia jednotlivých povolení pre prerušenie. I-bit je po prerušení prerušený hardvérom a je nastavený inštrukciou RETI na povolenie ďalších prerušení. I-bit môže byť tiež nastavený a vymazaný aplikáciou s inštrukciami SEI a CLI, ako je opísané v príručke k súboru inštrukcií.

Bit 6 - T: Úložisko bitových kópií

Pokyny na kopírovanie bitov BLD (Bit LoaD) a BST (Bit STore) používajú T-bit ako zdroj alebo cieľ ovládaného bitu. Trochu z registra v registri File je možné skopírovať do T pomocou inštrukcie BST a bit v T je možné skopírovať do bitu v registri v registri File podľa inštrukcie BLD.

Bit 5 - H: Vlajka s polovičným prenášaním

Vlajka Half Carry H označuje v niektorých aritmetických operáciách Half Carry. Polovičné prenášanie je užitočné pri aritmetike BCD. Podrobné informácie nájdete v časti „Popis sady pokynov“.

Bit 4 – S: Sign Bit, S = N ⊕ V

S-bit je vždy exkluzívny alebo medzi záporným príznakom N a dvojitým príznakom pretečenia komplementu V. Podrobné informácie nájdete v časti „Popis sady inštrukcií“.

Bit 3 - V: Dvojka príznaku pretečenia komplementu

Príznak pretečenia dvojky doplnku V podporuje aritmetiku dvojkového doplnku. Podrobné informácie nájdete v časti „Popis sady pokynov“.

Bit 2 - N: Negatívna vlajka

Negatívny príznak N označuje negatívny výsledok v aritmetickej alebo logickej operácii. Podrobné informácie nájdete v časti „Popis sady pokynov“.

Bit 1 - Z: nulová vlajka

Nulový príznak Z označuje nulový výsledok v aritmetickej alebo logickej operácii. Podrobné informácie nájdete v časti „Popis sady pokynov“.

Bit 0 - C: Nosná vlajka

Nosná vlajka C označuje prenos v aritmetickej alebo logickej operácii. Podrobné informácie nájdete v časti „Popis sady pokynov“.

Register na všeobecné účely File

Register File je optimalizovaný pre sadu inštrukcií AVR Enhanced RISC. Aby sa dosiahla požadovaná výkonnosť a flexibilita, register podporuje nasledujúce schémy vstupu/výstupu File:

Jeden 8-bitový výstupný operand a jeden 8-bitový vstup výsledku

Dva 8-bitové výstupné operandy a jeden 8-bitový vstup výsledku

Dva 8-bitové výstupné operandy a jeden 16-bitový vstup výsledku

Jeden 16-bitový výstupný operand a jeden 16-bitový vstup výsledku

Obrázok 4-2 ukazuje štruktúru 32 všeobecných pracovných registrov v CPU. Všeobecný účel

Ako je uvedené v Obrázok 4-2, každému registru je tiež priradená adresa dátovej pamäte, ktorá ich mapuje priamo do prvých 32 miest užívateľského dátového priestoru. Napriek tomu, že táto pamäťová organizácia nie je fyzicky implementovaná ako umiestnenia SRAM, poskytuje veľkú flexibilitu v prístupe k registrom, pretože registre ukazovateľov X, Y a Z je možné nastaviť na indexovanie akéhokoľvek registra v file.Väčšina pokynov fungujúcich v registri File majú priamy prístup ku všetkým registrom a väčšina z nich je pokynmi pre jeden cyklus.

Register X, register Y a register Z.

Registre R26..R31 majú k svojmu univerzálnemu použitiu niektoré pridané funkcie. Tieto registre sú 16-bitové adresové ukazovatele na nepriame adresovanie dátového priestoru. Tri registre nepriamej adresy X, Y a Z sú definované tak, ako je opísané v Obrázok 4-3.

Zaregistrujte sa

V rôznych režimoch adresovania majú tieto registre adries funkcie ako pevné posunutie, automatické zvyšovanie a automatické znižovanie (podrobnosti nájdete v príručke k súboru inštrukcií).

Ukazovateľ zásobníka

Zásobník sa používa hlavne na ukladanie dočasných údajov, na ukladanie lokálnych premenných a na ukladanie spiatočných adries po prerušení a volaniach podprogramov. Register ukazovateľa zásobníka vždy ukazuje na hornú časť zásobníka. Pamätajte, že zásobník je implementovaný tak, že rastie z vyšších miest pamäte do nižších miest pamäte. To znamená, že príkaz Stack PUSH znižuje ukazovateľ Stack.

Ukazovateľ zásobníka ukazuje na dátovú oblasť zásobníka SRAM, kde sú umiestnené zásobníky podprogramov a prerušenia. Tento stohovací priestor v dátach SRAM musí byť programom definovaný pred vykonaním akýchkoľvek volaní podprogramov alebo pred povolením prerušenia. Ukazovateľ stohu musí byť nastavený na bod nad 0x60. Ukazovateľ zásobníka sa zníži o jeden, keď sa dáta na server natlačia pomocou inštrukcie PUSH, a zníži sa o dva, keď sa návratová adresa natlačí na zásobník s volaním alebo prerušením podprogramu. Ukazovateľ zásobníka sa zvýši o jeden, keď sa údaje zo zásobníka odošlú pomocou inštrukcie POP, a zvýši sa o dva, keď sa údaje zo zásobníka odoberú s návratom z podprogramu RET alebo návratom z prerušenia RETI.

AVR Stack Pointer je implementovaný ako dva 8-bitové registre v I / O priestore. Počet skutočne použitých bitov závisí od implementácie. Pamätajte, že dátový priestor v niektorých implementáciách architektúry AVR je taký malý, že je potrebný iba SPL. V takom prípade nebude register SPH prítomný.

SPH a SPL - register ukazovateľa zásobníka

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
Čítanie/Písanie R/W R/W R/W R/W R/W R/W R/W R/W
Čítanie/Písanie R/W R/W R/W R/W R/W R/W R/W R/W
Počiatočná hodnota RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND
Počiatočná hodnota RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND

Načasovanie vykonania pokynu

Táto časť popisuje všeobecné koncepty časovania prístupu na vykonávanie pokynov. AVR CPU je poháňaný hodinami CPU clkCPU, priamo generovanými z vybraného zdroja hodín pre čip. Nie je použité žiadne vnútorné delenie hodín.

Obr.4.4

Obrázok 4-4 ukazuje súbežné načítanie inštrukcií a vykonávanie inštrukcií povolené architektúrou Harvard a registrom rýchleho prístupu File koncept. Toto je základný koncept pipeline na získanie až 1 MIPS na MHz so zodpovedajúcimi jedinečnými výsledkami pre funkcie za cenu, funkcie za hodiny a funkcie za výkonovú jednotku.

Obrázok 4-5. Jednocyklová prevádzka ALU

Obr.4.5

Reset a prerušenie spracovania

AVR poskytuje niekoľko rôznych zdrojov prerušenia. Tieto prerušenia a samostatný resetovací vektor majú v programovom pamäťovom priestore samostatný programový vektor. Všetkým prerušeniam sú priradené jednotlivé aktivačné bity, ktoré musia byť napísané logicky spolu s bitom Global Interrupt Enable v registri stavov, aby sa prerušenie umožnilo.

Najnižšie adresy v pamäti programu sú štandardne definované ako vektory resetovania a prerušenia. Celý zoznam vektorov je uvedený v „Prerušenia“ na stránke 48. Zoznam tiež určuje úrovne priority rôznych prerušení. Čím nižšia je adresa, tým vyššia je úroveň priority. RESET má najvyššiu prioritu a ďalším je INT0 - externá požiadavka na prerušenie 0.

Keď dôjde k prerušeniu, bit I globálneho prerušenia povolenia sa vymaže a všetky prerušenia sa deaktivujú. Softvér užívateľa môže napísať logický jeden na I-bit, aby umožnil vnorené prerušenia. Všetky povolené prerušenia môžu potom prerušiť aktuálnu rutinu prerušenia. I-bit sa automaticky nastaví, keď sa vykoná inštrukcia Návrat z prerušenia - RETI.

V zásade existujú dva typy prerušenia. Prvý typ je spustený udalosťou, ktorá nastaví príznak prerušenia. Pre tieto prerušenia sa programové počítadlo vektoruje do skutočného vektora prerušenia, aby sa vykonala rutina spracovania prerušenia, a hardvér vymaže zodpovedajúci príznak prerušenia. Príznaky prerušenia možno tiež vymazať napísaním logického signálu na pozíciu (-y) vlajkového bitu, ktoré sa majú vyčistiť. Ak nastane podmienka prerušenia, kým sa zruší zodpovedajúci bit aktivácie prerušenia, nastaví sa príznak prerušenia a bude sa pamätať, kým sa prerušenie nepovolí, alebo kým sa príznak nevymaže softvérom. Podobne, ak dôjde k vymazaniu jednej alebo viacerých podmienok prerušenia, kým je bit Global Interrupt Enable vymazaný, nastaví sa zodpovedajúci príznak (y) prerušenia a bude sa pamätať, kým sa nenastaví bit Global Interrupt Enable, a potom sa vykonajú podľa priority.

Druhý typ prerušenia sa spustí, pokiaľ je splnená podmienka prerušenia. Tieto prerušenia nemusia mať nevyhnutne príznaky prerušenia. Ak podmienka prerušenia zmizne pred povolením prerušenia, prerušenie sa nespustí.

Keď AVR vystúpi z prerušenia, vždy sa vráti do hlavného programu a vykoná ešte jednu inštrukciu predtým, ako sa zobrazí čakajúce prerušenie.

Pamätajte, že stavový register sa automaticky neuloží pri zadaní rutiny prerušenia ani sa neobnoví po návrate z rutiny prerušenia. Musí to byť riešené softvérom.

Pri použití príkazu CLI na deaktiváciu prerušení budú prerušenia okamžite deaktivované. Po inštrukcii CLI sa nevykoná žiadne prerušenie, aj keď nastane súčasne s inštrukciou CLI. Nasledujúca example ukazuje, ako sa to dá použiť na zabránenie prerušeniam počas časovanej sekvencie zápisu EEPROM.

Montážny kód Example
v r16, SREG; uložiť hodnotu SREG

cli; zakázať prerušenia počas časovanej sekvencie

sbi EECR, EEMPE ; spustiť zápis do EEPROM

sbi EECR, EEPE

von SREG, r16; obnoviť hodnotu SREG (I-bit)

C kód Example
char cSREG;

cSREG = SREG; /* uložiť hodnotu SREG */

/* zakáže prerušenia počas časovanej sekvencie */

_CLI ();

EECR |= (1<

EECR | = (1 <

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

Pri použití pokynu SEI na povolenie prerušenia sa inštrukcia nasledujúca po SEI vykoná pred akýmkoľvek čakajúcim prerušením, ako je uvedené v tomto ex.ample.

Montážny kód Example
sei; nastavte Global Interrupt Enable

spánok; vstúpiť do spánku a čakať na prerušenie

; poznámka: prejde do režimu spánku pred čakaním

; prerušenie

C kód Example
_SEI(); /* nastaviť Global Interrupt Enable */

_SPÁNOK(); /* vstúpiť do režimu spánku, čakať na prerušenie */

/ * poznámka: prejde do režimu spánku pred akýmkoľvek čakajúcim prerušením * /

Čas prerušenia reakcie

Odozva na vykonanie prerušenia pre všetky povolené prerušenia AVR sú minimálne štyri cykly hodín. Po štyroch cykloch hodín sa vykoná adresa programového vektora pre skutočnú rutinu spracovania prerušenia. Počas tejto doby štyroch cyklov hodín sa programový počítadlo natlačí na zásobník. Vektorom je zvyčajne skok na rutinu prerušenia a tento skok trvá tri hodiny. Ak dôjde k prerušeniu počas vykonávania viaccyklovej inštrukcie, táto inštrukcia sa dokončí pred vykonaním prerušenia. Ak dôjde k prerušeniu, keď je MCU v režime spánku, čas odozvy na vykonanie prerušenia sa zvýši o štyri hodiny. Toto zvýšenie prichádza navyše s dobou spustenia z vybraného režimu spánku.

Návrat z rutiny spracovania prerušenia trvá štyri hodiny. Počas týchto štyroch cyklov hodín sa programový počítadlo (dva bajty) vysunie späť zo zásobníka, ukazovateľ zásobníka sa zvýši o dva a nastaví sa I-bit v SREG.

Spomienky AVR

Táto časť popisuje rôzne pamäte v ATtiny25 / 45/85. Architektúra AVR má dva hlavné pamäťové priestory, dátovú pamäť a pamäť programu. ATtiny25 / 45/85 je navyše vybavený pamäťou EEPROM na ukladanie dát. Všetky tri pamäťové priestory sú lineárne a pravidelné.

V systéme preprogramovateľná programová pamäť Flash

ATtiny25 / 45/85 obsahuje 2/4 / 8K bajtov zabudovanú systémovo preprogramovateľnú pamäť typu Flash na ukladanie programov. Pretože sú všetky pokyny AVR široké 16 alebo 32 bitov, program Flash je usporiadaný do formátu 1024/2048/4096 x 16.

Flash pamäť má výdrž minimálne 10,000 25 cyklov zápisu a vymazania. Počítadlo programov ATtiny45 / 85/10 (PC) má šírku 11/12/1024 bitov, čím adresuje pamäťové miesta programu 2048/4096/XNUMX. „Pamäťový program- ming ”na strane 147 obsahuje podrobný popis sériového sťahovania dát Flash pomocou pinov SPI.

Konštantné tabuľky je možné alokovať v rámci celého adresného priestoru pamäte programu (pozri popis pokynov v pamäti LPM - Load Programme).

Obrázok 5-1. Mapa pamäte programu Pamäťová mapa

Dátová pamäť SRAM

Obrázok 5-2 ukazuje, ako je organizovaná pamäť ATtiny25 / 45/85 SRAM.

Dolné 224/352/607 umiestnenia dátovej pamäte adresujú jednak Register File, pamäť I/O a interný dátový SRAM. Register je adresovaných prvých 32 miest File, ďalších 64 umiestnení štandardnej pamäte I/O a posledných 128/256/512 miest adresuje interný dátový SRAM.

Päť rôznych režimov adresovania pre pamäť údajov: Priame, Nepriame s posunutím, Nepriame, Nepresné s predbežným znížením a Nepriame s dodatočným zvýšením. V Registri FileRegistre R26 až R31 obsahujú registre ukazovateľov nepriameho adresovania.

Priame adresovanie zasahuje do celého dátového priestoru.

Režim nepriameho posuvu dosahuje 63 adries umiestnení zo základnej adresy zadanej registrom Y alebo Z.

Keď sa používajú režimy nepriameho adresovania registra s automatickým predbežným znižovaním a zvyšovaním, registre adries X, Y a Z sa znižujú alebo zvyšujú.

Prostredníctvom všetkých týchto režimov adresovania je prístupných 32 univerzálnych pracovných registrov, 64 I/O registrov a 128/256/512 bajtov interných dát SRAM v ATtiny25/45/85. Register File je opísaný v „Gen- registrovaný účel File“Na strane 10.

Obrázok 5-2. Mapa dátovej pamäte Pamäťová mapa 2

Prístup k dátovej pamäti Times

Táto časť popisuje všeobecné koncepcie časovania prístupu pre prístup k internej pamäti. Prístup k interným dátam SRAM sa vykonáva v dvoch cykloch clkCPU, ako je opísané v Obrázok 5-3.

Obrázok 5-3. Cykly prístupu k údajom SRAM na čipe Na údajoch z čipu Dátová pamäť EEPROM

ATtiny25 / 45/85 obsahuje 128/256/512 bajtov dátovej pamäte EEPROM. Je usporiadaný ako samostatný dátový priestor, v ktorom je možné čítať a zapisovať jednotlivé bajty. EEPROM má výdrž najmenej 100,000 XNUMX cyklov zápisu a vymazania. Ďalej je opísaný prístup medzi EEPROM a CPU, pričom sú špecifikované registre adries EEPROM, dátový register EEPROM a riadiaci register EEPROM. Podrobnosti pozri “Sériové sťahovanie” na strane 151.

Prístup EEPROM na čítanie a zápis

Prístupové registre EEPROM sú prístupné v I / O priestore.

Časy prístupu na zápis pre EEPROM sú uvedené v Tabuľka 5-1 na strane 21. Funkcia samočasovania však umožňuje používateľskému softvéru zistiť, kedy je možné zapísať ďalší bajt. Ak používateľský kód obsahuje pokyny, ktoré zapisujú do EEPROM, je potrebné prijať určité opatrenia. V silne filtrovaných zdrojoch napájania VCC pravdepodobne pomaly stúpa alebo klesá

Zapnutie/vypnutie. To spôsobí, že zariadenie nejaký čas pobeží na voltage nižšie, ako je špecifikované ako minimum pre použitú hodinovú frekvenciu. Pozri “Predchádzanie poškodeniu EEPROM” na strane 19 Podrobnosti o tom, ako sa vyhnúť problémom v týchto situáciách.

Aby sa zabránilo neúmyselnému zápisu do pamäte EEPROM, je potrebné dodržať konkrétny postup zápisu. Odkazujú na "Atómová." Programovanie bajtov “na strane 17 “Programovanie rozdeleného bytu” na strane 17 pre podrobnosti o tomto.

Keď sa číta EEPROM, CPU sa zastaví na štyri hodinové cykly pred vykonaním ďalšej inštrukcie. Keď je zapísaná EEPROM, CPU sa zastaví na dva taktové cykly pred vykonaním ďalšej inštrukcie.

Atómové programovanie bajtov

Používanie programovania atómových bajtov je najjednoduchší režim. Pri zápise bajtu do EEPROM musí užívateľ zapísať adresu do registra EEAR a údaje do registra EEDR. Ak sú bity EEPMn nulové, zápis EEPE (do štyroch cyklov po zápise EEMPE) spustí operáciu mazania / zápisu. Cyklus mazania aj zápisu sa vykonáva v jednej operácii a celkový čas programovania je uvedený v Tabuľka 5-1 na strane 21. Bit EEPE zostáva nastavený, kým nie sú dokončené operácie mazania a zápisu. Pokiaľ je prístroj zaneprázdnený programovaním, nie je možné vykonávať žiadne ďalšie operácie EEPROM.

Programovanie rozdeleného bajtu

Cyklus vymazávania a zápisu je možné rozdeliť na dve rôzne operácie. To môže byť užitočné, ak systém vyžaduje krátky prístupový čas na určité obmedzené časové obdobie (zvyčajne ak napájací zdroj voltage padá). Aby ste urobili pokrok- tagPri tejto metóde sa požaduje, aby boli miesta, ktoré sa majú zapísať, vymazané pred operáciou zápisu. Pretože sú však operácie mazania a zápisu rozdelené, je možné operácie mazania vykonávať vtedy, keď systém umožňuje vykonávať časovo kritické operácie (spravidla po zapnutí).

Vymazať

Ak chcete vymazať bajt, adresa musí byť napísaná na EEAR. Ak sú bity EEPMn 0b01, zápis EEPE (do štyroch cyklov po zápise EEMPE) spustí iba operáciu mazania (čas programovania je uvedený v Tabuľka 5-1 ďalej strana 21). Bit EEPE zostáva nastavený, kým sa operácia vymazania nedokončí. Pokiaľ je zariadenie zaneprázdnené programovaním, nie je možné vykonávať žiadne ďalšie operácie EEPROM.

Napíšte

Ak chcete zapísať umiestnenie, musí používateľ napísať adresu do EEAR a údaje do EEDR. Ak sú bity EEPMn 0b10, zápis EEPE (do štyroch cyklov po zápise EEMPE) spustí iba operáciu zápisu (čas programovania je uvedený v Tabuľka 5-1 na strane 21). Bit EEPE zostáva nastavený, kým sa operácia zápisu nedokončí. Ak miesto určené na zápis nebolo pred zápisom vymazané, musia sa uložené údaje považovať za stratené. Pokiaľ je prístroj zaneprázdnený programovaním, nie je možné vykonávať žiadne ďalšie operácie EEPROM.

Kalibrovaný oscilátor sa používa na načasovanie prístupu do EEPROM. Uistite sa, že frekvencia oscilátora je v súlade s požiadavkami popísanými v “OSCCAL - Register kalibrácie oscilátora” na strane 31.

Nasledujúci kód napramples show one assembly and one C function for erase, write, or atomic write of EEPROM. Bývalýamppredpokladajme, že prerušenia sú riadené (napr. globálnym vypnutím prerušení) tak, aby počas vykonávania týchto funkcií nedochádzalo k žiadnym prerušeniam.

Montážny kód Example
EEPROM_write:

; Počkajte na dokončenie predchádzajúceho zápisu

sbic EECR,EEPE

rjmp EEPROM_write

; Nastavte režim programovania

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

z EECR, r16

; Nastavte adresu (r18: r17) v registri adries

von EEARH, r18

von EEARL, r17

; Zapíšte údaje (r19) do dátového registra

von EEDR, r19

; Napíš logický na EEMPE

sbi EECR, EEMPE

; Začnite písať eeprom nastavením EEPE

sbi EECR,EEPE

ret

C kód Example
void EEPROM_write(unsigned char ucAddress, unsigned char ucData)

{

/* Počkajte na dokončenie predchádzajúceho zápisu */ while(EECR & (1<

;

/* Nastaviť režim programovania */

EECR = (0 <

/ * Nastaviť registre adries a údajov * / EEAR = ucAddress;

EEDR = ucData;

/* Napíšte logickú jednotku do EEMPE */

EECR | = (1 <

/ * Začnite písať eeprom nastavením EEPE * /

EECR | = (1 <

}

Ďalší kód naprampukazujú zostavu a C funkcie na čítanie EEPROM. Bývalýamppredpokladáme, že prerušenia sú riadené tak, aby počas vykonávania týchto funkcií nedochádzalo k žiadnym prerušeniam.

Montážny kód Example
EEPROM_read:

; Počkajte na dokončenie predchádzajúceho zápisu

sbic EECR,EEPE

rjmp EEPROM_read

; Nastavte adresu (r18: r17) v registri adries

von EEARH, r18

von EEARL, r17

; Začnite čítať eeprom napísaním EERE

sbi EECR,EERE

; Načítať údaje z dátového registra

v r16, EEDR

ret

C kód Example
unsigned char EEPROM_read(unsigned char ucAddress)

{

/ * Počkajte na dokončenie predchádzajúceho zápisu * /

while (EECR & (1 <

;

/ * Nastaviť register adries * / EEAR = ucAddress;

/* Spustite čítanie eeprom napísaním EERE */

EECR | = (1 <

/ * Vrátiť údaje z dátového registra * /

spiatočný EEDR;

}

Prevencia poškodenia EEPROM

Počas obdobia nízkej hodnoty VCC môžu byť dáta EEPROM poškodené, pretože napájací objemtage je príliš nízka na to, aby procesor a EEPROM správne fungovali. Tieto problémy sú rovnaké ako pre systémy na úrovni dosky používajúce EEPROM a mali by sa použiť rovnaké konštrukčné riešenia.

Poškodenie údajov EEPROM môže byť spôsobené dvoma situáciami, keď svtage je príliš nízka. Po prvé, pravidelná sekvencia zápisu do EEPROM vyžaduje minimálny objemtage fungovať správne. Za druhé, samotný procesor CPU môže nesprávne vykonávať inštrukcie, ak napájací zdroj voltage je príliš nízke.

Poškodeniu údajov v pamäti EEPROM sa dá ľahko vyhnúť dodržaním tohto návrhového odporúčania:

Udržujte AVR RESET aktívny (nízky) počas období nedostatočného napájania objtage. To sa dá dosiahnuť povolením interného detektora zhasnutia (BOD). Ak sa úroveň detekcie interného BSK nezhoduje s

potrebnú úroveň detekcie, možno použiť externý ochranný obvod resetovania nízkeho VCC. Ak dôjde k resetu počas operácie zápisu, operácia zápisu sa dokončí za predpokladu, že napájací zdroj objtage je dostačujúce.

I / O pamäť

Definícia I / O priestoru ATtiny25 / 45/85 je uvedená v „Súhrn registrácie“ na strane 200.

Všetky I / O ATtiny25 / 45/85 a periférie sú umiestnené v I / O priestore. Podľa pokynov LD / LDS / LDD a ST / STS / STD možno ku všetkým I / O umiestneniam pristupovať a prenášať údaje medzi 32 všeobecnými pracovnými registrami a I / O priestorom. I / O registre v rozsahu adries 0x00 - 0x1F sú priamo bitovo prístupné pomocou pokynov SBI a CBI. V týchto registroch je možné skontrolovať hodnotu jednotlivých bitov pomocou pokynov SBIS a SBIC. Ďalšie informácie nájdete v časti s inštrukciami. Pri použití špecifických I / O príkazov IN a OUT je potrebné použiť I / O adresy 0x00 - 0x3F. Pri adresovaní I / O registrov ako dátového priestoru pomocou pokynov LD a ST musí byť na tieto adresy pridaná hodnota 0x20.

Kvôli kompatibilite s budúcimi zariadeniami by sa rezervované bity mali pri prístupe zapisovať na nulu. Rezervované adresy I / O pamäte by nikdy nemali byť zapísané.

Niektoré zo stavových vlajok sú vymazané tak, že im napíšete logickú. Upozorňujeme, že pokyny CBI a SBI budú pracovať iba so zadaným bitom, a preto ich možno použiť v registroch obsahujúcich tieto stavové príznaky. Pokyny CBI a SBI pracujú iba s registrami 0x00 až 0x1F.

I / O a periférne riadiace registre sú vysvetlené v ďalších častiach.

Popis registrácie

EEARH - Register adries EEPROM

Bit 7 6 5 4 3 2 1 0
0x1F EEAR8 VÝŠKA
Čítanie/Písanie R R R R R R R R/W
Počiatočná hodnota 0 0 0 0 0 0 0 X/0

Bity 7: 1 - Res: Rezervované bity

Tieto bity sú vyhradené pre budúce použitie a budú sa vždy čítať ako nula.

Bity 0 - EEAR8: adresa EEPROM

Toto je najvýznamnejší bit adresy EEPROM ATtiny85. V zariadeniach s menšou EEPROM, tj. ATtiny25 / ATtiny45, je tento bit vyhradený a bude vždy čítať nulu. Počiatočná hodnota adresára EEPROM (EEAR) nie je definovaná a pred prístupom do EEPROM musí byť preto napísaná správna hodnota.

EEARL - register adries EEPROM

Bit

0x1E EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 EEARL
Zadný / zápis R/W R/W R/W R/W R/W R/W R/W R/W
Počiatočná hodnota X X X X X X X X

Bit 7 - EEAR7: adresa EEPROM

Toto je najvýznamnejší bit adresy EEPROM ATtiny45. V zariadeniach s menšou EEPROM, tj. ATtiny25, je tento bit vyhradený a bude vždy čítať nulu. Počiatočná hodnota EEPROM adresného registra (EEAR) nie je definovaná a pred prístupom do EEPROM musí byť preto napísaná správna hodnota.

Bity 6: 0 - EEAR [6: 0]: adresa EEPROM

Toto sú (nízke) bity registra adries EEPROM. Dátové bajty EEPROM sú adresované lineárne v rozsahu 0… (128/256 / 512-1). Počiatočná hodnota EEAR je nedefinovaná a pred prístupom do EEPROM musí byť preto napísaná správna hodnota.

EEDR - register údajov EEPROM

Bit 7 6 5 4 3 2 1 0
0x1D EEDR7 EEDR6 EEDR5 EEDR4 EEDR3 EEDR2 EEDR1 EEDR0 EEDR
Čítanie/Písanie R/W R/W R/W R/W R/W R/W R/W R/W
Počiatočná hodnota 0 0 0 0 0 0 0 0

Pre operáciu zápisu na EEPROM obsahuje register EEDR údaje, ktoré sa majú zapísať do EEPROM na adresu uvedenú v registri EEAR. Pre operáciu čítania EEPROM obsahuje EEDR údaje načítané z

EEPROM na adresu uvedenú v EEAR.

 

5.5.4 Riadiaci register EECR - EEPROM

Bit 7 6 5 4 3 2 1 0
0x1C        – EEPM1 EEPM0 EERIE EEMPE EEPE EERE EHSR
Čítanie / zápis R R R / W R/W R/W R/W R/W R/W
Počiatočná hodnota 0 0 X X 0 0 X 0

Bit 7 - Res: Rezervovaný bit

Tento bit je vyhradený pre budúce použitie a v ATtiny0/25/45 bude vždy čítaný ako 85. Kvôli kompatibilite s budúcimi zariadeniami AVR vždy tento bit zapisujte na nulu. Po prečítaní tento kúsok maskujte.

Bit 6 - Res: Rezervovaný bit

Tento bit je rezervovaný v ATtiny25 / 45/85 a bude sa vždy čítať ako nula.

Bity 5: 4 - EEPM [1: 0]: Bity programovacieho režimu EEPROM

Nastavenie bitov programovacieho režimu EEPROM definuje, ktorá programovacia akcia sa spustí pri zápise EEPE. Je možné programovať údaje v jednej atómovej operácii (vymazať starú hodnotu a naprogramovať novú hodnotu) alebo rozdeliť operácie Vymazať a Zápis na dve rôzne operácie. Programovacie časy pre rôzne režimy sú zobrazené v Tabuľka 5-1. Pokiaľ je nastavený EEPE, všetky zápisy do EEPMn budú ignorované. Počas resetovania sa bity EEPMn resetujú na 0b00, pokiaľ EEPROM nie je zaneprázdnená programovaním.

Tabuľka 5-1. Bity režimu EEPROM

EEPM1 EEPM0 Čas programovania Prevádzka
0 0 3.4 ms Vymazanie a zápis v jednej operácii (atómová operácia)
0 1 1.8 ms Iba vymazanie
1 0 1.8 ms Len napíš
1 1 Vyhradené pre budúce použitie

Bit 3 - EERIE: EEPROM Ready Interrupt Enable

Zápis EERIE do jednej umožní prerušenie pripravenosti EEPROM, ak je nastavený I-bit v SREG. Zápis EERIE na nulu zruší prerušenie. Keď je energeticky nezávislá pamäť pripravená na programovanie, prerušenie pripravenosti na pamäť EEPROM generuje neustále prerušenie.

Bit 2 - EEMPE: EEPROM hlavný program povolený

Bit EEMPE určuje, či zápis EEPE do jedného bude mať efekt alebo nie.

Keď je nastavený EEMPE, nastavenie EEPE do štyroch cyklov hodín naprogramuje EEPROM na vybranú adresu. Ak je EEMPE nulová, nastavenie EEPE nebude mať žiadny vplyv. Keď je EEMPE zapísaný do jedného softvérom, hardvér vymaže bit na nulu po štyroch cykloch hodín.

Bit 1 - EEPE: EEPROM Program Enable

Signál EEPROM Program Enable Signal EEPE je signál umožňujúci programovanie do EEPROM. Keď sa napíše EEPE, EEPROM sa naprogramuje podľa nastavenia bitov EEPMn. Bit EEMPE musí byť zapísaný do jednej pred zápisom logickej do EEPE, inak nedôjde k žiadnemu zápisu do EEPROM. Po uplynutí doby prístupu na zápis sa hardvérovo vymaže bit EEPE. Keď je nastavený EEPE, CPU sa zastaví na dva cykly pred vykonaním ďalšej inštrukcie.

Bit 0 - EERE: EEPROM Read Enable

Signál EEPROM Read Enable - EERE - je čítací stroboskop na EEPROM. Keď je v registri EEAR nastavená správna adresa, musí sa bit EERE zapísať do jednej, aby sa spustilo čítanie EEPROM. Prístup na čítanie EEPROM vyžaduje jednu inštrukciu a požadované údaje sú okamžite k dispozícii. Keď sa číta EEPROM, CPU sa zastaví na štyri cykly pred vykonaním ďalšej inštrukcie. Používateľ by mal pred začatím operácie čítania vyzvať bit EEPE. Ak prebieha operácia zápisu, nie je možné čítať EEPROM ani meniť register EEAR.

Systémové hodiny a možnosti hodín

Hodinové systémy a ich distribúcia

Rozloženie hodín

CPU hodiny

Hodiny CPU sú smerované do častí systému, ktoré sa týkajú prevádzky jadra AVR. Naprampsúbory týchto modulov sú všeobecným registrom File, stavový register a dátová pamäť držiace ukazovateľ zásobníka. Zastavenie hodín CPU bráni jadru vo vykonávaní všeobecných operácií a výpočtov.

I / O hodiny - clkI / O

Hodiny I / O používa väčšina I / O modulov, napríklad Timer / Counter. Hodiny I / O používa aj modul externého prerušenia, treba si však uvedomiť, že niektoré externé prerušenia sú detekované asynchrónnou logikou, čo umožňuje detegovať tieto prerušenia, aj keď sú hodiny I / O zastavené.

Flash hodiny - clkFLASH

Hodiny Flash riadia činnosť rozhrania Flash. Hodiny Flash sú zvyčajne aktívne súčasne s hodinami CPU.

Hodiny ADC - clkADC

ADC je vybavený vyhradenou doménou hodín. To umožňuje zastavenie hodín CPU a I / O s cieľom znížiť šum generovaný digitálnymi obvodmi. Takto získate presnejšie výsledky prevodu ADC.

Interný PLL pre rýchlu generáciu periférnych hodín - clkPCK

Interná PLL v ATtiny25 / 45/85 generuje taktovú frekvenciu, ktorá je 8x vynásobená vstupom zdroja. Štandardne PLL používa ako zdroj výstup z interného RC oscilátora 8.0 MHz. Alternatívne, ak je nastavený bit LSM PLLCSR, PLL použije výstup RC oscilátora vydelený dvoma. Teda výstup PLL, rýchly periférny takt je 64 MHz. Rýchle periférne hodiny alebo z nich prednastavené hodiny je možné zvoliť ako zdroj hodín pre časovač / počítadlo1 alebo ako systémové hodiny. Pozri Obrázok 6-2. Frekvencia rýchlych periférnych hodín sa pri nastavení LSM PLLCSR vydelí dvoma, výsledkom čoho je hodinová frekvencia 32 MHz. Všimnite si, že LSM nemožno nastaviť, ak sa PLLCLK používa ako systémové hodiny.

Obrázok 6-2. Hodinový systém PCK. Taktovanie PCK

PLL je uzamknutý na RC oscilátore a nastavením RC oscilátora cez register OSCCAL sa súčasne nastavia rýchle periférne hodiny. Avšak aj keď je RC oscilátor privedený na vyššiu frekvenciu ako 8 MHz, rýchla periférna frekvencia hodín saturuje na 85 MHz (najhorší prípad) a zostáva oscilujúca na maximálnej frekvencii. Je potrebné poznamenať, že PLL v tomto prípade už nie je blokovaný hodinami RC oscilátora. Preto sa odporúča nevykonávať úpravy OSCCAL na vyššiu frekvenciu ako 8 MHz, aby sa PLL udržiaval v správnom prevádzkovom rozsahu.

Interný PLL je povolený, keď:

Nastaví sa bit PLLE v registri PLLCSR.

Poistka CKSEL je naprogramovaná na „0001“.

Poistka CKSEL je naprogramovaná na „0011“.

Bit PLLCSR PLOCK je nastavený, keď je PLL uzamknutý. Vnútorný RC oscilátor aj PLL sú vypnuté v režime vypnutia a pohotovostného režimu spánku.

Interné PLL v režime kompatibility ATtiny15

Pretože ATtiny25 / 45/85 je migračné zariadenie pre používateľov ATtiny15, existuje režim kompatibility ATtiny15 pre spätnú kompatibilitu. Režim kompatibility ATtiny15 sa vyberá programovaním poistiek CKSEL na „0011“.

V režime kompatibility ATtiny15 je frekvencia vnútorného RC oscilátora kalibrovaná až na 6.4 MHz a multiplikačný faktor PLL je nastavený na 4x. Pozri Obrázok 6-3. S týmito úpravami je taktovací systém kompatibilný s ATtiny15 a výsledné rýchle periférne hodiny majú frekvenciu 25.6 MHz (rovnaká ako v ATtiny15).

Obrázok 6-3. Hodinový systém PCK v režime kompatibility ATtiny15. Hodinový systém

Zdroje hodín

Zariadenie má nasledujúce možnosti zdroja hodín, ktoré je možné zvoliť bitmi Flash Fuse, ako je znázornené nižšie. Hodiny zo zvoleného zdroja sa vstupujú do generátora hodín AVR a smerujú do príslušných modulov.

Tabuľka 6-1. Možnosti hodiny zariadenia Vyberte

Možnosť sledovania zariadenia CKSEL[3:0](1)
Vonkajšie hodiny (pozri strana 26) 0000
Vysokofrekvenčné hodiny PLL (pozri strana 26) 0001
Kalibrovaný interný oscilátor (pozri strana 27) 0010(2)
Kalibrovaný interný oscilátor (pozri strana 27) 0011(3)
Interný 128 kHz oscilátor (pozri strana 28) 0100
Nízkofrekvenčný kryštálový oscilátor (pozri strana 29) 0110
Krištáľový oscilátor / keramický rezonátor (pozri strana 29) 1000 – 1111
Rezervované 0101, 0111

Pre všetky poistky „1“ znamená neprogramované, zatiaľ čo „0“ znamená naprogramované.

Zariadenie sa dodáva s vybratou touto možnosťou.

Týmto sa vyberie režim kompatibility ATtiny15, kde sú systémové hodiny vydelené štyrmi, čo vedie k hodinovej frekvencii 1.6 MHz. Viac informácií nájdete na „Kalibrovaný interný oscilátor“ na strane 27.

Rôzne možnosti pre každú možnosť taktovania sú uvedené v nasledujúcich častiach. Keď sa CPU prebudí z režimu Power down, zvolený zdroj hodín sa použije na načasovanie spustenia, čím sa zabezpečí stabilná prevádzka oscilátora pred začiatkom vykonávania inštrukcie. Keď sa procesor spustí od resetu, dôjde k ďalšiemu oneskoreniu, ktoré umožní napájaniu dosiahnuť stabilnú úroveň pred začatím normálnej prevádzky. Watchdog oscilátor sa používa na načasovanie tejto časti času spustenia v reálnom čase. Počet cyklov oscilátora WDT použitých pre každý časový limit je uvedený v Tabuľka 6-2.

Tabuľka 6-2. Počet cyklov oscilátora Watchdog

Typ Časový limit Počet cyklov
4 ms 512
64 ms 8K (8,192)

Vonkajšie hodiny

Ak chcete riadiť zariadenie z externého zdroja hodín, CLKI by sa malo riadiť podľa obrázka Obrázok 6-4. Aby zariadenie fungovalo na externých hodinách, musia byť poistky CKSEL naprogramované na „00“.

Obrázok 6-4. Konfigurácia externého hodinového disku

Obr.6.4

Ak je vybraný tento zdroj hodín, časy spustenia sú určené poistkami SUT, ako je to znázornené na obrázku Tabuľka 6-3.

Tabuľka 6-3. Časy spustenia pre výber externých hodín

SUT[1:0] Čas spustenia od vypnutia Dodatočné oneskorenie od resetu Odporúčané použitie
00 6 CK 14CK BOD povolené
01 6 CK 14 CK + 4 ms Rýchlo rastúci výkon
10 6 CK 14 CK + 64 ms Pomaly stúpajúca sila
11 Rezervované

Pri použití externých hodín je potrebné zabrániť náhlym zmenám použitej frekvencie hodín, aby sa zabezpečila stabilná prevádzka MCU. Zmena frekvencie o viac ako 2% od jedného hodinového cyklu k druhému môže viesť k nepredvídateľnému správaniu. Je potrebné zabezpečiť, aby sa MCU udržiavala v resetovaní počas takýchto zmien frekvencie hodín.

Upozorňujeme, že predpredaj systémových hodín je možné použiť na implementáciu zmien za chodu internej frekvencie hodín pri súčasnom zabezpečení stabilnej prevádzky. Odkazujú na „Predvoľba systémových hodín“ na strane 31 pre podrobnosti.

Vysokofrekvenčné hodiny PLL

K dispozícii je interný PLL, ktorý poskytuje nominálnu rýchlosť 64 MHz taktu uzamknutú v RC oscilátore pre použitie periférneho časovača / počítadla1 a pre zdroj systémových hodín. Ak je vybraný ako zdroj systémových hodín, programovaním poistiek CKSEL na „0001“ je vydelený štyrmi, ako je znázornené na obrázku Tabuľka 6-4.

Tabuľka 6-4. Prevádzkové režimy vysokofrekvenčných hodín PLL

CKSEL[3:0] Nominálna frekvencia
0001 16 MHz

Ak je vybraný tento zdroj hodín, časy spustenia sú určené poistkami SUT, ako je to znázornené na obrázku Tabuľka 6-5.

Tabuľka 6-5. Časy spustenia pre vysokofrekvenčné hodiny PLL

SUT[1:0] Čas spustenia od vypnutia Dodatočné oneskorenie pri resetovaní pri zapnutí (VCC = 5.0 V) Odporúčané použitie
00 14 CK + 1K (1024) CK + 4 ms 4 ms BOD povolené

Tabuľka 6-5. Časy spustenia pre vysokofrekvenčné hodiny PLL

SUT[1:0] Čas spustenia od vypnutia Dodatočné oneskorenie pri resetovaní pri zapnutí (VCC = 5.0 V) Odporúčané použitie
01 14 CK + 16K (16384) CK + 4 ms 4 ms Rýchlo rastúci výkon
10 14 CK + 1K (1024) CK + 64 ms 4 ms Pomaly stúpajúca sila
11 14 CK + 16K (16384) CK + 64 ms 4 ms Pomaly stúpajúca sila

Kalibrovaný interný oscilátor

Interný RC oscilátor štandardne poskytuje hodiny približne 8.0 MHz. Aj keď zvtagTieto hodiny sú v závislosti od teploty a môžu byť veľmi presne kalibrované užívateľom. Viď „Kalibrovaný interný RC oscilátor Accu- racy “na strane 164 „Rýchlosť interného oscilátora“ na stránke 192 pre viac detailov. Zariadenie sa dodáva s naprogramovanou poistkou CKDIV8. Pozri „Predvoľba systémových hodín“ na strane 31 pre viac podrobností.

Tieto hodiny je možné zvoliť ako systémové hodiny programovaním poistiek CKSEL, ako je to znázornené na obrázku Tabuľka 6-6 na strane

27. Ak je vybraté, bude fungovať bez externých komponentov. Počas resetu hardvér načíta predprogramovanú kalibračnú hodnotu do registra OSCCAL a tým automaticky kalibruje RC oscilátor. Presnosť tejto kalibrácie sa zobrazuje ako továrenská kalibrácia v Tabuľka 21-2 na strane 164.

Zmenou registra OSCCAL zo SW pozri “OSCCAL - Register kalibrácie oscilátora” na strane 31, je možné získať vyššiu presnosť kalibrácie ako pomocou továrenskej kalibrácie. Presnosť tejto kalibrácie sa zobrazuje ako kalibrácia používateľa v Tabuľka 21-2 na strane 164.

Ak sa tento oscilátor použije ako časovač čipu, oscilátor Watchdog sa bude stále používať pre časovač Watchdog a pre resetovanie. Viac informácií o predprogramovanej kalibračnej hodnote nájdete v tejto časti „Cali- bajtové bajty “na strane 150.

Interný oscilátor môže byť tiež nastavený na poskytovanie hodín 6.4 MHz písaním poistiek CKSEL na „0011“, ako je znázornené na Tabuľka 6-6 nižšie. Toto nastavenie sa označuje ako režim kompatibility ATtiny15 a jeho účelom je poskytnúť kalibrovaný zdroj hodín na 6.4 MHz, ako v prípade ATtiny15. V režime kompatibility ATtiny15 používa PLL interný oscilátor bežiaci na 6.4 MHz na generovanie periférneho hodinového signálu 25.6 MHz pre časovač / počítadlo1 (pozri „8-bitový časovač / počítadlo Režim ATtiny15 “na strane 95). Upozorňujeme, že v tomto prevádzkovom režime je hodinový signál 6.4 MHz vždy vydelený štyrmi, čo poskytuje systémové hodiny 1.6 MHz.

Tabuľka 6-6. Prevádzkové režimy interne kalibrovaného RC oscilátora

CKSEL[3:0] Nominálna frekvencia
0010(1) 8.0 MHz
0011(2) 6.4 MHz

Zariadenie sa dodáva s vybratou touto možnosťou.

Týmto nastavením sa vyberie režim kompatibility ATtiny15, kde sú hodiny systému vydelené štyrmi, čo vedie k frekvencii hodín 1.6 MHz.

Keď je ako zdroj hodín zvolený kalibrovaný interný oscilátor 8 MHz, časy spustenia sú určené poistkami SUT, ako je znázornené na Tabuľka 6-7 nižšie.

Tabuľka 6-7. Časy spustenia pre interné kalibrované hodiny RC oscilátora

SUT[1:0] Čas spustenia od vypnutia Ďalšie oneskorenie od resetovania (VCC = 5.0 V) Odporúčané použitie
00 6 CK 14CK(1) BOD povolené
01 6 CK 14 CK + 4 ms Rýchlo rastúci výkon
10(2) 6 CK 14 CK + 64 ms Pomaly stúpajúca sila
11 Rezervované

1. Ak je naprogramovaná poistka RSTDISBL, táto doba rozbehu sa zvýši na 14 CK + 4 ms, aby sa zabezpečilo, že je možné vstúpiť do programovacieho režimu.
2. Zariadenie sa dodáva s vybratou touto možnosťou.

V režime kompatibility ATtiny15 sú doby nábehu určené poistkami SUT, ako je to znázornené na obrázku Tabuľka 6-8 nižšie.

Tabuľka 6-8. Časy spustenia interných kalibrovaných hodín RC oscilátora (v režime ATtiny15)

SUT[1:0] Čas spustenia od vypnutia Ďalšie oneskorenie od resetovania (VCC = 5.0 V) Odporúčané použitie
00 6 CK 14 CK + 64 ms
01 6 CK 14 CK + 64 ms
10 6 CK 14 CK + 4 ms
11 1 CK 14CK(1)

Poznámka: Ak je naprogramovaná poistka RSTDISBL, tento čas spustenia sa zvýši na 14CK + 4 ms, aby bolo možné vstúpiť do programovacieho režimu.

Stručne povedané, ďalšie informácie o režime kompatibility ATtiny15 nájdete v sekciách „Port B (PB5: PB0)“ na strana 2„Interný PLL v režime kompatibility ATtiny15“ na stránke 24„8-bitový časovač / počítadlo1 v režime ATtiny15“ zapnutý strana 95„Obmedzenia ladeniaWIRE“ na stránke 140„Kalibračné bajty“ na strane 150 a v tabuľke "Prescaler hodín." Vyberte ”na strane 33.

Interný 128 kHz oscilátor

Interný 128 kHz oscilátor je oscilátor s nízkym výkonom, ktorý poskytuje hodiny 128 kHz. Frekvencia je nominálna pri 3V a 25°C. Tieto hodiny je možné zvoliť ako systémové hodiny naprogramovaním poistiek CKSEL na „0100“.

Ak je vybraný tento zdroj hodín, časy spustenia sú určené poistkami SUT, ako je to znázornené na obrázku Tabuľka 6-9.

Tabuľka 6-9. Časy spustenia interného oscilátora 128 kHz

SUT[1:0] Čas spustenia od vypnutia Dodatočné oneskorenie od resetu Odporúčané použitie
00 6 CK 14CK(1) BOD povolené
01 6 CK 14 CK + 4 ms Rýchlo rastúci výkon
10 6 CK 14 CK + 64 ms Pomaly stúpajúca sila
11 Rezervované

Poznámka: Ak je naprogramovaná poistka RSTDISBL, tento čas spustenia sa zvýši na 14CK + 4 ms, aby bolo možné vstúpiť do programovacieho režimu.

Nízkofrekvenčný kryštálový oscilátor

Ak chcete použiť hodinový kryštál 32.768 kHz ako zdroj hodín pre zariadenie, je potrebné zvoliť nízkofrekvenčný kryštálový oscilátor nastavením poistiek CKSEL na hodnotu „0110“. Kryštál by mal byť spojený tak, ako je to znázornené na obrázku Obrázok 6-5. Informácie o vhodnej záťažovej kapacite pre kryštalický signál 32.768 kHz nájdete v údajovom liste výrobcu.

Ak je vybraný tento oscilátor, časy rozbehu sú určené poistkami SUT, ako je to znázornené na obrázku Tabuľka 6-10.

Tabuľka 6-10. Časy spustenia pre výber hodín nízkofrekvenčného kryštálového oscilátora

SUT[1:0] Čas spustenia od vypnutia Ďalšie oneskorenie od resetovania (VCC = 5.0 V) Odporúčané použitie
00 1K (1024) CK(1) 4 ms Rýchlo rastúci výkon alebo BOD povolené
01 1K (1024) CK(1) 64 ms Pomaly stúpajúca sila
10 32K (32768) CK 64 ms Stabilná frekvencia pri štarte
11 Rezervované

Poznámka: Tieto možnosti by sa mali používať iba vtedy, ak stabilita frekvencie pri spustení nie je dôležitá.

Nízkofrekvenčný kryštálový oscilátor poskytuje internú záťažovú kapacitu, viď Tabuľka 6-11 na každom kolíku TOSC.

Tabuľka 6-11. Kapacita nízkofrekvenčného kryštálového oscilátora

Zariadenie 32 kHz Osc. Typ Šiltovka (Xtal1 / Tosc1) Šiltovka (Xtal2 / Tosc2)
ATtiny25 / 45/85 Systém Osc. 16 pF 6 pF

Krištáľový oscilátor / keramický rezonátor

XTAL1 a XTAL2 sú vstup a výstup invertujúceho systému amplifier, ktorý je možné nakonfigurovať na použitie ako oscilátor na čipe, ako je znázornené na obrázku Obrázok 6-5. Môže sa použiť buď kremenný kryštál, alebo keramický rezonátor.

C1 a C2 by mali byť vždy rovnaké pre kryštály aj rezonátory. Optimálna hodnota kondenzátorov závisí od použitého kryštálu alebo rezonátora, veľkosti rozptylovej kapacity a elektromagnetického šumu prostredia. Niektoré počiatočné pokyny pre výber kondenzátorov na použitie s kryštálmi sú uvedené v Tabuľka 6-12 nižšie. Pre keramické rezonátory by sa mali použiť hodnoty kondenzátora uvedené výrobcom.

Tabuľka 6-12. Prevádzkové režimy kryštálového oscilátora

CKSEL[3:1] Frekvenčný rozsah (MHz) Odporúčaný rozsah pre kondenzátory C1 a C2 pre použitie s kryštálmi (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

Poznámky: Táto možnosť by sa nemala používať s kryštálmi, ale iba s keramickými rezonátormi.

Oscilátor môže pracovať v troch rôznych režimoch, z ktorých každý je optimalizovaný pre konkrétny frekvenčný rozsah. Prevádzkový režim je vybraný poistkami CKSEL [3: 1], ako je znázornené na Tabuľka 6-12.

Poistka CKSEL0 spolu s poistkami SUT [1: 0] vyberajú doby nábehu, ako je to znázornené v Tabuľka 6-13.

Tabuľka 6-13. Časy spustenia pre výber hodín kryštálového oscilátora

CKSEL0 SUT[1:0] Čas spustenia od vypnutia Dodatočné oneskorenie od resetu Odporúčané použitie
0 00 258 CK(1) 14 CK + 4 ms Keramický rezonátor, rýchlo rastúci výkon
0 01 258 CK(1) 14 CK + 64 ms Keramický rezonátor, pomaly stúpajúci výkon
0 10 1K (1024) CK(2) 14CK Keramický rezonátor, povolený BOD
0 11 1K (1024) CK(2) 14 CK + 4 ms Keramický rezonátor, rýchlo rastúci výkon
1 00 1K (1024) CK(2) 14 CK + 64 ms Keramický rezonátor, pomaly stúpajúci výkon
1 01 16K (16384) CK 14CK Krištáľový oscilátor, povolený BOD
1 10 16K (16384) CK 14 CK + 4 ms Krištáľový oscilátor, rýchlo rastúci výkon
1 11 16K (16384) CK 14 CK + 64 ms Krištáľový oscilátor, pomaly stúpajúci výkon

Poznámky

Tieto možnosti by sa mali používať, iba ak nepracujú na maximálnej frekvencii zariadenia, a iba ak stabilita frekvencie pri spustení nie je pre aplikáciu dôležitá. Tieto možnosti nie sú vhodné pre kryštály.

Tieto možnosti sú určené na použitie s keramickými rezonátormi a zabezpečia frekvenčnú stabilitu pri spustení. Môžu byť tiež použité s kryštálmi, ak nepracujú na maximálnej frekvencii prístroja a ak pre aplikáciu nie je dôležitá frekvenčná stabilita pri štarte.

Predvolený zdroj hodín

Zariadenie je dodávané s naprogramovanými CKSEL = „0010“, SUT = „10“ a CKDIV8. Predvolené nastavenie zdroja hodín je preto interný RC oscilátor pracujúci na frekvencii 8 MHz s najdlhším časom spustenia a počiatočným prednastavením systémových hodín na 8, čo má za následok systémové hodiny 1.0 MHz. Toto predvolené nastavenie zaisťuje, že všetci používatelia môžu vykonávať požadované nastavenia zdroja hodín pomocou systému alebo vysokého napätiatage Programátor.

Prescaler systémových hodín

Systémové hodiny ATtiny25 / 45/85 možno rozdeliť nastavením hodnoty “CLKPR - Register Prescale Clock” na strane 32. Túto funkciu možno použiť na zníženie spotreby energie, keď je požiadavka na výkon spracovania nízka. Toto možno použiť so všetkými možnosťami zdroja hodín a ovplyvní to frekvenciu hodín CPU a všetkých synchrónnych periférií. clkI/O, clkADC, clkCPU a clkFLASH sú rozdelené faktorom, ako je znázornené na Tabuľka 6-15 na strane 33.

Čas prepínania

Pri prepínaní medzi nastaveniami predvoľby času zaisťuje systémový predvoľba hodín, aby v systéme hodín nedochádzalo k poruchám a aby žiadna medzifrekvencia nebola vyššia ako ani frekvencia hodín zodpovedajúca predchádzajúcemu nastaveniu, ani frekvencia hodín zodpovedajúca novému nastaveniu.

Počítadlo zvlnenia, ktoré implementuje predradený prevodník, beží na frekvencii nerozdelených hodín, ktorá môže byť rýchlejšia ako frekvencia hodín procesora. Preto nie je možné určiť stav predradiča - ani keby bol čitateľný, a nemožno presne predpovedať presný čas potrebný na prechod z jednej hodiny na druhú.

Od zapísania hodnôt CLKPS trvá medzi novými časovými hodinami medzi T1 + T2 a T1 + 2 * T2. V tomto intervale sú vyrobené 2 aktívne hrany hodín. Tu je T1 predchádzajúca perióda hodín a T2 je perióda zodpovedajúca novému nastaveniu predradiča.

Vyrovnávacia pamäť hodín

Zariadenie môže vysielať systémové hodiny na pin CLKO (ak sa nepoužíva ako pin XTAL2). Pre umožnenie výstupu musí byť naprogramovaná poistka CKOUT. Tento režim je vhodný, keď sa čipové hodiny používajú na napájanie ostatných obvodov v systéme. Pamätajte, že hodiny nebudú vynulované počas resetu a že normálna prevádzka I / O pinu bude potlačená, keď bude naprogramovaná poistka. Keď sú hodiny na výstupe CLKO, je možné zvoliť interný RC oscilátor, WDT oscilátor, PLL a externé hodiny (CLKI). Krištáľové oscilátory (XTAL1, XTAL2) nie je možné použiť na výstup hodín na CLKO. Ak sa použije systémový predvoľba systémových hodín, sú na výstupe rozdelené systémové hodiny.

Popis registrácie

OSCCAL - register kalibrácie oscilátora

Bit 7 6 5 4 3 2 1 0
0x31 CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 OSCCAL
Čítanie/Písanie R/W R/W R/W R/W R/W R/W R/W R/W

Bity 7: 0 - CAL [7: 0]: hodnota kalibrácie oscilátora

Register kalibrácie oscilátora sa používa na orezanie kalibrovaného interného RC oscilátora na odstránenie procesných variácií z frekvencie oscilátora. Počas resetu čipu sa do tohto registra automaticky zapisuje predprogramovaná kalibračná hodnota, čím sa získa výrobcom kalibrovaná frekvencia uvedená v Tabuľka 21-2 na strane 164. Aplikačný softvér môže tento register zapísať a zmeniť tak frekvenciu oscilátora. Oscilátor je možné kalibrovať na frekvencie, ako je uvedené v Tabuľka 21-2 na strane 164. Kalibrácia mimo tohto rozsahu nie je zaručená.

Tento oscilátor sa používa na načasovanie prístupov na zápis do EEPROM a Flash a tieto časy zápisu budú zodpovedajúcim spôsobom ovplyvnené. Ak sú zapísané EEPROM alebo Flash, nekalibrujte na viac ako 8.8 MHz. V opačnom prípade môže dôjsť k zlyhaniu zápisu na EEPROM alebo Flash.

Bit CAL7 určuje rozsah činnosti oscilátora. Nastavením tohto bitu na 0 poskytnete najnižší frekvenčný rozsah, nastavením tohto bitu na 1 poskytnete najvyšší frekvenčný rozsah. Dva frekvenčné rozsahy sa prekrývajú, inými slovami, nastavenie OSCCAL = 0x7F dáva vyššiu frekvenciu ako OSCCAL = 0x80.

Bity CAL [6: 0] sa používajú na vyladenie frekvencie vo zvolenom rozsahu. Nastavenie 0x00 poskytuje najnižšiu frekvenciu v tomto rozsahu a nastavenie 0x7F najvyššiu frekvenciu v rozsahu.

Aby bola zaistená stabilná prevádzka MCU, mala by sa kalibračná hodnota meniť v malom. Zmeny frekvencie viac ako 2% z jedného cyklu do druhého môžu viesť k nepredvídateľnému správaniu. Zmeny v OSCCAL by nemali prekročiť 0x20 pre každú kalibráciu. Je potrebné zabezpečiť, aby sa MCU udržiavala v resetovaní počas takýchto zmien frekvencie hodín

Tabuľka 6-14. Frekvenčný rozsah interného RC oscilátora

Hodnota OSCCAL Typická najnižšia frekvencia s ohľadom na menovitú frekvenciu Typická najvyššia frekvencia s ohľadom na menovitú frekvenciu
0x00 50% 100%
0x3F 75% 150%
0x7F 100% 200%

CLKPR - Register Prescale hodín

Bit 7 6 5 4 3 2 1 0
0x26 CLKPCE CLKPS3 CLKPS2 CLKPS1 CLKPS0 CLKPR
Čítanie/Písanie R/W R R R R/W R/W R/W R/W

Počiatočná hodnota 0 0 0 0 Pozri popis bitov

Bit 7 - CLKPCE: Zmena predvoľby hodín povolená

Bit CLKPCE musí byť zapísaný do logického režimu, aby sa umožnila zmena bitov CLKPS. Bit CLKPCE sa aktualizuje, až keď sa ostatné bity v CLKPR súčasne zapíšu na nulu. CLKPCE sa hardvérom vymaže štyri cykly po zápise alebo po zápise bitov CLKPS. Prepísaním bitu CLKPCE v rámci tohto časového limitu sa nerozšíri časový interval ani nevymaže bit CLKPCE.

Bity 6: 4 - Res: Rezervované bity

Tieto bity sú rezervované bity v ATtiny25 / 45/85 a budú sa vždy čítať ako nula.

Bity 3: 0 - CLKPS [3: 0]: Clock Prescaler Vyberte bity 3 - 0

Tieto bity definujú faktor rozdelenia medzi vybraným zdrojom hodín a hodinami interného systému. Tieto bity je možné zapisovať za chodu, aby sa zmenila frekvencia hodín tak, aby vyhovovali požiadavkám aplikácie. Pretože rozdeľovač rozdeľuje vstup hlavných hodín na MCU, rýchlosť všetkých synchrónnych periférií sa zníži, keď sa použije faktor rozdelenia. Faktory delenia sú uvedené v Tabuľka 6-15.

Aby sa zabránilo neúmyselným zmenám frekvencie hodín, je potrebné pri zmene bitov CLKPS dodržať špeciálny postup zápisu:

Napíšte bit CLKPCE (Clock Prescaler Change Enable) na jeden a všetky ostatné bity v CLKPR na nulu.

Do štyroch cyklov napíšte požadovanú hodnotu do CLKPS, zatiaľ čo do CLKPCE napíšte nulu.

Pri zmene nastavenia predvoľby musí byť prerušenie vypnuté, aby sa zabezpečilo, že nie je prerušený postup zápisu.

Poistka CKDIV8 určuje počiatočnú hodnotu bitov CLKPS. Ak nie je CKDIV8 naprogramovaný, bity CLKPS sa nastavia na „0000“. Ak je naprogramovaný CKDIV8, bity CLKPS sa nastavia na „0011“, čím pri spustení vznikne deliaci faktor osem. Táto funkcia by sa mala použiť, ak má vybraný zdroj hodín vyššiu frekvenciu, než je maximálna frekvencia zariadenia pri súčasných prevádzkových podmienkach. Upozorňujeme, že do bitov CLKPS je možné zapísať akúkoľvek hodnotu bez ohľadu na nastavenie poistky CKDIV8. Aplikačný softvér musí zabezpečiť dostatočný faktor delenia

zvolí sa, ak zvolený zdroj hodín má vyššiu frekvenciu ako je maximálna frekvencia zariadenia za súčasných prevádzkových podmienok. Zariadenie sa dodáva s naprogramovanou poistkou CKDIV8.

Tabuľka 6-15. Vyberte preddeličku hodín

CLKPS3 CLKPS2 CLKPS1 CLKPS0 Faktor rozdelenia hodín
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 Rezervované
1 0 1 0 Rezervované
1 0 1 1 Rezervované
1 1 0 0 Rezervované
1 1 0 1 Rezervované
1 1 1 0 Rezervované
1 1 1 1 Rezervované

Poznámka: Preddelička je v režime kompatibility ATtiny15 vypnutá a zápis do CLKPR ani programovanie poistky CKDIV8 nemá žiadny vplyv na systémové hodiny (ktoré budú vždy 1.6 MHz).

Správa napájania a režimy spánku

Vysoký výkon a špičková efektivita kódu robia z mikrokontrolérov AVR ideálnu voľbu pre aplikácie s nízkou spotrebou. Režimy spánku navyše umožňujú aplikácii vypnúť nepoužívané moduly v MCU, čím šetria energiu. AVR poskytuje rôzne režimy spánku, ktoré umožňujú používateľovi prispôsobiť spotrebu energie požiadavkám aplikácie.

Režimy spánku

Obrázok 6-1 na strane 23 predstavuje rôzne hodiny systémy a ich distribúciu v ATtiny25 / 45/85. Obrázok pomáha pri výbere vhodného režimu spánku. Tabuľka 7-1 zobrazuje rôzne režimy spánku a zdroje ich prebudenia.

Tabuľka 7-1. Aktívne hodinové domény a zdroje budenia v rôznych režimoch spánku

Aktívne domény hodín Oscilátory Zdroje prebudenia
Režim spánku clkCPU clkFLASH clkIO clkADC clkPCK Hlavný zdroj hodín povolený INT0 a zmena PINu SPM / EEPROM

Pripravený

 

Podmienka spustenia USI

ADC Iné I/O Strážny pes Prerušiť
Nečinný X X X X X X X X X X
Redukcia šumu ADC X X X(1) X X X X
Vypnut X(1) X X

Poznámka: Pre INT0 iba prerušenie úrovne.

Pre vstup do niektorého z troch režimov spánku musí byť bit SE v MCUCR zapísaný do logického jedného a musí byť vykonaná inštrukcia SLEEP. Bity SM [1: 0] v registri MCUCR vyberajú, ktorý režim spánku (nečinný, redukcia šumu ADC alebo vypnutie) bude aktivovaný inštrukciou SLEEP. Pozri Tabuľka 7-2 pre zhrnutie.

Ak dôjde k povolenému prerušeniu, keď je MCU v režime spánku, MCU sa prebudí. MCU sa potom zastaví na štyri cykly okrem času spustenia, vykoná rutinu prerušenia a pokračuje v vykonávaní podľa inštrukcií po SLEEP. Obsah registra File a SRAM zostanú nezmenené, keď sa zariadenie prebudí zo spánku. Ak počas režimu spánku dôjde k resetovaniu, MCU sa prebudí a spustí sa z vektora resetovania.

Poznámka: ak sa na prebudenie použije prerušenie spustené úrovňou, zmenená úroveň sa musí nejaký čas podržať, aby sa MCU prebudil (a aby MCU vstúpil do rutiny služby prerušenia). Pozri „Externé prerušenia“ na stránke 49 pre podrobnosti.

Režim nečinnosti

Keď sú bity SM[1:0] zapísané na 00, inštrukcia SLEEP spôsobí, že MCU prejde do režimu nečinnosti, pričom zastaví CPU, ale umožní analógovému komparátoru, ADC, USI, časovaču/počítadlu, Watchdogu a systému prerušenia pokračovať v činnosti. stravovanie. Tento režim spánku v podstate zastaví clkCPU a clkFLASH, zatiaľ čo ostatné hodiny bežia.

Pohotovostný režim umožňuje MCU prebudiť sa z externých spustených prerušení aj z interných, ako je napríklad Timer Overflow. Ak nie je potrebné prebudenie z prerušenia analógového komparátora, je možné analógový komparátor vypnúť nastavením bitu ACD na „ACSR - riadenie analógového komparátora a stavový register“ na strane 120. Zníži sa tým spotreba energie v základnom režime. Ak je povolený ADC, prevod sa spustí automaticky po zadaní tohto režimu.

Režim redukcie šumu ADC

Keď sú bity SM[1:0] zapísané na 01, inštrukcia SLEEP spôsobí, že MCU prejde do režimu redukcie šumu ADC, zastaví CPU, ale umožní ADC, externým prerušeniam a Watchdogu pokračovať v činnosti (ak je povolená). Tento režim spánku zastaví clkI/O, clkCPU a clkFLASH, pričom umožní bežať ostatné hodiny.

To zlepšuje šumové prostredie pre ADC a umožňuje meranie s vyšším rozlíšením. Ak je povolený ADC, prevod sa spustí automaticky, keď vstúpite do tohto režimu. Okrem prerušenia ADC Conversion Complete môže MCU prebudiť iba externý reset, Watchdog reset, Brown-out reset, prerušenie pripravené na SPM / EEPROM, prerušenie externej úrovne na INT0 alebo prerušenie výmeny pinov režim.

Režim vypnutia

Keď sú bity SM [1: 0] zapísané na 10, inštrukcia SLEEP prepne MCU do režimu vypnutia. V tomto režime je oscilátor zastavený, zatiaľ čo vonkajšie prerušenia, detekcia stavu spustenia USI a Watchdog pokračujú v činnosti (ak je povolený). MCU môže prebudiť iba externý reset, Watchdog reset, Brown-out reset, prerušenie štartovacej podmienky USI, prerušenie externej úrovne na INT0 alebo prerušenie výmeny pinov. Tento režim spánku zastaví všetky generované hodiny a umožní prevádzku iba asynchrónnych modulov.

Softvér BOD zakázať

Keď je detektor Brown-out (BOD) aktivovaný poistkami BODLEVEL (pozri Tabuľka 20-4 na strane 148), BSK aktívne monitoruje objem dodávkytage počas obdobia spánku. V niektorých zariadeniach je možné ušetriť energiu vypnutím BSK softvérom v režime spánku. Spotreba energie v režime spánku bude potom na takej úrovni, ako keď je BSK globálne deaktivovaná poistkami.

Ak je BOD softvérovo zakázaný, funkcia BOD sa vypne ihneď po prechode do režimu spánku. Po prebudení zo spánku sa BOD opäť automaticky aktivuje. To zaisťuje bezpečnú prevádzku v prípade, že úroveň VCC klesne počas obdobia spánku.

Keď je BOD deaktivovaný, čas prebudenia z režimu spánku bude rovnaký ako čas prebudenia z RESETU. Užívateľ musí manuálne nakonfigurovať časy prebudenia tak, aby mala referencia bandgap čas začať a BOD pracuje správne skôr, ako bude MCU pokračovať vo vykonávaní kódu. Pozri poistkové bity SUT [1: 0] a CKSEL [3: 0] v tabuľke „Nízka poistka“ na strane 149

Zakázanie BOD je riadené bitom BODS (BOD Sleep) riadiaceho registra MCU, pozri „MCUCR - kontrola MCU Registrovať sa ”na strane 37. Zápis tohto bitu do jednej vypne BOD pri vypínaní, zatiaľ čo zápis nuly udržuje BOD aktívny. Predvolené nastavenie je nula, tj BOD aktívny.

Zápis do bitu BODS je riadený časovanou postupnosťou a povolovacím bitom, viď „MCUCR - regulácia regulácie MCU- ter “na strane 37.

Obmedzenia

Funkcia deaktivácie BOD bola implementovaná iba v nasledujúcich zariadeniach:

ATtiny25, revízia E a novšie

ATtiny45, revízia D a novšie

ATtiny85, revízia C a novšie

Revízie sú označené na balení zariadenia a môžu byť umiestnené nasledovne:

Spodná strana balíkov 8P3 a 8S2

Horná strana balenia 20M1

Register zníženia výkonu

Register zníženia výkonu (PRR), pozri “PRR - Register zníženia výkonu” na strane 38, poskytuje metódu na zníženie spotreby energie zastavením hodín na jednotlivých perifériách. Aktuálny stav periférie je zmrazený a I / O registre nemožno čítať ani zapisovať. Zdroje, ktoré periférne zariadenie použije pri zastavení hodín, zostanú obsadené, a preto by malo byť periférne zariadenie pred zastavením hodín vo väčšine prípadov deaktivované. Prebudenie modulu, ktoré sa vykoná vyčistením bitu v PRR, uvedie modul do rovnakého stavu ako pred vypnutím.

Vypnutie modulu je možné použiť v základnom režime a v aktívnom režime na výrazné zníženie celkovej spotreby energie. Vo všetkých ostatných režimoch spánku sú hodiny už zastavené. Pozri “Napájací prúd I / O modulov” na strane 177 napramples.

Minimalizácia spotreby energie

Pri pokuse o minimalizáciu spotreby energie v systéme riadenom AVR je potrebné vziať do úvahy niekoľko problémov. Vo všeobecnosti by sa mali režimy spánku využívať čo najviac a režim spánku by sa mal zvoliť tak, aby fungovalo čo najmenej funkcií zariadenia. Všetky potrebné funkcie by mali byť deaktivované. Najmä nasledujúce moduly môžu vyžadovať osobitnú pozornosť, keď sa snažia dosiahnuť čo najmenšiu spotrebu energie.

Analógovo-digitálny prevodník

Ak je povolené, ADC bude povolené vo všetkých režimoch spánku. Z dôvodu úspory energie by mal byť ADC pred prechodom do režimu spánku vypnutý. Keď je ADC vypnutý a znovu zapnutý, ďalšia konverzia bude rozšírená konverzia. Odkazujú na „Analógový na digitálny prevodník“ na stránke 122 pre podrobnosti o prevádzke ADC.

Analógový komparátor

Pri vstupe do základného režimu by mal byť analógový komparátor deaktivovaný, ak sa nepoužíva. Pri vstupe do režimu redukcie šumu ADC by mal byť analógový komparátor vypnutý. V ostatných režimoch spánku je analógový komparátor automaticky deaktivovaný. Ak je však analógový komparátor nastavený na používanie interného zvtage Ako referenčný vstup by mal byť analógový komparátor deaktivovaný vo všetkých režimoch spánku. V opačnom prípade bude interný zvtage Referencia bude povolená, nezávisle od režimu spánku. Odkazujú na „Analógový komparátor“ na strane 119 Podrobnosti o konfigurácii analógového komparátora.

Brown-out detektor

Pokiaľ v aplikácii nie je potrebný Brown-out detektor, mal by byť tento modul vypnutý. Ak je detektor zhasnutia zapnutý poistkami BODLEVEL, bude zapnutý vo všetkých režimoch spánku, a preto bude vždy spotrebovávať energiu. V režimoch hlbšieho spánku to významne prispeje k celkovej spotrebe prúdu. Pozri „Brown-out Detec- “na strane 41 „Softvér BOD Disable“ na stránke 35 Podrobnosti o konfigurácii detektora zhasnutia.

Interný zvtage Referencia

Interný zvtage Referencia bude v prípade potreby povolená detekciou zhasnutia, analógovým komparátorom alebo ADC. Ak sú tieto moduly deaktivované, ako je popísané v častiach vyššie, interný objtagReferencia bude deaktivovaná a nebude spotrebovávať energiu. Po opätovnom zapnutí musí používateľ povoliť spustenie referencie pred použitím výstupu. Ak je referencia zapnutá v režime spánku, výstup je možné ihneď použiť. Odkazujú na „Interný zvtage Referencia “na strane 42 Podrobnosti o čase spustenia.

Watchdog Timer

Ak v aplikácii nie je potrebný časovač Watchdog, mal by sa tento modul vypnúť. Ak je povolený časovač Watchdog, bude povolený vo všetkých režimoch spánku, a preto bude vždy spotrebovávať energiu. V režimoch hlbšieho spánku to významne prispeje k celkovej spotrebe prúdu. Odkazujú na „Časovač strážneho psa“ na strane 42 Podrobnosti o konfigurácii časovača Watchdog.

Prípojné kolíky

Pri prechode do režimu spánku by mali byť všetky kolíky portu nakonfigurované tak, aby využívali minimálny výkon. Najdôležitejšie je potom zabezpečiť, aby žiadne kolíky nepoháňali odporovú záťaž. V režimoch spánku, kde sú zastavené I/O hodiny (clkI/O) aj ADC hodiny (clkADC), budú vstupné vyrovnávacie pamäte zariadenia deaktivované. To zaisťuje, že nedochádza k spotrebe energie

logikou vstupu, keď to nie je potrebné. V niektorých prípadoch je vstupná logika potrebná na zistenie podmienok prebudenia a

potom sa povolí. Prečítajte si časť „Režimy digitálneho vstupu a režimy spánku“ na stránke 57 podrobnosti o tom, ktoré piny sú povolené. Ak je aktivovaná vstupná vyrovnávacia pamäť a vstupný signál zostáva pohyblivý alebo má úroveň analógového signálu blízku VCC/2, vstupná vyrovnávacia pamäť bude spotrebovať nadmernú energiu.

Pre analógové vstupné kolíky by mala byť digitálna vstupná vyrovnávacia pamäť vždy vypnutá. Úroveň analógového signálu blízka VCC/2 na vstupnom kolíku môže spôsobiť značný prúd aj v aktívnom režime. Digitálne vstupné vyrovnávacie pamäte možno deaktivovať zápisom do registra DIDR0 (Digital Input Disable Register). Odkazujú na “DIDR0 - Digitálny vstup zakázať register 0” na strane 121 pre podrobnosti.

Popis registrácie

MCUCR - riadiaci register MCU

Riadiaci register MCU obsahuje riadiace bity pre správu napájania.

Bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 TELO ISC01 ISC00 MCUCR
Čítanie/Písanie R R/W R/W R/W R/W R R/W R/W
Počiatočná hodnota 0 0 0 0 0 0 0 0

Bit 7 - BODY: BOD Spánok

Funkcia deaktivácie BOD je k dispozícii iba na niektorých zariadeniach. Pozri “Obmedzenia” na strane 36.

Aby bolo možné zakázať BOD počas spánku (pozri Tabuľka 7-1 na strane 34) bit BODS musí byť napísaný na logický. Toto je riadené časovanou sekvenciou a aktivačným bitom, BODSE v MCUCR. Najskôr musia byť BODS aj BODSE nastavené na jednu. Po druhé, do štyroch cyklov hodín musí byť BODS nastavený na jeden a BODSE musí byť nastavený na nulu. Bit BODS je aktívny tri hodiny po jeho nastavení. Pokým je BODS aktívny, musí sa vykonať inštrukcia spánku, aby sa BOD vypol pre skutočný režim spánku. Bit BODS sa automaticky vymaže po troch cykloch hodín.

V zariadeniach, kde nebol implementovaný režim spánku BOD, je tento bit nepoužitý a bude vždy čítať nulu.

Bit 5 - SE: Režim spánku povolený

Bit SE musí byť zapísaný do logickej jednotky, aby sa MCU dostal do režimu spánku, keď sa vykoná inštrukcia SLEEP. Aby sa zabránilo prechodu MCU do režimu spánku, pokiaľ to nie je účelom programátora, odporúča sa zapísať bit Sleep Enable (SE) na jednotku tesne pred vykonaním inštrukcie SLEEP a vymazať ho ihneď po prebudení.

Bity 4: 3 - SM [1: 0]: Režim spánku Vyberte bity 1 a 0

Tieto bity vyberajú z troch dostupných režimov spánku, ako je znázornené na obrázku Tabuľka 7-2.

Tabuľka 7-2. Výber režimu spánku

SM1 SM0 Režim spánku
0 0 Nečinný
0 1 Redukcia šumu ADC
1 0 Vypnut
1 1 Rezervované

Bit 2 - BODSE: BOD Sleep Enable

Funkcia deaktivácie BOD je k dispozícii iba na niektorých zariadeniach. Pozri “Obmedzenia” na strane 36.

Bit BODSE umožňuje nastavenie riadiaceho bitu BODS, ako je vysvetlené v popise bitu BODS. Blokovanie BOD je riadené časovanou sekvenciou.

Tento bit sa nepoužíva v zariadeniach, kde nebolo implementované vypnutie softvéru BOD, a v týchto zariadeniach sa bude čítať ako nula.

PRR - Register zníženia výkonu

Register zníženia výkonu poskytuje metódu na zníženie spotreby energie povolením deaktivácie signálov periférnych hodín.

Bit 7 6 5 4 3 2 1 0
0x20 PRIM1 PRIM0 PRUSI PRADC PRR
Čítanie/Písanie R R R R R/W R/W R/W R/W
Počiatočná hodnota 0 0 0 0 0 0 0 0

Bity 7: 4 - Res: Rezervované bity

Tieto bity sú rezervované bity v ATtiny25 / 45/85 a budú sa vždy čítať ako nula.

Bit 3 - PRTIM1: Časovač / počítadlo zníženia výkonu1

Zápis logickej jednotky na tento bit vypne modul Timer / Counter1. Keď je povolený časovač / počítadlo1, prevádzka bude pokračovať ako pred vypnutím.

Bit 2 - PRTIM0: Časovač / počítadlo zníženia výkonu0

Zápis logickej jednotky na tento bit vypne modul Timer / Counter0. Keď je povolený časovač / počítadlo0, prevádzka bude pokračovať ako pred vypnutím.

Bit 1 - PRUSI: Redukcia napájania USI

Zápis logickej jednotky na tento bit zastaví činnosť USI zastavením hodín do modulu. Pri ďalšom prebudení USI by sa mal USI znovu inicializovať, aby sa zabezpečila správna funkcia.

Bit 0 - PRADC: ADC na zníženie výkonu

Zapísaním logického jedného do tohto bitu sa vypne ADC. Pred vypnutím musí byť ADC deaktivovaný. Upozorňujeme, že hodiny ADC používajú aj niektoré časti analógového komparátora, čo znamená, že analógový komparátor nemožno použiť, ak je tento bit vysoký.

Ovládanie a resetovanie systému

Resetovanie AVR

Počas resetu sú všetky I / O registre nastavené na počiatočné hodnoty a program začne vykonávanie z resetovacieho procesora. Inštrukcia umiestnená na Vektor resetu musí byť inštrukcia RJMP - Relative Jump - k rutine manipulácie s resetom. Ak program nikdy nepovolí zdroj prerušenia, vektory prerušenia sa nepoužívajú a na tieto miesta je možné umiestniť bežný programový kód. Schéma zapojenia v Obrázok 8-1 ukazuje logiku resetovania. Elektrické parametre resetovacích obvodov sú uvedené v „Charakteristiky systému a resetovania“ na stránke 165.

Obrázok 8-1 Resetovať logiku Logika resetovania

I / O porty AVR sa okamžite resetujú do pôvodného stavu, keď sa aktivuje zdroj resetovania. To nevyžaduje spustenie žiadneho zdroja hodín.

Po deaktivácii všetkých zdrojov resetovania sa vyvolá počítadlo oneskorenia, ktoré natiahne interný reset. To umožňuje napájaniu dosiahnuť stabilnú úroveň pred začatím normálnej prevádzky. Časový limit počítadla oneskorenia je definovaný používateľom pomocou poistiek SUT a CKSEL. Rôzne výbery pre obdobie oneskorenia sú uvedené v "Hodiny." Zdroje “na strane 25.

Obnoviť zdroje

ATtiny25 / 45/85 má štyri zdroje resetovania:

Resetovanie pri zapnutí. MCU sa resetuje, keď je napájací voltage je pod prahom Power-on Reset (VPOT).

Externý reset. MCU sa resetuje, keď je na kolíku RESET nízka úroveň dlhšia ako minimálna dĺžka impulzu.

Strážny pes Reset. MCU sa resetuje, keď vyprší časovač Watchdog Timer a Watchdog je povolený.

Reset zhasnutia. MCU sa resetuje, keď je napájací voltage VCC je pod prahom resetovania hnedého zhasnutia (VBOT) a detektor zhnednutia je aktivovaný.

Reset pri zapnutí

Pulz resetovania pri zapnutí (POR) je generovaný obvodom detekcie na čipu. Úroveň detekcie je definovaná v „Sys- a resetovať charakteristiky “na strane 165. POR sa aktivuje vždy, keď je VCC pod úrovňou detekcie. Obvod POR je možné použiť na spustenie Start-up Reset, ako aj na detekciu poruchy napájacieho objtage.

Obvod POR (Power-on Reset) zaisťuje, že sa zariadenie resetuje po zapnutí. Dosiahnutie prahu resetovania pri zapnutí objtage vyvolá počítadlo oneskorenia, ktoré určuje, ako dlho zostane zariadenie v režime RESET po náraste VCC. Signál RESET sa znova aktivuje bez oneskorenia, keď VCC klesne pod úroveň detekcie.

Obrázok 8-2. Spustenie MCU, RESET Naviazané na VCC

VNÚTORNÝ RESET

Obrázok 8-3. Spustenie MCU, RESET rozšírený externe

Externý reset

Externý reset je generovaný nízkou úrovňou na kolíku RESET, ak je povolený. Resetujte impulzy dlhšie ako je minimálna šírka impulzu (pozri „Charakteristiky systému a resetovania“ na stránke 165) vygeneruje reset, aj keď hodiny nefungujú. Nie je zaručené, že kratšie impulzy vygenerujú reset. Akonáhle aplikovaný signál dosiahne hodnotu Reset Threshold Voltage – VRST – na kladnej hrane počítadlo oneskorenia spustí MCU po uplynutí doby Time-out.

Obrázok 8-4. Externý reset počas prevádzky Obr.8.4

Detekcia zhnednutia

ATtiny25/45/85 má obvod detekcie brown-out na čipe (BOD) na monitorovanie úrovne VCC počas prevádzky porovnaním s pevnou úrovňou spúšťania. Spúšťaciu úroveň pre BOD je možné zvoliť pomocou poistiek BODLEVEL. Spúšťacia úroveň má hysterézu, aby sa zabezpečila detekcia Brown-out bez špičiek. Hysterézia na úrovni detekcie by mala byť interpretovaná ako VBOT+ = VBOT + VHYST/2 a VBOT- = VBOT – VHYST/2.

Keď je povolená BSK a VCC sa zníži na hodnotu pod spúšťaciu úroveň (VBOT-in Obrázok 8-5), okamžite sa aktivuje Brown-out Reset. Keď sa VCC zvýši nad úroveň spúšťania (VBOT+ in Obrázok 8-5), počítadlo oneskorenia spustí MCU po uplynutí časového limitu tTOUT.

Obvod BSK zaznamená pokles VCC len vtedy, ak je objtage zostáva pod spúšťacou úrovňou dlhšie ako tBOD „Charakteristiky systému a resetovania“ na stránke 165. Obr.8.5

Strážny pes Reset

Po uplynutí časového limitu Watchdog vygeneruje krátky resetovací impulz v trvaní jedného cyklu CK. Na zostupnej hrane tohto impulzu začne časovač oneskorenia odpočítavať časový limit tTOUT. Odkazujú na „Časovač strážneho psa“ na strane 42 pre podrobnosti o fungovaní časovača Watchdog.

Voltage Referencia Povoliť signály a čas spustenia

ZvtagReferenčný čas spustenia môže ovplyvniť spôsob, akým by sa mal používať. Čas spustenia je uvedený v „Charakteristiky systému a resetovania“ na stránke 165. Z dôvodu úspory energie nie je referencia vždy zapnutá. Odkaz je zapnutý v nasledujúcich situáciách:

Keď je BOD povolený (programovaním poistkových bitov BODLEVEL [2: 0]).

Keď je odkaz na bandgap pripojený k analógovému komparátoru (nastavením bitu ACBG v ACSR).

Keď je povolený ADC.

Keď teda nie je povolený BOD, po nastavení bitu ACBG alebo povolení ADC musí užívateľ vždy umožniť spustenie referencie skôr, ako sa použije výstup z analógového komparátora alebo ADC. Aby sa znížila spotreba energie v režime vypnutia, môže sa používateľ vyhnúť trom vyššie uvedeným podmienkam, aby sa zabezpečil, že sa referencia pred vstupom do režimu vypnutia vypne.

Watchdog Timer

Časovač Watchdog je taktovaný z On-chip oscilátora, ktorý beží na 128 kHz. Ovládaním predvoľby časovača Watchdog Timer je možné upraviť interval resetovania Watchdog, ako je znázornené na Tabuľka 8-3 na strane 46. Inštrukcia WDR - Watchdog Reset - resetuje časovač Watchdog. Časovač Watchdog sa tiež resetuje, keď je vypnutý a dôjde k resetovaniu čipu. Na určenie doby resetovania je možné zvoliť desať rôznych periód hodinového cyklu. Ak doba resetovania vyprší bez ďalšieho Resetovania Watchdog, ATtiny25 / 45/85 sa resetuje a vykoná z resetovacieho vektora. Podrobné informácie o načasovaní nastavenia Watchdog Reset nájdete na Tabuľka 8-3 na strane 46.

Časovač Watchdog Timer môže byť tiež nakonfigurovaný tak, aby namiesto resetovania generoval prerušenie. To môže byť veľmi užitočné pri používaní Watchdogu na prebudenie z napájania.

Aby sa zabránilo neúmyselnému vypnutiu strážneho psa alebo neúmyselnej zmene časového limitu, poistka WDTON zvolí dve rôzne úrovne bezpečnosti, ako je znázornené na Tabuľka 8-1 Pozri „Časované sekvencie pre zmenu kon- konfigurácia časovača Watchdog ”na strane 43 pre podrobnosti.

Tabuľka 8-1. Konfigurácia WDT ako funkcia nastavení poistiek WDTON

WDTON Úroveň bezpečnosti Počiatočný stav WDT Ako zakázať WDT Ako zmeniť časový limit
Neprogramované 1 Zakázané Časovaná sekvencia Žiadne obmedzenia
Naprogramované 2 Povolené Vždy povolené Časovaná sekvencia

Obrázok 8-7. Watchdog Timer Strážny pes

Časované sekvencie pre zmenu konfigurácie časovača Watchdog

Postupnosť zmeny konfigurácie sa medzi týmito dvoma úrovňami bezpečnosti mierne líši. Pre každú úroveň sú opísané samostatné postupy.

Úroveň bezpečnosti 1: V tomto režime je časovač Watchdog na začiatku zakázaný, ale možno ho povoliť zápisom bitu WDE na jednotku bez akéhokoľvek obmedzenia. Pri deaktivácii aktivovaného časovača Watchdog je potrebná časovaná sekvencia. Ak chcete zakázať aktivovaný časovač Watchdog, musíte dodržať nasledujúci postup:

V rovnakej operácii napíšte logický na WDCE a WDE. Logický musí byť zapísaný do WDE bez ohľadu na predchádzajúcu hodnotu bitu WDE.

V priebehu nasledujúcich štyroch hodinových cyklov v rámci tej istej operácie napíšte bity WDE a WDP podľa želania, ale s bitom WDCE vymazaným.

Úroveň bezpečnosti 2: V tomto režime je časovač Watchdog vždy povolený a bit WDE sa bude vždy čítať ako jeden. Pri zmene časového limitu Watchdog je potrebná časovaná sekvencia. Ak chcete zmeniť časový limit Watchdog, musíte dodržať nasledujúci postup:

V rovnakej operácii napíšte logický do WDCE a WDE. Aj keď je WDE vždy nastavené, WDE musí byť zapísané do jedného, ​​aby sa spustila časovaná sekvencia.

V priebehu nasledujúcich štyroch taktovacích cyklov, v rámci tej istej operácie, napíšte bity WDP podľa želania, ale s vymazaným bitom WDCE. Hodnota zapísaná do bitu WDE je irelevantná.

Kód Example

Nasledujúci kód naprample ukazuje jednu zostavu a jednu funkciu C na vypnutie WDT. Bývalýample predpokladá, že prerušenia sú riadené (napr. globálnym vypnutím prerušení), takže počas vykonávania týchto funkcií nedôjde k žiadnym prerušeniam.

Montážny kód Example(1)
WDT_off:

wdr

; Vymazať WDRF v MCUSR

ldi r16, (0<

z MCUSR, r16

; Napíš logický na WDCE a WDE

; Ponechajte staré nastavenie predvoľby, aby ste zabránili neúmyselnému vynulovaniu Watchdog

v r16, WDTCR

ori r16, (1<

z WDTCR, r16

; Vypnite WDT

ldi r16, (0<

z WDTCR, r16

ret

C kód Example(1)
void WDT_off(void)

{

_WDR ();

/* Vymazať WDRF v MCUSR */ MCUSR = 0x00

/* Zápis logickej jednotky do WDCE a WDE */ WDTCR |= (1<

/ * Vypnúť WDT * / WDTCR = 0x00;

}

Poznámka: 1. Pozri „Kód Pramples “na strane 6.

Popis registrácie

MCUSR - Register stavu MCU

Register stavu MCU poskytuje informácie o tom, ktorý zdroj resetovania spôsobil reset MCU.

Bit 7 6 5 4 3 2 1 0
0x34 WDRF BORF EXTRF PORF MCUSR
Čítanie/Písanie R R R R R/W R/W R/W R/W

Počiatočná hodnota 0 0 0 0 Pozri popis bitov

Bity 7: 4 - Res: Rezervované bity

Tieto bity sú rezervované bity v ATtiny25 / 45/85 a budú sa vždy čítať ako nula.

Bit 3 - WDRF: Značka resetovania strážneho psa

Tento bit je nastavený, ak dôjde k resetovaniu Watchdog. Bit sa vynuluje resetom pri zapnutí alebo zapísaním logickej nuly do vlajky.

Bit 2 - BORF: Príznak vynulovaného vynulovania

Tento bit sa nastaví, ak dôjde k Brown-out resetu. Bit sa vynuluje resetom pri zapnutí alebo zapísaním logickej nuly do vlajky.

Bit 1 - EXTRF: Externý resetovací príznak

Tento bit sa nastaví, ak dôjde k externému resetu. Bit sa vynuluje resetom pri zapnutí alebo zapísaním logickej nuly do vlajky.

Bit 0 - PORF: Príznak resetovania po zapnutí

Tento bit sa nastaví, ak dôjde k resetovaniu pri zapnutí. Bit sa vynuluje iba zapísaním logickej nuly do vlajky.

Ak chcete na identifikáciu stavu resetovania použiť príznaky resetovania, užívateľ by si mal čo najskôr prečítať a potom resetovať MCUSR v programe. Ak je register vymazaný skôr, ako dôjde k ďalšiemu resetu, zdroj resetovania možno nájsť preskúmaním príznakov resetovania.

WDTCR - Watchdog Timer Control Register

Bit 7 6 5 4 3 2 1 0
0x21 WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0 WDTCR
Čítanie/Písanie R/W R/W R/W R/W R/W R/W R/W R/W
Počiatočná hodnota 0 0 0 0 X 0 0 0

Bit 7 - WDIF: príznak prerušenia časového limitu strážneho psa

Tento bit sa nastaví, keď v časovači Watchdog nastane časový limit a časovač Watchdog je nakonfigurovaný na prerušenie. Pri vykonávaní zodpovedajúceho vektora spracovania prerušenia je hardvér WDIF vymazaný. Alternatívne sa WDIF zúčtuje tak, že sa na príznak napíše logický. Keď sú nastavené I-bit v SREG a WDIE, vykoná sa prerušenie časového limitu Watchdog.

Bit 6 - WDIE: Watchdog Timeout Interrupt Enable

Keď je tento bit zapísaný do jednej, WDE sa vymaže a I-bit v stavovom registri je nastavený, je povolené Watchdog Time-Out Interrupt. V tomto režime sa namiesto resetovania vykoná príslušné prerušenie, ak dôjde k časovému limitu v časovači Watchdog.

Ak je nastavené WDE, WDIE sa automaticky vymaže hardvérom, keď dôjde k vypršaniu časového limitu. To je užitočné pre udržanie bezpečnosti Watchdog Reset počas používania prerušenia. Po vyčistení bitu WDIE vygeneruje nasledujúci časový limit reset. Aby ste sa vyhli vynulovaniu Watchdog Reset, musí byť WDIE nastavené po každom prerušení.

Tabuľka 8-2. Konfigurácia časovača Watchdog

WDE WDIE Stav časovača strážneho psa Akcia na vypršanie časového limitu
0 0 Zastavené žiadne
0 1 Beh Prerušiť
1 0 Beh Resetovať
1 1 Beh Prerušiť

Bit 4 - WDCE: Watchdog Change Enable

Tento bit sa musí nastaviť, keď sa bit WDE zapisuje na logickú nulu. V opačnom prípade nebude Watchdog deaktivovaný. Po zápise do jedného hardvér vymaže tento bit po štyroch taktovacích cykloch. Postup deaktivácie Watchdogu nájdete v popise bitu WDE. Tento bit musí byť nastavený aj pri zmene bitov predvoľby. Pozri "Časované sekvencie." pre zmenu konfigurácie časovača Watchdog ”na strane 43.

Bit 3 - WDE: Watchdog Enable

Keď je WDE zapísaný na logický, časovač Watchdog je povolený a ak je WDE zapísaný na logickú nulu, funkcia Watchdog Timer je zakázaná. WDE je možné vymazať, iba ak má bit WDCE logickú úroveň jedna. Ak chcete zakázať povolený časovač Watchdog, musíte postupovať podľa týchto pokynov:

V rovnakej operácii napíšte logický na WDCE a WDE. Logický musí byť zapísaný do WDE, aj keď je nastavený na jeden pred spustením operácie deaktivácie.

V priebehu nasledujúcich štyroch hodinových cyklov napíšte logickú 0 na WDE. Toto deaktivuje Watchdog.

Na bezpečnostnej úrovni 2 nie je možné deaktivovať časovač Watchdog Timer, a to ani pri vyššie popísanom algoritme. Pozri „Časované sekvencie pre zmenu konfigurácie časovača Watchdog“ na stránke 43.

Na bezpečnostnej úrovni 1 je WDE v MCUSR prepísané WDRF. Pozri “MCUSR - Register stavu MCU” na strane 44 pre popis WDRF. To znamená, že WDE je nastavené vždy, keď je nastavené WDRF. Ak chcete vymazať WDE, pred deaktiváciou Watchdogu podľa postupu popísaného vyššie musí byť vymazaný WDRF. Táto vlastnosť zaisťuje viacnásobné vynulovanie počas podmienok spôsobujúcich zlyhanie a bezpečné spustenie po zlyhaní.

Poznámka: Ak sa časovač watchdog nebude používať v aplikácii, je dôležité pri inicializácii zariadenia prejsť procedúrou vypnutia strážneho psa. Ak je Watchdog náhodne aktivovaný, naprampAk dôjde k úteku ukazovateľa alebo zhasnutiu zariadenia, zariadenie sa resetuje, čo následne povedie k novému vynulovaniu strážneho psa. Aby sa tejto situácii vyhlo, mal by aplikačný softvér v inicializačnej rutine vždy vymazať príznak WDRF a riadiaci bit WDE.

Bity 5, 2: 0 - WDP [3: 0]: Watchdog Timer Prescaler 3, 2, 1 a 0

Bity WDP [3: 0] určujú prednastavenie časovača Watchdog Timer, keď je povolený časovač Watchdog. Rôzne hodnoty prednastavenia a zodpovedajúce časové limity sú zobrazené v Tabuľka 8-3.

Tabuľka 8-3. Watchdog Timer Prescale Select

WDP3 WDP2 WDP1 WDP0 Počet cyklov oscilátora WDT Typický časový limit pri VCC = 5.0 V
0 0 0 0 2K (2048) cyklov 16 ms
0 0 0 1 4K (4096) cyklov 32 ms
0 0 1 0 8K (8192) cyklov 64 ms
0 0 1 1 16K (16384) cyklov 0.125 s
0 1 0 0 32K (32764) cyklov 0.25 s
0 1 0 1 64K (65536) cyklov 0.5 s
0 1 1 0 128K (131072) cyklov 1.0 s
0 1 1 1 256K (262144) cyklov 2.0 s
1 0 0 0 512K (524288) cyklov 4.0 s
1 0 0 1 1024K (1048576) cyklov 8.0 s

Tabuľka 8-3. Watchdog Timer Prescale Select (Pokračovanie)

WDP3 WDP2 WDP1 WDP0 Počet cyklov oscilátora WDT Typický časový limit pri VCC = 5.0 V
1 0 1 0 Rezervované(1)
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

Poznámka: 1. Ak je vybraté, použije sa jedno z platných nastavení pod 0b1010.

prerušenie

Táto časť popisuje špecifiká spracovania prerušenia, ako sa vykonáva v ATtiny25 / 45/85. Všeobecné vysvetlenie zaobchádzania s prerušením AVR nájdete v časti “Reset a prerušenie spracovania” na strane 12.

Prerušiť vektory v ATtiny25 / 45/85

Vektory prerušenia ATtiny25 / 45/85 sú opísané v Tabuľka 9-1nižšie.

Tabuľka 9-1. Resetovať a prerušiť vektory

Vektor č. Programová adresa Zdroj Definícia prerušenia
1 0x0000 RESETOVAŤ Externý kolík, reset pri zapnutí, reset pri zhasnutí, reset strážneho psa
2 0x0001 INT0 Externá požiadavka na prerušenie 0
3 0x0002 PCINT0 Žiadosť o prerušenie zmeny PIN 0
4 0x0003 TIMER1_COMPA Časovač / Počítadlo1 Porovnajte zhodu A
5 0x0004 TIMER1_OVF Preplnenie časovača / počítadla1
6 0x0005 TIMER0_OVF Preplnenie časovača / počítadla0
7 0x0006 EE_RDY Pripravená EEPROM
8 0x0007 ANA_COMP Analógový komparátor
9 0x0008 ADC Konverzia ADC je dokončená
10 0x0009 TIMER1_COMPB Časovač / Počítadlo1 Porovnajte zhodu B
11 0x000A TIMER0_COMPA Časovač / Počítadlo0 Porovnajte zhodu A
12 0x000B TIMER0_COMPB Časovač / Počítadlo0 Porovnajte zhodu B
13 0x000C WDT Časový limit strážneho psa
14 0x000D USI_START USI ŠTART
15 0x000E USI_OVF Prepad USI

Ak program nikdy nepovolí zdroj prerušenia, vektory prerušenia sa nepoužívajú a na tieto miesta je možné umiestniť bežný programový kód.

Typické a všeobecné nastavenie pre adresy vektorov prerušenia v ATtiny25/45/85 je ukázané v programe example nižšie.

Montážny kód Example
.org 0x0000 ; Nastaviť adresu nasledujúceho vyhlásenie
rjmp RESET ; 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
RESETOVAŤ: ; Začiatok hlavného programu
; Adresa 0x000F

Poznámka: Pozri „Kód Pramples “na strane 6.

Vonkajšie prerušenia

Externé prerušenia sú spúšťané pinom INT0 alebo ktorýmkoľvek z pinov PCINT [5: 0]. Upozorňujeme, že ak je to povolené, prerušenia sa aktivujú, aj keď sú piny INT0 alebo PCINT [5: 0] nakonfigurované ako výstupy. Táto funkcia poskytuje spôsob generovania softvérového prerušenia. Prerušenie výmeny pinov sa spustí, ak sa prepne akýkoľvek povolený pin PCINT [5: 0]. Register PCMSK riadi, ktoré piny prispievajú k prerušeniu výmeny pinov. Prerušenia výmeny pinov na PCINT [5: 0] sú detekované asynchrónne. To znamená, že tieto prerušenia sa dajú použiť na prebudenie súčasti aj z iných režimov spánku ako nečinný.

Prerušenia INT0 môžu byť spustené klesajúcou alebo stúpajúcou hranou alebo nízkou úrovňou. Toto je nastavené tak, ako je uvedené v špecifikácii pre MCU Control Register - MCUCR. Keď je prerušenie INT0 povolené a je nakonfigurované ako spúšťané na úrovni, prerušenie sa spustí, pokiaľ je pin nízky. Pamätajte, že rozpoznanie prerušenia klesajúcej alebo stúpajúcej hrany na INT0 vyžaduje prítomnosť I / O hodín, popísaných v „Hodinové systémy a ich distribúcia“ dňa strana 23.

Prerušenie na nízkej úrovni

Prerušenie nízkej úrovne na INT0 je detekované asynchrónne. To znamená, že toto prerušenie je možné použiť na prebudenie súčasti aj z iných režimov spánku ako nečinný. Hodiny I / O sú zastavené vo všetkých režimoch spánku okrem základného režimu.

Všimnite si, že ak sa na prebudenie z vypnutia použije prerušenie spustené úrovňou, požadovaná úroveň musí byť podržaná dostatočne dlho na to, aby MCU dokončila prebudenie a spustila prerušenie úrovne. Ak hladina zmizne pred koncom Času spustenia, MCU sa stále prebudí, ale nevygeneruje sa žiadne prerušenie. Čas spustenia je definovaný poistkami SUT a CKSEL, ako je popísané v „Možnosti systémových hodín a hodín“ na stránke 23.

Ak je nízka úroveň na kolíku prerušenia odstránená skôr, ako sa zariadenie prebudí, vykonanie programu nebude presmerované do rutiny servisnej prerušenia, ale bude pokračovať od pokynu nasledujúceho po príkaze SLEEP.

Pripnúť načasovanie prerušenia zmeny

BývalýampLe načasovania prerušenia zmeny kolíka je zobrazené na obrázku Obrázok 9-1.

Popis registrácie

MCUCR - riadiaci register MCU

Register riadenia externého prerušenia A obsahuje riadiace bity pre riadenie snímania prerušenia.

Bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 TELO ISC01 ISC00 MCUCR
Čítanie/Písanie R R/W R/W R/W R/W R R/W R/W
Počiatočná hodnota 0 0 0 0 0 0 0 0

Bity 1: 0 - ISC0 [1: 0]: Riadenie prerušenia snímania 0 Bit 1 a Bit 0

Externé prerušenie 0 sa aktivuje externým pinom INT0, ak je nastavený príznak SREG I a zodpovedajúca maska ​​prerušenia. Úroveň a hrany na externom kolíku INT0, ktoré aktivujú prerušenie, sú definované v Tabuľka 9-2. Hodnota na pine INT0 je samppred detekciou hrán. Ak je zvolené prerušenie na hrane alebo na prepínanie, generujú prerušenie impulzy, ktoré trvajú dlhšie ako jedna hodinová perióda. Kratšie impulzy nemusia zaručene generovať prerušenie. Ak je zvolené prerušenie na nízkej úrovni, nízka úroveň musí byť držaná až do dokončenia aktuálne vykonávanej inštrukcie na generovanie prerušenia.

Tabuľka 9-2. Prerušiť 0 Ovládanie zmyslov

ISC01 ISC00 Popis
0 0 Nízka úroveň INT0 generuje požiadavku na prerušenie.
0 1 Akákoľvek logická zmena na INT0 generuje požiadavku na prerušenie.
1 0 Klesajúca hrana INT0 generuje požiadavku na prerušenie.
1 1 Nárastná hrana INT0 generuje požiadavku na prerušenie.

GIMSK - Register všeobecných masiek prerušenia

Bit 7 6 5 4 3 2 1 0
0x3B INT0 PCIe GIMSK
Čítanie/Písanie R R/W R/W R R R R R
Počiatočná hodnota 0 0 0 0 0 0 0 0

Bity 7, 4: 0 - Res: Rezervované bity

Tieto bity sú rezervované bity v ATtiny25 / 45/85 a budú sa vždy čítať ako nula.

Bit 6 - INT0: Externá požiadavka na prerušenie 0 povolená

Keď je nastavený bit INT0 (jeden) a I-bit v stavovom registri (SREG) je nastavený (jeden), je povolené prerušenie externého kolíka. Bity riadenia prerušenia 0 bitov 1/0 (ISC01 a ISC00) v riadiacom registri MCU (MCUCR) definujú, či sa externé prerušenie aktivuje na stúpajúcej a / alebo klesajúcej hrane kolíka INT0 alebo na snímanej úrovni. Aktivita na kolíku spôsobí požiadavku na prerušenie, aj keď je INT0 nakonfigurovaný ako výstup. Príslušné prerušenie požiadavky na externé prerušenie 0 sa vykoná z vektora prerušenia INT0.

Bit 5 - PCIE: Pin Change Interrupt Enable

Keď je bit PCIE nastavený (jeden) a I-bit v stavovom registri (SREG) je nastavený (jeden), je povolené prerušenie výmeny pinov. Akákoľvek zmena na ktoromkoľvek povolenom kolíku PCINT [5: 0] spôsobí prerušenie. Zodpovedajúce prerušenie požiadavky na prerušenie výmeny PIN sa vykoná z vektora prerušenia PCI. Kolíky PCINT [5: 0] sú jednotlivo povolené registrom PCMSK0.

GIFR - všeobecný register príznakov prerušenia

Bit 7 6 5 4 3 2 1 0
0x3A INTF0 PCIF DARČEK
Čítanie/Písanie R R/W R/W R R R R R
Počiatočná hodnota 0 0 0 0 0 0 0 0

Bity 7, 4: 0 - Res: Rezervované bity

Tieto bity sú rezervované bity v ATtiny25 / 45/85 a budú sa vždy čítať ako nula.

Bit 6 - INTF0: Externý príznak prerušenia 0

Keď hrana alebo logická zmena na kolíku INT0 spustí požiadavku na prerušenie, INTF0 sa nastaví (jedna). Ak sú nastavené I-bit v SREG a INT0 bit v GIMSK (jeden), MCU skočí na zodpovedajúci Interrupt Vector. Príznak je vymazaný, keď je vykonaná rutina prerušenia. Prípadne je možné príznak vymazať napísaním logického znaku. Tento príznak je vždy vymazaný, keď je INT0 nakonfigurovaný ako prerušenie úrovne.

Bit 5 - PCIF: Pin Change Interrupt Flag

Keď logická zmena na ľubovoľnom kolíku PCINT [5: 0] spustí požiadavku na prerušenie, nastaví sa PCIF (jeden). Ak sú nastavené I-bit v SREG a PCIE bit v GIMSK (jeden), MCU skočí na zodpovedajúci Interrupt Vector. Príznak je vymazaný, keď je vykonaná rutina prerušenia. Prípadne je možné príznak vymazať napísaním logického znaku.

PCMSK - Register zmeny masky kolíka

Bit 7 6 5 4 3 2 1 0
0x15 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 PCMSK
Čítanie/Písanie R R R/W R/W R/W R/W R/W R/W
Počiatočná hodnota 0 0 0 0 0 0 0 0

Bity 7: 6 - Res: Rezervované bity

Tieto bity sú rezervované bity v ATtiny25 / 45/85 a budú sa vždy čítať ako nula.

Bity 5: 0 - PCINT [5: 0]: Pin Change Enable Mask 5: 0

Každý bit PCINT [5: 0] vyberá, či je na príslušnom I / O kolíku povolené prerušenie výmeny kolíka. Ak je nastavený PCINT [5: 0] a je nastavený bit PCIE v GIMSKu, je na príslušnom I / O kolíku povolené prerušenie výmeny pinov. Ak je PCINT [5: 0] vymazaný, prerušenie výmeny pinov na príslušnom I / O kolíku je deaktivované.

I/O porty

Úvod

Všetky porty AVR majú skutočnú funkciu čítania, úpravy a zápisu, ak sa používajú ako všeobecné digitálne I/O porty. To znamená, že smer jedného kolíka portu je možné zmeniť bez toho, aby ste neúmyselne zmenili smer akéhokoľvek iného kolíka pomocou pokynov SBI a CBI. To isté platí pri zmene hodnoty pohonu (ak je konfigurovaný ako výstup) alebo pri povolení/deaktivácii pull-up rezistorov (ak je nakonfigurovaný ako vstup). Každá výstupná vyrovnávacia pamäť má symetrické charakteristiky pohonu s možnosťou vysokého prepadu aj zdroja. Kolíkový ovládač je dostatočne silný na to, aby priamo poháňal LED displeje. Všetky kolíky portov majú individuálne voliteľné zdvíhacie odpory s napätím napájaniatage invariantný odpor. Všetky I/O kolíky majú ochranné diódy pre VCC aj uzemnenie, ako je uvedené v Obrázok 10-1. Pozri „Elektrické charakteristiky“ na stránke 161 pre úplný zoznam parametrov.

Obrázok 10-1. Schéma ekvivalentného I/O pinu

Obr.10

Všetky registre a bitové odkazy v tejto časti sú zapísané vo všeobecnej forme. Malé písmeno „x“ predstavuje číslovacie písmeno portu a malé „n“ predstavuje číslo bitu. Pri použití registra alebo bitu definovaného v programe však musí byť použitý presný tvar. Za example, PORTB3 pre bit č. 3 v prístave B, tu je dokumentovaný spravidla ako PORTxn. Fyzické I/O registre a bitové umiestnenia sú uvedené v zozname „Register Description“ na strana 64.

Pre každý port sú pridelené tri umiestnenia adresy pamäte I / O, po jednom pre dátový register - PORTx, register smeru údajov - DDRx a vstupné kolíky portu - PINx. Umiestnenie I / O pinov vstupných pinov portu je iba na čítanie, zatiaľ čo dátový register a register dátových smerov sú na čítanie a zápis. Avšak zápis logického čísla na jeden bit v registri PINx bude mať za následok prepnutie zodpovedajúceho bitu v dátovom registri. Bit Pull-up Disable - PUD v MCUCR navyše po nastavení zakáže funkciu pull-up pre všetky piny vo všetkých portoch.

Používanie I / O portu ako General Digital I / O je popísané v „Porty ako všeobecné digitálne I / O“ na strane 53. Väčšina pinov portov je multiplexovaná s alternatívnymi funkciami pre periférne funkcie v zariadení. Ako každá alternatívna funkcia interferuje s kolíkom portu, je popísané v „Alternatívne funkcie portov“ na stránke 57. Podrobný popis alternatívnych funkcií nájdete v jednotlivých častiach modulu.

Upozorňujeme, že povolenie alternatívnej funkcie niektorých pinov portu nemá vplyv na použitie ostatných pinov v porte ako všeobecného digitálneho I / O.

Porty ako všeobecné digitálne I / O

Porty sú obojsmerné I / O porty s voliteľnými internými prípojkami. Obrázok 10-2 zobrazuje funkčný popis jedného kolíka I / O-portu, ktorý sa tu všeobecne nazýva Pxn.

Obrázok 10-2. Všeobecné digitálne I/O(1)

Obr.10

Konfigurácia špendlíka

Každý pin portu sa skladá z troch bitov registra: DDxn, PORTxn a PINxn. Ako je uvedené v „Register Description“ na strana 64, k bitom DDxn sa pristupuje na I / O adrese DDRx, k bitom PORTxn na I / O adrese PORTx a k bitom PINxn na I / O adrese PINx.

Bit DDxn v registri DDRx určuje smer tohto kolíka. Pokiaľ je DDxn napísaný logický, je Pxn nakonfigurovaný ako výstupný pin. Pokiaľ je DDxn zapísaná logická nula, Pxn je nakonfigurovaný ako vstupný pin.

Ak je PORTxn napísaný logicky, keď je pin nakonfigurovaný ako vstupný pin, aktivuje sa pull-up rezistor. Pre vypnutie pull-up rezistoru musí byť PORTxn napísaná logická nula alebo pin musí byť nakonfigurovaný ako výstupný pin. Kolíky portu sú tri uvedené, keď je aktívna podmienka resetovania, aj keď nie sú spustené žiadne hodiny.

Ak je PORTxn napísaný logicky, keď je pin nakonfigurovaný ako výstupný pin, pin portu je napájaný vysoko (jeden). Ak je PORTxn zapísaná logická nula, keď je pin nakonfigurovaný ako výstupný pin, pin portu je napájaný nízko (nula).

Prepínanie špendlíka

Logický zápis do PINxn prepne hodnotu PORTxn nezávisle od hodnoty DDRxn. Upozorňujeme, že inštrukciu SBI je možné použiť na prepínanie jedného bitu v porte.

Prepínanie medzi vstupom a výstupom

Pri prepínaní medzi trojstavovým stavom ({DDxn, PORTxn} = 0b00) a vysokým výstupom ({DDxn, PORTxn} = 0b11), stredným stavom s aktivovaným ťahaním {DDxn, PORTxn} = 0b01) alebo nízkym výstupom ({DDxn, PORTxn} = 0b10). Normálne je stav aktivácie ťahu plne prijateľný, pretože prostredie s vysokou impedanciou si nevšimne rozdiel medzi silným vysokým driverom a pull-upom. Ak tomu tak nie je, bit PUD v registri MCUCR je možné nastaviť tak, aby deaktivoval všetky ťahy na všetkých portoch.

Rovnaký problém spôsobuje prepínanie medzi vstupom so zdvihom a nízkym výstupom. Používateľ musí ako medzikrok použiť buď trojstupňový stav ({DDxn, PORTxn} = 0b00), alebo výstupný vysoký stav ({DDxn, PORTxn} = 0b10).

Tabuľka 10-1 sumarizuje riadiace signály pre hodnotu kolíka.

Tabuľka 10-1. Konfigurácie pinov portu

DDxn PORTxn PUD

(v MCUCR)

I/O Vytiahnutie Komentujte
0 0 X Vstup Nie Tri stavy (Hi-Z)
0 1 0 Vstup áno Pxn bude zdrojovať prúd, ak je ext. stiahnutý nízko.
0 1 1 Vstup Nie Tri stavy (Hi-Z)
1 0 X Výstup Nie Nízky výstup (umývadlo)
1 1 X Výstup Nie Vysoký výstup (zdroj)

Čítanie hodnoty PIN

Nezávisle na nastavení bitu Data Direction DDxn je možné pin portu prečítať prostredníctvom bitu PINxn Register. Ako je uvedené v Obrázok 10-2bit PINxn Register a predchádzajúca západka tvoria synchronizátor. To je potrebné, aby sa zabránilo metastabilite, ak fyzický pin zmení hodnotu blízko okraja vnútorných hodín, ale tiež to spôsobí oneskorenie. Obrázok 10-3 ukazuje časový diagram synchronizácie pri čítaní externe aplikovanej hodnoty kolíka. Maximálne a minimálne oneskorenie šírenia sú označené tpd,max a tpd,min.

Zvážte časové obdobie začínajúce krátko po prvej klesajúcej hrane systémových hodín. Západka je zatvorená, keď sú hodiny nízke, a priehľadná, keď sú hodiny vysoké, ako to naznačuje tieňovaná oblasť signálu „SYNC LATCH“. Hodnota signálu je zablokovaná, keď hodiny systému klesnú. Je zaznamenaný do registra PINxn na nasledujúcej kladnej hrane hodín. Ako je naznačené dvoma šípkami tpd, max a tpd, min, prechod jedného signálu na kolíku sa oneskorí medzi ½ a 1½ systémovým časovým obdobím v závislosti od času tvrdenia.

Pri spätnom načítaní softvérovo priradenej hodnoty kolíka je potrebné vložiť príkaz nop, ako je uvedené v Obrázok 10-4. Inštrukcia out nastaví signál „SYNC LATCH“ na kladnú hranu hodín. V tomto prípade je oneskorenie tpd synchronizátorom jedna perióda systémových hodín.

Nasledujúci kód naprample ukazuje, ako nastaviť kolíky 0 a 1 portu B na vysokú, 2 a 3 nízku úroveň a definovať kolíky portu od 4 do 5 ako vstup s pull-up priradeným k portu 4. Výsledné hodnoty kolíkov sa znova načítajú, ale ako už bolo diskutované, je zahrnutá inštrukcia nop, aby bolo možné spätne prečítať hodnotu nedávno priradenú niektorým kolíkom.

Montážny kód Example(1)

; Definujte ťahy a vysoko nastavte výstupy

; Definujte smery pre kolíky portu

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

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

von PORTB,r16

von DDRB,r17

; Vložte nop pre synchronizáciu

nie

; Prečítajte si piny portu

v r16, PINB

Poznámka: Pre program montáže sa používajú dva dočasné registre, aby sa minimalizoval čas od ťahov, sú nastavené na kolíkoch 0, 1 a 4, kým nie sú správne nastavené smerové bity, definujú bity 2 a 3 ako nízke a predefinujú bity 0 a 1 ako silné vysoké vodiče.

C kód Example
unsigned char i;

/* Definujte ťahy a vysoko nastavte výstupy */

/* Definovanie smeru pre kolíky portu */ PORTB = (1<

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

/* Vložiť nop pre synchronizáciu*/

_NOP ();

/* Čítanie pinov portov */ i = PINB;

Režimy digitálneho vstupu a režimy spánku

Ako je uvedené v Obrázok 10-2, digitálny vstupný signál môže byť clamped k zemi na vstupe schmittovej spúšte. Signál označený na obrázku SLEEP je nastavený ovládačom spánku MCU v režime vypnutia, aby sa predišlo vysokej spotrebe energie, ak niektoré vstupné signály zostávajú pohyblivé alebo majú úroveň analógového signálu blízku VCC/2.

Funkcia SLEEP je prepísaná pre piny portu povolené ako piny externého prerušenia. Ak externá požiadavka na prerušenie nie je povolená, SLEEP je aktívny aj pre tieto piny. SLEEP je tiež potlačený rôznymi inými alternatívnymi funkciami, ako je popísané v „Alternatívne funkcie portov“ na stránke 57.

Ak sa na asynchrónnom externom kolíku prerušenia nakonfigurovanom ako "Prerušenie na vzostupnej hrane, klesajúcej hrane alebo akákoľvek logická zmena na kolíku" nachádza vysoká logická úroveň („jedna“), pričom externé prerušenie nie je povolené, zobrazí sa príslušný príznak externého prerušenia. nastaviť pri návrate z vyššie uvedeného režimu spánku, pretože klampv týchto režimoch spánku spôsobuje požadovanú logickú zmenu.

Nepripojené piny

Ak niektoré piny nepoužívate, odporúča sa zabezpečiť, aby mali tieto piny definovanú úroveň. Aj keď je väčšina digitálnych vstupov deaktivovaná v režimoch hlbokého spánku, ako je opísané vyššie, je potrebné vyhnúť sa pohyblivým vstupom, aby sa znížila spotreba prúdu vo všetkých ostatných režimoch, kde sú digitálne vstupy povolené (reset, aktívny režim a nečinný režim).

Najjednoduchším spôsobom, ako zabezpečiť definovanú úroveň nepoužitého kolíka, je umožniť vnútorné vytiahnutie. V tomto prípade bude vytiahnutie počas resetovania deaktivované. Ak je dôležitá nízka spotreba energie počas resetovania, odporúča sa použiť externé vytiahnutie alebo roztiahnutie. Pripojenie nepoužívaných kolíkov priamo k VCC alebo GND sa neodporúča, pretože to môže spôsobiť nadmerné prúdy, ak je kolík náhodne nakonfigurovaný ako výstup.

Alternatívne funkcie portu

Väčšina pinov portov má okrem bežných digitálnych I / O aj alternatívne funkcie. Obrázok 10-5 ukazuje, ako riadiace signály portu pin zo zjednodušeného Obrázok 10-2 môžu byť nahradené alternatívnymi funkciami. Potlačujúce signály nemusia byť prítomné vo všetkých kolíkoch portov, ale obrázok slúži ako všeobecný popis použiteľný pre všetky kolíky portov v rodine mikrokontrolérov AVR.

Tabuľka 10-2. Všeobecný popis nadradených signálov pre alternatívne funkcie

Názov signálu Celé meno Popis
PUOE Zapnutie potlačenia vytiahnutia Pokiaľ je tento signál nastavený, povoľovanie rozťahovania je riadené signálom PUOV. Ak je tento signál vymazaný, pull-up je povolený, keď

{DDxn, PORTxn, PUD} = 0b010.

PUOV Hodnota prepísania Pull-up Ak je nastavený PUOE, pull-up je povolený / zakázaný, keď je PUOV nastavený / vymazaný, bez ohľadu na nastavenie bitov DDxn, PORTxn a PUD Register.
DDOE Prepísanie smeru údajov je povolené Ak je tento signál nastavený, aktivácia ovládača výstupu je riadená signálom DDOV. Ak je tento signál vymazaný, výstupný ovládač je povolený bitom DDxn Register.
DDOV Hodnota prepísania smeru údajov Ak je nastavený DDOE, výstupný ovládač je povolený / zakázaný, keď je DDOV nastavený / vymazaný, bez ohľadu na nastavenie bitu DDxn Register.
PVOE Prepísanie hodnoty portu povolené Ak je tento signál nastavený a výstupný ovládač je povolený, hodnota portu je riadená signálom PVOV. Ak je PVOE vymazaný a výstupný ovládač je povolený, hodnota portu je riadená bitom registra PORTxn.
PVOV Hodnota prepísania hodnoty portu Ak je nastavený PVOE, hodnota portu je nastavená na PVOV, bez ohľadu na nastavenie bitu PORTxn Register.
PTOE Povoliť prepísanie prepínania portov Ak je nastavený PTOE, bit PORTxn Register je invertovaný.
DIEOE Digitálny vstup Povoliť Prepísať Povoliť Ak je tento bit nastavený, aktivácia digitálneho vstupu je riadená signálom DIEOV. Ak je tento signál vymazaný, aktivácia digitálneho vstupu je určená stavom MCU (normálny režim, režim spánku).
DIEOV Hodnota digitálneho vstupu umožňuje prepísať hodnotu Ak je nastavený DIEOE, digitálny vstup je povolený / zakázaný, keď je DIEOV nastavený / vymazaný, bez ohľadu na stav MCU (normálny režim, režim spánku).
DI Digitálny vstup Toto je digitálny vstup na striedanie funkcií. Na obrázku je signál pripojený k výstupu schmittovho spúšťača, ale pred synchronizátorom. Pokiaľ digitálny vstup nie je používaný ako zdroj hodín, modul s alternatívnou funkciou použije vlastný synchronizátor.
AIO Analógový vstup / výstup Toto je analógový vstup / výstup z / do alternatívnych funkcií. Signál je pripojený priamo k doske a môže byť použitý obojsmerne.

Nasledujúce podkapitoly stručne popisujú alternatívne funkcie pre každý port a súvisia s prvoradými signálmi s alternatívnou funkciou. Ďalšie podrobnosti nájdete v opise alternatívnej funkcie.

Alternatívne funkcie prístavu B.

Kolíky portu B s alternatívnou funkciou sú zobrazené v Tabuľka 10-3.

Tabuľka 10-3. Piny portu B Alternatívne funkcie

Port Pin Alternatívna funkcia
PB5

RESET: Resetovať PIN

dW: debugWIRE I / O ADC0: Vstupný kanál ADC 0

PCINT5: Prerušenie výmeny pinov, zdroj 5

PB4 XTAL2: Výstup kryštálového oscilátora CLKO: Výstup systémových hodín ADC2: Vstupný kanál ADC 2

OC1B: Časovač / Počítadlo1 Porovnanie výstupu zhody B PCINT4: Prerušenie výmeny pinov 0, Zdroj 4

PB3 XTAL1: Vstup kryštálového oscilátora CLKI: Vstup externých hodín ADC3: Vstupný kanál ADC 3

OC1B: Doplnkový časovač / počítadlo1 Porovnanie výstupu zhody B PCINT3: Prerušenie výmeny kolíka 0, zdroj 3

PB2 SCK: Vstup pre sériové hodiny ADC1: Vstupný kanál ADC 1

T0: Časovač / Počítadlo0 Zdroj hodín USCK: Hodiny USI (režim troch vodičov) SCL: Hodiny USI (Režim dvoch vodičov) INT0: Externé prerušenie 0 Vstup PCINT2: Prerušenie zmeny PIN 0, Zdroj 2

PB1 MISO: SPI vstup hlavných údajov / výstup podriadených údajov AIN1: analógový komparátor, záporný vstup OC0B: časovač / počítadlo0 porovnanie výstupu zhody B OC1A: časovač / počítadlo1 porovnanie zhody výstupu A DO: výstup údajov USI (režim troch vodičov) PCINT1: prerušenie výmeny pinov 0, zdroj 1
PB0 MOSI :: SPI Výstup kmeňových dát / Vstup slave dát AIN0: Analógový komparátor, pozitívny vstup

OC0A: Timer/Counter0 Porovnanie výstupu Match A

OC1A: Doplnkový časovač / počítadlo1 Porovnanie Zhoda výstupu A DI: Vstup údajov USI (režim troch vodičov)

SDA: Vstup údajov USI (režim dvoch vodičov) AREF: Externá analógová referencia PCINT0: Prerušenie výmeny pinov 0, Zdroj 0

Port B, bit 5 - RESET / dW / ADC0 / PCINT5

RESET: Vstup externého resetovania je aktívny nízky a je povolený neprogramovaním poistky RSTDISBL („1“). Ak sa pin použije ako pin RESET, aktivuje sa pullup a výstupný ovládač a digitálny vstup sa deaktivujú.

dW: Keď je naprogramovaná poistka debugWIRE Enable (DWEN) a zámkové bity nie sú naprogramované, aktivuje sa systém debugWIRE v cieľovom zariadení. Pin portu RESET je nakonfigurovaný ako obojsmerný I / O pin drôt-A (otvorený-odtok) s povoleným pull-up a stáva sa komunikačnou bránou medzi cieľom a emulátorom.

ADC0: Analógovo-digitálny prevodník, kanál 0.

PCINT5: Zdroj prerušenia výmeny pinov 5.

Port B, bit 4 - XTAL2 / CLKO / ADC2 / OC1B / PCINT4

XTAL2: Pin 2. Oscilátor hodín čipu. Používa sa ako hodinový pin pre všetky zdroje hodín hodín čipu okrem interného kalibrovaného RC oscilátora a externých hodín. Keď sa použije ako hodinový pin, tento pin sa nedá použiť ako I / O pin. Pri použití interného kalibrovateľného RC oscilátora alebo externých hodín ako zdroja hodinových čipov slúži PB4 ako obyčajný I / O pin.

CLKO: Rozdelené systémové hodiny môžu byť výstupné na kolíku PB4. Ak sú naprogramované poistky CKOUT, budú na výstupe rozdelené systémové hodiny, bez ohľadu na nastavenia PORTB4 a DDB4. Bude tiež vydaný počas resetu.

ADC2: Analógovo-digitálny prevodník, kanál 2.

OC1B: Výstup porovnania zhody výstupu: Pin PB4 môže slúžiť ako externý výstup pre porovnanie zhody Timer / Counter1 Match B, keď je nakonfigurovaný ako výstup (sada DDB4). Pin OC1B je tiež výstupným pinom pre funkciu časovača v režime PWM.

PCINT4: Zdroj prerušenia výmeny pinov 4.

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

XTAL1: Pin 1. Oscilátor čipových hodín. Používa sa pre všetky zdroje hodinových hodín čipu okrem interného kalibrovaného RC oscilátora. Keď sa použije ako hodinový pin, tento pin sa nedá použiť ako I / O pin.

CLKI: Vstup hodín z externého zdroja hodín, pozri „Externé hodiny“ na stránke 26.

ADC3: Analógovo-digitálny prevodník, kanál 3.

OC1B: Porovnanie porovnania výstupu s porovnaním výstupu: Pin PB3 môže slúžiť ako externý výstup pre porovnanie zápasu B s časovačom / počítadlom 1, ak je nakonfigurovaný ako výstup (sada DDB3). Pin OC1B je tiež invertovaný výstupný pin pre funkciu časovača režimu PWM.

PCINT3: Zdroj prerušenia výmeny pinov 3.

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

SCK: výstup Master Clock, vstupný pin Slave Clock pre kanál SPI. Keď je SPI povolený ako Slave, tento pin je nakonfigurovaný ako vstup bez ohľadu na nastavenie DDB2. Keď je SPI povolený ako hlavný, smer údajov tohto kolíka je riadený pomocou DDPB2. Keď je pin vynútený SPI ako vstup, pull-up je možné stále ovládať bitom PORTB2.

ADC1: Analógovo-digitálny prevodník, kanál 1.

T0: Zdroj časovača / počítadla0.

USCK: Trojvodičový režim Hodiny univerzálneho sériového rozhrania.

SCL: Dvojvodičový režim Sériové hodiny pre dvojvodičový režim USI.

INT0: Externý zdroj prerušenia 0.

PCINT2: Zdroj prerušenia výmeny pinov 2.

Port B, bit 1 - MISO / AIN1 / OC0B / OC1A / DO / PCINT1

MISO: vstup hlavných údajov, výstupný kolík vedľajších údajov pre kanál SPI. Keď je SPI povolený ako Master, tento pin je nakonfigurovaný ako vstup bez ohľadu na nastavenie DDB1. Keď je SPI povolený ako Slave, smer dát tohto kolíka je riadený pomocou DDB1. Keď je pin vynútený SPI ako vstup, pull-up je možné stále ovládať bitom PORTB1.

AIN1: Negatívny vstup analógového komparátora. Nakonfigurujte pin portu ako vstup s vypnutým interným pull-upom, aby nedošlo k narušeniu funkcie digitálneho portu s funkciou analógového komparátora.

OC0B: Output Compare Match output. Pin PB1 môže slúžiť ako externý výstup pre porovnanie zápasu Timer / Counter0 B. Pin PB1 musí byť nakonfigurovaný ako výstup (sada DDB1 (jedna)), aby slúžil tejto funkcii. Pin OC0B je tiež výstupným pinom pre funkciu časovača v režime PWM.

OC1A: Výstup porovnania zhody výstupu: Pin PB1 môže slúžiť ako externý výstup pre porovnanie zhody Timer / Counter1 Match B, keď je nakonfigurovaný ako výstup (sada DDB1). Pin OC1A je tiež výstupným pinom pre funkciu časovača v režime PWM.

DO: Trojvodičový režim Dátový výstup univerzálneho sériového rozhrania. Trojvodičový režim Dátový výstup prepíše hodnotu PORTB1 a do portu sa prenesie, keď je nastavený bit smeru údajov DDB1 (jeden). PORTB1 stále umožňuje pull-up, ak je zadaný smer a je nastavený PORTB1 (jeden).

PCINT1: Zdroj prerušenia výmeny pinov 1.

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

MOSI: Výstup hlavných údajov SPI, vstup vedľajších údajov pre kanál SPI. Keď je SPI povolený ako Slave, tento pin je nakonfigurovaný ako vstup bez ohľadu na nastavenie DDB0. Keď je SPI povolený ako Master, smer dát tohto kolíka je riadený pomocou DDB0. Keď je pin vynútený SPI ako vstup, pull-up je možné stále ovládať bitom PORTB0.

AIN0: Pozitívny vstup analógového komparátora. Nakonfigurujte pin portu ako vstup s vypnutým interným pull-upom, aby nedošlo k narušeniu funkcie digitálneho portu s funkciou analógového komparátora.

OC0A: Output Compare Match output. Pin PB0 môže slúžiť ako externý výstup pre porovnanie zápasu Timer / Counter0 Match A, keď je nakonfigurovaný ako výstup (sada DDB0 (jedna)). Pin OC0A je tiež výstupným pinom pre funkciu časovača v režime PWM.

OC1A: Porovnanie výstupu s porovnaním výstupu: Pin PB0 môže slúžiť ako externý výstup pre porovnanie zápasu B s časovačom / počítadlom 1, ak je nakonfigurovaný ako výstup (sada DDB0). Pin OC1A je tiež invertovaný výstupný pin pre funkciu časovača režimu PWM.

SDA: Údaje sériového rozhrania v dvojvodičovom režime.

AREF: Externá analógová referencia pre ADC. Pullup a výstupný ovládač sú na PB0 deaktivované, ak je pin použitý ako externá referencia alebo interný voltage Referencia s externým kondenzátorom na pine AREF.

DI: Vstup dát v USI trojvodičovom režime. USI Trojvodičový režim neprepíše bežné funkcie portu, takže pin musí byť nakonfigurovaný ako vstup pre funkciu DI.

PCINT0: Zdroj prerušenia výmeny pinov 0.

Tabuľka 10-4 Tabuľka 10-5 súvisia alternatívne funkcie portu B s prvoradými signálmi zobrazenými v Obrázok 10-5 zapnutý strana 58.

Tabuľka 10-4. Prepisujúce signály pre alternatívne funkcie v PB[5:3]

Názov signálu PB5 / RESET / ADC0 / PCINT5 PB4/ADC2/XTAL2/ OC1B/PCINT4 PB3/ADC3/XTAL1/ OC1B/PCINT3
PUOE

RSTDISBL(1) • DWEN(1)

0 0
PUOV 1 0 0
DDOE RSTDISBL(1) • DWEN(1) 0 0
DDOV prenos debugWire 0 0
PVOE 0 OC1B povoliť

OC1B povoliť

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

Poznámka: keď je poistka „0“ (naprogramovaná).

Tabuľka 10-5. Prepisujúce signály pre alternatívne funkcie v PB[2:0]

Názov signálu PB2/SCK/ADC1/T0/ USCK/SCL/INT0/PCINT2 PB1/MISO/DO/AIN1/ OC1A/OC0B/PCINT1 PB0/MOSI/DI/SDA/AIN0/AR EF/OC1A/OC0A/

PCINT0

PUOE USI_TWO_WIRE 0 USI_TWO_WIRE
PUOV 0 0 0
DDOE USI_TWO_WIRE 0 USI_TWO_WIRE
DDOV (USI_SCL_HOLD + PORTB2) • DDB2 0  

(SDA + PORTB0) • DDB0

PVOE USI_TWO_WIRE • DDB2 Povoliť OC0B + Povoliť OC1A + USI_THREE_WIRE

OC0A povoliť + OC1A povoliť + (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 /

Vstup PCINT2

Vstup PCINT1 DI / SDA / PCINT0 vstup
AIO Vstup ADC1 Negatívny vstup analógového komparátora Pozitívny vstup analógového komparátora

Popis registrácie

MCUCR - riadiaci register MCU

Bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 TELO ISC01 ISC00 MCUCR
Čítanie/Písanie R R/W R/W R/W R/W R R/W R/W
Počiatočná hodnota 0 0 0 0 0 0 0 0

Bit 6 - PUD: Pull-up Disable

Keď je tento bit zapísaný do jedného, ​​príkazy v I / O portoch sú zakázané, aj keď sú registre DDxn a PORTxn nakonfigurované tak, aby povoľovali príklady ({DDxn, PORTxn} = 0b01). Pozri „Konfigurácia kolíka“ na stránke 54 pre viac informácií o tejto funkcii.

PORTB - register údajov portu B.

Bit 7 6 5 4 3 2 1 0
0x18 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
Čítanie/Písanie R R R/W R/W R/W R/W R/W R/W
Počiatočná hodnota 0 0 0 0 0 0 0 0

Register smeru údajov DDRB - Port B.

Bit 7 6 5 4 3 2 1 0
0x17 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Čítanie/Písanie R R R/W R/W R/W R/W R/W R/W
Počiatočná hodnota 0 0 0 0 0 0 0 0

PINB - adresa vstupných pinov portu B.

Bit 7 6 5 4 3 2 1 0
0x16 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Čítanie/Písanie R R R/W R/W R/W R/W R/W R/W
Počiatočná hodnota 0 0 N/A N/A N/A N/A N/A N/A

8-bitový časovač / počítadlo0 s PWM

Vlastnosti

Dve nezávislé jednotky na porovnanie výstupu

Registre na porovnanie výstupu s dvojitým medzipamäťom

Vymazať časovač pri porovnaní zhody (automatické načítanie)

Bezproblémový, fázovo správny modulátor šírky impulzu (PWM)

Variabilné obdobie PWM

Generátor frekvencie

Tri nezávislé zdroje prerušenia (TOV0, OCF0A a OCF0B)

Koniecview

Timer / Counter0 je univerzálny 8-bitový modul Timer / Counter s dvoma nezávislými jednotkami na porovnávanie výstupu a s podporou PWM. Umožňuje presné načasovanie vykonania programu (správa udalostí) a generovanie vĺn.

Zjednodušená bloková schéma 8-bitového časovača / počítadla je zobrazená v Obrázok 11-1. Skutočné umiestnenie I / O pinov nájdete na „Pinout ATtiny25 / 45/85“ na strane 2. CPU prístupné I / O registre, vrátane I / O bitov a I / O pinov, sú zobrazené tučne. Špecifický I / O register a bitové umiestnenia sú uvedené v zozname “Popis registrácie” na strane 77.

Registre časovača/počítadla (TCNT0) a výstupného porovnávacieho registra (OCR0A a OCR0B) sú 8-bitové registre. Signály žiadosti o prerušenie (na obrázku skrátene Int.Req.) sú všetky viditeľné v registri príznakov prerušenia časovača (TIFR). Všetky prerušenia sú individuálne maskované pomocou registra masky prerušenia časovača (TIMSK). TIFR a TIMSK nie sú na obrázku znázornené.

Časovač/počítadlo môže byť taktovaný interne, cez preddeličku alebo externým zdrojom hodín na kolíku T0. Logický blok Clock Select riadi, ktorý zdroj a hranu hodín používa časovač/počítadlo na zvýšenie (alebo zníženie) svojej hodnoty. Časovač/počítadlo je neaktívne, keď nie je zvolený žiadny zdroj hodín. Výstup z logiky Clock Select sa označuje ako hodiny časovača (clkT0).

Registre porovnania výstupu s dvojitým medzipamäťom (OCR0A a OCR0B) sa vždy porovnávajú s hodnotou časovača / počítadla. Výsledok porovnania môže byť použitý generátorom kriviek na generovanie PWM alebo výstupu premennej frekvencie na kolíkoch výstupu porovnania (OC0A a OC0B). Pozrite si „Jednotka na porovnanie výstupu“ na stránke 69. pre podrobnosti. Udalosť Porovnať zhodu tiež nastaví príznak porovnania (OCF0A alebo OCF0B), ktorý je možné použiť na vygenerovanie žiadosti o prerušenie porovnávania výstupu.

Definície

Mnoho registrov a bitových odkazov v tejto časti je napísaných všeobecne. Malé písmeno „n“ nahrádza číslo časovača / počítadla, v tomto prípade 0. Malé písmeno „x“ nahrádza jednotku na porovnanie výstupu, v tomto prípade porovnávacia jednotka A alebo porovnávacia jednotka B. Avšak pri použití registra alebo bitu je definované v programe musí byť použitá presná forma, tj. TCNT0 pre prístup k hodnote počítadla Timer / Counter0 a podobne.

Definície v Tabuľka 11-1 sa tiež rozsiahlo používajú v celom dokumente.

Tabuľka 11-1. Definície

Neustále Popis
DNO Počítadlo dosiahne NADOLO, keď sa stane 0x00
MAX Počítadlo dosiahne maximum, keď sa stane 0xFF (desatinné miesto 255)
TOP Počítadlo dosiahne vrchol, keď sa rovná najvyššej hodnote v postupnosti počítania. TOP hodnote je možné priradiť pevnú hodnotu 0xFF (MAX) alebo hodnotu uloženú v registri OCR0A. Priradenie závisí od prevádzkového režimu

Časovač / Counter Prescaler a zdroje hodín

Časovač / počítadlo je možné taktovať pomocou interného alebo externého zdroja hodín. Zdroj hodín je vybraný logikou Clock Select, ktorá je riadená bitmi Clock Select (c) umiestnenými v riadiacom registri Timer / Counter0 (TCCR0B).

Vnútorný zdroj hodín s funkciou Prescaler

Časovač/Počítadlo0 môže byť taktovaný priamo systémovými hodinami (nastavením CS0[2:0] = 1). To poskytuje najrýchlejšiu prevádzku s maximálnou frekvenciou časovača/počítadla, ktorá sa rovná frekvencii systémových hodín (fCLK_I/O). Alternatívne možno ako zdroj hodín použiť jeden zo štyroch kohútikov z preddeličky. Predškálované hodiny majú frekvenciu buď

Prednastavený reset

Predbežný merač beží voľne, tj. Funguje nezávisle od logiky výberu hodín časovača/počítadla0. Pretože predvoľba nie je ovplyvnená výberom hodín časovača/počítadla, stav predzosilňovača bude mať dôsledky pre situácie, kde sa používajú prednastavené hodiny. Jeden exampLektúra artefaktu predkalkulovania je vtedy, keď je časovač/počítadlo povolený a taktovaný prescalerom (6> CS0 [2: 0]> 1). Počet cyklov systémových hodín od aktivácie časovača do prvého počtu odpočtov môže byť od 1 do N+1 cyklov systémových hodín, kde N sa rovná deliteľu predzosilňovača (8, 64, 256 alebo 1024).

Na synchronizáciu časovača / počítadla s vykonaním programu je možné použiť Reset predkaplera.

Externý zdroj hodín

Externý zdroj hodín aplikovaný na kolík T0 možno použiť ako hodiny časovača/počítadla (clkT0). Pin T0 je sampviedla raz za každý cyklus systémových hodín logikou synchronizácie pinov. Synchronizované (sampLED)

cez detektor hrany. Obrázok 11-2 znázorňuje funkčný ekvivalentný blokový diagram synchronizácie T0 a logiky detektora hrán. Registre sú taktované na kladnej hrane vnútorných systémových hodín (clkI/O). Západka je priehľadná počas vysokej periódy vnútorných systémových hodín.

Detektor hrán generuje jeden impulz clkT0 pre každú pozitívnu (CS0[2:0] = 7) alebo negatívnu (CS0[2:0] = 6) hranu, ktorú zaznamená.

Registre OCR0x majú dvojitú medzipamäť, keď používajú niektorý z režimov pulznej šírkovej modulácie (PWM). Pre normálne prevádzkové režimy a režim Clear Timer on Compare (CTC) je dvojité ukladanie do vyrovnávacej pamäte zakázané. Dvojité ukladanie do vyrovnávacej pamäte synchronizuje aktualizáciu porovnávacích registrov OCR0x buď na hornú, alebo dolnú časť počítacej sekvencie. Synchronizácia zabráni výskytu nepárnych dĺžok nesymetrických PWM impulzov, čím sa výstup stane bez závad.

Prístup do registra OCR0x sa môže zdať zložitý, ale nie je to tak. Keď je povolené dvojité ukladanie do vyrovnávacej pamäte, CPU má prístup k OCR0x vyrovnávaciemu registru a ak je dvojité ukladanie do vyrovnávacej pamäte zakázané, CPU bude pristupovať k OCR0x priamo.

Porovnanie silového výkonu

V režimoch generovania kriviek iných ako PWM možno vynútiť zhodný výstup komparátora zápisom jedného do bitu Force Output Compare (FOC0x). Vynútenie funkcie Porovnanie zhody nenastaví príznak OCF0x ani opätovné načítanie / vymazanie časovača, ale pin OC0x sa aktualizuje, akoby došlo ku skutočnej komparácii zhody (nastavenie bitov COM0x [1: 0] definuje, či je pin OC0x nastavený, vymazaný alebo prepínané).

Porovnajte blokovanie zhody pomocou zápisu TCNT0

Všetky operácie zápisu CPU do registra TCNT0 zablokujú akúkoľvek porovnávaciu zhodu, ktorá sa vyskytne v nasledujúcom časovom cykle časovača, aj keď je časovač zastavený. Táto funkcia umožňuje inicializáciu OCR0x na rovnakú hodnotu ako TCNT0 bez spustenia prerušenia, keď sú zapnuté hodiny časovača / počítadla.

Pomocou jednotky na porovnanie výstupu

Pretože zápis TCNT0 v akomkoľvek prevádzkovom režime zablokuje všetky porovnávacie zhody pre jeden časový cyklus časovača, pri zmene TCNT0 pri použití jednotky na porovnanie výstupu existujú riziká, nezávisle od toho, či je časovač / počítadlo v prevádzke alebo nie. Ak sa hodnota zapísaná do TCNT0 rovná hodnote OCR0x, bude porovnávacia zhoda chýbať, čo bude mať za následok nesprávne generovanie krivky. Podobne nepíšte hodnotu TCNT0 rovnajúcu sa BOTTOM, keď počítadlo počíta dole.

Nastavenie OC0x by sa malo vykonať pred nastavením dátového smerového registra pre výstup kolíka portu. Najjednoduchší spôsob nastavenia hodnoty OC0x je použitie strobovacích bitov Force Output Compare (FOC0x) v normálnom režime. Registre OC0x si zachovávajú svoje hodnoty aj pri zmene medzi režimami generovania kriviek.

Uvedomte si, že bity COM0x [1: 0] nie sú dvojito ukladané do vyrovnávacej pamäte spolu s porovnávacou hodnotou. Zmena bitov COM0x [1: 0] sa prejaví okamžite.

Porovnajte výstupnú jednotku zhody

Bity režimu porovnania výstupu (COM0x [1: 0]) majú dve funkcie. Generátor kriviek používa bity COM0x [1: 0] na definovanie stavu porovnania výstupu (OC0x) pri nasledujúcej porovnávacej zhode. Bity COM0x [1: 0] tiež riadia výstupný zdroj kolíkov OC0x. Obrázok 11-6 ukazuje zjednodušenú schému logiky ovplyvnenej nastavením bitu COM0x [1: 0]. I / O registre, I / O bity a I / O piny na obrázku sú zobrazené tučne. Zobrazené sú iba časti všeobecných registrov riadenia portov I / O (DDR a PORT), ktoré sú ovplyvnené bitmi COM0x [1: 0]. Keď sa odkazuje na stav OC0x, ide o referenciu pre interný register OC0x, nie pre pin OC0x. Ak dôjde k resetu systému, register OC0x sa vynuluje na „0“.

Keď je OC0A / OC0B pripojený k I / O kolíku, závisí funkcia bitov COM0A [1: 0] / COM0B [1: 0] od nastavenia bitu WGM0 [2: 0]. Tabuľka 11-2 ukazuje bitovú funkčnosť COM0x [1: 0], keď sú bity WGM0 [2: 0] nastavené na normálny alebo CTC režim (non-PWM).

Tabuľka 11-2. Porovnať režim výstupu s režimom bez PWM

COM0A1 COM0B1 COM0A0 COM0B0 Popis
0 0 Normálna prevádzka portu, OC0A / OC0B odpojený.
0 1 Prepnúť OC0A / OC0B pri porovnávaní zhody
1 0 Vymazať OC0A / OC0B pri porovnaní zhody
1 1 Nastavte OC0A / OC0B na funkciu Porovnať zhodu

Tabuľka 11-3 ukazuje bitovú funkčnosť COM0x [1: 0], keď sú bity WGM0 [2: 0] nastavené na rýchly režim PWM.

Tabuľka 11-3. Porovnajte režim výstupu a režim rýchleho PWM(1)

COM0A1 COM0B1 COM0A0 COM0B0 Popis
0 0 Normálna prevádzka portu, OC0A / OC0B odpojený.
0 1 Rezervované
1 0 Vymazať OC0A / OC0B pri porovnaní zhody, nastaviť OC0A / OC0B na DOLE (neinvertujúci režim)
1 1 Nastaviť OC0A / OC0B na funkciu Porovnanie zhody, vymazať OC0A / OC0B v spodnej časti (režim obrátenia)

Poznámka: Špeciálny prípad nastane, keď sa OCR0A alebo OCR0B rovná TOP a je nastavené COM0A1/COM0B1. V tomto prípade sa porovnávacia zhoda ignoruje, ale nastavenie alebo vymazanie sa vykoná na BOTTOM. Pozri „Rýchly režim PWM“ na stránke 73 pre viac podrobností.

Tabuľka 11-4 ukazuje bitovú funkčnosť COM0x [1: 0], keď sú bity WGM0 [2: 0] nastavené na fázovo správny režim PWM.

Tabuľka 11-4. Porovnať výstupný režim, fázovo správny režim PWM(1)

COM0A1 COM0B1 COM0A0 COM0B0 Popis
0 0 Normálna prevádzka portu, OC0A / OC0B odpojený.
0 1 Rezervované
1 0 Vyčistite OC0A / OC0B pri porovnávaní zhody pri zvyšovaní počtu. Pri odpočítavaní nastavte OC0A / OC0B na funkciu Porovnať zhodu.
1 1 Pri počítaní hore nastavte OC0A / OC0B na funkciu Porovnať zhodu. Pri odpočítavaní vynulujte OC0A / OC0B pri porovnaní zhody.

Poznámka: 1. Špeciálny prípad nastane, keď sa OCR0A alebo OCR0B rovná TOP a je nastavené COM0A1/COM0B1. V tomto prípade sa porovnávacia zhoda ignoruje, ale nastavenie alebo vymazanie sa vykoná na TOP. Pozri „Fázovo správny režim PWM“ na strane 74 pre viac podrobností.

Bity 3: 2 - Res: Rezervované bity

Tieto bity sú rezervované bity v ATtiny25 / 45/85 a budú sa vždy čítať ako nula.

Bity 1: 0 - WGM0 [1: 0]: Režim generovania krivky

V kombinácii s bitom WGM02 nachádzajúcim sa v registri TCCR0B tieto bity riadia postupnosť počítania počítadla, zdroj maximálnej hodnoty (TOP) počítadla a aký typ generovania krivky sa má použiť, pozri Tabuľka 11-5. Prevádzkové režimy podporované jednotkou časovača / počítadla sú: normálny režim (počítadlo), režim Clear Timer v režime porovnania zhody (CTC) a dva typy režimov pulznej šírkovej modulácie (PWM) (pozri „Prevádzkové režimy“ na strane 71).

Tabuľka 11-5. Popis bitu režimu generovania tvaru vlny

Režim WGM 02 WGM 01 WGM 00 Prevádzkový režim časovača / počítadla TOP Aktualizácia OCRx o Nastavená vlajka TOV
0 0 0 0 Normálne 0xFF Okamžité MAX(1)
1 0 0 1 PWM, správna fáza 0xFF TOP DNO(2)
2 0 1 0 CTC OCRA Okamžité MAX(1)
3 0 1 1 Rýchle PWM 0xFF DNO(2) MAX(1)
4 1 0 0 Rezervované
5 1 0 1 PWM, správna fáza OCRA TOP DNO(2)
6 1 1 0 Rezervované
7 1 1 1 Rýchle PWM OCRA DNO(2) TOP

Bit 7 - FOC0A: Porovnanie výstupu sily A

Bit FOC0A je aktívny iba vtedy, keď bity WGM určujú režim, ktorý nie je PWM.

Aby sa však zaistila kompatibilita s budúcimi zariadeniami, musí sa tento bit nastaviť na nulu, keď sa pri práci v režime PWM zapisuje TCCR0B. Pri zápise logického do bitu FOC0A sa vynúti okamžité porovnanie zhody na jednotku generovania kriviek. Výstup OC0A sa mení podľa nastavenia jeho bitov COM0A [1: 0]. Všimnite si, že bit FOC0A je implementovaný ako stroboskop. Preto je to hodnota prítomná v bitoch COM0A [1: 0], ktorá určuje účinok vynúteného porovnania.

Stroboskop FOC0A nebude generovať žiadne prerušenie, ani nevymaže časovač v režime CTC pomocou OCR0A ako TOP. Bit FOC0A sa vždy číta ako nula.

Bit 6 - FOC0B: Porovnanie výstupu sily B

Bit FOC0B je aktívny iba vtedy, keď bity WGM určujú režim, ktorý nie je PWM.

Aby sa však zaistila kompatibilita s budúcimi zariadeniami, musí sa tento bit nastaviť na nulu, keď sa pri práci v režime PWM zapisuje TCCR0B. Pri zápise logického do bitu FOC0B sa na jednotku generovania vln vynúti okamžité porovnanie zhody. Výstup OC0B sa mení podľa nastavenia jeho bitov COM0B [1: 0]. Všimnite si, že bit FOC0B je implementovaný ako stroboskop. Preto je to hodnota prítomná v bitoch COM0B [1: 0], ktorá určuje účinok vynúteného porovnania.

Stroboskop FOC0B nebude generovať žiadne prerušenie, ani nevymaže časovač v režime CTC pomocou OCR0B ako TOP.

Bit FOC0B sa vždy číta ako nula.

Bity 5: 4 - Res: Rezervované bity

Tieto bity sú rezervované bity v ATtiny25 / 45/85 a budú sa vždy čítať ako nula.

Bit 3 - WGM02: Režim generovania kriviek

Popis nájdete v „TCCR0A - Register riadenia časovača / počítadla A“ na strane 77.

Bity 2: 0 - CS0 [2: 0]: výber hodín

Tri bity Clock Select vyberajú zdroj hodín, ktorý má použiť časovač / počítadlo.

Tabuľka 11-6. Hodiny Vyberte popis bitu

CS02 CS01 CS00 Popis
0 0 0 Žiadny zdroj hodín (časovač / počítadlo zastavené)
0 0 1 clkI/O/(žiadne predškálovanie)
0 1 0 clkI/O/8 (z preddeličky)
0 1 1 clkI/O/64 (z preddeličky)
1 0 0 clkI/O/256 (z preddeličky)
1 0 1 clkI/O/1024 (z preddeličky)
1 1 0 Externý zdroj hodín na kolíku T0. Hodiny na klesajúcej hrane.
1 1 1 Externý zdroj hodín na kolíku T0. Hodiny na stúpajúcej hrane.

Ak sa pre Timer / Counter0 použijú režimy externého kolíka, prechody na kolíku T0 budú taktovať počítadlo, aj keď je kolík nakonfigurovaný ako výstup. Táto vlastnosť umožňuje softvérovú kontrolu počítania.

Počítadlo a porovnanie jednotiek

Všeobecná prevádzka Timer / Counter1 je popísaná v asynchrónnom režime a prevádzka v synchronizovanom režime je uvedená, iba ak existujú rozdiely medzi týmito dvoma režimami. Obrázok 12-2 zobrazuje blokový diagram synchronizačného registra časovača / počítadla 1 a oneskorenia synchronizácie medzi registrami. Upozorňujeme, že na obrázku nie sú zobrazené všetky podrobnosti o vrátení hodín. Hodnoty registra Timer / Counter1 prechádzajú internými synchronizačnými registrami, ktoré spôsobujú oneskorenie synchronizácie vstupu, pred ovplyvnením činnosti počítadla. Registre TCCR1, GTCCR, OCR1A, OCR1B a OCR1C je možné čítať späť hneď po zápise do registra. Hodnoty spätného čítania sú oneskorené pre register a indikátory Timer / Counter1 (TCNT1) (OCF1A, OCF1B a TOV1) kvôli synchronizácii vstupu a výstupu.

Časovač / Počítadlo1 sa vyznačuje vysokým rozlíšením a vysokou presnosťou pri nižších možnostiach prednastavenia. Môže tiež podporovať dva presné, vysokorýchlostné 8-bitové modulátory šírky impulzu, ktoré používajú hodiny až do 64 MHz (alebo 32 MHz v režime nízkej rýchlosti). V tomto režime Timer / Counter1 a výstupné porovnávacie registre slúžia ako duálne samostatné PWM s neprekrývajúcimi sa neinvertovanými a invertovanými výstupmi. Odkazujú na strana 86 podrobný popis tejto funkcie. Podobne, vďaka možnosti veľkého predimenzovania je táto jednotka užitočná pre funkcie s nižšou rýchlosťou alebo pre funkcie s presným načasovaním s občasnými činnosťami.

Obrázok 12-2. Bloková schéma synchronizačného registra časovača/počítadla 1.

Timer / Counter1 a predradník umožňujú spustenie CPU z ľubovoľného zdroja hodín, zatiaľ čo predradník pracuje na rýchlych hodinách PCK na frekvencii 64 MHz (alebo 32 MHz v režime nízkej rýchlosti) v asynchrónnom režime.

Pamätajte, že systémová frekvencia hodín musí byť nižšia ako jedna tretina frekvencie PCK. Ak sú systémové hodiny vysoké, synchronizačný mechanizmus asynchrónneho časovača / počítadla1 vyžaduje najmenej dve hrany PCK. Ak je frekvencia systémových hodín príliš vysoká, existuje riziko straty údajov alebo riadiacich hodnôt.

Nasledujúce Obrázok 12-3 zobrazuje blokový diagram časovača / počítadla1.

Tabuľka 12-1. Režim porovnávania Vyberte v režime PWM

COM1x1 COM1x0 Vplyv na kolíky porovnania výstupu
0 0 OC1x nie je pripojený. OC1x nie je pripojený.
0 1 OC1x vymazaný pri porovnávaní zápasu. Nastaviť, keďTCNT1 = $ 00. OC1x nastavený na porovnanie zhody. Vymazané, keď TCNT1 = 00 USD.
1 0 OC1x vymazaný pri porovnávaní zápasu. Nastavené, keď TCNT1 = $ 00. OC1x nie je pripojený.
1 1 OC1x Nastavený na porovnanie zhody. Vymazané, keď TCNT1 = 00 USD. OC1x nie je pripojený.

Charakteristiky ADC

Tabuľka 21-8. Charakteristika ADC, jednostranné kanály. TA = -40 °C až +85 °C

Symbol Parameter Podmienka Min Typ Max Jednotky
Rozlíšenie 10 Bity
Absolútna presnosť (vrátane chýb INL, DNL a kvantovania, zisku a posunu) VREF = 4 V, VCC = 4 V,

Hodiny ADC = 200 kHz

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

Takt ADC = 1 MHz

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

Hodiny ADC = 200 kHz

Režim redukcie šumu

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

Takt ADC = 1 MHz

Režim redukcie šumu

2.5 LSB
Integrovaná nelinearita (INL) (presnosť po kalibrácii offsetu a zosilnenia) VREF = 4 V, VCC = 4 V,

Hodiny ADC = 200 kHz

1 LSB
Diferenciálna nelinearita (DNL) VREF = 4 V, VCC = 4 V,

Hodiny ADC = 200 kHz

0.5 LSB
Chyba zisku VREF = 4 V, VCC = 4 V,

Hodiny ADC = 200 kHz

2.5 LSB
Chyba ofsetu VREF = 4 V, VCC = 4 V,

Hodiny ADC = 200 kHz

1.5 LSB
Čas konverzie Bezplatná prevádzka 14 280 us
Frekvencia hodín 50 1000 kHz
VIN Vstupné objtage GND VREF V
Vstupná šírka pásma 38.4 kHz
AREF Externý referenčný zväzoktage 2.0 VCC V
VINT Interný zvtage Referencia 1.0 1.1 1.2 V
Interná referencia 2.56V (1) VCC > 3.0 V 2.3 2.56 2.8 V
RREF 32
RAIN Odpor analógového vstupu 100
Výstup ADC 0 1023 LSB

Poznámka: 1. Hodnoty sú len orientačné.

Tabuľka 21-9. Charakteristika ADC, diferenciálne kanály (Unipolárny režim). TA = -40 °C až +85 °C

Symbol Parameter Podmienka Min Typ Max Jednotky
Rozlíšenie Zisk = 1x 10 Bity
Zisk = 20x 10 Bity
Absolútna presnosť (vrátane INL, DNL a

Chyby kvantovania, zosilnenia a posunutia)

Zisk = 1x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

10.0 LSB
Zisk = 20x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

20.0 LSB
Integrovaná nelineárnosť (INL) (presnosť po vyrovnaní a kalibrácii zosilnenia) Zisk = 1x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

4.0 LSB
Zisk = 20x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

10.0 LSB
Chyba zisku Zisk = 1x 10.0 LSB
Zisk = 20x 15.0 LSB
Chyba ofsetu Zisk = 1x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

3.0 LSB
Zisk = 20x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

4.0 LSB
Čas konverzie Bezplatná prevádzka 70 280 us
Frekvencia hodín 50 200 kHz
VIN Vstupné objtage GND VCC V
VDIFF Vstupný diferenciálny objemtage VREF/Zisk V
Vstupná šírka pásma 4 kHz
AREF Externý referenčný zväzoktage 2.0 VCC – 1.0 V
VINT Interný zvtage Referencia 1.0 1.1 1.2 V
Interná referencia 2.56V (1) VCC > 3.0 V 2.3 2.56 2.8 V
RREF Referenčný vstupný odpor 32
RAIN Odpor analógového vstupu 100
Výstup prevodu ADC 0 1023 LSB

Poznámka: Hodnoty sú len orientačné.

Tabuľka 21-10. Charakteristika ADC, diferenciálne kanály (bipolárny režim). TA = -40 °C až +85 °C

Symbol Parameter Podmienka Min Typ Max Jednotky
Rozlíšenie Zisk = 1x 10 Bity
Zisk = 20x 10 Bity
Absolútna presnosť (vrátane INL, DNL a

Chyby kvantovania, zosilnenia a posunutia)

Zisk = 1x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

8.0 LSB
Zisk = 20x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

8.0 LSB
Integrovaná nelineárnosť (INL) (presnosť po vyrovnaní a kalibrácii zosilnenia) Zisk = 1x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

4.0 LSB
Zisk = 20x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

5.0 LSB
Chyba zisku Zisk = 1x 4.0 LSB
Zisk = 20x 5.0 LSB
Chyba ofsetu Zisk = 1x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

3.0 LSB
Zisk = 20x

VREF = 4V, VCC = 5V

Hodiny ADC = 50 - 200 kHz

4.0 LSB
Čas konverzie Bezplatná prevádzka 70 280 us
Frekvencia hodín 50 200 kHz
VIN Vstupné objtage GND VCC V
VDIFF Vstupný diferenciálny objemtage VREF/Zisk V
Vstupná šírka pásma 4 kHz
AREF Externý referenčný zväzoktage 2.0 VCC – 1.0 V
VINT Interný zvtage Referencia 1.0 1.1 1.2 V
Interná referencia 2.56V (1) VCC > 3.0 V 2.3 2.56 2.8 V
RREF Referenčný vstupný odpor 32
RAIN Odpor analógového vstupu 100
Výstup prevodu ADC -512 511 LSB

Súhrn inštrukčnej sady

Mnemotechnické pomôcky operandmi Popis Prevádzka Vlajky #Hodiny
ARITMETICKÉ A LOGICKÉ POKYNY
PRIDAŤ Rd, Rr Pridajte dva registre Rd ← Rd + Rr Z, C, N, V, H 1
ADC Rd, Rr Pridajte a vykonajte dva registre Rd ← Rd + Rr + C Z, C, N, V, H 1
ADIW Rdl, K Pridajte okamžité slovo Rdh:Rdl ← Rdh:Rdl + K Z, C, N, V, S 2
SUB Rd, Rr Odčítajte dva registre Rd ← Rd – Rr Z, C, N, V, H 1
IŠLA SOM HORE Rd, K. Odpočítajte konštantu od registra Rd ← Rd – K Z, C, N, V, H 1
SBC Rd, Rr Odčítajte a vykonajte dva registre Rd ← Rd – Rr – C Z, C, N, V, H 1
SBCI Rd, K. Odčítajte s Carry Constant od reg. Rd ← Rd – K – C Z, C, N, V, H 1
SBIW Rdl, K Odčítať okamžité od slova Rdh:Rdl ← Rdh:Rdl – K Z, C, N, V, S 2
A Rd, Rr Logické A registre Rd ← Rd ∙ Rr Z, N, V 1
ANDI Rd, K. Logický AND register a konštantný Rd ← Rd ∙ K Z, N, V 1
OR Rd, Rr Logické ALEBO registre Rd ← Rd v Rr Z, N, V 1
ORI Rd, K. Logický OR register a konštantný Rd ← Rd v K Z, N, V 1
EOR Rd, Rr Výhradné registre ALEBO Rd ← Rd ⊕ Rr Z, N, V 1
COM Rd Jeden je doplnok Rd ← 0xFF − Rd Z, C, N, V 1
NEG Rd Dvojkový doplnok Rd ← 0x00 − Rd Z, C, N, V, H 1
SBR Rd, K. Nastavte bity v registri Rd ← Rd v K Z, N, V 1
CBR Rd, K. Vymazanie bitov v registri Rd ← Rd ∙ (0xFF – K) Z, N, V 1
INC Rd Prírastok Rd ← Rd + 1 Z, N, V 1
DEC Rd odpočítať Rd ← Rd − 1 Z, N, V 1
TST Rd Test na nulu alebo mínus Rd ← Rd ∙ Rd Z, N, V 1
CLR Rd Vymazať registráciu Rd ← Rd ⊕ Rd Z, N, V 1
SER Rd Nastaviť register Rd ← 0xFF žiadne 1
POKYNY K POBOČKÁM
RJMP k Relatívny skok PC ← PC + k + 1 žiadne 2
IJMP Nepriamy skok na (Z) PC ← Z žiadne 2
VYVOLAŤ k Relatívne volanie podprogramu PC ← PC + k + 1 žiadne 3
ZAVOLAŤ Nepriame volanie na (Z) PC ← Z žiadne 3
RET Návrat podprogramu PC ← STACK žiadne 4
RETI Prerušiť návrat PC ← STACK I 4
CPSE Rd, Rr Porovnať, preskočiť, ak sú rovnaké ak (Rd = Rr) PC ← PC + 2 alebo 3 žiadne 1. 2. 3
CP Rd, Rr Porovnaj Rd − Rr Z, N, V, C, H 1
CZK Rd, Rr Porovnajte s Carry Rd − Rr − C Z, N, V, C, H 1
CPI Rd, K. Porovnajte Registrovať s Okamžitým Rd - K Z, N, V, C, H 1
SBRC Rr, nar Ak je bit v registri vymazaný, preskočte ak (Rr(b)=0) PC ← PC + 2 alebo 3 žiadne 1. 2. 3
SBRS Rr, nar Ak je bit v registri nastavený, preskočte ak (Rr(b)=1) PC ← PC + 2 alebo 3 žiadne 1. 2. 3
SBIC P, nar Ak je bit v I / O registri vymazaný, preskočte ak (P(b)=0) PC ← PC + 2 alebo 3 žiadne 1. 2. 3
SBIS P, nar Preskočiť, ak je nastavený bit v I / O registri ak (P(b)=1) PC ← PC + 2 alebo 3 žiadne 1. 2. 3
BRBS s, k Pobočka, ak je nastavený príznak stavu ak (SREG(s) = 1), potom PC←PC+k + 1 žiadne 1/2
BRBC s, k Pobočka, ak je príznak stavu vymazaný ak (SREG(s) = 0), potom PC←PC+k + 1 žiadne 1/2
BREQ k Vetva, ak sa rovná ak (Z = 1), potom PC ← PC + k + 1 žiadne 1/2
BRNE k Vetva, ak sa nerovná ak (Z = 0), potom PC ← PC + k + 1 žiadne 1/2
BRCS k Vetva, ak má sadu ak (C = 1), potom PC ← PC + k + 1 žiadne 1/2
BRCC k Pobočka, ak je prenášaná vyčistená ak (C = 0), potom PC ← PC + k + 1 žiadne 1/2
BRSH k Pobočka, ak je rovnaká alebo vyššia ak (C = 0), potom PC ← PC + k + 1 žiadne 1/2
BRLO k Vetva, ak je nižšia ak (C = 1), potom PC ← PC + k + 1 žiadne 1/2
BRMI k Pobočka, ak je mínus ak (N = 1), potom PC ← PC + k + 1 žiadne 1/2
BRPL k Pobočka, ak Plus ak (N = 0), potom PC ← PC + k + 1 žiadne 1/2
BRGE k Pobočka, ak je väčšia alebo rovnaká, podpísaná ak (N ⊕ V= 0), potom PC ← PC + k + 1 žiadne 1/2
BRLT k Pobočka, ak je menšia ako nula, podpísaná ak (N ⊕ V= 1), potom PC ← PC + k + 1 žiadne 1/2
BRHS k Vetva, ak je nastavená vlajka s polovičným prenosom ak (H = 1), potom PC ← PC + k + 1 žiadne 1/2
BRHC k Vetva, ak je vlajka s polovičným prenosom vymazaná ak (H = 0), potom PC ← PC + k + 1 žiadne 1/2
BRTS k Vetva, ak je nastavený príznak T ak (T = 1), potom PC ← PC + k + 1 žiadne 1/2
BRTC k Vetva, ak je príznak T vymazaný ak (T = 0), potom PC ← PC + k + 1 žiadne 1/2
BRVS k Vetva, ak je nastavený príznak pretečenia ak (V = 1), potom PC ← PC + k + 1 žiadne 1/2
BRVC k Vetva, ak je príznak pretečenia vymazaný ak (V = 0), potom PC ← PC + k + 1 žiadne 1/2
BRIE k Pobočka, ak je povolené prerušenie ak ( I = 1), potom PC ← PC + k + 1 žiadne 1/2
BRID k Pobočka, ak je prerušenie zakázané ak ( I = 0), potom PC ← PC + k + 1 žiadne 1/2
POKYNY NA TESTOVANIE BITOV A BITOV
SBI P, nar Nastaviť bit v I / O registri I/O(P,b) ← 1 žiadne 2
CBI P, nar Vymazať bit v I / O registri I/O(P,b) ← 0 žiadne 2
LSL Rd Logický posun doľava Rd(n+1) ← Rd(n), Rd(0) ← 0 Z, C, N, V 1
LSR Rd Logický posun doprava Rd(n) ← Rd(n+1), Rd(7) ← 0 Z, C, N, V 1
ÚLOHA Rd Otočte doľava cez Carry Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) Z, C, N, V 1
ROR Rd Otočte sa priamo cez Carry Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) Z, C, N, V 1
ASR Rd Aritmetický posun doprava Rd(n) ← Rd(n+1), n=0..6 Z, C, N, V 1
Mnemotechnické pomôcky operandmi Popis Prevádzka Vlajky #Hodiny
SWAP Rd Zamieňajte Nibbles Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) žiadne 1
BSET s Nastavená vlajka SREG(s) ← 1 SREG 1
BCLR s Vlajka je čistá SREG(s) ← 0 SREG 1
BST Rr, nar Obchod s bitmi z registrácie do T T ← Rr(b) T 1
BLD Rd, nar Bitové načítanie z T do registra Rd(b) ← T žiadne 1
SEC Nastaviť prenášanie C ← 1 C 1
CLC Vymazať C ← 0 C 1
SEN Nastaviť zápornú vlajku N ← 1 N 1
CLN Vymazať negatívnu vlajku N ← 0 N 1
SEZ Nastaviť nulovú vlajku Z ← 1 Z 1
CLZ Vymazať nulovú vlajku Z ← 0 Z 1
SEI Povoliť globálne prerušenie Ja ← 1 I 1
CLI Globálne prerušenie je zakázané Ja ← 0 I 1
SES Nastaviť podpísanú testovaciu vlajku S ← 1 S 1
CLS Vymazať podpísanú testovaciu vlajku S ← 0 S 1
SEV Nastavte pretečenie doplnku dvojky. V ← 1 V 1
CLV Vyčistite pretečenie doplnku dvojky V ← 0 V 1
SET Nastavte T v SREG T ← 1 T 1
CLT Jasné T v SREG T ← 0 T 1
SEH Nastaviť vlajku s polovičným prenášaním v SREG H ← 1 H 1
CLH Vymazať vlajku s polovičným prenášaním v SREG H ← 0 H 1
POKYNY NA PRENOS DÁT
MOV Rd, Rr Presun medzi registrami Rd ← Rr žiadne 1
MOVW Rd, Rr Kopírovať Registrovať slovo Rd+1:Rd ← Rr+1:Rr žiadne 1
LDI Rd, K. Načítať okamžite Rd ← K žiadne 1
LD Rd, X Načítať nepriamo Rd ← (X) žiadne 2
LD Rd, X + Načítať nepriame a po zavedení Rd ← (X), X ← X + 1 žiadne 2
LD Rd, - X Načítať nepriamo a predbežne. X ← X – 1, Rd ← (X) žiadne 2
LD Rd, Y Načítať nepriamo Rd ← (Y) žiadne 2
LD Rd, Y + Načítať nepriame a po zavedení Rd ← (Y), Y ← Y + 1 žiadne 2
LD Rd, - Y Načítať nepriamo a predbežne. Y ← Y – 1, Rd ← (Y) žiadne 2
LDD Rd, Y + q Načítať nepriamo s výtlakom Rd ← (Y + q) žiadne 2
LD Rd, Z Načítať nepriamo Rd ← (Z) žiadne 2
LD Rd, Z + Načítať nepriame a po zavedení Rd ← (Z), Z ← Z+1 žiadne 2
LD Rd, -Z Načítať nepriamo a predbežne. Z ← Z – 1, Rd ← (Z) žiadne 2
LDD Rd, Z + q Načítať nepriamo s výtlakom Rd ← (Z + q) žiadne 2
LDS Rd, k Načítajte priamo zo SRAM Rd ← (k) žiadne 2
ST X, Rr Uložiť nepriamo (X) ← Rr žiadne 2
ST X +, Rr Store Indirect a Post-Inc. (X) ← Rr, X ← X + 1 žiadne 2
ST - X, Rr Skladujte nepriamo a predbežne. X ← X – 1, (X) ← Rr žiadne 2
ST Y, Rr Uložiť nepriamo (Y) ← Rr žiadne 2
ST Y +, Rr Store Indirect a Post-Inc. (Y) ← Rr, Y ← Y + 1 žiadne 2
ST - Y, Rr Skladujte nepriamo a predbežne. Y ← Y – 1, (Y) ← Rr žiadne 2
STD Y + q, RR Skladujte nepriamo s výtlakom (Y + q) ← Rr žiadne 2
ST Z, Rr Uložiť nepriamo (Z) ← Rr žiadne 2
ST Z +, Rr Store Indirect a Post-Inc. (Z) ← Rr, Z ← Z + 1 žiadne 2
ST -Z, Rr Skladujte nepriamo a predbežne. Z ← Z – 1, (Z) ← Rr žiadne 2
STD Z + q, RR Skladujte nepriamo s výtlakom (Z + q) ← Rr žiadne 2
STS k, Rr Ukladajte priamo do SRAM (k) ← Rr žiadne 2
LPM Načítajte programovú pamäť R0 ← (Z) žiadne 3
LPM Rd, Z Načítajte programovú pamäť Rd ← (Z) žiadne 3
LPM Rd, Z + Načítajte programovú pamäť a Post-Inc Rd ← (Z), Z ← Z+1 žiadne 3
SPM Uložte programovú pamäť (z) ← R1:R0 žiadne
IN Rd, P V prístave Rd ← P žiadne 1
OUT P, Rr Out Port P ← Rr žiadne 1
TAM Rr Stlačte Register na zásobníku STACK ← Rr žiadne 2
POP Rd Pop Zaregistrujte sa zo Stacku Rd ← STACK žiadne 2
NÁVOD NA KONTROLU MCU
NOP Žiadna operácia žiadne 1
SPAŤ Spánok (pozri špecifický popis funkcie spánku) žiadne 1
WDR Strážny pes Reset (pozri konkrétny popis pre WDR / časovač) žiadne 1
BREAK Prestávka
Rýchlosť (MHz) (1) Dodávka Voltage (V) Rozsah teplôt Balíček (2) Objednávací kód (3)
10 1.8 – 5.5 Priemyselná

(-40 ° C až +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 Priemyselná

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

Poznámky: 1. Pre rýchlosť vs. napájací objemtage, pozri časť 21.3 „Rýchlosť“ na stránke 163.

Všetky balenia sú bez obsahu Pb, bez halogenidov a sú úplne zelené a zodpovedajú európskej smernici o obmedzení nebezpečných látok (RoHS).

Indikátory kódu

H: Povrchová úprava olova NiPdAu

U: matný plech

R: páska a kotúč

Tieto zariadenia môžu byť dodávané aj vo forme oblátok. Podrobné informácie o objednávaní a minimálne množstvá získate od miestnej predajnej kancelárie Atmel.

errata

Errata ATtiny25

Revízny list v tejto časti sa týka revízie zariadenia ATtiny25.

Rev D - F

Žiadna známa errata.

Rev B - C

Čítanie EEPROM môže zlyhať pri nízkom napájacom objtage / nízka hodinová frekvencia

Čítanie EEPROM môže zlyhať pri nízkom napájacom objtage / nízka hodinová frekvencia

Pokúša sa čítať EEPROM pri nízkych hodinových frekvenciách a/alebo nízkom napájacom objtage môže mať za následok neplatné údaje.

Oprava problému / Riešenie

Nepoužívajte EEPROM, ak je taktovacia frekvencia nižšia ako 1 MHz a napájacie napätietage je pod 2V. Ak nie je možné zvýšiť prevádzkovú frekvenciu nad 1 MHz, napájací zdrojtage by malo byť viac ako 2V. Podobne, ak je dodávka objtage nemôže byť zvýšený nad 2 V, potom by pracovná frekvencia mala byť viac ako 1 MHz.

Je známe, že táto vlastnosť závisí od teploty, ale nebola charakterizovaná. Pokyny sú uvedené iba pre izbovú teplotu.

Rev A.

Nie sampviedol.

Errata ATtiny45

Revízny list v tejto časti sa týka revízie zariadenia ATtiny45.

Rev F - G

Žiadna známa errata

Rev D - E

Čítanie EEPROM môže zlyhať pri nízkom napájacom objtage / nízka hodinová frekvencia

Čítanie EEPROM môže zlyhať pri nízkom napájacom objtage / nízka hodinová frekvencia

Pokúša sa čítať EEPROM pri nízkych hodinových frekvenciách a/alebo nízkom napájacom objtage môže mať za následok neplatné údaje.

Oprava problému / Riešenie

Nepoužívajte EEPROM, ak je taktovacia frekvencia nižšia ako 1 MHz a napájacie napätietage je pod 2V. Ak nie je možné zvýšiť prevádzkovú frekvenciu nad 1 MHz, napájací zdrojtage by malo byť viac ako 2V. Podobne, ak je dodávka objtage nemôže byť zvýšený nad 2 V, potom by pracovná frekvencia mala byť viac ako 1 MHz.

Je známe, že táto vlastnosť závisí od teploty, ale nebola charakterizovaná. Pokyny sú uvedené iba pre izbovú teplotu.

Rev B - C

PLL sa nezablokuje

Čítanie EEPROM z kódu aplikácie nefunguje v režime uzamknutia bitov 3

Čítanie EEPROM môže zlyhať pri nízkom napájacom objtage / nízka hodinová frekvencia

Generovanie výstupu časovača 1 PWM na OC1B-XOC1B nefunguje správne

PLL sa nezablokuje

Pri frekvenciách pod 6.0 ​​MHz sa PLL nezablokuje

Oprava problému / Riešenie

Pri použití PLL bežte na frekvencii 6.0 MHz alebo vyššej.

Čítanie EEPROM z kódu aplikácie nefunguje v režime uzamknutia bitov 3

Keď sú bity uzamknutia pamäte LB2 a LB1 naprogramované na režim 3, načítanie EEPROM nefunguje z kódu aplikácie.

Oprava problému / Riešenie problému

Nenastavujte režim uzamknutia bitovej ochrany 3, keď je potrebné načítať kód aplikácie z EEPROM.

Čítanie EEPROM môže zlyhať pri nízkom napájacom objtage / nízka hodinová frekvencia

Pokúša sa čítať EEPROM pri nízkych hodinových frekvenciách a/alebo nízkom napájacom objtage môže mať za následok neplatné údaje.

Oprava problému / Riešenie

Nepoužívajte EEPROM, ak je taktovacia frekvencia nižšia ako 1 MHz a napájacie napätietage je pod 2V. Ak nie je možné zvýšiť prevádzkovú frekvenciu nad 1 MHz, napájací zdrojtage by malo byť viac ako 2V. Podobne, ak je dodávka objtage nemôže byť zvýšený nad 2 V, potom by pracovná frekvencia mala byť viac ako 1 MHz.

Je známe, že táto vlastnosť závisí od teploty, ale nebola charakterizovaná. Pokyny sú uvedené iba pre izbovú teplotu.

Generovanie výstupu časovača 1 PWM na OC1B - XOC1B nefunguje správne

Časovač Counter1 Výstup PWM OC1B-XOC1B nefunguje správne. Iba v prípade, keď sú riadiace bity COM1B1 a COM1B0 v rovnakom režime ako COM1A1 a COM1A0, výstup OC1B-XOC1B funguje správne.

Oprava problému / Riešenie problému

Jediným riešením je použiť rovnaké nastavenie riadenia na riadiacich bitoch COM1A [1: 0] a COM1B [1: 0], pozri tabuľku 14-4 v údajovom liste. Problém bol opravený pre Tiny45 rev D.

Rev A.

Príliš vysoká spotreba energie

DebugWIRE stratí komunikáciu, keď vstúpi do prerušenia

PLL sa nezablokuje

Čítanie EEPROM z kódu aplikácie nefunguje v režime uzamknutia bitov 3

Čítanie EEPROM môže zlyhať pri nízkom napájacom objtage / nízka hodinová frekvencia

Príliš vysoká spotreba energie

Tri situácie povedú k príliš vysokej spotrebe energie. Sú to:

Externé hodiny sú vybrané poistkami, ale I / O PORT je stále povolený ako výstup.

EEPROM sa načíta pred vypnutím.

VCC je 4.5 voltu alebo vyšší.

Zrieknutie sa zodpovednosti: Informácie v tomto dokumente sú poskytované v súvislosti s produktmi Atmel. Týmto dokumentom ani v súvislosti s predajom produktov Atmel nie je udelená žiadna licencia, výslovná alebo implicitná, na základe prekážok alebo inak, na akékoľvek právo duševného vlastníctva. OKREM PODMIENOK PREDAJA UVEDENÝCH V PODMIENKACH PREDAJA ATMEL, KTORÉ SA NACHÁDZA ATMEL WEBSTRÁNKA, ATMEL NEPREBERÁ ŽIADNU ZODPOVEDNOSŤ A ZRIEKA SA AKEJKOĽVEK VÝSLOVNEJ, IMPLICITNEJ ALEBO ZÁKONNEJ ZÁRUKY TÝKAJÚCE SA JEJ PRODUKTOV, VRÁTANE, ALE NIE VÝHRADNE, IMPLICITNEJ ZÁRUKY OBCHODOVANIA, VHODNOSTI PLATNOSTI PARTNERSTVA. ATMEL V ŽIADNOM PRÍPADE NIE JE ZODPOVEDNÝ ZA ŽIADNE PRIAMY, NEPRIAME, NÁSLEDNÉ, TRESTNÉ, ZVLÁŠTNE ALEBO NÁHODNÉ ŠKODY (VRÁTANE, BEZ OBMEDZENIA, ŠKODY ZA STRATU A ZISKY, PRERUŠENIE PODNIKANIA ALEBO STRATU STRATY INFORMÁCIÍ) TENTO DOKUMENT, AJ KEĎ BOL ATMEL UPOZORNENÝ NA MOŽNOSŤ TAKÝCHTO ŠKOD.

Atmel neposkytuje žiadne vyhlásenia ani záruky týkajúce sa presnosti alebo úplnosti obsahu tohto dokumentu a vyhradzuje si právo kedykoľvek bez upozornenia zmeniť špecifikácie a popisy produktov. Atmel sa nezaväzuje aktualizovať informácie obsiahnuté v tomto dokumente. Pokiaľ nie je výslovne uvedené inak, produkty Atmel nie sú vhodné a nesmú sa v nich používať. Produkty Atmel nie sú určené, autorizované ani zaručené na použitie ako komponenty v aplikáciách určených na podporu alebo udržanie životnosti.

Referencie

Zanechajte komentár

Vaša emailová adresa nebude zverejnená. Povinné polia sú označené *