Atmel

Microcontroller Atmel 8-bit AVR cù 2/4/8K Bytes Flash programmabile in u sistemachip

 

Features

  • Microcontroller AVR® 8-Bit High Performance, Low Power
  • Architettura avanzata RISC
  • 120 Istruzzioni putenti - A maiò parte di l'esecuzione di u ciclu di l'orologio unicu
  • 32 x 8 Registri di travagliu per u scopu generale
  • Operazione Completamente Statica
  • Programma non volatile è Memorie di Dati
  • 2/4/8K Bytes di Flash di Memoria di Programmi Programmable in u Sistema
  • Endurance: 10,000 cicli di scrittura / cancellazione
  • 128/256/512 Bytes EEPROM programmabile in u sistema
  • Endurance: 100,000 cicli di scrittura / cancellazione
  • 128/256/512 Bytes SRAM interna
  • Bloccu di prugrammazione per u Programma Flash di Autoprogrammazione è a Sicurezza di Dati EEPROM

Funzioni periferiche

  • Timer / Contatore 8-bit cù Prescaler è dui canali PWM
  • Timer / Contatore d'Alta Velocità 8-bit cù Prescaler Separatu
  • 2 Outputs PWM d'Alta Frequenza cù Registri di Comparazione di Output Separati
  • Generatore di tempu mortu programmabile
  • USI - Interfaccia Seriale Universale cù Detector di Condizione di Start
  • ADC à 10 bits

4 Canali Single Ended

2 Coppie di canali ADC differenziali cù guadagnu programmabile (1x, 20x)

Misurazione di a temperatura

Timer di Watchdog Programmable cù Oscillatore On-chip Separatu

Comparatore Analogu On-chip

Caratteristiche Speciali di Microcontrollore

debugWIRE Sistema di Debug On-chip

Programmable in u sistema via u portu SPI

Sources Interrupt Esterni è Interni

Low Power Idle, ADC Noise Reduction, and Power-down Modes

Circuitu di Reset Power-on Enhanced

Circuitu di rilevazione di Brown-out programmabile

Oscillatore Calibratu Internu

I/O è pacchetti

Sei Linee I/O programmabili

PDIP à 8 pin, SOIC à 8 pin, QFN/MLF à 20 pad, è TSSOP à 8 pin (solu ATtiny45/V)

Voltage
- 1.8 - 5.5V per ATtiny25V/45V/85V
- 2.7 - 5.5V per ATtiny25/45/85

Grade di Velocità
– ATtiny25V/45V/85V: 0 – 4 MHz @ 1.8 – 5.5 V, 0 – 10 MHz @ 2.7 – 5.5 V
– ATtiny25/45/85: 0 – 10 MHz @ 2.7 – 5.5 V, 0 – 20 MHz @ 4.5 – 5.5 V

Gamma di temperatura industriale

Bassu cunsumu d'energia

Modu attivu:

1 MHz, 1.8 V: 300 µA

Modu Power-down:

Configurazioni Pin

Pinout ATtiny25/45/85 Cunfigurazione

Descrizioni Pin

VCC: Voltage.
GND: Terra.
Port B (PB5: PB0): Port B hè un portu I/O bidirezionale di 6 bit cù resistori di pull-up interni (scelti per ogni bit). I buffer di output Port B anu caratteristiche di unità simmetriche cù una capacità elevata di lavamanu è di fonte. Cum'è inputs, i pins di Port B chì sò esterni tirati bassu surghjeranu corrente se i resistori di pull-up sò attivati. I pins Port B sò tri-stated quandu una cundizione reset diventa attivu, ancu s'è u clock ùn hè micca in esecuzione.

Port B serve ancu e funzioni di diverse caratteristiche speciali di l'ATtiny25/45/85 cum'è listatu
In ATtiny25, i porti I / O programabili PB3 è PB4 (pins 2 è 3) sò scambiati in Modu di Compatibilità ATtiny15 per sustene a cumpatibilità retrocede cù ATtiny15.

RESET: Reset input. Un livellu bassu nantu à questu pin per più di a durata minima di l'impulsu genererà un reset, ancu s'ellu ùn hè micca in funzione è sempre chì u pin di reset ùn hè micca disattivatu. A durata minima di l'impulsu hè datu in Table 21-4 a pagina 165. I impulsi più brevi ùn sò micca garantiti per generà un reset.

U pin reset pò ancu esse usatu cum'è pin I/O (debule).

Overview

L'ATtiny25/45/85 hè un microcontroller CMOS à 8-bit di bassa putenza basatu annantu à l'architettura RISC rinforzata AVR. Eseguendu struzzioni putenti in un unicu ciclu di clock, l'ATtiny25/45/85 ottiene throughputs chì avvicinanu 1 MIPS per MHz chì permettenu à u designer di u sistema di ottimisà u cunsumu di energia versus a velocità di trasfurmazioni.

Diagramma di Blocu Schema di bloccu

U core AVR combina un riccu set di struzzioni cù 32 registri di travagliu generale. Tutti i 32 registri sò direttamente cunnessi à l'Unità Logica Aritmetica (ALU), chì permettenu l'accessu à dui registri indipendenti in una sola istruzzione eseguita in un ciclu di clock. L'architettura risultante hè più efficiente di codice mentre ghjunghje à throughputs finu à deci volte più veloce di i microcontroller CISC convenzionali.

L'ATtiny25/45/85 furnisce e seguenti caratteristiche: 2/4/8K byte di Flash Programmable In-System, 128/256/512 bytes EEPROM, 128/256/256 bytes SRAM, 6 linee I/O per scopi generali, 32 generale registri di travagliu di scopu, un Timer / Contatore di 8 bit cù modi di paragunà, un Timer / Contatore di alta velocità di 8 bit, Interfaccia Seriale Universale, Interruzioni Interne è Esterne, un ADC di 4 canali, 10 bit, un Timer Watchdog programmabile cù internu. Oscillatore, è trè modi di risparmiu di energia selezziunati da u software. U modalità Idle ferma u CPU mentre permette à u sistema SRAM, Timer/Counter, ADC, Comparator Analogicu è Interrupt per cuntinuà à funziunà. U modu di spegnimentu salva u cuntenutu di u registru, disattivendu tutte e funzioni di chip finu à a prossima Interruzzione o Reset hardware. U modu di riduzione di u rumore ADC ferma u CPU è tutti i moduli I/O eccettu l'ADC, per minimizzà u rumore di cambiamentu durante a cunversione ADC.

U dispusitivu hè fabricatu cù a tecnulugia di memoria non volatile d'alta densità di Atmel. U Flash ISP On-chip permette à a memoria di u prugramma esse riprogrammata In-System attraversu una interfaccia seriale SPI, da un programatore di memoria non volatile convenzionale o da un codice di boot On-chip in esecuzione in u core AVR.

L'ATtiny25/45/85 AVR hè supportatu cù una suite completa di prugrammi è strumenti di sviluppu di u sistema cumpresi: C Compilers, Macro Assemblers, Program Debugger/Simulators and Evaluation kits.

À propositu di Risorse

Un inseme cumpletu di strumenti di sviluppu, note d'applicazione è datasheets sò dispunibuli per scaricà http://www.atmel.com/avr.

Codice Examples

Sta ducumentazione cuntene codice simplice examples chì mostranu brevemente cumu utilizà diverse parti di u dispusitivu. Questi codici examples assume chì l'intestazione specifica di a parte file hè inclusu prima di a compilazione. Sapete chì micca tutti i venditori di compilatori C includenu definizioni di bit in l'intestazione files è a gestione di l'interruzzione in C hè dipendente da u compilatore. Per piacè cunfirmà cù a documentazione di u compilatore C per più dettagli.

Pour les registres d'E/S situés dans la carte d'E/S étendue, les instructions « IN », « OUT », « SBIS », « SBIC », « CBI » et « SBI » doivent être remplacées par des instructions qui permettent l'accès aux I/O étendus. / O. Di genere, questu significa "LDS" è "STS" cumminati cù "SBRS", "SBRC", "SBR" è "CBR". Nota chì micca tutti i dispositi AVR includenu una mappa I/O estesa.

Sensing Touch Capacitive

Atmel QTouch Library furnisce una soluzione simplice d'utilizà per interfacce sensibili à u toccu nantu à i microcontrollers Atmel AVR. A libreria QTouch include supportu per i metudi di acquisizione QTouch® è QMatrix®.

U sensu di u toccu hè facilmente aghjuntu à qualsiasi applicazione liendu a libreria QTouch è utilizendu l'interfaccia di prugrammazione di l'applicazioni (API) di a biblioteca per definisce i canali è i sensori di u toccu. L'applicazione poi chjama l'API per ricuperà l'infurmazioni di u canali è determinà u statu di u sensoru touch.

A QTouch Library hè gratuita è pò esse scaricata da l'Atmel websitu. Per più infurmazione è dettagli di implementazione, riferite à a QTouch Library User Guide - dispunibule ancu da Atmel websitu.

Ritenzione di dati

I risultati di a Qualificazione di Affidabilità mostranu chì a rata di fallimentu di ritenzione di dati prughjettata hè assai menu di 1 PPM in 20 anni à 85 ° C o 100 anni à 25 ° C.

Core CPU AVR

Introduzione

Questa sezione discute l'architettura core AVR in generale. A funzione principale di u core CPU hè di assicurà l'esekzione curretta di u prugramma. U CPU deve dunque esse capace di accede à e memorie, eseguisce calculi, cuntrullà i periferichi è gestisce interruzioni.

Architetturale Overview Architettura

Per maximizà u rendiment è u parallelismu, l'AVR usa una architettura di Harvard - cù memorie è autobus separati per u prugramma è i dati. L'istruzzioni in a memoria di u prugramma sò eseguite cù un pipelining unicu livellu. Mentre una struzzione hè stata eseguita, l'istruzzione successiva hè pre-fetched da a memoria di u prugramma. Stu cuncettu permette l'istruzzioni per esse eseguite in ogni ciclu di clock. A memoria di u prugramma hè una memoria Flash Reprogrammable In-System.

U Registru d'accessu rapidu File cuntene 32 x 8-bit registri di travagliu generale cù un unicu tempu di accessu à u ciclu di u clock. Questu permette l'operazione di Unità Logica Aritmetica (ALU) à ciclu unicu. In una operazione ALU tipica, dui operandi sò uscita da u Registru File, l'operazione hè eseguita, è u risultatu hè guardatu in u Registru File- in un ciclu di clock.

Sei di i 32 registri ponu esse aduprati cum'è trè puntatori di registru di indirizzu indirettu di 16 bit per l'indirizzu di Data Space - chì permettenu calculi di indirizzu efficienti. Unu di sti puntatori di l'indirizzu pò ancu esse usatu cum'è un punteru di l'indirizzu per circà e tabelle in a memoria di u prugramma Flash. Questi registri di funzioni aghjunte sò i 16-bit X-, Y-, and Z-register, descritti più tardi in questa sezione.

L'ALU supporta operazioni aritmetiche è logiche trà i registri o trà una constante è un registru. L'operazioni di registru unicu pò ancu esse eseguite in l'ALU. Dopu una operazione aritmetica, u Status Register hè aghjurnatu per riflette l'infurmazioni nantu à u risultatu di l'operazione.

U flussu di u prugramma hè furnitu da istruzzioni di salti è chjamate cundiziunali è incondizionati, capaci di indirizzà direttamente u spaziu di indirizzu tutale. A maiò parte di l'istruzzioni AVR anu un unicu formatu di parola di 16-bit, ma ci sò ancu struzzioni di 32-bit.

Durante l'interruzioni è e chjama di subrutina, l'indirizzu di ritornu Program Counter (PC) hè almacenatu nantu à a Stack. U Stack hè effettivamente attribuitu in a SRAM di dati generale, è per quessa a dimensione di Stack hè limitata solu da a dimensione di SRAM tutale è l'usu di a SRAM. Tutti i prugrammi di l'utilizatori devenu inizializà u SP in a rutina Reset (prima di eseguite subrutine o interruzioni). Stack Pointer (SP) hè accessibile in lettura / scrittura in u spaziu I / O. A SRAM di dati pò esse facilmente accede à traversu i cinque modi d'indirizzu differenti supportati in l'architettura AVR.

I spazii di memoria in l'architettura AVR sò tutti mappe di memoria lineari è regulari.

Un modulu di interruzzione flexible hà i so registri di cuntrollu in u spaziu I/O cù un bit di attivazione di interruzione globale addiziale in u Registru di Status. Tutte l'interruzzioni anu un Vector Interrupt separatu in a tavola di Interrupt Vector. L'interruzioni anu a priorità in cunfurmità cù a so pusizione di Vector Interrupt. U più bassu l'indirizzu Interrupt Vector, u più altu a priorità.

U spaziu di memoria I/O cuntene 64 indirizzi per funzioni periferiche di CPU cum'è Control Registers, SPI, è altre funzioni I/O. A memoria I / O pò accede direttamente, o cum'è i lochi di u Spaziu Dati dopu à quelli di u Registru File, 0x20 - 0x5F.

ALU - Unità Aritmetica Logica

L'AVR ALU d'alta prestazione opera in cunnessione diretta cù tutti i 32 registri di travagliu generale. In un unicu ciclu di clock, l'operazioni aritmetiche trà i registri di u scopu generale o trà un registru è un immediatu sò eseguiti. L'operazioni ALU sò divise in trè categurie principali - funzioni aritmetiche, logiche è bit. Alcune implementazioni di l'architettura furnisce ancu un putente multiplicatore chì sustene a multiplicazione firmata / senza firmata è u formatu fraccionale. Vede a sezione "Instruction Set" per una descrizzione dettagliata.

Status Registru

U Status Register cuntene infurmazione nantu à u risultatu di l'istruzzioni aritmetica più recente eseguita. Questa informazione pò esse usata per cambià u flussu di u prugramma per fà operazioni cundiziunali. Nota chì u Status Register hè aghjurnatu dopu à tutte l'operazioni ALU, cum'è specificatu in a Instruction Set Reference. Questu, in parechji casi, sguasserà a necessità di utilizà l'istruzzioni di paraguni dedicati, risultannu in codice più veloce è più compactu.

U Status Register ùn hè micca automaticamente guardatu quandu entra in una rutina di interruzzione è restauratu quandu si torna da una interruzzione. Questu deve esse trattatu da u software.

SREG - Registru di Statu AVR

U Registru di Statu AVR - SREG - hè definitu cum'è:

Bit 7 6 5 4 3 2 1 0
0x3F I T H S V N Z C SREG
Leghjite / Scrive R/W R/W R/W R/W R/W R/W R/W R/W
Valore iniziale 0 0 0 0 0 0 0 0

Bit 7 - I: Abilitazione di l'Interruzzione Globale

U bit Global Interrupt Enable deve esse stabilitu per l'interruzioni per esse attivate. U cuntrollu di attivazione di l'interruzzione individuale hè allora realizatu in registri di cuntrollu separati. Se u Registru Globale di Abilitazione di l'Interruzzione hè sguassatu, nimu di l'interruzioni sò attivati ​​indipindentamente da i paràmetri di attivazione di l'interruzzione individuale. L'I-bit hè sbulicatu da u hardware dopu chì una interruzzione hè accaduta, è hè stabilitu da l'istruzzioni RETI per attivà l'interruzioni successive. L'I-bit pò ancu esse stabilitu è ​​sbulicatu da l'applicazione cù l'istruzzioni SEI è CLI, cum'è descrittu in a riferenza di l'istruzzioni.

Bit 6 - T: Bit Copy Storage

L'istruzzioni Bit Copy BLD (Bit LoaD) è BST (Bit STore) utilizanu u T-bit cum'è fonte o destinazione per u bit operatu. Un pocu da un registru in u Registru File pò esse copiatu in T da l'istruzzioni BST, è un pocu in T pò esse copiatu in un pocu in un registru in u Registru File da l'istruzzioni BLD.

Bit 5 - H: Bandiera di a mità di trasportu

A Bandiera Half Carry H indica un Half Carry in alcune operazioni aritmetiche. Half Carry hè utile in l'aritmetica BCD. Vede a "Instruction Set Description" per infurmazioni detallate.

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

U S-bit hè sempre un esclusivu o trà a Bandiera Negativa N è a Bandiera di Overflow di Two's Complement V. Vede a "Instruction Set Description" per infurmazioni detallati.

Bit 3 - V: Bandiera di Overflow di Two's Complement

U Two's Complement Overflow Flag V sustene l'aritmetica di u cumplementu di dui. Vede a "Instruction Set Description" per infurmazioni detallate.

Bit 2 - N: Bandiera Negativa

A Bandiera Negativa N indica un risultatu negativu in una operazione aritmetica o logica. Vede a "Instruction Set Description" per infurmazioni detallate.

Bit 1 - Z: Bandiera Zero

A Bandiera Zero Z indica un risultatu zero in una operazione aritmetica o logica. Vede a "Instruction Set Description" per infurmazioni detallate.

Bit 0 - C: Carry Flag

U Carry Flag C indica un trasportu in una operazione aritmetica o logica. Vede a "Instruction Set Description" per infurmazioni detallate.

Registru di u scopu generale File

U Registru File hè ottimizatu per u set di istruzioni AVR Enhanced RISC. Per ottene a prestazione è a flessibilità richieste, i seguenti schemi di input/output sò supportati da u Registru. File:

Un operandu di output di 8 bit è un input di risultatu di 8 bit

Dui operandi di output di 8 bit è un input di risultatu di 8 bit

Dui operandi di output di 8 bit è un input di risultatu di 16 bit

Un operandu di output di 16 bit è un input di risultatu di 16 bit

Figura 4-2 mostra a struttura di i 32 registri di travagliu generale in u CPU. U scopu generale

Cum'è mostra in Figura 4-2, ogni registru hè ancu attribuitu un indirizzu di memoria di Dati, mapping elli direttamente in i primi 32 lochi di u Spaziu di Dati di l'utilizatori. Ancu s'ellu ùn hè micca implementatu fisicamente cum'è lochi SRAM, questa urganizazione di memoria furnisce una grande flessibilità in l'accessu à i registri, postu chì i registri di puntatori X, Y è Z ponu esse impostati per indexà qualsiasi registru in u registru. file.A maiò parte di l'istruzzioni chì operanu nantu à u Registru File anu accessu direttu à tutti i registri, è a maiò parte di elli sò struzzioni di un ciclu unicu.

U registru X, registru Y è registru Z

I registri R26..R31 anu alcune funzioni aghjunte à u so usu generale. Questi registri sò punters d'indirizzu di 16 bit per l'indirizzu indirettu di u spaziu di dati. I trè registri d'indirizzu indiretti X, Y è Z sò definiti cum'è descrittu in Figura 4-3.

Registrate

In i diversi modi d'indirizzu, questi registri di l'indirizzu anu funzioni cum'è spostamentu fissu, incrementu automaticu è decrementu automaticu (vede a riferimentu di l'istruzzioni per i dettagli).

Stack Pointer

U Stack hè principarmenti utilizatu per almacenà dati tempuranee, per almacenà variabili lucali è per almacenà l'indirizzi di ritornu dopu interruzioni è chjama subrutine. U Stack Pointer Register punta sempre à a cima di u Stack. Nota chì u Stack hè implementatu cum'è crescente da i lochi di memoria più altu à i lochi di memoria più bassi. Questu implica chì un cumandamentu Stack PUSH diminuisce u Stack Pointer.

U Stack Pointer punta à l'area di dati SRAM Stack induve si trovanu i Subroutine è Interrupt Stacks. Stu spaziu Stack in a SRAM di dati deve esse definitu da u prugramma prima di eseguite qualsiasi chjama di subrutina o attivate l'interruzioni. U Stack Pointer deve esse stabilitu à puntu sopra à 0x60. U Stack Pointer hè decrementatu da unu quandu i dati sò imbuttati nantu à a Stack cù l'istruzzioni PUSH, è hè diminuitu da dui quandu l'indirizzu di ritornu hè imbuttatu nantu à a Stack cù subrutine call o interrupt. U Stack Pointer hè aumentatu da unu quandu i dati sò spuntati da u Stack cù l'istruzzioni POP, è hè incrementatu da dui quandu i dati sò spuntati da a Stack cù u ritornu da a subrutina RET o u ritornu da l'interruzzione RETI.

L'AVR Stack Pointer hè implementatu cum'è dui registri di 8-bit in u spaziu I/O. U numeru di bit effettivamente utilizati dipende da l'implementazione. Nota chì u spaziu di dati in certi implementazioni di l'architettura AVR hè cusì chjucu chì solu SPL hè necessariu. In questu casu, u Registru SPH ùn serà micca presente.

SPH è SPL - Stack Pointer Register

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
Leghjite / Scrive R/W R/W R/W R/W R/W R/W R/W R/W
Leghjite / Scrive R/W R/W R/W R/W R/W R/W R/W R/W
Valore iniziale RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND
Valore iniziale RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND RAMEND

Tempu di Esecuzione di Istruzzioni

Questa sezione descrive i cuncetti di tempu d'accessu generale per l'esekzione di istruzzioni. U CPU AVR hè guidatu da u CPU clock clkCPU, generatu direttamente da a fonte di clock scelta per u chip. Nisuna divisione interna di u clock hè aduprata.

Fig4.4

Figura 4-4 mostra l'istruzzioni parallele fetches è l'esecuzioni d'istruzzioni attivate da l'architettura di Harvard è u Registru d'accessu rapidu File cuncettu. Questu hè u cuncettu basu di pipelining per ottene finu à 1 MIPS per MHz cù i risultati unichi currispondenti per e funzioni per costu, funzioni per clock, è funzioni per unità di putenza.

Figura 4-5. Funzionamentu ALU à Ciclu Unicu

Fig4.5

Reset è Interrupt Handling

L'AVR furnisce diverse fonti di interruzzione. Queste interruzioni è u Reset Vector separatu anu ognunu un Program Vector separatu in u spaziu di memoria di u Programma. Tutte l'interruzzioni sò attribuiti bit di attivazione individuale chì deve esse scritta una logica inseme cù u bit Enable Interrupt Globale in u Status Register per attivà l'interruzzione.

L'indirizzi più bassi in u spaziu di memoria di u Programma sò definiti per difettu cum'è i Vectors Reset and Interrupt. A lista completa di vettori hè mostrata in “Interruzioni” a pagina 48. A lista determina ancu i livelli di priorità di e diverse interruzioni. Più bassu hè l'indirizzu, più altu hè u livellu di priorità. RESET hà a più alta priorità, è dopu hè INT0 - a Richiesta di Interruzzione Esterna 0.

Quandu si verifica una interruzzione, l'I-bit Global Interrupt Enable hè sguassatu è tutte l'interruzioni sò disattivate. U software d'utilizatore pò scrive una logica à l'I-bit per attivà interruzioni nidificate. Tutte l'interruzioni attivate ponu allora interrompe a rutina di interruzzione attuale. L'I-bit hè automaticamente stabilitu quandu una istruzzioni Return from Interrupt - RETI - hè eseguita.

Ci hè basicamente dui tipi di interruzioni. U primu tipu hè attivatu da un avvenimentu chì stabilisce a Bandiera Interrupt. Per queste interruzioni, u Program Counter hè vectored à l'attuale Vector Interrupt per eseguisce a rutina di gestione di l'interruzzione, è u hardware sguassate a Bandiera di Interruzzione currispondente. I Bandieri d'Interruzzione ponu ancu esse sbulicati scrivendu una logica à a pusizioni di bit di bandiera per esse sbulicata. Se si verifica una cundizione d'interruzzione mentre u bit di attivazione di l'interruzzione currispondente hè sguassatu, a Bandiera di Interruzzione serà stabilita è ricurdata finu à chì l'interruzzione hè attivata, o a bandiera hè sguassata da u software. In u listessu modu, se una o più cundizioni d'interruzzione si verificanu mentre u bit di attivazione di l'interruzzione globale hè sguassata, u Flag (s) d'interruzzione currispundente sarà stabilitu è ​​ricurdatu finu à chì u bit di attivazione di interruzione globale hè stabilitu, è dopu esse eseguitu per ordine di priorità.

U sicondu tipu d'interruzzione attivarà sempre chì a cundizione d'interruzzione hè presente. Queste interruzioni ùn anu micca necessariamente Bandiere di Interrupt. Se a cundizione d'interruzzione sparisce prima chì l'interruzzione hè attivata, l'interruzzione ùn serà micca attivata.

Quandu l'AVR esce da una interruzzione, torna sempre à u prugramma principale è eseguisce una struzzione più prima di ogni interruzzione pendente hè servuta.

Nota chì u Status Register ùn hè micca automaticamente almacenatu quandu si entra in una rutina di interruzzione, nè restauratu quandu si torna da una rutina di interruzzione. Questu deve esse trattatu da u software.

Quandu si usa l'istruzzioni CLI per disattivà l'interruzioni, l'interruzioni saranu immediatamente disattivate. Nisuna interruzzione serà eseguita dopu l'istruzione CLI, ancu s'ellu si trova simultaneamente cù l'istruzzioni CLI. I seguenti example mostra cumu questu pò esse usatu per evità interruzioni durante a sequenza di scrittura EEPROM cronometrata.

Codice di Assemblea Esample
in r16, SREG ; almacenà u valore SREG

cli; disattivà l'interruzioni durante a sequenza cronometrata

sbi EECR, EEMPE ; principià a scrittura EEPROM

sbi EECR, EEPE

fora SREG, r16; restaurà u valore SREG (I-bit)

C Code Example
char cSREG;

cSREG = SREG; /* almacenà u valore SREG */

/* disattiva l'interruzioni durante a sequenza cronometrata */

_CLI();

EECR |= (1<

EECR |= (1<

SREG = cSREG; /* restaurà u valore SREG (I-bit) */

Quandu si usa l'istruzione SEI per attivà l'interruzioni, l'istruzzioni dopu SEI serà eseguita prima di qualsiasi interruzioni pendenti, cum'è mostratu in questu ex.ample.

Codice di Assemblea Esample
sei ; stabilisce l'attivazione di l'interruzzione globale

dorme; entra in u sonnu, aspittendu l'interruzzione

; nota: entrerà in sonnu prima di qualsiasi pendente

; interruzzione (s)

C Code Example
_SEI(); /* stabilisce l'attivazione di l'interruzzione globale */

_SLEEP(); /* entra in u sonnu, aspittendu l'interruzzione */

/* nota: entrerà in sonnu prima di qualsiasi interruzione(e) pendente */

Interrupt Response Time

A risposta di l'esecuzione di interruzzione per tutte l'interruzioni AVR attivate hè di quattru cicli di clock minimu. Dopu quattru cicli di clock, l'indirizzu di u Programma Vector per a rutina di gestione di l'interruzzione attuale hè eseguita. Duranti stu periodu di quattru cicli di clock, u Program Counter hè imbuttatu nantu à a Stack. U vettore hè nurmalmente un saltu à a rutina di interruzzione, è questu saltu piglia trè cicli di clock. Se una interruzzione si verifica durante l'esekzione di una struzzione multi-ciclu, sta struzzione hè cumpletata prima chì l'interruzzione hè servita. Se si verifica una interruzzione quandu u MCU hè in modu di sonnu, u tempu di risposta di l'esecuzione di l'interruzzione hè aumentatu di quattru cicli di clock. Stu aumentu vene in più di u tempu di start-up da u modu di sonnu sceltu.

Un ritornu da una rutina di gestione di l'interruzzione richiede quattru cicli di clock. Duranti questi quattru cicli di clock, u Program Counter (dui byte) hè ritruvatu da u Stack, u Stack Pointer hè incrementatu da dui, è l'I-bit in SREG hè stabilitu.

Memorie AVR

Questa sezione descrive i diversi ricordi in l'ATtiny25/45/85. L'architettura AVR hà dui spazii di memoria principali, a memoria di dati è u spaziu di memoria di u prugramma. Inoltre, l'ATtiny25/45/85 presenta una Memoria EEPROM per l'almacenamiento di dati. Tutti i trè spazii di memoria sò lineari è regulari.

Memoria di prugramma Flash riprogrammabile in u sistema

L'ATtiny25/45/85 cuntene 2/4/8K bytes Memoria Flash Riprogrammabile In-chip In-System per u almacenamentu di u prugramma. Siccomu tutte l'istruzzioni AVR sò larga 16 o 32 bit, u Flash hè urganizatu cum'è 1024/2048/4096 x 16.

A memoria Flash hà una durata di almenu 10,000 cicli di scrittura / cancellazione. L'ATtiny25/45/85 Program Counter (PC) hè 10/11/12 bits largu, cusì indirizzendu i lochi di memoria di u prugramma 1024/2048/4096. "U prugramma di memoria - ming" à a pagina 147 cuntene una descrizzione dettagliata nantu à u scaricamentu seriale di dati Flash cù i pin SPI.

E tabelle custanti ponu esse attribuite in tuttu u spaziu di l'indirizzu di a memoria di u prugramma (vede a descrizzione di l'istruzzioni di memoria di LPM - Load Program).

Figura 5-1. Mappa di memoria di prugramma Mappa di memoria

Memoria di dati SRAM

Figura 5-2 mostra cumu hè urganizata a Memoria SRAM ATtiny25/45/85.

I lochi di memoria di dati 224/352/607 più bassi indirizzanu sia u Registru File, a memoria I/O è a SRAM di dati interna. I primi 32 posti indirizzanu u Registru File, i prossimi 64 locu a memoria standard I / O, è l'ultimi lochi 128/256/512 indirizzanu i dati interni SRAM.

I cinque modi d'indirizzu diffirenti per a coperta di memoria di dati: Direttu, Indirettu cù Spostamentu, Indirettu, Indirettu cù Pre-decrementu, è Indirettu cù Post-incrementu. In u Registru File, i registri R26 à R31 presentanu i registri di puntatore di indirizzamentu indirettu.

L'indirizzu direttu righjunghji tuttu u spaziu di dati.

U modu Indirettu cù Displacement righjunghji 63 locu di indirizzu da l'indirizzu di basa datu da u registru Y- o Z-.

Quandu si usanu modi d'indirizzu indirettu di registru cù pre-decrementu è post-incrementu automaticu, i registri di l'indirizzu X, Y è Z sò decrementati o aumentati.

I 32 registri di travagliu generale, 64 I / O Registers, è i 128/256/512 bytes di dati interni SRAM in l'ATtiny25/45/85 sò tutti accessibili attraversu tutti questi modi d'indirizzu. U Registru File hè descritta in "Gen- Registru di u scopu generale File" à pagina 10.

Figura 5-2. Mappa di memoria di dati Mappa di memoria 2

Accessu à a memoria di dati Tempi

Questa sezione descrive i cuncetti di timing di l'accessu generale per l'accessu à a memoria interna. L'accessu SRAM di dati internu hè realizatu in dui cicli clkCPU cum'è descrittu in Figura 5-3.

Figura 5-3. On-chip Data SRAM Access Cycles Dati nantu à u chip Memoria di dati EEPROM

L'ATtiny25/45/85 cuntene 128/256/512 bytes di memoria EEPROM di dati. Hè urganizata cum'è un spaziu di dati separatu, in quale unicu byte pò esse lettu è scrittu. L'EEPROM hà una durata di almenu 100,000 cicli di scrittura / cancellazione. L'accessu trà l'EEPROM è u CPU hè descrittu in seguitu, specificendu i Registri di Indirizzu EEPROM, u Registru di Dati EEPROM è u Registru di Control EEPROM. Per i dettagli vede "Scaricamentu seriale" à a pagina 151.

Accessu di lettura / scrittura EEPROM

I Registri di Accessu EEPROM sò accessibili in u spaziu I/O.

I tempi d'accessu di scrittura per l'EEPROM sò datu in Tabella 5-1 à a pagina 21. Una funzione auto-timing, però, permette à u software di l'utilizatori detectà quandu u prossimu byte pò esse scrittu. Se u codice d'utilizatore cuntene struzzioni chì scrivenu l'EEPROM, deve esse pigliatu alcune precauzioni. In l'alimentarii d'energia assai filtrati, VCC hè prubabile di cresce o falà lentamente

Power-up / down. Stu pruvucarà u dispusitivu di qualchi piriudu di tempu à curriri à un voltage inferiore a quella specificata come minima per la frequenza di clock utilizzata. Vede "Prevenzione di a corruzzione di EEPROM" à a pagina 19 per i dettagli nantu à cumu per evità prublemi in queste situazioni.

Per impediscenu scrittura EEPROM involontaria, deve esse seguita una prucedura di scrittura specifica. Riferite à "Atomicu Programmazione di byte" à a pagina 17 è "Programmazione Split Byte" à a pagina 17 per i dettagli nantu à questu.

Quandu l'EEPROM hè lettu, a CPU hè fermata per quattru cicli di clock prima di eseguisce a prossima istruzione. Quandu l'EEPROM hè scritta, a CPU hè fermata per dui cicli di clock prima di l'istruzzione successiva hè eseguita.

Programmazione di Byte Atomicu

Utilizà a Programmazione Atomica Byte hè u modu più simplice. Quandu scrive un byte à l'EEPROM, l'utilizatore deve scrive l'indirizzu in u Registru EEAR è e dati in u Registru EEDR. Se i bit EEPMn sò zero, scrive EEPE (in quattru cicli dopu chì EEMPE hè scrittu) attivarà l'operazione di cancellazione / scrittura. Tramindui u ciculu di cancellazione è di scrittura sò fatti in una sola operazione è u tempu di prugrammazione tutale hè datu Tabella 5-1 à a pagina 21. U bit EEPE resta impostatu finu à a fine di l'operazione di cancellazione è scrittura. Mentre u dispusitivu hè occupatu cù a prugrammazione, ùn hè micca pussibule di fà altre operazioni EEPROM.

Programmazione Split Byte

Hè pussibule di sparte u ciculu di sguassà è scrive in duie operazioni diverse. Questu pò esse utile se u sistema richiede un tempu d'accessu brevi per un periudu limitatu di tempu (tipicamenti se l'alimentazione di energia voltage casca). Per piglià avanz- tage di stu mètudu, hè necessariu chì i lochi à esse scrittu sò stati sguassati prima di l 'operazione di scrittura. Ma postu chì l'operazione di sguassà è di scrittura sò sparte, hè pussibule di fà l'operazione di sguassà quandu u sistema permette di fà operazioni critiche in u tempu (tipicamenti dopu à Power-up).

Sguassà

Per sguassà un byte, l'indirizzu deve esse scrittu à EEAR. Se i bit EEPMn sò 0b01, scrive l'EEPE (in quattru cicli dopu chì EEMPE hè scrittu) attivarà solu l'operazione di cancellazione (u tempu di prugrammazione hè datu in Tabella 5-1 nantu pagina 21). Le bit EEPE reste réglé jusqu'à ce que l'opération d'effacement soit terminée. Mentre u dispusitivu hè occupatu di prugrammazione, ùn hè micca pussibule di fà altre operazioni EEPROM.

Scrivite

Per scrive un locu, l'utilizatore deve scrive l'indirizzu in EEAR è i dati in EEDR. Se i bit EEPMn sò 0b10, scrive l'EEPE (in quattru cicli dopu chì EEMPE hè scrittu) attivarà solu l'operazione di scrittura (u tempu di prugrammazione hè datu in Tabella 5-1 à a pagina 21). U bit EEPE resta impostatu finu à a fine di l'operazione di scrittura. Se u locu per esse scrittu ùn hè micca statu sguassatu prima di scrive, i dati chì sò cullucati deve esse cunsideratu persu. Mentre u dispusitivu hè occupatu cù a prugrammazione, ùn hè micca pussibule di fà altre operazioni EEPROM.

L'Oscillator calibrated hè utilizatu per u tempu di l'accessu EEPROM. Assicuratevi chì a frequenza di l'oscillatore hè in i requisiti descritti in « OSCCAL – Registre de calibration de l'oscillateur » à la page 31.

U codice seguente examples mostranu una assemblea è una funzione C per sguassà, scrive, o scrittura atomica di l'EEPROM. L'exampi assume chì l'interruzzioni sò cuntrullati (per esempiu, disattivendu l'interruzioni in u mondu) in modu chì ùn ci hè micca interruzzione durante l'esekzione di queste funzioni.

Codice di Assemblea Esample
EEPROM_write:

; Aspettate a fine di a scrittura precedente

sbic EECR, EEPE

rjmp EEPROM_write

; Stallà u modu di prugrammazione

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

fora EECR, r16

; Configurate l'indirizzu (r18:r17) in u registru di indirizzu

fora EEARH, r18

fora EEARL, r17

; Scrivite dati (r19) à u registru di dati

fora EEDR, r19

; Scrivite una logica à EEMPE

sbi EECR,EEMPE

; Cumincià eeprom scrive cù l'impostazione EEPE

sbi EECR,EEPE

ret

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

{

/* Aspettate a fine di a scrittura precedente */ while(EECR & (1<

;

/* Stallà u modu di prugrammazione */

EECR = (0<

/* Configurate l'indirizzu è i registri di dati */ EEAR = ucAddress;

EEDR = ucData;

/* Scrivite una logica à EEMPE */

EECR |= (1<

/* Inizia a scrivere eeprom impostando EEPE */

EECR |= (1<

}

U prossimu codice examples mostranu l'assemblea è e funzioni C per leghje l'EEPROM. L'examples assume chì l'interruzzioni sò cuntrullati in modu chì nisuna interruzzione ùn accade durante l'esekzione di queste funzioni.

Codice di Assemblea Esample
EEPROM_read:

; Aspettate a fine di a scrittura precedente

sbic EECR, EEPE

rjmp EEPROM_read

; Configurate l'indirizzu (r18:r17) in u registru di indirizzu

fora EEARH, r18

fora EEARL, r17

; Cumincià eeprom leghje scrivendu EERE

sbi EECR,EERE

; Leghjite i dati da u registru di dati

in r16, EEDR

ret

C Code Example
unsigned char EEPROM_read (unsigned char ucAddress)

{

/* Aspettate a fine di a scrittura precedente */

mentri (EECR & (1<

;

/* Stallà u registru di indirizzu */ EEAR = ucAddress;

/* Inizia a lettura di eeprom scrivendu EERE */

EECR |= (1<

/* Ritorna dati da u registru di dati */

ritornu EEDR;

}

Prevenzione di a corruzzione di l'EEPROM

Duranti i periodi di VCC bassu, i dati EEPROM ponu esse currutti perchè u supply voltage hè troppu bassu per u CPU è l'EEPROM per operare bè. Questi prublemi sò listessi per i sistemi di livellu di bordu chì utilizanu EEPROM, è i stessi suluzioni di cuncepimentu devenu esse applicati.

Una corruzzione di dati EEPROM pò esse causatu da dui situazioni quandu u voltage hè troppu bassu. Prima, una sequenza di scrittura regulare à l'EEPROM richiede un minimu voltage per operare currettamente. Siconda, u CPU stessu pò eseguisce istruzioni incorrectly, se u supply voltage hè troppu bassu.

A corruzzione di dati EEPROM pò esse facilmente evitata seguitendu sta raccomandazione di design:

Mantene l'AVR RESET attivu (bassu) durante i periodi di alimentazione insufficiente voltage. Questu pò esse fattu attivendu u Detector Brown-out (BOD) internu. Se u livellu di rilevazione di u BOD internu ùn currisponde micca à u

Livellu di rilevazione necessariu, un circuitu di prutezzione di resettore VCC bassu esternu pò esse usatu. Se un reset si verifica mentre una operazione di scrittura hè in prugressu, l'operazione di scrittura serà cumpletata sempre chì l'alimentazione di l'alimentazione voltage hè abbastanza.

Memoria I/O

A definizione di spaziu I/O di l'ATtiny25/45/85 hè mostrata in "Register Summary" à a pagina 200.

Tutti i ATtiny25/45/85 I/O è periferiche sò posti in u spaziu I/O. Tutti i lochi I/O ponu accede da l'istruzzioni LD/LDS/LDD è ST/STS/STD, trasferendu dati trà i 32 registri di travagliu generale è u spaziu I/O. I Registri I/O in a gamma di indirizzi 0x00 - 0x1F sò direttamente accessibili à bit utilizendu l'istruzzioni SBI è CBI. In questi registri, u valore di i bits singuli pò esse verificatu cù l'istruzzioni SBIS è SBIC. Vede a sezione di set di struzzioni per più dettagli. Quandu si usanu i cumandamenti specifichi I/O IN è OUT, l'indirizzi I/O 0x00 - 0x3F deve esse usatu. Quandu indirizzà i Registri I/O cum'è spaziu di dati cù l'istruzzioni LD è ST, 0x20 deve esse aghjuntu à questi indirizzi.

Per a cumpatibilità cù i futuri dispositivi, i bit riservati devenu esse scritti à zeru s'ellu si accede. L'indirizzi di memoria I / O riservati ùn devenu mai esse scritti.

Alcune di e Bandiere di Statu sò sguassate scrivendu una logica per elli. Nota chì l'istruzzioni CBI è SBI operanu solu nantu à u bit specificatu, è ponu dunque esse aduprati nantu à i registri chì cuntenenu tali Bandiere di Status. L'istruzzioni CBI è SBI travaglianu cù i registri 0x00 à 0x1F solu.

I Registri di Controlu I/O è Peripherals sò spiegati in sezzioni successive.

Description di u Registru

EEARH - Registru di indirizzu EEPROM

Bit 7 6 5 4 3 2 1 0
0x1F EEAR8 EEARH
Leghjite / Scrive R R R R R R R R/W
Valore iniziale 0 0 0 0 0 0 0 X/0

Bits 7: 1 - Res: Bit riservati

Questi bits sò riservati per l'usu futuru è sempre leghje cum'è zero.

Bits 0 - EEAR8: Indirizzu EEPROM

Questu hè u bit di indirizzu EEPROM più significativu di ATtiny85. In i dispositi cù menu EEPROM, vale à dì ATtiny25 / ATtiny45, stu bit hè riservatu è sempre leghje zero. La valeur initiale de l'EEPROM Address Register (EEAR) n'est pas définie et il faut donc écrire une valeur appropriée avant d'accéder à l'EEPROM.

EEARL - Registru di indirizzu EEPROM

Bit

0x1E EEAR7 EEAR6 EEAR5 EEAR4 EEAR3 EEAR2 EEAR1 EEAR0 EEARL
Posteriore / Scrive R/W R/W R/W R/W R/W R/W R/W R/W
Valore iniziale X X X X X X X X

Bit 7 - EEAR7: Indirizzu EEPROM

Questu hè u bit di indirizzu EEPROM più significativu di ATtiny45. In i dispositi cù menu EEPROM, vale à dì ATtiny25, stu bit hè riservatu è sempre leghje zero. U valore iniziale di l'EEPROM Address Register (EEAR) ùn hè micca definitu è ​​un valore propiu deve esse scrittu prima di accede à l'EEPROM.

Bits 6:0 - EEAR[6:0]: Indirizzu EEPROM

Quessi sò i bits (bassu) di u Registru di Indirizzu EEPROM. I byte di dati EEPROM sò indirizzati linearmente in a gamma 0 ... (128/256/512-1). U valore iniziale di EEAR ùn hè micca definitu è ​​un valore propiu deve esse dunque scrittu prima di accede à l'EEPROM.

EEDR - Registru di Dati EEPROM

Bit 7 6 5 4 3 2 1 0
0x1D EEDR7 EEDR6 EEDR5 EEDR4 EEDR3 EEDR2 EEDR1 EEDR0 EEDR
Leghjite / Scrive R/W R/W R/W R/W R/W R/W R/W R/W
Valore iniziale 0 0 0 0 0 0 0 0

Per l'operazione di scrittura EEPROM, u Registru EEDR cuntene i dati da scrive in l'EEPROM in l'indirizzu datu da u Registru EEAR. Per l'operazione di lettura EEPROM, l'EEDR cuntene i dati letti da u

EEPROM à l'indirizzu datu da EEAR.

 

5.5.4 EECR - Registru di cuntrollu EEPROM

Bit 7 6 5 4 3 2 1 0
0x1C        – EEPM1 EEPM0 ERIE EEMPE EEPE EERE CEER
Lettura/Scrittura R R R/W R/W R/W R/W R/W R/W
Valore iniziale 0 0 X X 0 0 X 0

Bit 7 - Res: Bit riservatu

Stu bit hè riservatu per l'usu futuru è sempre leghje cum'è 0 in ATtiny25/45/85. Per a cumpatibilità cù futuri dispositi AVR, scrivite sempre stu bit à zero. Dopu avè lettu, maschere stu pocu.

Bit 6 - Res: Bit riservatu

Stu bit hè riservatu in l'ATtiny25/45/85 è sempre leghje cum'è zero.

Bits 5: 4 - EEPM[1:0]: Bits di Modalità di Programmazione EEPROM

L'impostazione di bit di modalità di programmazione EEPROM definisce quale azione di programmazione sarà attivata quando si scrive EEPE. Hè pussibule di programà e dati in una operazione atomica (sguassate u vechju valore è prugramma u novu valore) o di sparte l'operazione Erase and Write in duie operazioni diverse. I tempi di prugrammazione per i diversi modi sò indicati in Table 5-1. Mentre EEPE hè stabilitu, ogni scrittura à EEPMn serà ignorata. Durante u reset, i bits EEPMn seranu resettati à 0b00, salvu chì l'EEPROM hè occupatu di prugrammazione.

Table 5-1. Bits di modu EEPROM

EEPM1 EEPM0 Tempu di prugrammazione Operazione
0 0 3.4 ms Cancella è Scrivite in una operazione (Operazione Atomica)
0 1 1.8 ms Sguassà solu
1 0 1.8 ms Scrivite solu
1 1 Riservatu per usu futuru

Bit 3 - EERIE: EEPROM Ready Interrupt Enable

Scrivite EERIE à unu abilita l'interruzzione EEPROM Ready se l'I-bit in SREG hè impostatu. Scrivite EERIE à zero disattiva l'interruzzione. L'EEPROM Ready Interrupt genera una interruzzione constante quandu a memoria Non-volatile hè pronta per a prugrammazione.

Bit 2 - EEMPE: EEPROM Master Program Enable

U bit EEMPE determina se scrive EEPE à unu averà effettu o micca.

Quandu EEMPE hè stabilitu, setteghja EEPE in quattru cicli di clock programà l'EEPROM à l'indirizzu sceltu. Se EEMPE hè zero, l'impostazione EEPE ùn hà micca effettu. Quandu EEMPE hè statu scrittu à unu da u software, u hardware sguassate u bit à zero dopu quattru cicli di clock.

Bit 1 - EEPE: Abilitazione di u prugramma EEPROM

U segnu di attivazione di u prugramma EEPROM EEPE hè u signale di attivazione di prugrammazione à l'EEPROM. Quandu EEPE hè scrittu, l'EEPROM serà programatu secondu l'impostazione di bit EEPMn. U bit EEMPE deve esse scrittu à unu prima chì un logicu hè scrittu à EEPE, altrimenti ùn ci hè micca scrittu EEPROM. Quandu u tempu d'accessu di scrittura hè passatu, u bit EEPE hè sbulicatu da u hardware. Quandu EEPE hè statu stabilitu, u CPU hè arrestatu per dui cicli prima di l'istruzzione successiva hè eseguita.

Bit 0 - EERE: EEPROM Read Enable

L'EEPROM Read Enable Signal - EERE - hè u strobe di lettura à l'EEPROM. Quandu l'indirizzu currettu hè stallatu in u Registru EEAR, u bit EERE deve esse scrittu à unu per attivà a lettura EEPROM. L'accessu di lettura EEPROM piglia una struzzione, è i dati dumandati sò dispunibuli immediatamente. Quandu l'EEPROM hè lettu, u CPU hè arrestatu per quattru cicli prima di l'istruzzione successiva hè eseguita. L'utente deve sondare u bit EEPE prima di inizià l'operazione di lettura. Se una operazione di scrittura hè in corso, ùn hè nè pussibule di leghje l'EEPROM, nè di cambià u Registru EEAR.

Clock di u Sistema è Opzioni Clock

Sistemi di clock è a so distribuzione

Distribuzione di u clock

Clock CPU

U clock CPU hè instradatu à parti di u sistema cuncernate cù l'operazione di u core AVR. EsampL'archi di tali moduli sò u Registru General Purpose File, u Status Register è a memoria di Dati chì cuntene u Stack Pointer. Arresta u clock CPU impedisce à u core di fà operazioni è calculi generale.

Clock I/O - clkI/O

U clock I/O hè utilizatu da a maiò parte di i moduli I/O, cum'è Timer/Counter. U clock I/O hè ancu utilizatu da u modulu di Interruzzione Esterna, ma nutate chì alcune interruzioni esterne sò rilevate da una logica asincrona, chì permettenu tali interruzioni per esse rilevate ancu s'è u clock I/O hè arrestatu.

Flash Clock - clkFLASH

U clock Flash cuntrolla u funziunamentu di l'interfaccia Flash. U clock Flash hè di solitu attivu simultaneamente cù u clock CPU.

Clock ADC - clkADC

L'ADC hè furnitu cù un duminiu di clock dedicatu. Questu permette di arrestà u CPU è i clock I / O per riduce u rumore generatu da i circuiti digitali. Questu dà risultati di cunversione ADC più precisi.

PLL internu per a generazione rapida di clock periferiche - clkPCK

U PLL internu in ATtiny25/45/85 genera una frequenza di clock chì hè 8x multiplicata da un input di fonte. Per automaticamente, u PLL usa l'output di l'oscillatore RC internu, 8.0 MHz cum'è fonte. In alternativa, se u bit LSM di PLLCSR hè impostatu, u PLL utilizerà l'output di l'oscillatore RC divisu da dui. Cusì l'output di u PLL, u clock perifericu veloce hè 64 MHz. U clock perifericu veloce, o un clock prescaled da questu, pò esse sceltu cum'è a fonte di clock per Timer / Counter1 o cum'è un clock di sistema. Vede Figura 6-2. A freccia di u clock perifericu veloce hè divisu da dui quandu LSM di PLLCSR hè stabilitu, risultatu in una freccia di clock di 32 MHz. Nota, chì LSM ùn pò micca esse stabilitu se PLLCLK hè utilizatu cum'è clock di u sistema.

Figura 6-2. Sistema di Clock PCK. PCK clock

U PLL hè chjusu nantu à l'oscillatore RC è aghjustà l'oscillatore RC via u registru OSCCAL aghjustà u clock perifericu veloce à u stessu tempu. In ogni casu, ancu s'è l'oscillatore RC hè purtatu à una freccia più alta di 8 MHz, a freccia di u clock perifericu veloce satura à 85 MHz (casu peghju) è resta oscillante à a freccia massima. Hè da nutà chì u PLL in questu casu ùn hè micca chjusu più cù u clock oscillator RC. Per quessa, hè cunsigliatu di ùn piglià l'aghjustamenti OSCCAL à una freccia più alta di 8 MHz per mantene a PLL in a gamma operativa curretta.

U PLL internu hè attivatu quandu:

U bit PLLE in u registru PLLCSR hè impostatu.

U fusible CKSEL hè programatu à '0001'.

U fusible CKSEL hè programatu à '0011'.

U bit PLLCSR PLOCK hè impostatu quandu PLL hè bloccatu. Sia l'oscillatore RC internu è u PLL sò spenti in modalità di sospensione è stand-by.

PLL internu in Modu di Compatibilità ATtiny15

Siccomu ATtiny25/45/85 hè un dispositivu di migrazione per l'utilizatori ATtiny15, ci hè un modu di cumpatibilità ATtiny15 per a cumpatibilità inversa. U modu di cumpatibilità ATtiny15 hè sceltu da prugrammazione di i fusi CKSEL à '0011'.

In u modu di cumpatibilità ATtiny15, a frequenza di l'oscillatore RC internu hè calibrata finu à 6.4 MHz è u fattore di multiplicazione di u PLL hè stabilitu à 4x. Vede Figura 6-3. Cù questi aghjustamenti, u sistema di clock hè compatibile cù ATtiny15 è u clock perifericu veloce risultante hà una frequenza di 25.6 MHz (cum'è in ATtiny15).

Figura 6-3. Sistema di Clock PCK in Modu di Compatibilità ATtiny15. Sistema di clock

Fonti di Clock

U dispusitivu hà e seguenti opzioni di fonte di clock, selezziunate da Flash Fuse bits cum'è mostratu quì sottu. U clock da a fonte selezziunata hè ingressu à u generatore di clock AVR, è indirizzatu à i moduli appropritati.

Table 6-1. Opzioni di clock di u dispositivu Selezziunà

Opzione di Clocking di Dispositivi CKSEL[3:0](1)
Clock esternu (vede pagina 26) 0000
Clock PLL d'Alta Frequenza (vede pagina 26) 0001
Oscillatore internu calibratu (vede pagina 27) 0010(2)
Oscillatore internu calibratu (vede pagina 27) 0011(3)
Oscillatore internu di 128 kHz (vede pagina 28) 0100
Oscillatore di cristalli à bassa frequenza (vede pagina 29) 0110
Oscillatore di Cristalli / Resonator Ceramic (vede pagina 29) 1000 - 1111
Riservatu 0101, 0111

Per tutti i fusibili "1" significa micca programatu mentre "0" significa programatu.

U dispusitivu hè speditu cù sta opzione scelta.

Questu selezziunà u Modu di Compatibilità ATtiny15, induve u clock di u sistema hè divisu per quattru, chì risulta in una frequenza di clock di 1.6 MHz. Per più infurmazione, vede "Oscillatore internu calibratu" à a pagina 27.

E diverse scelte per ogni opzione di clock hè datu in e sezioni seguenti. Quandu u CPU si sveglia da u Power-down, a fonte di u clock selezziunata hè aduprata per u tempu di l'iniziu, assicurendu un funziunamentu stabile di l'Oscillatore prima di inizià l'esekzione di l'istruzzioni. Quandu u CPU principia da u reset, ci hè un ritardu supplementu chì permette à a putenza di ghjunghje à un livellu stabile prima di inizià l'operazione normale. L'oscillatore Watchdog hè utilizatu per timing sta parte in tempu reale di u tempu di start-up. U numeru di cicli di oscillatori WDT utilizati per ogni time-out hè indicatu in Table 6-2.

Table 6-2. Numaru di Cicli Oscillatori Watchdog

Tipu Time-out Numero di ciculi
4 ms 512
64 ms 8K (8,192)

Clock esternu

Per guidà u dispusitivu da una fonte di clock esterna, CLKI deve esse guidatu cum'è mostratu in Figura 6-4. Per eseguisce u dispusitivu in un clock esternu, i CKSEL Fuses deve esse programatu à "00".

Figura 6-4. Cunfigurazione di l'unità Clock Esterna

Fig6.4

Quandu sta fonte di clock hè selezziunata, i tempi di partenza sò determinati da i Fusibili SUT cum'è mostratu in Table 6-3.

Table 6-3. Tempi di Start-up per a Selezzione di l'Orologio Esternu

SUT[1:0] Start-up Time da Power-down Ritardo supplementu da Reset Usu cunsigliatu
00 6 CK 14 CK BOD attivatu
01 6 CK 14CK + 4 ms Forza chì cresce rapidamente
10 6 CK 14CK + 64 ms Pudere chì cresce lentamente
11 Riservatu

Quandu si applica un clock esternu, hè necessariu per evità cambiamenti bruschi in a frequenza di clock applicata per assicurà un funziunamentu stabile di u MCU. Una variazione di freccia di più di 2% da un ciclu di clock à l'altru pò purtà à un cumpurtamentu imprevisible. Hè necessariu di assicurà chì u MCU hè tenutu in Reset durante tali cambiamenti in a frequenza di u clock.

Innota chì a Presale di l'Orologio di u Sistema pò esse aduprata per implementà cambiamenti in run-time di a frequenza interna di u clock mentre assicurendu ancu un funziunamentu stabile. Riferite à “System Clock Prescaler” a pagina 31 per i dettagli.

Clock PLL d'Alta Frequenza

Ci hè un PLL internu chì furnisce nominalmente 64 MHz clock rate locked to the RC Oscillator per l'usu di u Peripheral Timer / Counter1 è per a fonte di clock di u sistema. Quandu hè sceltu cum'è fonte di clock di u sistema, programendu i fusibili CKSEL à '0001', hè divisu per quattru cum'è mostratu in Table 6-4.

Table 6-4. Modi operativi di l'orologio PLL d'alta frequenza

CKSEL[3:0] Frequenza Nominale
0001 16 MHz

Quandu sta fonte di clock hè selezziunata, i tempi di partenza sò determinati da i fusibili SUT cum'è mostratu in Table 6-5.

Table 6-5. Tempi di Start-up per u Clock PLL d'Alta Frequenza

SUT[1:0] Tempu di Start-up da Power Down Ritardo supplementu da u reset di l'accensione (VCC = 5.0V) Usu cunsigliatu
00 14CK + 1K (1024) CK + 4 ms 4 ms BOD attivatu

Table 6-5. Tempi di Start-up per u Clock PLL d'Alta Frequenza

SUT[1:0] Tempu di Start-up da Power Down Ritardo supplementu da u reset di l'accensione (VCC = 5.0V) Usu cunsigliatu
01 14CK + 16K (16384) CK + 4 ms 4 ms Forza chì cresce rapidamente
10 14CK + 1K (1024) CK + 64 ms 4 ms Pudere chì cresce lentamente
11 14CK + 16K (16384) CK + 64 ms 4 ms Pudere chì cresce lentamente

Oscillatore internu calibratu

Per automaticamente, l'oscillatore RC Internu furnisce un clock apprussimativu 8.0 MHz. Ancu se u voltage dipende di a temperatura, stu clock pò esse calibratu assai precisamente da l'utilizatore. Vede "Accumulateur d'oscillateur RC interne calibré racy" à a pagina 164 è "Velocità di l'oscillatore internu" à a pagina 192 per più dettagli. U dispusitivu hè speditu cù u CKDIV8 Fuse programatu. Vede “System Clock Prescaler” a pagina 31 per più dettagli.

Stu clock pò esse sceltu cum'è l'orologio di u sistema programendu i Fusibili CKSEL cum'è mostratu in Tabella 6-6 nantu à a pagina

27. S'ellu hè sceltu, funziona senza cumpunenti esterni. Durante u reset, u hardware carica u valore di calibrazione preprogrammatu in u Registru OSCCAL è cusì automaticamente calibra l'oscillatore RC. A precisione di sta calibrazione hè indicata cum'è calibrazione di fabbrica in Tabella 21-2 à a pagina 164.

Per cambià u registru OSCCAL da SW, vede « OSCCAL – Registre de calibration de l'oscillateur » à la page 31, hè pussibule ottene una precisione di calibrazione più altu ch'è cù a calibrazione di fabbrica. A precisione di sta calibrazione hè indicata cum'è calibrazione di l'Usuariu in Tabella 21-2 à a pagina 164.

Quandu questu Oscillator hè utilizatu cum'è u chip clock, l'Oscillator Watchdog serà sempre utilizatu per u Watchdog Timer è per u Reset Time-out. Per più infurmazione nantu à u valore di calibrazione preprogrammatu, vede a sezione "Cali- Byte di brazione” a pagina 150.

L'oscillatore internu pò ancu esse stallatu per furnisce un clock 6.4 MHz scrivendu i fusi CKSEL à "0011", cum'è mostratu in Table 6-6 sottu. Questa impostazione hè riferita cum'è Modu di Compatibilità ATtiny15 è hè destinata à furnisce una fonte di clock calibrata à 6.4 MHz, cum'è in ATtiny15. In u Modu di Compatibilità ATtiny15 u PLL usa l'oscillatore internu chì funziona à 6.4 MHz per generà un signalu di clock perifericu 25.6 MHz per Timer/Counter1 (vede "Timer/Counter 8-bit 1 in Modu ATtiny15" à a pagina 95). Nota chì in questu modu di funziunamentu, u signalu di u clock 6.4 MHz hè sempre divisu da quattru, chì furnisce un clock di u sistema 1.6 MHz.

Table 6-6. Modi operativi di l'oscillatore RC calibratu internu

CKSEL[3:0] Frequenza Nominale
0010(1) 8.0 MHz
0011(2) 6.4 MHz

U dispusitivu hè speditu cù sta opzione scelta.

Questa paràmetra selezziunà u Modu di Compatibilità ATtiny15, induve u clock di u sistema hè divisu per quattru, risultante in una frequenza di clock 1.6 MHz.

Quandu l'oscillatore internu calibratu di 8 MHz hè sceltu cum'è fonte di clock, i tempi di partenza sò determinati da i Fusibili SUT cum'è mostratu in Table 6-7 sottu.

Table 6-7. Tempi di partenza per l'Oscillatore RC Calibratu Internu

SUT[1:0] Start-up Time da Power-down Ritardo supplementu da reset (VCC = 5.0V) Usu cunsigliatu
00 6 CK 14 CK(1) BOD attivatu
01 6 CK 14CK + 4 ms Forza chì cresce rapidamente
10(2) 6 CK 14CK + 64 ms Pudere chì cresce lentamente
11 Riservatu

1. Se u fusible RSTDISBL hè programatu, questu tempu di start-up serà aumentatu à 14CK + 4 ms per assicurà chì u modu di prugrammazione pò esse inseritu.
2. U dispusitivu hè speditu cù sta opzione sceltu.

In ATtiny15 Modu di Cumpatibilità i tempi di partenza sò determinati da i fusibili SUT cum'è mostratu in Table 6-8 sottu.

Table 6-8. Tempi di partenza per l'Oscillatore RC Calibratu Internu (in Modu ATtiny15)

SUT[1:0] Start-up Time da Power-down Ritardo supplementu da reset (VCC = 5.0V) Usu cunsigliatu
00 6 CK 14CK + 64 ms
01 6 CK 14CK + 64 ms
10 6 CK 14CK + 4 ms
11 1 CK 14 CK(1)

Nota: Se u fusibile RSTDISBL hè programatu, stu tempu di start-up serà aumentatu à 14CK + 4 ms per assicurà chì u modu di prugrammazione pò esse inseritu.

In riassuntu, più infurmazione nantu à u Modu di Compatibilità ATtiny15 pò esse truvata in sezzioni "Portu B (PB5:PB0)" attivatu pagina 2"PLL internu in Modu di Compatibilità ATtiny15" à a pagina 24"8-bit Timer/Counter1 in ATtiny15 Mode" attivatu pagina 95“Limitazioni di debugWIRE” a pagina 140"Bytes di calibrazione" a pagina 150 è in tavula "Clock Prescaler Selezziunà" in pagina 33.

Oscillatore internu di 128 kHz

L'oscillatore internu di 128 kHz hè un oscillatore di bassa putenza chì furnisce un clock di 128 kHz. A frequenza hè nominale à 3V è 25 ° C. Stu clock pò esse sceltu cum'è l'orologio di u sistema programendu i Fuses CKSEL à "0100".

Quandu sta fonte di clock hè selezziunata, i tempi di partenza sò determinati da i Fusibili SUT cum'è mostratu in Table 6-9.

Table 6-9. Tempi di partenza per l'oscillatore internu di 128 kHz

SUT[1:0] Start-up Time da Power-down Ritardo supplementu da Reset Usu cunsigliatu
00 6 CK 14 CK(1) BOD attivatu
01 6 CK 14CK + 4 ms Forza chì cresce rapidamente
10 6 CK 14CK + 64 ms Pudere chì cresce lentamente
11 Riservatu

Nota: Se u fusibile RSTDISBL hè programatu, stu tempu di start-up serà aumentatu à 14CK + 4 ms per assicurà chì u modu di prugrammazione pò esse inseritu.

Oscillatore di cristalli à bassa frequenza

Per utilizà un cristallu di vigilia di 32.768 kHz cum'è fonte di clock per u dispusitivu, l'oscillatore di cristallo di bassa frequenza deve esse sceltu mettendu i fusi CKSEL à '0110'. U cristallu deve esse cunnessu cum'è mostra in Figura 6-5. Per truvà a capacità di carica adatta per un cristallu di 32.768 kHz, cunsultate a datasheet di u fabricatore.

Quandu stu oscillatore hè sceltu, i tempi di partenza sò determinati da i fusibili SUT cum'è mostratu in Table 6-10.

Table 6-10. Tempi di Start-up per a Selezzione di l'Oscillatore di Cristalli di Bassu Frequenza

SUT[1:0] Tempu di Start-up da Power Down Ritardo supplementu da reset (VCC = 5.0V) Usu cunsigliatu
00 1K (1024) CK(1) 4 ms A putenza in crescita rapida o BOD attivatu
01 1K (1024) CK(1) 64 ms Pudere chì cresce lentamente
10 32K (32768) CK 64 ms Frequenza stabile à l'iniziu
11 Riservatu

Nota: Queste opzioni deve esse aduprate solu se a stabilità di frequenza à l'iniziu ùn hè micca impurtante.

L'oscillatore di cristallo di bassa frequenza furnisce una capacità di carica interna, vede Table 6-11 à ogni pin TOSC.

Table 6-11. Capacità di l'oscillatore di cristalli à bassa frequenza

Dispositivu 32 kHz Osc. Tipu Cap (Xtal1/Tosc1) Cap (Xtal2/Tosc2)
ATtiny25/45/85 System Osc. 16 pF 6 pF

Oscillatore di Cristalli / Resonator Ceramic

XTAL1 è XTAL2 sò input è output, rispettivamente, di una inversione amplifier chì pò esse cunfiguratu per l'usu cum'è un Oscillatore On-chip, cum'è mostratu in Figura 6-5. Pò esse usatu un cristallu di quartz o un resonatore ceramicu.

C1 è C2 deve esse sempre uguali per i cristalli è i resonatori. U valore ottimali di i condensatori dipende da u cristallu o risonatore in usu, a quantità di capacitance stray, è u rumore elettromagneticu di l'ambiente. Alcune linee guida iniziali per a scelta di condensatori per l'usu cù cristalli sò datu Table 6-12 sottu. Per i resonatori di ceramica, i valori di condensatori dati da u fabricatore deve esse usatu.

Table 6-12. Modi di funziunamentu di l'oscillatore di cristalli

CKSEL[3:1] Frequency Range (MHz) Gamma cunsigliata per i condensatori C1 è C2 per l'usu cù cristalli (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

Note: Questa opzione ùn deve esse usata cù cristalli, solu cù resonatori ceramichi.

L'oscillatore pò operà in trè modi diffirenti, ognuna ottimizzata per una gamma di freccia specifica. U modu di funziunamentu hè sceltu da i fusibili CKSEL [3:1] cum'è mostra in Table 6-12.

U Fusibile CKSEL0 inseme cù i Fusibili SUT[1:0] selezziunà i tempi di start-up cum'è mostratu in Table 6-13.

Table 6-13. Tempi di Start-up per a Selezzione di l'Oscillatore di Cristalli

CKSEL0 SUT[1:0] Start-up Time da Power-down Ritardo supplementu da Reset Usu cunsigliatu
0 00 258 CK(1) 14CK + 4 ms Resonator in ceramica, putenza in rapida crescita
0 01 258 CK(1) 14CK + 64 ms Resonator in ceramica, putenza chì cresce lentamente
0 10 1K (1024) CK(2) 14 CK Resonator in ceramica, BOD attivatu
0 11 1K (1024) CK(2) 14CK + 4 ms Resonator in ceramica, putenza in rapida crescita
1 00 1K (1024) CK(2) 14CK + 64 ms Resonator in ceramica, putenza chì cresce lentamente
1 01 16K (16384) CK 14 CK Crystal Oscillator, BOD attivatu
1 10 16K (16384) CK 14CK + 4 ms Oscillatore di cristallo, putenza in rapida crescita
1 11 16K (16384) CK 14CK + 64 ms Crystal Oscillator, putenza chì cresce lentamente

Notes

Queste opzioni deve esse aduprate solu quandu ùn operanu vicinu à a freccia massima di u dispusitivu, è solu se a stabilità di freccia à l'iniziu ùn hè micca impurtante per l'applicazione. Queste opzioni ùn sò micca adattati per i cristalli.

Queste opzioni sò destinate à l'usu cù resonators ceramichi è assicuraranu a stabilità di freccia à l'iniziu. Puderanu ancu esse aduprati cù cristalli quandu ùn operanu micca vicinu à a frequenza massima di u dispusitivu, è se a stabilità di freccia à l'iniziu ùn hè micca impurtante per l'applicazione.

Fonte di Clock Default

U dispusitivu hè speditu cù CKSEL = "0010", SUT = "10", è CKDIV8 programatu. L'impostazione predefinita di a fonte di u clock hè dunque l'oscillatore RC Internu chì funziona à 8 MHz cù u più longu tempu di start-up è un prescaling iniziale di u clock di u sistema di 8, risultante in un clock di u sistema di 1.0 MHz. Stu paràmetru predeterminatu assicura chì tutti l'utilizatori ponu fà u so paràmetru di fonte di u clock desideratu cù un In-System o High-voltage Programmatore.

Sistema Clock Prescaler

L'orologio di u sistema ATtiny25/45/85 pò esse divisu mettendu u “CLKPR – Clock Prescale Register” a pagina 32. Questa funzione pò esse usata per diminuisce u cunsumu d'energia quandu u requisitu per a putenza di trasfurmazioni hè bassu. Questu pò esse usatu cù tutte l'opzioni di fonte di clock, è affettarà a freccia di u clock di u CPU è tutti i periferichi sincroni. clkI/O, clkADC, clkCPU è clkFLASH sò divisi da un fattore cum'è mostratu in Tabella 6-15 à a pagina 33.

Cambia u tempu

Quandu si cambia trà e paràmetri di prescaler, u System Clock Prescaler assicura chì ùn ci hè micca errori in u sistema di clock è chì nisuna frequenza intermedia hè più altu ch'è nè a frequenza di clock chì currisponde à l'impostazione precedente, nè a frequenza di clock chì currisponde à u novu paràmetru.

U ripple counter chì implementa u prescaler corre à a freccia di u clock indivisu, chì pò esse più veloce di a freccia di u clock CPU. Dunque, ùn hè micca pussibule di determinà u statu di u prescaler - ancu s'ellu era leggibile, è u tempu esatta chì ci vole à passà da una divisione di u clock à l'altru ùn pò micca esse esattamente previstu.

Da u mumentu chì i valori CLKPS sò scritti, ci vole trà T1 + T2 è T1 + 2 * T2 prima chì a nova frequenza di clock sia attiva. In questu intervallu, 2 fronti di clock attivi sò pruduciuti. Quì, T1 hè u periodu di clock precedente, è T2 hè u periodu chì currisponde à u novu paràmetru di prescaler.

Clock Output Buffer

U dispusitivu pò fà uscite u clock di u sistema nantu à u pin CLKO (quandu ùn hè micca usatu cum'è pin XTAL2). Per attivà l'output, u CKOUT Fuse deve esse programatu. Stu modu hè adattatu quandu u chip clock hè utilizatu per guidà altri circuiti in u sistema. Nota chì u clock ùn serà micca uscita durante u reset è chì u funziunamentu normale di u pin I / O serà annullatu quandu u fusible hè programatu. L'oscillatore RC internu, l'oscillatore WDT, PLL è u clock esternu (CLKI) ponu esse selezziunati quandu u clock hè uscita in CLKO. L'oscillatori di cristalli (XTAL1, XTAL2) ùn ponu micca esse usatu per l'output di clock in CLKO. Se u Prescaler Clock System hè utilizatu, hè u clock di u sistema divisu chì hè uscita.

Description di u Registru

OSCCAL - Registru di calibrazione di l'oscillatore

Bit 7 6 5 4 3 2 1 0
0x31 CAL7 CAL6 CAL5 CAL4 CAL3 CAL2 CAL1 CAL0 OSCCAL
Leghjite / Scrive R/W R/W R/W R/W R/W R/W R/W R/W

Bits 7:0 - CAL[7:0]: Valore di calibrazione di l'oscillatore

U registru di calibrazione di l'oscillatore hè utilizatu per trim l'oscillatore RC internu calibratu per caccià variazioni di prucessu da a frequenza di l'oscillatore. Un valore di calibrazione preprogrammatu hè scrittu automaticamente in questu registru durante u reset di chip, dendu a frequenza calibrata in fabbrica cum'è specificata in Tabella 21-2 à a pagina 164. U software di l'applicazione pò scrive stu registru per cambià a frequenza di l'oscillatore. L'oscillatore pò esse calibratu à frequenze cum'è specificata in Tabella 21-2 à a pagina 164. A calibrazione fora di quellu intervallu ùn hè micca garantitu.

Nota chì stu oscillatore hè utilizatu per u tempu di l'accessu di scrittura EEPROM è Flash, è questi tempi di scrittura seranu affettati in cunseguenza. Se l'EEPROM o Flash sò scritti, ùn calibrate micca à più di 8.8 MHz. Altrimenti, a scrittura EEPROM o Flash pò falla.

U bit CAL7 determina a gamma di funziunamentu per l'oscillatore. L'impostazione di stu bit à 0 dà a gamma di frequenza più bassa, l'impostazione di stu bit à 1 dà a gamma di frequenza più alta. I dui intervalli di freccia sò sovrapposti, in altri palori un paràmetru di OSCCAL = 0x7F dà una frequenza più altu ch'è OSCCAL = 0x80.

I bits CAL[6:0] sò usati per sintonizà a freccia in a gamma scelta. Un paràmetru di 0x00 dà a freccia più bassa in quella gamma, è un paràmetru di 0x7F dà a frequenza più alta in a gamma.

Per assicurà un funziunamentu stabile di u MCU, u valore di calibrazione deve esse cambiatu in picculu. Una variazione di frequenza di più di 2% da un ciculu à l'altru pò purtà à un cumpurtamentu imprevisible. I cambiamenti in OSCCAL ùn deve micca più di 0x20 per ogni calibrazione. Hè necessariu di assicurà chì u MCU hè tenutu in Reset durante tali cambiamenti in a frequenza di u clock

Table 6-14. Gamma di frequenza di l'oscillatore RC internu

Valore OSCCAL Frequenza più bassa tipica in quantu à a frequenza nominale Frequenza più alta tipica in quantu à a frequenza nominale
0x00 50% 100%
0x3F 75% 150%
0x7F 100% 200%

CLKPR - Clock Prescale Register

Bit 7 6 5 4 3 2 1 0
0x26 CLKPCE CLKPS3 CLKPS2 CLKPS1 CLKPS0 CLKPR
Leghjite / Scrive R/W R R R R/W R/W R/W R/W

Valore iniziale 0 0 0 0 See Bit Description

Bit 7 - CLKPCE: Clock Prescaler Change Enable

U bit CLKPCE deve esse scrittu à una logica per attivà u cambiamentu di i bit CLKPS. U bit CLKPCE hè aghjurnatu solu quandu l'altri bit in CLKPR sò scritti simultaneamente à zero. CLKPCE hè sbulicatu da u hardware quattru cicli dopu chì hè scrittu o quandu i bits CLKPS sò scritti. A riscrittura di u bit CLKPCE in questu periodu di time-out ùn estende u periodu di time-out, nè sguassate u bit CLKPCE.

Bits 6: 4 - Res: Bit riservati

Questi bits sò bits riservati in l'ATtiny25/45/85 è sempre leghje cum'è zero.

Bits 3:0 - CLKPS[3:0]: Clock Prescaler Select Bits 3 - 0

Questi bits definiscenu u fattore di divisione trà a fonte di clock scelta è u clock di u sistema internu. Questi bit ponu esse scritti in run-time per varià a frequenza di u clock per adattà à i bisogni di l'applicazione. Siccomu u divisore divide l'input di u clock maestru à u MCU, a velocità di tutti i periferichi sincroni hè ridutta quandu si usa un fattore di divisione. I fattori di divisioni sò datu in Table 6-15.

Per evità cambiamenti involontari di a frequenza di u clock, una prucedura di scrittura speciale deve esse seguita per cambià i bit CLKPS:

Scrivite u Clock Prescaler Change Enable (CLKPCE) bit à unu è tutti l'altri bit in CLKPR à zero.

In quattru cicli, scrivite u valore desideratu à CLKPS mentre scrive un cero à CLKPCE.

L'interruzzione deve esse disattivata quandu cambia u paràmetru di prescaler per assicurà chì a prucedura di scrittura ùn hè micca interrotta.

U CKDIV8 Fuse determina u valore iniziale di i bit CLKPS. Se CKDIV8 ùn hè micca programatu, i bit CLKPS seranu resettati à "0000". Se CKDIV8 hè programatu, i bits CLKPS sò resettati à "0011", dendu un fattore di divisione di ottu à l'iniziu. Sta funzione deve esse usata se a fonte di u clock selezziunata hà una frequenza più altu ch'è a frequenza massima di u dispusitivu in e cundizioni di u funziunamentu attuale. Nota chì ogni valore pò esse scrittu à i bits CLKPS, indipendentemente da l'impostazione CKDIV8 Fuse. U software di l'applicazione deve assicurà chì un fattore di divisione sufficiente hè

sceltu se a surgente di u clock sceltu hà una frequenza più altu ch'è a frequenza massima di u dispusitivu in e cundizioni di u funziunamentu attuale. U dispusitivu hè speditu cù u CKDIV8 Fuse programatu.

Table 6-15. Clock Prescaler Select

CLKPS3 CLKPS2 CLKPS1 CLKPS0 Fattore di divisione di u clock
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 Riservatu
1 0 1 0 Riservatu
1 0 1 1 Riservatu
1 1 0 0 Riservatu
1 1 0 1 Riservatu
1 1 1 0 Riservatu
1 1 1 1 Riservatu

Nota: U prescaler hè disattivatu in u modu di cumpatibilità ATtiny15 è nè scrive à CLKPR, nè prugrammazione di u fusible CKDIV8 hà alcun effettu nant'à u clock di u sistema (chì serà sempre 1.6 MHz).

Gestione di l'energia è Modi di sonnu

L'alta prestazione è l'efficienza di codice di punta di l'industria facenu i microcontrollers AVR una scelta ideale per applicazioni di bassa putenza. Inoltre, i modi di sonnu permettenu à l'applicazione di chjude i moduli inutilizati in u MCU, risparmiendu cusì energia. L'AVR furnisce diversi modi di sonnu chì permettenu à l'utilizatori di adattà u cunsumu di energia à i bisogni di l'applicazione.

Modi di sonnu

Figura 6-1 à a pagina 23 presenta i diversi sistemi di clock è a so distribuzione in ATtiny25/45/85. A figura hè utile per selezziunà un modu di sonnu adattatu. Table 7-1 mostra i diversi modi di sonnu è e so fonti di sveglia.

Table 7-1. Domini di l'orologio attivu è fonti di sveglia in i diversi modi di sonnu

Domini di l'orologio attivu Oscillatori Fonti di sveglia
Modu di sonnu clkCPU clkFLASH clkIO clkADC clkPCK Fonte di l'orologio principale attivata INT0 è Pin Change SPM/EEPROM

Pronti

 

Condizione di partenza USI

ADC Altri I/O Cane da guardia Interruzzione
Idle X X X X X X X X X X
Riduzzione di u rumore ADC X X X(1) X X X X
Power-down X(1) X X

Nota: Per INT0, solu interruzzione di livellu.

Per entra in qualsiasi di i trè modi di dorme, u bit SE in MCUCR deve esse scrittu à una logica è deve esse eseguita una struzzione SLEEP. I bit SM[1:0] in u Registru MCUCR selezziunà quale modu di sonnu (Idle, ADC Noise Reduction o Power-down) serà attivatu da l'istruzione SLEEP. Vede Table 7-2 per un riassuntu.

Se si verifica una interruzzione attivata mentre l'MCU hè in modu di dorme, u MCU si sveglia. L'MCU hè tandu fermatu per quattru cicli in più di u tempu di start-up, esegue a rutina di interruzzione, è ripiglia l'esecuzione da l'istruzzioni dopu SLEEP. U cuntenutu di u Registru File è SRAM sò inalterati quandu u dispusitivu si sveglia da u sonnu. Se un reset si verifica durante u modu di sonnu, u MCU si sveglia è eseguisce da u Reset Vector.

Nota: se una interruzzione attivata da u livellu hè aduprata per u svegliu, u livellu cambiatu deve esse tenutu per qualchì tempu per svegliate l'MCU (è chì l'MCU entre in a rutina di serviziu di interruzzione). Vede “Interruzioni esterne” a pagina 49 per i dettagli.

Modu Idle

Quandu i bits SM[1:0] sò scritti à 00, l'istruzzioni SLEEP fa chì l'MCU entre in modalità Idle, fermendu u CPU, ma permettendu Comparatore Analogicu, ADC, USI, Timer/Counter, Watchdog, è u sistema di interruzzione di cuntinuà l'operazione. manghjendu. Stu modu di sonnu ferma basamente clkCPU è clkFLASH, mentre chì permette à l'altri orologi di eseguisce.

U modalità Idle permette à l'MCU di svegliarsi da interruzioni attivate esterne è da quelle interne cum'è u Timer Overflow. Se u svegliu da l'interruzzione di u Comparatore Analogicu ùn hè micca necessariu, u Comparatore Analogicu pò esse spentu mettendu u bit ACD in "ACSR - Controlu di u comparatore analogicu è Registru di Statu" à a pagina 120. Questu riduce u cunsumu di energia in u modu Idle. Se l'ADC hè attivatu, una cunversione principia automaticamente quandu stu modu hè inseritu.

Modu di riduzione di u rumore ADC

Quandu i bits SM[1:0] sò scritti in 01, l'istruzione SLEEP fa chì l'MCU entre in u modu di Riduzzione di Rumore ADC, fermendu u CPU, ma permette à l'ADC, l'interruzioni esterne, è u Watchdog di cuntinuà à funziunà (se attivatu). Stu modu di sonnu ferma clkI / O, clkCPU è clkFLASH, mentre chì permette à l'altri clock di eseguisce.

Questu migliurà l'ambiente di rumore per l'ADC, chì permette misure di risoluzione più altu. Se l'ADC hè attivatu, una cunversione principia automaticamente quandu stu modu hè inseritu. A parte l'interruzzione completa di cunversione ADC, solu un reset esternu, un reset di Watchdog, un reset di Brown-out, una interruzione pronta per SPM / EEPROM, una interruzione di livellu esternu in INT0 o una interruzzione di cambiamentu di pin pò sveglià l'MCU da ADC Noise Reduction. modu.

Modu Power-down

Quandu i bits SM[1:0] sò scritti à 10, l'istruzione SLEEP fa chì l'MCU entre in modalità Power-down. In questu modu, l'Oscillatore hè fermatu, mentre chì l'interruzioni esterni, a rilevazione di a cundizione di partenza USI è u Watchdog cuntinueghjanu à u funziunamentu (se attivatu). Solu un Reset Esternu, un Reset di Watchdog, un Reset Brown-out, l'interruzzione di a cundizione di partenza USI, una interruzzione di livellu esternu in INT0 o una interruzzione di cambiamentu di pin ponu sveglià u MCU. Stu modu di sonnu ferma tutti i clock generati, chì permettenu l'operazione di moduli asincroni solu.

Software BOD Disable

Quandu u Detector di Brown-out (BOD) hè attivatu da i fusibili BODLEVEL (vede Tabella 20-4 à a pagina 148), u BOD hè attivamente monitoring u supply voltage durante un periodu di sonnu. In certi dispositi, hè pussibule di risparmià energia disattivendu u BOD da u software in u modu di dorme Power-Down. U cunsumu di energia in u modu di sonnu sarà allora à u listessu livellu chì quandu BOD hè disattivatu globalmente da i fusibili.

Se u BOD hè disattivatu da u software, a funzione BOD hè disattivata immediatamente dopu à entre in u modu di sonnu. À u svegliu da u sonnu, BOD hè automaticamente attivatu di novu. Questu assicura un funziunamentu sicuru in casu chì u nivellu di VCC hè cascatu durante u periodu di sonnu.

Quandu u BOD hè statu disattivatu, l'ora di sveglia da u modu di sonnu serà u listessu chì per u svegliu da RESET. L'utilizatore deve cunfigurà manualmente i tempi di sveglia in modu chì a riferenza bandgap hà u tempu di inizià è u BOD funziona bè prima chì u MCU cuntinueghja à eseguisce u codice. Vede SUT[1:0] è CKSEL[3:0] fuse bits in a tabella "Fuse Low Byte" a pagina 149

A disattivazione di BOD hè cuntrullata da u bit BODS (BOD Sleep) di u MCU Control Register, vede "MCUCR - MCU Control Registrate" à a pagina 37. Scrivite stu bit à unu spegne BOD in Power-Down, mentre chì scrive un cero mantene u BOD attivu. U paràmetru predeterminatu hè zero, vale à dì BOD attivu.

A scrittura à u bit BODS hè cuntrullata da una sequenza cronometrata è un bit di attivazione, vede "MCUCR - MCU Control Regis- ter" à a pagina 37.

Limitazioni

A funziunalità di disattivà BOD hè stata implementata in i seguenti dispositi, solu:

ATtiny25, rivisione E, è più recente

ATtiny45, rivisione D, è più recente

ATtiny85, rivisione C, è più recente

E revisioni sò marcate nantu à u pacchettu di u dispositivu è ponu esse situate cum'è seguente:

U latu fondu di i pacchetti 8P3 è 8S2

Parte superiore di u pacchettu 20M1

Registru di Riduzzione di Potenza

U Registru di Riduzzione di Potenza (PRR), vede “PRR – Registru di riduzione di energia” a pagina 38, furnisce un metudu per riduce u cunsumu d'energia fermendu u clock à periferiche individuali. U statu attuale di u perifericu hè congelatu è i registri I/O ùn ponu micca esse letti o scritti. I risorse utilizati da u perifericu quandu si ferma u clock resteranu occupati, dunque u perifericu deve esse in a maiò parte di i casi disattivatu prima di piantà u clock. Svegliate un modulu, chì hè fattu per sguassà u bit in PRR, mette u modulu in u stessu statu cum'è prima di chjude.

L'arrestu di u modulu pò esse usatu in modalità Idle è modalità Active per riduce significativamente u cunsumu generale di energia. In tutti l'altri modi di sonnu, u clock hè digià firmatu. Vede “Corrente di alimentazione di moduli I/O” a pagina 177 per examples.

Minimizà u cunsumu di energia

Ci hè parechje prublemi à cunsiderà quandu pruvate di minimizzà u cunsumu di energia in un sistema cuntrullatu AVR. In generale, i modi di u sonnu deve esse utilizatu quantu pussibule, è u modu di sonnu deve esse sceltu in modu chì u più pocu pussibule di e funzioni di u dispusitivu operanu. Tutte e funzioni chì ùn sò micca necessariu deve esse disattivate. In particulare, i seguenti moduli ponu avè bisognu di una considerazione speciale quandu pruvate d'ottene u minimu cunsumu di energia pussibule.

Convertitore analogicu à digitale

Se attivatu, l'ADC serà attivatu in tutti i modi di sonnu. Per risparmià energia, l'ADC deve esse disattivatu prima di entre in ogni modu di sonnu. Quandu l'ADC hè disattivatu è riattivatu, a prossima cunversione serà una cunversione allargata. Riferite à “Convertitore analogico-digitale” a pagina 122 per i dettagli nantu à l'operazione ADC.

Comparatore analogicu

Quandu si entre in modalità Idle, u Comparatore Analogicu deve esse disattivatu s'ellu ùn hè micca usatu. Quandu entra in u modu di Riduzzione di Rumore ADC, u Comparatore Analogicu deve esse disattivatu. In l'altri modi di sonnu, u Comparatore Analogicu hè automaticamente disattivatu. Tuttavia, se u Comparatore Analogicu hè stallatu per utilizà u Volu Internutage Riferimentu cum'è input, u Comparatore Analogicu deve esse disattivatu in tutti i modi di dorme. Altrimenti, u Vol Internutage Riferenza serà attivata, indipendentemente da u modu di sonnu. Riferite à "Comparatore analogicu" à a pagina 119 per i dettagli nantu à cumu cunfigurà u Comparatore Analogicu.

Rilevatore di marroni

Se u Detector Brown-out ùn hè micca necessariu in l'applicazione, stu modulu deve esse disattivatu. Se u Detector Brown-out hè attivatu da i fusi BODLEVEL, serà attivatu in tutti i modi di sonnu, è dunque, cunsuma sempre energia. In i modi di sonnu più profondu, questu cuntribuisce significativamente à u cunsumu attuale tutale. Vede "Rilevazione di marroni- a pagina 41 è “Disattivazione BOD di software” a pagina 35 per i dettagli nantu à cumu cunfigurà u Detector Brown-out.

Vol internutage Riferimentu

L'Internu VoltagA Riferenza serà attivata quandu hè necessariu da a Rilevazione di Brown-out, u Comparatore Analogicu o l'ADC. Sè sti moduli sò disattivati ​​comu discrittu in i rùbbriche sopra, u vol internutagA riferenza serà disattivata è ùn cunsumerà micca energia. Quandu s'avvicina di novu, l'utilizatore deve permette à a riferenza per inizià prima chì l'output hè utilizatu. Se a riferenza hè tenuta in u modu di sonnu, l'output pò esse usatu immediatamente. Riferite à "Vol. Internutage Riferimenti” a pagina 42 per i dettagli nantu à u tempu di partenza.

Timer di Watchdog

Se u Watchdog Timer ùn hè micca necessariu in l'applicazione, stu modulu deve esse disattivatu. Se u Watchdog Timer hè attivatu, serà attivatu in tutti i modi di sonnu, è per quessa, cunsuma sempre energia. In i modi di sonnu più profondu, questu cuntribuisce significativamente à u cunsumu attuale tutale. Riferite à "Watchdog Timer" à a pagina 42 per i dettagli nantu à cumu cunfigurà u Watchdog Timer.

Port Pins

Quandu entra in un modu di sonnu, tutti i pins di u portu duveranu esse cunfigurati per utilizà a putenza minima. A cosa più impurtante hè allora di assicurà chì nisuna pinna guida carichi resistivi. In i modi di dorme induve u clock I/O (clkI/O) è u clock ADC (clkADC) sò fermati, i buffer di input di u dispusitivu seranu disattivati. Questu assicura chì nisuna putenza hè cunsumata

da a logica di input quandu ùn hè micca necessariu. In certi casi, a logica di input hè necessaria per detectà e cundizioni di sveglia, è

poi sarà attivatu. Riferite à a rùbbrica "Modi di attivazione di input digitale è di sospensione" à pagina 57 per i dettagli nantu à quali pins sò attivati. Se u buffer di input hè attivatu è u segnu di input hè lasciatu flottante o hà un livellu di signale analogicu vicinu à VCC/2, u buffer di input utilizerà una putenza eccessiva.

Per i pin di input analogicu, u buffer di input digitale deve esse disattivatu in ogni mumentu. Un livellu di signale analogicu vicinu à VCC / 2 nantu à un pin di input pò causà un currente significativu ancu in modu attivu. I buffer di input digitale ponu esse disattivati ​​scrivendu à u Registru di Disattivazione di Input Digitale (DIDR0). Riferite à “DIDR0 – Input Digital Disable Register 0” a pagina 121 per i dettagli.

Description di u Registru

MCUCR - Registru di cuntrollu MCU

U Registru di cuntrollu MCU cuntene bit di cuntrollu per a gestione di l'energia.

Bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Leghjite / Scrive R R/W R/W R/W R/W R R/W R/W
Valore iniziale 0 0 0 0 0 0 0 0

Bit 7 - BODS: BOD Sleep

A funziunalità di disattivà BOD hè dispunibule solu in certi dispositi. Vede "Limitazioni" a pagina 36.

Per disattivà BOD durante u sonnu (vede Tabella 7-1 à a pagina 34) u bit BODS deve esse scrittu à una logica. Questu hè cuntrullatu da una sequenza cronometrata è u bit di attivazione, BODSE in MCUCR. Prima, i dui BODS è BODSE deve esse stabilitu à unu. Siconda, in quattru cicli di clock, BODS deve esse stabilitu à unu è BODSE deve esse stabilitu à zero. U bit BODS hè attivu trè cicli di clock dopu chì hè stallatu. Una struzzione di sonnu deve esse eseguita mentre BODS hè attivu per disattivà u BOD per u modu di sonnu propiu. U bit BODS hè sguassatu automaticamente dopu trè cicli di clock.

In i dispositi induve Sleeping BOD ùn hè micca implementatu stu bit hè inutilizatu è sempre leghje zero.

Bit 5 - SE: Sleep Enable

U bit SE deve esse scrittu à u logicu unu per fà chì u MCU entre in u modu di dorme quandu l'istruzione SLEEP hè eseguita. Per evitari chì u MCU entre in u modu di sonnu, salvu chì ùn sia u scopu di u programatore, hè cunsigliatu di scrive u bit Sleep Enable (SE) à unu ghjustu prima di l'esekzione di l'istruzzioni SLEEP è di sguassate immediatamente dopu u svegliu.

Bits 4:3 - SM[1:0]: Modu Sleep Select Bits 1 è 0

Questi bits selezziunate trà i trè modi di sonnu dispunibili cum'è mostratu in Table 7-2.

Table 7-2. Modu Sleep Select

SM1 SM0 Modu di sonnu
0 0 Idle
0 1 Riduzzione di u rumore ADC
1 0 Power-down
1 1 Riservatu

Bit 2 - BODSE: BOD Sleep Enable

A funziunalità di disattivà BOD hè dispunibule solu in certi dispositi. Vede "Limitazioni" a pagina 36.

U bit BODSE permette l'impostazione di u bit di cuntrollu BODS, cum'è spiegatu nantu à a descrizzione di u bit BODS. A disabilitazione BOD hè cuntrullata da una sequenza cronometrata.

Stu bit ùn hè micca utilizatu in i dispositi induve u software BOD disattivatu ùn hè micca implementatu è leghje cum'è zero in quelli dispositi.

PRR - Registru di Riduzzione di Potenza

U Registru di Riduzzione di l'Energia furnisce un metudu per riduce u cunsumu di energia chì permette di disattivà i segnali di l'orologio perifericu.

Bit 7 6 5 4 3 2 1 0
0x20 PRIM1 PRIM0 PRUSI PRADC PRR
Leghjite / Scrive R R R R R/W R/W R/W R/W
Valore iniziale 0 0 0 0 0 0 0 0

Bits 7: 4 - Res: Bit riservati

Questi bits sò bits riservati in l'ATtiny25/45/85 è sempre leghje cum'è zero.

Bit 3 - PRTIM1: Timer di Riduzzione di Potenza / Contatore 1

Scrivite una logica à questu bit chjude u modulu Timer/Counter1. Quandu u Timer / Counter1 hè attivatu, l'operazione cuntinueghja cum'è prima di l'arrestu.

Bit 2 - PRTIM0: Timer di Riduzzione di Potenza / Contatore 0

Scrivite una logica à questu bit chjude u modulu Timer/Counter0. Quandu u Timer / Counter0 hè attivatu, l'operazione cuntinueghja cum'è prima di l'arrestu.

Bit 1 - PRUSI: Reduction Power USI

Scrivite una logica à questu bit chjude l'USI fermendu u clock à u modulu. Quandu si sveglia l'USI di novu, l'USI deve esse riinizializatu per assicurà un funziunamentu propiu.

Bit 0 - PRADC: Reduction Power ADC

Scrivite una logica à questu bit chjude l'ADC. L'ADC deve esse disattivatu prima di chjude. Nota chì u clock ADC hè ancu utilizatu da alcune parti di u comparatore analogicu, chì significa chì u comparatore analogicu ùn pò micca esse usatu quandu questu bit hè altu.

Cuntrolla di u Sistema è Reset

Resetting l'AVR

Durante u reset, tutti i Registri I/O sò cunfigurati à i so valori iniziali, è u prugramma principia l'esecuzione da u Reset Vector. L'istruzzioni postu à u Reset Vector deve esse un RJMP - Relative Jump - istruzzioni à a rutina di gestione di reset. Se u prugramma ùn permette mai una fonte d'interruzzione, i Vectors Interrupt ùn sò micca usati, è u codice di u prugramma regulare pò esse piazzatu in questi lochi. U schema di circuitu in Figura 8-1 mostra a logica di reset. I paràmetri elettrici di i circuiti di reset sò dati in “Caratteristiche di sistema è reset” a pagina 165.

Figura 8-1 Reset Logic Reset-logica

I porti I / O di l'AVR sò immediatamente resettati à u so statu iniziale quandu una fonte di reset hè attiva. Questu ùn hà micca bisognu di alcuna fonte di clock per esse in esecuzione.

Dopu chì tutte e fonti di reset sò inattive, un contatore di ritardu hè invucatu, stendendu u reset internu. Questu permette à u putere di ghjunghje à un livellu stabile prima di l'operazione normale. U periodu di time-out di u contatore di ritardu hè definitu da l'utilizatori attraversu i Fusibili SUT è CKSEL. E diverse selezioni per u periodu di ritardu sò presentate in «Clock Fonti" à a pagina 25.

Resettate Sources

L'ATtiny25/45/85 hà quattru fonti di reset:

Power-on Reset. U MCU hè resettatu quandu u supply voltage hè sottu à u limitu Power-on Reset (VPOT).

Reset esternu. U MCU hè resettatu quandu un livellu bassu hè presente nantu à u pin RESET per più di a durata minima di l'impulsu.

Reset di Watchdog. U MCU hè resettatu quandu u periodu Watchdog Timer scade è u Watchdog hè attivatu.

Reset di marrone. U MCU hè resettatu quandu u supply voltage VCC hè sottu à u sogliu di reset di Brown-out (VBOT) è u Detector di Brown-out hè attivatu.

Reset Power-on

Un impulsu Power-on Reset (POR) hè generatu da un circuitu di rilevazione On-chip. U livellu di rilevazione hè definitu in "Sys- tem è Reset e caratteristiche" à pagina 165. U POR hè attivatu ogni volta chì VCC hè sottu à u livellu di rilevazione. U circuitu POR pò esse usatu per attivà u Reset di Start-up, è ancu per detectà un fallimentu in u supply voltage.

Un circuitu Power-on Reset (POR) assicura chì u dispusitivu hè resettatu da Power-on. Raggiunge u sogliu di reset di Power-on voltage invoca u contatore di ritardu, chì determina quantu tempu u dispusitivu hè tenutu in RESET dopu à l'aumentu di VCC. U signale RESET hè attivatu novu, senza ritardu, quandu VCC diminuisce sottu à u livellu di rilevazione.

Figura 8-2. Start-up MCU, RESET Ligatu à VCC

RESET INTERN

Figura 8-3. Start-up MCU, RESET Estesa Esternamente

Reset esternu

Un Reset Esternu hè generatu da un livellu bassu nantu à u pin RESET se attivatu. Ripristina impulsi più longu chì a larghezza minima di l'impulsu (vede “Caratteristiche di sistema è reset” a pagina 165) genererà un reset, ancu s'è u clock ùn funziona micca. I impulsi più brevi ùn sò micca garantiti per generà un reset. Quandu u signale applicatu righjunghji u Reset Threshold Voltage - VRST - nantu à u so latu pusitivu, u contatore di ritardu principia u MCU dopu chì u periodu di Time-out hè scadutu.

Figura 8-4. Reset esternu durante l'operazione Fig8.4

Rilevazione di Brown-out

ATtiny25/45/85 hà un circuitu On-chip Brown-out Detection (BOD) per monitorizà u livellu VCC durante l'operazione paragunendu à un livellu di trigger fissu. U nivellu di trigger per u BOD pò esse sceltu da i fusi BODLEVEL. U livellu di trigger hà una isteresi per assicurà a rilevazione di Brown-out senza spike. L'isteresi à u livellu di rilevazione deve esse interpretata cum'è VBOT + = VBOT + VHYST/2 è VBOT- = VBOT - VHYST/2.

Quandu u BOD hè attivatu, è VCC diminuisce à un valore sottu à u livellu di trigger (VBOT-in Figura 8-5), u Reset Brown-out hè immediatamente attivatu. Quandu VCC aumenta sopra u livellu di trigger (VBOT + in Figura 8-5), u contatore di ritardu inizia u MCU dopu chì u periodu di Time-out tTOUT hè scadutu.

U circuitu BOD detectarà solu una goccia in VCC se u voltage resta sottu à u livellu di trigger per più di u tBOD datu in “Caratteristiche di sistema è reset” a pagina 165. Fig8.5

Reset di Watchdog

Quandu u Watchdog time out, generà un brevi impulsu di reset di una durata di ciclu CK. À u latu di caduta di stu impulsu, u timer di ritardu principia à cuntà u periodu di Time-out tTOUT. Riferite à "Watchdog Timer" à a pagina 42 per i dettagli nantu à u funziunamentu di u Watchdog Timer.

Voltage Reference Enable Signals è Start-up Time

U voltagA riferenza hà un tempu di start-up chì pò influenzà a manera chì deve esse usata. U tempu di partenza hè datu “Caratteristiche di sistema è reset” a pagina 165. Per salvà u putere, a riferenza ùn hè micca sempre attivata. A riferenza hè attivata durante e seguenti situazioni:

Quandu u BOD hè attivatu (programmendu u BODLEVEL [2: 0] Fuse Bits).

Quandu a riferenza di bandgap hè cunnessu à u Comparatore Analogicu (impostendu u bit ACBG in ACSR).

Quandu l'ADC hè attivatu.

Cusì, quandu u BOD ùn hè micca attivatu, dopu avè stabilitu u bit ACBG o attivatu l'ADC, l'utilizatore deve sempre permette à a riferenza per inizià prima chì l'output da u Comparatore Analogicu o ADC hè utilizatu. Per riduce u cunsumu di energia in u modu Power-down, l'utilizatore pò evità e trè cundizioni sopra per assicurà chì a riferenza hè spenta prima di entre in u modalità Power-down.

Timer di Watchdog

U Watchdog Timer hè clock da un Oscillatore On-chip chì corre à 128 kHz. Cuntrollendu u prescaler Watchdog Timer, l'intervallu Watchdog Reset pò esse aghjustatu cum'è mostratu in Tabella 8-3 à a pagina 46. L'istruzione WDR - Watchdog Reset - resetta u Watchdog Timer. U Watchdog Timer hè ancu resettatu quandu hè disattivatu è quandu si verifica un Chip Reset. Dece periodi di ciclu di clock differenti ponu esse selezziunati per determinà u periodu di reset. Se u periodu di reset scade senza un altru Watchdog Reset, l'ATtiny25/45/85 resetta è eseguisce da u Reset Vector. Per i dettagli di u timing nantu à u Reset Watchdog, riferite à Tabella 8-3 à a pagina 46.

U Watchdog Timer pò ancu esse cunfiguratu per generà una interruzzione invece di un reset. Questu pò esse assai utile quandu si usa u Watchdog per svegliate da Power-down.

Per prevene una disattivazione involontaria di u Watchdog o un cambiamentu involontariu di u periodu di time-out, dui livelli di sicurezza differenti sò selezziunati da u fusible WDTON cum'è mostratu in Table 8-1 Riferite à "Sequenze cronometrate per cambià a cunversione figurazione di u Watchdog Timer" à a pagina 43 per i dettagli.

Table 8-1. Configurazione WDT cum'è una Funzione di i Paràmetri di Fuse di WDTON

WDTON Livellu di sicurità Statu iniziale WDT Cumu disattivà u WDT Cumu cambià u Time-out
Micca prugrammatu 1 Disabilitatu Sequenza cronometrata Nisuna limitazione
Prugrammatu 2 Abilitatu Sempre attivatu Sequenza cronometrata

Figura 8-7. Timer di Watchdog Cane da guardia

Sequenze cronometrate per cambià a cunfigurazione di u Timer Watchdog

A sequenza per cambià a cunfigurazione hè ligeramente diversa trà i dui livelli di sicurezza. Prucedure separate sò descritte per ogni livellu.

Livellu di sicurezza 1: In questu modu, u Watchdog Timer hè inizialmente disattivatu, ma pò esse attivatu scrivendu u bit WDE à unu senza alcuna restrizione. Una sequenza cronometrata hè necessaria per disattivà un Timer Watchdog attivatu. Per disattivà un Timer Watchdog attivatu, a prucedura seguente deve esse seguita:

In a listessa operazione, scrive una logica à WDCE è WDE. Una logica deve esse scritta à WDE, indipendentemente da u valore precedente di u bit WDE.

In i prossimi quattru cicli di clock, in a listessa operazione, scrivite i bit WDE è WDP cum'è vulete, ma cù u bit WDCE sbulicatu.

Livellu di Sicurezza 2: In questu modu, u Watchdog Timer hè sempre attivatu, è u bit WDE sempre leghje cum'è unu. Una sequenza cronometrata hè necessaria quandu cambia u periodu di Time-out Watchdog. Per cambià u Time-out Watchdog, deve esse seguitu a seguente prucedura:

In a listessa operazione, scrivite una logica à WDCE è WDE. Ancu se u WDE hè sempre stabilitu, u WDE deve esse scrittu à unu per inizià a sequenza cronometrata.

In i prossimi quattru cicli di clock, in a listessa operazione, scrivite i bits WDP cum'è vulete, ma cù u bit WDCE sbulicatu. U valore scrittu à u bit WDE hè irrilevante.

Codice Example

U codice seguente example mostra una assemblea è una funzione C per disattivà u WDT. L'example assume chì l'interruzzioni sò cuntrullati (per esempiu, disattivendu l'interruzzioni in u mondu) in modu chì ùn ci hè micca interruzzione durante l'esecuzione di queste funzioni.

Codice di Assemblea Esample(1)
WDT_off:

wdr

; Cancella WDRF in MCUSR

ldi r16, (0<

fora MCUSR, r16

; Scrivite una logica à WDCE è WDE

; Mantene l'antica paràmetra di prescaler per prevene un Reset di Watchdog involontariu

in r16, WDTCR

ori r16, (1<

fora WDTCR, r16

; Spegne WDT

ldi r16, (0<

fora WDTCR, r16

ret

C Code Example(1)
void WDT_off (void)

{

_WDR();

/* Cancella WDRF in MCUSR */ MCUSR = 0x00

/* Scrivite una logica à WDCE è WDE */ WDTCR |= (1<

/* Disattiva WDT */ WDTCR = 0x00;

}

Nota : 1. Vede "Codice Examples" à a pagina 6.

Description di u Registru

MCUSR - Registru di Statu MCU

U Registru di Statu MCU furnisce infurmazioni nantu à quale fonte di reset hà causatu un Reset MCU.

Bit 7 6 5 4 3 2 1 0
0x34 WDRF BORF EXTRF PORF MCUSR
Leghjite / Scrive R R R R R/W R/W R/W R/W

Valore iniziale 0 0 0 0 See Bit Description

Bits 7: 4 - Res: Bit riservati

Questi bits sò bits riservati in l'ATtiny25/45/85 è sempre leghje cum'è zero.

Bit 3 - WDRF: Bandiera di reset di Watchdog

Stu bit hè stabilitu se si verifica un Reset di Watchdog. U bit hè resettatu da un Power-on Reset, o scrivendu un zero logicu à a bandiera.

Bit 2 - BORF: Bandiera di reset marrone

Stu bit hè stabilitu se si verifica un Reset Brown-out. U bit hè resettatu da un Power-on Reset, o scrivendu un zero logicu à a bandiera.

Bit 1 - EXTRF: Bandiera di reset esterni

Stu bit hè stabilitu se si verifica un Reset Esternu. U bit hè resettatu da un Power-on Reset, o scrivendu un zero logicu à a bandiera.

Bit 0 - PORF: Bandiera di reset di putenza

Stu bit hè stabilitu s'ellu si verifica un Reset di Power-on. U bit hè resettatu solu scrivendu un zero logicu à a bandiera.

Per fà l'usu di i Bandieri di Reset per identificà una cundizione di resettore, l'utilizatore deve leghje è poi resettate u MCUSR u più prestu pussibule in u prugramma. Se u registru hè sguassatu prima di un altru reset, a fonte di u reset pò esse truvata esaminendu i Bandiere di reset.

WDTCR - Registru di cuntrollu di Timer Watchdog

Bit 7 6 5 4 3 2 1 0
0x21 WDIF WDIE WDP3 WDCE WDE WDP2 WDP1 WDP0 WDTCR
Leghjite / Scrive R/W R/W R/W R/W R/W R/W R/W R/W
Valore iniziale 0 0 0 0 X 0 0 0

Bit 7 - WDIF: Bandiera di Interruzzione di Timeout Watchdog

Stu bit hè stabilitu quandu si verifica un time-out in u Watchdog Timer è u Watchdog Timer hè cunfiguratu per interruzzione. WDIF hè sbulicatu da u hardware quandu eseguisce u vettore di gestione di interruzzione currispundente. In alternativa, WDIF hè sguassatu scrivendu una logica à a bandiera. Quandu l'I-bit in SREG è WDIE sò stabiliti, u Watchdog Time-out Interrupt hè eseguitu.

Bit 6 - WDIE: Watchdog Timeout Interrupt Enable

Quandu stu bit hè scrittu à unu, WDE hè sguassatu, è l'I-bit in u Status Register hè stabilitu, l'Interrupt Time-out Watchdog hè attivata. In questu modu, l'interruzzione currispondente hè eseguita invece di un reset se si verifica un timeout in u Watchdog Timer.

Se WDE hè stabilitu, WDIE hè sguassatu automaticamente da u hardware quandu si verifica un time-out. Questu hè utile per mantene a securità di Reset Watchdog mentre usa l'interruzzione. Dopu chì u bit WDIE hè sguassatu, u prossimu time-out generà un reset. Per evitari u Reset Watchdog, WDIE deve esse stabilitu dopu ogni interruzzione.

Table 8-2. Cunfigurazione Timer Watchdog

WDE WDIE Watchdog Timer State Azzione nantu à Time-out
0 0 Fermatu Nimu
0 1 Corsa Interruzzione
1 0 Corsa Resettate
1 1 Corsa Interruzzione

Bit 4 - WDCE: Attivazione di u cambiamentu di Watchdog

Stu bit deve esse stabilitu quandu u bit WDE hè scrittu à u zero logicu. Altrimenti, u Watchdog ùn serà micca disattivatu. Una volta scrittu à unu, u hardware sguasserà stu bit dopu quattru cicli di clock. Vede a descrizzione di u bit WDE per una procedura di disattivazione di Watchdog. Stu bit deve ancu esse stabilitu quandu cambia i bits prescaler. Vede "Sequenze cronometrate per cambià a cunfigurazione di u Timer Watchdog" à a pagina 43.

Bit 3 - WDE: Abilita Watchdog

Quandu u WDE hè scrittu à una logica, u Watchdog Timer hè attivatu, è se u WDE hè scrittu à u logicu zero, a funzione Watchdog Timer hè disattivata. WDE pò esse sbulicatu solu se u bit WDCE hà u livellu logicu unu. Per disattivà un Timer Watchdog attivatu, a prucedura seguente deve esse seguita:

In a listessa operazione, scrive una logica à WDCE è WDE. Una logica deve esse scritta à WDE ancu s'ellu hè stabilitu à unu prima chì l'operazione di disattivazione principia.

In i prossimi quattru cicli di clock, scrivite una logica 0 à WDE. Questu disattiveghja u Watchdog.

In u livellu di sicurità 2, ùn hè micca pussibule di disattivà u Watchdog Timer, ancu cù l'algoritmu descrittu sopra. Vede "Sequenze cronometrate per cambià a cunfigurazione di u Timer Watchdog" à a pagina 43.

In u livellu di sicurità 1, WDE hè annullatu da WDRF in MCUSR. Vede “MCUSR – MCU Status Register” a pagina 44 per a descrizzione di WDRF. Questu significa chì WDE hè sempre stabilitu quandu WDRF hè stallatu. Per sguassà WDE, WDRF deve esse sbulicatu prima di disattivà u Watchdog cù a prucedura descritta sopra. Questa funzione assicura parechji resets durante e cundizioni chì causanu fallimentu, è un start-up sicuru dopu u fallimentu.

Nota: Se u timer di watchdog ùn serà micca usatu in l'applicazione, hè impurtante passà per una procedura di disattivazione di watchdog in l'inizializazione di u dispusitivu. Se u Watchdog hè attivatu accidentalmente, per esempiuample da un puntatore runaway o cundizione marroni-out, u dispusitivu serà resetten, chì in turnu vi purtari à un novu resetten watchdog. Per evitari sta situazione, u software di l'applicazione deve sempre sguassà a bandiera WDRF è u bit di cuntrollu WDE in a rutina di inizializazione.

Bits 5, 2: 0 - WDP[3:0]: Watchdog Timer Prescaler 3, 2, 1, è 0

I bit WDP[3: 0] determinanu a prescaling di Watchdog Timer quandu u Watchdog Timer hè attivatu. I diversi valori di prescaling è i so periodi di timeout currispondenti sò mostrati in Table 8-3.

Table 8-3. Watchdog Timer Prescale Select

WDP3 WDP2 WDP1 WDP0 U numeru di cicli di oscillatori WDT Time-out tipicu à VCC = 5.0V
0 0 0 0 2K (2048) cicli 16 ms
0 0 0 1 4K (4096) cicli 32 ms
0 0 1 0 8K (8192) cicli 64 ms
0 0 1 1 16K (16384) cicli 0.125 s
0 1 0 0 32K (32764) cicli 0.25 s
0 1 0 1 64K (65536) cicli 0.5 s
0 1 1 0 128K (131072) cicli 1.0 s
0 1 1 1 256K (262144) cicli 2.0 s
1 0 0 0 512K (524288) cicli 4.0 s
1 0 0 1 1024K (1048576) cicli 8.0 s

Table 8-3. Watchdog Timer Prescale Select (Continua)

WDP3 WDP2 WDP1 WDP0 U numeru di cicli di oscillatori WDT Time-out tipicu à VCC = 5.0V
1 0 1 0 Riservatu(1)
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1

Nota: 1. Se sceltu, unu di i paràmetri validi sottu 0b1010 serà utilizatu.

Interruzzioni

Questa sezione descrive e specifiche di a gestione di l'interruzzione cum'è eseguita in ATtiny25/45/85. Per una spiegazione generale di a gestione di l'interruzzione AVR, riferite à "Reset and Interrupt Handling" a pagina 12.

Interrupt Vectors in ATtiny25/45/85

I vettori di interruzzione di ATtiny25/45/85 sò descritti in Table 9-1sottu.

Table 9-1. Resetta è Interrupt Vectors

Vettore No. Indirizzu di u prugramma Fonte Definizione di l'interruzzione
1 0x0000 RESET Pin Esternu, Reset di Power-on, Reset Brown-out, Reset Watchdog
2 0x0001 INT0 Richiesta di interruzzione esterna 0
3 0x0002 PCINT0 Pin Change Interrupt Request 0
4 0x0003 TIMER1_COMPA Timer/Counter1 Compara Match A
5 0x0004 TIMER1_OVF Timer/Counter1 Overflow
6 0x0005 TIMER0_OVF Timer/Counter0 Overflow
7 0x0006 EE_RDY EEPROM pronta
8 0x0007 ANA_COMP Comparatore analogicu
9 0x0008 ADC Cunversione ADC cumpleta
10 0x0009 TIMER1_COMPB Timer/Counter1 Comparare Match B
11 0x000A TIMER0_COMPA Timer/Counter0 Compara Match A
12 0x000B TIMER0_COMPB Timer/Counter0 Comparare Match B
13 0x000C WDT Time-out di Watchdog
14 0x000D USI_START USI START
15 0x000E USI_OVF USI Overflow

Se u prugramma ùn permette mai una fonte d'interruzzione, i Vectors Interrupt ùn sò micca usati, è u codice di u prugramma regulare pò esse piazzatu in questi lochi.

Una configurazione tipica è generale per l'indirizzi vettoriali di interruzzione in ATtiny25/45/85 hè mostrata in u prugramma ex.ample sottu.

Codice di Assemblea Esample
.org 0x0000 ;Set indirizzu di u prossimu dichjarazione
rjmp RESET ; Indirizzu 0x0000
rjmp INT0_ISR ; Indirizzu 0x0001
rjmp PCINT0_ISR ; Indirizzu 0x0002
rjmp TIM1_COMPA_ISR ; Indirizzu 0x0003
rjmp TIM1_OVF_ISR ; Indirizzu 0x0004
rjmp TIM0_OVF_ISR ; Indirizzu 0x0005
rjmp EE_RDY_ISR ; Indirizzu 0x0006
rjmp ANA_COMP_ISR ; Indirizzu 0x0007
rjmp ADC_ISR ; Indirizzu 0x0008
rjmp TIM1_COMPB_ISR ; Indirizzu 0x0009
rjmp TIM0_COMPA_ISR ; Indirizzu 0x000A
rjmp TIM0_COMPB_ISR ; Indirizzu 0x000B
rjmp WDT_ISR ; Indirizzu 0x000C
rjmp USI_START_ISR ; Indirizzu 0x000D
rjmp USI_OVF_ISR ; Indirizzu 0x000E
RESET: ; U principiu di u prugramma principale
; Indirizzu 0x000F

Nota: Vede "Codice Examples" à a pagina 6.

Interrupt esterni

L'Interruzioni Esterne sò attivate da u pin INT0 o qualsiasi di i pin PCINT[5:0]. Osservate chì, se attivate, l'interruzioni si attivanu ancu se i pin INT0 o PCINT[5:0] sò cunfigurati cum'è outputs. Questa funzione furnisce una manera di generà una interruzzione di u software. U cambiamentu di pin interrompe PCI attivarà se qualsiasi pin PCINT[5:0] attivatu cambia. U Registru PCMSK cuntrolla chì pins cuntribuiscenu à l'interruzioni di cambiamentu di pin. L'interruzioni di cambiamentu di Pin in PCINT[5: 0] sò rilevate in modu asincronu. Questu implica chì queste interruzioni ponu esse aduprate per sveglià a parte ancu da i modi di sonnu, chì ùn sò micca in modalità Idle.

L'interruzioni INT0 ponu esse attivate da un bordu discendente o crescente o un livellu bassu. Questu hè stallatu cum'è indicatu in a specificazione per u Registru di cuntrollu MCU - MCUCR. Quandu l'interruzzione INT0 hè attivata è hè cunfigurata cum'è u livellu attivatu, l'interruzzione attivarà sempre chì u pin hè tenutu bassu. Nota chì a ricunniscenza di l'interruzioni di fronte discendente o di salita in INT0 richiede a presenza di un clock I/O, descritto in "Clock Systems and their Distribution" on pagina 23.

Interruzzione di livellu bassu

Una interruzzione di livellu bassu nantu à INT0 hè rilevata in modu asincronu. Questu implica chì sta interruzzione pò esse aduprata per svegliate a parte ancu da i modi di sonnu altru da u modu Idle. U clock I/O hè arrestatu in tutti i modi di dorme eccettu u modalità Idle.

Nota chì se una interruzzione attivata da u livellu hè aduprata per u svegliu da u Power-down, u livellu necessariu deve esse mantenutu abbastanza longu per chì u MCU compie u svegliu per attivà l'interruzzione di livellu. Se u livellu sparisce prima di a fine di u Tempu di Start-up, u MCU si svegliarà sempre, ma ùn sarà generata alcuna interruzzione. U tempu di start-up hè definitu da i Fusibili SUT è CKSEL cum'è descrittu in “Opzioni Orologio e Orologio di Sistema” a pagina 23.

Se u livellu bassu nantu à u pin d'interruzzione hè sguassatu prima chì u dispusitivu hà svegliatu, l'esekzione di u prugramma ùn serà micca deviata à a rutina di serviziu di interruzzione, ma cuntinueghja da l'istruzzioni dopu à u cumandimu SLEEP.

Pin Change Interrupt Timing

Un esampU schedariu di timing di una interruzzione di cambiamentu di pin hè mostratu in Figura 9-1.

Description di u Registru

MCUCR - Registru di cuntrollu MCU

U Registru di cuntrollu di l'interruzzione esterna A cuntene bit di cuntrollu per u cuntrollu di u sensu di l'interruzzione.

Bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Leghjite / Scrive R R/W R/W R/W R/W R R/W R/W
Valore iniziale 0 0 0 0 0 0 0 0

Bits 1:0 - ISC0[1:0]: Control Sense Interrupt 0 Bit 1 è Bit 0

L'Interrupzione Esterna 0 hè attivata da u pin esternu INT0 se u flag I SREG è a maschera di interruzzione currispondente sò impostate. U livellu è i bordi nantu à u pin INT0 esternu chì attivanu l'interruzzione sò definiti in Table 9-2. U valore nantu à u pin INT0 hè sampled prima di detectà i bordi. Se l'interruzione di punta o di bascula hè scelta, l'impulsi chì duranu più di un periodu di clock generaranu una interruzzione. I impulsi più brevi ùn sò micca garantiti per generà una interruzzione. Se l'interruzzione di livellu bassu hè sceltu, u livellu bassu deve esse tenutu finu à a fine di l'istruzzioni in esecuzione attualmente per generà una interruzzione.

Table 9-2. Interrupt 0 Sense Control

ISC01 ISC00 Descrizzione
0 0 U livellu bassu di INT0 genera una dumanda di interruzzione.
0 1 Ogni cambiamentu logicu nantu à INT0 genera una dumanda di interruzzione.
1 0 U frontu di caduta di INT0 genera una dumanda di interruzzione.
1 1 U fronte ascendente di INT0 genera una dumanda di interruzzione.

GIMSK - Registru generale di maschere di interruzzione

Bit 7 6 5 4 3 2 1 0
0x3B INT0 PCIe GIMSK
Leghjite / Scrive R R/W R/W R R R R R
Valore iniziale 0 0 0 0 0 0 0 0

Bits 7, 4:0 - Res: Bit riservati

Questi bits sò bits riservati in l'ATtiny25/45/85 è sempre leghje cum'è zero.

Bit 6 - INT0: Richiesta di Interruzzione Esterna 0 Abilita

Quandu u bit INT0 hè impostatu (un) è u bit I in u Status Register (SREG) hè impostatu (un), l'interruzzione di pin esterna hè attivata. L'Interrupt Sense Control0 bits 1/0 (ISC01 è ISC00) in u MCU Control Register (MCUCR) definiscenu se l'interruzzione esterna hè attivata nantu à u fronte di salita è / o di caduta di u pin INT0 o di u livellu rilevatu. L'attività nantu à u pin pruvucarà una dumanda di interruzzione ancu se INT0 hè cunfiguratu cum'è output. L'interruzzione currispundente di a Richiesta di Interruzione Esterna 0 hè eseguita da u Vector Interrupt INT0.

Bit 5 - PCIE: Pin Change Interrupt Enable

Quandu u bit PCIE hè impostatu (unu) è l'I-bit in u Status Register (SREG) hè stabilitu (unu), l'interruzzione di cambiamentu di pin hè attivata. Ogni cambiamentu nantu à qualsiasi pin PCINT[5:0] attivatu pruvucarà una interruzzione. L'interruzzione currispundente di Pin Change Interrupt Request hè eseguita da u PCI Interrupt Vector. I pin PCINT[5:0] sò attivati ​​individualmente da u Registru PCMSK0.

GIFR - Registru di Bandiera di Interruzzione Generale

Bit 7 6 5 4 3 2 1 0
0x3A INTF0 PCIF GIFR
Leghjite / Scrive R R/W R/W R R R R R
Valore iniziale 0 0 0 0 0 0 0 0

Bits 7, 4:0 - Res: Bit riservati

Questi bits sò bits riservati in l'ATtiny25/45/85 è sempre leghje cum'è zero.

Bit 6 - INTF0: Bandiera di interruzzione esterna 0

Quandu un cambiamentu di punta o logica nantu à u pin INT0 attiva una dumanda di interruzzione, INTF0 diventa (unu). Se l'I-bit in SREG è u bit INT0 in GIMSK sò impostati (unu), u MCU saltarà à u Vector Interrupt currispundente. A bandiera hè sguassata quandu a rutina di interruzzione hè eseguita. In alternativa, a bandiera pò esse sbulicata scrivendu una logica. Questa bandiera hè sempre sguassata quandu INT0 hè cunfigurata cum'è una interruzzione di livellu.

Bit 5 - PCIF: Pin Change Interrupt Flag

Quandu un cambiamentu di logica in qualsiasi pin PCINT[5: 0] attiva una dumanda di interruzzione, PCIF diventa (unu). Se l'I-bit in SREG è u bit PCIE in GIMSK sò impostati (unu), u MCU saltarà à u Vector Interrupt currispundente. A bandiera hè sguassata quandu a rutina di interruzzione hè eseguita. In alternativa, a bandiera pò esse sbulicata scrivendu una logica.

PCMSK - Pin Change Mask Register

Bit 7 6 5 4 3 2 1 0
0x15 PCINT5 PCINT4 PCINT3 PCINT2 PCINT1 PCINT0 PCMSK
Leghjite / Scrive R R R/W R/W R/W R/W R/W R/W
Valore iniziale 0 0 0 0 0 0 0 0

Bits 7: 6 - Res: Bit riservati

Questi bits sò bits riservati in l'ATtiny25/45/85 è sempre leghje cum'è zero.

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

Ogni bit PCINT[5:0] seleziona se l'interruzione di cambio di pin è attivata sul pin I/O corrispondente. Se PCINT[5:0] hè impostatu è u bit PCIE in GIMSK hè impostatu, l'interruzzione di cambiamentu di pin hè attivata nantu à u pin I/O currispundente. Se PCINT[5:0] hè sguassatu, l'interruzzione di cambiamentu di pin in u pin I/O corrispondente hè disattivata.

Porti I/O

Introduzione

Tutti i porti AVR anu una vera funziunalità Read-Modify-Write quandu s'utilice cum'è porti I / O digitale generale. Questu significa chì a direzzione di un pin portu pò esse cambiatu senza cambià involontariamente a direzzione di qualsiasi altru pin cù l'istruzzioni SBI è CBI. U listessu vale quandu cambia u valore di u drive (se cunfiguratu cum'è output) o attivazione / disattivazione di resistori pull-up (se cunfigurati cum'è input). Ogni buffer di output hà caratteristiche di unità simmetriche cù una capacità elevata è di fonte. U pin driver hè abbastanza forte per guidà direttamente i display LED. Tutti i pins di portu anu resistori di pull-up selezziunati individualmente cù un supply-voltage resistenza invariante. Tutti i pin I/O anu diodi di prutezzione sia à VCC sia à a Terra cum'è indicatu in Figura 10-1. Riferite à “Caratteristiche elettriche” a pagina 161 per una lista cumpleta di parametri.

Figura 10-1. Schema Equivalente di Pin I/O

Fig10

Tutti i registri è i riferimenti di bit in questa sezione sò scritti in forma generale. Una "x" minuscula rapprisenta a lettera di numerazione per u portu, è una minuscula "n" rapprisenta u numeru di bit. In ogni casu, quandu si usa u registru o u bit define in un prugramma, a forma precisa deve esse usata. Per esample, PORTB3 per u bit no. 3 in Port B, quì documentatu in generale cum'è PORTxn. I Registri I/O fisici è i lochi di bit sò elencati in "Registra Descrizione" nantu pagina 64.

Trè lochi di l'indirizzu di memoria I / O sò attribuiti per ogni portu, unu per u Registru di Dati - PORTx, Registru di Direzzione di Dati - DDRx, è i Pins di Input Port - PINx. U locu di l'I/O di i Pins Input Port hè lettu solu, mentre chì u Registru di Dati è u Registru di Direzzione di Dati sò leghje / scrittura. In ogni casu, scrive una logica à un bit in u Registru PINx, hà da risultatu in una basculazione in u bit currispundente in u Registru di Dati. Inoltre, u Pull-up Disable - PUD bit in MCUCR disattiva a funzione di pull-up per tutti i pin in tutti i porti quandu si stallanu.

Utilizà u portu I/O cum'è General Digital I/O hè descrittu in "Porti cum'è I/O digitale generale" à a pagina 53. A maiò parte di i pins portu sò multiplexati cù funzioni alternate per e funzioni periferiche di u dispusitivu. Cumu ogni funzione alternativa interferisce cù u pin di u portu hè descrittu in "Funzioni di portu alternativu" à a pagina 57. Riferite à e rùbbriche moduli individuali per una descrizzione completa di e funzioni alternative.

Nota chì l'attivazione di a funzione alternativa di alcuni di i pins di u portu ùn affetta micca l'usu di l'altri pin in u portu cum'è I / O digitale generale.

Porti cum'è I/O digitale generale

I porti sò porti I/O bidirezionali cù pull-up interni opzionali. Figura 10-2 mostra una descrizzione funziunale di un pin I/O-port, quì genericamente chjamatu Pxn.

Figura 10-2. I/O digitale generale(1)

Fig10

Configurazione di u Pin

Ogni pin di portu hè custituitu da trè bit di registru: DDxn, PORTxn è PINxn. Cum'è mostra in "Registra Descrizione" nantu pagina 64, i bits DDxn sò accessu à l'indirizzu I/O DDRx, i bits PORTxn à l'indirizzu I/O PORTx, è i bits PINxn à l'indirizzu I/O PINx.

U bit DDxn in u Registru DDRx selezziunate a direzzione di stu pin. Se DDxn hè scrittu unu logicu, Pxn hè cunfiguratu cum'è pin di output. Se DDxn hè scrittu logicu zero, Pxn hè cunfiguratu cum'è un pin di input.

Se PORTxn hè scrittu una logica quandu u pin hè cunfiguratu cum'è un pin di input, a resistenza di pull-up hè attivata. Per disattivà a resistenza di pull-up, PORTxn deve esse scrittu zero logicu o u pin deve esse cunfiguratu cum'è pin di output. I pins di u portu sò tri-stated quandu a cundizione di reset diventa attiva, ancu s'ellu ùn ci hè micca clock.

Se PORTxn hè scrittu una logica quandu u pin hè cunfiguratu cum'è un pin di output, u pin di u portu hè guidatu altu (unu). Se PORTxn hè scrittu logicu zero quandu u pin hè cunfiguratu cum'è un pin di output, u pin di u portu hè guidatu bassu (zero).

Cambia u Pin

Scrivite una logica à PINxn cambia u valore di PORTxn, indipendentemente da u valore di DDRxn. Nota chì l'istruzzioni SBI pò esse usata per cambià un solu bit in un portu.

Commutazione trà Input è Output

Quandu si passa trà tri-state ({DDxn, PORTxn} = 0b00) è output high ({DDxn, PORTxn} = 0b11), un statu intermediu cù pull-up attivatu {DDxn, PORTxn} = 0b01) o output low. ({DDxn, PORTxn} = 0b10) deve esse. Normalmente, u statu attivatu di pull-up hè cumplettamente accettabile, cum'è un ambiente d'alta impedenza ùn hà micca nutatu a diffarenza trà un forte driver altu è un pull-up. Se questu ùn hè micca u casu, u bit PUD in u Registru MCUCR pò esse stallatu per disattivà tutti i pull-ups in tutti i porti.

Cambia trà input cù pull-up è output low genera u listessu prublema. L'utilizatore deve aduprà u tri-state ({DDxn, PORTxn} = 0b00) o l'output high state ({DDxn, PORTxn} = 0b10) cum'è un passu intermediu.

Table 10-1 riassume i signali di cuntrollu per u valore di pin.

Table 10-1. Cunfigurazioni di Pin Port

DDxn PORTxn PUD

(in MCUCR)

I/O Pull-up Cumentu
0 0 X Input Innò Tri-state (Hi-Z)
0 1 0 Input Pxn sorgerà currente se ext. tiratu bassu.
0 1 1 Input Innò Tri-state (Hi-Z)
1 0 X Output Innò Output Low (Lavello)
1 1 X Output Innò Output High (fonte)

A lettura di u Pin Value

Indipendentemente da u paràmetru di u bit Direzzione di Dati DDxn, u pin di u portu pò esse lettu attraversu u bit Registru PINxn. Cum'è mostra in Figura 10-2, u bit Registru PINxn è u latch precedente custituiscenu un sincronizatore. Questu hè necessariu per evità a metastabilità se u pin fisicu cambia u valore vicinu à u bordu di u clock internu, ma ancu introduce un ritardu. Figura 10-3 mostra un diagramma di timing di a sincronizazione quandu leghje un valore di pin applicatu esternamente. I ritardi di propagazione massimi è minimi sò indicati rispettivamente tpd,max è tpd,min.

Cunsiderate u periodu di u clock chì principia pocu dopu à u primu bordu di caduta di u clock di u sistema. U latch hè chjusu quandu u clock hè bassu, è diventa trasparente quandu u clock hè altu, cum'è indicatu da a regione ombreggiata di u signale "SYNC LATCH". U valore di u signale hè latched quandu u clock di u sistema hè bassu. Hè registratu in u Registru PINxn à u latu di u clock pusitivu successu. Comu indicatu da e duie frecce tpd,max è tpd,min, una sola transizione di signale nantu à u pin serà ritardata trà ½ è 1½ periodu di clock di u sistema secondu u tempu di l'affirmazione.

Quandu leghje un valore di pin assignatu da u software, deve esse inseritu una struzzione nop cum'è indicatu in Figura 10-4. L'istruzzioni fora mette u signalu "SYNC LATCH" à u latu pusitivu di u clock. In questu casu, u ritardu tpd attraversu u synchronizer hè un periodu di clock di u sistema.

U codice seguente example mostra cumu stabilisce i pins di u portu B 0 è 1 altu, 2 è 3 bassu, è definisce i pins di u portu da 4 à 5 cum'è input cù un pull-up assignatu à u pin di portu 4. I valori di pin resultanti sò letti torna, ma cum'è discutitu prima, una struzzione nop hè inclusa per pudè leghje u valore recentemente attribuitu à alcuni di i pin.

Codice di Assemblea Esample(1)

; Definite pull-ups è mette u output altu

; Definite direzzione per i pins di portu

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

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

fora PORTB,r16

fora DDRB,r17

; Inserite nop per a sincronizazione

nop

; Leghjite i pins di u portu

in r16, PINB

Nota: Per u prugramma di assemblea, dui registri tempurane sò usati per minimizzà u tempu da pull-ups sò stallati nantu à i pin 0, 1 è 4, finu à chì i bits di direzzione sò currettamente stabiliti, definendu i bit 2 è 3 cum'è bassu è ridefinisce i bit 0 è 1 cum'è forti cunduttori alti.

C Code Example
unsigned char i;

/* Definisci pull-ups e imposta i risultati elevati */

/* Definite direzzione per i pin di portu */ PORTB = (1<

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

/* Inserisci nop per a sincronizazione */

_NOP();

/* Leghjite i pins di u portu */ i = PINB;

Modi d'attivazione di l'ingressu digitale è di u sonnu

Cum'è mostra in Figura 10-2, u signale input digitale pò esse clamped a terra à l'input di u schmitt-trigger. U signale denotatu SLEEP in a figura, hè stabilitu da u MCU Sleep Controller in modalità Power-down per evità un altu cunsumu di energia se alcuni signali di input sò lasciati flottanti, o avè un livellu di signale analogicu vicinu à VCC/2.

SLEEP hè annullatu per i pin di portu attivati ​​cum'è pin d'interruzione esterni. Se a dumanda di interruzzione esterna ùn hè micca attivata, SLEEP hè attivu ancu per questi pin. SLEEP hè ancu annullatu da diverse altre funzioni alternative cume descritte in "Funzioni di portu alternativu" à a pagina 57.

Se un altu livellu logicu ("unu") hè presente nantu à un pin d'interruzione esterna asincrona cunfigurata cum'è "Interruzzione in Rising Edge, Falling Edge, or Any Logic Change on Pin" mentre l'interruzzione esterna ùn hè micca attivata, a Bandiera di Interruzione Esterna currispondente sarà esse stabilitu quandu ripiglià da u modu di Sleep sopra citatu, cum'è u clampIn questu modu di sonnu produce u cambiamentu logicu dumandatu.

Pins Unconnected

Se certi pins ùn sò micca usati, hè cunsigliatu per assicurà chì questi pins anu un livellu definitu. Ancu s'è a maiò parte di l'inputs digitale sò disattivati ​​in i modi di sonnu profondu cum'è descrittu sopra, l'inputs flottanti deve esse evitati per riduce u cunsumu attuale in tutti l'altri modi induve l'inputs digitale sò attivati ​​(Reset, Modu attivu è Modu Idle).

U metudu più simplice per assicurà un livellu definitu di un pin inutilizatu, hè di attivà u pull-up internu. In questu casu, u pull-up serà disattivatu durante u resettore. Se u cunsumu d'energia bassu durante u reset hè impurtante, hè cunsigliatu di utilizà un pull-up o pulldown esternu. A cunnessione di pins inutilizati direttamente à VCC o GND ùn hè micca cunsigliatu, postu chì questu pò causà correnti eccessivi se u pin hè accidentalmente cunfiguratu cum'è output.

Funzioni di portu alternativu

A maiò parte di i pins di u portu anu funzioni alternative in più di esse I / O digitale generale. Figura 10-5 mostra cumu i signali di cuntrollu di pin portu da u simplificatu Figura 10-2 pò esse rimpiazzatu da funzioni alternative. I segnali di sovrapposizione ùn ponu micca esse prisenti in tutti i pins portu, ma a figura serve cum'è una descrizzione generica applicabile à tutti i pins portu in a famiglia di microcontroller AVR.

Table 10-2. Descrizzione Generica di Segnali di Sovragnu per Funzioni Alternate

Signal Name Nome interu Descrizzione
PUOE Pull-up Override Abilita Se stu signale hè stabilitu, l'attivazione di pull-up hè cuntrullata da u signale PUOV. Se stu signalu hè sbulicatu, u pull-up hè attivatu quandu

{DDxn, PORTxn, PUD} = 0b010.

PUOV Pull-up Override Value Se PUOE hè stabilitu, u pull-up hè attivatu / disattivatu quandu PUOV hè impostatu / sguassatu, indipendentemente da l'impostazione di i bits di Register DDxn, PORTxn è PUD.
DDOE Abilita l'annullamentu di a direzzione di dati Se stu signale hè stabilitu, l'Output Driver Enable hè cuntrullatu da u signale DDOV. Se stu signale hè sguassatu, u driver Output hè attivatu da u bit Register DDxn.
DDOV Valore di override di direzzione di dati Se DDOE hè stabilitu, u Driver di Output hè attivatu / disattivatu quandu DDOV hè stabilitu / sguassatu, indipendentemente da l'impostazione di u bit Register DDxn.
PVOE Attivà l'annullamentu di u valore di u portu Se stu signale hè stabilitu è ​​u Driver di Output hè attivatu, u valore di u portu hè cuntrullatu da u signale PVOV. Se PVOE hè sguassatu, è u Driver di Output hè attivatu, u valore di u portu hè cuntrullatu da u bit Register PORTxn.
PVOV U valore di u portu Override Value Se PVOE hè stabilitu, u valore di u portu hè stabilitu à PVOV, indipendentemente da l'impostazione di u bit Register PORTxn.
PTOE Port Toggle Override Abilita Se PTOE hè impostatu, u bit Register PORTxn hè invertitu.
DIEOE Abilitazione di l'input digitale Abilita l'override Se stu bit hè stabilitu, l'Enable Input Digitale hè cuntrullatu da u signale DIEOV. Se stu signalu hè sbulicatu, l'Enable Input Digitale hè determinatu da u statu MCU (modu normale, modu di sonnu).
DIEOV Valore di override di attivazione di input digitale Se DIEOE hè impostatu, l'Input Digitale hè attivatu / disattivatu quandu DIEOV hè impostatu / sguassatu, indipendentemente da u statu MCU (modu normale, modu di dorme).
DI Input Digitale Questu hè l'Input Digitale per funzioni alternate. In a figura, u signale hè cunnessu à l'output di u schmitt-trigger ma prima di u synchronizer. A menu chì l'Input Digitale hè utilizatu cum'è una fonte di clock, u modulu cù a funzione alternativa utilizerà u so propiu sincronizatore.
AIO Input / Output Analogicu Questu hè l'Input / Output Analogicu à / da funzioni alternative. U signale hè cunnessu direttamente à u pad, è pò esse usatu bidirezzione.

I seguenti subsezzioni descrizanu brevemente e funzioni alternate per ogni portu, è mette in relazione i signali di sopra à a funzione alternativa. Vede a descrizzione di a funzione alternativa per più dettagli.

Funzioni alternative di u portu B

I pins Port B cù una funzione alternata sò mostrati in Table 10-3.

Table 10-3. Port B Pins Funzioni Alternate

Port Pin Funzione alternativa
PB5

RESET: Reset Pin

dW : debugWIRE I/O ADC0 : Canal d'entrée ADC 0

PCINT5: Pin Change Interrupt, Source 5

PB4 XTAL2: Output Crystal Oscillator CLKO: System Clock Output ADC2: ADC Input Channel 2

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

PB3 XTAL1: Ingressu di l'oscillatore di cristallo CLKI: Ingressu di clock esternu ADC3: Canale d'ingressu ADC 3

OC1B: Timer Complementary/Counter1 Compare Match B Output PCINT3: Pin Change Interrupt 0, Source 3

PB2 SCK: Serial Clock Input ADC1: ADC Input Channel 1

T0: Timer/Counter0 Clock Source USCK: USI Clock (Modu à trè fili) SCL: Clock USI (Modu à dui fili) INT0: Interrupt esterna 0 Input PCINT2: Pin Change Interrupt 0, Source 2

PB1 MISO: SPI Master Data Input / Slave Data Output AIN1: Comparatore Analogicu, Ingressu Negativu OC0B: Timer/Counter0 Comparare Match B Output OC1A: Timer/Counter1 Comparare Match A Output DO: Uscita Dati USI (Modu à trè fili) PCINT1: Pin Change Interrupt 0, Fonte 1
PB0 MOSI:: SPI Master Data Output / Slave Data Input AIN0: Comparatore Analogicu, Input Positivu

OC0A: Timer/Counter0 Compare Match A output

OC1A: Timer Complementariu / Contatore 1 Compare Match A Output DI: Input di Dati USI (Modu à trè fili)

SDA: Ingressu di Dati USI (Modu Dui Fili) AREF: Riferimentu Analogicu Esternu PCINT0: Pin Change Interrupt 0, Source 0

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

RESET: L'entrata di Reset Esterna hè attiva bassa è attivata da unprogramming ("1") u Fusible RSTDISBL. Pullup hè attivatu è u driver di output è l'input digitale sò disattivati ​​quandu u pin hè adupratu cum'è pin RESET.

dW: Quandu u debugWIRE Enable (DWEN) Fuse hè programatu è Lock bits ùn sò micca programati, u sistema debugWIRE in u dispusitivu di destinazione hè attivatu. U pin di u portu RESET hè cunfiguratu cum'è un pin I/O bidirezionale filu-AND (drain aperto) cù pull-up attivatu è diventa a porta di cumunicazione trà destinazione è emulatore.

ADC0: Convertitore Analogicu à Digitale, Canale 0.

PCINT5: Pin Change Interrupt Source 5.

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

XTAL2: Chip Clock Oscillator pin 2. Adupratu cum'è pin clock per tutte e fonti di clock chip eccettu l'oscillatore RC calibrable internu è u clock esternu. Quandu s'utilice cum'è pin di clock, u pin ùn pò micca esse usatu cum'è pin I/O. Quandu si usa un oscillatore RC calibrabile internu o un clock esternu cum'è fonti di clock Chip, PB4 serve cum'è un pin I / O ordinariu.

CLKO: U clock di u sistema divisu pò esse uscita nantu à u pin PB4. U clock di u sistema divisu serà uscita se u CKOUT Fuse hè programatu, indipendentemente da i paràmetri PORTB4 è DDB4. Sarà ancu uscita durante u reset.

ADC2: Convertitore Analogicu à Digitale, Canale 2.

OC1B: Output Compare Match output: U pin PB4 pò serve cum'è output esternu per u Timer / Counter1 Compare Match B quandu cunfiguratu cum'è output (set DDB4). U pin OC1B hè ancu u pin di output per a funzione timer in modalità PWM.

PCINT4: Pin Change Interrupt Source 4.

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

XTAL1: Chip Clock Oscillator pin 1. Adupratu per tutte e fonti di chip clock eccettu l'oscillatore RC calibrateble internu. Quandu s'utilice cum'è pin di clock, u pin ùn pò micca esse usatu cum'è pin I/O.

CLKI: Clock Input da una fonte esterna di clock, vede “Orologio esterno” a pagina 26.

ADC3: Convertitore Analogicu à Digitale, Canale 3.

OC1B: Output Inverted Compare Match output: U pin PB3 pò serve cum'è output esternu per u Timer / Counter1 Compare Match B quandu cunfiguratu cum'è output (set DDB3). U pin OC1B hè ancu u pin di output invertitu per a funzione timer in modalità PWM.

PCINT3: Pin Change Interrupt Source 3.

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

SCK: Output Clock Master, Pin d'ingresso Slave Clock per canale SPI. Quandu u SPI hè attivatu cum'è Slave, stu pin hè cunfiguratu cum'è un input indipendentemente da u paràmetru di DDB2. Quandu u SPI hè attivatu cum'è Maestru, a direzzione di dati di stu pin hè cuntrullata da DDPB2. Quandu u pin hè furzatu da u SPI per esse un input, u pull-up pò ancu esse cuntrullatu da u bit PORTB2.

ADC1: Convertitore Analogicu à Digitale, Canale 1.

T0: Timer/Counter0 fonte di contatore.

USCK: Clock d'interfaccia seriale universale in modalità à trè fili.

SCL: Serial Clock in modalità à dui fili per u modu USI à dui fili.

INT0: Sorgente di interruzzione esterna 0.

PCINT2: Pin Change Interrupt Source 2.

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

MISO: Ingressu di Dati Master, Pin di output di Dati Slave per u canali SPI. Quandu u SPI hè attivatu cum'è Maestru, stu pin hè cunfiguratu cum'è un input indipendentemente da l'impostazione di DDB1. Quandu u SPI hè attivatu cum'è Slave, a direzzione di dati di stu pin hè cuntrullata da DDB1. Quandu u pin hè furzatu da u SPI per esse un input, u pull-up pò ancu esse cuntrullatu da u bit PORTB1.

AIN1: Comparatore Analogicu Input Negativu. Configurate u pin di u portu cum'è input cù u pull-up internu disattivatu per evità chì a funzione di u portu digitale interferisca cù a funzione di u Comparatore Analogicu.

OC0B: Output Compare Match output. U pin PB1 pò serve cum'è output esternu per u Timer / Counter0 Compare Match B. U pin PB1 deve esse cunfiguratu cum'è output (DDB1 set (unu)) per serve sta funzione. U pin OC0B hè ancu u pin di output per a funzione timer in modalità PWM.

OC1A: Output Compare Match output: U pin PB1 pò serve cum'è output esternu per u Timer / Counter1 Compare Match B quandu cunfiguratu cum'è output (set DDB1). U pin OC1A hè ancu u pin di output per a funzione di timer in modalità PWM.

DO: Modu à trè fili Interfaccia Serial Universale Dati output. Modu à trè fili L'output di dati annulla u valore PORTB1 è hè guidatu à u portu quandu u bit di direzzione di dati DDB1 hè impostatu (unu). PORTB1 permette sempre u pull-up, se a direzzione hè input è PORTB1 hè stabilitu (unu).

PCINT1: Pin Change Interrupt Source 1.

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

MOSI: SPI Master Data output, Slave Data input per canale SPI. Quandu u SPI hè attivatu cum'è Slave, stu pin hè cunfiguratu cum'è un input indipendentemente da u paràmetru di DDB0. Quandu u SPI hè attivatu cum'è Maestru, a direzzione di dati di stu pin hè cuntrullata da DDB0. Quandu u pin hè furzatu da u SPI per esse un input, u pull-up pò ancu esse cuntrullatu da u bit PORTB0.

AIN0: Input Positivu di Comparatore Analogicu. Configurate u pin di u portu cum'è input cù u pull-up internu disattivatu per evità chì a funzione di u portu digitale interferisca cù a funzione di u Comparatore Analogicu.

OC0A: Output Compare Match output. U pin PB0 pò serve cum'è output esternu per u Timer / Counter0 Compare Match A quandu cunfiguratu cum'è output (DDB0 set (unu)). U pin OC0A hè ancu u pin di output per a funzione timer in modalità PWM.

OC1A: Output Inverted Compare Match output: U pin PB0 pò serve cum'è output esternu per u Timer / Counter1 Compare Match B quandu cunfiguratu cum'è output (set DDB0). U pin OC1A hè ancu u pin di output invertitu per a funzione di timer in modalità PWM.

SDA: Dati d'interfaccia seriale in modalità à dui fili.

AREF: Riferimentu Analogicu Esternu per ADC. Pullup è u driver di output sò disattivati ​​in PB0 quandu u pin hè utilizatu cum'è riferimentu esternu o Vol internu.tage Riferimentu cù un condensatore esternu à u pin AREF.

DI : entrée de données en mode USI à trois fils. U modu USI à trè fili ùn annulla micca e funzioni di u portu normale, cusì u pin deve esse cunfiguratu cum'è un input per a funzione DI.

PCINT0: Pin Change Interrupt Source 0.

Table 10-4 è Table 10-5 mette in relazione e funzioni alternative di u portu B à i segnali di primura indicati in Figura 10-5 nantu pagina 58.

Table 10-4. Segnali di annullamentu per e funzioni alternative in PB [5:3]

Signal Name 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 debugWire Transmit 0 0
PVOE 0 OC1B Habilita

OC1B Habilita

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

Nota: quandu u Fuse hè "0" (Programmatu).

Table 10-5. Segnali di annullamentu per e funzioni alternative in PB [2:0]

Signal Name PB2/SCK/ADC1/T0/ USCK/SCL/INT0/PCINT2 PB1/MISO/DO/AIN1/ OC1A/OC0B/PCINT1 PB0/MOSI/DI/SDA/AIN0/AR EF/OC1A/OC0A/

PCINT0

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

(SDA + PORTB0) • DDB0

PVOE USI_TWO_WIRE • DDB2 OC0B Enable + OC1A Enable + USI_THREE_WIRE

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

Ingressu PCINT2

Ingressu PCINT1 Entrée DI/SDA/PCINT0
AIO Ingressu ADC1 Comparatore Analogicu Input Negativu Comparatore Analogicu Input Positivu

Description di u Registru

MCUCR - Registru di cuntrollu MCU

Bit 7 6 5 4 3 2 1 0
0x35 BODS PUD SE SM1 SM0 BODSE ISC01 ISC00 MCUCR
Leghjite / Scrive R R/W R/W R/W R/W R R/W R/W
Valore iniziale 0 0 0 0 0 0 0 0

Bit 6 - PUD: Pull-up Disable

Quandu stu bit hè scrittu à unu, i pull-ups in i porti I / O sò disattivati ​​ancu s'è i DDxn è PORTxn Registers sò cunfigurati per attivà i pull-ups ({DDxn, PORTxn} = 0b01). Vede "Configurazione di u Pin" à a pagina 54 per più dettagli nantu à sta funzione.

PORTB - Port B Data Register

Bit 7 6 5 4 3 2 1 0
0x18 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
Leghjite / Scrive R R R/W R/W R/W R/W R/W R/W
Valore iniziale 0 0 0 0 0 0 0 0

DDRB - Port B Data Direction Register

Bit 7 6 5 4 3 2 1 0
0x17 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Leghjite / Scrive R R R/W R/W R/W R/W R/W R/W
Valore iniziale 0 0 0 0 0 0 0 0

PINB - Port B Input Pins Indirizzu

Bit 7 6 5 4 3 2 1 0
0x16 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Leghjite / Scrive R R R/W R/W R/W R/W R/W R/W
Valore iniziale 0 0 N/A N/A N/A N/A N/A N/A

8-bit Timer/Counter0 cù PWM

Features

Dui unità di comparazione di output indipendenti

Doppiu Buffered Output Compare Registers

Clear Timer on Compara Match (Ricarica automatica)

Modulatore di larghezza di impulsu (PWM) senza glitch, correttu di fase

Periodu PWM Variabile

Generatore di Frequenza

Trè fonti di interruzzione indipendenti (TOV0, OCF0A è OCF0B)

Overview

Timer / Counter0 hè un modulu Timer / Counter di u scopu generale di 8-bit, cù duie unità di comparazione di output indipendenti, è cù supportu PWM. Permette un timing precisu di l'esecuzione di u prugramma (gestione di l'eventi) è a generazione d'onda.

Un diagramma di bloccu simplificatu di u Timer / Contatore 8-bit hè mostratu in Figura 11-1. Per u piazzamentu propiu di i pin I/O, riferite à "Pinout ATtiny25/45/85" à a pagina 2. I Registri I/O accessibili da CPU, inclusi i bit I/O è i pin I/O, sò indicati in grassu. U Registru I/O specificu di u dispositivu è i lochi di bit sò listati in u "Descrizione di registrazione" a pagina 77.

U Timer/Counter (TCNT0) è i Registri di Comparazione di Output (OCR0A è OCR0B) sò registri di 8 bit. I signali di dumanda di interruzzione (abbreviata in Int.Req. in a figura) sò tutti visibili in u TIFR (Timer Interrupt Flag Register). Tutte l'interruzioni sò mascherate individualmente cù u Timer Interrupt Mask Register (TIMSK). TIFR è TIMSK ùn sò micca mostrati in a figura.

U Timer / Counter pò esse clocked internamente, via u prescaler, o da una fonte di clock esterna nantu à u pin T0. U bloccu logicu Clock Select cuntrola quale fonte di clock è bordu u Timer / Counter usa per aumentà (o diminuisce) u so valore. U Timer / Counter hè inattivu quandu ùn hè micca sceltu una fonte di clock. L'output da a logica Clock Select hè riferitu cum'è u clock timer (clkT0).

U Doppiu Buffered Output Compare Registers (OCR0A è OCR0B) hè paragunatu cù u valore Timer/Counter in ogni mumentu. U risultatu di a paraguna pò esse utilizatu da u Generatore di Forma d'onda per generà un PWM o una uscita di frequenza variabile nantu à i pins Output Compare (OC0A è OC0B). Vede "Output Compare Unit" à pagina 69. per i dettagli. L'avvenimentu Compare Match stabilisce ancu a Bandiera di Comparazione (OCF0A o OCF0B) chì pò esse usata per generà una dumanda d'interruzione di Comparazione di Output.

Definizioni

Parechji riferimenti di registru è di bit in questa sezione sò scritti in forma generale. Una minuscula "n" rimpiazza u numeru Timer / Contatore, in questu casu 0. Una minuscula "x" rimpiazza l'Unità di Comparazione di Output, in questu casu Compare Unit A o Compare Unit B. Tuttavia, quandu si usa u registru o u bit define in un prugramma, a forma precisa deve esse usata, vale à dì, TCNT0 per accede à u valore di u contatore Timer / Counter0 è cusì.

Le definizioni in Table 11-1 sò ancu utilizati assai in tuttu u documentu.

Table 11-1. Definizioni

Custante Descrizzione
BOTTOM U contatore righjunghji BOTTOM quandu diventa 0x00
MAX U cuntatore righjunghji u so MAXimmu quandu diventa 0xFF (decimal 255)
TOP U contatore righjunghji u TOP quandu diventa uguali à u valore più altu in a sequenza di cunti. U valore TOP pò esse assignatu per esse u valore fissu 0xFF (MAX) o u valore guardatu in u Registru OCR0A. L'assignazione dipende di u modu di funziunamentu

Timer/Counter Prescaler è Clock Sources

U Timer / Counter pò esse clock da una fonte interna o esterna. A fonte di u clock hè sceltu da a logica Clock Select chì hè cuntrullata da i bit Clock Select (c) situati in u Registru di Control Timer / Counter0 (TCCR0B).

Fonte interna di l'orologio cù Prescaler

Timer / Counter0 pò esse clock direttamente da u clock di u sistema (impostendu u CS0 [2: 0] = 1). Questu furnisce l'operazione più veloce, cù una frequenza massima di timer / contatore uguale à a frequenza di clock di u sistema (fCLK_I/O). In alternativa, unu di quattru taps da u prescaler pò esse usatu cum'è fonte di clock. U clock prescaled hà una frequenza di sia

Reset di prescaler

U prescaler hè liberu, vale à dì chì opera indipindentamente da a logica Clock Select di Timer/Counter0. Siccomu u prescaler ùn hè micca affettatu da a selezzione di l'orologio di u timer / contatore, u statu di u prescaler avarà implicazioni per situazioni induve un clock prescaled hè utilizatu. Un exampLe di un artefattu di prescaling hè quandu u timer / contatore hè attivatu è clock da u prescaler (6> CS0[2:0]> 1). U numeru di cicli di clock di u sistema da quandu u timer hè attivatu à u primu cuntu pò esse da 1 à N + 1 cicli di clock di u sistema, induve N hè uguale à u divisore di prescaler (8, 64, 256, o 1024).

Hè pussibule aduprà u Prescaler Reset per sincronizà u Timer / Counter à l'esekzione di u prugramma.

Fonte di l'Orologio Esternu

Una fonte di clock esterna appiicata à u pin T0 pò esse usata cum'è timer / counter clock (clkT0). U pin T0 hè sampguidatu una volta ogni ciclu di clock di u sistema da a logica di sincronizazione di pin. U sincronizatu (sampled) u signalu hè passatu

attraversu u detector di bordu. Figura 11-2 mostra un schema di bloccu equivalente funziunale di a sincronizazione T0 è a logica di detector di bordu. I registri sò clock à u latu pusitivu di u clock di u sistema internu (clkI / O). U latch hè trasparente in u periodu altu di u clock di u sistema internu.

U detector di bordu genera un impulsu clkT0 per ogni fronte pusitivu (CS0[2:0] = 7) o negativu (CS0[2:0] = 6) chì rileva.

I Registri OCR0x sò doppiu buffered quandu utilizanu qualsiasi di i modi di Modulazione di Larghezza di Pulse (PWM). Per i modi di funziunamentu normale è Clear Timer on Compare (CTC), a doppia buffering hè disattivata. U doppiu buffering sincronizza l'aghjurnamentu di l'OCR0x Compare Registers sia in cima sia in fondu di a sequenza di cunti. A sincronizazione impedisce l'occurrence di impulsi PWM di lunghezza strana, non simmetrica, rendendu cusì l'output senza glitch.

L'accessu à u Registru OCR0x pò esse cumplessu, ma questu ùn hè micca casu. Quandu u doppiu buffering hè attivatu, u CPU hà accessu à l'OCR0x Buffer Register, è se u doppiu buffering hè disattivatu, u CPU accede direttamente à l'OCR0x.

Forza Output Compare

In i modi di generazione di forma d'onda non-PWM, l'output matching di u comparatore pò esse furzatu scrivendu unu à u bit Force Output Compare (FOC0x). Forcing Compare Match ùn stabilisce micca a Bandiera OCF0x o ricaricà / sguassate u timer, ma u pin OC0x serà aghjurnatu cum'è s'ellu hè accadutu un veru Compare Match (i paràmetri di COM0x[1:0] bits definiscenu se u pin OC0x hè stabilitu, sbulicatu. o toggled).

Comparare Match Blocking da TCNT0 Write

Tutte l'operazioni di scrittura di CPU à u Registru TCNT0 bluccheranu qualsiasi Match di Comparazione chì si verificanu in u prossimu ciclu di clock timer, ancu quandu u timer hè firmatu. Questa funzione permette à OCR0x di esse inizializatu à u listessu valore cum'è TCNT0 senza attivà una interruzzione quandu u Timer / Counter clock hè attivatu.

Utilizendu l'unità di comparazione di output

Siccomu scrive TCNT0 in ogni modu di funziunamentu bluccarà tutti i Compare Matches per un ciclu di clock timer, ci sò risichi implicati quandu si cambia TCNT0 quandu si usa l'Output Compare Unit, indipendentamente se u Timer / Counter hè in esecuzione o micca. Se u valore scrittu à TCNT0 hè uguale à u valore OCR0x, u Cumparisce Match serà mancatu, risultatu in una generazione di forma d'onda incorrecta. In listessu modu, ùn scrivite micca u valore TCNT0 uguale à BOTTOM quandu u cuntatore hè in calata.

A cunfigurazione di l'OC0x deve esse realizatu prima di stabilisce u Registru di Direzzione di Dati per u pin di u portu à a pruduzzioni. A manera più faciule di stabilisce u valore OC0x hè di utilizà i bits strobe di Force Output Compare (FOC0x) in modalità Normale. I Registri OC0x mantenenu i so valori ancu quandu cambianu trà i modi di generazione di forma d'onda.

Siate cuscenti chì i bit COM0x[1:0] ùn sò micca doppia buffered inseme cù u valore di paragunà. U cambiamentu di i bit COM0x [1: 0] averà effettu immediatamente.

Comparare Match Output Unit

U Modu di Output Compare (COM0x[1:0]) bits anu duie funzioni. U Generatore di forma d'onda usa i bit COM0x [1: 0] per definisce u statu di Output Compare (OC0x) à u prossimu Compare Match. Inoltre, i bit COM0x[1:0] cuntrolanu a fonte di output pin OC0x. Figura 11-6 mostra un schema simplificatu di a logica affettata da l'impostazione di bit COM0x[1:0]. Les registres d'E/S, les bits d'E/S et les broches d'E/S dans la figure sont indiqués en gras. Solu e parte di i Registri Generali di Controlu di Port I/O (DDR è PORT) chì sò affettati da i bit COM0x[1:0] sò mostrati. Quandu si riferisce à u statu OC0x, a riferenza hè per u Registru OC0x internu, micca u pin OC0x. Se si verifica un reset di u sistema, u Registru OC0x hè resettatu à "0".

Quandu OC0A/OC0B hè cunnessu à u pin I/O, a funzione di i bit COM0A[1:0]/COM0B[1:0] dipende da l'impostazione di bit WGM0[2:0]. Table 11-2 mostra a funziunalità COM0x [1: 0] bit quandu i bit WGM0 [2: 0] sò impostati in un modu normale o CTC (non-PWM).

Table 11-2. Comparare Modu Output, Modu non-PWM

COM0A1 COM0B1 COM0A0 COM0B0 Descrizzione
0 0 Operazione normale di u portu, OC0A / OC0B disconnected.
0 1 Toggle OC0A / OC0B in Compare Match
1 0 Cancella OC0A/OC0B in Comparazione Match
1 1 Pone OC0A/OC0B in Compare Match

Table 11-3 mostra a funziunalità COM0x[1:0] bit quandu i bit WGM0[2:0] sò impostati in modu PWM veloce.

Table 11-3. Comparare Modu Output, Modu PWM veloce(1)

COM0A1 COM0B1 COM0A0 COM0B0 Descrizzione
0 0 Operazione normale di u portu, OC0A / OC0B disconnected.
0 1 Riservatu
1 0 Sguassà OC0A/OC0B nantu à Comparare Match, stabilisce OC0A/OC0B in BOTTOM (modu senza inversione)
1 1 Pone OC0A/OC0B in Compare Match, sguassate OC0A/OC0B in BOTTOM (modu d'inversione)

Nota: Un casu speciale si trova quandu OCR0A o OCR0B uguale à TOP è COM0A1/COM0B1 hè stabilitu. In questu casu, u cunfrontu di cunfrontu hè ignoratu, ma u set o clear hè fattu in BOTTOM. Vede “Modalità PWM veloce” a pagina 73 per più dettagli.

Table 11-4 mostra a funziunalità di u bit COM0x[1:0] quandu i bit WGM0[2:0] sò impostati in u modu PWM correttu di fasa.

Table 11-4. Paragunà u Modu di Output, u Modu PWM Correct Fase(1)

COM0A1 COM0B1 COM0A0 COM0B0 Descrizzione
0 0 Operazione normale di u portu, OC0A / OC0B disconnected.
0 1 Riservatu
1 0 Cancella OC0A / OC0B in Comparazione Match durante u conte. Pone OC0A / OC0B nantu à Comparare Match durante u conte.
1 1 Pone OC0A / OC0B nantu à Compare Match durante u conte. Cancella OC0A / OC0B in Comparazione Match durante u conte.

Nota: 1. Un casu particulari si trova quandu OCR0A o OCR0B uguali TOP è COM0A1/COM0B1 hè stallatu. In questu casu, u Compare Match hè ignoratu, ma u set o clear hè fattu in TOP. Vede “Modu PWM di correzione di fase” a pagina 74 per più dettagli.

Bits 3: 2 - Res: Bit riservati

Questi bits sò bits riservati in l'ATtiny25/45/85 è sempre leghje cum'è zero.

Bits 1:0 - WGM0[1:0]: Modu di generazione di forma d'onda

Cumminatu cù u bit WGM02 chì si trova in u Registru TCCR0B, sti bits cuntrollanu a sequenza di cunti di u contatore, a fonte per u valore massimu di u contatore (TOP), è chì tipu di generazione di forma d'onda per esse utilizata, vede. Table 11-5. I modi di funziunamentu supportati da l'unità Timer / Contatore sò: Modu normale (contatore), Modu Clear Timer on Compare Match (CTC) è dui tipi di modi di Modulazione di larghezza di impulsi (PWM) (vede "Modi di funziunamentu" a pagina 71).

Table 11-5. Modu di generazione di forma d'onda Descrizione di bit

Modu WGM 02 WGM 01 WGM 00 Modu di Funzionamentu Timer / Contatore TOP Actualizazione di OCRx à A bandiera TOV hè attivata
0 0 0 0 Normale 0xFF Immediatu MAX(1)
1 0 0 1 PWM, Phase Correct 0xFF TOP BOTTOM(2)
2 0 1 0 CTC OCRA Immediatu MAX(1)
3 0 1 1 PWM veloce 0xFF BOTTOM(2) MAX(1)
4 1 0 0 Riservatu
5 1 0 1 PWM, Phase Correct OCRA TOP BOTTOM(2)
6 1 1 0 Riservatu
7 1 1 1 PWM veloce OCRA BOTTOM(2) TOP

Bit 7 - FOC0A: Force Output Compare A

U bit FOC0A hè attivu solu quandu i bit WGM specificanu un modu non-PWM.

In ogni casu, per assicurà a cumpatibilità cù i dispositi futuri, stu bit deve esse sette à zero quandu TCCR0B hè scrittu quandu opera in modu PWM. Quandu scrivite una logica à u bit FOC0A, un immediatu Compare Match hè furzatu nantu à l'unità Waveform Generation. L'output OC0A hè cambiatu secondu u so paràmetru di bit COM0A[1:0]. Nota chì u bit FOC0A hè implementatu cum'è un strobe. Dunque hè u valore presente in i bit COM0A[1:0] chì determina l'effettu di a compara forzata.

Un stroboscopiu FOC0A ùn generà alcuna interruzzione, nè sguasserà u timer in u modu CTC usendu OCR0A cum'è TOP. U bit FOC0A hè sempre lettu cum'è zero.

Bit 6 - FOC0B: Forza Output Compara B

U bit FOC0B hè attivu solu quandu i bit WGM specificanu un modu non-PWM.

In ogni casu, per assicurà a cumpatibilità cù i dispositi futuri, stu bit deve esse sette à zero quandu TCCR0B hè scrittu quandu opera in modu PWM. Quandu scrivite una logica à u bit FOC0B, un immediatu Comparare Match hè furzatu nantu à l'unità Waveform Generation. L'output OC0B hè cambiatu secondu u so paràmetru COM0B[1:0] bits. Nota chì u bit FOC0B hè implementatu cum'è un strobe. Dunque hè u valore presente in i bit COM0B[1:0] chì determina l'effettu di a compara forzata.

Un stroboscopiu FOC0B ùn generà alcuna interruzzione, nè sguasserà u timer in u modu CTC usendu OCR0B cum'è TOP.

U bit FOC0B hè sempre lettu cum'è zero.

Bits 5: 4 - Res: Bit riservati

Questi bits sò bits riservati in l'ATtiny25/45/85 è sempre leghje cum'è zero.

Bit 3 - WGM02: Modu di generazione di forma d'onda

Vede a descrizzione in u “TCCR0A – Registru A di cuntrollu di timer/contatore” a pagina 77.

Bits 2:0 - CS0[2:0]: Selezzione di l'orologio

I trè bit Clock Select selezziunà a fonte di clock per esse utilizata da u Timer / Counter.

Table 11-6. Clock Select Bit Description

CS02 CS01 CS00 Descrizzione
0 0 0 Nisuna fonte di clock (Timer / Contatore fermatu)
0 0 1 clkI/O/(senza prescaling)
0 1 0 clkI/O/8 (da prescaler)
0 1 1 clkI/O/64 (da prescaler)
1 0 0 clkI/O/256 (da prescaler)
1 0 1 clkI/O/1024 (da prescaler)
1 1 0 Fonte di clock esterna nantu à u pin T0. Orologio nantu à u bordu di caduta.
1 1 1 Fonte di clock esterna nantu à u pin T0. Orologio nantu à u bordu ascendante.

Se i modi di pin esterni sò utilizati per u Timer / Counter0, e transizioni nantu à u pin T0 clock the counter even if the pin is configured as a output. Sta funzione permette u cuntrollu di u software di u contu.

Cuntarà è paragunate unità

L'operazione generale Timer/Counter1 hè descritta in u modu asincronu è l'operazione in u modu sincronu hè citatu solu s'ellu ci sò diffirenzii trà sti dui modi. Figura 12-2 mostra un diagramma di bloccu di u registru di sincronizazione di Timer / Contatore 1 è i ritardi di sincronizazione trà i registri. Nota chì tutti i dettagli di u clock gating ùn sò micca mostrati in a figura. I valori di u registru Timer/Counter1 passanu per i registri di sincronizazione interna, chì causanu u ritardu di sincronizazione di input, prima di affettà l'operazione di u contatore. I registri TCCR1, GTCCR, OCR1A, OCR1B, è OCR1C ponu esse letti dopu à scrive u registru. I valori di lettura sò ritardati per u registru Timer/Counter1 (TCNT1) è i bandieri (OCF1A, OCF1B è TOV1), per via di a sincronizazione di input è output.

U Timer/Counter1 presenta una alta risoluzione è un usu di alta precisione cù l'opportunità di prescaling più bassa. Puderà ancu supportà dui modulatori precisi, d'alta velocità, 8-bit Pulse Width chì utilizanu velocità di clock finu à 64 MHz (o 32 MHz in Modu Low Speed). In questu modu, Timer/Counter1 è i registri di comparazione di output servenu cum'è PWM duali autonomi cù outputs non invertiti è invertiti senza sovrapposizione. Riferite à pagina 86 per una descrizione dettagliata di sta funzione. In listessu modu, l'alta opportunità di prescaling facenu sta unità utile per funzioni di velocità più bassa o funzioni di timing esatta cù azioni pocu frequenti.

Figura 12-2. Timer/Counter 1 Sincronizazione Register Block Diagram.

Timer / Counter1 è u prescaler permettenu di eseguisce u CPU da qualsiasi fonte di clock mentre u prescaler opera nantu à u rapidu clock PCK 64 MHz (o 32 MHz in Mode Low Speed) in u modu asincronu.

Nota chì a frequenza di u clock di u sistema deve esse più bassu di un terzu di a frequenza PCK. U mecanismu di sincronizazione di u Timer / Counter1 asincronu hà bisognu di almenu dui bordi di u PCK quandu u clock di u sistema hè altu. Se a freccia di u clock di u sistema hè troppu altu, hè un risicu chì i valori di dati o di cuntrollu sò persi.

I seguenti Figura 12-3 mostra u schema di bloccu per Timer/Counter1.

Table 12-1. Comparare Mode Select in Mode PWM

COM1x1 COM1x0 Effettu nantu à l'output Compare Pins
0 0 OC1x micca cunnessu. OC1x micca cunnessu.
0 1 OC1x sbulicatu nantu à a partita di paragone. Definite quandu TCNT1 = $ 00. OC1x stabilitu nantu à a partita di paragone. Sguassatu quandu TCNT1 = $ 00.
1 0 OC1x sbulicatu nantu à a partita di paragone. Set quandu TCNT1 = $ 00. OC1x micca cunnessu.
1 1 OC1x Misetu nantu à u match paragunatu. Sguassatu quandu TCNT1 = $ 00. OC1x micca cunnessu.

Caratteristiche ADC

Table 21-8. Caratteristiche ADC, Canali Single Ended. TA = -40°C à +85°C

Simbulu Parametru Cundizione Min Tipu Max Unità
Risoluzione 10 Bits
Precisione assoluta (Inclusu errori INL, DNL è Quantization, Gain è Offset) VREF = 4V, VCC = 4V,

Clock ADC = 200 kHz

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

Clock ADC = 1 MHz

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

Clock ADC = 200 kHz

Modu di Riduzione di Rumore

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

Clock ADC = 1 MHz

Modu di Riduzione di Rumore

2.5 LSB
Non-linearité intégrale (INL) (précision après calibration de l'offset et du gain) VREF = 4V, VCC = 4V,

Clock ADC = 200 kHz

1 LSB
Non-linearità differenziale (DNL) VREF = 4V, VCC = 4V,

Clock ADC = 200 kHz

0.5 LSB
Guadagnà Errore VREF = 4V, VCC = 4V,

Clock ADC = 200 kHz

2.5 LSB
Errore di offset VREF = 4V, VCC = 4V,

Clock ADC = 200 kHz

1.5 LSB
Tempu di cunversione Cunversione Free Running 14 280 µs
Frequenza di u Clock 50 1000 kHz
VIN Input Voltage GND VREF V
Larghezza di banda di input 38.4 kHz
AREF Riferimentu Esternu Voltage 2.0 VCC V
VINT Vol internutage Riferimentu 1.0 1.1 1.2 V
Riferimentu internu 2.56V (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF 32
PIOVA Resistenza di input analogicu 100
Output ADC 0 1023 LSB

Nota: 1. I valori sò linee guida solu.

Table 21-9. Caratteristiche ADC, Canali Differenziali (Modu Unipolari). TA = -40°C à +85°C

Simbulu Parametru Cundizione Min Tipu Max Unità
Risoluzione Guadagno = 1x 10 Bits
Guadagno = 20x 10 Bits
Precisione assoluta (inclusi INL, DNL, ​​è

Errori di quantificazione, guadagnu è offset)

Guadagno = 1x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

10.0 LSB
Guadagno = 20x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

20.0 LSB
Non-linearità integrale (INL) (Precisione dopu a calibrazione di l'offset è di u guadagnu) Guadagno = 1x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

4.0 LSB
Guadagno = 20x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

10.0 LSB
Guadagnà Errore Guadagno = 1x 10.0 LSB
Guadagno = 20x 15.0 LSB
Errore di offset Guadagno = 1x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

3.0 LSB
Guadagno = 20x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

4.0 LSB
Tempu di cunversione Cunversione Free Running 70 280 µs
Frequenza di u Clock 50 200 kHz
VIN Input Voltage GND VCC V
VDIFF Input Differential Voltage VREF/Gain V
Larghezza di banda di input 4 kHz
AREF Riferimentu Esternu Voltage 2.0 VCC - 1.0 V
VINT Vol internutage Riferimentu 1.0 1.1 1.2 V
Riferimentu internu 2.56V (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF Resistenza d'ingressu di riferimentu 32
PIOVA Resistenza di input analogicu 100
Output di cunversione ADC 0 1023 LSB

Nota: I valori sò solu linee guida.

Table 21-10. Caratteristiche ADC, Canali Differenziali (Modu Bipolari). TA = -40°C à +85°C

Simbulu Parametru Cundizione Min Tipu Max Unità
Risoluzione Guadagno = 1x 10 Bits
Guadagno = 20x 10 Bits
Precisione assoluta (inclusi INL, DNL, ​​è

Errori di quantificazione, guadagnu è offset)

Guadagno = 1x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

8.0 LSB
Guadagno = 20x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

8.0 LSB
Non-linearità integrale (INL) (Precisione dopu a calibrazione di l'offset è di u guadagnu) Guadagno = 1x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

4.0 LSB
Guadagno = 20x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

5.0 LSB
Guadagnà Errore Guadagno = 1x 4.0 LSB
Guadagno = 20x 5.0 LSB
Errore di offset Guadagno = 1x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

3.0 LSB
Guadagno = 20x

VREF = 4V, VCC = 5V

Clock ADC = 50 - 200 kHz

4.0 LSB
Tempu di cunversione Cunversione Free Running 70 280 µs
Frequenza di u Clock 50 200 kHz
VIN Input Voltage GND VCC V
VDIFF Input Differential Voltage VREF/Gain V
Larghezza di banda di input 4 kHz
AREF Riferimentu Esternu Voltage 2.0 VCC - 1.0 V
VINT Vol internutage Riferimentu 1.0 1.1 1.2 V
Riferimentu internu 2.56V (1) VCC > 3.0V 2.3 2.56 2.8 V
RREF Resistenza d'ingressu di riferimentu 32
PIOVA Resistenza di input analogicu 100
Output di cunversione ADC -512 511 LSB

Sintesi di l'istruzzioni

Mnemotecnica Operandi Descrizzione Operazione Bandiere #Orli
ISTRUZIONI ARITMETICHE È LOGICHE
ADD Rd, Rr Aghjunghje dui Registri Rd ← Rd + Rr Z, C, N, V, H 1
ADC Rd, Rr Aghjunghje cù Carry two Registers Rd ← Rd + Rr + C Z, C, N, V, H 1
ADIW Rdl, K Aghjunghjite Immediate à Word Rdh:Rdl ← Rdh:Rdl + K Z, C, N, V, S 2
SUB Rd, Rr Sottrae dui Registri Rd ← Rd - Rr Z, C, N, V, H 1
SU Rd, K Sottraete Constant da u Registru Rd ← Rd – K Z, C, N, V, H 1
SBC Rd, Rr Sottraete cù Purtate dui Registri Rd ← Rd – Rr – C Z, C, N, V, H 1
SBCI Rd, K Sottraete cù Carry Constant da Reg. Rd ← Rd – K – C Z, C, N, V, H 1
SBIW Rdl, K Sottrai Immediate da Word Rdh:Rdl ← Rdh:Rdl – K Z, C, N, V, S 2
È Rd, Rr Logicu È Registri Rd ← Rd ∙ Rr Z, N, V 1
ANDI Rd, K Logicu È Registru è Costante Rd ← Rd ∙ K Z, N, V 1
OR Rd, Rr Registri Logichi O Rd ← Rd v Rr Z, N, V 1
ORI Rd, K Logicu O Registru è Costante Rd ← Rd v K Z, N, V 1
EOR Rd, Rr Registri OR esclusivi Rd ← Rd ⊕ Rr Z, N, V 1
COM Rd Cumplementu di Unu Rd ← 0xFF − Rd Z, C, N, V 1
NEG Rd U cumplementu di dui Rd ← 0x00 − Rd Z, C, N, V, H 1
SBR Rd, K Set Bit (s) in Registru Rd ← Rd v K Z, N, V 1
CBR Rd, K Cancellà Bit (i) in Registru Rd ← Rd ∙ (0xFF – K) Z, N, V 1
INC Rd Incrementa Rd ← Rd + 1 Z, N, V 1
DEC Rd Diminuzione Rd ← Rd - 1 Z, N, V 1
TST Rd Pruvene per Zero o Minus Rd ← Rd ∙ Rd Z, N, V 1
CLR Rd Registru Chjaru Rd ← Rd ⊕ Rd Z, N, V 1
SER Rd Set Registru Rd ← 0xFF Nimu 1
ISTRUZIONI DI BRANCH
RJMP k Saltu Relativu PC ← PC + k + 1 Nimu 2
IJMP Saltu indirettu à (Z) PC ← Z Nimu 2
RCALL k Chjama Relativa di Subrutina PC ← PC + k + 1 Nimu 3
ICALL Chjama indiretta à (Z) PC ← Z Nimu 3
RET Ritornu di u Subrutinu PC ← STACK Nimu 4
RETI Riturnà Interrotta PC ← STACK I 4
CPSE Rd, Rr Paragunate, Saltate sì Uguale se (Rd = Rr) PC ← PC + 2 ou 3 Nimu 1/2/3
CP Rd, Rr Comparare Rd - Rr Z, N, V, C, H 1
CPC Rd, Rr Paragunà cù Carry Rd - Rr - C Z, N, V, C, H 1
CPI Rd, K Paragunate Registru cù Immediate Rd - K Z, N, V, C, H 1
SBRC Rr, b Saltate se Bit in Register Cleared se (Rr(b)=0) PC ← PC + 2 ou 3 Nimu 1/2/3
SBRS Rr, b Saltate se Bit in Register hè Set se (Rr(b)=1) PC ← PC + 2 ou 3 Nimu 1/2/3
SBIC P, b Saltate se Bit in I / O Register Cancellatu se (P(b)=0) PC ← PC + 2 ou 3 Nimu 1/2/3
SBIS P, b Saltate se Bit in Registru I / O hè Set se (P(b)=1) PC ← PC + 2 ou 3 Nimu 1/2/3
BRBS s, k Ramificà si Status Flag Set se (SREG(s) = 1) alors PC←PC+k + 1 Nimu 1/2
BRBC s, k Ramificà si Bandiera di Statu Cancellata se (SREG(s) = 0) alors PC←PC+k + 1 Nimu 1/2
BREQ k Branch if Equal se (Z = 1) allora PC ← PC + k + 1 Nimu 1/2
BRNE k Branch if Not Equal se (Z = 0) allora PC ← PC + k + 1 Nimu 1/2
BRCS k Ramificà si Carry Set se (C = 1) allora PC ← PC + k + 1 Nimu 1/2
BRCC k Ramificà si Carry Cleared se (C = 0) allora PC ← PC + k + 1 Nimu 1/2
BRSH k Ramificà sì Stessu o Superiore se (C = 0) allora PC ← PC + k + 1 Nimu 1/2
BRLO k Ramu si Inferiore se (C = 1) allora PC ← PC + k + 1 Nimu 1/2
BRMI k Ramificà si Minus se (N = 1) allora PC ← PC + k + 1 Nimu 1/2
BRPL k Ramificà si Plus se (N = 0) allora PC ← PC + k + 1 Nimu 1/2
BRGE k Ramu sì Maghju o Uguale, Firmatu se (N ⊕ V= 0) allora PC ← PC + k + 1 Nimu 1/2
BRLT k Ramu si menu di Zero, Firmatu se (N ⊕ V= 1) allora PC ← PC + k + 1 Nimu 1/2
BRHS k Ramificà si Mezzu Carry Flag Set se (H = 1) allora PC ← PC + k + 1 Nimu 1/2
BRHC k Ramificà si Mezza Carry Flag Eliminata se (H = 0) allora PC ← PC + k + 1 Nimu 1/2
BRTS k Ramificà se T Flag Set se (T = 1) allora PC ← PC + k + 1 Nimu 1/2
BRTC k Ramificà si Bandiera T Cancellata se (T = 0) allora PC ← PC + k + 1 Nimu 1/2
BRVS k Ramificà se u Flag di Overflow hè Set se (V = 1) allora PC ← PC + k + 1 Nimu 1/2
BRVC k Ramificà se u Flag di Overflow hè Cancellatu se (V = 0) allora PC ← PC + k + 1 Nimu 1/2
BRIE k Branch si Interrupt Enabled se (I = 1) alors PC ← PC + k + 1 Nimu 1/2
BRID k Branch si Interrupt Disabled se (I = 0) alors PC ← PC + k + 1 Nimu 1/2
ISTRUZIONI DI BIT E BIT-TEST
SBI P, b Set Bit in Registru I / O I/O(P,b) ← 1 Nimu 2
CBI P, b Cancellu Bit in Registru I / O I/O(P,b) ← 0 Nimu 2
LSL Rd Sposta logica a sinistra Rd(n+1) ← Rd(n), Rd(0) ← 0 Z, C, N, V 1
LSR Rd Sposta logica a diritta Rd(n) ← Rd(n+1), Rd(7) ← 0 Z, C, N, V 1
RULE Rd Rotate à sinistra attraversu Carry Rd(0)←C,Rd(n+1)← Rd(n),C←Rd(7) Z, C, N, V 1
ROR Rd Rotate à a Diritta attraversu Carry Rd(7)←C,Rd(n)← Rd(n+1),C←Rd(0) Z, C, N, V 1
ASR Rd Shift Aritmeticu Right Rd(n) ← Rd(n+1), n=0..6 Z, C, N, V 1
Mnemotecnica Operandi Descrizzione Operazione Bandiere #Orli
SCAMBIA Rd Scambià Nibbles Rd(3..0)←Rd(7..4),Rd(7..4)←Rd(3..0) Nimu 1
BSET s Insignia Bandiera SREG(s) ← 1 SREG (s) 1
BCLR s Bandera Chjaru SREG(s) ← 0 SREG (s) 1
BST Rr, b Bit Store da Registru à T T ← Rr(b) T 1
BLD Rd, b Carica di bit da T à Registrazione Rd(b) ← T Nimu 1
SEC Set Carry C ← 1 C 1
CLC Clear Carry C ← 0 C 1
SEN Set Bandiera Negativa N ← 1 N 1
CLN Limpia Bandera Negativa N ← 0 N 1
SEZ Set Zero Flag Z ← 1 Z 1
CLZ Clear Zero Flag Z ← 0 Z 1
SEI Abilitazione di l'Interruzzione Globale I ← 1 I 1
CLI Disattivazione Globale di Interruzzione I ← 0 I 1
SES Set Bandiera di Prughjettu Firmatu S ← 1 S 1
CLS Chjaru Bandera di Test Firmata S ← 0 S 1
SEV Set Twos Complement Overflow. V ← 1 V 1
CLV Chjarate Twos Cumplementu Overflow V ← 0 V 1
SET Piazzà T in SREG T ← 1 T 1
CLT Sguassà T in SREG T ← 0 T 1
SEH Piazzà Half Flag Carry in SREG H ← 1 H 1
CLH Clear Clear Half Carry Flag in SREG H ← 0 H 1
ISTRUZIONI DI TRASFERIMENTU DI DATI
MOV Rd, Rr Spustà trà Registri Rd ← Rr Nimu 1
MOVW Rd, Rr Copia u Registru Word Rd+1:Rd ← Rr+1:Rr Nimu 1
LDI Rd, K Carica Immediata Rd ← K Nimu 1
LD Rd, X Carica indiretta Rd ← (X) Nimu 2
LD Rd, X + Carica indiretta è Post-Inc. Rd ← (X), X ← X + 1 Nimu 2
LD Rd, - X Carica indiretta è Pre-Dec. X ← X – 1, Rd ← (X) Nimu 2
LD Rd, Y Carica indiretta Rd ← (Y) Nimu 2
LD Rd, Y+ Carica indiretta è Post-Inc. Rd ← (Y), Y ← Y + 1 Nimu 2
LD Rd, - Y Carica indiretta è Pre-Dec. Y ← Y – 1, Rd ← (Y) Nimu 2
LDD Rd, Y + q Carica indiretta cù spostamentu Rd ← (Y + q) Nimu 2
LD Rd, Z Carica indiretta Rd ← (Z) Nimu 2
LD Rd, Z+ Carica indiretta è Post-Inc. Rd ← (Z), Z ← Z+1 Nimu 2
LD Rd, -Z Carica indiretta è Pre-Dec. Z ← Z – 1, Rd ← (Z) Nimu 2
LDD Rd, Z + q Carica indiretta cù spostamentu Rd ← (Z + q) Nimu 2
LDS Rd, k Carica direttamente da SRAM Rd ← (k) Nimu 2
ST X, Rr Store indirettu (X) ← Rr Nimu 2
ST X+, Rr Store Indirect è Post-Inc. (X) ← Rr, X ← X + 1 Nimu 2
ST – X, Rr Store Indirect è Pre-Dec. X ← X – 1, (X) ← Rr Nimu 2
ST Y, Rr Store indirettu (Y) ← Rr Nimu 2
ST Y+, Rr Store Indirect è Post-Inc. (Y) ← Rr, Y ← Y + 1 Nimu 2
ST -Y, Rr Store Indirect è Pre-Dec. Y ← Y – 1, (Y) ← Rr Nimu 2
STD Y + q, Rr Store Indirect cù Spostamenti (Y + q) ← Rr Nimu 2
ST Z, Rr Store indirettu (Z) ← Rr Nimu 2
ST Z+, Rr Store Indirect è Post-Inc. (Z) ← Rr, Z ← Z + 1 Nimu 2
ST - Z, Rr Store Indirect è Pre-Dec. Z ← Z – 1, (Z) ← Rr Nimu 2
STD Z + q, Rr Store Indirect cù Spostamenti (Z + q) ← Rr Nimu 2
STS k, Rr Store Direct à SRAM (k) ← Rr Nimu 2
LPM Carica a Memoria di u prugramma R0 ← (Z) Nimu 3
LPM Rd, Z Carica a Memoria di u prugramma Rd ← (Z) Nimu 3
LPM Rd, Z+ Load Program Memory è Post-Inc Rd ← (Z), Z ← Z+1 Nimu 3
SPM Store u prugramma di memoria (z) ← R1:R0 Nimu
IN Rd, P In Portu Rd ← P Nimu 1
OUT P, Rr Fora di Portu P ← Rr Nimu 1
SPUGNA Rr Push Register on Stack STACK ← Rr Nimu 2
POP Rd Pop Register da Stack Rd ← STACK Nimu 2
ISTRUZIONI DI CONTROLLO MCU
NOP Nisuna operazione Nimu 1
DORMI Dormi (vede a descrizzione specifica per a funzione Sonnu) Nimu 1
WDR Reset di Watchdog (vede a descrizzione specifica per WDR/Timer) Nimu 1
BREAK Break
Velocità (MHz) (1) Corsu Voltage (V) Gamma di temperatura Pacchettu (2) Codice di ordine (3)
10 1.8 - 5.5 Industriale

(-40 ° C à + 85 ° C) (4)

8P3 ATtiny45V-10PU
8S2 ATtiny45V-10SU ATtiny45V-10SUR ATtiny45V-10SH ATtiny45V-10SHR
8X ATtiny45V-10XU ATtiny45V-10XUR
20M1 ATtiny45V-10MU ATtiny45V-10MUR
20 2.7 - 5.5 Industriale

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

Notes: 1. Per a velocità versus supply voltage, vede a sezione 21.3 “Velocità” a pagina 163.

Tutti i pacchetti sò privi di Pb, senza alogenuri è cumpletamente verdi è sò conformi à a direttiva europea per a Restrizione di Sustanze Periculi (RoHS).

Indicatori di codice

H: NiPdAu piombo finitu

U: stagno matte

R: cinta è bobina

Sti dispusitivi ponu dinù esse furnitu in forma wafer. Per piacè cuntattate u vostru uffiziu di vendita Atmel lucali per informazioni dettagliate di ordine è quantità minime.

Erratum

Errata ATtiny25

A lettera di revisione in questa sezione si riferisce à a revisione di u dispusitivu ATtiny25.

Rev D-F

Nisuna errata cunnisciuta.

Rev B - C

A lettura di l'EEPROM pò fallu à u bassu voltage/bassa frequenza di clock

A lettura di l'EEPROM pò fallu à u bassu voltage/bassa frequenza di clock

Pruvate di leghje EEPROM à frequenze di clock bassu è / o bassu voltage pò risultatu in dati invalidu.

Soluzione di u prublema / Soluzione

Ùn aduprate micca l'EEPROM quandu a freccia di u clock hè sottu à 1MHz è furnisce voltage hè sottu à 2V. Se a frequenza operativa ùn pò esse elevata sopra 1MHz allora furnisce u voltage deve esse più di 2V. Similmente, se supply voltage ùn pò esse elevatu sopra 2V tandu a frequenza operativa deve esse più di 1MHz.

Questa funzione hè cunnisciuta per esse dipendente di a temperatura, ma ùn hè micca stata carattarizata. E linee guida sò datu per a temperatura di l'ambienti, solu.

Rev A

Micca sampguidatu.

Errata ATtiny45

A lettera di revisione in questa sezione si riferisce à a revisione di u dispusitivu ATtiny45.

Rev F - G

Nisuna errata cunnisciuta

Rev D-E

A lettura di l'EEPROM pò fallu à u bassu voltage/bassa frequenza di clock

A lettura di l'EEPROM pò fallu à u bassu voltage/bassa frequenza di clock

Pruvate di leghje EEPROM à frequenze di clock bassu è / o bassu voltage pò risultatu in dati invalidu.

Soluzione di u prublema / Soluzione

Ùn aduprate micca l'EEPROM quandu a freccia di u clock hè sottu à 1MHz è furnisce voltage hè sottu à 2V. Se a frequenza operativa ùn pò esse elevata sopra 1MHz allora furnisce u voltage deve esse più di 2V. Similmente, se supply voltage ùn pò esse elevatu sopra 2V tandu a frequenza operativa deve esse più di 1MHz.

Questa funzione hè cunnisciuta per esse dipendente di a temperatura, ma ùn hè micca stata carattarizata. E linee guida sò datu per a temperatura di l'ambienti, solu.

Rev B - C

PLL ùn hè micca chjusu

EEPROM lettu da u codice di l'applicazione ùn funziona micca in Lock Bit Mode 3

A lettura di l'EEPROM pò fallu à u bassu voltage/bassa frequenza di clock

Timer Counter 1 Generazione di output PWM in OC1B- XOC1B ùn funziona micca bè

PLL ùn hè micca chjusu

Quandu in frequenze sottu 6.0 MHz, u PLL ùn si chjuderà

Soluzione di u prublema / Soluzione

Quandu aduprate u PLL, eseguite à 6.0 MHz o più altu.

EEPROM lettu da u codice di l'applicazione ùn funziona micca in Lock Bit Mode 3

Quandu u Memory Lock Bits LB2 è LB1 sò programati à u modu 3, a lettura di EEPROM ùn funziona micca da u codice di l'applicazione.

Prublemu Fix/Work around

Ùn stabilisce micca Lock Bit Protection Mode 3 quandu u codice di l'applicazione deve leghje da EEPROM.

A lettura di l'EEPROM pò fallu à u bassu voltage/bassa frequenza di clock

Pruvate di leghje EEPROM à frequenze di clock bassu è / o bassu voltage pò risultatu in dati invalidu.

Soluzione di u prublema / Soluzione

Ùn aduprate micca l'EEPROM quandu a freccia di u clock hè sottu à 1MHz è furnisce voltage hè sottu à 2V. Se a frequenza operativa ùn pò esse elevata sopra 1MHz allora furnisce u voltage deve esse più di 2V. Similmente, se supply voltage ùn pò esse elevatu sopra 2V tandu a frequenza operativa deve esse più di 1MHz.

Questa funzione hè cunnisciuta per esse dipendente di a temperatura, ma ùn hè micca stata carattarizata. E linee guida sò datu per a temperatura di l'ambienti, solu.

Timer Counter 1 Generazione di output PWM in OC1B - XOC1B ùn funziona micca bè

Timer Counter1 PWM output OC1B-XOC1B ùn funziona micca bè. Solu in u casu quandu i bit di cuntrollu, COM1B1 è COM1B0 sò in u stessu modu cum'è COM1A1 è COM1A0, rispettivamente, l'output OC1B-XOC1B funziona bè.

Prublemu Fix/Work around

L'unica soluzione hè di utilizà a stessa paràmetra di cuntrollu nantu à i bits di cuntrollu COM1A [1: 0] è COM1B [1: 0], vede a tabella 14-4 in a scheda di dati. U prublema hè stata risolta per Tiny45 rev D.

Rev A

Cunsumu di putenza troppu altu

DebugWIRE perde a cumunicazione quandu si passa unicu in interruzioni

PLL ùn hè micca chjusu

EEPROM lettu da u codice di l'applicazione ùn funziona micca in Lock Bit Mode 3

A lettura di l'EEPROM pò fallu à u bassu voltage/bassa frequenza di clock

Cunsumu di putenza troppu altu

Trè situazioni portanu à un cunsumu di putenza troppu altu. Quessi sò:

Un clock esternu hè sceltu da i fusibles, ma u PORT I / O hè sempre attivatu cum'è output.

L'EEPROM hè letta prima di entre in u putere.

VCC hè 4.5 volt o più altu.

Disclaimer: L'infurmazioni in stu documentu sò furnite in cunnessione cù i prudutti Atmel. Nisuna licenza, espressa o implicita, per estoppel o altrimenti, à qualsiasi dirittu di pruprietà intellettuale hè cuncessa da stu documentu o in cunnessione cù a vendita di i prudutti Atmel. ECCINU QUELLI STABILITÀ IN I TERMINI E CONDIZIONI DI VENDITA ATMEL SITUATE IN L'ATMEL WEBSITE, ATMEL ASSUME NESSUNA RESPONSABILITÀ E DECLINA QUALSIASI GARANZIA ESPLICITA, IMPLICITA O STATUTARIA RELATIVA A I SO PRODOTTI, INCLUSI, MA NON LIMITATI, A GARANTIA IMPLICITA DI COMMERCIABILITÀ, IDONEITA' PER UN SCOPO NON PARTICULARI, INFRASTRUTTURA. IN NESSUN CASU ATMEL SERA RESPONSABILE PER QUALUNQUE DANNI DIRETTI, INDIRETTI, CONSEGUENTI, PUNITIVI, SPECIALI O INCIDENTALI (INCLUSI, SENZA LIMITAZIONI, DANNI PER PERdite E PROFITTI, INTERRUPZIONI DI BUSINESS, O PERDIDA D'INFORMAZIONI) RISULTATI DA L'UTILIZZO DI USU QUESTU DOCUMENTU, ANCHE SI ATMEL HAI AVVISU DI A POSSIBILITÀ DI TALI DANNI.

Atmel ùn face alcuna rappresentanza o garanzia in quantu à l'accuratezza o a completezza di u cuntenutu di stu documentu è si riserva u dirittu di fà cambiamenti à e specificazioni è e descrizzioni di i prudutti in ogni mumentu senza avvisu. Atmel ùn hà micca impegnu à aghjurnà l'infurmazioni cuntenute quì. A menu chì specificamente furnitu altrimenti, i prudutti Atmel ùn sò micca adattati è ùn anu micca esse usatu in applicazioni automobilistiche. I prudutti Atmel ùn sò micca destinati, autorizati o garantiti per l'usu cum'è cumpunenti in applicazioni destinate à sustene o sustene a vita.

Referenze

Lascia un cumentu

U vostru indirizzu email ùn serà micca publicatu. I campi obbligatori sò marcati *