Professional Documents
Culture Documents
8-bit
Microcontroladores
con un 4/8/16 / 32K
Bytes In-System
Programable
Flash
ATmega48PA
ATmega88PA
ATmega168PA
ATmega328P
Rev. 8161D-AVR-10.9
PDIP
3231302928272625
(PCINT19 / OC2B / INT1) PD3
(PCINT20 / XCK / T0) PD4
GND
VCC
GND
VCC
(PCINT6 / XTAL1 / TOSC1) PB6
(PCINT7 / XTAL2 / TOSC2) PB7
1
2
3
4
5
6
7
8
24
23
22
21
20
19
18
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
910111213141516
(PCINT21 / OC0B / T1) PD5 (PCINT22 /
OC0A / AIN0) PD6 (PCINT23 / AIN1) PD7
(PCINT0 / CLKO / ICP1) PB0 (PCINT1 /
OC1A) PB1 (PCINT2 / SS / OC1B) PB2
(PCINT3 / OC2A / MOSI ) PB3 (PCINT4 /
MISO) PB4
3231302928272625
28272625242322
(PCINT19 / OC2B / INT1) PD3
(PCINT20 / XCK / T0) PD4
VCC
GND
(PCINT6 / XTAL1 / TOSC1) PB6
(PCINT7 / XTAL2 / TOSC2) PB7
(PCINT21 / OC0B / T1) PD5
1
2
3
4
5
6
7
21
20
19
18
17
16
15
24
23
22
21
20
19
18
17
1
2
3
4
5
6
7
8
891011121314
910111213141516
2
8161D-AVR-10.9
1.1.1
VCC
Tensin de alimentacin Digital.
1.1.2
GND
Ground.
1.1.3
Dependiendo de la configuracin de los fusibles de seleccin del reloj, PB6 se puede utilizar como entrada para el inversor
oscilacin
amplificador lador y entrada al circuito de funcionamiento del reloj interno.
Dependiendo de la configuracin de los fusibles de seleccin del reloj, PB7 se puede utilizar como salida del inversor
Amplificador de oscilador.
Si el calibrada interna oscilador RC se utiliza como fuente de reloj de chip, PB7..6 se utiliza como TOSC2..1
entrada para el temporizador asncrono / Contador2 si el bit AS2 en ASSR se establece.
Las diversas caractersticas especiales de Puerto B se elaboran en "Funciones alternativas de Puerto B" en la pgina
82 y "El reloj del sistema y opciones de reloj" en la pgina 26.
1.1.4
El puerto C (PC5: 0)
El puerto C es un puerto I 7 bits bidireccional / S con resistencias pull-up internas (seleccionados para cada bit). La
Buffers de salida PC5..0 tienen caractersticas de transmisin simtricas tanto con alta fregadero y fuente
capacidad. Como entradas, los pines del puerto C que se extraen externamente baja sern fuente de corriente si el pull-up
resistencias se activan. Los pines del puerto C son tri declar cuando una condicin de reset se activa,
incluso si el reloj no se est ejecutando.
1.1.5
PC6 / RESET
Si el RSTDISBL Fuse est programada, PC6 se utiliza como un pin de E / S. Tenga en cuenta que la carac- elctrica
caracters- de PC6 difieren de las de los dems alfileres de Puerto C.
Si el RSTDISBL Fuse es no programado, PC6 se utiliza como entrada de reset. Un nivel bajo en este pin
por ms que la longitud mnima de impulso generar un reinicio, incluso si el reloj no se est ejecutando.
La longitud mnima de impulso se da en Tabla 28-3 en la pgina 318. Pulsos ms cortos no son garantas
teed para generar un Reset.
Las diversas caractersticas especiales de Puerto C se elaboran en "Funciones alternativas de Puerto C" en la pgina
85.
1.1.6
Port D (PD7: 0)
Port D es un puerto de E 8 bits bidireccional / S con resistencias pull-up internas (seleccionados para cada bit). La
Buffers de salida de puerto D tienen caractersticas de transmisin simtricas tanto con alta fregadero y fuente
capacidad. Como entradas, los pines del puerto D que se extraen externamente baja sern fuente de corriente si el pull-up
resistencias se activan. Los pines del puerto D son tri declar cuando una condicin de reset se activa,
incluso si el reloj no se est ejecutando.
3
8161D-AVR-10.9
AVCC
AVCC es el pin de alimentacin de tensin para el convertidor A / D, PC3: 0, y ADC7: 6. Debe ser externamente
conectado a VCC, incluso si no se utiliza el ADC. Si se utiliza el ADC, debe estar conectado a VCC
a travs de un filtro de paso bajo. Tenga en cuenta que el voltaje uso PC6..4 suministro digital, VCC.
1.1.8
AREF
AREF es el pin de referencia analgica para el convertidor A / D.
1.1.9
4
8161D-AVR-10.9
2. Informacin general
El ATmega48PA / 88PA / 168PA / 328P es un CMOS de baja potencia microcontrolador de 8 bits basado en el
AVR mejorada arquitectura RISC. Mediante la ejecucin de instrucciones de gran alcance en un solo ciclo de reloj, la
ATmega48PA / 88PA / 168PA / 328P logra rendimientos se acercan a 1 MIPS por permitir MHz
el diseador del sistema para optimizar el consumo de energa en comparacin con la velocidad de procesamiento.
2.1
Diagrama de bloques
Figura 2-1.
Diagrama de bloques
VCC
GND
Perro guardin
Timer
Perro guardin
Oscilador
Oscilador
Circuitos /
Reloj
Generacin
Energa
Supervisin
POR / BOD y
REINICIO
debugWIRE
PROGRAMA
LGICA
Flash
SRAM
UPC
EEPROM
AVCC
AREF
GND
Bus de datos
8bit T / C 0
16bit T / C 1
8bit T / C 2
Analog
Comp.
USART 0
PORT D (8)
SPI
PORT B (8)
A / D Conv.
Interna
Bandgap
TWI
PORT C (7)
REINICIO
XTAL [1..2]
PD [0..7]
PB [0..7]
PC [0..6]
ADC [6..7]
El ncleo AVR combina un rico conjunto de instrucciones con registros de trabajo 32 de propsito general. Todo el
32 registros estn conectados directamente a la Unidad Aritmtica Lgica (ALU), lo que permite dos independientes
registros que se accede en una sola instruccin ejecutada en un ciclo de reloj. La resultante
5
8161D-AVR-10.9
El dispositivo est fabricado con tecnologa de memoria no voltil de alta densidad de Atmel. La
El chip ISP Flash permite la memoria del programa para ser reprogramados In-System a travs de un SPI
interfaz en serie, por un programador memoria no voltil convencional, o por un pro- arranque en-chip
gram se ejecuta en el ncleo AVR. El programa de arranque puede usar cualquier interfaz para descargar el
programa de aplicacin en la memoria de aplicaciones de Flash. Software en la seccin de arranque flash
continuar funcionando mientras se actualiza la seccin de aplicaciones Flash, proporcionando cierto Read-While-escritura
operacin. Mediante la combinacin de una CPU RISC de 8 bits con En-Sistema de Auto-flash programable en un
viruta monoltica, el Atmel ATmega48PA / 88PA / 168PA / 328P es un potente microcontrolador que
proporciona una solucin eficaz altamente flexible y costo para muchas aplicaciones de control embebidas.
El ATmega48PA / 88PA / 168PA / 328P AVR es compatible con una gama completa de programas y sistemas
herramientas de desarrollo, incluyendo: C compiladores, ensambladores Macro, Programa Depurador / Simuladores,
In-Circuit emuladores, y kits de evaluacin.
2.2
Dispositivo
Flash
EEPROM
RAM
ATmega48PA
4K Bytes
256 Bytes
512 Bytes
ATmega88PA
8K Bytes
512 Bytes
1K Bytes
ATmega168PA
16K Bytes
512 Bytes
1K Bytes
ATmega328P
32K Bytes
1K Bytes
2K Bytes
ATmega88PA, ATmega168PA y ATmega328P apoyar una verdadera lectura-escritura Mientras Auto-Promecanismo de programacin. Hay una seccin del cargador de arranque independiente, y la instruccin SPM puede
slo ejecutar desde all. En ATmega48PA, no hay apoyo Lee-While-Escribir y sin separacin
Seccin del gestor de arranque tasa. La instruccin SPM puede ejecutar desde todo el flash.
6
8161D-AVR-10.9
1.
4. Retencin de Datos
Resultados de Cualificacin Fiabilidad muestran que la retencin de datos tasa de fracaso proyectada es mucho menos
de 1 PPM ms de 20 aos a 85 C o 100 aos a 25 C.
7
8161D-AVR-10.9
Visin de conjunto
En esta seccin se analiza la arquitectura de ncleo AVR en general. La funcin principal del ncleo de la CPU
es asegurar la ejecucin del programa correcto. Por consiguiente, la CPU debe ser capaz de acceder a las memorias,
realizar clculos, controlar los perifricos, y manejar las interrupciones.
Figura 6-1.
Flash
Programa
Memoria
Programa
Contador
Estado
y Control
32 x 8
General
Propsito
Registrers
Instruccin
Registrarse
Instruccin
Decoder
Direccionami
Direccionami
ento indirecto
ento directo
Interrupcin
Unidad
SPI
Unidad
Perro guardin
Timer
ALU
Lneas de control
Analog
Comparador
I / O Module1
Datos
SRAM
I / O Module 2
I / O Module n
EEPROM
E / S Lneas
Con el fin de maximizar el rendimiento y paralelismo, el AVR utiliza una arquitectura de Harvard - con
recuerdos y autobuses separados para programas y datos. Las instrucciones en la memoria del programa son
ejecutado con una sola canalizacin nivel. Mientras se est ejecutando una instruccin, la siguiente instruccin
cin es pre-descargue de la memoria del programa. Este concepto permite a las instrucciones que se ejecutarn
en cada ciclo de reloj. La memoria del programa es En-Sistema de memoria flash reprogramable.
El acceso rpido Registro Archivo contiene propsito general de 32 x 8 bits registros trabajar con una sola
ciclo de reloj el tiempo de acceso. Esto permite que un solo ciclo Unidad Aritmtica Lgica operacin (ALU). En una typ-
8
8161D-AVR-10.9
Los espacios de memoria en la arquitectura AVR son todos los mapas de memoria lineales y regulares.
Un mdulo de interrupcin flexible tiene sus registros de control en el espacio de E / S con un global adicional
Interrumpir Activar bit en el registro de estado. Todas las interrupciones tienen una interrupcin separada Vector en el
Mesa vector de interrupcin. Las interrupciones tienen prioridad en funcin de su vector de interrupcin posicin
cin. Cuanto menor sea la direccin de vector de interrupcin, mayor es la prioridad.
El espacio de memoria de E / S contiene 64 direcciones de CPU funciones perifricas como control Registros, SPI, y otras funciones de E / S. La E / S de memoria se puede acceder directamente, o como el de datos
Ubicaciones espacial tras los del Registro Archivo, 0x20 - 0x5F. Adems, el
ATmega48PA / 88PA / 168PA / 328P ha extendido el espacio de E / S de 0x60 - 0xFF en SRAM donde
slo el ST / STS / ETS y las instrucciones LD / SUD / LDD se pueden utilizar.
6.2
6.3
Registro de estado
El Registro de Estado contiene informacin sobre el resultado de la arithme- ejecutado ms recientemente
instruccin tic. Esta informacin se puede utilizar para alterar el flujo del programa para llevar a cabo
operaciones condicionales. Tenga en cuenta que el registro de estado se actualiza despus de todas las operaciones de la ALU,
como
9
8161D-AVR-10.9
0x3F (0x5F)
YO
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Lectura / Escritura
Valor inicial
SREG
10
8161D-AVR-10.9
Dir.
R0
0x00
R1
0x01
R2
0x02
...
R13
0x0D
General
R14
0x0E
Propsito
R15
0x0F
Trabajo
R16
0x10
Registros
R17
0x11
...
R26
0x1A
R27
0x1B
R28
0x1C
R29
0x1D
R30
0x1E
R31
0x1F
La mayor parte de las instrucciones de funcionamiento en el Registro de archivos tienen acceso directo a todos los registros, y
la mayora de ellos son instrucciones de ciclo nico.
Como se muestra en Figura 6-2, cada registro tambin se le asigna una direccin de memoria de datos, cartografa de ellos
directamente en los primeros 32 lugares del espacio de usuario de datos. Aunque no estar fsicamente en prctica
mentado como lugares de SRAM, esta organizacin de la memoria proporciona una gran flexibilidad en el acceso de la
registros, como los ejes X, Y y Z registros-puntero se puede configurar para cualquier ndice de registro en el archivo.
11
8161D-AVR-10.9
6.4.1
Figura 6-3.
La X, Y, y Z-registros
15
Registro X
XH
XL
0
R27 (0x1B)
15
Registro Y
R26 (0x1A)
YH
YL
0
R29 (0x1D)
Registro Z
R28 (0x1C)
15
ZH
R31 (0x1F)
ZL
7
0
0
R30 (0x1E)
En los diferentes modos de direccionamiento estos registros de direcciones tienen funciones como el desplazamiento fijo,
incremento automtico, y decremento automtico (consulte la referencia del conjunto de instrucciones para ms detalles).
6.5
Stack Pointer
La pila se utiliza principalmente para almacenar datos temporales, para el almacenamiento de variables locales y para almacenar
direcciones de retorno despus de interrupciones y llamadas a subrutinas. Tenga en cuenta que la pila se implementa como
cada vez de mayor a menor posiciones de memoria. El puntero Registro Pila siempre apunta a la
la parte superior de la pila. Los puntos Pila puntero al rea de datos SRAM Pila donde la subrutina
y de alarma Las pilas se encuentran. Un comando EMPUJE Pila disminuir el puntero de pila.
La Pila en la SRAM de datos debe ser definido por el programa antes de cualquier llamada a subrutinas son
ejecutados o las interrupciones estn habilitadas. Valor inicial Stack Pointer es igual a la ltima direccin de la
SRAM interna y el puntero de pila se debe establecer en el punto de partida por encima de la SRAM, consulte Tabla 73 en la pgina 18.
Ver Tabla 6-1 para ms detalles Stack Pointer.
Tabla 6-1.
Instruccin
Puntero de pila
Descripcin
EMPUJAR
Disminuye en 1
LLAMADA
YO LO LLAMO Disminuye en 2
RCALL
POP
Incrementa en 1
RET
RETI
Se incrementa en un 2
El AVR Stack Pointer se implementa como dos registros de 8 bits en el espacio de E / S. El nmero de
pedacitos realmente utilizados dependen de la implementacin. Tenga en cuenta que el espacio de datos de alguna aplicacin
las de la arquitectura AVR es tan pequea que slo se necesita SPL. En este caso, el Registro SPH
no estar presente.
12
8161D-AVR-10.9
6.5.1
Bit
15
14
13
12
11
10
0x3E (0x5E)
SP15
SP14
SP13
SP12
SP11
SP10
SP9
SP8
SPH
0x3D (0x5D)
SP7
SP6
SP5
SP4
SP3
SP2
SP1
SP0
SPL
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
RAMEND
Lectura / Escritura
Valor inicial
6.6
Figura 6-4.
T2
T3
T4
clkCPU
Primera extraccin de instruccin
Primera instruccin Execute
Segundo Instruccin Fetch
Segundo Instruccin Ejecutar
Tercera Instruccin Fetch
Tercera Instruccin Ejecutar
Cuarto de extraccin de instruccin
Figura 6-5 muestra el concepto de tiempo interno para el Registro de archivos. En un solo ciclo de reloj de una ALU
se ejecuta la operacin usando dos operandos de registro, y el resultado se almacena de nuevo a la destino
Registro cin.
Figura 6-5.
T2
T3
T4
clkCPU
Tiempo de ejecucin
Registro Operandos Fetch
ALU Operacin Ejecutar
Resultado Escribe Volver
13
8161D-AVR-10.9
Las direcciones ms bajas en el espacio de memoria del programa son por defecto definido como el Reset y
Vectores de interrupcin. La lista completa de los vectores se muestra en "Alarmas" en la pgina 57. La lista tambin
determina los niveles de prioridad de las diferentes interrupciones. Cuanto menor sea la direccin de la ms alta es la
nivel de prioridad. REINICIO tiene la ms alta prioridad, y el prximo es INT0 - la solicitud de interrupcin externa
0. La vectores de interrupcin se puede mover hasta el inicio de la seccin de flash de inicio mediante el establecimiento de la
IVSEL
poco en el Registro de Control de MCU (MCUCR). Referirse a "Alarmas" en la pgina 57 para ms informacin.
El reinicio del vector tambin se puede mover a la de inicio de la seccin de flash de inicio mediante la programacin de la
BOOTRST fusible, consulte "Gestor de arranque de apoyo - Leer-While-Escribir Auto-Programacin,
ATmega88PA, ATmega168PA y ATmega328P "en la pgina 277.
Cuando se produce una interrupcin, la interrupcin Global Enable bit I se borra y todas las interrupciones son disabled. El software de usuario puede escribir uno lgico a la I-bit para habilitar las interrupciones anidadas. Todos habilitado
interrupciones entonces pueden interrumpir la rutina de interrupcin actual. El I-bit se establece automticamente cuando un
Retorno de la instruccin de interrupcin - RETI - se ejecuta.
Hay bsicamente dos tipos de interrupciones. El primer tipo es provocado por un evento que establece el
Bandera de interrupcin. Por estas interrupciones, el contador de programa se gua vectorial a la actual interrupcin Vector con el fin de ejecutar la rutina de manejo de interrupciones, y el hardware borra el correspondiente
Bandera de interrupcin. Banderas de interrupcin tambin se pueden borrar escribiendo un uno lgico en la posicin de bit de
bandera (s)
que se solucione. Si una condicin de interrupcin se produce mientras que el correspondiente bit de habilitacin de interrupcin
es
despejado, la bandera de interrupcin se configurar y recordado hasta la interrupcin est habilitada, o la bandera es
despejado por software. Del mismo modo, si se producen las condiciones de uno o ms de interrupcin mientras que la
interrupcin Global
Activar bit se restablece, la bandera de interrupcin correspondiente (s) se establecer y se acord hasta que el
Interrupcin Global Enable bit est establecido, y entonces ser ejecutado por orden de prioridad.
El segundo tipo de interrupciones activar siempre y cuando la condicin de interrupcin est presente. Estos
interrupciones no necesariamente tienen banderas de interrupcin. Si la condicin de interrupcin desaparece antes de la
interrupcin est activada, la alarma no se activar.
Cuando el AVR sale de una interrupcin, siempre regresar al programa principal y ejecutar uno
se atendi a ms de instrucciones antes de cualquier interrupcin pendiente.
Tenga en cuenta que el registro de estado no se almacena automticamente al entrar en una rutina de interrupcin, ni
restaurado al volver de una rutina de interrupcin. Esto debe ser manejado por software.
Cuando se utiliza la instruccin CLI para deshabilitar las interrupciones, las interrupciones se desactivarn inmediatamente.
No interrupcin se ejecutar despus de la instruccin CLI, incluso si se produce simultneamente con el
Instruccin CLI. El siguiente ejemplo muestra cmo se puede utilizar para evitar interrupciones durante el
secuencia EEPROM cronometrado.
14
8161D-AVR-10.9
Cdigo C Ejemplo
Char cSREG;
cSREG = SREG; / * Tienda valor SREG * /
/ * deshabilitar las interrupciones durante la secuencia temporizada * /
_CLI ();
EECR | = (1 << EEMPE); / * Inicio de EEPROM * /
EECR | = (1 << EEPE);
SREG = cSREG; / * Restaurar el valor SREG (I-bit) * /
Cuando se utiliza la instruccin SEI para habilitar las interrupciones, la instruccin siguiente SEI ser ejerecortado antes de las interrupciones pendientes, como se muestra en este ejemplo.
Cdigo Asamblea Ejemplo
sei
Cdigo C Ejemplo
__enable_interrupt (); / * Establecer Global Interrupt Enable * /
__sleep (); / * Introduce el sueo, a la espera de interrupcin * /
/ * Nota: se colocar en reposo antes de cualquier interrupcin
pendiente (s) * /
6.7.1
El retorno de una rutina de manejo de interrupciones toma cuatro ciclos de reloj. Durante estos cuatro reloj
ciclos, el contador de programa (dos bytes) se extrae de vuelta de la Pila, el puntero de pila es
incrementa en dos, y el bit I en SREG se establece.
15
8161D-AVR-10.9
7. AVR Recuerdos
7.1
Visin de conjunto
Esta seccin describe las diferentes memorias en el ATmega48PA / 88PA / 168PA / 328P. El AVR
arquitectura tiene dos espacios de memoria principal, la memoria de datos y el espacio de memoria de programa.
Adems, el ATmega48PA / 88PA / 168PA / 328P cuenta con una memoria EEPROM para almacenamiento de datos
la edad. Los tres espacios de memoria son lineales y regular.
7.2
La memoria flash tiene una autonoma de al menos 10.000 ciclos de escritura / borrado. La
ATmega48PA / 88PA / 168PA / Contador Programa 328P (PC) es 11/12/13/14 bits de ancho, por lo tanto Direccining los 2/4/8/16 K posiciones de memoria de programa. La operacin de la seccin de programa de arranque y
bits asociados bloqueo de arranque para la proteccin del software se describen en detalle en "Auto-Programacin
el flash, ATmega48PA "en la pgina 269 y "Gestor de arranque de apoyo - Leer-While-Escribe Auto-Proprogramacin, ATmega88PA, ATmega168PA y ATmega328P "en la pgina 277." Memoria
Programacin "en la pgina 294 contiene una descripcin detallada sobre la Programacin Flash en SPI-o
Modo de programacin paralela.
Tablas de constantes pueden ser asignados dentro del espacio de direcciones de memoria todo el programa (ver la LPM
- Memoria Cargar programa descripcin de instruccin).
Diagramas de tiempo para la recuperacin de instrucciones y de ejecucin se presentan en "Ejecucin de instrucciones Timing "en la pgina 13.
16
8161D-AVR-10.9
0x7FF
Figura 7-2.
17
8161D-AVR-10.9
7.3
Figura 7-3.
Memoria de datos
32 Registros
64 E / S Registros
160 Ext E / S Reg.
0x0000 - 0x001F
0x0020 - 0x005F
0x0060 - 0x00FF
0x0100
SRAM interna
(512/1024/1024/2048 x 8)
0x04FF / 0x04FF / 0x0FF / 0x08FF
18
8161D-AVR-10.9
7.3.1
Figura 7-4.
T2
T3
clkCPU
Direccin
Calcular Direccin
Direccin vlida
Datos
Escribir
WR
Datos
Leer
RD
7.4
Siguiente instruccin
"Programacin de la memoria" en la pgina 294 contiene una descripcin detallada en la EEPROM de programacin
en SPI o el modo de programacin paralela.
7.4.1
19
8161D-AVR-10.9
7.5
Memoria de E / S
La definicin de espacio de E / S de la ATmega48PA / 88PA / 168PA / 328P se muestra en "Registro resumen
mary "en la pgina 423.
Todo ATmega48PA / 88PA / 168PA / 328P / S y los dispositivos perifricos se colocan en el espacio de E / S. Todas las E / S
lugares pueden ser accedidos por el LD / SUD / LDD y ST instrucciones / STS / ETS, la transferencia de datos
entre los 32 registros de propsito general de trabajo y el espacio de E / S. E / S registros de la
rango de direcciones 0x00 - 0x1F son directamente poco accesible siguiendo las instrucciones de OSE y la ICC. En
estos registros, el valor de los bits individuales pueden verificarse mediante el uso de las instrucciones SBIS y SBIC.
Consulte la seccin de conjunto de instrucciones para ms detalles. Comandos Cuando se utiliza la E / S especficas EN
y OUT, la E / S aborda 0x00 - 0x3F debe ser utilizado. Al abordar de E / S Registros como datos
espacio utilizando instrucciones LD y ST, 0x20 hay que aadir a estas direcciones. La
ATmega48PA / 88PA / 168PA / 328P es un microcontrolador complejo con ms unidades perifricas que
se puede apoyar en el 64 lugar reservado en el Cdigo de operacin para las instrucciones IN y OUT. Para
el espacio O Extended I / de 0x60 - 0xFF en SRAM, slo el ST / STS / ETS y LD / SUD / LDD
instrucciones pueden ser utilizados.
Para la compatibilidad con dispositivos futuros, los bits reservados se deben escribir a cero si accede.
Direcciones de memoria de E / S Reservados nunca deben ser escritos.
Algunos de los indicadores de estado se borran escribiendo un uno lgico para ellos. Tenga en cuenta que, a diferencia de la
mayora
otros RAV, las instrucciones de la ICC y del SBI slo funcionarn en el bit especificado, por lo que pueden
ser utilizado en los registros que contienen tales Indicadores de estado. Las instrucciones de la ICC y OSE trabajan con REGnistros 0x00 a 0x1F solamente.
Los registros de E / S y control de perifricos se explican en las secciones posteriores.
7.5.1
20
8161D-AVR-10.9
Registro Descripcin
7.6.1
15
14
13
12
11
10
0x22 (0x42)
EEAR8
EEARH
0x21 (0x41)
EEAR7
EEAR6
EEAR5
EEAR4
EEAR3
EEAR2
EEAR1
EEAR0
EEARL
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
EEAR8 es un poco sin utilizar en ATmega48PA y siempre debe estar escrito a cero.
7.6.2
0x20 (0x40)
MSB
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
LSB
EEDR
7.6.3
0x1F (0x3F)
EEPM1
EEPM0
Lectura / Escritura
R/W
R/W
R/W
Valor inicial
EEPE
EERE
R/W
R/W
R/W
MISTERIOSA EEMPE
EECR
21
8161D-AVR-10.9
EEPM1
EEPM0
Programacin
Tiempo
3.4 ms
1,8 ms
Erase Slo
1,8 ms
Slo escritura
Operacin
Precaucin: Una interrupcin entre los pasos 5 y 6 har que el ciclo de escritura falla, ya que el
EEPROM Maestro Escriba Habilitar voluntad de tiempo de espera. Si una rutina de interrupcin acceso a la EEPROM es
interrumpiendo otro acceso EEPROM, el EEAR o EEDR Registro sern modificados, haciendo que el
acceso EEPROM interrumpido falle. Se recomienda tener la Bandera Global Interrupt aclar
durante todas las medidas para evitar estos problemas.
22
8161D-AVR-10.9
El usuario debe sondear el bit EEPE antes de iniciar la operacin de lectura. Si una operacin de escritura es en
progreso, no es ni posible leer la EEPROM, ni para cambiar el Registro EEAR.
El oscilador calibrado se utiliza para el tiempo EEPROM accesos. Tabla 7-2 enumera el pro- tpico
tiempo para el acceso EEPROM de la CPU de programacin.
Tabla 7-2.
Smbolo
EEPROM
(De CPU)
26368
3.3 ms
Los siguientes ejemplos de cdigo muestran un montaje y una funcin C para escribir en el
EEPROM. Los ejemplos asumen que las interrupciones son controladas (por ejemplo, mediante la desactivacin de interrupciones
globalizacin
aliado) de manera que no se producirn interrupciones durante la ejecucin de estas funciones. Los ejemplos tambin
asumir que no Flash gestor de arranque est presente en el software. Si dicho cdigo est presente, el
Funcin de escritura EEPROM tambin debe esperar a que cualquier comando SPM en curso para terminar.
23
8161D-AVR-10.9
Cdigo C Ejemplo
vaco EEPROM_write (sin firmar int uiAddress, unsigned char ucData)
{
/ * Esperar a la finalizacin de la escritura previa * /
while (EECR y (1 << EEPE))
;
/ * Establecer direccin y registros de datos * /
EEAR = uiAddress;
EEDR = ucData;
/ * Escribe una lgica para EEMPE * /
EECR | = (1 << EEMPE);
/ * Inicio de EEPROM estableciendo EEPE * /
EECR | = (1 << EEPE);
}
24
8161D-AVR-10.9
en
enriar
Cdigo C Ejemplo
unsigned char EEPROM_read (sin firmar int uiAddress)
{
/ * Esperar a la finalizacin de la escritura anterior * /
while (EECR y (1 << EEPE))
;
/ * Establecer registro de direcciones
* /
EEAR = uiAddress;
/ * Iniciar eeprom ledo escribiendo EERE * /
EECR | = (1 << EERE);
/ * Devolver datos de registro de datos * /
volver EEDR;
}
7.6.4
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
LSB
GPIOR2
0x2A (0x4A)
MSB
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
7.6.6
MSB
Valor inicial
7.6.5
0x2B (0x4B)
LSB
GPIOR1
0x1E (0x3E)
MSB
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
LSB
GPIOR0
25
8161D-AVR-10.9
Reloj Distribucin
Asincrnico
Timer / Contador
General I / O
Mdulos
ADC
CPU Core
RAM
Flash y
EEPROM
clkADC
clkI / S
AVR Reloj
Unidad de Control
clkASY
clkFLASH
Reloj Fuente
Reloj
Multiplexor
Timer / Contador
Oscilador
Reloj externo
clkCPU
Cristal
Oscilador
Restablecer Lgica
Watchdog Timer
Reloj Watchdog
Perro guardin
Oscilador
De baja frecuencia
Crystal Oscillator
Calibrado RC
Oscilador
8.1.1
8.1.2
I / O Clock - clkI / S
El reloj de E / S es utilizado por la mayora de los mdulos de E / S, como temporizador / contadores, SPI y USART.
El reloj de E / S tambin es utilizado por el mdulo de interrupcin externa, pero tenga en cuenta que algunos inter- externa
Rupts se detectan por la lgica asncrona, lo que permite tales interrupciones a detectar incluso si el I / O
se detiene el reloj. Tambin tenga en cuenta que la condicin de inicio de deteccin en el mdulo USI se realiza crono
intravenosa cuando se detuvo clkI / S, TWI aborda el reconocimiento en todos los modos de suspensin.
8.1.3
26
8161D-AVR-10.9
8.1.5
8.2
Fuentes de reloj
El dispositivo tiene las siguientes opciones de fuente de reloj, seleccionables por los bits de Flash de fusibles como se muestra
a continuacin. El reloj de la fuente seleccionada es introducida en el generador de reloj AVR, y se encamina a la
mdulos apropiados.
Tabla 8-1.
CKSEL3..0
1111 - 1000
0111 - 0110
0101 - 0100
0011
0010
Reloj externo
0000
Reservado
0001
Nota:
1. Para todos los fusibles "1" significa no programada, mientras que "0" significa programar.
8.2.1
8.2.2
27
8161D-AVR-10.9
Typ Tiempo de espera (VCC = 5.0V) Typ Tiempo de espera (VCC = 3.0V)
Nmero de ciclos
0 ms
0 ms
4.1 ms
4.3 ms
512
65 ms
69 ms
8K (8192)
El objetivo principal de la demora es mantener el AVR en reinicio hasta que se suministra con mnimo VCC. La
retraso no controlar la tensin real y ser necesaria para elegir un retraso ms largo que el
VCC tiempo de subida. Si esto no es posible, un circuito de deteccin de Brown-Out interna o externa debe ser
utilizado. Un circuito de DBO se asegurar suficiente VCC antes de liberar el restablecimiento, y la demora de tiempo de espera
se puede desactivar. Desactivacin de la demora de tiempo de espera sin utilizar un circuito de Brown-Out La deteccin es
no se recomienda.
Se requiere que el oscilador a oscilar por un nmero mnimo de ciclos antes de que el reloj es consideEred estable. Un contador de ondulacin interna monitorea el reloj de salida del oscilador, y mantiene el interior
restablecer activo para un nmero dado de ciclos de reloj. La reposicin se libera y el dispositivo
comenzar a ejecutar. El tiempo de arranque del oscilador recomendada es dependiente del tipo de reloj, y
vara de 6 ciclos de reloj se aplica externamente a 32K ciclos para un cristal de baja frecuencia.
La secuencia de puesta en marcha para el reloj incluye tanto el retardo de tiempo de espera y el tiempo de puesta en marcha
cuando
el dispositivo se pone en marcha a partir de restablecimiento. Al arrancar desde el modo de Apagado de ahorro de energa o, VCC
es
supone que est en un nivel suficiente y slo el tiempo de puesta en marcha est incluido.
8.3
28
8161D-AVR-10.9
XTAL2 (TOSC2)
C1
XTAL1 (TOSC1)
GND
El oscilador de baja potencia puede funcionar en tres modos diferentes, cada uno optimizado para una cuencia especfica
rango de frecuencia. El modo de funcionamiento es seleccionada por el CKSEL3..1 fusibles como se muestra en Tabla 8-3
en la pgina 29.
Tabla 8-3.
Rango de frecuencia
(MHz)
100(2)
0,9-3,0
12 - 22
101
3,0-8,0
12 - 22
110
8,0-16,0
12 - 22
111
Notas:
CKSEL3..1(1)
El CKSEL0 Fusible junto con los fusibles SUT1..0 seleccionar los tiempos de puesta en marcha como se muestra en Mesa
8-4.
Tabla 8-4.
Puesta en marcha Times por el oscilador de cristal de baja potencia Seleccin Reloj
Oscilador Fuente /
Condiciones de alimentacin
CKSEL0
SUT1..0
258 CK
00
258 CK
14CK + 65 ms(1)
01
1K CK
10
1K CK
11
1K CK
14CK + 65 ms(2)
00
14CK(2)
29
8161D-AVR-10.9
Los tiempos de puesta en marcha para el Poder Crystal Oscillator Seleccin Menor Reloj (Continuacin)
Oscilador Fuente /
Condiciones de alimentacin
CKSEL0
SUT1..0
01
16K CK
16K CK
14CK + 4,1 ms
10
16K CK
14CK + 65 ms
11
Notas:
8.4
1. Estas opciones slo deben utilizarse cuando no est funcionando cerca de la frecuencia mxima de la
dispositivo, y slo si la estabilidad de frecuencia en el arranque no es importante para la aplicacin. Estos
opciones no son adecuados para cristales.
2. Estas opciones son para uso con resonadores cermicos y se asegurar la estabilidad de frecuencia
en el arranque. Tambin se pueden utilizar con cristales cuando no operan cerca de la fre- mximo
cuencia del dispositivo, y si la estabilidad de frecuencia en el arranque no es importante para la aplicacin.
El modo de funcionamiento es seleccionada por el CKSEL3..1 fusibles como se muestra en Tabla 8-5.
Tabla 8-5.
Rango de frecuencia(1)
(MHz)
0,4-20
Notas:
CKSEL3..1
011
30
8161D-AVR-10.9
C2
XTAL2 (TOSC2)
C1
XTAL1 (TOSC1)
GND
Tabla 8-6.
Puesta en marcha Times por el Full Swing Crystal Oscillator Seleccin Reloj
Oscilador Fuente /
Condiciones de alimentacin
CKSEL0
SUT1..0
258 CK
00
258 CK
14CK + 65 ms(1)
01
1K CK
10
1K CK
11
1K CK
14CK + 65 ms(2)
00
16K CK
01
16K CK
14CK + 4,1 ms
10
16K CK
14CK + 65 ms
11
Notas:
14CK(2)
14CK
1. Estas opciones slo deben utilizarse cuando no est funcionando cerca de la frecuencia mxima de la
dispositivo, y slo si la estabilidad de frecuencia en el arranque no es importante para la aplicacin. Estos
opciones no son adecuados para cristales.
2. Estas opciones son para uso con resonadores cermicos y se asegurar la estabilidad de frecuencia
en el arranque. Tambin se pueden utilizar con cristales cuando no operan cerca de la fre- mximo
cuencia del dispositivo, y si la estabilidad de frecuencia en el arranque no es importante para la aplicacin.
31
8161D-AVR-10.9
8.5
Tabla 8-7.
Crystal CL (PF)
Nota:
6.5
75
9.0
65
12.5
30
La baja frecuencia Osciladores de cristal ofrece una capacidad de carga interna en cada pin TOSC
como se especifica en el Tabla 8-8 en la pgina 32.
Tabla 8-8.
Osc Sistema.
18 pF
8 pF
Timer Osc.
18 pF
8 pF
La capacitancia externa (C) que se necesita en cada pin TOSC se puede calcular mediante el uso de:
C=2 CL -C s
donde CL es la capacitancia de carga para un cristal de 32,768 kHz especificado por el proveedor cristal y CS
es la capacidad parsita total para un pin TOSC.
Cristales que especifican capacitancia de carga (CL) ms alto que las dadas en el Tabla 8-8 en la pgina
32, requieren condensadores externos aplicados como se describe en Figura 8-2 en la pgina 29.
La baja frecuencia Osciladores de cristal debe ser seleccionado mediante el establecimiento de la CKSEL Corchos para "0110" o
"0111", como se muestra en Tabla 8-10. Los tiempos de arranque son determinados por los fusibles SUT como se muestra en
Tabla 8-9.
Tabla 8-9.
SUT1..0
00
Puesta en marcha Times por la baja frecuencia Osciladores de cristal Seleccin del Reloj
Retardo adicional de Reset (VCC = 5.0V)
4 CK
Recomendaciones de uso
Potencia en ascenso rpido o BOD habilitadas
01
4 CK + 4,1 ms
10
4 CK + 65 ms
11
Reservado
32
8161D-AVR-10.9
Puesta en marcha Times por la baja frecuencia Osciladores de cristal Seleccin del Reloj
Puesta en marcha Tiempo de
Energa-abajo y de ahorro de energa
CKSEL3..0
0100(1)
1K CK
0101
32K CK
Nota:
8.6
Recomendaciones de uso
1. Esta opcin slo debe utilizarse si la estabilidad de frecuencia en el arranque no es importante para la
aplicacin
Notas:
CKSEL3..0
7.3 a 8.1
0010(1)
Cuando se selecciona este oscilador, tiempos de arranque son determinados por los fusibles SUT como se muestra en
Tabla 8-12 en la pgina 33.
Tabla 8-12.
Puesta en marcha veces para la seleccin calibrado del reloj interno RC Oscilador
Condiciones de alimentacin
SUT1..0
BOD habilitado
6 CK
6 CK
14CK + 4,1 ms
01
6 CK
14CK + 65 ms(2)
10
Reservado
Nota:
00
11
33
8161D-AVR-10.9
CKSEL3..0
128 kHz
Nota:
0011
1. Obsrvese que el oscilador 128 kHz es una fuente de reloj de potencia muy baja, y no est diseado para alta
exactitud.
Cuando se selecciona esta fuente de reloj, tiempos de arranque son determinados por los fusibles SUT como se muestra en
Tabla 8-14.
Tabla 8-14.
Condiciones de alimentacin
BOD habilitado
6 CK
14CK(1)
00
6 CK
14CK + 4 ms
01
6 CK
14CK + 64 ms
10
Reservado
Nota:
8.8
SUT1..0
11
Reloj externo
Para accionar el dispositivo desde una fuente de reloj externa, XTAL1 debe ser impulsada como se muestra en Figura
8-4 en la pgina 34. Para ejecutar el dispositivo en un reloj externo, el CKSEL fusibles deben programarse
a "0000" (vase Tabla 8-15).
Tabla 8-15.
CKSEL3..0
0-20 MHz
Figura 8-4.
0000
NC
EXTERNO
RELOJ
SEAL
XTAL2
XTAL1
GND
Cuando se selecciona esta fuente de reloj, tiempos de arranque son determinados por los fusibles SUT como se muestra en
Tabla 8-16.
34
8161D-AVR-10.9
Tabla 8-16.
Condiciones de alimentacin
SUT1..0
BOD habilitado
6 CK
14CK
6 CK
14CK + 4,1 ms
01
6 CK
14CK + 65 ms
10
Reservado
00
11
Cuando se aplica un reloj externo, se requiere para evitar cambios repentinos en el reloj aplicada cuencia
cia para garantizar un funcionamiento estable de la MCU. Una variacin en la frecuencia de ms de 2% a partir de
un ciclo de reloj a la siguiente puede conducir a un comportamiento impredecible. Si los cambios de ms del 2% es
necesario, asegrese de que el MCU se mantiene en Restauracin durante los cambios.
Tenga en cuenta que el sistema de reloj de divisor se puede utilizar para implementar los cambios de tiempo de ejecucin de la
interna
frecuencia de reloj sin dejar de garantizar un funcionamiento estable. Referirse a "Sistema de reloj de divisor" en la pgina
35 para ms detalles.
8.9
8.10
8.11
35
8161D-AVR-10.9
Para evitar cambios involuntarios de frecuencia de reloj, un procedimiento de escritura especial debe befollowed a
cambiar los bits de CLKPS:
1. Escribe el bit Reloj Precontador Cambio Habilitar (CLKPCE) a uno y todos los dems bitsin
CLKPR a cero.
2. Dentro de los cuatro ciclos, escribir el valor deseado para CLKPS al escribir un cero a CLKPCE.
Las interrupciones se deben desactivar cuando cambie la configuracin prescaler para asegurarse de que el procedimiento de
escritura es
no interrumpido.
36
8161D-AVR-10.9
8.12
Registro Descripcin
8.12.1
CAL7
CAL6
CAL5
CAL4
CAL3
CAL2
CAL1
CAL0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
OSCCAL
Tenga en cuenta que este oscilador se utiliza para EEPROM tiempo y Flash accesos de escritura, y estos escribir
veces se vern afectados en consecuencia. Si la EEPROM o Flash se escriben, no calibre a ms
de 8,8 MHz. De lo contrario, la EEPROM o Flash escritura pueden fallar.
El bit CAL7 determina el rango de funcionamiento del oscilador. Al activar este bit a 0 da la
ms bajo rango de frecuencia, el establecimiento de este bit a 1 da el rango de frecuencia ms alta. Los dos cuencia
rangos de fre- se solapan, en otras palabras, un ajuste de OSCCAL = 0x7F da una mayor
frecuencia que OSCCAL = 0x80.
Los bits CAL6..0 se utilizan para sintonizar la frecuencia dentro del rango seleccionado. Un valor de 0x00
da la frecuencia ms baja en ese rango, y un entorno de 0x7F da la frecuencia ms alta de la
gama.
8.12.2
CLKPCE
CLKPS3
CLKPS2
CLKPS1
CLKPS0
R/W
R/W
R/W
R/W
R/W
CLKPR
37
8161D-AVR-10.9
Tabla 8-17.
CLKPS3
CLKPS2
CLKPS1
CLKPS0
16
32
64
128
256
Reservado
Reservado
Reservado
Reservado
Reservado
Reservado
Reservado
38
8161D-AVR-10.9
9.1
Modos de espera
Figura 8-1 en la pgina 26 se presentan los diferentes sistemas de reloj en la
ATmega48PA / 88PA / 168PA / 328P, y su distribucin. La cifra es til en la seleccin de un
el modo de suspensin apropiado. Tabla 9-1 muestra los diferentes modos de suspensin, a su paso por las fuentes de DBO
desactivar la capacidad.
Tabla 9-1.
Osciladores
Wake-up Fuentes
Principal Timer
INT1, INT0
clocksourceOscillatorEnabl
andPin Cambio
TWI
Activado ed
AddressMatch
clkCPU
clkFLASH
clkIO
SPM /
EEPROMReady
SoftwareBOD
Desactivar
Otras E / S
Timer2
clkADCclkASY
ADC WDT
Modo de reposo
Ocioso
ADC Noise
Reduccin
X(2)
X(2)
X(3)
X(2)
X(3)
X(3)
X(3)
X(3)
Energa-abajo
De ahorro de energa
Colocarse(1)
Extendido
Colocarse
Notas:
X(2)
X
X(2)
X(2)
1. Slo recomend con cristal o resonador externo seleccionado como fuente de reloj.
2. Si el temporizador / Contador2 se ejecuta en modo asncrono.
3. Para INT1 y INT0, slo de interrupcin de nivel.
Para entrar en cualquiera de los seis modos de suspensin, el bit SE en SMCR debe estar escrito a uno lgico y un
Instruccin SLEEP debe ser ejecutado. Los bits SM2, SM1, y SM0 en el Registro SMCR seleccionar
que el modo de reposo (Idle, Reduccin de Ruido ADC, Energa-abajo, de ahorro de energa, de espera, o Extended
En espera) se activar por la instruccin SLEEP. Ver Tabla 9-2 en la pgina 44 para un resumen.
Si se produce una interrupcin habilitado mientras que la MCU est en un modo de reposo, la MCU se despierta. La MCU
se detiene entonces durante cuatro ciclos en Adems del tiempo de puesta en marcha, se ejecuta la rutina de interrupcin, y
reanuda la ejecucin de la instruccin siguiente SLEEP. El contenido del Registro de archivos y
SRAM son inalterada cuando el dispositivo se despierta de su sueo. Si se produce un reset durante el modo de reposo,
el MCU se despierta y se ejecuta desde el reinicio del vector.
39
8161D-AVR-10.9
BOD Desactivar
Cuando el detector de Brown-out (BOD) est habilitado de BODLEVEL fusiona, Tabla 27-7 en la pgina 296,
la DBO est monitoreando activamente la tensin de alimentacin durante un perodo de sueo. Para ahorrar energa, se
es posible desactivar la DBO por software para algunos de los modos de suspensin, ver Tabla 9-1 en la pgina
39. El consumo de energa en modo inactivo ser entonces al mismo nivel que cuando BOD es globalmente
deshabilitado por fusibles. Si BOD est desactivado en el software, la funcin DBO se apaga inmediatamente
despus de entrar en el modo de suspensin. Al despertar del sueo, BOD se activa automticamente de nuevo.
Esto garantiza un funcionamiento seguro en caso de que el nivel VCC ha disminuido durante el perodo de sueo.
Cuando el BOD ha sido desactivado, la hora del despertador del modo de suspensin ser de aproximadamente 60
microsiemens para asegurar que el BOD est funcionando correctamente antes de la MCU contina la ejecucin del cdigo.
Desactivar el BOD es controlado por el bit 6, BOD (BOD del sueo) en el Registro de Control MCUCR, ver
"MCUCR - MCU Registro de control" en la pgina 44. Escribir este bit a uno apaga la DBO en nente
los modos de suspensin perti-, mientras que un cero en este bit DBO mantiene activo. Ajuste por defecto mantiene BOD activo,
es decir bods ponen a cero.
La escritura en el bit bods es controlado por una secuencia temporizada y un bit de habilitacin, ver "MCUCR MCU Registro de control "en la pgina 44.
9.3
Modo inactivo
Cuando los bits SM2..0 se escriben en 000, la instruccin SLEEP hace que el MCU entrar Inactivo
modo, detener el CPU, pero permitiendo que el SPI, USART, Comparador Anlogo, ADC, Serial de 2 hilos
Interface, Timer / contadores, Watchdog, y el sistema de interrupcin para continuar operando. Este sueo
modo bsicamente detiene clkCPU y clkFLASH, al tiempo que permite a los otros relojes que se ejecuten.
La pantalla de inicio permite al MCU para despertar de las interrupciones provocadas externos como internos
unos como los Timer Overflow y USART Transmitir interrupciones completas. Si despertador de la
No se requiere comparador analgico interrupcin, el comparador analgico puede ser alimentado por
establecer el bit ACD en Comparador de control analgico y Registro de Estado - ACSR. Esta voluntad
reducir el consumo de energa en modo de espera. Si el ADC est habilitado, una conversin se inicia automticamente
camente cuando se entra en este modo.
9.4
Esto mejora el ambiente de ruido para la ADC, lo que permite mediciones de mayor resolucin. Si
el ADC est habilitado, una conversin se inicia automticamente cuando se entra en este modo. Aparte de la
Conversin ADC interrupcin completa, slo un reinicio externo, un restablecimiento del sistema Watchdog, un
Watchdog de interrupcin, un reinicio Brown-out rpido, de 2 hilos coincidencia de direccin de interfaz serie, un
Timer / Contador2 interrumpir, una interrupcin listo SPM / EEPROM, una interrupcin de nivel externo en INT0
o INT1 o una interrupcin de cambio de pin puede despertar el MCU desde el modo de reduccin de ruido ADC.
Nota:
1. Timer / Contador2 slo sigue funcionando en modo asncrono, consulte "8-bit del temporizador / Contador2 con
PWM y asincrnica operacin "en la pgina 144 para ms detalles.
40
8161D-AVR-10.9
Modo de apagado
Cuando los bits SM2..0 se escriben en 010, la instruccin SLEEP hace que el MCU entrar PowerModo de abajo. En este modo, el oscilador externo se detuvo, mientras que las interrupciones externas, la 2reloj direccin de la interfaz en serie de alambre, y la vigilancia siguen operando (si est activado). Slo una
Restablecer externa, un restablecimiento del sistema Watchdog, un perro guardin de interrupcin, un reinicio Brown-out rpido,
de 2 hilos
Partido de la interfaz en serie de direcciones, una interrupcin de nivel externo en INT0 o INT1, o un cambio pin
interrumpir puede despertar la MCU. Este modo de reposo bsicamente detiene todos los relojes generados, lo que permite
funcionamiento de los mdulos asncronos solamente.
Tenga en cuenta que si una interrupcin activada nivel se utiliza para despertar del modo Energa-abajo, la cambi
nivel debe ser mantenida durante un cierto tiempo para despertar a la MCU. Referirse a "Las interrupciones externas" en la pgina
70
para ms detalles.
Al despertar del modo Energa-abajo, hay un retraso de la condicin de alerta se produce
hasta que el despertador se haga efectiva. Esto permite que el reloj se reinicie y se estabiliza despus
haber sido detenido. El perodo de atencin se define por los mismos Fusibles CKSEL que definen la
Restablecer perodo de tiempo de espera, como se describe en "Fuentes de reloj" en la pgina 27.
9.6
9.7
Modo de espera
Cuando los bits SM2..0 son 110 y una opcin de cristal de reloj / resonador externo se selecciona, la
Instruccin SLEEP hace que el MCU entrar en el modo de espera. Este modo es idntico al de la Energa-abajo
con la excepcin de que el oscilador se mantiene en funcionamiento. Desde el modo de espera, el dispositivo se activa
en seis ciclos de reloj.
9.8
41
8161D-AVR-10.9
9.9
Apagado del mdulo se puede utilizar en el modo de espera y el modo activo para reducir significativamente la general
el consumo de energa. En todos los dems modos de suspensin, el reloj ya est detenido.
9.10
9.10.1
9.10.2
Comparador analgico
Al entrar en el modo de espera, el comparador analgico debe desactivarse si no se utiliza. Al entrar
Modo Reduccin de Ruido ADC, Comparador analgico debe estar deshabilitada. En otros modos de suspensin,
Comparador analgico se desactiva automticamente. Sin embargo, si el comparador analgico est configurado
utilizar la referencia de tensin interna como entrada, el comparador analgico se debe desactivar en todo
los modos de suspensin. De lo contrario, la tensin de referencia interna se activar, independientemente del sueo
de modo. Referirse a "Comparador analgico" en la pgina 246 para ms detalles sobre cmo configurar el analgico
Comparador.
9.10.3
9.10.4
42
8161D-AVR-10.9
Watchdog Timer
Si el temporizador de vigilancia no es necesario en la aplicacin, el mdulo debe ser apagado. Si el
Watchdog Timer est activado, se habilitar en todos los modos de suspensin y por lo tanto siempre se consumen
de energa. En los modos de sueo ms profundo, esto contribuir significativamente al consumo total de corriente
cin. Referirse a "Temporizador de vigilancia" en la pgina 50 para ms detalles sobre cmo configurar el temporizador de vigilancia.
9.10.6
Port prendedores
Al entrar en un modo de espera, todos los pines del puerto deben estar configurados para utilizar la potencia mnima. La
ms importante es entonces para asegurarse de que no hay contactos en coche cargas resistivas. En los modos de suspensin donde
ambos
el reloj de I / O (clkI / O) y el reloj de ADC (clkADC) se detuvo, los buffers de entrada del dispositivo
estar deshabilitado. Esto asegura que no se consume energa por la lgica de entrada cuando no se necesita. En
algunos casos, se necesita la lgica de entrada para detectar condiciones de despertador, y sern entonces
habilitado. Consulte la seccin "Habilitar entrada digital y modos de espera" en la pgina 79 para ms detalles sobre
que se habilitan pines. Si el buffer de entrada est activado y la seal de entrada se deja flotante o tienen
un nivel de seal analgica cerca de VCC / 2, el buffer de entrada utilizar una potencia excesiva.
Para pines de entrada analgicas, el buffer de entrada digital debe ser desactivado en todo momento. Una seal analgica
nivel cercano a VCC / 2 en un pin de entrada puede causar una corriente significativa incluso en modo activo. Digital
buffers de entrada pueden ser desactivadas por escrito a la entrada digital Desactivar Registros (DIDR1 y
DIDR0). Referirse a "DIDR1 - Entrada digital Desactivar Registro 1" en la pgina 249 y "DIDR0 - Digital
Entrada Desactivar Regstrate 0 "en la pgina 266 para ms detalles.
9.10.7
43
8161D-AVR-10.9
9.11
Registro Descripcin
9.11.1
0x33 (0x53)
SM2
SM1
SM0
SE
Lectura / Escritura
R/W
R/W
R/W
R/W
Valor inicial
SMCR
SM2
SM1
SM0
Ocioso
Energa-abajo
De ahorro de energa
Reservado
Reservado
Colocarse(1)
Standby externo(1)
Nota:
Modo de reposo
1. Modo de espera slo se recomienda para su uso con cristales o resonadores externos.
9.11.2
Bit
0x35 (0x55)
Lectura / Escritura
Valor inicial
BODSE
PUD
IVSEL
IVCE
R/W
R/W
R/W
Bods
MCUCR
44
8161D-AVR-10.9
PRTWI
PRTIM2
PRTIM0
PRTIM1
PRSPI
1
PRUSART0
0
PRADC
R/W
R/W
R/W
R/W
R/W
R/W
R/W
PRR
45
8161D-AVR-10.9
Los puertos de E / S del AVR se restablecen inmediatamente a su estado inicial cuando una fuente de restauracin va
activo. Esto no requiere ninguna fuente de reloj para estar en ejecucin.
Despus de todas las fuentes de reinicio han ido inactivo, un contador de retardo se invoca, el estiramiento de la interna
restablecer. Esto permite que la potencia para alcanzar un nivel estable antes de que comience la operacin normal. El tiempo de
espera
perodo del contador de retardo est definido por el usuario a travs del SUT y CKSEL fusibles. El diselecciones rentes para el perodo de demora se presentan en "Fuentes de reloj" en la pgina 27.
10.2
Restablecer Fuentes
El ATmega48PA / 88PA / 168PA / 328P tiene cuatro fuentes de reinicio:
Power-on Reset. El MCU se restablece cuando la tensin de alimentacin es inferior a la de encendido Restablecer
umbral (VPOT).
Restablecer externa. El MCU se restablece cuando un nivel bajo est presente en el pin RESET durante ms de
la duracin mnima del impulso.
Restablecimiento del sistema de vigilancia. El MCU se restablece cuando el periodo del temporizador watchdog expira y el
Modo Reiniciar sistema Watchdog est activado.
Brown-fuera Reset. El MCU se restablece cuando la tensin de alimentacin VCC est por debajo del reinicio Brown-fuera
umbral (VBOT) y el marrn de salida del detector est habilitado.
46
8161D-AVR-10.9
MCU Estado
Registrar (MCUSR)
PORFBORFEXTRFWDRF
Restablecimiento al encendido
Circuito
Brown-fuera
Restablecer Circuito
BODLEVEL [2..0]
Resistencia de actuacin
SPIKE
FILTRO
RSTDISBL
Perro guardin
Oscilador
Reloj
Generador
CK
Contadores de retardo
SE ACAB EL TIEMPO
CKSEL [3: 0]
SUT [1: 0]
10.3
Restablecimiento al
encendido
Un Power-on Reset (POR) pulso es generado por un circuito de deteccin on-chip. El nivel de deteccin
se define en "Sistema y Reiniciar Caractersticas" en la pgina 318. El POR se activa cada vez que
VCC est por debajo del nivel de deteccin. El circuito POR puede ser usado para activar la puesta en marcha de Reset, como
as como para detectar un fallo en la tensin de alimentacin.
Un Power-on Reset (POR) circuito asegura que el dispositivo se restablece de encendido. Al llegar a la
Power-on de tensin Restablecer umbral invoca el contador de retardo, el cual determina el tiempo que el
dispositivo se mantiene en REINICIO despus del ascenso VCC. La seal de RESET se activa de nuevo, sin demora alguna,
cuando VCC disminuye por debajo del nivel de deteccin.
VRST
REINICIO
SE ACAB EL TIEMPO
tTOUT
INTERNA
REINICIO
47
8161D-AVR-10.9
VRST
REINICIO
tTOUT
SE ACAB EL TIEMPO
INTERNA
REINICIO
10.4
Restablecer externa
Un reset externo es generado por un nivel bajo en el pin RESET. Restablecer pulsos ms largo que el
ancho de pulso mnimo (vase "del sistema y restablecer Caractersticas" en la pgina 318) generar una
restablece, incluso si el reloj no se est ejecutando. Pulsos ms cortos no estn garantizados para generar un reset.
Cuando la seal aplicada alcanza el umbral de reset Voltaje - VRST - en su borde positivo, el
contador de demora se inicia el MCU despus del perodo de tiempo de espera - tTOUT - ha expirado. El reinicio externo
puede ser desactivado por el fusible RSTDISBL, consulte Tabla 27-7 en la pgina 296.
10.5
El circuito de DBO slo detecta una cada en VCC si el voltaje permanece por debajo del nivel de activacin para longer que tBOD da en "Sistema y Reiniciar Caractersticas" en la pgina 318.
48
8161D-AVR-10.9
VBOT +
VBOT-
REINICIO
tTOUT
SE ACAB EL TIEMPO
INTERNA
REINICIO
10.6
CK
10.7
10.7.1
49
8161D-AVR-10.9
10.8
Watchdog Timer
10.8.1
Caractersticas
Frecuencia de reloj del oscilador por separado en el chip
3 Modos de funcionamiento
- Interrupcin
- Restablecimiento del sistema
- Interrupcin y restablecimiento del sistema
Seleccionable perodo de tiempo de espera de 16 ms a 8s
Posible Watchdog fusible hardware siempre encendido (WDTON) para el modo a prueba de
fallos
10.8.2
Visin de conjunto
ATmega48PA / 88PA / 168PA / 328P tiene un temporizador de vigilancia mejorado (WDT). El WDT es una
temporizador contando ciclos de un oscilador de 128 kHz separada on-chip. El WDT da una interrupcin o una
sistema restablece cuando el contador alcanza un valor de tiempo de espera determinado. En el modo de funcionamiento normal,
es
requiere que el sistema utiliza la WDR - Watchdog Timer Reiniciar - instrucciones para reiniciar el pas
se alcanza ter antes que el valor de tiempo de espera. Si el sistema no se reinicia el contador, una interrupcin o
Se emitir reinicio del sistema.
Figura 10-7. Watchdog Timer
128kHz
OSCILADOR
PERRO GUARDIN
REINICIO
WDE
WDP0
WDP1
WDP2
WDP3
MCU de RESET
WDIF
WDIE
INTERRUPCIN
En el modo de interrupcin, el WDT da una interrupcin cuando el tiempo se agota. Esta interrupcin puede ser utilizado
para despertar el dispositivo de sueo-modos, y tambin como un temporizador del sistema general. Un ejemplo es
limitar el tiempo mximo permitido para ciertas operaciones, dando una interrupcin cuando la operacin
ha mostrado por ms tiempo de lo esperado. En el modo de reinicio del sistema, el WDT da un reset cuando el temporizador
expira. Esto se usa tpicamente para evitar bloqueo del sistema de seguridad en caso de cdigo fugitivo. La tercera
modo, de interrupcin y el modo de restablecimiento del sistema, combina los otros dos modos por primera da una interrupt y luego cambiar a modo Reiniciar sistema. Este modo, por ejemplo, permitir una parada segura
por el ahorro de los parmetros crticos antes de reiniciar el sistema.
El Watchdog siempre encendido (WDTON) fusible, si est programado, obligar al Watchdog Timer para sistemas
tem modo Reset. Con el fusible programado el bit de modo de reinicio del sistema (WDE) y de interrupcin
50
8161D-AVR-10.9
El ejemplo de cdigo siguiente se muestra un montaje y una funcin C para apagar el Reloj
Temporizador perro. El ejemplo asume que las interrupciones se controlan (por ejemplo, mediante la desactivacin de
interrupciones
a nivel mundial) de manera que no se producirn interrupciones durante la ejecucin de estas funciones.
51
8161D-AVR-10.9
r16, MCUSR
andi
fuera
MCUSR, r16
Cdigo C Ejemplo(1)
vaco WDT_off (void)
{
__disable_interrupt ();
__watchdog_reset ();
/ * Borrar WDRF en MCUSR * /
MCUSR & = ~ (1 << WDRF);
/ * Escribir un lgico WDCE y WDE * /
/ * Funcin Keep prescaler edad para evitar tiempo de espera no intencional * /
WDTCSR | = (1 << WDCE) | (1 << WDE);
/ * Apague WDT * /
WDTCSR = 0x00;
__enable_interrupt ();
}
Nota:
Nota: Si el Watchdog est activado accidentalmente, por ejemplo, mediante un puntero fuera de control o marrn Salida
condicin, el dispositivo se reiniciar y el temporizador de vigilancia se mantendr activada. Si el cdigo no es
creado para manejar el perro guardin, esto podra conducir a un bucle eterno de restablecimientos de tiempo de espera. Para evitar
esto
situacin, el software de aplicacin siempre debe despejar el restablecimiento del sistema de vigilancia de la bandera
(WDRF) y el bit de control de WDE en la rutina de inicializacin, incluso si el Watchdog no est en uso.
52
8161D-AVR-10.9
Cdigo C Ejemplo(1)
vaco WDT_Prescaler_Change (void)
{
__disable_interrupt ();
__watchdog_reset ();
equence * /
/ * Iniciar
cronometrado
WDTCSR | = (1 << WDCE) | (1 << WDE);
/ * Establecer nueva prescaler (tiempo de espera) valor = 64K ciclos (~
0,5 s) * /
WDTCSR
= (1 << WDE) | (1 << WDP2) | (1 << WDP0);
__enable_interrupt ();
}
Nota:
Nota: El temporizador de vigilancia debe restablecerse antes de cualquier cambio de los bits de WDP, ya que un cambio
en los bits de WDP puede resultar en un tiempo de espera cuando se cambia a un perodo de tiempo de espera ms corto.
53
8161D-AVR-10.9
10.9
Registro Descripcin
10.9.1
0x35 (0x55)
WDRF
BORF
EXTRF
PORF
Lectura / Escritura
R/W
R/W
R/W
R/W
Valor inicial
MCUSR
10.9.2
WDIF
WDIE
WDP3
WDCE
WDE
WDP2
WDP1
WDP0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
WDTCSR
54
8161D-AVR-10.9
Tabla 10-1.
WDTON(1)
WDE
WDIE
Detenido
Modo de interrupcin
Interrupcin
Nota:
Modo
Reajustar
Tabla 10-2.
WDP3
WDP2
WDP1
WDP0
2K (2048) Ciclos
16 ms
4K (4.096) ciclos
32 ms
8K (8192) Ciclos
64 ms
0,125 s
0,25 s
0,5 s
1,0 s
55
8161D-AVR-10.9
WDP3
WDP2
WDP1
WDP0
2,0 s
4,0 s
8,0 s
Reservado
56
8161D-AVR-10.9
11. Interrupciones
En esta seccin se describen los detalles de la gestin de interrupciones como se realiz en
ATmega48PA / 88PA / 168PA / 328P. Para una explicacin general de la gestin de interrupciones AVR, consulte
a "Reset y manejo de interrupciones" en la pgina 14.
Los vectores de interrupcin en ATmega48PA, ATmega88PA, ATmega168PA y ATmega328P son
generalmente el mismo, con las siguientes diferencias:
Cada vector de interrupcin ocupa dos palabras de instruccin en ATmega168PA y ATmega328P, y
palabra de una instruccin en ATmega48PA y ATmega88PA.
ATmega48PA no tiene una seccin del cargador de arranque independiente. En ATmega88PA,
ATmega168PA y ATmega328P, el reinicio del vector se ve afectada por el fusible BOOTRST, y el
Vector de interrupcin direccin de inicio se ve afectada por el bit IVSEL en MCUCR.
11.1
Tabla 11-1.
Vector No.
Interrupcin Definicin
0x000
REINICIO
Pin externa, Power-on Reset, Brown-fuera Resetear Reset y de vigilancia del sistema
0x001
INT0
0x002
INT1
0x003
PCINT0
0x004
PCINT1
0x005
PCINT2
0x006
WDT
0x007
TIMER2 COMPA
0x008
TIMER2 COMPB
10
0x009
TIMER2 OVF
11
0x00A
TIMER1 CAPT
12
0x00B
TIMER1 COMPA
13
0x00C
TIMER1 COMPB
14
0x00D
TIMER1 OVF
15
0x00E
TIMER0 COMPA
16
0x00F
TIMER0 COMPB
17
0x010
TIMER0 OVF
18
0x011
SPI, STC
19
0x012
USART, RX
USART Rx completa
20
0x013
USART, UDRE
21
0x014
USART, TX
USART, Tx completa
22
0x015
ADC
23
0x016
EE LISTO
EEPROM Ready
57
8161D-AVR-10.9
Interrupcin Definicin
24
0x017
ANALGICO COMP
Comparador analgico
25
0x018
TWI
26
0x019
SPM LISTO
La configuracin del programa ms tpica y general para el restablecimiento y vector de interrupcin en Direcciones
ATmega48PA es:
Comentarios
Etiquetas de direccin
Cdigo
0x000
rjmp
REINICIO
; Restablecer Handler
0x001
rjmp
EXT_INT0
; IRQ0 Handler
0x002
rjmp
EXT_INT1
; IRQ1 Handler
0x003
rjmp
PCINT0
; PCINT0 Handler
0x004
rjmp
PCINT1
; PCINT1 Handler
0x005
rjmp
PCINT2
; PCINT2 Handler
0x006
rjmp
WDT
0x007
rjmp
TIM2_COMPA
0x008
rjmp
TIM2_COMPB
0x009
rjmp
TIM2_OVF
0x00A
rjmp
TIM1_CAPT
0x00B
rjmp
TIM1_COMPA
0x00C
rjmp
TIM1_COMPB
0x00D
rjmp
TIM1_OVF
0x00E
rjmp
TIM0_COMPA
0x00F
rjmp
TIM0_COMPB
0x010
rjmp
TIM0_OVF
0x011
rjmp
SPI_STC
0x012
rjmp
USART_RXC
0x013
rjmp
USART_UDRE
0x014
rjmp
USART_TXC
0x015
rjmp
ADC
0x016
rjmp
EE_RDY
0x017
rjmp
ANA_COMP
0x018
rjmp
TWI
0x019
rjmp
SPM_RDY
0x01ARESET:
LDI
0x01B
fuera
0x01C
LDI
0x01D
fuera
SPL, r16
0x01E
sei
0x01F
...
<Instr>
...
...
xxx
; Habilitar las
interrupciones
...
58
8161D-AVR-10.9
Tabla 11-2.
Vector No.
Programa
Direccin(2)
0x000(1)
Notas:
Fuente
Interrupcin Definicin
REINICIO
Pin externa, Power-on Reset, Brown-fuera Resetear Reset y de vigilancia del sistema
0x001
INT0
0x002
INT1
0x003
PCINT0
0x004
PCINT1
0x005
PCINT2
0x006
WDT
0x007
TIMER2 COMPA
0x008
TIMER2 COMPB
10
0x009
TIMER2 OVF
11
0x00A
TIMER1 CAPT
12
0x00B
TIMER1 COMPA
13
0x00C
TIMER1 COMPB
14
0x00D
TIMER1 OVF
15
0x00E
TIMER0 COMPA
16
0x00F
TIMER0 COMPB
17
0x010
TIMER0 OVF
18
0x011
SPI, STC
19
0x012
USART, RX
USART Rx completa
20
0x013
USART, UDRE
21
0x014
USART, TX
USART, Tx completa
22
0x015
ADC
23
0x016
EE LISTO
EEPROM Ready
24
0x017
ANALGICO COMP
Comparador analgico
25
0x018
TWI
26
0x019
SPM LISTO
1. Cuando el BOOTRST fusible est programado, el dispositivo saltar a la direccin del gestor de arranque en el reinicio, vase "Gestor de arranque Support
puerto - Leer-While-Escribe Auto-Programacin, ATmega88PA, ATmega168PA y ATmega328P "en la pgina 277.
2. Cuando el bit IVSEL en MCUCR se establece, vectores de interrupcin se mover al inicio de la Seccin de flash de arranque. La direccin de
cada vector de interrupcin ser entonces la direccin en esta tabla aadida a la direccin de inicio de la seccin Flash de arranque.
Tabla 11-3 en la pgina 60 muestra la colocacin vectores de reposicin y de interrupcin de los diversos combinacin
ciones de configuracin BOOTRST y IVSEL. Si el programa no permite a una fuente de interrupcin, la
Vectores de interrupcin no se utilizan, y el cdigo del programa normal se puede colocar en estos lugares. Este
tambin es el caso si el reinicio Vector est en la seccin de aplicaciones, mientras que los vectores de interrupcin se encuentran
en
la seccin de arranque o viceversa.
59
8161D-AVR-10.9
Tabla 11-3.
BOOTRST
IVSEL
Nota:
Restablecer Direccin
0x000
0x001
0x000
0x001
1. El arranque Restablecer Direccin se muestra en Tabla 26-7 en la pgina 289. Para el BOOTRST Fuse "1"
significa no programadas mientras que "0" significa programadas.
La configuracin del programa ms tpica y general para el restablecimiento y vector de interrupcin en Direcciones
ATmega88PA es:
Comentarios
Etiquetas de direccin
Cdigo
0x000
rjmp
REINICIO
; Restablecer Handler
0x001
rjmp
EXT_INT0
; IRQ0 Handler
0x002
rjmp
EXT_INT1
; IRQ1 Handler
0x003
rjmp
PCINT0
; PCINT0 Handler
0x004
rjmp
PCINT1
; PCINT1 Handler
0x005
rjmp
PCINT2
; PCINT2 Handler
0x006
rjmp
WDT
0x007
rjmp
TIM2_COMPA
0X008
rjmp
TIM2_COMPB
0x009
rjmp
TIM2_OVF
0x00A
rjmp
TIM1_CAPT
0x00B
rjmp
TIM1_COMPA
0x00C
rjmp
TIM1_COMPB
0x00D
rjmp
TIM1_OVF
0x00E
rjmp
TIM0_COMPA
0x00F
rjmp
TIM0_COMPB
0x010
rjmp
TIM0_OVF
0x011
rjmp
SPI_STC
0x012
rjmp
USART_RXC
0x013
rjmp
USART_UDRE
0x014
rjmp
USART_TXC
0x015
rjmp
ADC
0x016
rjmp
EE_RDY
0x017
rjmp
ANA_COMP
0x018
rjmp
TWI
0x019
rjmp
SPM_RDY
0x01ARESET:
LDI
0x01B
fuera
0x01C
LDI
0x01D
0x01E
fuera
sei
SPL, r16
0x01F
<Instr>
xxx
; Habilitar las
interrupciones
60
8161D-AVR-10.9
Comentarios
0x001
fuera
0x002
LDI
0x003
0x004
fuera
sei
SPL, r16
0x005
<Instr>
xxx
; Habilitar las
interrupciones
;
.org 0xC01
0xC01
rjmp
EXT_INT0
; IRQ0 Handler
0xC02
rjmp
EXT_INT1
; IRQ1 Handler
...
...
...
0xC19
rjmp
SPM_RDY
Cuando el BOOTRST fusible est programado y el tamao de la seccin de arranque ajustado a 2K bytes, el ms
configuracin del programa tpico y general para el restablecimiento y direcciones de interrupcin del vector en
ATmega88PA es:
Comentarios
Etiquetas de direccin
Cdigo
.org 0x001
0x001
rjmp
EXT_INT0
; IRQ0 Handler
0x002
rjmp
EXT_INT1
; IRQ1 Handler
...
...
...
0x019
rjmp
SPM_RDY
0xC01
fuera
0xC02
LDI
0xC03
0xC04
fuera
sei
SPL, r16
0xC05
<Instr>
;
.org 0xc00
0xC00RESET: LDI
xxx
; Habilitar las
interrupciones
Cuando el BOOTRST fusible est programado, el tamao de la seccin de arranque ajustado a 2K bytes y el IVSEL
poco en el Registro MCUCR se establece antes de que las interrupciones estn habilitadas, la ms tpica y general
configuracin del programa para el restablecimiento y direcciones de interrupcin del vector en ATmega88PA es:
Comentarios
Etiquetas de direccin
Cdigo
;
.org 0xc00
0xc00
rjmp
REINICIO
0xC01
rjmp
EXT_INT0
; Restablecer
controlador
; IRQ0 Handler
0xC02
rjmp
EXT_INT1
; IRQ1 Handler
...
...
...
0xC19
rjmp
SPM_RDY
;
0xC1A
RESET: LDI
61
8161D-AVR-10.9
11.3
fuera
SPH, r16
0xC1C
LDI
0xC1D
0xC1E
fuera
sei
SPL, r16
0xC1F
<Instr>
xxx
; Habilitar las
interrupciones
Tabla 11-4.
VectorNo.
Programa
Direccin(2)
0x0000(1)
Notas:
0xC1B
Fuente
Interrupcin Definicin
REINICIO
Pin externa, Power-on Reset, Brown-fuera Resetear Reset y de vigilancia del sistema
0x0002
INT0
0x0004
INT1
0x0006
PCINT0
0x0008
PCINT1
0x000A
PCINT2
0x000C
WDT
0x000E
TIMER2 COMPA
0x0010
TIMER2 COMPB
10
0x0012
TIMER2 OVF
11
0x0014
TIMER1 CAPT
12
0x0016
TIMER1 COMPA
13
0x0018
TIMER1 COMPB
14
0x001A
TIMER1 OVF
15
0x001C
TIMER0 COMPA
16
0x001E
TIMER0 COMPB
17
0x0020
TIMER0 OVF
18
0x0022
SPI, STC
19
0x0024
USART, RX
USART Rx completa
20
0x0026
USART, UDRE
21
0x0028
USART, TX
USART, Tx completa
22
0x002A
ADC
23
0x002C
EE LISTO
EEPROM Ready
24
0x002E
ANALGICO COMP
Comparador analgico
25
0x0030
TWI
26
0x0032
SPM LISTO
1. Cuando el BOOTRST fusible est programado, el dispositivo saltar a la direccin del gestor de arranque en el reinicio, vase "Gestor de arranque Support
puerto - Leer-While-Escribe Auto-Programacin, ATmega88PA, ATmega168PA y ATmega328P "en la pgina 277.
2. Cuando el bit IVSEL en MCUCR se establece, vectores de interrupcin se mover al inicio de la Seccin de flash de arranque. La direccin de
cada vector de interrupcin ser entonces la direccin en esta tabla aadida a la direccin de inicio de la seccin Flash de arranque.
62
8161D-AVR-10.9
BOOTRST
IVSEL
Nota:
Restablecer Direccin
0x000
0x002
0x000
0x002
1. El arranque Restablecer Direccin se muestra en Tabla 26-7 en la pgina 289. Para el BOOTRST Fuse "1"
significa no programadas mientras que "0" significa programadas.
La configuracin del programa ms tpica y general para el restablecimiento y vector de interrupcin en Direcciones
ATmega168PA es:
Comentarios
Etiquetas de direccin
Cdigo
0x0000
jmp
REINICIO
; Restablecer Handler
0x0002
jmp
EXT_INT0
; IRQ0 Handler
0x0004
jmp
EXT_INT1
; IRQ1 Handler
0x0006
jmp
PCINT0
; PCINT0 Handler
0x0008
jmp
PCINT1
; PCINT1 Handler
0x000A
jmp
PCINT2
; PCINT2 Handler
0x000C
jmp
WDT
0x000E
jmp
TIM2_COMPA
0x0010
jmp
TIM2_COMPB
0x0012
jmp
TIM2_OVF
0x0014
jmp
TIM1_CAPT
0x0016
jmp
TIM1_COMPA
0x0018
jmp
TIM1_COMPB
0x001A
jmp
TIM1_OVF
0x001C
jmp
TIM0_COMPA
0x001E
jmp
TIM0_COMPB
0x0020
jmp
TIM0_OVF
0x0022
jmp
SPI_STC
0x0024
jmp
USART_RXC
0x0026
jmp
USART_UDRE
0x0028
jmp
USART_TXC
0x002A
jmp
ADC
0x002C
jmp
EE_RDY
0x002E
jmp
ANA_COMP
0x0030
jmp
TWI
0x0032
jmp
SPM_RDY
LDI
;
0x0033RESET:
63
8161D-AVR-10.9
fuera
SPH, r16
0x0035
LDI
0x0036
fuera
SPL, r16
0x0037
sei
0x0038
<Instr>
...
...
...
xxx
; Habilitar las
interrupciones
...
Comentarios
0x0001
fuera
0x0002
LDI
0x0003
0x0004
fuera
sei
SPL, r16
0x0005
<Instr>
xxx
; Habilitar las
interrupciones
;
.org 0x1C02
0x1C02
jmp
EXT_INT0
; IRQ0 Handler
0x1C04
jmp
EXT_INT1
; IRQ1 Handler
...
...
...
0x1C32
jmp
SPM_RDY
Cuando el BOOTRST fusible est programado y el tamao de la seccin de arranque ajustado a 2K bytes, el ms
configuracin del programa tpico y general para el restablecimiento y direcciones de interrupcin del vector en
ATmega168PA es:
Comentarios
Etiquetas de direccin
Cdigo
.org 0x0002
0x0002
jmp
EXT_INT0
; IRQ0 Handler
0x0004
jmp
EXT_INT1
; IRQ1 Handler
...
...
...
0x0032
jmp
SPM_RDY
;
.org 0x1C00
0x1C00 RESET: LDI
0x1C01
fuera
0x1C02
LDI
0x1C03
0x1C04
fuera
sei
SPL, r16
0x1C05
<Instr>
xxx
; Habilitar las
interrupciones
Cuando el BOOTRST fusible est programado, el tamao de la seccin de arranque ajustado a 2K bytes y el IVSEL
poco en el Registro MCUCR se establece antes de que las interrupciones estn habilitadas, la ms tpica y general
configuracin del programa para el restablecimiento y direcciones de interrupcin del vector en ATmega168PA es:
Etiquetas de direccin
Cdigo
;
Comentarios
64
8161D-AVR-10.9
jmp
REINICIO
0x1C02
jmp
EXT_INT0
; Restablecer
controlador
; IRQ0 Handler
0x1C04
jmp
EXT_INT1
; IRQ1 Handler
...
...
...
0x1C32
jmp
SPM_RDY
;
0x1C33
11.4
RESET: LDI
0x1C34
fuera
0x1C35
LDI
0x1C36
0x1C37
fuera
sei
SPL, r16
0x1C38
<Instr>
xxx
; Habilitar las
interrupciones
Tabla 11-6.
VectorNo.
Programa
Direccin(2)
0x0000(1)
Fuente
Interrupcin Definicin
REINICIO
Pin externa, Power-on Reset, Brown-fuera Resetear Reset y de vigilancia del sistema
0x0002
INT0
0x0004
INT1
0x0006
PCINT0
0x0008
PCINT1
0x000A
PCINT2
0x000C
WDT
0x000E
TIMER2 COMPA
0x0010
TIMER2 COMPB
10
0x0012
TIMER2 OVF
11
0x0014
TIMER1 CAPT
12
0x0016
TIMER1 COMPA
13
0x0018
TIMER1 COMPB
14
0x001A
TIMER1 OVF
15
0x001C
TIMER0 COMPA
16
0x001E
TIMER0 COMPB
17
0x0020
TIMER0 OVF
18
0x0022
SPI, STC
19
0x0024
USART, RX
USART Rx completa
20
0x0026
USART, UDRE
21
0x0028
USART, TX
USART, Tx completa
22
0x002A
ADC
65
8161D-AVR-10.9
VectorNo.
Programa
Direccin(2)
23
Notas:
Fuente
Interrupcin Definicin
0x002C
EE LISTO
EEPROM Ready
24
0x002E
ANALGICO COMP
Comparador analgico
25
0x0030
TWI
26
0x0032
SPM LISTO
1. Cuando el BOOTRST fusible est programado, el dispositivo saltar a la direccin del gestor de arranque en el reinicio, vase "Gestor de arranque Support
puerto - Leer-While-Escribe Auto-Programacin, ATmega88PA, ATmega168PA y ATmega328P "en la pgina 277.
2. Cuando el bit IVSEL en MCUCR se establece, vectores de interrupcin se mover al inicio de la Seccin de flash de arranque. La direccin de
cada vector de interrupcin ser entonces la direccin en esta tabla aadida a la direccin de inicio de la seccin Flash de arranque.
Tabla 11-7 en la pgina 66 muestra la colocacin vectores de reposicin y de interrupcin de los diversos combinacin
ciones de configuracin BOOTRST y IVSEL. Si el programa no permite a una fuente de interrupcin, la
Vectores de interrupcin no se utilizan, y el cdigo del programa normal se puede colocar en estos lugares. Este
tambin es el caso si el reinicio Vector est en la seccin de aplicaciones, mientras que los vectores de interrupcin se encuentran
en
la seccin de arranque o viceversa.
Tabla 11-7.
BOOTRST
IVSEL
Nota:
Restablecer Direccin
0x000
0x002
0x000
0x002
1. El arranque Restablecer Direccin se muestra en Tabla 26-7 en la pgina 289. Para el BOOTRST Fuse "1"
significa no programadas mientras que "0" significa programadas.
La configuracin del programa ms tpica y general para el restablecimiento y vector de interrupcin en Direcciones
ATmega328P es:
Comentarios
Etiquetas de direccin
Cdigo
0x0000
jmp
REINICIO
; Restablecer Handler
0x0002
jmp
EXT_INT0
; IRQ0 Handler
0x0004
jmp
EXT_INT1
; IRQ1 Handler
0x0006
jmp
PCINT0
; PCINT0 Handler
0x0008
jmp
PCINT1
; PCINT1 Handler
0x000A
jmp
PCINT2
; PCINT2 Handler
0x000C
jmp
WDT
0x000E
jmp
TIM2_COMPA
0x0010
jmp
TIM2_COMPB
0x0012
jmp
TIM2_OVF
0x0014
jmp
TIM1_CAPT
0x0016
jmp
TIM1_COMPA
0x0018
jmp
TIM1_COMPB
0x001A
jmp
TIM1_OVF
0x001C
jmp
TIM0_COMPA
0x001E
jmp
TIM0_COMPB
66
8161D-AVR-10.9
jmp
TIM0_OVF
0x0022
jmp
SPI_STC
0x0024
jmp
USART_RXC
0x0026
jmp
USART_UDRE
0x0028
jmp
USART_TXC
0x002A
jmp
ADC
0x002C
jmp
EE_RDY
0x002E
jmp
ANA_COMP
0x0030
jmp
TWI
0x0032
jmp
SPM_RDY
0x0033RESET:
LDI
0x0034
fuera
0x0035
LDI
0x0036
fuera
SPL, r16
0x0037
sei
0x0038
<Instr>
...
...
...
xxx
; Habilitar las
interrupciones
...
Comentarios
0x0001
fuera
0x0002
LDI
0x0003
0x0004
fuera
sei
SPL, r16
0x0005
<Instr>
xxx
; Habilitar las
interrupciones
;
.org 0x3C02
0x3C02
jmp
EXT_INT0
; IRQ0 Handler
0x3C04
jmp
EXT_INT1
; IRQ1 Handler
...
...
...
0x3C32
jmp
SPM_RDY
Cuando el BOOTRST fusible est programado y el tamao de la seccin de arranque ajustado a 2K bytes, el ms
configuracin del programa tpico y general para el restablecimiento y direcciones de interrupcin del vector en
ATmega328P es:
Comentarios
Etiquetas de direccin
Cdigo
.org 0x0002
0x0002
jmp
EXT_INT0
; IRQ0 Handler
0x0004
jmp
EXT_INT1
; IRQ1 Handler
...
...
...
0x0032
jmp
SPM_RDY
;
.org 0x3C00
0x3C00 RESET: LDI
67
8161D-AVR-10.9
fuera
SPH, r16
0x3C02
LDI
0x3C03
0x3C04
fuera
sei
SPL, r16
0x3C05
<Instr>
; Habilitar las
interrupciones
xxx
Cuando el BOOTRST fusible est programado, el tamao de la seccin de arranque ajustado a 2K bytes y el IVSEL
poco en el Registro MCUCR se establece antes de que las interrupciones estn habilitadas, la ms tpica y general
configuracin del programa para el restablecimiento y direcciones de interrupcin del vector en ATmega328P es:
Comentarios
Etiquetas de direccin
Cdigo
;
.org 0x3C00
0x3C00
jmp
REINICIO
0x3C02
jmp
EXT_INT0
; Restablecer
controlador
; IRQ0 Handler
0x3C04
jmp
EXT_INT1
; IRQ1 Handler
...
...
...
0x3C32
jmp
SPM_RDY
;
0x3C33
11.5
RESET: LDI
0x3C34
fuera
0x3C35
LDI
0x3C36
0x3C37
fuera
sei
SPL, r16
0x3C38
<Instr>
; Habilitar las
interrupciones
xxx
Registro Descripcin
11.5.1
11.5.2
0x35 (0x55)
Lectura / Escritura
Valor inicial
BODSE
PUD
IVSEL
IVCE
R/W
R/W
R/W
Bods
MCUCR
Dentro de los cuatro ciclos, escribir el valor deseado para IVSEL al escribir un cero a IVCE.
Las interrupciones se desactivar automticamente mientras se ejecuta esta secuencia. Las interrupciones estn deshabilitadas
en el IVCE ciclo se establecen y permanecen inhabilitadas hasta despus de la instruccin siguiente a la escritura a
68
8161D-AVR-10.9
Si los vectores de interrupcin se colocan en la seccin del gestor de arranque y bloqueo de arranque el bit BLB02 est
programada,
las interrupciones estn deshabilitadas durante la ejecucin de la seccin Aplicacin. Si se colocan vectores de interrupcin
se programa en la seccin Aplicacin y bloqueo de arranque BLB12 poco, las interrupciones estn deshabilitadas mientras
la ejecucin de la seccin del cargador de arranque. Consulte la seccin "El apoyo del gestor de arranque - Leer-tiempoEscribe Auto-Programacin, ATmega88PA, ATmega168PA y ATmega328P "en la pgina 277 para
detalles sobre los bits de bloqueo de arranque.
Cdigo C Ejemplo
vaco Move_interrupts (void)
{
/ * Habilitar el cambio de vectores de interrupcin * /
MCUCR = (1 << IVCE);
/ * Mover interrumpe a la seccin Flash de arranque *
/
MCUCR = (1 << IVSEL);
}
69
8161D-AVR-10.9
Las interrupciones INT0 y INT1 pueden ser provocados por un flanco de bajada o de subida o un nivel bajo. Es
establecer como se indica en el pliego de condiciones de la interrupcin externa Registro de Control A - EICRA.
Cuando las interrupciones INT0 o INT1 estn habilitados y se configuran como nivel desencadenada, la interRupts activarn siempre y cuando el pasador se mantiene baja. Tenga en cuenta que el reconocimiento de la cada o el flanco
ascendente
interrumpe en INT0 o INT1 requiere la presencia de un reloj de I / O, se describe en "Sistemas de reloj
y su distribucin "en la pgina 26. Bajo nivel de interrupcin en INT0 y INT1 se detecta crono
intravenosa. Esto implica que esta interrupcin se puede utilizar para despertar la parte tambin de los modos de suspensin
que no sea el modo de espera. El reloj de E / S se detiene en todos los modos de suspensin, excepto el modo de espera.
Tenga en cuenta que si una interrupcin activada nivel se utiliza para despertar de la Energa-abajo, el nivel requerido
deben rendir lo suficiente para que el MCU para completar el despertador para activar la alarma de nivel. Si
el nivel desaparece antes de que finalice el tiempo de puesta en marcha, el MCU todava se despierta, pero no interrupt se generar. El tiempo de arranque se define por el SUT y CKSEL fusibles como se describe
en "El reloj del sistema y opciones de reloj" en la pgina 26.
12.1
PCInt (0)
LE
clk
pcint_in_ (0)
pcint_syn
pcint_setflag
PCIF
pin_sync
x
PCInt (0) en PCMSK (x)
clk
clk
PCInt (0)
pin_lat
pin_sync
pcint_in_ (0)
pcint_syn
pcint_setflag
PCIF
70
8161D-AVR-10.9
Registro Descripcin
12.2.1
(0x69)
ISC11
ISC10
ISC01
ISC00
Lectura / Escritura
R/W
R/W
R/W
R/W
Valor inicial
EICRA
Tabla 12-1.
ISC11
ISC10
Descripcin
Tabla 12-2.
ISC01
ISC00
Descripcin
71
8161D-AVR-10.9
12.2.2
0x1D (0x3D)
INT1
INT0
Lectura / Escritura
R/W
R/W
Valor inicial
EIMSK
12.2.3
0x1C (0x3C)
INTF1
INTF0
Lectura / Escritura
R/W
R/W
Valor inicial
EIFR
72
8161D-AVR-10.9
(0x68)
PCIE2
PCIE1
PCIE0
Lectura / Escritura
R/W
R/W
R/W
Valor inicial
PCICR
12.2.5
0x1B (0x3B)
PCIF2
PCIF1
PCIF0
Lectura / Escritura
R/W
R/W
R/W
Valor inicial
PCIFR
73
8161D-AVR-10.9
12.2.6
PCINT23
PCINT22
PCINT21
PCINT20
PCINT19
PCINT18
PCINT17
PCINT16
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
PCMSK2
12.2.7
(0x6C)
PCINT14
PCINT13
PCINT12
PCINT11
PCINT10
PCINT9
PCINT8
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
PCMSK1
12.2.8
(0x6B)
PCINT7
PCINT6
PCINT5
PCINT4
PCINT3
PCINT2
PCINT1
PCINT0
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
PCMSK0
74
8161D-AVR-10.9
13. I / O-Puertos
13.1
Visin de conjunto
Todos los puertos de AVR tienen verdadera funcionalidad lectura-modificacin-escritura cuando se usa como puertos generales de
E / S digitales.
Esto significa que la direccin de un pin del puerto se puede cambiar sin cambiar involuntariamente
la direccin de cualquier otro pasador con las instrucciones SBI y la ICC. Lo mismo se aplica al cambiar
ing valor unidad (si est configurado como salida) o la activacin / desactivacin de resistencias pull-up (si est configurado como
entrada). Cada bfer de salida tiene caractersticas de accionamiento simtricos tanto con alta fregadero y fuente
capacidad. El conductor pin es lo suficientemente fuerte como para controlar directamente los indicadores LED. Todos los pines
del puerto tienen indicacin
resistencias pull-up dualmente seleccionables con una resistencia invariante suministro voltaje. Todos los pines I / O tienen
diodos de proteccin tanto a VCC y tierra como se indica en Figura 13-1. Referirse a "Char- Elctrico
caracte- "en la pgina 313 para obtener una lista completa de parmetros.
Figura 13-1. I / O Pin Esquema Equivalente
Rpu
Lgica
Pxn
Cpin
Ver Figura
"General Digital I / O" para
Detalles
Todos los registros y referencias bits en esta seccin estn escritos en forma general. Una minscula "x" representan
senta la letra de numeracin para el puerto, y una minscula "n" representa el nmero de bit. Sin embargo,
cuando se utiliza el registro o poco define en un programa, debe utilizarse la forma precisa. Por ejemplo,
PORTB3 por poco no. 3 en Port B, aqu documentados generalmente como PORTxn. La E / S fsica Registros y ubicaciones de bits se enumeran en "Registrar Descripcin" en la pgina 92.
Tres de E / S ubicaciones de direccin de memoria son asignados para cada puerto, uno para el Registro de Datos
- Direccin PORTx, registro de datos - DDRx, y los pines de entrada del puerto - Pinx. Los pines del puerto de entrada
E / S ubicacin es de slo lectura, mientras que el registro de datos y la Direccin de Datos Registro son de lectura / escritura.
Sin embargo, escribiendo un uno lgico a un bit en el registro Pinx, se traducir en una palanca en la correspondiente
ing poco en el Registro de Datos. Adems, el pull-up Desactivar - poco PUD en MCUCR desactiva el
pull-up funcin para todos los pines en todos los puertos cuando se establece.
Usando el puerto de E / S como el General E / S digitales se describe en "Puertos como General E / S digital" en la pgina
76. La mayora de los pines del puerto son multiplexados con funciones alternativas para las funciones perifricas en el
dispositivo. Cmo cada funcin alternativa interfiere con el pin del puerto se describe en "Puerto alternativo
Funciones "en la pgina 80. Consulte las secciones de cada mdulo para obtener una descripcin completa de la alternativa
funciones nate.
75
8161D-AVR-10.9
13.2
PUD
DDxn
Q CLR
WDX
REINICIO
RDX
DATOS DE
BUS
1
Q
Pxn
PORTxn
Q CLR
REINICIO
WRX
SLEEP
WPX
RRx
SINCRONIZADOR
RPx
D
PINxn
Q
clk I / O
PUD:
SUEO:
clkI / O:
Nota:
13.2.1
PULLUP DISABLE
CONTROL DE SUEO
I O CLOCK /
WDX:
RDX:
WRX:
RRx:
RPx:
WPX:
ESCRIBIR DDRx
LEER DDRx
ESCRIBIR PORTx
LEA PORTx REGISTRO
LEA PORTx PIN
ESCRIBIR Pinx REGISTRO
1. WRX, WPX, WDX, RRx, RPx y RDX son comunes a todos los pines en el mismo puerto. clkI / S,
SLEEP, y PUD son comunes a todos los puertos.
76
8161D-AVR-10.9
13.2.2
Alternar el Pin
Escribir un uno lgico para PINxn cambia el valor de PORTxn, independiente del valor de DDRxn.
Tenga en cuenta que la instruccin OSE se puede utilizar para cambiar un solo bit en un puerto.
13.2.3
El cambio entre entrada con pull-up y bajo gasto genera el mismo problema. El usuario
debe utilizar el tri-estatal ({DDxn, PORTxn} = 0b00) o el alto estado de la salida ({DDxn, PORTxn}
= 0b11) como un paso intermedio.
Tabla 13-1 resume las seales de control para el valor pin.
Tabla 13-1.
13.2.4
DDxn
PORTxn
PUD
(En MCUCR)
I/O
Pull-up
Entrada
No
Tri-estatal (Hi-Z)
Entrada
Entrada
No
Tri-estatal (Hi-Z)
Salida
No
Salida
No
Comentario
77
8161D-AVR-10.9
SISTEMA CLK
INSTRUCCIONES
XXX
XXX
en r17, Pinx
SYNC LATCH
PINxn
r17
0x00
0xFF
t pd, mx
t pd, min
Considere el periodo de reloj comenzando poco despus de la primera flanco de bajada del reloj del sistema. El pestillo
se cierra cuando el reloj es baja, y va transparente cuando el reloj es alta, como se indica por la
regin sombreada de la seal "SYNC LATCH". El valor de la seal est bloqueada cuando el reloj del sistema
pasa a baja. Se registr en el Registro PINxn en el flanco de reloj positivo xito. Como indicacin
cado por las dos flechas tpd, Max y tpd, min, una sola transicin de la seal en el pin se retrasar
entre y 1 perodo reloj del sistema en funcin del momento de afirmacin.
Al leer de nuevo un software asignado valor pin, una instruccin nop debe insertarse como indicacin
indica en Figura 13-4. La instruccin a cabo pone la seal "SYNC LATCH" en el flanco positivo de
el reloj. En este caso, la demora tpd a travs del sincronizador es 1 periodo de reloj de sistema.
SISTEMA CLK
r16
INSTRUCCIONES
0xFF
nop
en r17, Pinx
SYNC LATCH
PINxn
r17
0x00
0xFF
t pd
El ejemplo de cdigo siguiente se muestra cmo configurar los pines del puerto B 0 y 1 de alto, bajo 2 y 3, y definir
los pines del puerto 4-7 como entrada con pull-ups asignados a los pines del puerto 6 y 7. El pasador resultante
valores se leen de nuevo, pero como se mencion anteriormente, una instruccin NOP se incluye para poder
para leer el valor recientemente asignado a algunos de los pasadores.
78
8161D-AVR-10.9
fuera
fuera
DDRB, r17
LDI
LDI
r16, PINB
...
Cdigo C Ejemplo
unsigned char yo;
...
/ * Definir pull-ups y establecer salidas de alta * /
/ * Definir direcciones para pines del puerto * /
PORTB = (1 << PB7) | (1 << PB6) | (1 << PB1) | (1 <<
PB0);
DDRB = (1 << DDB3) | (1 << DDB2) | (1 << DDB1) | (1 <<
DDB0);
/ * Inserte nop para la sincronizacin * /
__no_operation ();
/ * Leer pines del puerto * /
i = PINB;
...
Nota:
13.2.5
1. Para el programa de montaje, dos registros temporales se utilizan para minimizar el tiempo de pull
ups se establecen en los pines 0, 1, 6 y 7, hasta que los bits de direccin se establecen correctamente, que define el bit 2 y 3
los bits tan bajas y la redefinicin de 0 y 1 conductores de hasta fuertes.
SLEEP se anula para pines del puerto habilitados como pines de interrupcin externas. Si la interrupcin externa
solicitud no est habilitado, el sueo es activo tambin para estos pines. SLEEP tambin se sustituye por diversos
otras funciones alternativas como se describe en "Funciones puerto alternativo" en la pgina 80.
Si un nivel lgico alto ("uno") est presente en un pin de interrupcin externa asincrnica configurado como
"Interrumpir en Rising Edge, Falling Edge, o cualquier cambio de lgica en el Pin", mientras que la interrupcin externa
es no habilitado, el correspondiente indicador de interrupcin externa se ajustar al reanudar desde el
anteriormente el modo de suspensin mencionado, como la sujecin de stos modo de suspensin produce la solicitada
cambio de la lgica.
13.2.6
Prendedores inconexas
Si algunos pines estn sin uso, se recomienda asegurarse de que estos pines tienen un nivel definido. Incluso
aunque la mayora de las entradas digitales estn desactivadas en los modos de sueo profundo como se describi anteriormente, flotante
79
8161D-AVR-10.9
13.3
PUD
DDOExn
DDOVxn
1
QD
DDxn
Q CLR
WDX
PVOExn
REINICIO
RDX
PVOVxn
DATOS DE
BUS
Pxn
Q
PORTxn
PTOExn
Q CLR
DIEOExn
DIEOVxn
WPX
REINICIO
WRX
RRx
0
SLEEP
SINCRONIZADOR
RPx
SET
PINxn
L
CLR
CLR
clk I / O
DIxn
AIOxn
PUOExn:
PUOVxn:
DDOExn:
DDOVxn:
PVOExn:
PVOVxn:
DIEOExn:
DIEOVxn:
SUEO:
PTOExn:
Nota:
PUD:
WDX:
RDX:
RRx:
WRX:
RPx:
WPX:
clkI / O:
DIxn:
AIOxn:
PULLUP DISABLE
ESCRIBIR DDRx
LEER DDRx
LEA PORTx REGISTRO
ESCRIBIR PORTx
LEA PORTx PIN
Pinx WRITE
I O CLOCK /
PIN DE ENTRADA DIGITAL n EN PORTx
ANALGICA ENTRADA / SALIDA PIN n EN PORTx
1. WRX, WPX, WDX, RRx, RPx y RDX son comunes a todos los pines en el mismo puerto. clkI / S,
SLEEP, y PUD son comunes a todos los puertos. Todas las dems seales son nicos para cada pin.
80
8161D-AVR-10.9
Descripcin
PUOE
Anulacin de Pull-up
Permitir
PUOV
Anulacin de Pull-up
Valor
DDOE
Direccin de Datos
Anular Activar
DDOV
Direccin de Datos
Valor de invalidacin
PVOE
Valor de puerto
Anular Activar
PVOV
Valor de puerto
Valor de invalidacin
PTOE
Puerto Toggle
Anular Activar
DIEOE
Entrada Digital
Habilitar Anulacin
Permitir
DIEOV
Entrada Digital
Habilitar Anulacin
Valor
DI
Entrada Digital
AIO
Analog
Entrada / Salida
Las siguientes subsecciones describen brevemente las funciones alternativas para cada puerto, y se refieren al
seales insalvables para la funcin alternativa. Consulte la descripcin alternativa funcin para obtener ms
detalles.
81
8161D-AVR-10.9
13.3.1
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
PCINT7: Pin Cambiar fuente de interrupcin 7. El pasador PB7 puede servir como una fuente de interrupcin externa.
Si PB7 se utiliza como un pin de reloj, DDB7, PORTB7 y PINB7 ser todo ledo 0.
XTAL1 / TOSC1 / PCINT6 - Puerto B, Bit 6
XTAL1: Chip pin oscilador de reloj 1. Se utiliza para todas las fuentes de reloj de chip excepto interna calibrada RC
Oscilador. Cuando se usa como un pasador de reloj, el pasador no puede ser utilizado como un pin de I / O.
TOSC1: Temporizador Oscilador pin 1. Se usa slo si es interno calibrado oscilador RC es seleccionado como el chip
fuente de reloj y el temporizador asncrono est activado por el ajuste correcto en ASSR. Cuando el
82
8161D-AVR-10.9
PCINT5: Pin Cambiar fuente de interrupcin 5. El pasador PB5 puede servir como una fuente de interrupcin externa.
MISO / PCINT4 - Puerto B, Bit 4
MISO: Entrada de datos maestros, pin de salida de datos del esclavo para el canal SPI. Cuando el SPI est habilitado como un
Maestro, este perno est configurado como una entrada, independientemente del ajuste de DDB4. Cuando el SPI es
habilitado como un esclavo, la direccin de los datos de este pin es controlado por DDB4. Cuando se fuerza el pasador
por el SPI que sea una entrada, el pull-up todava puede ser controlado por el bit de PORTB4.
PCINT4: Pin Cambiar fuente de interrupcin 4. El pin PB4 puede servir como una fuente de interrupcin externa.
MOSI / OC2 / PCINT3 - Puerto B, Bit 3
MOSI: Salida de datos Maestro SPI, la entrada de datos del esclavo para el canal SPI. Cuando el SPI est habilitado como un
Slave, este pin se configura como una entrada, independientemente del ajuste de DDB3. Cuando el SPI es
habilitado como un Maestro, la direccin de los datos de este pin es controlado por DDB3. Cuando se fuerza el pasador
por el SPI que sea una entrada, el pull-up todava puede ser controlado por el bit de PORTB3.
OC2, comparacin de salida de salida del partido: El pin PB3 puede servir como una salida externa para la
Timer / Contador2 Comparar Partido. El pin PB3 tiene que ser configurado como una salida (conjunto DDB3
(Uno)) para servir a esta funcin. El pasador OC2 es tambin el pin de salida para el temporizador del modo PWM
funcin.
PCINT3: Pin Cambiar fuente de interrupcin 3. El pin PB3 puede servir como una fuente de interrupcin externa.
SS / OC1B / PCINT2 - Puerto B, Bit 2
SS: Slave Select entrada. Cuando el SPI est habilitado como un esclavo, este pin se configura como una entrada
independientemente de la configuracin de DDB2. Como un esclavo, el SPI se activa cuando este pin es impulsado bajo.
Cuando el SPI est habilitado como un Maestro, la direccin de los datos de este pin es controlado por DDB2. Cundo
el pasador se ve obligado por el SPI ser una entrada, el pull-up todava puede ser controlado por el bit de PORTB2.
OC1B, comparacin de salida de salida del partido: El pin PB2 puede servir como una salida externa para la
Timer / Counter1 Comparar pin Partido B. El PB2 tiene que ser configurado como una salida (conjunto DDB2
(Uno)) para servir a esta funcin. El pasador OC1B es tambin el pin de salida para el temporizador del modo PWM
funcin.
PCINT2: Pin Cambiar fuente de interrupcin 2. El pin PB2 puede servir como una fuente de interrupcin externa.
OC1A / PCINT1 - Puerto B, Bit 1
OC1A, comparacin de salida de salida del partido: El pasador PB1 puede servir como una salida externa para la
Timer / Counter1 Comparar Partido A. El pasador PB1 tiene que ser configurado como una salida (conjunto DDB1
83
8161D-AVR-10.9
Tabla 13-4.
Seal
Nombre
PB7 / XTAL2 /
TOSC2 / PCINT7(1)
PB6 / XTAL1 /
TOSC1 / PCINT6(1)
PB5 / SCK /
PCINT5
PB4 / MISO /
PCINT4
PUOE
INTRC EXTCK +
AS2
INTRC + AS2
SPE MSTR
SPE MSTR
PUOV
PORTB5 PUD
PORTB4 PUD
DDOE
INTRC EXTCK +
AS2
INTRC + AS2
SPE MSTR
SPE MSTR
DDOV
PVOE
SPE MSTR
SPE MSTR
PVOV
SALIDA SCK
SPI ESCLAVO
SALIDA
DIEOE
INTRC EXTCK +
AS2 + PCINT7
PCIE0
INTRC + AS2 +
PCINT6 PCIE0
PCINT5 PCIE0
PCINT4 PCIE0
DIEOV
(INTRC + EXTCK)
AS2
INTRC AS2
DI
PCINT7 ENTRADA
PCINT6 ENTRADA
PCINT5 ENTRADA
SCK ENTRADA
PCINT4 ENTRADA
SPI MSTR ENTRADA
AIO
Oscilador de salida
Oscilador / Reloj
Entrada
Notas:
1. INTRC significa que uno de los osciladores RC internos son seleccionados (por los fusibles CKSEL),
EXTCK significa que se selecciona el reloj externo (por los fusibles CKSEL)
84
8161D-AVR-10.9
Tabla 13-5.
13.3.2
Seal
Nombre
PB3 / MOSI /
OC2 / PCINT3
PB2 / SS /
OC1B / PCINT2
PB1 / OC1A /
PCINT1
PB0 / ICP1 /
PCINT0
PUOE
SPE MSTR
SPE MSTR
PUOV
PORTB3 PUD
PORTB2 PUD
DDOE
SPE MSTR
SPE MSTR
DDOV
PVOE
SPE MSTR +
OC2A HABILITAR
OC1B HABILITAR
OC1A HABILITAR
PVOV
OC1B
OC1A
DIEOE
PCINT3 PCIE0
PCINT2 PCIE0
PCINT1 PCIE0
PCINT0 PCIE0
DIEOV
DI
PCINT3 ENTRADA
SPI esclavo de entrada
PCINT2 ENTRADA
SPI SS
PCINT1 ENTRADA
PCINT0 ENTRADA
ICP1 ENTRADA
AIO
PC6
PC5
PC4
PC3
PC2
PC1
PC0
85
8161D-AVR-10.9
Si PC6 se utiliza como un pin de reset, DDC6, PORTC6 y PINC6 sern todos leer 0.
PCINT14: Pin Cambiar fuente de interrupcin 14. El pasador PC6 puede servir como una interrupcin externa
fuente.
SCL / ADC5 / PCINT13 - Puerto C, Bit 5
SCL, 2 hilos de reloj de interfaz Serial: Cuando el bit TWEN en TWCR se establece (uno) para que el 2cable de interfaz serie, pin PC5 se desconecta del puerto y se convierte en la serie del reloj de E / S
pines para el 2 hilos Interface serie. En este modo, hay un filtro de picos en el pasador para suprimir
clavos ms cortos de 50 ns en la seal de entrada, y el pasador es accionado por un conductor de drenaje abierto con
limitacin montn de tipos.
PC5 tambin se puede utilizar como entrada ADC Channel 5. Obsrvese que ADC canal de entrada 5 usos digitales
de energa.
PCINT13: Pin Cambiar fuente de interrupcin 13. El pin PC5 puede servir como una interrupcin externa
fuente.
SDA / ADC4 / PCINT12 - Puerto C, Bit 4
SDA, 2 cables de interfaz serie de datos: Cuando el bit TWEN en TWCR se establece (uno) para que el 2 hilos
Interfaz de serie, pin PC4 se desconecta del puerto y se convierte en la serie pin de datos de E / S para
el 2 hilos de interfaz serie. En este modo, hay un filtro de picos en el pasador para suprimir los picos
menor de 50 ns en la seal de entrada y el pin est impulsado por un motor de drenaje abierto con slewLmite de la tasa.
PC4 tambin se puede utilizar como entrada ADC Channel 4. Tenga en cuenta que ADC canal de entrada 4 usos digitales
de energa.
PCINT12: Pin Cambiar fuente de interrupcin 12. El pasador PC4 puede servir como una interrupcin externa
fuente.
ADC3 / PCINT11 - Puerto C, Bit 3
PC3 tambin se puede utilizar como entrada ADC Canal 3. Ntese que ADC canal de entrada 3 utiliza analgica
de energa.
PCINT11: Pin Cambiar fuente de interrupcin 11. El pasador PC3 puede servir como una interrupcin externa
fuente.
ADC2 / PCINT10 - Puerto C, Bit 2
PC2 tambin se puede utilizar como entrada ADC Canal 2. Obsrvese que ADC canal de entrada 2 utiliza analgica
de energa.
PCINT10: Pin Cambiar fuente de interrupcin 10. El pin PC2 puede servir como una interrupcin externa
fuente.
86
8161D-AVR-10.9
Tabla 13-7.
Seal
Nombre
PUOE
RSTDISBL
TWEN
TWEN
PUOV
PORTC5 PUD
PORTC4 PUD
DDOE
RSTDISBL
TWEN
TWEN
DDOV
SCL_OUT
SDA_OUT
PVOE
TWEN
TWEN
PVOV
DIEOE
RSTDISBL + PCINT14
PCIE1
DIEOV
RSTDISBL
PCINT13 PCIE1
PCINT12 PCIE1
DI
PCINT14 ENTRADA
PCINT13 ENTRADA
PCINT12 ENTRADA
AIO
Entrada de reset
Nota:
1. Cuando se activa, el 2 hilos de interfaz Serial permite controles de velocidad de respuesta en el PC4 pines de salida
y PC5. Esto no se muestra en la figura. Adems, los filtros de espiga estn conectados entre el
AIO salidas mostradas en la figura puerto y de la lgica digital del mdulo TWI.
87
8161D-AVR-10.9
Tabla 13-8.
13.3.3
Seal
Nombre
PC3 / ADC3 /
PCINT11
PC2 / ADC2 /
PCINT10
PC1 / ADC1 /
PCINT9
PC0 / ADC0 /
PCINT8
PUOE
PUOV
DDOE
DDOV
PVOE
PVOV
DIEOE
PCINT11 PCIE1 +
ADC3D
PCINT10 PCIE1 +
ADC2D
PCINT9 PCIE1 +
ADC1D
PCINT8 PCIE1 +
ADC0D
DIEOV
PCINT11 PCIE1
PCINT10 PCIE1
PCINT9 PCIE1
PCINT8 PCIE1
DI
PCINT11 ENTRADA
PCINT10 ENTRADA
PCINT9 ENTRADA
PCINT8 ENTRADA
AIO
ADC3 ENTRADA
ADC2 ENTRADA
ADC1 ENTRADA
ADC0 ENTRADA
PD7
PD6
PD5
PD4
PD3
PD2
PD1
PD0
88
8161D-AVR-10.9
89
8161D-AVR-10.9
PD7 / AIN1
/ PCINT23
PD6 / AIN0 /
OC0A / PCINT22
PD5 / T1 / OC0B /
PCINT21
PD4 / XCK /
T0 / PCINT20
PUOE
PUO
DDOE
DDOV
PVOE
OC0A HABILITAR
OC0B HABILITAR
UMSEL
PVOV
OC0A
OC0B
XCK SALIDA
DIEOE
PCINT23 PCIE2
PCINT22 PCIE2
PCINT21 PCIE2
PCINT20 PCIE2
DIEOV
DI
PCINT23 ENTRADA
PCINT22 ENTRADA
PCINT21 ENTRADA
T1 ENTRADA
PCINT20 ENTRADA
XCK ENTRADA
T0 ENTRADA
AIO
AIN1 ENTRADA
AIN0 ENTRADA
90
8161D-AVR-10.9
PD2 / INT0 /
PCINT18
PD1 / TXD /
PCINT17
PD0 / RXD /
PCINT16
PUOE
TXEN
RXEN
PUO
PORTD0 PUD
DDOE
TXEN
RXEN
DDOV
PVOE
OC2B HABILITAR
TXEN
PVOV
OC2B
TXD
DIEOE
ACTIVAR INT1 +
PCINT19 PCIE2
ACTIVAR INT0 +
PCINT18 PCIE1
PCINT17 PCIE2
PCINT16 PCIE2
DIEOV
DI
PCINT19 ENTRADA
INT1 ENTRADA
PCINT18 ENTRADA
INT0 ENTRADA
PCINT17 ENTRADA
PCINT16 ENTRADA
RXD
AIO
91
8161D-AVR-10.9
13.4
Registro Descripcin
13.4.1
0x35 (0x55)
Lectura / Escritura
Valor inicial
BODSE
PUD
IVSEL
IVCE
R/W
R/W
R/W
Bods
MCUCR
13.4.2
13.4.3
0x04 (0x24)
Lectura / Escritura
Valor inicial
0x03 (0x23)
Lectura / Escritura
Valor inicial
13.4.6
13.4.7
PORTB5
PORTB4
PORTB3
PORTB2
PORTB1
PORTB0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
PORTB
DDB7
DDB6
DDB5
DDB4
DDB3
DDB2
DDB1
DDB0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
DDRB
13.4.5
6
PORTB6
13.4.4
7
PORTB7
PINB7
PINB6
PINB5
PINB4
PINB3
PINB2
PINB1
PINB0
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
PINB
0x08 (0x28)
PORTC6
PORTC5
PORTC4
PORTC3
PORTC2
PORTC1
PORTC0
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
PORTC
0x07 (0x27)
DDC6
DDC5
DDC4
DDC3
DDC2
DDC1
DDC0
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
DDRC
0x06 (0x26)
PINC6
PINC5
PINC4
PINC3
PINC2
PINC1
PINC0
Lectura / Escritura
Valor inicial
N/A
N/A
N/A
N/A
N/A
N/A
N/A
PINC
92
8161D-AVR-10.9
13.4.9
PORTD6
PORTD5
PORTD4
PORTD3
PORTD2
PORTD1
PORTD0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
PORTD
04.13.10
7
PORTD7
DDD7
DDD6
DDD5
DDD4
DDD3
DDD2
DDD1
DDD0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
DDRD
PIND7
PIND6
PIND5
PIND4
PIND3
PIND2
PIND1
PIND0
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
PIND
93
8161D-AVR-10.9
Caractersticas
14.2
Visin de conjunto
Timer / Counter0 es un mdulo temporizador / contador de propsito general de 8 bits, con dos de salida independiente
Comparar unidades, y con el apoyo de PWM. Permite la ejecucin del programa de temporizacin precisa (evento mandato
gestin) y la generacin de ondas.
Un diagrama de bloques simplificado del 8-bit del temporizador / contador se muestra en Figura 14-1. Para el actual
colocacin de pines de E / S, consulte "Pinout ATmega48PA / 88PA / 168PA / 328P" en la pgina 2. UPC
acceso de E / S Registros, incluyendo bits de E / S y pines I / O, se muestran en negrita. El especfica dispositivo
I / O Registro y ubicaciones bits enumerados en la "Registrar Descripcin" en la pgina 106.
El bit en PRTIM0 "Minimizar el consumo de energa" en la pgina 42 debe ser por escrito a cero para
permitir mdulo temporizador / Counter0.
94
8161D-AVR-10.9
Tovn
(Int.Req.)
Claro
Logic Control
Direccin
clkTn
Reloj Seleccione
Borde
Detector
TOP
Tn
INFERIOR
(De Precontador)
Timer / Contador
TCNTn
=0
OCnA
(Int.Req.)
Waveform
Generacin
OCnA
OCRnA
DATOS DE
BUS
Fijo
TOP
Valor
OCnB
(Int.Req.)
Waveform
Generacin
OCnB
OCRnB
TCCRnA
14.2.1
TCCRnB
Definiciones
Muchas referencias de registro y de bits en esta seccin estn escritos en forma general. Una minscula "n"
reemplaza el nmero del temporizador / contador, en este caso 0. Una minscula "x" sustituye a la Comisin de salida
pare Unidad, en este caso Comparar Unidad A o Comparar Unidad B. Sin embargo, cuando se utiliza el registro o
bit define en un programa, la forma precisa debe ser utilizado, es decir, para acceder a TCNT0
Timer / Counter0 valor del contador y as sucesivamente.
14.2.2
Definiciones
INFERIOR
MAX
TOP
Registros
El temporizador / contador (TCNT0) y salida Compara Registros (OCR0A y OCR0B) son de 8 bits
registros. Solicitud de interrupcin (abreviado Int.Req. En la figura) seales son visibles en el
Interrupcin de temporizador Bandera Registro (TIFR0). Todas las interrupciones estn enmascaradas por separado con el
temporizador Internacional
rupt Mask Register (TIMSK0). TIFR0 y TIMSK0 no se muestran en la figura.
95
8161D-AVR-10.9
14.3
14.4
Unidad de contador
La parte principal de la 8-bit del temporizador / contador es la unidad de contador bidireccional programable. Figura
14-2 muestra un diagrama de bloques del contador y sus alrededores.
Figura 14-2. Unidad contra el Diagrama de bloques
Tovn
(Int.Req.)
DATOS DE BUS
Reloj Seleccione
contar
claro
TCNTn
clkTn
Borde
Detector
Tn
Logic Control
direccin
(De Precontador)
fondo
superior
direccin
claro
clkTn
superior
fondo
96
8161D-AVR-10.9
El / Contador Bandera desbordamiento Timer (TOV0) se establece en funcin del modo de funcionamiento seleccionado por
la WGM02: 0 bits. TOV0 se puede utilizar para generar una interrupcin de la CPU.
14.5
DATOS DE BUS
OCRnx
TCNTn
=(Comparador 8-bit)
OCFnx (Int.Req.)
superior
fondo
Generador de onda
OCnx
FOCn
WGMn1: 0
COMnx1: 0
Los registros se almacenan OCR0x doble al utilizar cualquiera de la modulacin por ancho de pulso
(PWM) modos. Para el temporizador normal y Clear en Comparar (CTC) modos de funcionamiento, la duplica
buffering ble est desactivado. El doble bfer sincroniza la actualizacin de la OCR0x Comparar
Se registra en la parte superior o inferior de la secuencia de conteo. La sincronizacin evita la
ocurrencia de longitud impar, pulsos PWM no simtricas, con lo que la salida de glitch-libre.
97
8161D-AVR-10.9
14.5.1
14.5.2
14.5.3
14.6
98
8161D-AVR-10.9
COMnx1
COMnx0
FOCn
Waveform
Generador
Q
1
OCnx
OCnx
Perno
0
DATOS DE
BUS
PORT
DDR
clk I / O
La funcin de puerto de E / S generales es invalidada por la salida de comparacin (OC0x) de la forma de onda
Generador si alguna de las COM0x1: se establecen los bits 0. Sin embargo, la direccin OC0x pines (entrada o salida
put) todava est controlada por el registro de direccin de datos (DDR) para el pin del puerto. La Direccin de Datos
Registrar poco para el pasador OC0x (DDR_OC0x) se debe establecer como salida antes de que el valor OC0x es visible en el pasador. La funcin de anulacin puerto es independiente del modo de forma de onda Generation.
El diseo de la lgica pin de salida de comparacin permite la inicializacin del estado OC0x antes de la salida
put est habilitada. Tenga en cuenta que algunos COM0x1: ajustes de 0 bits estn reservados para ciertos modos de
operacin. Vea la seccin "14.9" en la pgina 106.
14.6.1
Un cambio de la COM0x1: 0 bits estado tendr efecto en el primer partido despus de comparar los bits son
por escrito. Para los modos no-PWM, la accin puede ser forzada a tener efecto inmediato mediante el uso de la
Pedacitos estroboscpicas FOC0x.
14.7
Modos de funcionamiento
El modo de funcionamiento, es decir, el comportamiento del temporizador / contador y la salida Comparar pines, es
definido por la combinacin del modo de forma de onda Generacin (WGM02: 0) y comparar salida
modo (COM0x1: 0) bits. Los bits de modo de comparacin de salida no afectan a la secuencia de conteo,
mientras que los bits de modo Waveform Generacin hacen. El COM0x1: 0 bits controlan si el PWM salida
put generada debe ser invertida o no (invertida o PWM no invertido). Para los modos no PWM
la COM0x1: 0 bits de control si la salida se debe establecer, borra, o alternar en una comparacin
partido (Ver Seccin "14.6" en la pgina 98.).
Para obtener informacin detallada momento consulte "Timer / Contador diagramas de tiempo" en la pgina 104.
99
8161D-AVR-10.9
Modo Normal
El modo ms simple de funcionamiento es el modo normal (WGM02: 0 = 0). En este modo el conteo
direccin es siempre hacia arriba (incremento), y ningn contador clara se realiza. El contador simplemente
sobrecostos cuando pasa a su valor de 8 bits mxima (TOP = 0xFF) y luego se reiniciar desde la parte inferior
tom (0x00). En funcionamiento normal, el / Contador Bandera desbordamiento Timer (TOV0) se encuentra en la misma
ciclo de reloj temporizador como el TCNT0 se convierte en cero. La bandera TOV0 en este caso se comporta como un noveno
bit, excepto que slo se establece, no se aclar. Sin embargo, combinado con el desbordamiento del temporizador de interrupcin
que borra automticamente la Bandera TOV0, la resolucin del temporizador se puede aumentar mediante software.
No hay casos especiales a tener en cuenta en el modo Normal, un nuevo valor del contador se puede escribir
en cualquier momento.
La unidad de salida de comparacin se puede utilizar para generar interrupciones en algn momento dado. El uso de las Salidas
put Comparar generar no se recomienda formas de onda en el modo Normal, ya que esta voluntad
ocupar demasiado del tiempo de CPU.
14.7.2
El diagrama de tiempos para el modo de CTC se muestra en Figura 14-5. El valor del contador (TCNT0)
aumenta hasta que se produce una coincidencia comparar entre TCNT0 y OCR0A, y luego contador
(TCNT0) se borra.
TCNTn
OCn
(Cambiar)
Perodo
(COMnx1: 0 = 1)
Una interrupcin puede ser generada cada vez que el valor del contador alcanza el valor TOP mediante el uso de la
Bandera OCF0A. Si la interrupcin se habilita, la rutina de manejador de interrupcin se puede utilizar para la actualizacin
el valor TOP. Sin embargo, el cambio de TOP a un valor cercano a abajo cuando el contador est en marcha
cin con ninguno o un valor bajo prescaler debe hacerse con cuidado ya que el modo de CTC no
tienen la caracterstica de doble buffer. Si el nuevo valor escrito en OCR0A es inferior a la corriente
valor de TCNT0, el contador se perder el partido comparar. El contador entonces tendr que contar hasta
su valor mximo (0xFF) y envolver alrededor a partir de 0x00 antes del partido comparar posible
ocurrir.
Para generar una salida de forma de onda en el modo de CTC, la salida OC0A se puede configurar para cambiar su lgica
nivel en cada partido comparar estableciendo los bits de modo de salida Comparar con el modo de alternar
(COM0A1: 0 = 1). El valor OC0A no ser visible en el pin de puerto a menos que la direccin de datos del
100
8161D-AVR-10.9
En el modo PWM rpido, el contador se incrementa hasta el valor del contador coincide con el valor SUPERIOR.
El contador se borra a continuacin en el siguiente ciclo de reloj temporizador. El diagrama de temporizacin para la rpida
El modo PWM se muestra en Figura 14-6. El valor TCNT0 est en el diagrama de temporizacin que muestra como una histogram para ilustrar la operacin de una sola pendiente. El diagrama incluye la no invertida y
salidas PWM invertida. Las pequeas marcas de lneas horizontales en las laderas TCNT0 representan comparan
partidos entre OCR0x y TCNT0.
OCRnx Actualizacin y
Tovn interrupcin Flag Set
TCNTn
OCnx
(COMnx1: 0 = 2)
OCnx
(COMnx1: 0 = 3)
Perodo
La bandera de desbordamiento del temporizador / contador (TOV0) se establece cada vez que el contador llegue a TOP. Si el interrupt est activado, la rutina de controlador de interrupcin se puede utilizar para actualizar el valor de comparacin.
101
8161D-AVR-10.9
Una frecuencia (con 50% de ciclo de trabajo) de salida de forma de onda en el modo PWM rpido se puede lograr por ajuste
ting OC0x para cambiar su nivel lgico en cada compara partido (COM0x1: 0 = 1). La forma de onda
generado tendr una frecuencia mxima de fOC0 = fclk_I / O / 2 cuando OCR0A se establece en cero. Este
caracterstica es similar a la de palanca OC0A en el modo de CTC, excepto la caracterstica de doble tampn de las Salidas
put unidad de comparacin se activa en el modo PWM rpido.
14.7.4
En el modo PWM de fase correcta el contador se incrementa hasta el valor del contador coincide TOP.
Cuando el contador llegue arriba, cambia el sentido de contaje. El valor TCNT0 ser igual
Hacia la parte superior de un ciclo de reloj temporizador. El diagrama de tiempos para el modo PWM de fase correcta se muestra
en Figura 14-7. El valor TCNT0 est en el diagrama de temporizacin se muestra como un histograma para ilustrar
la operacin de doble pendiente. El diagrama incluye salidas no invertidas e invertidas PWM. La
pequeas marcas de lneas horizontales en las laderas TCNT0 representan comparan partidos entre OCR0x
y TCNT0.
102
8161D-AVR-10.9
OCRnx Actualizacin
TCNTn
OCnx
(COMnx1: 0 = 2)
OCnx
(COMnx1: 0 = 3)
Perodo
La bandera de desbordamiento del temporizador / contador (TOV0) se establece cada vez que el contador llegue a FONDO. La
Interrupcin de la bandera se puede utilizar para generar una interrupcin cada vez que el contador alcanza el fondo
valor.
En el modo PWM de fase correcta, la unidad de comparacin permite la generacin de formas de onda PWM en el
Pasadores OC0x. Ajuste del COM0x1: 0 bits para dos producir un PWM no invertida. Un invertida
Salida PWM se puede generar mediante el establecimiento de la COM0x1: 0 a tres: Configuracin de los bits a COM0A0
uno permite que el pasador OC0A para alternar en Matches Compara si el bit WGM02 se establece. Esta opcin es
no est disponible para el pasador OC0B (ver Tabla 14-7 en la pgina 108). El valor real OC0x slo ser
visible en el pin de puerto si la direccin de datos para el pin del puerto se configura como salida. La forma de onda PWM es
generada en la limpieza (o ajuste) del Registro OC0x en el partido de comparar entre OCR0x y
TCNT0 cuando el contador se incrementa, y el ajuste (o compensacin) el Registro OC0x a comparar
partido entre OCR0x y TCNT0 cuando el contador disminuye. La frecuencia PWM para el
de salida cuando se utiliza la fase PWM correcto se puede calcular por la siguiente ecuacin:
F clk_I / S
f OCnxPCPWM = -----------------N 510
La variable N representa el factor de preescala (1, 8, 64, 256, o 1024).
Los valores extremos para el Registro OCR0A representan casos especiales cuando se genera un PWM
forma de onda de salida en el modo PWM de fase correcta. Si el OCR0A se fija igual a abajo, las
salida ser continua baja y si se fija igual a MAX la salida ser continuamente alto para
no invertida modo PWM. Para PWM invertida la salida tendr los valores lgicos opuestos.
En el comienzo del perodo de 2 en Figura 14-7 OCnx tiene una transicin de alta a baja, aunque
No existe Compare Match. El punto de esta transicin es garantizar la simetra alrededor llas
TOM. Hay dos casos que dan una transicin sin Partido Comparar.
OCRnx cambia su valor de MAX, como en Figura 14-7. Cuando el valor es OCR0A MAX el
OCn valor pin es el mismo que el resultado de un conteo regresivo Compare Match. Para asegurar
103
8161D-AVR-10.9
14.8
clkTn
(ClkI / S / 1)
TCNTn
MAX - 1
MAX
INFERIOR
INFERIOR + 1
Tovn
Figura 14-9 muestra los mismos datos de temporizacin, pero con el prescaler habilitado.
Figura 14-9. Temporizador / contador Cronograma, con Precontador (fclk_I / S / 8)
clkI / S
clkTn
(ClkI / S / 8)
TCNTn
MAX - 1
MAX
INFERIOR
INFERIOR + 1
Tovn
Figura 14-10 muestra la configuracin de OCF0B en todos los modos y OCF0A en todos los modos excepto CTC
el modo y el modo PWM, donde OCR0A es TOP.
104
8161D-AVR-10.9
clkTn
(ClkI / S / 8)
TCNTn
OCRnx - 1
OCRnx
OCRnx
OCRnx + 1
OCRnx + 2
OCRnx Valor
OCFnx
Figura 14-11 muestra la configuracin de OCF0A y la limpieza de TCNT0 en modo CTC y rpido
Modo PWM donde OCR0A es TOP.
Figura 14-11. Temporizador / contador Cronograma, Borrar contador en el modo de ajuste de comparacin, con Precaler (fclk_I / S / 8)
clkI / S
clkTn
(ClkI / S / 8)
TCNTn
(CTC)
OCRnx
TOP - 1
TOP
INFERIOR
INFERIOR + 1
TOP
OCFnx
105
8161D-AVR-10.9
14.9
Registro Descripcin
14.9.1
COM0A1
COM0A0
COM0B1
COM0B0
WGM01
WGM00
R/W
R/W
R/W
R/W
R/W
R/W
TCCR0A
COM0A1
COM0A0
Descripcin
Tabla 14-3 Muestra el COM0A1: 0 La funcionalidad de bit cuando el WGM01: 0 bits se establecen en PWM rpido
de modo.
Tabla 14-3.
COM0A1
COM0A0
Nota:
Descripcin
1. Un caso especial ocurre cuando OCR0A equivale TOP y COM0A1 se establece. En este caso, la Comisin
pare Partido se ignora, pero el conjunto o claro se hace en la parte inferior. Ver "Modo PWM Rpida" en la
pgina 101 para ms detalles.
106
8161D-AVR-10.9
COM0A1
COM0A0
Nota:
Descripcin
1. Un caso especial ocurre cuando OCR0A equivale TOP y COM0A1 se establece. En este caso, la Comisin
pare Partido se ignora, pero el conjunto o claro se hace en la parte superior. Ver "Fase PWM de modo correcto" en la
pgina 128 para ms detalles.
COM0B1
COM0B0
Descripcin
Tabla 14-6 Muestra el COM0B1: 0 La funcionalidad de bit cuando el WGM02: 0 bits se establecen en PWM rpido
de modo.
Tabla 14-6.
COM0B1
COM0B0
Reservado
Nota:
Descripcin
1. Un caso especial ocurre cuando OCR0B equivale TOP y COM0B1 se establece. En este caso, la Comisin
pare Partido se ignora, pero el conjunto o claro se hace en la parte superior. Ver "Modo PWM rpido" en la pgina 101
para ms detalles.
107
8161D-AVR-10.9
COM0B1
COM0B0
Reservado
Nota:
Descripcin
1. Un caso especial ocurre cuando OCR0B equivale TOP y COM0B1 se establece. En este caso, la Comisin
pare Partido se ignora, pero el conjunto o claro se hace en la parte superior. Ver "Fase PWM de modo correcto" en la
pgina 102 para ms detalles.
Tabla 14-8.
TOP
Actualizacin
OCRx en
Inmediato
Modo
WGM02
WGM01
WGM00
Normal
0xFF
PWM, Fase
Correcto
0xFF
CTC
PWM rpido
Notas:
OCRA
TOP
Bandera TOV
Ubicado en(1) (2)
MAX
INFERIOR
Inmediato
MAX
0xFF
INFERIOR
MAX
Reservado
PWM, Fase
Correcto
OCRA
TOP
INFERIOR
Reservado
PWM rpido
OCRA
INFERIOR
TOP
1. MAX = 0xFF
2. INFERIOR = 0x00
108
8161D-AVR-10.9
14.9.2
FOC0A
FOC0B
WGM02
CS02
CS01
CS00
Lectura / Escritura
R/W
R/W
R/W
R/W
Valor inicial
0x25 (0x45)
TCCR0B
Un estroboscpico FOC0A no generar ninguna interrupcin, ni va a borrar el temporizador en el modo CTC usando
OCR0A como TOP.
El bit FOC0A siempre se lee como cero.
Bit 6 - FOC0B: Fuerza de comparacin de salida B
El bit FOC0B slo se activa cuando los bits WGM especifican un modo no PWM.
Sin embargo, para asegurar la compatibilidad con dispositivos futuros, este bit debe ponerse a cero cuando
TCCR0B se escribe cuando se trabaja en modo PWM. Al escribir un uno lgico en el bit FOC0B,
una inmediata Comparar Partido es forzado en la unidad de forma de onda Generacin. La salida es OC0B
cambiado de acuerdo a su COM0B1: ajuste 0 bits. Tenga en cuenta que el bit de FOC0B se implementa como una
estroboscpica. Por lo tanto, es el valor presente en el COM0B1: 0 bits que determina el efecto de la
forzado comparar.
Un estroboscpico FOC0B no generar ninguna interrupcin, ni va a borrar el temporizador en el modo CTC usando
OCR0B como TOP.
El bit FOC0B siempre se lee como cero.
Bits 5: 4 - Res: Bits Reservados
Estos bits estn reservados bits en la ATmega48PA / 88PA / 168PA / 328P y siempre lea como
cero.
109
8161D-AVR-10.9
Tabla 14-9.
CS02
CS01
CS00
Descripcin
Si los modos de pines externos se utilizan para el Timer / Counter0, las transiciones en el reloj T0 pin voluntad del
contador incluso si el pasador est configurado como una salida. Esta caracterstica permite el control del software de la
contando.
14.9.3
Lectura / Escritura
Valor inicial
TCNT0 [7: 0]
0x26 (0x46)
TCNT0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
El temporizador / contador Registro da acceso directo, tanto para operaciones de lectura y escritura, a la
Unidad de temporizador / contador de 8 bits mostrador. Escribiendo a los bloques TCNT0 Registro (elimina) la comparacin
Coinciden en el siguiente reloj temporizador. Modificacin del contador (TCNT0), mientras que el contador se est ejecutando,
introduce un riesgo de perder un partido de comparacin entre TCNT0 y los Registros OCR0x.
14.9.4
Lectura / Escritura
Valor inicial
OCR0A [7: 0]
0x27 (0x47)
OCR0A
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
La salida de comparacin registro A contiene un valor de 8 bits que se compara continuamente con el
valor del contador (TCNT0). Un partido se puede utilizar para generar una salida Comparar interrumpir, o para
generar una salida de forma de onda en el pin OC0A.
14.9.5
Lectura / Escritura
Valor inicial
OCR0B [7: 0]
0x28 (0x48)
OCR0B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
La salida de comparacin Registro B contiene un valor de 8 bits que se compara continuamente con el
valor del contador (TCNT0). Un partido se puede utilizar para generar una salida Comparar interrumpir, o para
generar una salida de forma de onda en el pin OC0B.
110
8161D-AVR-10.9
14.9.6
(0x6E)
OCIE0B
OCIE0A
TOIE0
Lectura / Escritura
R/W
R/W
R/W
Valor inicial
TIMSK0
Bit 1 - OCIE0A: Temporizador / Counter0 salida Comparar Partido Una habilitacin de interrupcin
Cuando el bit OCIE0A se escribe en uno, y el I-bit en el registro de estado se establece, el
Timer / Counter0 Comparar coinciden con una interrupcin est habilitada. Se ejecuta la interrupcin correspondiente
si una comparacin Partido en Timer / Counter0 ocurre, es decir, cuando el bit OCF0A se encuentra en el
Timer / Contador 0 Interrupcin Bandera Registro - TIFR0.
14.9.7
0x15 (0x35)
OCF0B
OCF0A
TOV0
Lectura / Escritura
R/W
R/W
R/W
Valor inicial
TIFR0
111
8161D-AVR-10.9
El ajuste de este indicador depende de la WGM02: ajuste bit 0. Referirse a Tabla 14-8 ", de forma de onda
Modo Generacin Bit Descripcin "en la pgina 108.
112
8161D-AVR-10.9
Caractersticas
15.2
Visin de conjunto
La unidad de temporizador / contador de 16 bits permite momento de ejecucin del programa precisa (gestin de eventos),
generacin de ondas, y la medicin de frecuencia de la seal.
La mayora de las referencias de registro y de bits en esta seccin estn escritos en forma general. Una minscula "n"
reemplaza el nmero / Contador Temporizador y una minscula "x" sustituye a la comparacin de salida unidad
canal. Sin embargo, cuando se utiliza el registro o el bit define en un programa, la forma precisa debe ser
utilizado, es decir, TCNT1 para acceder Timer / Counter1 valor del contador y as sucesivamente.
Un diagrama de bloques simplificado de la 16-bit temporizador / contador se muestra en la Figura 15-1. Para el actual
colocacin de pines de E / S, consulte "Pinout ATmega48PA / 88PA / 168PA / 328P" en la pgina 2. UPC
acceso de E / S Registros, incluyendo bits de E / S y pines I / O, se muestran en negrita. El especfica dispositivo
I / O Registro y ubicaciones bits enumerados en la "Registrar Descripcin" en la pgina 134.
El bit en PRTIM1 "PRR - Potencia Reduccin registro" en la pgina 45 debe ser por escrito a cero para
permitir mdulo temporizador / Counter1.
113
8161D-AVR-10.9
Tovn
(Int.Req.)
Claro
Logic Control
Direccin
clkTn
Reloj Seleccione
Borde
Detector
TOP
Tn
INFERIOR
(De Precontador)
Timer / Contador
TCNTn
=0
OCnA
(Int.Req.)
Waveform
Generacin
OCnA
OCRnA
DATOS DE
BUS
OCnB
(Int.Req.)
Fijo
TOP
Valores
Waveform
Generacin
=
OCRnB
OCnB
(De analgico
Comparador Ouput)
ICFn (Int.Req.)
Borde
Detector
ICRN
Ruido
Canceler
ICPN
TCCRnA
Nota:
15.2.1
TCCRnB
1. Consulte Figura 1-1 en la pgina 2, Tabla 13-3 en la pgina 82 y Tabla 13-9 en la pgina 88 para
Timer / Counter1 colocacin de los clavos y la descripcin.
Registros
La Timer / Contador (TCNT1), Registros de salida de comparacin (OCR1A / B), y Regis- Captura entrada
ter (ICR1) son todos los registros de 16 bits. Los procedimientos especiales deben seguirse cuando se accede a la 16registros de bits. Estos procedimientos se describen en la seccin "Acceso a los Registros de 16 bits" en la
pgina 115. La Temporizador / contador de registros de control (TCCR1A / B) son registros de 8 bits y no tienen
Restricciones de acceso de la CPU. Las solicitudes de interrupcin (abreviado Int.Req. En la figura) seales son todos
visible en el Interrupcin de temporizador Bandera Registro (TIFR1). Todas las interrupciones estn enmascarados
individualmente con
la Interrupcin de temporizador Mscara Registro (TIMSK1). TIFR1 y TIMSK1 no se muestran en la figura.
El temporizador / contador puede ser ajustado internamente, a travs de la pre-escalador, o por una fuente externa de reloj en
el pasador T1. Los controles de bloque lgico Reloj posicin Seleccione el reloj fuente y el borde del Timer / Contador
utiliza para aumentar (o disminuir) su valor. El temporizador / contador est inactivo si no hay fuente de reloj
est seleccionada. La salida de la lgica Reloj Seleccione se conoce como el reloj temporizador (clkT1).
La salida de doble buffer Comparar Registros (OCR1A / B) se comparan con el temporizador / Convalor ter en todo momento. El resultado de la comparacin puede ser utilizado por el generador de forma de onda de
generar un PWM o salida de frecuencia variable en el pin de salida de comparacin (OC1A / B). Ver "Output
114
8161D-AVR-10.9
15.2.2
Definiciones
Las siguientes definiciones se utilizan ampliamente en toda la seccin:
15.3
INFERIOR
MAX
TOP
No todos los 16 bits accede utiliza el registro temporal para el byte alto. La lectura de la OCR1A / B 16
registros bits no implica la utilizacin del registro temporal.
Para hacer un 16-bit de escritura, el byte alto debe ser escrito antes de que el byte bajo. Para una de 16 bits de lectura, la baja
byte debe ser ledo antes el byte alto.
Los siguientes ejemplos de cdigo muestran cmo acceder a los 16 bits de temporizador Registros suponiendo que no
interrupciones actualiza el registro temporal. El mismo principio se puede utilizar directamente para acceder
la OCR1A / B y ICR1 Registros. Tenga en cuenta que cuando se utiliza "C", el compilador se encarga de la 16-bit
el acceso.
115
8161D-AVR-10.9
El ejemplo de cdigo montaje devuelve el valor TCNT1 en el r17: r16 registran par.
Es importante notar que el acceso registros de 16 bits son operaciones atmicas. Si una interrupcin
se produce entre las dos instrucciones con el acceso a registro de 16 bits, y el cdigo de interrupcin
actualiza el registro temporal mediante el acceso a la misma o cualquier otra de la 16-bit de temporizacin Registros, a continuacin, se daarn el resultado del acceso fuera de la interrupcin. Por lo tanto, cuando ambos
el cdigo principal y el cdigo de interrupcin actualizar el registro temporal, el cdigo principal debe desactivar
las interrupciones durante el acceso de 16 bits.
Los siguientes ejemplos de cdigo muestran cmo hacer una lectura atmico de los contenidos TCNT1 Registro.
La lectura de cualquiera de los OCR1A / B o ICR1 Registros se puede hacer utilizando el mismo principio.
116
8161D-AVR-10.9
Cdigo C Ejemplo(1)
unsigned int TIM16_ReadTCNT1 ( vaco )
{
unsigned char sreg;
unsigned int yo;
/ * Ahorre indicador global de interrupcin * /
sreg = SREG;
/ * Deshabilitar las interrupciones * /
_CLI ();
/ * Leer TCNT1 en i * /
i = TCNT1;
/ * Restaurar indicador global de interrupcin * /
SREG = sreg;
retorno yo;
}
Nota:
El ejemplo de cdigo montaje devuelve el valor TCNT1 en el r17: r16 registran par.
Los siguientes ejemplos de cdigo muestran cmo hacer una escritura atmica de los contenidos TCNT1 Registro.
Escribir cualquiera de los OCR1A / B o ICR1 Registros se puede hacer utilizando el mismo principio.
117
8161D-AVR-10.9
Cdigo C Ejemplo(1)
vaco TIM16_WriteTCNT1 ( unsigned int i )
{
unsigned char sreg;
unsigned int yo;
/ * Ahorre indicador global de interrupcin * /
sreg = SREG;
/ * Deshabilitar las interrupciones * /
_CLI ();
/ * Establecer TCNT1 a i * /
TCNT1 = i;
/ * Restaurar indicador global de interrupcin * /
SREG = sreg;
}
Nota:
El ejemplo de cdigo montaje requiere que el r17: r16 par de registro contiene el valor a ser escrito
diez a TCNT1.
15.3.1
15.4
118
8161D-AVR-10.9
Unidad de contador
La parte principal de la 16-bit temporizador / contador es la 16-bit unidad de contador bidireccional programable.
Figura 15-2 muestra un diagrama de bloques del contador y sus alrededores.
Figura 15-2. Unidad contra el Diagrama de bloques
(8 bits)
DATOS DE BUS
Tovn
(Int.Req.)
TEMP (8 bits)
Reloj Seleccione
Contar
TCNTnH (8 bits)
TCNTnL (8 bits)
Claro
clkTn
Borde
Detector
Tn
Logic Control
Direccin
(De Precontador)
TOP
INFERIOR
Direccin
Claro
clkT1
TOP
INFERIOR
El contador de 16 bits es mapeado en dos posiciones de memoria de 8 bits de E / S: Contador de alta (TCNT1H) conque contiene los ocho bits superiores del mostrador, y Contador Baja (TCNT1L) que contiene el menor de ocho
Bits. El Registro TCNT1H slo se puede acceder indirectamente por la CPU. Cuando la CPU hace una
el acceso a la ubicacin TCNT1H I / O, la CPU accede a la registro temporal byte alto (TEMP).
El registro temporal se actualiza con el valor TCNT1H cuando se lee el TCNT1L, y
TCNT1H se actualiza con el valor del registro temporal cuando TCNT1L est escrito. Esto permite que el
CPU leer ni escribir todo el valor del contador de 16 bits dentro de un ciclo de reloj a travs del bus de datos de 8 bits.
Es importante notar que hay casos especiales de la escritura al Registro TCNT1 cuando el
contador est contando que dar resultados impredecibles. Los casos especiales se describen en la
secciones donde ellos son de importancia.
119
8161D-AVR-10.9
15.6
Unidad de Captura de
entrada
El temporizador / contador incorpora una unidad de captura de entrada que puede capturar eventos externos y dar
ellos un sello de tiempo que indica el momento del suceso. La seal exterior que indique un evento, o multieventos tiple, se pueden aplicar a travs de la clavija de ICP1 o, alternativamente, a travs de la unidad analgica-comparador. La
sellos de tiempo se pueden utilizar para calcular la frecuencia, ciclo de trabajo, y otras caractersticas de la seal
nal aplica. Alternativamente, los sellos de tiempo pueden ser utilizados para la creacin de un registro de los eventos.
La unidad de captura de entrada se ilustra por el diagrama de bloques mostrado en la Figura 15-3. Los elementos de
el diagrama de bloques que no son directamente una parte de la unidad de captura de entrada estn sombreadas en gris. La
pequeo "n" en nombres de registro y bits indica el nmero del temporizador / contador.
TEMP (8 bits)
ICRnH (8 bits)
ESCRIBIR
ICRnL (8 bits)
TCNTnH (8 bits)
ACO *
Analog
Comparador
TCNTnL (8 bits)
ACIC *
ICNC
CIEM
Ruido
Canceler
Borde
Detector
ICFn (Int.Req.)
ICPN
Cuando se produce un cambio del nivel de la lgica (un evento) en el Pin de captura de entrada (ICP1), en su defecto
en el Salida analgica Comparador (ACO), y este cambio confirma a la configuracin del borde
detector, se disparar una captura. Cuando se dispara una captura, el valor de 16 bits del contador
(TCNT1) se escribe en el Input Capture Registro (ICR1). La Capturar la bandera de entrada (ICF1) se fija en
el mismo reloj del sistema como el valor TCNT1 se copia en ICR1 Registro. Si est habilitado (ICIE1 = 1),
Captura la Bandera de entrada genera una interrupcin de captura de entrada. La bandera ICF1 es automticamente
borra cuando se ejecuta la interrupcin. Como alternativa, la bandera ICF1 puede borrar software
escribiendo un uno lgico a su ubicacin bit I / O.
Leyendo el valor de 16 bits en el Input Capture Registro (ICR1) se realiza mediante la primera lectura, el bajo
byte (ICR1L) y luego el byte alto (ICR1H). Cuando se lee el byte bajo el byte alto se copia
en el registro temporal byte alto (TEMP). Cuando la CPU lee la ubicacin ICR1H I / O lo har
acceder al Registro TEMP.
El Registro ICR1 slo se puede escribir cuando se utiliza un modo de generacin de forma de onda que utiliza
el Registro ICR1 para definir el valor superior de la barra. En estos casos el Waveform Generation
120
8161D-AVR-10.9
Tanto el Pin de captura de entrada (ICP1) y el Salida analgica Comparador (ACO) entradas se muestrean
utilizando la misma tcnica que para el pasador de T1 (figura 16-1 en la pgina 141). El detector de borde es tambin
idntica. Sin embargo, cuando el cancelador de ruido est habilitado, la lgica adicional se inserta antes de la
detector de borde, lo que aumenta el retraso de cuatro ciclos de reloj del sistema. Tenga en cuenta que la entrada de la
cancelador de ruido y detector de bordes siempre est activada a menos que el temporizador / contador se encuentra en una
Waveform
formar modo de generacin que utiliza ICR1 definir TOP.
Una captura de entrada puede ser activado por el software mediante el control del puerto de la clavija de ICP1.
15.6.2
Supresor de ruido
El cancelador de ruido mejora la inmunidad al ruido mediante el uso de un sistema de filtrado digital simple. La
cancelador de ruido de entrada se monitoriza durante cuatro muestras, y los cuatro debe ser igual para el cambio de la
salida que a su vez se utiliza por el detector de borde.
El cancelador de ruido se habilita estableciendo la Entrada Canceler Captura de ruido (ICNC1) poco en
Timer / Contador Registro de Control B (TCCR1B). Cuando se activa el cancelador de ruido introduce Adems
cionales cuatro ciclos de reloj del sistema de retardo de un cambio aplicada a la entrada, a la actualizacin de la
ICR1 Registro. El cancelador de ruido utiliza el reloj del sistema y por lo tanto no se ve afectada por la
prescaler.
15.6.3
Al utilizar la interrupcin de captura de entrada, el Registro ICR1 debe leerse como temprano en la interrutina de controlador rupt posible. A pesar de que la interrupcin de captura de entrada tiene relativamente alta
prioridad, el mximo de interrupcin tiempo de respuesta es dependiente de la cantidad mxima de reloj
ciclos que se necesita para manejar cualquiera de las otras solicitudes de interrupcin.
Uso de la unidad de captura de entrada en cualquier modo de operacin cuando el valor TOP (resolucin) es
cambiado de forma activa durante la operacin, no se recomienda.
Medicin de ciclo de trabajo de una seal externa requiere que la inclinacin de disparo se cambia despus
cada captura. Cambio de la deteccin de borde debe hacerse lo ms pronto posible despus de la ICR1
Registro ha sido ledo. Despus de un cambio del borde, la bandera de captura de entrada (ICF1) debe estar
121
8161D-AVR-10.9
15.7
Unidades de salida de
comparacin
El comparador 16-bit compara continuamente con el TCNT1 Comparacin de salida Registro
(OCR1x). Si TCNT equivale OCR1x comparador indica un fsforo. Un partido fijar el Salida
Comparar Bandera (OCF1x) en el prximo ciclo de reloj temporizador. Si est habilitado (OCIE1x = 1), la Comisin de salida
pare Bandera genera una comparacin de salida de interrupcin. La bandera OCF1x se borra automticamente
cuando se ejecuta la interrupcin. Como alternativa, la bandera OCF1x puede borrar software por escrito
ing un uno lgico a su ubicacin bit I / O. El Generador de forma de onda utiliza la seal de partida para
generar una salida de acuerdo al modo de funcionamiento establecido por el Modo Waveform Generacin
(WGM13: 0) y los bits Comparar modo de Salida (COM1x1: 0) bits. Las seales de superior e inferior
son utilizados por el generador de forma de onda para el manejo de los casos especiales de los valores extremos en
algunos modos de operacin (Ver Seccin "15.9" en la pgina 125.)
Una caracterstica especial de comparacin de salida unidad A le permite definir el valor del temporizador / contador TOP (es
decir,
resolucin del contador). Adems de la resolucin del contador, el valor TOP define el perodo de tiempo
para formas de onda generada por el generador de forma de onda.
Figura 15-4 muestra un diagrama de bloques de la unidad de salida de comparacin. El pequeo "n" en el registro y
nombres bits indica el nmero de dispositivo (n = 1 para Timer / Contador 1), y la "x" indica la salida
Comparar unidad (A / B). Los elementos del diagrama de bloques que no son directamente parte de la salida
Comparar unidad estn sombreadas en gris.
TEMP (8 bits)
TCNTnH (8 bits)
OCRnxH (8 bits)
TCNTnL (8 bits)
OCRnxL (8 bits)
=(Comparador 16-bit)
OCFnx (Int.Req.)
TOP
INFERIOR
Generador de onda
WGMn3: 0
OCnx
COMnx1: 0
El Registro OCR1x es amortiguada doble al utilizar cualquiera de los doce Pulso de Amplitud Modulada
(PWM) modos. Para la Normal y Timer Borrar en comparacin (CTC) modos de operacin, el
doble bfer est desactivado. El doble bfer sincroniza la actualizacin de la OCR1x Comisin
pare Registro ya sea superior o inferior de la secuencia de conteo. La sincronizacin
122
8161D-AVR-10.9
Para obtener ms informacin de cmo acceder a los registros de 16 bits se refieren a "Acceso a los Registros de 16 bits"
en la pgina 115.
15.7.1
15.7.2
15.7.3
123
8161D-AVR-10.9
COMnx1
COMnx0
FOCnx
Waveform
Generador
Q
1
OCnx
D
DATOS DE
BUS
OCnx
Perno
0
PORT
DDR
clk I / O
La funcin de puerto de E / S generales es invalidada por la salida de comparacin (OC1x) de la forma de onda
Generador si alguna de las COM1x1: se establecen los bits 0. Sin embargo, la direccin OC1x pines (entrada o salida
put) todava est controlada por el Direccin Registro de Datos (DDR) para el pin del puerto. La Direccin de Datos
Registrar poco para el pasador OC1x (DDR_OC1x) se debe establecer como salida antes de que el valor OC1x es visible en el pasador. La funcin de anulacin de puerto es generalmente independiente de la generacin de formas de onda
modo, pero hay algunas excepciones. Referirse a Tabla 15-1, Tabla 15-2 y Tabla 15-3 para
detalles.
El diseo de la lgica pin de salida de comparacin permite la inicializacin del estado OC1x antes de la salida
put est habilitada. Tenga en cuenta que algunos COM1x1: ajustes de 0 bits estn reservados para ciertos modos de
operacin. Vea la seccin "15.11" en la pgina 134.
Los COM1x1: 0 bits no tienen efecto en la unidad de captura de entrada.
15.8.1
124
8161D-AVR-10.9
15.9
Modos de funcionamiento
El modo de funcionamiento, es decir, el comportamiento del temporizador / contador y la salida Comparar pines, es
definido por la combinacin de la Modo Waveform Generacin (WGM13: 0) y Comparar salida
modo (COM1x1: 0) bits. Los bits de modo de comparacin de salida no afectan a la secuencia de conteo,
mientras que los bits de modo Waveform Generacin hacen. El COM1x1: 0 bits controlan si el PWM salida
put generada debe ser invertida o no (invertida o PWM no invertido). Para los modos no PWM
la COM1x1: 0 bits de control si la salida se debe establecer, borra o alternar en una comparacin
partido (Ver Seccin "15.8" en la pgina 124.)
Para obtener informacin detallada momento consulte "Timer / Contador diagramas de tiempo" en la pgina 132.
15.9.1
Modo Normal
El modo ms simple de operacin es la Modo normal (WGM13: 0 = 0). En este modo el conteo
direccin es siempre hacia arriba (incremento), y ningn contador clara se realiza. El contador simplemente
excesos cuando pasa a su valor de 16 bits mxima (MAX = 0xFFFF) y luego se reinicia desde el
INFERIOR (0x0000). En funcionamiento normal, el Timer / Contador bandera de desbordamiento (TOV1) se establecer en
el mismo ciclo de reloj temporizador como el TCNT1 se convierte en cero. La bandera TOV1 en este caso se comporta
como un poco 17a, excepto que slo se establece, sin despachar. Sin embargo, combinado con el desbordamiento del temporizador
interrupcin que borra automticamente la Bandera TOV1, la resolucin del temporizador se puede aumentar mediante softWare. No hay casos especiales a tener en cuenta en el modo Normal, un nuevo valor del contador puede ser
por escrito en cualquier momento.
La unidad de captura de entrada es fcil de usar en el modo Normal. Sin embargo, tenga en cuenta que el mximo
intervalo entre los acontecimientos externos no debe superar la resolucin del contador. Si el intervalo
entre los eventos son demasiado largos, el desbordamiento de la interrupcin de temporizador o el prescaler debe ser usado para
ampliar la resolucin para la unidad de captura.
Las unidades de salida de comparacin se pueden utilizar para generar interrupciones en algn momento dado. Utilizando el
Comparacin de salida para generar formas de onda no se recomienda en el modo Normal, ya que esta voluntad
ocupar demasiado del tiempo de CPU.
15.9.2
El diagrama de tiempos para el modo de CTC se muestra en Figura 15-6. El valor del contador (TCNT1)
aumenta hasta un partido de comparar se produce, ya sea con o OCR1A ICR1, y luego contador (TCNT1)
se borra.
125
8161D-AVR-10.9
TCNTn
OCnA
(Cambiar)
Perodo
(COMnA1: 0 = 1)
Una interrupcin se puede generar en cada momento el valor del contador alcanza el valor TOP por cualquiera
utilizando el OCF1A o bandera ICF1 segn el registro utilizado para definir el valor TOP. Si el
interrupcin est habilitada, la rutina de manejador de interrupcin se puede utilizar para actualizar el valor TOP. Cmonunca, cambiando el TOP a un valor cercano a abajo cuando el contador est corriendo con ninguno o un
valor bajo prescaler debe hacerse con cuidado ya que el modo de CTC no tiene la doble memoria intermedia
Ering funcin. Si el nuevo valor escrito en OCR1A o ICR1 es menor que el valor actual de
TCNT1, el contador se perder el partido comparar. El contador entonces tendr que contar a su maxvalor imum (0xFFFF) y envolver a partir de 0x0000 antes de que ocurra el partido comparar.
En muchos casos, esta caracterstica no es deseable. Una alternativa ser entonces utilizar el modo PWM rpido
utilizando OCR1A para definir TOP (WGM13: 0 = 15) ya que el OCR1A entonces ser el doble buffer.
Para generar una salida de forma de onda en el modo de CTC, la salida OC1A se puede configurar para cambiar su lgica
nivel en cada partido comparar estableciendo los bits de modo de salida Comparar con el modo de alternar
(COM1A1: 0 = 1). El valor OC1A no ser visible en el pin de puerto a menos que la direccin de datos del
el pasador se establece en la salida (DDR_OC1A = 1). La forma de onda generada tendr un mximo cuencia
cuencia de fOC1A = fclk_I / O / 2 cuando OCR1A se ajusta a cero (0x0000). La frecuencia de forma de onda es
definido por la siguiente ecuacin:
F clk_I / S
-f OCnA = ------------------------------------------------ 2 N ( 1+OCRnA )
La Nvariable representa el factor de pre-escalador (1, 8, 64, 256, o 1024).
Como para el modo normal de funcionamiento, la Bandera TOV1 se encuentra en el mismo ciclo de reloj temporizador que la
contador cuenta de MAX a 0x0000.
15.9.3
126
8161D-AVR-10.9
TCNTn
OCnx
(COMnx1: 0 = 2)
OCnx
(COMnx1: 0 = 3)
Perodo
La bandera de desbordamiento del temporizador / contador (TOV1) se establece cada vez que el contador llegue a TOP.
Adicionalmente
la Bandera OC1A o ICF1 se fij en el mismo ciclo de reloj temporizador como TOV1 se establece cuando sea OCR1A
o ICR1 se utiliza para definir el valor de TOP. Si una de las interrupciones estn habilitadas, el Han- interrupcin
Dler rutina se puede usar para la actualizacin de la parte superior y comparar los valores.
Al cambiar el valor TOP programa debe garantizar que el nuevo valor de TOP es ms alta o
igual al valor de todos los Registros comparar. Si el valor TOP es menor que cualquiera de las
Comparar Registros, un partido comparar nunca ocurrir entre el TCNT1 y la OCR1x.
Tenga en cuenta que cuando se utiliza TOP fijo valora los bits no utilizados se enmascaran a cero cuando cualquiera de los
OCR1x registros estn escritos.
El procedimiento para actualizar ICR1 difiere de OCR1A actualizar cuando se utiliza para definir el TOP
valor. El Registro ICR1 no es el doble buffer. Esto significa que si ICR1 se cambia a una baja
valor cuando el contador se est ejecutando con ninguno o un valor bajo prescaler, existe el riesgo de que el nuevo
ICR1 valor escrito es menor que el valor actual de TCNT1. El resultado ser entonces que el
contador se perder el partido de comparar el valor TOP. El contador entonces tendr que contar con la
Valor MAX (0xFFFF) y envolver a partir de 0x0000 antes de que ocurra el partido comparar.
El Registro OCR1A sin embargo, es de doble buffer. Esta caracterstica permite la localizacin OCR1A I / O
127
8161D-AVR-10.9
Una frecuencia (con 50% de ciclo de trabajo) de salida de forma de onda en el modo PWM rpido se puede lograr por ajuste
ting OC1A para cambiar su nivel lgico en cada compara partido (COM1A1: 0 = 1). Esto se aplica slo
Si OCR1A se utiliza para definir el valor TOP (WGM13: 0 = 15). La forma de onda generada tendr
una frecuencia mxima de fOC1A = fclk_I / O / 2 cuando OCR1A se ajusta a cero (0x0000). Esta caracterstica es
similar a la palanca OC1A en modo CTC, excepto la funcin doble de amortiguamiento de la salida sin
pare la unidad est activada en el modo PWM rpido.
15.9.4
La resolucin PWM para el modo de fase correcta PWM se puede fijar a 8, 9, o 10 bits, o define
por cualquiera de ICR1 o OCR1A. La resolucin mnima permitida es de 2 bits (ICR1 o OCR1A establece en
128
8161D-AVR-10.9
TCNTn
OCnx
(COMnx1: 0 = 2)
OCnx
(COMnx1: 0 = 3)
Perodo
La bandera de desbordamiento del temporizador / contador (TOV1) se establece cada vez que el contador llegue a FONDO.
Cundo
ya sea OCR1A o ICR1 se utiliza para definir el valor de TOP, el OC1A o bandera ICF1 se establece de acuerdo
vez ms en el mismo ciclo de reloj temporizador como los Registros OCR1x se actualizan con el doble bfer
valor (en la parte superior). Las banderas de interrupcin se pueden utilizar para generar una interrupcin cada vez que el contador
llega a la cima o el valor INFERIOR.
Al cambiar el valor TOP programa debe garantizar que el nuevo valor de TOP es ms alta o
igual al valor de todos los Registros comparar. Si el valor TOP es menor que cualquiera de las
Comparar Registros, un partido comparar nunca ocurrir entre el TCNT1 y la OCR1x.
Tenga en cuenta que cuando se utilizan los valores superior fija, los bits no utilizados se enmascaran a cero cuando cualquiera de
los
OCR1x registros estn escritos. Como el tercer perodo se muestra en Figura 15-8 ilustra, el cambio de la
TOP activamente mientras el temporizador / contador se est ejecutando en el modo correcto de fase puede dar lugar a una
salida asimtrica. La razn de esto se puede encontrar en el momento de la actualizacin de la OCR1x Reglanistro. Desde la actualizacin OCR1x se produce en la parte superior, el perodo de PWM comienza y termina en la parte superior.
Este
129
8161D-AVR-10.9
F clk_I / S
-f OCnxPCPWM = -------------------------2 N TOP
La variable N representa el divisor prescaler (1, 8, 64, 256, o 1024).
Los valores extremos para el Registro OCR1x representan casos especiales cuando se genera un PWM
forma de onda de salida en el modo PWM de fase correcta. Si el OCR1x se iguala a la PARTE INFERIOR
salida ser continua baja y si se fija igual a encabezan la salida ser continuamente alto para
no invertida modo PWM. Para PWM invertida la salida tendr los valores lgicos opuestos. Si
OCR1A se utiliza para definir el valor TOP (WGM13: 0 = 11) y COM1A1: 0 = 1, la salida OC1A
alternar con un ciclo de trabajo del 50%.
15.9.5
130
8161D-AVR-10.9
TCNTn
OCnx
(COMnx1: 0 = 2)
OCnx
(COMnx1: 0 = 3)
Perodo
El / Contador Bandera desbordamiento Timer (TOV1) se fij en el mismo ciclo de reloj temporizador como el OCR1x
Los registros se actualizan con el valor del buffer de matrimonio (en el fondo). Cuando cualquiera OCR1A o ICR1
se utiliza para definir el valor de TOP, el OC1A o bandera ICF1 establecen cuando TCNT1 ha alcanzado TOP.
Las banderas de interrupcin se pueden utilizar para generar una interrupcin cada vez que el contador alcanza el
TOP o valor INFERIOR.
Al cambiar el valor TOP programa debe garantizar que el nuevo valor de TOP es ms alta o
igual al valor de todos los Registros comparar. Si el valor TOP es menor que cualquiera de las
Comparar Registros, un partido comparar nunca ocurrir entre el TCNT1 y la OCR1x.
Como Figura 15-9 muestra la salida generada es, en contraste con el modo de fase correcta, simtrica
cal en todos los perodos. Desde los Registros OCR1x se actualizan en el fondo, la longitud de la creciente
y las laderas que caen siempre sern iguales. Esto da pulsos de salida simtricas y por lo tanto es
frecuencia correcta.
131
8161D-AVR-10.9
F clk_I / S
-f OCnxPFCPWM = -------------------------2 N TOP
La variable N representa el divisor prescaler (1, 8, 64, 256, o 1024).
Los valores extremos para el Registro OCR1x representa casos especiales cuando se genera un PWM
forma de onda de salida en el modo PWM de fase correcta. Si el OCR1x se iguala a la PARTE INFERIOR
salida ser continua baja y si se fija igual a encabezan la salida se establece en alto para no
el modo PWM invertida. Para PWM invertida la salida tendr los valores lgicos opuestos. Si OCR1A
se utiliza para definir el valor TOP (WGM13: 0 = 9) y COM1A1: 0 = 1, la salida OC1A alternar
con un ciclo de trabajo del 50%.
clkI / S
clkTn
(ClkI / S / 1)
TCNTn
OCRnx
OCRnx - 1
OCRnx
OCRnx + 1
OCRnx + 2
OCRnx Valor
OCFnx
Figura 15-11 muestra los mismos datos de temporizacin, pero con el prescaler habilitado.
132
8161D-AVR-10.9
clkI / S
clkTn
(ClkI / S / 8)
TCNTn
OCRnx - 1
OCRnx
OCRnx
OCRnx + 1
OCRnx + 2
OCRnx Valor
OCFnx
Figura 15-12 muestra la secuencia de cuenta cerca de TOP en varios modos. Cuando se usa la fase y
frecuencia del modo PWM correcta el Registro OCR1x se actualiza en la parte inferior. Los diagramas de temporizacin
ser el mismo, pero TOP debe ser reemplazado por abajo, arriba-1 por INFERIOR + 1 y as sucesivamente.
El mismo cambio de nombre se aplica para los modos que marcan la bandera TOV1 en la parte inferior.
TCNTn
(CTC y fPWM)
TCNTn
(PC y PFC PWM)
TOP - 1
TOP
TOP - 1
TOP
INFERIOR
TOP - 1
INFERIOR + 1
TOP - 2
Tovn (fPWM)
y ICFn (si se utiliza
como TOP)
OCRnx
(Update en TOP)
133
8161D-AVR-10.9
clk
I/O
clk
(CLK
Tn/ 8) de E / S
TCNTn
(CTC y fPWM)
TCNTn
(PC y PFC PWM)
TOP - 1
TOP
TOP - 1
TOP
INFERIOR
INFERIOR + 1
TOP - 1
TOP - 2
Tovn (fPWM)
e ICF n (si se utiliza
como TOP)
OCRnx
(Update en TOP)
COM1A1
COM1A0
COM1B1
COM1B0
WGM11
WGM10
R/W
R/W
R/W
R/W
R/W
R/W
TCCR1A
Cuando el OC1A o OC1B est conectado a la clavija, la funcin de la COM1x1: 0 bits es dependiente
dente de la WGM13: Seleccin inicial 0 bits. Tabla 15-1 muestra la COM1x1: 0 La funcionalidad de bit cuando el
WGM13: 0 bits se establecen en un normal o un modo de CTC (no-PWM).
Tabla 15-1.
COM1A1 / COM1B1
COM1A0 / COM1B0
Descripcin
134
8161D-AVR-10.9
Tabla 15-2.
COM1A1 / COM1B1
COM1A0 / COM1B0
Nota:
Descripcin
1. Un caso especial ocurre cuando OCR1A / OCR1B equivale TOP y COM1A1 / COM1B1 se establece. En
este caso el partido de comparar se ignora, pero el conjunto o claro se hace en la parte inferior. Vea la Seccin
"15.9.3" en la pgina 126. para ms detalles.
Tabla 15-3 muestra el COM1x1: 0 La funcionalidad de bit cuando el WGM13: 0 bits se establece en la fase
correcta o la fase y la frecuencia correcta, el modo PWM.
Tabla 15-3.
COM1A1 / COM1B1
COM1A0 / COM1B0
Nota:
Descripcin
1. Un caso especial ocurre cuando OCR1A / OCR1B equivale TOP y COM1A1 / COM1B1 se establece. Ver
Seccin "15.9.4" en la pgina 128. para ms detalles.
135
8161D-AVR-10.9
Tabla 15-4.
Modo
WGM13
WGM12
(CTC1)
WGM11
(PWM11)
WGM10
(PWM10)
Actualizacin
OCR1x en
Bandera TOV1
Ubicado en
Normal
0xFFFF
Inmediato
MAX
0x00FF
TOP
INFERIOR
0x01FF
TOP
INFERIOR
0x03FF
TOP
INFERIOR
CTC
OCR1A
Inmediato
MAX
0x00FF
INFERIOR
TOP
0x01FF
INFERIOR
TOP
0x03FF
INFERIOR
TOP
ICR1
INFERIOR
INFERIOR
OCR1A
INFERIOR
INFERIOR
10
ICR1
TOP
INFERIOR
11
OCR1A
TOP
INFERIOR
12
CTC
ICR1
Inmediato
MAX
13
(Reservado)
14
PWM rpido
ICR1
INFERIOR
TOP
PWM rpido
OCR1A
INFERIOR
TOP
15
Nota:
1. Los CTC1 y PWM11: nombres de definicin 0 bits son obsoletos. Utilice los WGM12: 0 definiciones. Sin embargo, la funcionalidad y
ubicacin de estos bits son compatibles con las versiones anteriores del temporizador.
15.11.2
ICNC1
ICES1
WGM13
WGM12
CS12
CS11
CS10
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TCCR1B
136
8161D-AVR-10.9
CS12
CS11
CS10
Descripcin
Si los modos de pines externos se utilizan para el Timer / Counter1 transiciones en el reloj T1 pin voluntad del
contador incluso si el pasador est configurado como una salida. Esta caracterstica permite el control del software de la
contando.
15.11.3
FOC1A
FOC1B
0
-
R/W
R/W
TCCR1C
137
8161D-AVR-10.9
(0x85)
TCNT1 [15: 8]
(0x84)
TCNT1 [7: 0]
Lectura / Escritura
Valor inicial
0
TCNT1H
TCNT1L
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Los dos Timer / Contador E / S ubicaciones (TCNT1H y TCNT1L, combinado TCNT1) dar directo
acceso, tanto para lectura como para las operaciones de escritura, a la unidad de temporizador / contador contador de 16 bits. A
asegurar que tanto los bytes alto y bajo se leen y escriben simultneamente cuando la CPU
accesos estos registros, que se realiza el acceso mediante un temporal Registro Byte alto de 8 bits
(TEMP). Este registro temporal es compartida por todos los dems registros de 16 bits. Vea la seccin "15.3" en la
pgina 115.
Modificacin del contador (TCNT1) mientras que el contador est ejecutando introduce un riesgo de perder una compare partido entre TCNT1 y uno de los Registros OCR1x.
Escribiendo a los bloques TCNT1 Registro (elimina) el partido comparar en el siguiente reloj temporizador
para todos comparar unidades.
15.11.5
OCR1A [15: 8]
(0x88)
OCR1A [7: 0]
Lectura / Escritura
Valor inicial
15.11.6
(0x89)
0
OCR1AH
OCR1AL
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
(0x8B)
OCR1B [15: 8]
(0x8A)
OCR1B [7: 0]
Lectura / Escritura
Valor inicial
OCR1BH
OCR1BL
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Los registros de salida de comparacin contienen un valor de 16 bits que se compara continuamente con el
valor del contador (TCNT1). Un partido se puede utilizar para generar una salida Comparar interrumpir, o para
generar una salida de forma de onda en el pin OC1x.
Los registros de salida de comparacin son de 16 bits de tamao. Para asegurarse de que tanto los bytes altos y bajos son
escrito simultneamente cuando la CPU escribe en estos registros, se realiza el acceso utilizando una
8-bit Registro Byte alto temporal (TEMP). Este registro temporal es compartida por todos los dems
Registros de 16 bits. Vea la seccin "15.3" en la pgina 115.
15.11.7
(0x87)
ICR1 [15: 8]
(0x86)
ICR1 [7: 0]
Lectura / Escritura
Valor inicial
0
ICR1H
ICR1L
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
La captura de entrada se actualiza con el contador (TCNT1) valor cada vez que se produce un evento en el
Pin ICP1 (u opcionalmente en la salida analgica Comparador de Timer / Counter1). La captura de entrada
se puede utilizar para definir el valor del contador TOP.
138
8161D-AVR-10.9
15.11.8
(0x6F)
ICIE1
OCIE1B
OCIE1A
TOIE1
Lectura / Escritura
R/W
R/W
R/W
R/W
Valor inicial
TIMSK1
Bit 1 - OCIE1A: Temporizador / Counter1 comparacin de salida Una interrupcin Partido Habilitar
Cuando este bit se escribe en uno, y el I-bandera en el Registro de Estado se establece (interrumpe a nivel mundial
habilitado), la salida del temporizador / Counter1 Comparar Una interrupcin del partido est habilitada. El correspondiente
Vector de interrupcin (ver "Alarmas" en la pgina 57) se ejecuta cuando la bandera OCF1A, situado en
TIFR1, se establece.
15.11.9
0x16 (0x36)
ICF1
OCF1B
OCF1A
TOV1
Lectura / Escritura
R/W
R/W
R/W
R/W
Valor inicial
TIFR1
139
8161D-AVR-10.9
140
8161D-AVR-10.9
16.1
16.2
Precontador Restablecer
El prescaler se marcha libre, es decir, funciona de manera independiente de la lgica Reloj Seleccione de la
Timer / Contador, y que es compartida por Timer / Counter1 y Timer / Counter0. Dado que el prescaler es
no se ve afectado por el reloj del temporizador / contador de seleccin, el estado de la pre-escalador tendr implicaciones
para situaciones donde se utiliza un reloj de preescalado. Un ejemplo de artefactos preescala se produce cuando
el temporizador est activado y sincronizado por el prescaler (6> Csn2: 0> 1). El nmero de reloj del sistema
ciclos de cuando el temporizador est habilitado para el primer conteo se produce puede ser de 1 a N + 1 sistema de
ciclos de reloj, donde N es igual al divisor prescaler (8, 64, 256, o 1024).
Es posible utilizar el reinicio prescaler para la sincronizacin del temporizador / contador para programar ejecucin
cin. Sin embargo, se debe tener cuidado si el otro temporizador / contador que comparte el mismo prescaler
tambin utiliza preescala. Un restablecimiento prescaler afectar el perodo pre-escalador para todos Timer / contadores que es
conectado.
16.3
El detector de borde genera un pulso clkT1 / clkT0 para cada positivo (CSN2: 0 = 7) o negativo
(CSN2: 0 = 6) de borde que detecta.
Figura 16-1. Muestreo T1 / T0 Pin
Tn
Tn_sync
(Para Reloj
Seleccione Logic)
LE
clk I / O
Sincronizacin
Detector Edge
La lgica de sincronizacin y el borde detector introduce un retardo de 2,5 a 3,5 ciclos de reloj del sistema
desde un borde se ha aplicado a la clavija de T1 / T0 para el contador se actualiza.
141
8161D-AVR-10.9
PSRSYNC
T0
Sincronizacin
T1
Sincronizacin
clkT1
Nota:
clkT0
1. La lgica de sincronizacin en los pines de entrada (T1 / T0) se muestra en Figura 16-1.
142
8161D-AVR-10.9
16.4
Registro Descripcin
16.4.1
0x23 (0x43)
TSM
PSRASY
PSRSYNC
Lectura / Escritura
R/W
R/W
R/W
Valor inicial
GTCCR
143
8161D-AVR-10.9
Caractersticas
17.2
Visin de conjunto
Timer / Contador2 es un propsito general, de un solo canal, temporizador de 8 bits mdulo / Contador. Una simplificado
diagrama de bloques de la 8-bit del temporizador / contador se muestra en Figura 17-1. Para la colocacin real de
Pines I / O, consulte "Pinout ATmega48PA / 88PA / 168PA / 328P" en la pgina 2. CPU I accesible / O Reglanistros, incluidos los bits de E / S y los pines I / O, se muestran en negrita. La especfica del dispositivo de E / S Registro y poco
ubicaciones se enumeran en la "Registrar Descripcin" en la pgina 158.
El bit en PRTIM2 "Minimizar el consumo de energa" en la pgina 42 debe ser por escrito a cero para
permitir mdulo temporizador / Contador2.
Figura 17-1. 8-bit del temporizador / contador Diagrama de bloques
Contar
Tovn
(Int.Req.)
Claro
Logic Control
Direccin
clkTn
Reloj Seleccione
Borde
Detector
TOP
Tn
INFERIOR
(De Precontador)
Timer / Contador
TCNTn
=0
OCnA
(Int.Req.)
Waveform
Generacin
OCnA
OCRnA
DATOS DE
BUS
Fijo
TOP
Valor
OCnB
(Int.Req.)
Waveform
Generacin
OCnB
OCRnB
TCCRnA
TCCRnB
144
8161D-AVR-10.9
Registros
El temporizador / contador (TCNT2) y salida Compara Registro (OCR2A y OCR2B) son de 8 bits REGnistros. Solicitud de interrupcin (acortan como Int.Req.) Las seales son visibles en la interrupcin de la bandera Timer
Registro (TIFR2). Todas las interrupciones estn enmascaradas individualmente con la Mscara Registro interrupcin de
temporizador
(TIMSK2). TIFR2 y TIMSK2 no se muestran en la figura.
El temporizador / contador puede ser ajustado internamente, a travs de la pre-escalador, o asincrnica registr desde
los TOSC1 / 2 pines, como se detalla ms adelante en esta seccin. La operacin asincrnica es controlado por
el Estatuto asncrono Registro (ASSR). Los controles de bloque lgico Reloj posicin Seleccione el reloj
fuente que temporizador / contador utiliza para aumentar (o disminuir) su valor. El temporizador / contador es inactiva
tiva cuando se selecciona ninguna fuente de reloj. La salida de la lgica Reloj Seleccione se conoce como la
reloj temporizador (clkT2).
17.2.2
Definiciones
Muchas referencias de registro y de bit en este documento estn escritas en forma general. Una minscula "n"
reemplaza el nmero del temporizador / contador, en este caso 2. Sin embargo, cuando se utiliza el registro o poco
define en un programa, la forma precisa debe ser utilizado, es decir, TCNT2 para acceder Timer / Contador2
valor del contador y as sucesivamente.
Las definiciones en Tabla 17-1 Tambin se utilizan ampliamente en toda la seccin.
Tabla 17-1.
17.3
Definiciones
INFERIOR
MAX
TOP
17.4
Unidad de contador
La parte principal de la 8-bit del temporizador / contador es la unidad de contador bidireccional programable. Figura
17-2 en la pgina 146 muestra un diagrama de bloques de la barra y su entorno circundante.
145
8161D-AVR-10.9
DATOS DE BUS
TOSC1
contar
claro
TCNTn
clk Tn
Logic Control
Precontador
T/C
Oscilador
direccin
fondo
TOSC2
superior
clkI / S
direccin
claro
clkTn
superior
fondo
La secuencia de conteo se determina por el ajuste de los bits WGM21 y WGM20 ubicados en
el Registro Timer / Contador Control (TCCR2A) y el WGM22 ubicado en el Timer / Contador
Registro de Control B (TCCR2B). Existen estrechos vnculos entre el comportamiento del contador
(recuento) y cmo se generan formas de onda en la salida de comparacin salidas OC2A y OC2B.
Para ms detalles acerca de las secuencias de conteo avanzadas y generacin de formas de onda, consulte "Modos de
Operacin "en la pgina 149.
El / Contador Bandera desbordamiento Timer (TOV2) se establece en funcin del modo de funcionamiento seleccionado por
la WGM22: 0 bits. TOV2 se puede utilizar para generar una interrupcin de la CPU.
17.5
146
8161D-AVR-10.9
DATOS DE BUS
OCRnx
TCNTn
=(Comparador 8-bit)
OCFnx (Int.Req.)
superior
fondo
Generador de onda
OCnx
FOCn
WGMn1: 0
COMnX1: 0
El Registro OCR2x es amortiguada doble al utilizar cualquiera de la modulacin de ancho de pulso (PWM)
modos. Para el normal y Borrar contador en Comparar (CTC) modos de funcionamiento, el doble
buffering est desactivado. El doble bfer sincroniza la actualizacin de la OCR2x Comparar
Registrarse para la parte superior o inferior de la secuencia de conteo. La sincronizacin evita la
ocurrencia de longitud impar, pulsos PWM no simtricas, con lo que la salida de glitch-libre.
El OCR2x Registro de acceso puede parecer complejo, pero este no es el caso. Cuando el doble buffer
est activada, la CPU tiene acceso a la Memoria de Registro OCR2x, y si el doble bfer se visualiza
habilitada la CPU acceder al OCR2x directamente.
17.5.1
17.5.2
17.5.3
147
8161D-AVR-10.9
17.6
COMnx1
COMnx0
FOCnx
Waveform
Generador
Q
1
OCnx
D
DATOS DE
BUS
OCnx
Perno
0
PORT
DDR
clk I / O
La funcin de puerto de E / S generales es invalidada por la salida de comparacin (OC2x) de la forma de onda
Generador si alguna de las COM2x1: se establecen los bits 0. Sin embargo, la direccin OC2x pines (entrada o salida
put) todava est controlada por el registro de direccin de datos (DDR) para el pin del puerto. La Direccin de Datos
Registrar poco para el pasador OC2x (DDR_OC2x) se debe establecer como salida antes de que el valor OC2x es visible en el pasador. La funcin de anulacin puerto es independiente del modo de forma de onda Generation.
El diseo de la lgica pin de salida de comparacin permite la inicializacin del estado OC2x antes de la salida
put est habilitada. Tenga en cuenta que algunos COM2x1: ajustes de 0 bits estn reservados para ciertos modos de
operacin. Vea la seccin "17.11" en la pgina 158.
148
8161D-AVR-10.9
Un cambio de la COM2x1: 0 bits estado tendr efecto en el primer partido despus de comparar los bits son
por escrito. Para los modos no-PWM, la accin puede ser forzada a tener efecto inmediato mediante el uso de la
Pedacitos estroboscpicas FOC2x.
17.7
Modos de funcionamiento
El modo de funcionamiento, es decir, el comportamiento del temporizador / contador y la salida Comparar pines, es
definido por la combinacin del modo de forma de onda Generacin (WGM22: 0) y comparar salida
modo (COM2x1: 0) bits. Los bits de modo de comparacin de salida no afectan a la secuencia de conteo,
mientras que los bits de modo Waveform Generacin hacen. El COM2x1: 0 bits controlan si el PWM salida
put generada debe ser invertida o no (invertida o PWM no invertido). Para los modos no PWM
la COM2x1: 0 bits de control si la salida se debe establecer, borra, o alternar en una comparacin
partido (Ver Seccin "17.6" en la pgina 148.).
Para obtener informacin detallada momento consulte "Timer / Contador diagramas de tiempo" en la pgina 153.
17.7.1
Modo Normal
El modo ms simple de funcionamiento es el modo normal (WGM22: 0 = 0). En este modo el conteo
direccin es siempre hacia arriba (incremento), y ningn contador clara se realiza. El contador simplemente
sobrecostos cuando pasa a su valor de 8 bits mxima (TOP = 0xFF) y luego se reiniciar desde la parte inferior
tom (0x00). En funcionamiento normal, el / Contador Bandera desbordamiento Timer (TOV2) se encuentra en la misma
ciclo de reloj temporizador como el TCNT2 se convierte en cero. La bandera TOV2 en este caso se comporta como un noveno
bit, excepto que slo se establece, no se aclar. Sin embargo, combinado con el desbordamiento del temporizador de interrupcin
que borra automticamente la Bandera TOV2, la resolucin del temporizador se puede aumentar mediante software.
No hay casos especiales a tener en cuenta en el modo Normal, un nuevo valor del contador se puede escribir
en cualquier momento.
La unidad de salida de comparacin se puede utilizar para generar interrupciones en algn momento dado. El uso de las Salidas
put Comparar generar no se recomienda formas de onda en el modo Normal, ya que esta voluntad
ocupar demasiado del tiempo de CPU.
17.7.2
El diagrama de tiempos para el modo de CTC se muestra en Figura 17-5. El valor del contador (TCNT2)
aumenta hasta que se produce una coincidencia comparar entre TCNT2 y OCR2A, y luego contador
(TCNT2) se borra.
149
8161D-AVR-10.9
TCNTn
OCnx
(Cambiar)
Perodo
(COMnx1: 0 = 1)
Una interrupcin puede ser generada cada vez que el valor del contador alcanza el valor TOP mediante el uso de la
Bandera OCF2A. Si la interrupcin se habilita, la rutina de manejador de interrupcin se puede utilizar para la actualizacin
el valor TOP. Sin embargo, el cambio de TOP a un valor cercano a abajo cuando el contador est en marcha
cin con ninguno o un valor bajo prescaler debe hacerse con cuidado ya que el modo de CTC no
tienen la caracterstica de doble buffer. Si el nuevo valor escrito en OCR2A es inferior a la corriente
valor de TCNT2, el contador se perder el partido comparar. El contador entonces tendr que contar hasta
su valor mximo (0xFF) y envolver alrededor a partir de 0x00 antes del partido comparar posible
ocurrir.
Para generar una salida de forma de onda en el modo de CTC, la salida OC2A se puede configurar para cambiar su lgica
nivel en cada partido comparar estableciendo los bits de modo de salida Comparar con el modo de alternar
(COM2A1: 0 = 1). El valor OC2A no ser visible en el pin de puerto a menos que la direccin de datos del
el pasador se establece en la salida. La forma de onda generada tendr una frecuencia mxima de fOC2A =
fclk_I / O / 2 cuando OCR2A se ajusta a cero (0x00). La frecuencia de la forma de onda se define por la siguiente
ecuacin:
F clk_I / S
f OCnx = ------------------------------------------------ 2 N ( 1+OCRnx )
La Nvariable representa el factor de preescala (1, 8, 32, 64, 128, 256, o 1024).
Como para el modo normal de funcionamiento, la Bandera TOV2 se encuentra en el mismo ciclo de reloj temporizador que la
contador cuenta de MAX a 0x00.
17.7.3
150
8161D-AVR-10.9
OCRnx Actualizacin y
Tovn interrupcin Flag Set
TCNTn
OCnx
(COMnx1: 0 = 2)
OCnx
(COMnx1: 0 = 3)
Perodo
La bandera de desbordamiento del temporizador / contador (TOV2) se establece cada vez que el contador llegue a TOP. Si el interrupt est activado, la rutina de controlador de interrupcin se puede utilizar para actualizar el valor de comparacin.
En el modo PWM rpido, la unidad de comparacin permite la generacin de formas de onda PWM en el pin OC2x.
Ajuste del COM2x1: 0 bits para dos producir un PWM no invertida y una salida PWM invertida
se puede generar mediante el establecimiento de la COM2x1: 0 a tres. TOP se define como 0xFF cuando WGM2: 0 = 3,
y OCR2A cuando MGM2: 0 = 7. (Ver Tabla 17-3 en la pgina 158). El valor real OC2x slo se
ser visible en el pin de puerto si la direccin de datos para el pin del puerto est configurado como salida. El PWM de onda
forma se genera mediante el establecimiento (o eliminar) el Registro OC2x en el partido de comparar entre
OCR2x y TCNT2, y la limpieza (o configuracin) del Registro OC2x en el ciclo de reloj temporizador el
contador se borra (cambios de arriba a abajo).
Una frecuencia (con 50% de ciclo de trabajo) de salida de forma de onda en el modo PWM rpido se puede lograr por ajuste
ting OC2x para cambiar su nivel lgico en cada compara partido (COM2x1: 0 = 1). La forma de onda
151
8161D-AVR-10.9
17.7.4
En el modo PWM de fase correcta el contador se incrementa hasta el valor del contador coincide TOP.
Cuando el contador llegue arriba, cambia el sentido de contaje. El valor TCNT2 ser igual
Hacia la parte superior de un ciclo de reloj temporizador. El diagrama de tiempos para el modo PWM de fase correcta se muestra
en Figura 17-7. El valor TCNT2 est en el diagrama de temporizacin se muestra como un histograma para ilustrar
la operacin de doble pendiente. El diagrama incluye salidas no invertidas e invertidas PWM. La
pequeas marcas de lneas horizontales en las laderas TCNT2 representan comparan partidos entre OCR2x
y TCNT2.
OCRnx Actualizacin
TCNTn
OCnx
(COMnx1: 0 = 2)
OCnx
(COMnx1: 0 = 3)
Perodo
La bandera de desbordamiento del temporizador / contador (TOV2) se establece cada vez que el contador llegue a FONDO. La
Interrupcin de la bandera se puede utilizar para generar una interrupcin cada vez que el contador alcanza el fondo
valor.
En el modo PWM de fase correcta, la unidad de comparacin permite la generacin de formas de onda PWM en el
Pin OC2x. Ajuste del COM2x1: 0 bits para dos producir un PWM no invertida. Un PWM invertida
152
8161D-AVR-10.9
F clk_I / S
-f OCnxPCPWM = ---------------N 510
La Nvariable representa el factor de preescala (1, 8, 32, 64, 128, 256, o 1024).
Los valores extremos para el Registro OCR2A representan casos especiales cuando se genera un PWM
forma de onda de salida en el modo PWM de fase correcta. Si el OCR2A se fija igual a abajo, las
salida ser continua baja y si se fija igual a MAX la salida ser continuamente alto para
no invertida modo PWM. Para PWM invertida la salida tendr los valores lgicos opuestos.
En el comienzo del perodo de 2 en Figura 17-7 OCnx tiene una transicin de alta a baja, aunque
No existe Compare Match. El punto de esta transicin es garantizar la simetra alrededor llas
TOM. Hay dos casos que dan una transicin sin Partido Comparar.
OCR2A cambia su valor de MAX, como en Figura 17-7. Cuando el valor es OCR2A MAX el
OCn valor pin es el mismo que el resultado de un conteo regresivo comparar partido. Para asegurar
simetra alrededor INFERIOR el valor OCn en MAX debe corresponder al resultado de una ascendente
contando Compare Match.
El temporizador empieza a contar a partir de un valor ms alto que el de OCR2A, y por esa razn
no alcanza la comparacin Partido y de ah el cambio OCn que habra sucedido en el camino
arriba.
17.8
clkTn
(ClkI / S / 1)
TCNTn
MAX - 1
MAX
INFERIOR
INFERIOR + 1
Tovn
Figura 17-9 muestra los mismos datos de temporizacin, pero con el prescaler habilitado.
153
8161D-AVR-10.9
clkTn
(ClkI / S / 8)
TCNTn
MAX - 1
MAX
INFERIOR
INFERIOR + 1
Tovn
Figura 17-10 muestra la configuracin de OCF2A en todos los modos excepto el modo CTC.
Figura 17-10. Temporizador / contador Cronograma, Ajuste de OCF2A, con Precontador (fclk_I / S / 8)
clkI / S
clkTn
(ClkI / S / 8)
TCNTn
OCRnx - 1
OCRnx
OCRnx
OCRnx + 1
OCRnx + 2
OCRnx Valor
OCFnx
clkTn
(ClkI / S / 8)
TCNTn
(CTC)
OCRnx
TOP - 1
TOP
INFERIOR
INFERIOR + 1
TOP
OCFnx
154
8161D-AVR-10.9
17.9
c.
La principal frecuencia de reloj de la CPU debe ser ms de cuatro veces la frecuencia del oscilador.
Cuando se escribe en uno de los registros TCNT2, OCR2x o TCCR2x, el valor se transfiere a un
registro temporal, y con el seguro despus de dos bordes positivos en TOSC1. El usuario no debe escribir
un nuevo valor antes de que los contenidos del registro temporal se han transferido a su
destino. Cada uno de los cinco registros mencionados tienen su registro temporal individual, la cual
significa que, por ejemplo, escrito a TCNT2 no perturbe una escritura OCR2x en curso. Para detectar que una
traslado al registro destino ha tenido lugar, el registro de estado asncrono - ASSR
se ha implementado.
Al introducir de ahorro de energa o el modo de Reduccin de Ruido ADC despus de haber escrito a TCNT2,
OCR2x o TCCR2x, el usuario debe esperar hasta que el registro escrito se ha actualizado si
Timer / Contador2 se utiliza para despertar el dispositivo. De lo contrario, el MCU entrar en modo de sueo
antes de que los cambios sean efectivos. Esto es particularmente importante si cualquiera de la Salida Compare2
interrupcin se utiliza para despertar el dispositivo, ya que la funcin de comparacin de salida se desactiva durante la
escrito a OCR2x o TCNT2. Si el ciclo de escritura no ha terminado, y el MCU entra en modo de suspensin
antes de la OCR2xUB correspondiente mordi vuelve a cero, el dispositivo nunca recibir un
comparar partido de interrupcin, y la MCU no se despierta.
Si el temporizador / Contador2 se utiliza para despertar el dispositivo a partir de ahorro de energa o Reduccin de Ruido ADC
modo, se deben tomar precauciones si el usuario quiere volver a entrar en uno de estos modos: Si reen modo de suspensin dentro del ciclo TOSC1, la interrupcin ser Inmediatamente ocurrir y la
dispositivo de despertar de nuevo. El resultado es mltiples interrupciones y despertares dentro de un ciclo de TOSC1
desde la primera interrupcin. Si el usuario est en duda si el tiempo antes de volver a entrar de ahorro de energa o
El modo de reduccin de ruido ADC es suficiente, el siguiente algoritmo se puede utilizar para garantizar que
ha transcurrido un ciclo TOSC1:
Espere hasta que la correspondiente actualizacin de la bandera de ocupado en ASSR vuelve a cero.
c.
Cuando se selecciona la operacin asincrnica, el oscilador de 32,768 kHz para Timer / Contador2 es
siempre corriendo, excepto en los modos de Standby Power-abajo y. Despus de un Power-Up Restablecer o Wake
a partir de la Energa-abajo o en el modo de espera, el usuario debe ser consciente del hecho de que este oscilador
podra tardar hasta un segundo para estabilizar. Se recomienda al usuario que esperar por lo menos un
segundos antes de usar temporizador / Contador2 despus del encendido o de atencin de la Energa-abajo o de espera
de modo. El contenido de todos los registros del temporizador / COUNTER2 deben considerarse perdido despus de un
despertador
de la Energa-abajo o en el modo de espera debido a la seal de reloj inestable en el arranque, no importa
si el oscilador est en uso o una seal de reloj se aplica a la patilla TOSC1.
155
8161D-AVR-10.9
TOSC1
clkT2S
10-BIT T / C prescaler
Claro
clkT2S / 8
clkT2S /clkT2S
32
/clkT2S
64
/clkT2S
128 / 256
clkT2S / 1024
AS2
PSRASY
CS20
CS21
CS22
La fuente de reloj temporizador / Contador2 se nombra clkT2S. clkT2S es por defecto conectada al colector
sistema de E / S de reloj CLK IO. Al establecer el bit de AS2 en ASSR, Timer / Contador2 es asncrona
velocidad de reloj de la clavija TOSC1. Esto permite el uso de Timer / Contador2 como un contador de tiempo real
156
8161D-AVR-10.9
157
8161D-AVR-10.9
COM2A1
COM2A0
COM2B1
COM2B0
WGM21
WGM20
R/W
R/W
R/W
R/W
R/W
R/W
TCCR2A
COM2A1
COM2A0
Descripcin
Tabla 17-3 Muestra el COM2A1: 0 La funcionalidad de bit cuando el WGM21: 0 bits se establecen en PWM rpido
de modo.
Tabla 17-3.
COM2A1
COM2A0
Nota:
Descripcin
1. Un caso especial ocurre cuando OCR2A equivale TOP y COM2A1 se establece. En este caso, la Comisin
pare Partido se ignora, pero el conjunto o claro se hace en la parte inferior. Ver "Modo PWM Rpida" en la
pgina 150 para ms detalles.
158
8161D-AVR-10.9
COM2A1
COM2A0
Nota:
Descripcin
1. Un caso especial ocurre cuando OCR2A equivale TOP y COM2A1 se establece. En este caso, la Comisin
pare Partido se ignora, pero el conjunto o claro se hace en la parte superior. Ver "Fase PWM de modo correcto" en la
pgina 152 para ms detalles.
Tabla 17-5.
COM2B1
COM2B0
Descripcin
Tabla 17-6 Muestra el COM2B1: 0 La funcionalidad de bit cuando el WGM22: 0 bits se establecen en PWM rpido
de modo.
Tabla 17-6.
COM2B1
COM2B0
Descripcin
Reservado
159
8161D-AVR-10.9
1. Un caso especial ocurre cuando OCR2B equivale TOP y COM2B1 se establece. En este caso, la Comisin
pare Partido se ignora, pero el conjunto o claro se hace en la parte inferior. Ver "Fase PWM correcta
Modo "en la pgina 152 para ms detalles.
Tabla 17-7 muestra la COM2B1: 0 La funcionalidad de bit cuando el WGM22: 0 bits se ponen a la fase correspondiente
el modo PWM rect.
Comparar Modo de salida, Fase Modo PWM correcta(1)
Tabla 17-7.
COM2B1
COM2B0
Reservado
Nota:
Descripcin
1. Un caso especial ocurre cuando OCR2B equivale TOP y COM2B1 se establece. En este caso, la Comisin
pare Partido se ignora, pero el conjunto o claro se hace en la parte superior. Ver "Fase PWM de modo correcto" en la
pgina 152 para ms detalles.
Tabla 17-8.
TOP
Actualizacin
OCRx en
Inmediato
Modo
WGM2
WGM1
WGM0
Normal
0xFF
PWM, Fase
Correcto
0xFF
CTC
PWM rpido
Notas:
OCRA
TOP
Bandera TOV
Ubicado en(1) (2)
MAX
INFERIOR
Inmediato
MAX
0xFF
INFERIOR
MAX
Reservado
PWM, Fase
Correcto
OCRA
TOP
INFERIOR
Reservado
PWM rpido
OCRA
INFERIOR
TOP
1. MAX = 0xFF
2. INFERIOR = 0x00
160
8161D-AVR-10.9
17.11.2
FOC2A
FOC2B
WGM22
CS22
CS21
CS20
Lectura / Escritura
R/W
R/W
Valor inicial
(0xB1)
TCCR2B
Un estroboscpico FOC2A no generar ninguna interrupcin, ni va a borrar el temporizador en el modo CTC usando
OCR2A como TOP.
El bit FOC2A siempre se lee como cero.
Bit 6 - FOC2B: Fuerza de comparacin de salida B
El bit FOC2B slo se activa cuando los bits WGM especifican un modo no PWM.
Sin embargo, para asegurar la compatibilidad con dispositivos futuros, este bit debe ponerse a cero cuando
TCCR2B se escribe cuando se trabaja en modo PWM. Al escribir un uno lgico en el bit FOC2B,
una inmediata Comparar Partido es forzado en la unidad de forma de onda Generacin. La salida es OC2B
cambiado de acuerdo a su COM2B1: ajuste 0 bits. Tenga en cuenta que el bit de FOC2B se implementa como una
estroboscpica. Por lo tanto, es el valor presente en el COM2B1: 0 bits que determina el efecto de la
forzado comparar.
Un estroboscpico FOC2B no generar ninguna interrupcin, ni va a borrar el temporizador en el modo CTC usando
OCR2B como TOP.
El bit FOC2B siempre se lee como cero.
Bits 5: 4 - Res: Bits Reservados
Estos bits estn reservados bits en la ATmega48PA / 88PA / 168PA / 328P y siempre lea como
cero.
161
8161D-AVR-10.9
Tabla 17-9.
CS22
CS21
CS20
Descripcin
Si los modos de pines externos se utilizan para el Timer / Counter0, las transiciones en el reloj T0 pin voluntad del
contador incluso si el pasador est configurado como una salida. Esta caracterstica permite el control del software de la
contando.
17.11.3
Lectura / Escritura
Valor inicial
TCNT2 [7: 0]
(0xB2)
TCNT2
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
El temporizador / contador Registro da acceso directo, tanto para operaciones de lectura y escritura, a la
Unidad de temporizador / contador de 8 bits mostrador. Escribiendo a los bloques TCNT2 Registro (elimina) la comparacin
Coinciden en el siguiente reloj temporizador. Modificacin del contador (TCNT2), mientras que el contador se est ejecutando,
introduce un riesgo de perder un partido de comparacin entre TCNT2 y los Registros OCR2x.
17.11.4
Lectura / Escritura
Valor inicial
OCR2A [7: 0]
(0xB3)
OCR2A
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
La salida de comparacin registro A contiene un valor de 8 bits que se compara continuamente con el
valor del contador (TCNT2). Un partido se puede utilizar para generar una salida Comparar interrumpir, o para
generar una salida de forma de onda en el pin OC2A.
17.11.5
Lectura / Escritura
Valor inicial
OCR2B [7: 0]
(0xB4)
OCR2B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
La salida de comparacin Registro B contiene un valor de 8 bits que se compara continuamente con el
valor del contador (TCNT2). Un partido se puede utilizar para generar una salida Comparar interrumpir, o para
generar una salida de forma de onda en el pin OC2B.
162
8161D-AVR-10.9
(0x70)
OCIE2B
OCIE2A
TOIE2
Lectura / Escritura
R/W
R/W
R/W
Valor inicial
TIMSK2
Bit 1 - OCIE2A: Temporizador / Contador2 salida Comparar Partido Una habilitacin de interrupcin
Cuando el bit OCIE2A se escribe en uno y el bit I en el Registro de Estado se establece (uno), la
Timer / Contador2 Comparar coinciden con una interrupcin est habilitada. Se ejecuta la interrupcin correspondiente
si un partido comparar en el Timer / Contador2 se produce, es decir, cuando el bit OCF2A se encuentra en el Timer / Conter 2 de interrupcin de la bandera de Registro - TIFR2.
0x17 (0x37)
OCF2B
OCF2A
TOV2
Lectura / Escritura
R/W
R/W
R/W
Valor inicial
TIFR2
163
8161D-AVR-10.9
(0xB6)
EXCLK
AS2
TCN2UB
Lectura / Escritura
R/W
R/W
Valor inicial
OCR2AUB
2
OCR2BUB
1
TCR2AUB
0
TCR2BUB
ASSR
Si una escritura se realiza para cualquiera de los cinco Timer / COUNTER2 Registros mientras que su actualizacin es ocupado
bandera
establece, el valor actualizado podra corromperse y causar una interrupcin involuntaria que se produzca.
164
8161D-AVR-10.9
17.11.9
0x23 (0x43)
TSM
PSRASY
PSRSYNC
Lectura / Escritura
R/W
R/W
R/W
Valor inicial
GTCCR
165
8161D-AVR-10.9
Caractersticas
18.2
Visin de conjunto
La Interfaz Perifrico Serial (SPI) permite una alta velocidad de transferencia de datos sncrona entre el
ATmega48PA / 88PA / 168PA / 328P y los dispositivos perifricos o entre varios dispositivos AVR.
El USART tambin se puede utilizar en modo maestro SPI, consulte "USART en modo SPI" en la pgina 204. La
PRSPI bit en "Minimizar el consumo de energa" en la pgina 42 debe ser escrito a cero para permitir SPI
mdulo.
Figura 18-1. SPI Diagrama de bloques(1)
DIVISOR
/ 2/4/8/16/32/64/128
SPI2X
SPI2X
Nota:
1. Consulte Figura 1-1 en la pgina 2, y Tabla 13-3 en la pgina 82 para SPI colocacin de los clavos.
166
8161D-AVR-10.9
Cuando se configura como un Maestro, la interfaz SPI no tiene control automtico de la lnea SS. Este
debe ser manejado por el software de usuario antes de la comunicacin puede comenzar. Cuando se hace esto, escribiendo una
byte en el registro de datos SPI inicia el generador de reloj SPI, y el hardware cambia el ocho
bits en el Esclavo. Despus de cambiar un byte, el generador de reloj SPI se detiene, estableciendo el final de
Transmisin de la bandera (SPIF). Si el SPI interrupcin Activar bit (SPIE) en el Registro PEACC se establece, un
Se solicita de interrupcin. El Maestro puede continuar cambiando el siguiente byte escribiendo en SPDR, o
sealar el final del paquete tirando alto el Slave Select, lnea SS. El ltimo byte entrante ser
mantenido en el Registro Buffer para su uso posterior.
Cuando se configura como un esclavo, la interfaz SPI permanecer dormir con MISO tri-declar siempre
como el pin SS es impulsado alta. En este estado, el software puede actualizar el contenido de los datos SPI
Registrar, SPDR, pero los datos no se desplazarn a cabo por impulsos de reloj de entrada en el pin SCK
hasta que el pasador SS es conducido bajo. Como un byte ha sido completamente cambiado, el final de la transmisin
Bandera, SPIF se establece. Si el SPI Interrupt Enable bit, SPIE, en el Registro PEACC se establece, una interrupcin
se solicita. El Esclavo podr seguir comercializando nuevos datos a ser enviados al SPDR antes de leer
los datos entrantes. El ltimo byte de entrada se mantendr en el Registro Buffer para su uso posterior.
SHIFT
HABILITAR
El sistema es sencillo almacenar en el sentido de transmisin y doble memoria intermedia en el recibir direccin
cin. Esto significa que los bytes a transmitir no se puede escribir al Registro SPI datos antes
se completa todo el ciclo de cambio. Cuando la recepcin de datos, sin embargo, un carcter recibido debe ser
leer desde el registro de datos SPI antes del siguiente carcter se ha desplazado por completo en. TRARIO
De otra, el primer byte se pierde.
En el modo SPI esclavo, la lgica de control se muestra la seal de entrada del pin SCK. Para asegurar
correcta toma de muestras de la seal de reloj, los perodos de alta y baja mnimos deben ser:
Perodos Mnima: ms de 2 ciclos de reloj de la CPU.
Los altos perodos: ms de 2 ciclos de reloj de la CPU.
167
8161D-AVR-10.9
Nota:
MOSI
Entrada
MISO
Entrada
SCK
Entrada
SS
Entrada
Ver "Funciones alternativas de Puerto B" en la pgina 82 para una descripcin detallada de cmo definir el
direccin del usuario define pines SPI.
Los siguientes ejemplos de cdigo muestran cmo inicializar el SPI como Maestro y cmo realizar una
transmisin simple. DDR_SPI en los ejemplos se debe reemplazar por la Direccin de datos real
Registrar el control de los pines SPI. DD_MOSI, DD_MISO y DD_SCK deben ser sustituidos por el
los bits de direccin de datos reales para estos pines. Por ejemplo si MOSI se coloca en el pin PB5, reemplace DD_MOSI
con DDB5 y DDR_SPI con DDRB.
168
8161D-AVR-10.9
DDR_SPI, r17
SPDR, r16
Wait_Transmit:
; Espere a que la transmisin completa
r16, SPSR
en
sbrsr16, SPIF
rjmp Wait_Transmit
enriar
Cdigo C Ejemplo(1)
vaco SPI_MasterInit (void)
{
/ * Salida Ajuste MOSI y SCK, todos los dems de entrada *
/
DDR_SPI = (1 << DD_MOSI) | (1 << DD_SCK);
169
8161D-AVR-10.9
DDR_SPI, r17
; Activar SPI
LDI
fuera
PEACC, r17
enriar
SPI_SlaveReceive:
; Espere a que la recepcin completa
sbis SPSR, SPIF
rjmp SPI_SlaveReceive
; Lee recibi datos y retorno
r16, SPDR
en
enriar
Cdigo C Ejemplo(1)
vaco SPI_SlaveInit (void)
{
/ * Salida Ajuste MISO, todos los dems de
entrada * /
DDR_SPI = (1 << DD_MISO);
/ * Activar SPI * /
PEACC = (1 << SPE);
}
170
8161D-AVR-10.9
18.3
SS Pin Funcionalidad
18.3.1
Modo Esclavo
Cuando el SPI se configura como un esclavo, el pasador Slave Select (SS) es siempre de entrada. Cuando SS es
celebrada bajo, el SPI se activa, y el miso se convierte en una salida si est configurado de modo por el usuario. Todos
otros pines son entradas. Cuando se acciona SS alta, todos los pines son entradas, y el SPI es pasiva, que
significa que no recibir los datos entrantes. Tenga en cuenta que la lgica SPI se restablecer una vez que el pin SS
es excitada alta.
El pin SS es til para la sincronizacin de paquetes / byte para mantener el contador sncrono poco esclavo
con el generador de reloj maestro. Cuando el pin SS es excitada alta, el esclavo SPI har inmediatamente
restablecer el envo y recepcin de lgica, y soltar cualquier dato parcialmente recibidos en el registro de desplazamiento.
18.3.2
Modo Maestro
Cuando el SPI se configura como un Maestro (MSTR en PEACC se establece), el usuario puede determinar el
direccin del pin SS.
Si SS est configurado como una salida, el pasador es un pin de salida general que no afecta a la SPI
sistema. Tpicamente, el pasador estar conduciendo el pin SS del SPI esclavo.
Si SS est configurado como entrada, se debe en alto para garantizar la operacin Maestro SPI. Si el pasador SS
es accionado por el circuito de baja perifrica cuando el SPI est configurado como un Maestro con el pasador de SS
definida como una entrada, el sistema de SPI interpreta esto como otro maestro seleccionando el SPI como una
esclavo, y comenzar a enviar los datos a la misma. Para evitar la contencin de bus, el sistema SPI tiene la siguiente
acciones:
1. El bit MSTR en PEACC se borra y el sistema SPI se convierte en un esclavo. Como resultado de
el SPI convertirse en un esclavo, los pasadores MOSI y SCK convertirse entradas.
2. La bandera SPIF en SPSR se establece, y si la interrupcin SPI est habilitado, y el bit I en SREG es
conjunto, se ejecuta la rutina de interrupcin.
Transmisin SPI As, impulsado por interrumpir cuando se utiliza en modo maestro, y no existe una posibilidad de que SS es conducido bajo, la interrupcin debe comprobar siempre que el bit MSTR todava est establecido. Si el
MSTR poco ha sido aprobado por un esclavo seleccionar, debe ser establecido por el usuario para volver a habilitar SPI Maestro
de modo.
18.4
Modos de Datos
Hay cuatro combinaciones de fase SCK y la polaridad con respecto a los datos de serie, que son
determinado por los bits de control CPHA y CPOL. Los formatos de transferencia de datos SPI se muestran en Figura
18-3 y Figura 18-4 en la pgina 172. Los bits de datos se desplazan hacia fuera y se enclava en el bordes opuestos
la seal SCK, asegurando tiempo suficiente para que las seales de datos se estabilice. Esto se ve claramente por resumen
marizing Tabla 18-3 en la pgina 173 y Tabla 18-4 en la pgina 173, como se hace en Tabla 18-2.
Tabla 18-2.
Modos de SPI
Modo SPI
Condiciones
Leading Edge
Borde de salida
CPOL = 0, CPHA = 0
Muestra (Rising)
Configuracin (cada)
CPOL = 0, CPHA = 1
CPOL = 1, CPHA = 0
CPOL = 1, CPHA = 1
Configuracin (Rising)
Muestra (cada)
Configuracin (cada)
Muestra (cada)
Configuracin (Rising)
Muestra (Rising)
171
8161D-AVR-10.9
SS
Bit 6
Bit 1
Bit 5
Bit 2
Bit 4
Bit 3
Bit 3
Bit 4
Bit 2
Bit 5
Bit 1
Bit 6
LSB
MSB
SS
MSB
LSB
Bit 6
Bit 1
Bit 5
Bit 2
Bit 4
Bit 3
Bit 3
Bit 4
Bit 2
Bit 5
Bit 1
Bit 6
LSB
MSB
172
8161D-AVR-10.9
18.5
Registro Descripcin
18.5.1
0x2C (0x4C)
SPIE
SPE
DORD
MSTR
CPOL
CPHA
SPR1
SPR0
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
PEACC
Tabla 18-3.
CPOL Funcionalidad
CPOL
Leading Edge
Borde posterior
Creciente
Que cae
Que cae
Creciente
Tabla 18-4.
CPHA Funcionalidad
CPHA
Leading Edge
Borde posterior
Muestra
Preparar
Preparar
Muestra
173
8161D-AVR-10.9
Tabla 18-5.
18.5.2
SPI2X
SPR1
SPR0
SCK Frecuencia
Fosc / 4
fosc / 16
fosc / 64
fosc / 128
fosc / 2
Fosc / 8
fosc / 32
fosc / 64
SPIF
WCOL
SPI2X
Lectura / Escritura
R/W
Valor inicial
0x2D (0x4D)
SPSR
La interfaz SPI en el ATmega48PA / 88PA / 168PA / 328P tambin se utiliza para la memoria del programa
y la descarga de EEPROM o carga. Ver pgina 308 para la programacin de serie y verificacin.
174
8161D-AVR-10.9
18.5.3
0x2E (0x4E)
MSB
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
LSB
SPDR
Indefinido
El registro de datos SPI es una lectura / escritura registro utilizado para la transferencia de datos entre el Registro Archivo
y Registro del SPI Shift. La escritura en el registro inicia la transmisin de datos. Lectura del registro
ter hace que el registro de desplazamiento Recibir bfer para ser ledo.
175
8161D-AVR-10.9
19. USART0
19.1
Caractersticas
19.2
Visin de conjunto
El sncrono universal y el receptor de serie asncrono y transmisor (USART) es un
altamente flexible dispositivo de comunicacin serial.
El USART0 tambin se puede utilizar en el modo Maestro SPI, consulte "USART en modo SPI" en la pgina 204.
El bit de energa Reduccin USART, PRUSART0, en "Minimizar el consumo de energa" en la pgina 42
debe estar deshabilitado escribiendo un cero lgico a ella.
Un diagrama de bloques simplificado del transmisor USART se muestra en Figura 19-1 en la pgina 177. UPC
acceso de E / S Registros y pines I / O aparece en negrita.
Las cajas de trazos en el diagrama de bloques se separan las tres partes principales de la USART (lista de los
la parte superior): Generador de reloj, el transmisor y el receptor. Registros de control son compartidos por todas las unidades.
La lgica de generacin de reloj consta de lgica de sincronizacin para la entrada de reloj externo utilizado por
esclavo operacin sncrona, y el generador de velocidad en baudios. El XCKn (Reloj Transferencia) pin es
slo utilizado por el modo de transferencia sncrono. El transmisor consta de un solo buffer de escritura, una
Registro de serie Shift, generador de paridad y la lgica de control para el manejo de diferentes for- marco de serie
esteras. El buffer de escritura permite una transferencia continua de datos sin ningn retardo entre tramas.
El receptor es la parte ms compleja del mdulo USART debido a su recuperacin de reloj y datos
unidades. Las unidades de recuperacin se utilizan para la recepcin de datos asncrono. Adems de la recuperacin
unidades, el receptor incluye una paridad lgica Checker, Control, un registro de desplazamiento y un nivel dos
bfer de recepcin (UDRn). El receptor es compatible con los mismos formatos de trama como el transmisor, y
puede detectar error de trama, Data rebasamiento y errores de paridad.
176
8161D-AVR-10.9
Generador de reloj
UBRRn [H: L]
OSC
SYNC LGICA
PIN
CONTROL DE
XCKn
Transmisor
TX
CONTROL DE
UDRn (Transmisin)
PARIDAD
GENERADOR
DATOS DE
BUS
PIN
CONTROL DE
TxDn
Receptor
Nota:
19.3
RX
CONTROL DE
DATOS
RECUPERACIN
PIN
CONTROL DE
RxDn
PARIDAD
INSPECTOR
UDRn (Recibir)
UCSRnA
RELOJ
RECUPERACIN
UCSRnB
UCSRnC
1. Consulte Figura 1-1 en la pgina 2 y Tabla 13-9 en la pgina 88 para USART0 colocacin de los clavos.
Generacin de reloj
La lgica de generacin de reloj genera el reloj base para el transmisor y el receptor. La
USART soporta cuatro modos de funcionamiento: normal reloj asncrono asncrono doble velocidad
sncrona, Domine modo sncrono sncrono y Esclavo. El bit UMSELn en USART
Control y Registro de Estado C (UCSRnC) selecciona entre asncronos y sncronos
operacin. Velocidad doble (modo asncrono solamente) es controlado por el U2Xn encontrado en el
UCSRnA Registro. Al utilizar el modo sincrnico (UMSELn = 1), la Direccin de Registro de Datos
para el pasador XCKn (DDR_XCKn) controla si la fuente de reloj es (modo Master) interna o
(modo esclavo) externo. El pasador XCKn slo se activa cuando se utiliza el modo sincrnico.
177
8161D-AVR-10.9
UBRRn + 1
/2
/4
/2
0
1
0
OSC
txclk
1
DDR_XCKn
xcki
XCKn
Perno
Sincronizacin
Registrarse
Borde
Detector
0
UMSELn
xcko
DDR_XCKn
UCPOLn
1
rxclk
0
Descripcin de la seal:
19.3.1
txclk
rxclk
xcki
Entrada del pin XCK (seal interna). Se utiliza para el funcionamiento esclavo sncrono.
xcko
Salida de reloj a pin XCK (seal interna). Se utiliza para maestro sncrono
operacin.
fosc
178
8161D-AVR-10.9
Modo de funcionamiento
f OSC
f OSC
-BAUDIO = ------UBRRn = -------------------------------------------------------- - 1
16 (UBRRn +1)
16BAUD
Nota:
f OSC
f OSC
-BAUDIO = ------UBRRn = ------------------------------------------------- - 1
8(UBRRn +1)
8BAUD
f OSC
f OSC
BAUDIO = ----------------------------------- UBRRn = ------------------- - 1---2BAUD
2(UBRRn +1)
BAUDIO
Fosc
UBRRn
Algunos ejemplos de valores UBRRn para algunas frecuencias de reloj del sistema se encuentran en Tabla 19-9
(Ver pgina 200).
19.3.2
179
8161D-AVR-10.9
Reloj externo
Sincronizacin externa se usa por los modos esclavos sncronos de operacin. La descripcin de esta
seccin se refiere a Figura 19-2 para ms detalles.
Entrada de reloj externa del pasador de XCKn es muestreada por un registro de sincronizacin para minimizar la
posibilidad de meta-estabilidad. La salida del registro de sincronizacin debe pasar a travs
un detector de bordes antes de que pueda ser utilizado por el transmisor y el receptor. Este proceso introduces dos CPU perodo de reloj de retardo y por lo tanto la frecuencia de reloj mxima XCKn externa
est limitada por la siguiente ecuacin:
f OSC
f XCK <---------4
Tenga en cuenta que fosc depende de la estabilidad de la fuente de reloj del sistema. Por lo tanto, se recomienda
aadir un poco de margen para evitar la posible prdida de datos debido a las variaciones de frecuencia.
19.3.4
XCK
RxD / TxD
Muestra
UCPOL = 0
XCK
RxD / TxD
Muestra
El UCPOLn mordi UCRSC selecciona qu flanco de reloj XCKn se utiliza para el muestreo de datos y que es
utilizado para el cambio de datos. Como Figura 19-3 muestra, cuando UCPOLn es cero los datos sern cambiadas en
flanco ascendente XCKn y muestreada en flanco descendente XCKn. Si UCPOLn se establece, se cambiarn los datos
en flanco descendente XCKn y muestreada en el flanco ascendente XCKn.
19.4
Formatos de trama
Un marco de serie se define como un carcter de bits de datos con bits de sincronizacin (iniciar y detener
bits) y, opcionalmente, un bit de paridad para la comprobacin de errores. El USART acepta todas las 30 combinaciones de
los siguientes formatos de trama como vlidos:
1 bit de inicio
5, 6, 7, 8, o 9 bits de datos
no, par o impar bit de paridad
1 o 2 bits de parada
180
8161D-AVR-10.9
(IDLE)
St
[5]
[6]
[7]
[8]
[P]
Sp1 [Sp2]
(St / IDLE)
St
(N)
Sp
IDLE
No hay transferencias en la lnea de comunicacin (RxDn o TxDn). Una lnea libre debe ser
alta.
El formato de trama utilizado por el USART es fijado por el UCSZn2: 0, UPMn1: 0 y los bits en USBSn
UCSRnB y UCSRnC. El receptor y el transmisor utilizan el mismo ajuste. Tenga en cuenta que el cambio
la configuracin de cualquiera de estos bits corromper toda la comunicacin en curso, tanto para el receptor y
Transmisor.
El tamao USART Carcter (UCSZn2: 0) Los bits de seleccionar el nmero de bits de datos en el marco. La
Modo de paridad USART (UPMn1: 0) Los bits de habilitar y configurar el tipo de bit de paridad. La seleccin entre
uno o dos bits de parada se realiza por el USART Bit de parada Seleccione (USBSn) bits. El receptor ignora
el segundo bit de parada. Una FE (error de trama) ser, por tanto, slo pueden detectarse en los casos en que el
primer bit de parada es cero.
19.4.1
Peven
Podd
dn
Si se utiliza, el bit de paridad se encuentra entre el ltimo bit de datos y el primer bit de parada de un bastidor de serie.
181
8161D-AVR-10.9
USART inicializacin
El USART tiene que ser inicializado antes de cualquier comunicacin puede tener lugar. El pro- inicializacin
proceso que normalmente consiste en establecer la velocidad de transmisin, el establecimiento de formato de trama y permitiendo
la
Transmisor o el receptor dependiendo del uso. Para interrupcin impulsado operacin USART, la
Global de la bandera de interrupcin debe borrarse (y las interrupciones deshabilitadas a nivel mundial) al hacer la
inicializacin.
Antes de hacer una re-inicializacin con velocidad de transmisin cambiada o formato de cuadro, asegurarse de que no hay
transmisiones en curso durante el perodo se cambian los registros. La bandera TXCn se puede utilizar
para comprobar que el transmisor ha completado todas las transferencias, y la bandera RXC puede ser utilizado para
compruebe que no hay datos ledos en el bfer de recepcin. Tenga en cuenta que la bandera debe ser TXCn
despejado antes de cada transmisin (antes de UDRn est escrito) si se utiliza para este propsito.
Los ejemplos de cdigo de inicializacin USART sencilla muestran un montaje y una funcin C
la que son iguales en la funcionalidad. Los ejemplos asumen operacin asincrnica mediante votacin
(No hay interrupciones habilitadas) y un formato de marco fijo. La velocidad de transmisin se da como un parmetro de la
funcin.
Para el cdigo de la asamblea, se supone que el parmetro de velocidad de transmisin que se almacena en los r17: r16
Registros.
182
8161D-AVR-10.9
UBRRnL, r16
fuera
UCSRnB, r16
fuera
UCSRnC, r16
enriar
Cdigo C Ejemplo(1)
FOSC #define 1843200 // Velocidad del reloj
#define BAUDIOS 9600
#define MYUBRR FOSC / 16 / Baud-1
vaco principal ( vaco )
{
...
USART_Init (MYUBRR)
...
}
vaco USART_Init ( unsigned int ubrr)
{
/ * Set velocidad de transmisin *
/
UBRR0H = (unsigned char) (ubrr >> 8);
UBRR0L = (unsigned char) ubrr;
Activar el receptor y el transmisor * /
UCSR0B = (1 << RXEN0) | (1 << TXEN0);
/ * Establecer formato de trama: 8Datos basados, poco 2stop * /
UCSR0C = (1 << USBS0) | (3 << UCSZ00);
}
Nota:
Ms rutinas de inicializacin avanzados pueden hacer que incluyen formato de trama como parmetros, disinterrupciones capaces y as sucesivamente. Sin embargo, muchas aplicaciones utilizan una configuracin fija de la transmisin y
registros de control, y para estos tipos de aplicaciones, el cdigo de inicializacin se puede colocar directamente
en la rutina principal, o combinarse con cdigo de inicializacin para otros mdulos de E / S.
19.6
183
8161D-AVR-10.9
Los siguientes ejemplos de cdigo muestran una funcin de transmisin USART simple basado en el sondeo de la
Registro de datos vaca (UDREn) Bandera. Cuando el uso de marcos con menos de ocho bits, la ms sigbits de significa- por escrito a la UDRn se ignoran. El USART tiene que ser inicializado antes de la funcin
puede ser utilizado. Para el cdigo de la asamblea, los datos a enviar se supone que se almacena en el registro
R16
UDRn, r16
enriar
Cdigo C Ejemplo(1)
vaco USART_Transmit ( unsigned char datos)
{
/ * Espere buffer de transmisin vaca * /
mientras (! (UCSRnA y (1 << UDREn)))
;
/ * Poner los datos en el bfer, enva los datos * /
UDRn = datos;
}
Nota:
La funcin simplemente espera a que el buffer de transmisin est vaco marcando la bandera UDREn,
antes de cargarlo con los nuevos datos a transmitir. Si se utiliza el registro de datos de interrupcin vaco,
la rutina de interrupcin escribe los datos en el buffer.
19.6.2
184
8161D-AVR-10.9
UCSRnB, TXB8
SBRC r17,0
sbi
UCSRnB, TXB8
UDRn, r16
enriar
1. Estas funciones de transmisin estn escritos para ser funciones generales. Ellos pueden ser optimizados si el contiendas de los UCSRnB es esttica. Por ejemplo, slo se utiliza el bit TXB8 del Registro UCSRnB
despus de la inicializacin.
2. Consulte "Acerca de Ejemplos de cdigo" en la pgina 7.
El noveno bit se puede utilizar para indicar una trama de direccin cuando se utilizan mltiples procesador de comunicacin
modo de catin o para el manejo de sincronizacin como, por ejemplo otro protocolo.
19.6.3
185
8161D-AVR-10.9
Cuando la transmisin Compite habilitacin de interrupcin (TXCIEn) poco en UCSRnB se establece, el USART
Transmitir completa de interrupcin se ejecutar cuando la bandera TXCn cuaja (siempre que
interrupciones globales estn habilitadas). Cuando se utiliza la interrupcin de la transmisin completa, la interrupcin Handling rutina no tiene que borrar la bandera TXCn, esto se hace automticamente cuando la interrupcin
se ejecuta.
19.6.4
Generador de paridad
El generador de paridad calcula el bit de paridad para los datos de trama en serie. Cuando el bit de paridad est habilitada
(UPMn1 = 1), la lgica de control del transmisor inserta el bit de paridad entre el ltimo bit de datos y la
primer bit de parada de la trama que se enva.
19.6.5
19.7
19.7.1
El siguiente ejemplo de cdigo muestra un sencillo USART funcin de recepcin basado en el sondeo de la
Recibe completo (RXCn) Bandera. Cuando el uso de marcos con menos de ocho bits ms significativos
bits de los datos ledos de la UDRn estarn enmascarados a cero. El USART tiene que ser inicializado
antes de la funcin se puede utilizar.
186
8161D-AVR-10.9
r16, UDRn
enriar
Cdigo C Ejemplo(1)
unsigned char USART_Receive ( vaco )
{
/ * Espere a que los datos que se reciban * /
mientras (! (UCSRnA y (1 << RXCn)))
;
/ * Obtener y devolver los datos recibidos de bfer * /
retorno UDRn;
}
Nota:
La funcin simplemente espera a que los datos estn presentes en el bfer de recepcin marcando la bandera RXCn,
antes de leer el bfer y devolver el valor.
19.7.2
El ejemplo de cdigo siguiente se muestra un sencillo USART funcin que maneja tanto nueve bits recibir
personajes y los bits de estado.
187
8161D-AVR-10.9
r18, UCSRnA
en
r17, UCSRnB
en
r16, UDRn
LDI
USART_ReceiveNoError:
;Se filtra la novena poco, y luego volver
LSR
r17
Cdigo C Ejemplo(1)
unsigned int USART_Receive ( vaco )
{
unsigned char estado, Resh, RESL;
/ * Espere a que los datos que se reciban * /
mientras (! (UCSRnA y (1 << RXCn)))
;
/ * Obtener el estado y noveno bit, entonces los datos * /
/ * de tampn * /
estado = UCSRnA;
Resh = UCSRnB;
RESL = UDRn;
/ * Si el error, devuelve -1 * /
si (Estado y (1 << FEn) | (1 << ODRn) | (1 << Upen))
retorno -1;
/ * Se filtra la novena poco, y luego volver * /
Resh = (Resh >> 1) y 0x01;
retorno ((Resh << 8) | RESL);
}
Nota:
El ejemplo funcin de recepcin lee todas las E / S de registros en el Registro de archivos antes de cualquier computacin se hace. Esto da una ptima utilizacin del buffer de recepcin ya que la lectura de almacn intermedio voluntad
ser libre de aceptar nuevos datos lo antes posible.
188
8161D-AVR-10.9
19.7.4
El error de trama (FEN) bandera indica el estado de la primera bit de parada de la siguiente trama legible
almacenada en el bfer de recepcin. El Flag Fen es cero cuando el bit de parada se ha ledo correctamente (como uno),
y la bandera FEn ser uno cuando el bit de parada era incorrecta (cero). Esta bandera se puede utilizar para
deteccin de condiciones fuera de sincrona, detectando condiciones de quiebre y manejo de protocolo. El FEn
Flag no se ve afectada por el ajuste del bit USBSn en UCSRnC ya que el receptor ignora todo,
a excepcin de la primera, los bits de parada. Para la compatibilidad con dispositivos futuros, siempre establecer este bit a cero
al escribir en UCSRnA.
El rebasamiento de Datos (ODRn) Bandera indica la prdida de datos debido a una condicin de bfer lleno receptor. La
Datos rebasamiento se produce cuando el bfer de recepcin est lleno (dos caracteres), es un nuevo personaje esperacin en el Cambio Recibe Registro, y se detecta un nuevo bit de inicio. Si la bandera ODRn se establece all
fue uno o marco ms serial perdido entre el marco de la ltima lectura de UDRn, y el siguiente cuadro
leer UDRn. Para la compatibilidad con dispositivos futuros, siempre escribir este bit a cero al escribir
a UCSRnA. La bandera ODRn se borra cuando la trama recibida fue trasladado con xito de
el registro de desplazamiento en el bfer de recepcin.
El error de paridad (Upen) Bandera indica que el siguiente fotograma en el bfer de recepcin tena una paridad
Error cuando se reciben. Si Comprobacin de paridad no est activado el bit Upen siempre se leer cero. Para
compatibilidad con dispositivos futuros, siempre se establece este bit a cero cuando se escribe a UCSRnA. Para obtener ms
detalles ver "Clculo Bit de paridad" en la pgina 181 y "La paridad ortogrfico" en la pgina 189.
19.7.5
189
8161D-AVR-10.9
19.7.6
19.7.7
r16, UDRn
rjmp USART_Flush
Cdigo C Ejemplo(1)
vaco USART_Flush ( vaco )
{
unsigned char dummy;
mientras (UCSRnA y (1 << RXCn)) maniqu = UDRn;
}
Nota:
19.8
19.8.1
190
8161D-AVR-10.9
IDLE
INICIO
BIT 0
Muestra
(U2X = 0)
10
11
12
13
14
15
16
Muestra
(U2X = 1)
Cuando la lgica de recuperacin de reloj detecta un alto (en reposo) a la baja de transicin (iniciar) en la lnea RxDn, la
iniciar la secuencia de deteccin de bits se inicia. Deje que la muestra 1 denota la primera muestra de cero como se muestra en
la figura. La lgica de recuperacin de reloj a continuacin, utiliza muestras 8, 9 y 10 para el modo Normal, y muestras
ples 4, 5 y 6 para el modo Double Speed (indicado con el nmero de muestras dentro de las cajas en la
figura), para decidir si se recibe un bit de inicio vlida. Si dos o ms de estas tres muestras tienen lgica
niveles altos (la mayora gana), el bit de inicio es rechazado como un pico de ruido y el receptor empieza
buscando el siguiente mayor a menor a la transicin. Sin embargo, si se detecta un bit de inicio vlida, el reloj peracin
lgica ery est sincronizado y la recuperacin de datos puede comenzar. El proceso de sincronizacin es
repetirse para cada bit de inicio.
19.8.2
BIT n
Muestra
(U2X = 0)
10
11
12
13
14
15
16
Muestra
(U2X = 1)
La decisin del nivel lgico del bit recibido se determina haciendo una votacin por mayora de la lgica
valor a las tres muestras en el centro del bit recibido. Las muestras de centros se enfatizan
sobre la figura por tener el nmero de muestra dentro de las cajas. El proceso de votacin por mayora se hace como
sigue: Si dos o las tres muestras tienen niveles altos, el bit recibido se ha registrado para ser un 1 lgico.
Si dos o las tres muestras tienen niveles bajos, el bit recibido se ha registrado para ser una lgica 0. Este
proceso de votacin por mayora acta como un filtro de paso bajo para la seal de entrada en el pin RxDn. La
proceso de recuperacin se repite entonces hasta que se recibe una trama completa. Incluyendo el primer bit de parada.
Tenga en cuenta que el receptor slo utiliza el primer bit de parada de una trama.
Figura 19-7 en la pgina 192 muestra el muestreo del bit de parada y el inicio ms temprano posible
del bit de inicio de la siguiente trama.
191
8161D-AVR-10.9
PARADA 1
(A)
(B)
(C)
Muestra
(U2X = 0)
10
0/1
0/1
0/1
Muestra
(U2X = 1)
0/1
La misma votacin por mayora se hace para el bit de parada como se hace para los dems bits de la trama. Si la parada
bit est registrado para tener un valor lgico 0, el error de trama (FEN) Bandera se establecer.
Un nuevo mayor a menor transicin que indica el bit de inicio de un nuevo marco puede venir a la derecha despus de la ltima de
los bits utilizados para la votacin por mayora. Para el modo de velocidad normal, la primera muestra bajo nivel puede estar en
punto marcado (A) en Figura 19-7. Para el modo Double Speed el primer nivel bajo se debe retrasar el
(B). (C) marca un bit de paro de larga duracin. La deteccin temprana bit de inicio influye en el funcionamiento
alcance del receptor.
19.8.3
Las siguientes ecuaciones pueden usarse para calcular la relacin de la velocidad de datos de entrada e interna
velocidad de transmisin receptor.
( D+1) S
( D+2) S
R lento = -------------------------------------R rpido = -------------------------------------(D+1) S +S M
S-1+D S+SF
Suma de tamao de la fuente y el tamao de paridad (D = 5 a 10 bit)
Las muestras por bit. S = 16 para el modo de velocidad normal y S = 8 for Speed Doble
de modo.
SF
Nmero de la muestra utilizada para la primera votacin por mayora. SF = 8 para velocidad normal y SF = 4
para el modo de doble velocidad.
SM
Nmero de muestra Medio utilizado para la votacin por mayora. SM = 9 para la velocidad normal y
SM = 5 para el modo de doble velocidad.
Rslow
es la relacin de la velocidad de datos de entrada ms lento que pueda ser aceptada en relacin con el
velocidad de transmisin receptor. Rfast es la relacin de la velocidad de datos de entrada que puede ser ms
rpido
aceptado en relacin con la velocidad en baudios receptor.
Tabla 19-2 en la pgina 193 y Tabla 19-3 en la pgina 193 listar el error velocidad mxima en baudios receptor
que se puede tolerar. Tenga en cuenta que el modo Normal velocidad tiene mayor tolerancia de la velocidad de transmisin
variaciones.
192
8161D-AVR-10.9
Tabla 19-2.
Recomendado Error mximo Receptor Velocidad de transmisin para el modo de velocidad normal
(U2Xn = 0)
D
# (Datos + Bit de paridad) Rslow (%)
Rfast (%)
Recomendada Max
Error Receptor (%)
93.20
106.67
+ 6.67 / -6,8
3,0
94.12
105.79
+ 5.79 / -5.88
2.5
94.81
105.11
+ 5.11 / -5.19
2,0
95.36
104.58
+ 4.58 / -4.54
2,0
95.81
104.14
+ 4.14 / -4.19
1,5
10
96.17
103.78
+ 3.78 / -3.83
1,5
Tabla 19-3.
Recomendado Error mximo Receptor Velocidad de transmisin para el modo Double Speed
(U2Xn = 1)
D
# (Datos + Bit de paridad) Rslow (%)
Rfast (%)
Recomendada Max
Error Receptor (%)
94.12
105.66
+ 5.66 / -5.88
2.5
94.92
104.92
+ 4.92 / -5.08
2,0
95.52
104,35
+ 4.35 / -4.48
1,5
96.00
103.90
+ 3.90 / -4.00
1,5
96.39
103.53
+ 3.53 / -3.61
1,5
10
96.70
103.23
+ 3.23 / -3.30
1,0
Las recomendaciones del error mximo la velocidad de transmisin del receptor se hizo bajo el supuesto de
cin de que el receptor y el transmisor se divide por igual el error total mximo.
Hay dos fuentes posibles para el error receptores velocidad en baudios. Reloj del sistema del receptor
(XTAL) siempre tendrn cierta inestabilidad menor sobre el rango de tensin de alimentacin y la temperatura
gama tura. Cuando se utiliza un cristal para generar el reloj del sistema, esto rara vez es un problema, pero para una
resonador el reloj del sistema puede diferir ms de 2%, dependiendo de la tolerancia resonadores. La
segunda fuente para el error es ms controlable. El generador de velocidad de transmisin no siempre puede hacer una
divisin exacta de la frecuencia del sistema para obtener la velocidad de transmisin quera. En este caso un valor UBRRn
que da un bajo error aceptable se puede utilizar si es posible.
19.9
Si el receptor est configurado para recibir tramas que contienen de 5 a 8 bits de datos, entonces el primer bit de parada incates si la trama contiene informacin de datos o la direccin. Si el receptor est configurado para marcos con
193
8161D-AVR-10.9
19.9.1
Utilizando MPCMn
Para una MCU para actuar como un maestro MCU, se puede utilizar un formato de trama de caracteres 9 bits (UCSZn = 7). La
noveno bit (TXB8n) se debe establecer cuando una trama de direccin (TXB8n = 1) o borra cuando una trama de datos
(TXB = 0) se est transmitiendo. El MCU esclavo debe en este caso ser configurado para utilizar un carcter de 9 bits
formato de trama.
El siguiente procedimiento se debe utilizar para el intercambio de datos en Comunicacin Multi-procesador
modo:
1. Todo esclavo MCUs estn en modo de comunicacin multi-procesador (MPCMn en
UCSRnA est establecido).
2. El Maestro MCU enva una trama de direccin y todos los esclavos recibir y leer este marco. En
la MCU Esclavo, la Bandera RXCn en UCSRnA se establecern de forma normal.
3. Cada MCU esclavo lee el Registro UDRn y determina si se ha seleccionado. Si es as,
se borra el bit de MPCMn en UCSRnA, de lo contrario espera al siguiente byte de direccin y
mantiene el ajuste MPCMn.
4. El dirigida MCU recibir todas las tramas de datos hasta que se recibe una nueva trama de direccin.
El otro esclavo MCUs, que todava tienen el conjunto de bits MPCMn, ignorar las tramas de datos.
5. Cuando la ltima trama de datos es recibido por el MCU abordado, los conjuntos MCU abordados
el bit y espera MPCMn de un nuevo bloque de direccin de maestro. El proceso entonces
repite de 2.
El uso de cualquiera de los formatos de trama de caracteres de 5 a 8 bits es posible, pero poco prctico ya que el
El receptor debe cambiar entre el uso de N y N + 1 formatos de trama de caracteres. Esto hace completo
funcionamiento dplex difcil ya que el transmisor y el receptor utiliza el tamao de ajuste mismo carcter
ting. Si se utilizan tramas de caracteres de 5 a 8 bits, el transmisor debe estar configurado para utilizar dos bits de parada
(USBSn = 1) desde el primer bit de parada se utiliza para indicar el tipo de trama.
No utilice instrucciones Read-modificacin-escritura (OSE y CBI) para activar o desactivar el bit MPCMn. La
Acciones bits MPCMn la misma E / S de localizacin como la bandera TXCn y esto podra ser accidentalmente
despejado al utilizar instrucciones SBI o ICC.
194
8161D-AVR-10.9
Lectura / Escritura
Valor inicial
RXB [7: 0]
UDRn (Leer)
TXB [7: 0]
UDRn (Write)
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
La transmisin de datos Buffer Register USART y USART recibir datos Buffer Registros comparten la
misma direccin de E / S denomina USART Registro de Datos o UDRn. La transmisin de datos Buffer Reglanistro (TXB) ser el destino de los datos escritos en la ubicacin UDRn Registro. La lectura de la
UDRn Registro ubicacin devolver el contenido del bfer de datos Registro Recibir (RXB).
Para 5-, 6- personajes, o de 7 bits los bits no utilizados superiores sern ignorados por el transmisor y se pusieron a
cero por el receptor.
El buffer de transmisin slo se puede escribir cuando la bandera UDREn en el Registro UCSRnA se establece.
Los datos escritos a UDRn cuando la bandera UDREn no est establecido, ser ignorado por el USART Transmitirter. Cuando se escriben datos en el bfer de transmisin, y el transmisor est activado, el transmisor
se cargarn los datos en la transmisin de registro en el registro de desplazamiento cuando est vaca. Entonces el
los datos se transmiten en serie en el pasador TxDn.
El buffer de recepcin consiste en una FIFO dos niveles. El FIFO cambiar su estado cada vez que el
bfer de recepcin se accede. Debido a este comportamiento del bfer de recepcin, no utilice lectura ModifyEscriba las instrucciones (OSE y CBI) en esta ubicacin. Tenga cuidado al usar instrucciones de la prueba bits
(SBIC y SBIS), ya que estos tambin cambiar el estado de la FIFO.
19.10.2
RXCn
TXCn
UDREn
FEn
ODRn
Upen
U2Xn
MPCMn
Lectura / Escritura
R/W
R/W
R/W
Valor inicial
UCSRnA
195
8161D-AVR-10.9
19.10.3
Lectura / Escritura
Valor inicial
RXCIEn
TXCIEn
UDRIEn
RXENn
TXENn
UCSZn2
RXB8n
TXB8n
R/W
R/W
R/W
R/W
R/W
R/W
R/W
UCSRnB
196
8161D-AVR-10.9
19.10.4
7
UMSELn1
Lectura / Escritura
Valor inicial
6
UMSELn0
UPMn1
UPMn0
USBSn
UCSZn1
UCSZn0
UCPOLn
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
UCSRnC
Nota:
UMSELn1
UMSELn0
Modo
USART asncrono
USART sncrono
(Reservado)
1. Ver "USART en modo SPI" en la pgina 204 para una descripcin completa del modo SPI Master (MSPIM)
operacin
197
8161D-AVR-10.9
Tabla 19-5.
UPMn1
UPMn0
Modo de Paridad
Discapacitado
Reservado
1-bit
2 bits
UCSZn2
UCSZn1
UCSZn0
Tamao de caracteres
5-bit
6-bit
7 bits
8-bit
Reservado
Reservado
Reservado
9-bit
198
8161D-AVR-10.9
Tabla 19-8.
UCPOLn
19.10.5
15
14
13
12
11
10
UBRRn [11: 8]
UBRRnH
UBRRn [7: 0]
7
Lectura / Escritura
Valor inicial
UBRRnL
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
199
8161D-AVR-10.9
Tabla 19-9.
Baud
Tarifa
(bps)
UBRRn
2400
25
0,2%
51
0,2%
47
4800
12
0,2%
25
0,2%
9600
-7,0%
12
14.4k
8,5%
19,2 k
28.8k
U2Xn = 0
U2Xn = 1
UBRRn
Error
0,0%
95
0,0%
51
0,2%
103
0,2%
23
0,0%
47
0,0%
25
0,2%
51
0,2%
0,2%
11
0,0%
23
0,0%
12
0,2%
25
0,2%
-3,5%
0,0%
15
0,0%
-3,5%
16
2,1%
8,5%
-7,0%
0,0%
11
0,0%
-7,0%
12
0,2%
8,5%
8,5%
0,0%
0,0%
8,5%
-3,5%
38.4K
-18,6%
8,5%
0,0%
0,0%
8,5%
-7,0%
57.6k
8,5%
8,5%
0,0%
0,0%
8,5%
8,5%
76.8k
-18,6%
-25,0%
0,0%
-18,6%
8,5%
115.2
8,5%
0,0%
0,0%
8,5%
8,5%
230.4 K
0,0%
250k
0,0%
125 kbps
UBRRn
Error
U2Xn = 1
UBRRn
Nota:
Error
U2Xn = 0
Error
62.5 kbps
UBRRn
U2Xn = 1
UBRRn
Max.(1)
Error
U2Xn = 0
115,2 kbps
230,4 kbps
Error
125 kbps
250 kbps
200
8161D-AVR-10.9
Tabla 19-10. Ejemplos de Configuracin UBRRn de frecuencias del oscilador ms utilizadas (Continuacin)
Fosc = 3,6864 MHz
Baud
Tarifa
(bps)
U2Xn = 0
U2Xn = 0
U2Xn = 0
U2Xn = 1
UBRRn
Error
UBRRn
Error
UBRRn
Error
UBRRn
Error
UBRRn
Error
UBRRn
Error
2400
95
0,0%
191
0,0%
103
0,2%
207
0,2%
191
0,0%
383
0,0%
4800
47
0,0%
95
0,0%
51
0,2%
103
0,2%
95
0,0%
191
0,0%
9600
23
0,0%
47
0,0%
25
0,2%
51
0,2%
47
0,0%
95
0,0%
14.4k
15
0,0%
31
0,0%
16
2,1%
34
-0,8%
31
0,0%
63
0,0%
19,2 k
11
0,0%
23
0,0%
12
0,2%
25
0,2%
23
0,0%
47
0,0%
28.8k
0,0%
15
0,0%
-3,5%
16
2,1%
15
0,0%
31
0,0%
38.4K
0,0%
11
0,0%
-7,0%
12
0,2%
11
0,0%
23
0,0%
57.6k
0,0%
0,0%
8,5%
-3,5%
0,0%
15
0,0%
76.8k
0,0%
0,0%
8,5%
-7,0%
0,0%
11
0,0%
115.2
0,0%
0,0%
8,5%
8,5%
0,0%
0,0%
230.4 K
0,0%
0,0%
8,5%
8,5%
0,0%
0,0%
250k
-7,8%
-7,8%
0,0%
0,0%
-7,8%
-7,8%
0,5 M
-7,8%
0,0%
-7,8%
-7,8%
1M
-7,8%
Max. (1)
230,4 kbps
1.
460,8 kbps
250 kbps
0.5 Mbps
460,8 kbps
921,6 kbps
201
8161D-AVR-10.9
Tabla 19-11. Ejemplos de Configuracin UBRRn de frecuencias del oscilador ms utilizadas (Continuacin)
Fosc = 11.0592 MHz
Baud
Tarifa
(bps)
UBRRn
Error
UBRRn
Error
UBRRn
Error
UBRRn
Error
UBRRn
Error
UBRRn
Error
2400
207
0,2%
416
-0,1%
287
0,0%
575
0,0%
383
0,0%
767
0,0%
4800
103
0,2%
207
0,2%
143
0,0%
287
0,0%
191
0,0%
383
0,0%
9600
51
0,2%
103
0,2%
71
0,0%
143
0,0%
95
0,0%
191
0,0%
14.4k
34
-0,8%
68
0,6%
47
0,0%
95
0,0%
63
0,0%
127
0,0%
19,2 k
25
0,2%
51
0,2%
35
0,0%
71
0,0%
47
0,0%
95
0,0%
28.8k
16
2,1%
34
-0,8%
23
0,0%
47
0,0%
31
0,0%
63
0,0%
38.4K
12
0,2%
25
0,2%
17
0,0%
35
0,0%
23
0,0%
47
0,0%
57.6k
-3,5%
16
2,1%
11
0,0%
23
0,0%
15
0,0%
31
0,0%
76.8k
-7,0%
12
0,2%
0,0%
17
0,0%
11
0,0%
23
0,0%
115.2
8,5%
-3,5%
0,0%
11
0,0%
0,0%
15
0,0%
230.4 K
8,5%
8,5%
0,0%
0,0%
0,0%
0,0%
250k
0,0%
0,0%
-7,8%
-7,8%
-7,8%
5,3%
0,5 M
0,0%
0,0%
-7,8%
-7,8%
-7,8%
1M
0,0%
-7,8%
-7,8%
Max. (1)
0.5 Mbps
1.
U2Xn = 0
U2Xn = 1
1 Mbps
U2Xn = 0
691,2 kbps
U2Xn = 1
1,3824 Mbps
U2Xn = 0
921,6 kbps
U2Xn = 1
1,8432 Mbps
202
8161D-AVR-10.9
Tabla 19-12. Ejemplos de Configuracin UBRRn de frecuencias del oscilador ms utilizadas (Continuacin)
Fosc = 16.0000 MHz
Baud
Tarifa
(bps)
UBRRn
Error
UBRRn
Error
UBRRn
Error
UBRRn
Error
UBRRn
Error
UBRRn
Error
2400
416
-0,1%
832
0,0%
479
0,0%
959
0,0%
520
0,0%
1041
0,0%
4800
207
0,2%
416
-0,1%
239
0,0%
479
0,0%
259
0,2%
520
0,0%
9600
103
0,2%
207
0,2%
119
0,0%
239
0,0%
129
0,2%
259
0,2%
14.4k
68
0,6%
138
-0,1%
79
0,0%
159
0,0%
86
-0,2%
173
-0,2%
19,2 k
51
0,2%
103
0,2%
59
0,0%
119
0,0%
64
0,2%
129
0,2%
28.8k
34
-0,8%
68
0,6%
39
0,0%
79
0,0%
42
0,9%
86
-0,2%
38.4K
25
0,2%
51
0,2%
29
0,0%
59
0,0%
32
-1,4%
64
0,2%
57.6k
16
2,1%
34
-0,8%
19
0,0%
39
0,0%
21
-1,4%
42
0,9%
76.8k
12
0,2%
25
0,2%
14
0,0%
29
0,0%
15
1,7%
32
-1,4%
115.2
-3,5%
16
2,1%
0,0%
19
0,0%
10
-1,4%
21
-1,4%
230.4 K
8,5%
-3,5%
0,0%
0,0%
8,5%
10
-1,4%
250k
0,0%
0,0%
-7,8%
2,4%
0,0%
0,0%
0,5 M
0,0%
0,0%
-7,8%
0,0%
1M
0,0%
0,0%
U2Xn = 0
Max. (1)
1.
1 Mbps
U2Xn = 1
2 Mbps
U2Xn = 0
1.152 Mbps
U2Xn = 1
2.304 Mbps
U2Xn = 0
1.25 Mbps
U2Xn = 1
2.5 Mbps
203
8161D-AVR-10.9
Caractersticas
20.2
Visin de conjunto
El receptor serial universal sncrona y asncrona y el transmisor (USART) pueden ser
establecido en un modo compatible con SPI maestro de operacin.
Ajuste de los dos UMSELn1: 0 bits a uno permite que el USART en la lgica MSPIM. En este modo de operacin
CIN el control maestro SPI lgica toma control directo sobre los recursos USART. Estos
recursos incluyen el transmisor y el receptor cambio de registro y tampones, y la tasa de baudios generacin
rador. El generador de paridad y corrector, la lgica de los datos y la recuperacin de reloj, y el RX y TX
lgica de control est desactivado. La lgica USART RX y TX de control se sustituye por un SPI comn
transferir lgica de control. Sin embargo, la lgica de control pin y lgica de generacin de interrupcin es idntico en
ambos modos de funcionamiento.
Las ubicaciones de E / S de registro son los mismos en ambos modos. Sin embargo, algunas de las funcionalidades de la
de control registra cambios cuando se utiliza MSPIM.
20.3
Generacin de reloj
La lgica de generacin de reloj genera el reloj base para el transmisor y el receptor. Para
USART modo de operacin solamente (es decir, el funcionamiento maestro) de generacin de reloj interno MSPIM es apoyo
portado. Por ello, la Direccin de Registro de Datos para el pasador XCKn (DDR_XCKn) debe establecerse en uno
(Es decir, como de salida) para el USART en MSPIM para operar correctamente. Preferiblemente, el DDR_XCKn debe
ser establecido antes de la USART en MSPIM est activado (es decir TXENn y RXENn bit igual a uno).
La generacin de reloj interno usado en el modo de MSPIM es idntica a la maestra sncrono USART
modo ter. Por tanto, la velocidad de transmisin o UBRRn se puede determinar con la misma
ecuaciones, ver Tabla 20-1:
204
8161D-AVR-10.9
Tabla 20-1.
Modo de funcionamiento
Maestro sncrono
modo
Nota:
20.4
f OSC
BAUDIO = -------------------------------------2(UBRRn +1)
f OSC
UBRRn = ------------------- - 12BAUD
BAUDIO
Fosc
UBRRn
Tabla 20-2.
UCPOLn
UCPHAn
Modo SPI
Leading Edge
Borde posterior
Muestra (Rising)
Configuracin (cada)
Configuracin (Rising)
Muestra (cada)
Muestra (cada)
Configuracin (Rising)
Configuracin (cada)
Muestra (Rising)
205
8161D-AVR-10.9
UCPOL = 1
UCPHA = 1
XCK
XCK
UCPHA = 0
20.5
XCK
XCK
Formatos de trama
Un marco de serie para el MSPIM se define como un carcter de 8 bits de datos. El USART en MSPIM
modo tiene dos formatos de trama vlidos:
datos de 8 bits con MSB primero
Los datos de 8 bits con LSB primero
Un marco comienza con la menor o ms significativo de bits de datos. A continuacin, los siguientes bits de datos, hasta un total
de
ocho, estn teniendo xito, terminando con el bit ms o menos significativo en consecuencia. Cuando una completa
trama se transmite, un nuevo marco puede seguir directamente, o la lnea de comunicacin se puede establecer en
un (alto) estado de reposo.
El bit UDORDn en UCSRnC establece el formato de trama utilizado por el USART en modo MSPIM. La
Receptor y transmisor utilizan el mismo ajuste. Tenga en cuenta que el cambio de la configuracin de cualquiera de estos
BITS corruptos toda comunicacin permanente tanto para el receptor y el transmisor.
La transferencia de datos de 16 bits se puede lograr mediante la escritura dos bytes de datos para UDRn. Una composicin de
transmisin UART
interrupcin completa entonces sealar que el valor de 16 bits ha sido desplazado hacia afuera.
20.5.1
Nota:
Para asegurar una inicializacin inmediata de la salida XCKn el registro-velocidad de transmisin (UBRRn) debe ser
cero en el momento en que el transmisor est activado. Contrariamente a la operacin normal de modo USART la
UBRRn debe entonces ser escrito en el valor deseado despus de que el transmisor est activado, pero antes de la
se inicia primera transmisin. Configuracin UBRRn a cero antes de activar el transmisor no es sario
sario si la inicializacin se realiza inmediatamente despus de un reset desde UBRRn se pone a cero.
Antes de hacer una re-inicializacin con tasa de cambio de transmisin, modo de datos o formato de trama, asegrese de que
no hay transmisiones en curso durante el perodo se cambian los registros. La bandera TXCn
se puede utilizar para comprobar que el transmisor ha completado todas las transferencias, y la bandera RXCn puede
206
8161D-AVR-10.9
Cdigo C Ejemplo(1)
vaco USART_Init ( unsigned int baudios)
{
UBRRn = 0;
/ * Establecer el pin del puerto XCKn como salida, habilita el modo maestro.
* /
XCKn_DDR | = (1 << XCKn);
/ * Establecer el modo MSPI de funcionamiento y el modo de datos
SPI 0. * /
UCSRnC = (1 << UMSELn1) | (1 << UMSELn0) | (0 << UCPHAn) | (0 <<
UCPOLn);
/ * Habilitar receptor y transmisor. * /
UCSRnB = (1 << RXENn) | (1 << TXENn);
/ * Establecer la velocidad
de transmisin. * /
/ * IMPORTANTE: La velocidad en baudios se debe establecer despus el transmisor
est activado
* /
UBRRn = baudios;
}
Nota:
207
8161D-AVR-10.9
20.6
Transferencia de datos
Utilizando el USART en modo MSPI requiere el transmisor est habilitado, es decir, el bit TXENn en
el registro UCSRnB se establece en uno. Cuando el transmisor se activa, el funcionamiento de los puertos normales
del pasador TxDn se anula y dada la funcin que la produccin en serie del transmisor. Habilitacin
el receptor es opcional y se hace estableciendo el bit RXENn en el Registro UCSRnB a uno.
Cuando el receptor est activado, se anula la operacin normal del pin pin RxDn y dado
la funcin como entrada serie del receptor. El XCKn en ambos casos se puede utilizar como la transferencia
reloj.
Despus de la inicializacin del USART est listo para hacer la transferencia de datos. Una transferencia de datos se inicia por
escrito
ing a la ubicacin UDRn I / O. Este es el caso tanto para enviar y recibir datos desde el
transmisor controla el reloj de transferencia. Los datos escritos en UDRn se traslada de la transmisin tamponadas
fer al registro de desplazamiento cuando el registro de desplazamiento est listo para enviar un nuevo marco.
Nota:
Para mantener el buffer de entrada en sincrona con el nmero de bytes de datos transmitidos, el registro debe UDRn
ser ledo una vez para cada byte transmitido. La operacin de buffer de entrada es idntica a USART normales
modo, es decir, si se produce un desbordamiento del ltimo carcter recibido se perdern, y no los primeros datos en el
tamponadas
fer. Esto significa que si se transfieren cuatro bytes, 1 byte primero, a continuacin, byte 2, 3, y 4, y el UDRn
No se lee antes de completar todas las transferencias, a continuacin, el byte 3 a percibir se perdern, y no byte
1.
Los siguientes ejemplos de cdigo muestran un USART sencilla en funcin de transferencia modo MSPIM basado en
votacin del Vaco (UDREn) Bandera registro de datos y la completa (RXCn) Bandera de recepcin. La
USART tiene que ser inicializado antes de la funcin se puede utilizar. Para el cdigo de la asamblea, los datos que
ser enviado se supone que se almacena en el registro R16 y los datos recibidos estarn disponibles en el
mismo registro (R16) despus devuelve la funcin.
La funcin simplemente espera a que el buffer de transmisin est vaco marcando la bandera UDREn,
antes de cargarlo con los nuevos datos a transmitir. La funcin de espera a que los datos estn presentes
en el bfer de recepcin marcando la bandera RXCn, antes de leer el buffer y devolver el
valor.
208
8161D-AVR-10.9
Cdigo C Ejemplo(1)
unsigned char USART_Receive ( vaco )
{
/ * Esperar buffer de transmisin vaca * /
mientras ((UCSRnA y (1 << UDREn))!);
/ * Poner los datos en el bfer, enva los datos * /
UDRn = datos;
/ * Espere a que los datos que se recibirn
* /
mientras ((UCSRnA y (1 << RXCn))!);
/ * Obtener y devolver los datos recibidos de buffer * /
retorno UDRn;
}
Nota:
20.6.1
20.6.2
209
8161D-AVR-10.9
20.7
USART_MSPIM
SPI
Comentario
TxDn
MOSI
RxDn
MISO
Maestro En slo
XCKn
SCK
(Funcionalmente idnticos)
(N / A)
SS
210
8161D-AVR-10.9
20.8
Registro Descripcin
La siguiente seccin describe los registros utilizados para la operacin SPI utilizando el USART.
20.8.1
20.8.2
RXCn
TXCn
UDREn
0
-
UCSRnA
Lectura / Escritura
R/W
Valor inicial
20.8.3
Lectura / Escritura
Valor inicial
RXCIEn
TXCIEn
UDRIE
RXENn
TXENn
0
-
R/W
R/W
R/W
R/W
R/W
UCSRnB
211
8161D-AVR-10.9
20.8.4
7
UMSELn1
Lectura / Escritura
Valor inicial
6
UMSELn0
UDORDn
UCPHAn
UCPOLn
R/W
R/W
R/W
R/W
R/W
UCSRnC
Tabla 20-4.
UMSELn0
Modo
USART asncrono
USART sncrono
Reservado
212
8161D-AVR-10.9
20.8.5
213
8161D-AVR-10.9
Caractersticas
21.2
Simple interfaz de comunicacin pero potente y flexible, slo dos lneas de autobuses Needed
Tanto Maestro y Esclavo Operacin Compatibles
El dispositivo puede funcionar como transmisor o receptor
7 bits espacio de direcciones Permite hasta 128 diferentes direcciones de los esclavos
Soporte Arbitraje Multi-master
Hasta 400 kHz de velocidad de transferencia de datos
Velocidad de respuesta de los controladores de salida Limited
Ruido Supresin Circuitos Rechaza Puntos en lneas de autobuses
Direccin auxiliar completamente programable con Call Apoyo general
Direccin Reconocimiento Causas de despertador Cuando AVR est en modo de suspensin
Compatible con el protocolo I2C de Philips
Dispositivo n
R1
R2
SDA
SCL
214
8161D-AVR-10.9
TWI Terminologa
Las siguientes definiciones se encuentran con frecuencia en esta seccin.
Tabla 21-1.
TWI Terminologa
Plazo
Descripcin
Maestro
Esclavo
Transmisor
Receptor
El bit en PRTWI "Minimizar el consumo de energa" en la pgina 42 debe ser escrito a cero para permitir
el 2 hilos de interfaz serie.
21.2.2
Interconexin Elctrica
Como se muestra en Figura 21-1, ambas lneas de autobuses estn conectados a la tensin de alimentacin positiva a travs de
pull-up resistencias. Los conductores de autobuses de todos los dispositivos compatibles son TWI-drenaje abierto o colector abierto.
Esto implementa un cable y la funcin que es esencial para el funcionamiento de la interfaz. Un bajo
nivel en una lnea de bus TWI se genera cuando uno o ms dispositivos de salida TWI un cero. Un alto nivel
se emite cuando todos TWI dispositivos de triple estado de sus salidas, permitiendo que las resistencias pull-up para tirar de la lnea
alta. Tenga en cuenta que todos los dispositivos AVR conectados al bus TWI deben ser alimentados con el fin de permitir que cualquier
funcionamiento del bus.
El nmero de dispositivos que se pueden conectar al bus slo est limitada por la capacitancia del bus
lmite de 400 pF y el espacio de direcciones de esclavos de 7 bits. Una especificacin detallada de la carac- elctrica
carac- del TWI se da en "2 hilos Caractersticas de la interfaz de serie" en la pgina 321. Dos
diferentes conjuntos de especificaciones se presentan all, uno relevante para velocidades de bus por debajo de 100 kHz,
y uno vlido para el autobs velocidades de hasta 400 kHz.
215
8161D-AVR-10.9
21.3
21.3.1
Transferencia de Bits
Cada bit de datos transferidos en el bus TWI se acompaa de un pulso en la lnea del reloj. El nivel
de la lnea de datos debe ser estable cuando la lnea de reloj es alta. La nica excepcin a esta regla es para
generando iniciar y detener condiciones.
SDA
SCL
Estable de Datos
Estable de Datos
Cambio de datos
21.3.2
SDA
SCL
INICIO
DETNGASE
INICIO
START REPETIDA
DETNGASE
216
8161D-AVR-10.9
El MSB del byte de direccin se transmite primero. Direcciones de los esclavos libremente pueden ser asignados por el
diseador, pero la direccin 0000 000 est reservado para una llamada general.
Cuando se emite una llamada general, todos los esclavos deben responder tirando de la lnea de baja SDA en el ACK
ciclo. Un llamado general se utiliza cuando un maestro desea transmitir el mismo mensaje a varios
esclavos en el sistema. Cuando la direccin de llamada general seguida por un bit de escritura se transmite en la
autobs, todos los esclavos cre para reconocer la llamada general se tire la baja lnea SDA en el ciclo ack.
Los siguientes paquetes de datos entonces sern recibidos por todos los esclavos que reconocieron al general
llamar. Tenga en cuenta que la transmisin de la direccin de llamada general seguida de una lectura poco tiene sentido, como
esto causara contencin si varios esclavos empezaron transmitir datos diferentes.
Todas las direcciones del formato 1111 xxx deben reservarse para usos futuros.
Figura 21-4. Direccin formato de paquetes
Dir MSB
Dir LSB
R/W
ACK
SDA
SCL
1
INICIO
21.3.4
217
8161D-AVR-10.9
Datos LSB
ACK
Agregado
SDA
SDA desde
Transmisor
SDA desde
Receptor
SCL desde
Maestro
1
SLA + R / W
21.3.5
PARADA, REPETIDA
START o Siguiente
Byte de datos
Byte de datos
Figura 21-6 muestra una transmisin de datos tpico. Tenga en cuenta que varios bytes de datos pueden ser transmitidos
entre el SLA + R / W y la condicin de parada, dependiendo del protocolo de aplicacin software
mentado por el software de aplicacin.
Dir MSB
Dir LSB
R/W
ACK
Datos MSB
Datos LSB
ACK
SDA
SCL
1
INICIO
21.4
SLA + R / W
7
Byte de datos
DETNGASE
218
8161D-AVR-10.9
TA bajo
TA alta
SCL desde
Master A
SCL desde
Master B
SCL autobs
Lnea
TBlow
Maestros Inicio
Contando bajo Perodo
TBhigh
Maestros Inicio
Contando alta Perodo
El arbitraje se llevar a cabo por todos los maestros de monitoreo continuo de la lnea SDA despus de la salida
datos. Si el valor ledo en la lnea SDA no coincide con el valor que el Maestro tena salida, tiene
perdido el arbitraje. Tenga en cuenta que un maestro slo puede perder el arbitraje cuando muestra un alto valor SDA
mientras que otro maestro emite un valor bajo. El Maestro perdedora debe ir inmediatamente a Slave
modo, comprobar si est siendo dirigida por el Maestro ganar. La lnea SDA debe dejarse alta,
pero que pierden maestros pueden usarse para generar una seal de reloj hasta el final de los datos actuales o
paquete de direccin. Arbitraje continuar hasta que slo queda la Maestra, y esto puede tomar muchos
Bits. Si varios maestros estn tratando de abordar el mismo esclavo, el arbitraje continuar en el
paquete de datos.
219
8161D-AVR-10.9
Master A pierde
Arbitraje, SDAA SDA
SDA desde
Master A
SDA desde
Master B
SDA Lnea
Sincronizado
SCL Lnea
220
8161D-AVR-10.9
21.5
SDA
Espiga
La velocidad de respuesta
Filtro
Control
Espiga
La velocidad de respuesta
Filtro
Control
Deteccin de Arbitraje
Supresin de Spike
Precontador
Direccin Comparador
Unidad de Control
Registro de estado
(TWSR)
Registro de Control
(TWCR)
Unidad
TWI
Mquina de Estado y
Control de estado
21.5.1
21.5.2
221
8161D-AVR-10.9
21.5.3
Valores de resistencia pull-up deben ser seleccionados de acuerdo a la frecuencia de SCL y el autobs capacitiva
carga de lnea. Ver Tabla 28-6 en la pgina 321 para el valor de la resistencia de pull-up.
21.5.4
Si otra interrupcin (por ejemplo, INT0) se produce durante TWI Energa-abajo coincidencia de direccin y se despierta el
CPU, el TWI aborta la operacin y el retorno a su estado de reposo. Si esto causa problemas, garantizar
Partido que TWI Direccin es la interrupcin slo permitido al entrar al apagar(1).
Nota:
21.5.5
1. Esto se aplica a todas las revisiones de dispositivos excepto ATmega88PA revisin C o ms reciente.
Unidad de Control
La unidad de control monitoriza el bus TWI y genera respuestas correspondientes a los ajustes en el
TWI Registro de Control (TWCR). Cuando un evento que requiere la atencin de la aplicacin se produce
en el bus TWI, la bandera de interrupcin TWI (TWINT) se afirma. En el siguiente ciclo de reloj, el TWI Status Register (TWSR) se actualiza con un cdigo de estado que identifica el evento. El TWSR slo
contiene informacin de estado relevante cuando la interrupcin de la bandera TWI se afirma. El resto del tiempo,
la TWSR contiene un cdigo de estado especial que indica que no hay informacin de estado relevante est disponible
222
8161D-AVR-10.9
21.6
Utilizando el TWI
El AVR TWI est orientado a byte e interrumpir basa. Las interrupciones se emiten despus de todos los eventos de autobuses,
como
recepcin de un byte o transmisin de una condicin START. Porque se basa interrupciones del TWI,
el software de la aplicacin es libre de continuar otras operaciones durante una transferencia de bytes TWI. Tenga en cuenta que
el bit de interrupcin Habilitar TWI (TWIE) en TWCR junto con la interrupcin Global Enable bit
SREG permitir que la aplicacin decida si procede o no la afirmacin de la Bandera TWINT debe genecomi una solicitud de interrupcin. Si el bit TWIE se borra, la aplicacin debe sondear la Bandera TWINT en
Para detectar acciones en el bus TWI.
Cuando la Bandera TWINT se afirma, el TWI ha terminado una operacin y espera la aplicacin
respuesta. En este caso, el Registro de Estado TWI (TWSR) contiene un valor que indica la corriente
estado del bus TWI. El software de aplicacin puede entonces decidir cmo el TWI debera comportarse de
el siguiente ciclo de bus TWI manipulando los TWCR y TWDR Registros.
Figura 21-10 es un ejemplo sencillo de cmo la aplicacin puede interactuar con el hardware TWI. En
este ejemplo, un maestro desea transmitir un solo byte de datos a un esclavo. Esta descripcin es bastante
abstracto, una explicacin ms detallada sigue adelante en esta seccin. Un ejemplo aplicacin simple cdigo
Menting el comportamiento deseado tambin se presenta.
223
8161D-AVR-10.9
Bus TWI
TWI
Hardware
Accin
INICIO
SLA + W
Conjunto 2. TWINT.
El cdigo de estado indica
Condicin START envi
La
Conjunto 4. TWINT.
El cdigo de estado indica
SLA + W envi, ACK
recibido
Datos
La
DETNGASE
Establece 6. TWINT.
El cdigo de estado indica
los datos enviados, ACK recibido
Indica
Conjunto TWINT
1. El primer paso en una transmisin TWI es para transmitir una condicin de arranque. Esto se hace
escribiendo un valor especfico en TWCR, instruyendo al hardware TWI para transmitir un START
condicin. Qu valor de escribir se describe ms adelante. Sin embargo, es importante que la
TWINT bit se establece en el valor escrito. Escribir un uno a TWINT despeja la bandera. El TWI
no se inicie ninguna operacin mientras el bit TWINT en TWCR se establece. Inmediatamente despus de la
aplicacin ha despejado TWINT, el TWI iniciar la transmisin de la condicin START.
2. Cuando la condicin de START se ha transmitido, la Bandera TWINT en TWCR est establecido, y
TWSR se actualiza con un cdigo de estado que indica que la condicin START tiene xitoplenamente sido enviado.
3. El software de aplicacin debe ahora examinar el valor de TWSR, para asegurarse de que el
Condicin START se transmiti con xito. Si TWSR indica lo contrario, la aplicacin
software cin pudiera tomar ciertas medidas especiales, como llamar a una rutina de error. Suponiendo que
el cdigo de estado es como se espera, la aplicacin debe cargar SLA + W en TWDR. Recordar
TWDR que se utiliza tanto para la direccin y de datos. Despus de TWDR se ha cargado con el
deseado SLA + W, un valor especfico debe ser escrito a TWCR, instruyendo al hardware TWI
para transmitir el SLA + W presente en TWDR. Qu valor de escribir se describe ms adelante.
Sin embargo, es importante que el bit TWINT se encuentra en el valor escrito. Escribir un uno a
TWINT despeja la bandera. El TWI no se iniciar ninguna operacin mientras el bit en TWINT
TWCR se establece. Inmediatamente despus de la aplicacin ha despejado TWINT, el TWI iniciar
la transmisin del paquete de direcciones.
4. Cuando el paquete direccin ha sido transmitida, la Bandera TWINT en TWCR est establecido, y
TWSR se actualiza con un cdigo de estado que indica que el paquete de direccin tiene xito
sido enviado. El cdigo de estado tambin reflejar si un esclavo reconoci el paquete o
no.
5. El software de aplicacin debe ahora examinar el valor de TWSR, para asegurarse de que el
paquete de direccin se transmiti con xito, y que el valor del bit de ACK era tan
esperado. Si TWSR indica lo contrario, el software de aplicacin podra tomar algn especial
accin, como llamar a una rutina de error. Suponiendo que el cdigo de estado es el esperado, el
aplicacin debe cargar un paquete de datos en TWDR. Posteriormente, un valor especfico debe ser
escrito a TWCR, instruyendo al hardware TWI para transmitir el paquete de datos presente en
TWDR. Qu valor de escribir se describe ms adelante. Sin embargo, es importante que la
TWINT bit se establece en el valor escrito. Escribir un uno a TWINT despeja la bandera. El TWI
224
8161D-AVR-10.9
A pesar de que este ejemplo es simple, que muestra los principios implicados en todas las transmisiones de inmersin recproca.
Estos se pueden resumir como sigue:
Cuando el TWI ha terminado una operacin y espera respuesta de las aplicaciones, la bandera es TWINT
establecer. La lnea SCL se baja hasta TWINT se borra.
Cuando la Bandera TWINT est establecido, el usuario debe actualizar todos los registros de inmersin recproca con el valor
correspondiente para
el siguiente ciclo de bus TWI. Como ejemplo, TWDR debe ser cargado con el valor a transmitir
en el siguiente ciclo de bus.
Despus de todas las actualizaciones de TWI Registro y otras tareas de software de aplicacin pendientes han sido
completado, TWCR est escrito. Al escribir TWCR, el bit TWINT debe establecerse. Escribir un uno
a TWINT borra la bandera. El TWI comenzar entonces la ejecucin de cualquier operacin fue
especificado por el ajuste TWCR.
En la siguiente asamblea y ejecucin C del ejemplo se da. Tenga en cuenta que el cdigo de
a continuacin se supone que varias definiciones se han hecho, por ejemplo mediante el uso de incluir ficheros.
225
8161D-AVR-10.9
en
r16, TWCR
TWDR, r16
r16, TWCR
r16, MT_SLA_ACK
Brne ERROR
LDI r16, DATOS
fuera
TWDR, r16
en
r16, TWCR
r16, MT_DATA_ACK
Brne ERROR
LDI r16,
(1 << TWINT) | (1 << TWEN) |
(1 << TWSTO)
fuera
TWDR = SLA_W;
TWCR = (1 << TWINT) |
(1 << TWEN);
si ((TWSR y 0xF8)! =
MT_SLA_ACK)
ERROR ();
TWDR = DATOS;
TWCR = (1 << TWINT) |
(1 << TWEN);
r16, START
Brne ERROR
LDI r16, SLA_W
fuera
(1 << TWEN)
Comentarios
(1 << TWEN)
fuera TWCR, r16
wait1:
Ejemplo C
si ((TWSR y 0xF8)! =
MT_DATA_ACK)
ERROR ();
TWCR, r16
226
8161D-AVR-10.9
Modos de transmisin
El TWI puede funcionar en uno de los cuatro modos principales. Estos Transmisor Maestro se nombran (MT),
Maestro Receptor (MR), Transmisor Esclavo (ST) y el receptor Esclavo (SR). Varios de estos
modos se pueden utilizar en la misma aplicacin. A modo de ejemplo, el TWI puede utilizar el modo MT escribir
datos en una memoria EEPROM TWI, modo MR para leer los datos desde la EEPROM. Si otros maestros
estn presentes en el sistema, algunos de estos pueden transmitir datos a la IST, y el modo de continuacin, SR
sera utilizado. Es el software de aplicacin que decide qu modos son legales.
Las siguientes secciones describen cada uno de estos modos. Se describen los cdigos de estado posibles
junto con las figuras que detalla la transmisin de datos en cada uno de los modos. Estas figuras contienen el
siguientes abreviaturas:
S: condicin START
Rs: condicin START REPETIDA
R: Leer bits (nivel alto en SDA)
W: bit Write (bajo nivel en SDA)
A: poco Reconocimiento (bajo nivel en SDA)
R: No reconocer bits (nivel alto en SDA)
Byte de datos de 8 bits: Datos
P: estado de STOP
SLA: Esclavo Direccin
En Figura 21-12 a Figura 21-18, crculos se utilizan para indicar que la bandera TWINT se establece. La
nmeros en los crculos muestran el cdigo de estado que tuvo lugar en TWSR, con los bits precontador enmascarados a
cero. En estos puntos, se deben tomar acciones por la aplicacin para continuar o completar la TWI
transferencia. La transferencia TWI se suspende hasta que la bandera TWINT se borra por el software.
Cuando la Bandera TWINT est establecido, el cdigo de estado en TWSR se utiliza para determinar el soft- apropiado
accin cermica. Para cada cdigo de estado, la accin software necesario y los detalles de la siguiente serie
transferencia se dan en Tabla 21-2 a Tabla 21-5. Tenga en cuenta que los bits estn enmascarados prescaler a cero en
estas tablas.
21.7.1
227
8161D-AVR-10.9
El dispositivo 1
MAESTRO
TRANSMISOR
El dispositivo 2
ESCLAVO
RECEPTOR
Dispositivo 3
........
R1
Dispositivo n
R2
SDA
SCL
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
TWEN debe ajustarse para que el 2 cables de interfaz serie, TWSTA debe estar escrito a uno para transformar
mit una condicin START y TWINT debe estar escrito a uno para borrar la bandera TWINT. El TWI
luego probar el 2 cables Serial Bus y generar una condicin de arranque en cuanto el autobs se convierte en
libre. Despus de una condicin START ha sido transmitida, la Bandera TWINT se establece por el hardware, y la
cdigo de estado en TWSR ser 0x08 (ver Tabla 21-2). Para entrar en el modo MT, SLA + W debe ser
transmitida. Esto se hace escribiendo SLA + W para TWDR. A partir de entonces el bit debe ser TWINT
despejado (escribiendo a uno) para continuar con la transferencia. Esto se consigue escribiendo la siguiente
ing valor a TWCR:
TWCR
valor
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
Cuando SLA + W se han transmitido y un bit de acuse de recibo ha sido recibido, es TWINT
activarse de nuevo y un nmero de cdigos de estado en TWSR son posibles. Posibles cdigos de estado en Maestro
modo son 0x18, 0x20, 0x38 o. La accin correcta a desarrollar para cada uno de estos cdigos de estado
se detalla en Tabla 21-2.
Cuando SLA + W se ha transmitido correctamente, un paquete de datos debe ser transmitida. Es
hecho por escrito el byte de datos a TWDR. TWDR slo se debe escribir cuando TWINT es alta. Si no,
el acceso ser descartada, y el bit de escritura Collision (TWWC) se establecer en el TWCR Register. Despus de actualizar TWDR, el bit TWINT debe borrarse (escribiendo a uno) para continuar con la
transferencia. Esto se logra escribiendo el siguiente valor a TWCR:
TWCR
valor
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
Este esquema se repite hasta el ltimo byte se ha enviado y la transferencia se termin por geneing estado STOP o una condicin START repetida. Una condicin de parada se genera por la escritura
el siguiente valor a TWCR:
TWCR
valor
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
228
8161D-AVR-10.9
Tabla 21-2.
Cdigo de estado
(TWSR)
Precontador Bits
son 0
0x08
0x10
0x18
0x20
0x28
0x30
0x38
SLA + W se ha transmitido;
ACK se ha recibido
SLA + W se ha transmitido;
NO ACK se ha recibido
Para TWCR
STA
STO
TWIN
T
TWE
La
Cargar SLA + W
SLA + W se transmite;
ACK o NO ACK ser recibido
Cargar SLA + W o
Cargar SLA + R
SLA + W se transmite;
ACK o NO ACK ser recibido
SLA + R se transmite;
Lgica cambiar a modo maestro receptor
1
0
0
1
1
1
X
X
1
0
0
1
1
1
X
X
1
0
0
1
1
1
X
X
1
0
0
1
1
1
X
X
229
8161D-AVR-10.9
Exitoso
transmisin
a un esclavo
receptor
SLA
$ 08
La
DATOS
$ 18
La
$ 28
Transferencia Siguiente
comenz con una
inicio repetida
condicin
RS
SLA
$ 10
No reconocer
recibida despus de la
direccin del esclavo
La
$ 20
SR
No reconocer
recibida despus de un dato
byte
La
$ 30
Arbitraje pierde en esclavo
direccin o datos byte
AoA
Otro maestro
contina
AoA
$ 38
Arbitraje y perdi
abordarse como esclavo
La
$ 68
De maestro a esclavo
De esclavo a maestro
21.7.2
Otro maestro
contina
$ 38
Otro maestro
contina
$ 78
DATOS
Para correspondientes
estados en modo esclavo
$ B0
La
230
8161D-AVR-10.9
El dispositivo 1
MAESTRO
RECEPTOR
El dispositivo 2
ESCLAVO
TRANSMISOR
Dispositivo 3
........
R1
Dispositivo n
R2
SDA
SCL
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
TWEN debe estar escrito a uno para que el 2 cables de interfaz serie, TWSTA debe estar escrito a
uno para transmitir una condicin de START y TWINT debe ajustarse para desactivar la bandera TWINT. El TWI
luego probar el 2 cables Serial Bus y generar una condicin de arranque en cuanto el autobs
se convierte en gratuita. Despus de una condicin START ha sido transmitida, la Bandera TWINT es fijado por hardware
ware, y el cdigo de estado en TWSR ser 0x08 (Ver Tabla 21-2). Para entrar en el modo MR,
SLA + R debe ser transmitida. Esto se realiza mediante la escritura SLA + R para TWDR. A partir de entonces el bit TWINT
debe ser limpiado (escribiendo a uno) para continuar con la transferencia. Esto se logra mediante la escritura
el siguiente valor a TWCR:
TWCR
valor
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
Cuando SLA + R haber sido transmitida y un bit de acuse de recibo ha sido recibido, es TWINT
activarse de nuevo y un nmero de cdigos de estado en TWSR son posibles. Posibles cdigos de estado en Maestro
modo son 0x38, 0x40, 0x48 o. La accin correcta a desarrollar para cada uno de estos cdigos de estado
se detalla en Tabla 21-3. Los datos recibidos se pueden leer en el Registro TWDR cuando el TWINT
Bandera est en lo alto por el hardware. Este esquema se repite hasta que se ha recibido el ltimo byte.
Despus de que se haya recibido el ltimo byte, el MR debe informar a la ST mediante el envo de un NACK despus de la
ltima recibido byte de datos. La transferencia se termin generando una condicin de STOP o un repiten
START condicin. Una condicin de parada se genera escribiendo el siguiente valor a TWCR:
TWCR
valor
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
Despus de una condicin START repetida (0x10 estado) el 2 cables de interfaz serie puede tener acceso a la misma
Esclavo de nuevo, o un nuevo esclavo sin transmitir un estado de STOP. START repetida permite
231
8161D-AVR-10.9
Para TWCR
Hasta / desde TWDR
STA
STO
TWIN
T
TWE
La
0x08
Cargar SLA + R
SLA + R se transmitir
ACK o NO ACK ser recibido
0x10
Cargar SLA + R o
Cargar SLA + W
SLA + R se transmitir
ACK o NO ACK ser recibido
SLA + W se transmitir
Lgica Se activar el modo Transmisor Maestro
1
0
0
1
1
1
X
X
1
0
0
1
1
1
X
X
0x38
0x40
0x48
SLA + R se ha transmitido;
ACK se ha recibido
SLA + R se ha transmitido;
NO ACK se ha recibido
0x50
0x58
232
8161D-AVR-10.9
Exitoso
recepcin
de un esclavo
receptor
SLA
$ 08
La
DATOS
La
$ 40
DATOS
$ 50
La
$ 58
Transferencia Siguiente
comenz con una
inicio repetida
condicin
RS
SLA
$ 10
No reconocer
recibida despus de la
direccin del esclavo
La
$ 48
Montana
AoA
Otro maestro
contina
La
$ 38
Arbitraje y perdi
abordarse como esclavo
La
$ 68
De maestro a esclavo
21.7.3
$ 38
Otro maestro
contina
$ 78
DATOS
De esclavo a maestro
Otro maestro
contina
Para correspondientes
estados en modo esclavo
$ B0
La
El dispositivo 1 El dispositivo 2
ESCLAVO
RECEPTOR
MAESTRO
TRANSMISOR
Dispositivo 3 ........
Dispositivo n
R1
R2
SDA
SCL
233
8161D-AVR-10.9
TWA6
TWA5
valor
TWA4
TWA3
TWA2
TWA1
TWA0
TWGCE
Los 7 bits superiores son la direccin a la que responder el 2 cables de interfaz serie cuando
dirigida por un Maestro. Si el LSB se establece, el TWI responder a la direccin de llamada general (0x00),
de lo contrario, no tendr en cuenta la direccin de llamada general.
TWCR
valor
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
TWEN debe estar escrito a uno para que el TWI. El bit TWEA debe estar escrito a uno para permitir
el reconocimiento de la propia direccin del esclavo del dispositivo o la direccin de llamada general. TWSTA
y TWSTO debe estar escrito a cero.
Cuando TWAR y TWCR han inicializado, el TWI espera hasta que se aborda en su propio
direccin del esclavo (o la direccin de llamada general si est habilitado), seguido por el bit de direccin de datos. Si el
direccin bit es "0" (escritura), el TWI funcionar en modo SR, de lo contrario se accede al modo ST. Despus
su propia direccin del esclavo y el bit de escritura se han recibido, la Bandera TWINT se establece y un vlido
cdigo de estado se puede leer desde TWSR. El cdigo de estado se utiliza para determinar el soft- apropiado
accin cermica. La accin correcta a desarrollar para cada cdigo de estado se detalla en Tabla 21-4.
El modo receptor Slave tambin se puede introducir si se pierde el arbitraje mientras que el TWI es en el Master
modo (ver estados 0x68 y 0x78).
Si el bit TWEA se restablece durante un traslado, el TWI devolver un "no reconoce" ("1") a SDA
despus de que el siguiente byte de datos recibido. Esto se puede utilizar para indicar que el esclavo no es capaz de
recibir ms bytes. Mientras TWEA es cero, el TWI no reconoce su propio esclavo
direccin. Sin embargo, el 2 hilos de bus serie est siendo monitoreado y reconocimiento de direcciones puede reanudar
en cualquier momento mediante el establecimiento TWEA. Esto implica que el bit TWEA se puede utilizar para aislar
temporalmente
el TWI del 2 cables Serial Bus.
En todos los modos de suspensin que no sean el modo de espera, el sistema de reloj a la IST est apagado. Si el TWEA
bit est establecido, la interfaz todava puede reconocer su propia direccin de esclavo o la direccin de llamada general por
utilizando el 2 hilos reloj de bus serie como fuente de reloj. La parte entonces se despertar de su sueo y
la IST llevar a cabo la baja de reloj SCL durante el velatorio y hasta la bandera TWINT se borra (por
escribiendo a uno). Adems de recepcin de datos se lleva a cabo como normal, con los relojes AVR Running como normal. Observe que si el AVR se ha configurado con un largo tiempo de puesta en marcha, la lnea SCL puede ser
mantiene baja durante mucho tiempo, el bloqueo de otras transmisiones de datos.
Tenga en cuenta que el 2 cables Serial Data Interface Registro - TWDR no refleja el ltimo byte presente
en el autobs cuando el despertar de estos modos de sueo.
234
8161D-AVR-10.9
Tabla 21-4.
Cdigo de estado
(TWSR)
Precontador Bits
son 0
0x60
Para TWCR
Hasta / desde TWDR
STA
STO
TWIN
T
TWE
La
0x68
0x70
0x78
0x80
0x88
0x90
0x98
0xA0
235
8161D-AVR-10.9
SLA
La
DATOS
$ 60
La
DATOS
La
$ 80
$ 80
La
PoS
$ A0
PoS
$ 88
Arbitraje perdi como maestro
y abordado como esclavo
La
$ 68
Convocatoria general
La
DATOS
$ 70
La
DATOS
La
$ 90
$ 90
La
PoS
$ A0
PoS
$ 98
Arbitraje perdi como maestro y
abordado como esclavo al llamado general
La
$ 78
DATOS
De maestro a esclavo
De esclavo a maestro
21.7.4
La
El dispositivo 1
ESCLAVO
TRANSMISOR
El dispositivo 2
MAESTRO
RECEPTOR
Dispositivo 3 ........
Dispositivo n
R1
R2
SDA
SCL
236
8161D-AVR-10.9
Para iniciar el modo Transmisor Esclavo, TWAR y TWCR deben inicializar la siguiente manera:
TWAR
TWA6
TWA5
valor
TWA4
TWA3
TWA2
TWA1
TWA0
TWGCE
Los siete bits superiores son la direccin a la que responder el 2 cables de interfaz serie cuando
dirigida por un Maestro. Si el LSB se establece, el TWI responder a la direccin de llamada general (0x00),
de lo contrario, no tendr en cuenta la direccin de llamada general.
TWCR
valor
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
TWEN debe estar escrito a uno para que el TWI. El bit TWEA debe estar escrito a uno para permitir
el reconocimiento de la propia direccin del esclavo del dispositivo o la direccin de llamada general. TWSTA
y TWSTO debe estar escrito a cero.
Cuando TWAR y TWCR han inicializado, el TWI espera hasta que se aborda en su propio
direccin del esclavo (o la direccin de llamada general si est habilitado), seguido por el bit de direccin de datos. Si el
direccin bit es "1" (lectura), el TWI funcionar en modo ST, de lo contrario se accede al modo SR. Despus
su propia direccin del esclavo y el bit de escritura se han recibido, la Bandera TWINT se establece y un vlido
cdigo de estado se puede leer desde TWSR. El cdigo de estado se utiliza para determinar el soft- apropiado
accin cermica. La accin correcta a desarrollar para cada cdigo de estado se detalla en Tabla 21-5.
El modo esclavo transmisor tambin se puede introducir si se pierde el arbitraje mientras que el TWI est en el
Modo maestro (ver estado 0xB0).
Si el bit TWEA est escrito a cero durante un traslado, el TWI transmitir el ltimo byte de la transfer. 0xC0 Estado o Estado 0xC8 se ingresarn, en funcin de si el receptor Maestro
transmite un NACK o ACK despus de que el byte final. El TWI se cambia al esclavo no se abordan
modo, y no har caso al Maestro si contina la transferencia. As, el receptor recibe Maestro
todos "1", como datos en serie. Estado 0xC8 se introduce si las demandas Mster bytes de datos adicionales (por
transmitir ACK), a pesar de que el esclavo ha transmitido el ltimo byte (TWEA cero y esperaring NACK del Maestro).
Mientras TWEA es cero, el TWI no responde a su propia direccin de esclavo. Sin embargo, el 2-wire
Serial Bus todava se supervisa y reconocimiento de direcciones puede reanudarse en cualquier momento mediante el
establecimiento TWEA.
Esto implica que el bit TWEA se puede utilizar para aislar temporalmente el TWI de la serie de 2 hilos
Bus.
En todos los modos de suspensin que no sean el modo de espera, el sistema de reloj a la IST est apagado. Si el TWEA
bit est establecido, la interfaz todava puede reconocer su propia direccin de esclavo o la direccin de llamada general por
utilizando el 2 hilos reloj de bus serie como fuente de reloj. La parte entonces se despertar de su sueo y
el TWI celebrar el reloj SCL ser baja durante el velatorio y hasta la bandera TWINT se borra
(Escribiendo a uno). Adems la transmisin de datos se lleva a cabo como normal, con los relojes AVR
funcionando de forma normal. Observe que si el AVR se ha configurado con un largo tiempo de puesta en marcha, la lnea SCL
puede
se llevar a cabo bajo durante un largo tiempo, el bloqueo de otras transmisiones de datos.
Tenga en cuenta que el 2 cables Serial Data Interface Registro - TWDR no refleja el ltimo byte presente
en el autobs cuando el despertar de estos modos de suspensin.
237
8161D-AVR-10.9
Tabla 21-5.
Cdigo de estado
(TWSR)
Estado del 2 cables Serial Bus
Precontador
y 2 cables Serial Interface Hardware
Bits
mercanca
son 0
0xA8
0xB0
0xB8
0xC0
0xC8
STA
STO
TWIN
T
TWE
La
238
8161D-AVR-10.9
SLA
La
DATOS
$ A8
La
DATOS
$ B8
La
PoS
$ C0
La
$ B0
La
Todos los 1 de
PoS
$ C8
DATOS
De maestro a esclavo
De esclavo a maestro
21.7.5
La
Varios Estados
Existen dos cdigos de estado que no corresponden a un estado definido TWI, ver Tabla 21-6.
Estado 0xF8 indica que no hay informacin relevante est disponible porque la bandera no es TWINT
establecer. Esto ocurre entre otros estados, y cuando el TWI no est involucrado en la transferencia serie.
Status 0x00 indica que ha ocurrido un error de bus durante una transferencia Serial Bus de 2 hilos. Un autobs
se produce un error cuando una condicin START o STOP se produce en una posicin ilegal en el marco de formato.
Ejemplos de tales posiciones son ilegales durante la transferencia serie de un byte de direccin, un byte de datos,
o un bit de reconocimiento. Cuando se produce un error de bus, TWINT se establece. Para recuperarse de un error de bus, la
Bandera TWSTO debe establecer y TWINT debe ser aprobado por escrito un uno lgico para l. Esto hace que el
TWI para entrar en el modo esclavo no se aborda y para borrar la bandera TWSTO (no hay otros bits en
TWCR son afectados). Las lneas SDA y SCL son liberados, y ninguna condicin de parada
transmitida.
Tabla 21-6.
Varios Estados
Cdigo de estado
(TWSR)
Precontador Bits
son 0
Para TWCR
Hasta / desde TWDR
0xF8
0x00
21.7.6
STA
STO
TWIN
T
TWE
La
239
8161D-AVR-10.9
Figura 21-19. Combinando varios modos de inmersin recproca acceder a una EEPROM serial
Transmisor Maestro
SLA + W
La
DIRECCIN
S = START
La
Rs
SLA + R
La
DATOS
Rs = START REPETIDA
21.8
Receptor Maestro
La
P = PARO
El dispositivo 1
MAESTRO
TRANSMISOR
El dispositivo 2
MAESTRO
TRANSMISOR
Dispositivo 3
ESCLAVO
RECEPTOR
........
Dispositivo n
R1
R2
SDA
SCL
Varios escenarios diferentes pueden surgir durante el arbitraje, tal como se describe a continuacin:
Dos o ms maestros estn realizando comunicacin idnticos con el mismo esclavo. En este
caso, ni el esclavo ni ninguno de los maestros sabrn sobre la contencin de bus.
Dos o ms maestros estn accediendo al mismo esclavo con diferentes datos o direccin bits. En este
caso, el arbitraje se producir, ya sea en el / bit lectura o de escritura en los bits de datos. Los maestros que intentan
a la salida de un uno en SDA mientras que otro maestro emite un cero perdern el arbitraje. Perder
maestros pasarn a modo esclavo no se abordan o esperar hasta que el autobs es gratuito y transmitir una nueva
EMPIEZA A condicin, dependiendo de la accin de software de aplicacin.
240
8161D-AVR-10.9
Esto se resume en Figura 21-21. Los valores de estado posibles se dan en crculos.
Figura 21-21. Cdigos de estado que pueda causar Arbitraje
INICIO
SLA
Datos
Propio
Direccin / Convocatoria general
recibido
DETNGASE
No
38
Direccin
Escribir
68/78
Leer
B0
21.9
Registro Descripcin
21.9.1
TWBR7
TWBR6
TWBR5
TWBR4
TWBR3
TWBR2
TWBR1
TWBR0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TWBR
21.9.2
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
R/W
R/W
R/W
R/W
R/W
R/W
TWCR
El TWCR se utiliza para controlar el funcionamiento de la TWI. Se utiliza para permitir que el TWI, para iniciar una
Acceso Maestro mediante la aplicacin de una condicin START para el autobs, para generar un receptor reconoce,
para generar una condicin de parada, y para controlar detencin del autobs, mientras que los datos se escriben en el
bus se escriben en el TWDR. Tambin indica una colisin de escritura, si los datos se intenta escribir en
TWDR mientras que el registro es inaccesible.
241
8161D-AVR-10.9
242
8161D-AVR-10.9
21.9.3
TWS7
TWS6
TWS5
TWS4
TWS3
TWPS1
TWPS0
Lectura / Escritura
R/W
R/W
Valor inicial
(0xB9)
TWSR
TWPS1
TWPS0
Precontador Valor
16
64
Para calcular las tasas de bits, consulte "Bit Rate Generator Unit" en la pgina 221. El valor de TWPS1..0 es
utilizado en la ecuacin.
21.9.4
TWD7
TWD6
TWD5
TWD4
TWD3
TWD2
TWD1
TWD0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TWDR
En modo de transmisin, TWDR contiene el siguiente byte a transmitir. En el modo de recepcin, el TWDR
Contiene el ltimo byte recibido. Es modificable mientras que el TWI no est en el proceso de cambio de un byte.
Esto ocurre cuando el indicador de interrupcin TWI (TWINT) es fijado por hardware. Tenga en cuenta que el Regis- datos
ter no puede ser inicializado por el usuario antes de que ocurra la primera interrupcin. Los datos de restos TWDR
estable mientras se establece TWINT. Si bien los datos se desplaza hacia fuera, los datos en el bus es a la vez
desplazado en. TWDR siempre contiene el ltimo byte en el bus, excepto despus de un despertar de
un modo de espera por el TWI interrumpir. En este caso, el contenido de TWDR no est definido. En el caso
243
8161D-AVR-10.9
21.9.5
TWA6
TWA5
TWA4
TWA3
TWA2
TWA1
TWA0
TWGCE
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TWAR
El TWAR debe cargarse con la direccin de esclavo de 7 bits (en los siete bits ms significativos de
TWAR) a los que el TWI responder cuando se programa como un transmisor o receptor Esclavo,
y no es necesario en los modos Maestro. En sistemas maestros mltiples, TWAR debe configurarse en maestros
que pueden ser abordados como esclavos por otros Maestros.
El LSB de TWAR se utiliza para permitir el reconocimiento de la direccin de llamada general (0x00). Hay una
comparador electrnico asociada que busca la direccin del esclavo (o llamada general direccin si
habilitado) en la direccin de serie recibido. Si se encuentra una coincidencia, se genera una solicitud de interrupcin.
Los bits 7..1 - TWA: TWI (Esclavo) Direccin del Registro
Estos siete bits constituyen la direccin del esclavo de la unidad TWI.
Bit 0 - TWGCE: TWI general de reconocimiento de llamadas Activar Bit
Si se establece, este bit permite el reconocimiento de una convocatoria general dado el 2 cables Serial Bus.
21.9.6
Lectura / Escritura
Valor inicial
TWAM [6: 0]
(0xBD)
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TWAMR
244
8161D-AVR-10.9
TWAR0
Direccin
Partido
Direccin
Bit 0
TWAMR0
Direccin de bit Comparador 0
245
8161D-AVR-10.9
Visin de conjunto
El comparador analgico se comparan los valores de entrada en la AIN0 pin positivo y el pin negativo
AIN1. Cuando el voltaje en el pin AIN0 positivo es mayor que el voltaje en el pin negativo
AIN1, la salida de comparador analgico, ACO, se establece. La salida del comparador se puede configurar para activar
la funcin de captura de entrada Temporizador / Counter1. Adems, el comparador puede desencadenar una separada
interrumpir, exclusiva al Comparador analgico. El usuario puede seleccionar Disparan interrupciones en comlugar de salida parator, otoo o de palanca. Un diagrama de bloques del comparador y su lgica circundante es
se muestra en la Figura 22-1.
El bit de energa Reduccin de ADC, PRADC, en "Minimizar el consumo de energa" en la pgina 42 necesario
estar deshabilitado escribiendo un cero lgico para ser capaz de utilizar el MUX de entrada ADC.
Figura 22-1. Comparador Diagrama de bloques analgicos(2)
BANDGAP
REFERENCIA
ACBG
ACME
ADEN
MULTIPLEXER ADC
SALIDA (1)
Notas:
22.2
246
8161D-AVR-10.9
22.3
ACME
ADEN
MUX2..0
xxx
AIN1
xxx
AIN1
000
ADC0
001
ADC1
010
ADC2
011
ADC3
100
ADC4
101
ADC5
110
ADC6
111
ADC7
Registro Descripcin
22.3.1
(0x7B)
ACME
ADTS2
ADTS1
ADTS0
Lectura / Escritura
R/W
R/W
R/W
R/W
Valor inicial
ADCSRB
22.3.2
0x30 (0x50)
ACD
ACBG
ACO
ACI
ACIE
ACIC
ACIS1
ACIS0
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
R/W
N/A
Valor inicial
ACSR
247
8161D-AVR-10.9
Tabla 22-2.
ACIS1
ACIS0
Modo de interrupcin
Reservado
Al cambiar los bits ACIS1 / ACIS0, Comparador de interrupcin analgica debe ser desactivado
limpiar su habilitacin de interrupcin poco en el Registro ACSR. De lo contrario, una interrupcin puede ocurrir cuando el
los bits se cambian.
248
8161D-AVR-10.9
22.3.3
(0x7F)
AIN1D
AIN0D
Lectura / Escritura
R/W
R/W
Valor inicial
DIDR1
249
8161D-AVR-10.9
Caractersticas
23.2
10-bit Resolucin
0,5 LSB Integral No linealidad
2 LSB Absolute Accuracy
13-260 mS Tiempo de conversin
Hasta 76,9 ksps (Hasta 15 ksps en la Resolucin Mxima)
6 multiplexado simples canales de entrada de composicin
2 adicionales multiplexado simples canales de entrada Ended (TQFP y QFN / FML paquete solamente)
Sensor de temperatura del canal de entrada
Ajuste Izquierda opcional para ADC Resultado Lectura
0 - VCC ADC Rango de voltaje de entrada
Seleccionable 1.1V Voltaje de referencia ADC
Free Running o modo de conversin individual
Interrumpir el ADC conversin completa
Sleep Canceler Modo de ruido
Visin de conjunto
El ATmega48PA / 88PA / 168PA / 328P ofrece una aproximacin sucesiva ADC de 10 bits. La
ADC est conectado a un multiplexor analgico de 8 canales que permite que ocho de composicin nica tensin
entradas construidas a partir de los pines de puerto A. Las entradas de un solo extremo de tensin se refieren a 0V (GND).
El ADC contiene un circuito de muestreo y retencin que asegura que el voltaje de entrada al ADC es
mantiene a un nivel constante durante la conversin. Un diagrama de bloques del ADC se muestra en Figura 23-1
en la pgina 251.
El ADC tiene un pasador tensin de alimentacin analgica separada, AVCC. AVCC no debe diferir en ms de 0,3 V
de VCC. Ver el prrafo "ADC Canceler ruido" en la pgina 256 sobre cmo conectar este pin.
Tensiones de referencia interna de 1.1V nominalmente o AVCC se proporcionan en el chip. La referencia de tensin
ENCE podr estar desacoplado externamente en el pin AREF por un condensador para un mejor rendimiento de ruido.
El bit de energa Reduccin de ADC, PRADC, en "Minimizar el consumo de energa" en la pgina 42 necesario
desactivado escribiendo un cero lgico para que el ADC.
El ADC convierte una tensin de entrada analgica a un valor digital de 10 bits a travs de sucesivas aproximado
macin. El valor mnimo representa GND y el valor mximo representa el voltaje en
el pasador AREF menos 1 LSB. Opcionalmente, AVCC o un voltaje interno de referencia 1.1V pueden ser conconectado al pin AREF por escrito a los bits REFSn en el Registro ADMUX. El interior
referencia de tensin puede, pues, ser desacoplado por un condensador externo en el pin AREF mejorar
inmunidad al ruido.
250
8161D-AVR-10.9
15
MULTIPLEXER ADC
SELECT (ADMUX)
REFS1
REFS0Adlar
MUX3MUX2MUX1MUX0
0
ADC DATOS REGISTRO
(ADCH / ADCL)
ADPS2ADPS1ADPS0
ADC [9: 0]
MUX DECODIFICADOR
Prescaler
SELECCIN DE CANAL
LGICA DE CONVERSIN
AVCC
1.1V INTERNO
REFERENCIA
AREF
10-BIT DAC
TEMPERATURA
SENSOR
GND
BANDGAP
REFERENCIA
ADC7
ADC6
ENTRADA
MUX
MULTIPLEXER ADC
SALIDA
ADC5
ADC4
ADC3
ADC2
ADC1
ADC0
El canal de entrada analgica se selecciona por escrito a los bits MUX en ADMUX. Cualquiera de la entrada del ADC
pasadores, as como GND y una referencia de tensin de banda prohibida fija, se pueden seleccionar como un solo extremo
entradas a la ADC. El ADC se habilita estableciendo el ADC Enable bit, ADEN en ADCSRA. Tensin
selecciones de referencia la edad y de los canales de entrada no entrarn en vigor hasta que ADEN est establecido. El ADC
no consume energa cuando ADEN est desactivada, por lo que se recomienda apagar el ADC
antes de entrar en los modos de suspensin de ahorro de energa.
El ADC genera un resultado de 10 bits que se presenta en el ADC registros de datos, y ADCH
ADCL. Por defecto, el resultado se presenta ajustado a la derecha, pero opcionalmente se puede presentar izquierda
ajustado al establecer el bit Adlar en ADMUX.
Si el resultado se deja ajustado y no ms de 8 bits se requiere precisin, es suficiente para leer
ADCH. De lo contrario, ADCL debe leerse primero, a continuacin, ADCH, para asegurar que el contenido de los datos
Registros pertenece a la misma conversin. Una vez ADCL se lee, el acceso a registros de datos ADC
est bloqueada. Esto significa que si ADCL se ha ledo, y una conversin completa antes ADCH es
251
8161D-AVR-10.9
23.3
Alternativamente, una conversin puede ser activado automticamente por diversas fuentes. Auto Activacin es
habilitado mediante el establecimiento de la ADC Auto disparador Activar bit, ADATE en ADCSRA. La fuente de disparo es
seleccionado mediante el establecimiento de los bits ADC Gatillo Select, ADTS en ADCSRB (Ver descripcin de las ADTS
bits para una lista de las fuentes de disparo). Cuando un flanco positivo se produce en la seal de disparo seleccionado,
el prescaler ADC se restablece y se inicia una conversin. Esto proporciona un mtodo de iniciar conversiones a intervalos fijos. Si la seal de disparo todava se establece cuando la conversin se completa, una nueva
no se iniciar la conversin. Si otro flanco positivo se produce en la seal de disparo durante la conversin, se ignorar el borde. Tenga en cuenta que una bandera de interrupcin se establecer aun cuando el especfico
interrupcin est deshabilitado o la interrupcin Global Enable bit en SREG se borra. Una conversin puede por lo tanto
desencadenarse sin causar una interrupcin. Sin embargo, la bandera de interrupcin debe borrarse con el fin de
desencadenar una nueva conversin en el prximo evento de interrupcin.
INICIO
ADIF
CLKADC
ADATE
FUENTE 1
.
.
.
.
FUENTE n
CONVERSIN
LGICA
EDGE
DETECTOR
ADSC
Uso de la interrupcin de la bandera de ADC como fuente de disparo hace que el ADC iniciar una nueva conversin tan pronto
como la conversin en curso ha terminado. El ADC entonces funciona en modo de funcionamiento libre, conconstantemente el muestreo y la actualizacin del registro de datos ADC. La primera conversin debe ser iniciado por
escribiendo un uno lgico en el bit ADSC en ADCSRA. En este modo el ADC llevar a cabo sucesiva
conversiones independientemente de si la interrupcin de la bandera de ADC, ADIF se borra o no.
252
8161D-AVR-10.9
23.4
Reajustar
7-BIT ADC prescaler
CK
CK / 128
32 / 64
CK / CK
16 / CK
CK / CK
2 / CK
4 /8
ADPS0
ADPS1
ADPS2
Por defecto, el circuito de aproximacin sucesiva requiere una frecuencia de reloj de entrada entre 50
kHz y 200 kHz para obtener la mxima resolucin. Si se necesita una resolucin inferior a 10 bits, la
Entrada de frecuencia de reloj a la ADC puede ser superior a 200 kHz para obtener una frecuencia de muestreo superior.
El mdulo ADC contiene un pre-escalador, que genera una frecuencia de reloj ADC aceptable
de cualquier frecuencia de la CPU por encima de 100 kHz. El preescala se establece por los bits ADPS en ADCSRA.
El prescaler empieza a contar desde el momento en que el ADC se enciende activando el bit ADEN
en ADCSRA. El pre-escalador sigue funcionando durante el tiempo que el bit ADEN est establecido, y es continuamente
reajustar cuando ADEN es baja.
Cuando se inicia una sola conversin ended activando el bit ADSC en ADCSRA, la conversin
comienza en el siguiente flanco ascendente del ciclo de reloj ADC.
Una conversin normal tarda 13 ciclos de reloj ADC. La primera conversin despus de la ADC se enciende
en (ADEN en ADCSRA est establecido) toma 25 ciclos de reloj ADC para inicializar los circuitos analgicos.
Cuando se utiliza la tensin de referencia de banda prohibida como entrada al ADC, tomar un cierto tiempo para
la tensin se estabilice. Si no estabilizado, el primer valor ledo despus de la primera conversin puede ser
mal.
La muestra y retencin real se lleva a cabo ciclos de reloj de 1,5 ADC despus del inicio de una conversacin normal,
Sion y 13.5 de reloj ADC ciclos despus del inicio de una primera conversin. Cuando una conversin es
completa, el resultado se escribe en el registros de datos ADC, y ADIF se establece. En Conversin Individual
modo, ADSC se borra simultneamente. El software puede entonces establecer ADSC de nuevo, y un nuevo
la conversin se iniciar en la primera ascendente de reloj ADC.
Cuando se utiliza el disparo automtico, el pre-escalador se restablece cuando se produce el evento de disparo. Esto asegura
un retardo fijo desde el evento de disparo para el comienzo de la conversin. En este modo, la muestra y retencin
tiene lugar dos ciclos de reloj ADC despus del flanco ascendente de la seal de fuente de disparo. Tres Adems
ciclos de reloj de la CPU cional se utilizan para la lgica de sincronizacin.
253
8161D-AVR-10.9
Figura 23-4. ADC Cronograma, primera conversin (conversin del modo individual)
Siguiente
Conversin
Primera conversin
Nmero Ciclo
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ADC Reloj
ADEN
ADSC
ADIF
Regstrate y MSB de Resultado
ADCH
LSB de Resultado
ADCL
MUX y REFS
Actualizacin
Conversin
Completo
MUX y REFS
Actualizacin
Nmero Ciclo
Conversin Siguiente
10
11
12
13
ADC Reloj
ADSC
ADIF
ADCH
ADCL
LSB de Resultado
Sample & Hold
Conversin
Completo
MUX y REFS
Actualizacin
MUX y REFS
Actualizacin
Nmero Ciclo
Conversin Siguiente
10
11
12
13
ADC Reloj
Gatillo
Fuente
ADATE
ADIF
ADCH
ADCL
LSB de Resultado
Sample &
Mantener
Precontador
Reajustar
Conversin
Completo
Precontador
Reajustar
MUX y REFS
Actualizacin
254
8161D-AVR-10.9
Nmero Ciclo
11
12
Conversin Siguiente
13
ADC Reloj
ADSC
ADIF
ADCH
ADCL
LSB de Resultado
Conversin
Completo
Tabla 23-1.
Condicin
Tiempo de conversin
(Ciclos)
13.5
25
1.5
13
13.5
23.5
MUX y REFS
Actualizacin
Si se utiliza el disparo automtico, la hora exacta del evento desencadenante puede ser indeterminista. Especial
se debe tener cuidado al actualizar el Registro ADMUX, con el fin de controlar que la conversin
se vern afectados por la nueva configuracin.
Si tanto ADATE y ADEN se escriben en uno, un evento de interrupcin puede ocurrir en cualquier momento. Si el
ADMUX Registro se cambia en este periodo, el usuario no puede saber si la siguiente conversin se basa
en la vieja o la nueva configuracin. ADMUX se puede actualizar de forma segura de las siguientes maneras:
a. Cuando se borra ADATE o ADEN.
b.
Durante la conversin, un ciclo de reloj ADC mnimo despus de que el evento de disparo.
c.
Despus de una conversin, antes de la bandera de interrupcin utiliza como fuente de disparo es despejado.
Al actualizar ADMUX en una de estas condiciones, los nuevos ajustes afectarn la prxima ADC
conversin.
255
8161D-AVR-10.9
23.5.2
Si el usuario tiene una fuente de voltaje fijo conectado al pin AREF, el usuario no puede utilizar el otro
opciones de voltaje de referencia en la aplicacin, ya que se reducir a la tensin externa. Si no hay
tensin externa se aplica al pin AREF, el usuario puede cambiar entre AVCC y 1.1V como rencia
Seleccin de referencia. El primer resultado de la conversin ADC despus de cambiar la fuente de voltaje de referencia puede
es inexacta, y se advierte al usuario de desechar este resultado.
23.6
Entre en el modo de reduccin de ruido ADC (o el modo de espera). El ADC se iniciar una conversin
una vez que la CPU se ha detenido.
c.
Si no hay otras interrupciones se producen antes de que finalice la conversin ADC, el ADC interrumpir
despertar la CPU y ejecutar la conversin ADC rutina de interrupcin completa. Si
otra interrupcin despierta la CPU antes de la conversin ADC es completa, que
interrupcin se ejecutar, y una solicitud de interrupcin completa conversin ADC ser
generada cuando la conversin ADC completa. La CPU permanecer en modo activo
hasta que se ejecuta un comando nuevo sueo.
Tenga en cuenta que el ADC no se apaga automticamente al entrar en otros modos de suspensin al ralent
el modo y el modo de reduccin de ruido ADC. Se aconseja al usuario escribir cero a ADEN antes de entrar
ing esos modos de suspensin para evitar el consumo excesivo poder.
256
8161D-AVR-10.9
Este producto est optimizado para seales analgicas con una impedancia de salida de aproximadamente 10 kW o
menos. Si se utiliza una fuente tal, el tiempo de muestreo ser insignificante. Si una fuente con una mayor impedancia
se utiliza ANCE, el tiempo de muestreo depender de cunto tiempo la fuente necesita cargar la
S condensador / H, con puede variar ampliamente. Se recomienda al usuario utilizar slo baja impedancia
fuentes de variacin lenta seales, ya que esto minimiza la transferencia de carga requerida a la S / H
capacitor.
Componentes de seal superiores a la frecuencia de Nyquist (FADC / 2) no deben estar presentes para que sea
tipo de canales, para evitar la distorsin de la convolucin de la seal impredecible. Se recomienda al usuario
para eliminar los componentes de alta frecuencia con un filtro de paso bajo antes de aplicar las seales como
entradas a la ADC.
IIH
ADCn
1..100 kW
CS / H = 14 pF
IIL
VCC / 2
23.6.2
El pasador de AVCC en el dispositivo debe estar conectado a la tensin de suministro digital de VCC a travs de
una red LC como se muestra en Figura 23-9.
c.
Utilice la funcin cancelador de ruido ADC para reducir el ruido inducido de la CPU.
d. Si cualquier ADC [3..0] pines del puerto se utilizan como salidas digitales, es esencial que estos no hacen
interruptor mientras una conversin est en curso. Sin embargo, utilizando la interfaz de 2 hilos (ADC4
257
8161D-AVR-10.9
Plano de
tierra
analgica
GND VCC
PC1 (ADC1)
PC0 (ADC0)
ADC7
GND
AREF
ADC6
10H
100nF
AVCC
PB5
23.6.3
258
8161D-AVR-10.9
ADC Ideal
ADC Actual
Offset
Error
Error de ganancia: Despus de ajustar por offset, el error de ganancia se encuentra como la desviacin de la ltima transicin
(0x3FE a 0x3ff) en comparacin con la transicin ideales (al 1,5 LSB por debajo del mximo). Valor ideal: 0
LSB
Ganancia
Error
ADC Ideal
ADC Actual
Integral No linealidad (INL): Despus de ajustar por error de desplazamiento y la ganancia, la INL es el mximo
desviacin de una transicin real en comparacin con una transicin ideal para cualquier cdigo. Valor ideal: 0
LSB.
259
8161D-AVR-10.9
INL
ADC Ideal
ADC Actual
VREF
Voltaje de entrada
No linealidad diferencial (DNL): La desviacin mxima de la anchura de cdigo real (el intervalo
entre dos transiciones adyacentes) de la anchura de cdigo ideales (1 LSB). Valor ideal: 0 LSB.
Figura 23-13. No linealidad diferencial (DNL)
Cdigo de salida
0x3ff
1 LSB
DNL
0x000
0
Cuantificacin Error: Debido a la cuantizacin de la tensin de entrada en un nmero finito de cdigos, una
gama de voltajes de entrada (1 LSB ancho) codificar en el mismo valor. Siempre 0,5 LSB.
La precisin absoluta: La desviacin mxima de una (sin ajustar) transicin real en comparacin con
una transicin ideal para cualquier cdigo. Este es el efecto compuesto de offset, error de ganancia, diferencial
error, no linealidad, y el error de cuantificacin. Valor ideal: 0,5 LSB.
260
8161D-AVR-10.9
23.7
donde VIN es el voltaje en el pin de entrada seleccionado y VREF la referencia de tensin seleccionado (ver
Tabla 23-3 en la pgina 262 y Tabla 23-4 en la pgina 263). 0x000 representa tierra analgica, y
0x3ff representa el uno menos tensin de referencia seleccionado LSB.
23.8
Medicin de temperatura
La medicin de temperatura se basa en un sensor de temperatura en el chip que est acoplado a una
canal ADC8 solo extremo. Seleccin del canal ADC8 escribiendo los bits MUX3..0 en ADMUX
registrarse para "1000" permite que el sensor de temperatura. La referencia de voltaje 1.1V interna debe
tambin ser seleccionado para la fuente de voltaje de referencia ADC en la medicin del sensor de temperatura.
Cuando el sensor de temperatura est activada, el convertidor ADC se puede utilizar en la conversin solo
el modo de medir la tensin en el sensor de temperatura.
La tensin medida tiene una relacin lineal con la temperatura como se describe en Tabla 23-2.
La sensibilidad de tensin es de aproximadamente 1 mV / C y la exactitud de la medicin de temperatura
cin es de +/- 10 C.
Tabla 23-2.
Temperatura / C
Tensin / mV
-45 C
242 mV
+ 25 C
314 mV
+ 85 C
380 mV
Los valores descritos en Tabla 23-2 son valores tpicos. Sin embargo, debido a la variacin del proceso de la
tensin de salida del sensor de temperatura vara de un chip a otro. Para ser capaz de alcanzar
bsqueda precisa la medicin de temperatura pueden ser calibrados en la aplicacin de softWare. La calibracin del software requiere que un valor de calibracin se mide y se almacena en una
registrar o EEPROM para cada chip, como parte de la prueba de produccin. La calibracin del software puede
hacerse utilizando la frmula:
261
8161D-AVR-10.9
23.9
Registro Descripcin
23.9.1
REFS1
REFS0
R/W
R/W
Adlar
MUX3
MUX2
MUX1
MUX0
R/W
R/W
R/W
R/W
R/W
ADMUX
Tabla 23-3.
REFS1
REFS0
Reservado
262
8161D-AVR-10.9
Tabla 23-4.
Nota:
23.9.2
0000
ADC0
0001
ADC1
0010
ADC2
0011
ADC3
0100
ADC4
0101
ADC5
0110
ADC6
0111
ADC7
1000
ADC8(1)
1001
(Reservado)
1010
(Reservado)
1011
(Reservado)
1100
(Reservado)
1101
(Reservado)
1110
1.1V (VBG)
1111
0V (GND)
ADEN
ADSC
ADATE
ADIF
ADIE
ADPS2
ADPS1
ADPS0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
ADCSRA
ADSC leer como uno mientras una conversin est en curso. Cuando se completa la conversin,
vuelve a cero. Escribir cero a este bit no tiene ningn efecto.
263
8161D-AVR-10.9
ADPS2
ADPS1
ADPS0
Factor Divisin
16
32
64
128
264
8161D-AVR-10.9
23.9.3
23.9.3.1
15
14
13
12
11
10
(0x79)
ADC9
ADC8
ADCH
(0x78)
ADC7
ADC6
ADC5
ADC4
ADC3
ADC2
ADC1
ADC0
ADCL
Lectura / Escritura
Valor inicial
23.9.3.2
Adlar = 1
Bit
15
14
13
12
11
10
(0x79)
ADC9
ADC8
ADC7
ADC6
ADC5
ADC4
ADC3
ADC2
ADCH
(0x78)
ADC1
ADC0
ADCL
Lectura / Escritura
Valor inicial
Cuando una conversin ADC es completa, el resultado se encuentra en estos dos registros.
Cuando ADCL es ledo, el registro de datos ADC no se actualiza hasta que se lea ADCH. En consecuencia, si
el resultado se deja ajustado y no ms de 8 bits se requiere precisin, es suficiente para leer
ADCH. De lo contrario, ADCL debe leerse primero, luego ADCH.
El bit Adlar en ADMUX, y los bits de MUXn en ADMUX afectan a la forma en que el resultado se lee desde
los registros. Si Adlar se establece, el resultado se ajusta izquierda. Si Adlar se borra (por defecto), el resultado
se ajusta bien.
ADC9: 0: ADC Conversin Resultado
Estos bits representan el resultado de la conversin, como se detalla en "ADC Resultado de la conversin" en la
pgina 261.
23.9.4
(0x7B)
ACME
ADTS2
ADTS1
ADTS0
Lectura / Escritura
R/W
R/W
R/W
R/W
Valor inicial
ADCSRB
265
8161D-AVR-10.9
23.9.5
ADTS2
ADTS1
ADTS0
Fuente de disparo
Comparador analgico
(0x7E)
ADC5D
ADC4D
ADC3D
ADC2D
ADC1D
ADC0D
Lectura / Escritura
R/W
R/W
R/W
R/W
R/W
R/W
Valor inicial
DIDR0
Nota que los pines ADC ADC7 y ADC6 no tienen buffers de entrada digital, y por lo tanto no hacer
requerir de entrada Digital pedacitos Deshabilitar.
266
8161D-AVR-10.9
Caractersticas
24.2
Visin de conjunto
El sistema de depuracin debugWIRE on-chip utiliza un Uno-alambre, interfaz bidireccional para controlar el
el flujo del programa, ejecutar instrucciones AVR en la CPU y programar los diferentes no voltil
recuerdos.
24.3
Interfaz fsica
Cuando el debugWIRE Enable (DWEN) Fusible est programado y bits de bloqueo estn sin programar,
el sistema debugWIRE en el dispositivo de destino est activada. El pin del puerto RESET est configurado
como un cable-Y (drenaje abierto) pin I / O bidireccional con pull-up habilitado y se convierte en la comugateway nicacin entre el objetivo y el emulador.
VCC
dW
dW (REINICIAR)
GND
Figura 24-1 muestra el esquema de un MCU de destino, con debugWIRE activado, y el emulador
conector. El reloj del sistema no se ve afectada por debugWIRE y siempre ser la fuente de reloj
seleccionado por los fusibles CKSEL.
267
8161D-AVR-10.9
24.4
El Flash debe reprogramarse cada vez un punto de quiebre se cambia. Esto es automticamente
manejado por AVR Studio a travs de la interfaz debugWIRE. El uso de puntos de ruptura ser, por tanto,
reducir la retencin de datos de Flash. Los dispositivos utilizados para propsitos de depuracin no deben ser enviados a
clientes finales.
24.5
Limitaciones de debugWIRE
El pasador de comunicacin debugWIRE (DW) se encuentra fsicamente en el mismo pin como externa
Reset (RESET). Una fuente de restauracin externa, por tanto, no se admite cuando la debugWIRE es
habilitado.
Un programada DWEN Fusible hace que algunas partes del sistema de reloj para estar en ejecucin en todo el sueo
modos. Esto aumentar el consumo de energa mientras que en el sueo. As, el DWEN fusible
desactivado cuando no se utiliza debugWIRE.
24.6
Registro Descripcin
En la siguiente seccin se describen los registros utilizados con el debugWIRE.
24.6.1
DWDR [7: 0]
Lectura / Escritura
Valor inicial
DWDR
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
El Registro DWDR proporciona un canal de comunicacin del programa que se ejecuta en la MCU
al depurador. Este registro slo se puede acceder por el debugWIRE y por lo tanto no puede ser
utilizado como un registro de propsito general en las operaciones normales.
268
8161D-AVR-10.9
Visin de conjunto
En ATmega48PA, no hay apoyo Lee-While-escritura, y no Seccin del gestor de arranque independiente.
La instruccin SPM puede ser ejecutado desde todo el flash.
El dispositivo proporciona un mecanismo de auto-programacin para la descarga y carga de programa
cdigo por el propio MCU. El Auto-programacin se puede utilizar cualquier interfaz de datos disponible y asoprotocolo ATED a leer y escribir cdigo (programa) que el cdigo en la memoria de programa.
La memoria de programa se actualiza en una pgina por pgina la moda. Antes de programar una pgina con
los datos almacenados en la memoria intermedia de pgina temporal, la pgina deben ser borrados. La pgina tamponadas
temporal
fer est lleno de una palabra a la vez utilizando SPM y el tampn se puede llenar ya sea antes de la Pgina
Comando o Borrar entre un borrado de pgina y una operacin de escritura de pgina:
Alternativa 1, llene el bfer antes de una Erase Pgina
Llene el bfer de pgina temporal
Realiza un borrado Pgina
Realizar una pgina de escritura
Alternativa 2, llenar el bfer despus Pgina Erase
Realiza un borrado Pgina
Llene el bfer de pgina temporal
Realizar una pgina de escritura
Si slo una parte de la pgina necesita ser cambiado, el resto de la pgina debe almacenarse (por ejemplo,
en el bfer de pgina temporal) antes de que el borrado, y luego ser re-escrita. Cuando se utiliza la alternativa 1,
el gestor de arranque proporciona una funcin de lectura-escritura-modificar eficaz que permite que el software de usuario
leer primero la pgina, hacer los cambios necesarios, y luego escribir de nuevo los datos modificados. Si alternativa
nativo 2 se utiliza, no es posible leer los datos antiguos durante la carga ya que la pgina ya est
borrado. El buffer de pgina temporal se puede acceder en una secuencia aleatoria. Es esencial que
la direccin de la pgina utiliza tanto en la operacin Pgina de borrado y escritura de pgina est abordando el mismo
pgina.
25.1.1
269
8161D-AVR-10.9
25.2
15
14
13
12
11
10
ZH (R31)
Z15
Z14
Z13
Z12
Z11
Z10
Z9
Z8
ZL (R30)
Z7
Z6
Z5
Z4
Z3
Z2
Z1
Z0
Dado que el flash se organiza en pginas (vase Tabla 27-11 en la pgina 299), el contador de programa puede
ser tratado como que tiene dos secciones diferentes. Una seccin, que consta de los bits menos significativos, es
frente a las palabras dentro de una pgina, mientras que los bits ms significativos estn abordando las pginas.
Esto se muestra en Figura 26-3 en la pgina 282. Tenga en cuenta que la pgina de borrado y escritura de pgina operaciones
se tratan de forma independiente. Por lo tanto es de gran importancia que las direcciones de software
la misma pgina, tanto en la pgina de borrado y operacin Pgina Write.
La instruccin LPM utiliza el Z-puntero para almacenar la direccin. Desde esta instruccin se dirige a la
Se utiliza flash byte a byte, tambin el LSB (bit Z0) del Z-puntero.
Figura 25-1. Abordar el flash durante SPM(1)
BIT
15
ZPCMSB
ZPAGEMSB
Z - REGISTRO
10
0
PCMSB
PROGRAMA
CONTADOR
PAGEMSB
PCPAGE
Direccin de la pgina
DENTRO DEL FLASH
PROGRAMA DE MEMORIA
PGINA
PCWORD
DIRECCIN DE PALABRAS
Dentro de una pgina
PGINA
PALABRA DE INSTRUCCIONES
PAGEEND
Nota:
1. Las diversas variables utilizadas en Figura 26-3 se enumeran en Tabla 27-11 en la pgina 299.
270
8161D-AVR-10.9
25.2.2
Bit
Rd
LB2
LB1
El algoritmo para leer el byte bajo del fusible es similar a la descrita anteriormente para la lectura
los bits de bloqueo. Para leer el byte de fusibles de baja, cargue el Z-puntos con 0x0000 y establecer el BLBSET
y bits SELFPRGEN en SPMCSR. Cuando una instruccin se ejecuta LPM dentro de los tres ciclos
despus de los bits de BLBSET y SELFPRGEN se establecen en el SPMCSR, el valor de byte bajo del fusible
(FLB) ser cargado en el registro de destino, como se muestra below.See Tabla 27-5 en la pgina 296 para
una descripcin detallada y mapeo del byte bajo del fusible.
Bit
Rd
FLB7
FLB6
FLB5
FLB4
FLB3
FLB2
FLB1
FLB0
Del mismo modo, al leer el fusible de alta byte (FHB), 0x0003 carga en el Z-puntero. Cuando un LPM
instruccin se ejecuta dentro de los tres ciclos despus de los bits BLBSET y SELFPRGEN se establecen en el
SPMCSR, el valor del byte alto del fusible ser cargado en el registro de destino, como se muestra
a continuacin. Ver Tabla 27-5 en la pgina 296 para una descripcin detallada y mapeo del fusible extendido
byte.
Bit
Rd
FHB7
FHB6
FHB5
FHB4
FHB3
FHB2
FHB1
FHB0
Del mismo modo, al leer el byte extendido Fusible (EFB), 0x0002 carga en el Z-puntero. Cuando una
LPM instruccin se ejecuta dentro de los tres ciclos despus se establecen los bits BLBSET y SELFPRGEN
en el SPMCSR, el valor del byte de fusibles Extended ser cargado en el registro de destino como
se muestra a continuacin. Ver Tabla 27-5 en la pgina 296 para una descripcin detallada y mapeo del extendido
Byte Fuse.
Bit
Rd
FHB7
FHB6
FHB5
FHB4
FHB3
FHB2
FHB1
FHB0
Fusibles y Lock bits que se programan, se leer como cero. Fusibles y Lock bits que son
no programado, ser ledo como una sola.
271
8161D-AVR-10.9
25.2.3
25.2.4
272
8161D-AVR-10.9
25.2.5
273
8161D-AVR-10.9
Do_spm:
; comprobar anterior completa SPM
Wait_spm:
intemp1, SPMCSR
temp1 SBRC, SELFPRGEN
rjmp Wait_spm
; entrada: spmcrval determina la accin SPM
; deshabilitar las interrupciones si est activado, el estado de tienda
intemp2, SREG
cli
; compruebe que no tiene acceso de escritura EEPROM est presente
Wait_ee:
SBIC EECR, EEPE
rjmp Wait_ee
; SPM secuencia temporizada
fuera SPMCSR, spmcrval
spm
; restaurar SREG (para habilitar las interrupciones si est habilitado
en un principio)
fuera SREG, temp2
enriar
274
8161D-AVR-10.9
25.3
Registro Descripcin
25.3.1
SPMIE
RWWSB
RWWSRE
BLBSET
PGWRT
PGERS
R/W
R/W
R/W
R/W
R/W
R/W
SELFPRGEN
SPMCSR
275
8161D-AVR-10.9
Escribir cualquier otra combinacin de "10001", "01001", "00101", "00011" o "00001" en la parte inferior
cinco bits no tendrn ningn efecto.
276
8161D-AVR-10.9
Caractersticas
Leer-While-Escribe Auto-Programacin
Bota flexible Tamao de la memoria
Alta Seguridad (separada de bloqueo de arranque Bits para una proteccin flexible)
Fusible por separado para Seleccione Reset Vector
Pgina optimizada(1) Tamao
Cdigo algoritmo eficiente
Eficiente lectura-modificacin-escritura Soporte
Nota:
26.2
1. Una pgina es una seccin en el flash que consta de varios bytes (ver Tabla 27-11 en la pgina 299)
utilizado durante la programacin. La organizacin de la pgina no afecta al funcionamiento normal.
Visin de conjunto
En ATmega88PA, ATmega168PA y ATmega328P, el cargador de arranque de apoyo proporciona una verdadera
Leer-While-Escribe mecanismo de auto-programacin para la descarga y carga de cdigo de programa
por la propia MCU. Esta caracterstica permite que las actualizaciones de software de aplicaciones flexibles controlados por el
MCU utilizando un programa gestor de arranque-Flash residente. El programa gestor de arranque puede usar cualquier disponibles
interfaz de datos capaz y protocolo asociado para leer cdigo y escribir (programa) que cdigo en el
La memoria flash, o leer el cdigo de la memoria del programa. El cdigo del programa en el arranque
Seccin del cargador tiene la capacidad de escribir en todo el Flash, incluyendo el gestor de arranque bro
ria. El cargador de arranque as an puede modificar en s, y tambin puede borrar en s a partir del cdigo si el
caracterstica no se necesita ms. El tamao de la memoria del gestor de arranque se puede configurar con fusibles
y el gestor de arranque tiene dos conjuntos separados de bits de bloqueo de arranque que se pueden ajustar de forma
independiente.
Esto da al usuario una flexibilidad nica para seleccionar diferentes niveles de proteccin.
26.3
26.3.1
Seccin de Aplicacin
La seccin de aplicacin es la seccin de la Flash que se utiliza para almacenar el cdigo de aplicacin.
El nivel de proteccin para la seccin de Aplicacin puede ser seleccionado por la aplicacin bits de bloqueo de arranque
(Bits de bloqueo de arranque 0), ver Tabla 26-2 en la pgina 281. La seccin de aplicacin nunca puede almacenar cualquier
Cdigo del gestor de arranque desde la instruccin SPM se desactiva cuando se ejecuta desde la aplicacin
seccin.
26.3.2
277
8161D-AVR-10.9
Para borrar o escribir una pgina ubicada dentro de la seccin RWW, la seccin NRWW puede ser
leer durante la operacin.
Para borrar o escribir una pgina ubicada dentro de la seccin NRWW, la CPU se detiene durante el
toda la operacin.
Tenga en cuenta que el software del usuario nunca puede leer cualquier cdigo que se encuentra dentro de la seccin RWW
durante
ing una operacin de software del gestor de arranque. La sintaxis "lectura-escritura Mientras seccin" se refiere a que
seccin que se est programando (borrarlos ni), no que la seccin que realmente es ser
leer durante una actualizacin del software del gestor de arranque.
26.4.1
26.4.2
Tabla 26-1.
Leer-While-Write Caractersticas
CPU Halted?
Leer-While-Escribir
Apoyado?
Seccin NRWW
No
No
Ninguno
278
8161D-AVR-10.9
Leer-While-Escribir
(RWW) Seccin
Z-puntero
Direcciones NRWW
Seccin
Z-puntero
Direcciones RWW
Seccin
Sin lectura-While-escritura
(NRWW) Seccin
CPU se detiene
Durante la operacin
Cdigo Ubicado en
Seccin NRWW
Puede ser leda durante
la Operacin
279
8161D-AVR-10.9
Memoria de programa
BOOTSZ = '11'
0x0000
0x0000
Leer-While-Write
Seccin
Leer-While-Write
Seccin
Fin RWW
Inicio NRWW
Fin RWW
Inicio NRWW
Fin de aplicaciones
Iniciar gestor de arranque
Seccin del gestor de arranque de Flash Flashend
Fin de aplicaciones
Iniciar gestor de arranque
Flashend
Memoria de programa
BOOTSZ = '01'
Memoria de programa
BOOTSZ = '00'
0x0000
Leer-While-Write
Seccin
0x0000
Leer-While-Write
Seccin
Aplicacin Seccin de Flash
Fin RWW
Inicio NRWW
Nota:
26.5
Flashend
280
8161D-AVR-10.9
Tabla 26-2.
Modo BLB0
BLB02
BLB01
Nota:
Modo BLB1
Bota Lock Bit1 Modos de Proteccin (Seccin del gestor de arranque) (1)
BLB12
BLB11
26.6
Proteccin
Tabla 26-3.
Nota:
Proteccin
Nota:
Restablecer Restablecer Vector = gestor de arranque (ver Tabla 26-7 en la pgina 289)
281
8161D-AVR-10.9
15
14
13
12
11
10
ZH (R31)
Z15
Z14
Z13
Z12
Z11
Z10
Z9
Z8
ZL (R30)
Z7
Z6
Z5
Z4
Z3
Z2
Z1
Z0
Dado que el flash se organiza en pginas (vase Tabla 27-11 en la pgina 299), el contador de programa puede
ser tratado como que tiene dos secciones diferentes. Una seccin, que consta de los bits menos significativos, es
frente a las palabras dentro de una pgina, mientras que los bits ms significativos estn abordando las pginas.
Esto se muestra en la is1 Figura 26-3. Tenga en cuenta que las operaciones de escritura Pgina Borrar y Page estn
abordado de forma independiente. Por lo tanto es de gran importancia que el software del gestor de arranque
se dirige a la misma pgina, tanto en la pgina de borrado y operacin Pgina Write. Una vez que una programacin
se inicia la operacin ming, la direccin est bloqueada y el Z-puntos puede ser utilizado para otros
operaciones.
La nica operacin SPM que no utiliza el Z-puntero est fijando los bits del gestor de arranque de bloqueo.
El contenido de la Z-puntero se ignora y no tendr ningn efecto sobre el funcionamiento. El LPM
instruccin no tambin usan el Z-puntero para almacenar la direccin. Desde esta instruccin se dirige a la
Se utiliza flash byte a byte, tambin el LSB (bit Z0) del Z-puntero.
15
ZPCMSB
ZPAGEMSB
Z - REGISTRO
10
0
PCMSB
PROGRAMA
CONTADOR
PAGEMSB
PCPAGE
Direccin de la pgina
DENTRO DEL FLASH
PROGRAMA DE MEMORIA
PGINA
PCWORD
DIRECCIN DE PALABRAS
Dentro de una pgina
PGINA
PALABRA DE INSTRUCCIONES
PAGEEND
Nota:
26.8
1. Las diversas variables utilizadas en Figura 26-3 se enumeran en Tabla 26-9 en la pgina 289.
282
8161D-AVR-10.9
26.8.1
Pgina Erase a la seccin RWW: La seccin NRWW se puede leer durante el borrado de pgina.
Pgina Erase a la seccin NRWW: Se detiene la CPU durante la operacin.
26.8.2
Si la EEPROM est escrito en el medio de una operacin de carga SPM pgina, todos los datos cargados sern
perdida.
26.8.3
Pgina Escribir a la seccin RWW: La seccin NRWW se puede leer durante la Pgina Write.
Pgina escribir en la parte NRWW: Se detiene la CPU durante la operacin.
283
8161D-AVR-10.9
26.8.5
26.8.6
26.8.7
R0
BLB12
BLB11
BLB02
BLB01
LB2
LB1
Ver Tabla 26-2 y Tabla 26-3 de cmo las diferentes configuraciones de los bits del gestor de arranque afectan a la
El acceso de Flash.
Si los bits 5..0 en R0 se borran (cero), el correspondiente bit de bloqueo se puede programar si un SPM
instruccin se ejecuta dentro de los cuatro ciclos despus BLBSET y SELFPRGEN se fijan en SPMCSR.
El Z-puntero es no cuidar durante esta operacin, pero para la futura compatibilidad se recomienda
cargar el Z-puntos con 0x0001 (el mismo que se utiliza para la lectura de los bits de bloqueo). Por compatibilidad futuro
Tambin se recomienda establecer los bits 7 y 6 en R0 a "1" al escribir los bits de bloqueo. Cuando programaming Lock Bits de todo el flash se puede leer durante la operacin.
26.8.8
26.8.9
284
8161D-AVR-10.9
Bit
Rd
BLB12
BLB11
BLB02
BLB01
LB2
LB1
El algoritmo para leer el byte bajo del fusible es similar a la descrita anteriormente para la lectura
los bits de bloqueo. Para leer el byte de fusibles de baja, cargue el Z-puntos con 0x0000 y establecer el BLBSET
y bits SELFPRGEN en SPMCSR. Cuando una instruccin se ejecuta LPM dentro de los tres ciclos
despus de los bits de BLBSET y SELFPRGEN se establecen en el SPMCSR, el valor de byte bajo del fusible
(FLB) ser cargado en el registro de destino, como se muestra a continuacin. Referirse a Tabla 27-5 en la pgina 296
para una descripcin detallada y mapeo del byte bajo del fusible.
Bit
Rd
FLB7
FLB6
FLB5
FLB4
FLB3
FLB2
FLB1
FLB0
Del mismo modo, al leer el byte alto Fuse, carga 0x0003 en el Z-puntero. Cuando una instruccin LPM
cin se ejecuta dentro de los tres ciclos despus de los bits de BLBSET y SELFPRGEN se establecen en el
SPMCSR, el valor del byte alto Fusible (FHB) ser cargado en el registro destino como
se muestra a continuacin. Referirse a Tabla 27-7 en la pgina 296 para una descripcin detallada y mapeo del Fusible
Byte alto.
Bit
Rd
FHB7
FHB6
FHB5
FHB4
FHB3
FHB2
FHB1
FHB0
Al leer el byte Fusible extendido, 0x0002 carga en el Z-puntero. Cuando una instruccin LPM
se ejecuta dentro de los tres ciclos despus de los bits BLBSET y SELFPRGEN se establecen en el SPMCSR,
el valor del byte Fusible Extended (EFB) ser cargado en el registro de destino, como se muestra
a continuacin. Referirse a Tabla 27-5 en la pgina 296 para una descripcin detallada y mapeo del extendido
Byte Fuse.
Bit
Rd
BCI3
EFB2
BCI1
EFB0
Fusibles y Lock bits que se programan, se leer como cero. Fusibles y Lock bits que son
no programado, ser ledo como una sola.
08.26.10
285
8161D-AVR-10.9
Tabla 26-5.
Firma Byte
Z-puntero de direccin
0x0000
0x0002
0x0004
0x0001
Nota:
26.08.11
26.08.12
Smbolo
3.7 ms
Nota:
08.26.13
286
8161D-AVR-10.9
287
8161D-AVR-10.9
Do_spm:
; comprobar anterior completa SPM
Wait_spm:
intemp1, SPMCSR
temp1 SBRC, SELFPRGEN
rjmp Wait_spm
; entrada: spmcrval determina la accin SPM
; deshabilitar las interrupciones si est activado, el estado de tienda
intemp2, SREG
cli
; compruebe que no tiene acceso de escritura EEPROM est presente
Wait_ee:
SBIC EECR, EEPE
rjmp Wait_ee
; SPM secuencia temporizada
fuera SPMCSR, spmcrval
spm
; restaurar SREG (para habilitar las interrupciones si est habilitado
en un principio)
fuera SREG, temp2
enriar
288
8161D-AVR-10.9
BOOTSZ1
BOOTSZ0
Bota
Tamao
Pginas
Bota
Cargador
Flash
Seccin
Fin
Aplicacin
Seccin
0x000 - 0xF7F
0xF80 - 0xFFF
0xF7F
0xF80
128 palabras
256 palabras
0x000 - 0xEFF
0xF00 - 0xFFF
0xEFF
0xF00
512 palabras
16
0x000 - 0xDFF
0xE00 - 0xFFF
0xDFF
0xE00
1024 palabras
32
0x000 - 0xBFF
0xc00 - 0xFFF
0xBFF
0xc00
Nota:
Tabla 26-8.
Aplicacin
Flash
Seccin
Las diferentes configuraciones BOOTSZ fusibles se muestran en Figura 26-2 en la pgina 280.
Seccin
Pginas
Direccin
96
0x000 - 0xBFF
32
0xc00 - 0xFFF
Para ms detalles sobre estos dos seccin, consulte "NRWW - no Seccin Lee-While-Write" en la pgina 278 y "RWW - Leer-tiempoEscribe Seccin "en la pgina 278
Tabla 26-9.
Explicacin de las distintas variables que se utilizan en Figura 26-3 y la cartografa de la Z-puntero, ATmega88PA
Correspondiente
Z-valor(1)
Variable
Descripcin
PCMSB
11
PAGEMSB
El bit ms significativo que se utiliza para hacer frente a las palabras dentro de una
pgina (32 palabras en una pgina requiere 5 bits de PC [4: 0]).
ZPCMSB
Z12
ZPAGEMSB
Z5
PCPAGE
PC [11: 5]
Z12: Z6
PCWORD
PC [4: 0]
Z5: Z1
Nota:
289
8161D-AVR-10.9
BOOTSZ1
BOOTSZ0
Bota
Tamao
Pginas
Aplicacin
Flash
Seccin
Bota
Cargador
Flash
Seccin
Fin
Aplicacin
Seccin
128 palabras
0x0000 - 0x1F7F
0x1F80 - 0x1FFF
0x1F7F
0x1F80
256 palabras
0x0000 - 0x1EFF
0x1F00 - 0x1FFF
0x1EFF
0x1F00
512 palabras
0x0000 - 0x1DFF
0x1E00 - 0x1FFF
0x1DFF
0x1E00
1024 palabras
16
0x0000 - 0x1BFF
0x1C00 - 0x1FFF
0x1BFF
0x1C00
Nota:
Las diferentes configuraciones BOOTSZ fusibles se muestran en Figura 26-2 en la pgina 280.
Pginas
Direccin
112
0x0000 - 0x1BFF
16
0x1C00 - 0x1FFF
Para ms detalles sobre estos dos seccin, consulte "NRWW - no Seccin Lee-While-Write" en la pgina 278 y "RWW - Leer-tiempoEscribe Seccin "en la pgina 278
Tabla 26-12. Explicacin de las distintas variables que se utilizan en Figura 26-3 y la cartografa de la Z-puntero, ATmega168PA
Correspondiente
Z-valor(1)
Variable
PCMSB
12
PAGEMSB
Descripcin
ZPCMSB
Z13
ZPAGEMSB
Z6
PCPAGE
PC [12: 6]
Z13: Z7
PCWORD
PC [5: 0]
Z6: Z1
Nota:
290
8161D-AVR-10.9
BOOTSZ1
BOOTSZ0
Bota
Tamao
Pginas
Aplicacin
Flash
Seccin
Bota
Cargador
Flash
Seccin
Fin
Aplicacin
Seccin
256 palabras
0x0000 - 0x3EFF
0x3F00 - 0x3FFF
0x3EFF
0x3F00
512 palabras
0x0000 - 0x3DFF
0x3E00 - 0x3FFF
0x3DFF
0x3E00
1024 palabras
16
0x0000 - 0x3BFF
0x3C00 - 0x3FFF
0x3BFF
0x3C00
2048 palabras
32
0x0000 - 0x37FF
0x3800 - 0x3FFF
0x37FF
0x3800
Nota:
Las diferentes configuraciones BOOTSZ fusibles se muestran en Figura 26-2 en la pgina 280.
Pginas
Direccin
224
0x0000 - 0x37FF
32
0x3800 - 0x3FFF
Para ms detalles sobre estos dos seccin, consulte "NRWW - no Seccin Lee-While-Write" en la pgina 278 y "RWW - Leer-tiempoEscribe Seccin "en la pgina 278.
Tabla 26-15. Explicacin de las distintas variables que se utilizan en Figura 26-3 y la cartografa de la Z-puntero, ATmega328P
Correspondiente
Z-valor(1)
Variable
PCMSB
13
PAGEMSB
Descripcin
ZPCMSB
Z14
ZPAGEMSB
Z6
PCPAGE
PC [13: 6]
Z14: Z7
PCWORD
PC [5: 0]
Z6: Z1
Nota:
291
8161D-AVR-10.9
Registro Descripcin
26.9.1
SPMIE
RWWSB
RWWSRE
BLBSET
PGWRT
PGERS
R/W
R/W
R/W
R/W
R/W
R/W
SELFPRGEN
SPMCSR
292
8161D-AVR-10.9
Escribir cualquier otra combinacin de "10001", "01001", "00101", "00011" o "00001" en la parte inferior
cinco bits no tendrn ningn efecto.
293
8161D-AVR-10.9
Tabla 27-1.
Descripcin
Valor predeterminado
1 (no programada)
1 (no programada)
BLB12(2)
1 (no programada)
BLB11(2)
1 (no programada)
BLB02(2)
1 (no programada)
BLB01(2)
1 (no programada)
LB2
Poco Lock
1 (no programada)
LB1
Poco Lock
1 (no programada)
Notas:
Bit n
Tabla 27-2.
Tipo de proteccin
Modo LB
LB2
LB1
Notas:
1. Programa de los bits fusibles y los bits de bloqueo de arranque antes de programar el LB1 y LB2.
2. "1" significa no programada, "0" significa programados
294
8161D-AVR-10.9
Tabla 27-3.
Modo BLB0
BLB02
BLB01
BLB12
BLB11
Modo BLB1
Notas:
27.2
1. Programa de los bits fusibles y los bits de bloqueo de arranque antes de programar el LB1 y LB2.
2. "1" significa no programada, "0" significa programados
Fuse Bits
El ATmega48PA / 88PA / 168PA / 328P tiene tres bytes de fusibles. Tabla 27-5 -Tabla 27-9 describir
brevemente la funcionalidad de todos los fusibles y la forma en que se asignan a los bytes de fusibles. Tenga en cuenta que
los fusibles se leen como lgico cero "0", si se programan.
Tabla 27-4.
Bit n
Descripcin
Valor predeterminado
SELFPRGEN
1 (no programada)
295
8161D-AVR-10.9
Tabla 27-5.
Bit n
Descripcin
Valor predeterminado
0 (programado)(1)
BOOTSZ0
0 (programado)(1)
BOOTRST
1 (no programada)
BOOTSZ1
Nota:
1. El valor por defecto de BOOTSZ [1: 0] resulta en el mximo tamao de arranque. Ver "Pin Asignacin de nombres" en la
pgina 300.
Tabla 27-6.
Bit n
Descripcin
Valor predeterminado
BODLEVEL2(1)
1 (no programada)
BODLEVEL1(1)
1 (no programada)
BODLEVEL0(1)
1 (no programada)
Nota:
Tabla 27-7.
Byte Alto Fuse
Descripcin
Valor predeterminado
RSTDISBL(1)
1 (no programada)
DWEN
debugWIRE Habilitar
1 (no programada)
SPIEN(2)
0 (programado, SPI
programacin est activado)
296
8161D-AVR-10.9
Bit n
Descripcin
Valor predeterminado
WDTON(3)
1 (no programada)
EESAVE
La memoria EEPROM es
preservado a travs del chip
Borrar
BODLEVEL2(4)
1 (no programada)
BODLEVEL1(4)
1 (no programada)
BODLEVEL0(4)
1 (no programada)
Notas:
1.
2.
3.
4.
Ver "Funciones alternativas de Puerto C" en la pgina 85 para la descripcin de RSTDISBL Fuse.
El SPIEN fusible no es accesible en el modo de programacin en serie.
Ver "WDTCSR - Watchdog Timer Registro de control" en la pgina 54 para ms detalles.
Ver Tabla 28-4 en la pgina 318 para la decodificacin BODLEVEL Fuse.
Tabla 27-8.
Bit n
Descripcin
Valor predeterminado
RSTDISBL(1)
1 (no programada)
DWEN
debugWIRE Habilitar
1 (no programada)
SPIEN(2)
0 (programado, SPI
programacin est activado)
WDTON(3)
1 (no programada)
EESAVE
La memoria EEPROM es
preservado a travs del chip
Borrar
0 (programado)(4)
0 (programado)(4)
1 (no programada)
BOOTSZ1
BOOTSZ0
BOOTRST
Notas:
1.
2.
3.
4.
Ver "Funciones alternativas de Puerto C" en la pgina 85 para la descripcin de RSTDISBL Fuse.
El SPIEN fusible no es accesible en el modo de programacin en serie.
Ver "WDTCSR - Watchdog Timer Registro de control" en la pgina 54 para ms detalles.
El valor por defecto de BOOTSZ [1: 0] resultados en mximo tamao de arranque. Ver "Pin Asignacin de nombres" en la
pgina 300.
297
8161D-AVR-10.9
Tabla 27-9.
Bit n
Descripcin
Valor predeterminado
CKDIV8(4)
0 (programado)
CKOUT(3)
Salida de reloj
1 (no programada)
SUT1
1 (no programada)(1)
SUT0
0 (programado)(1)
CKSEL3
0 (programado)(2)
CKSEL2
0 (programado)(2)
CKSEL1
1 (no programada)(2)
CKSEL0
0 (programado)(2)
Nota:
1. El valor predeterminado de resultados SUT1..0 en mximo tiempo de arranque de la fuente de reloj por defecto.
Ver Tabla 8-12 en la pgina 33 para ms detalles.
2. El ajuste predeterminado de resultados CKSEL3..0 en el oscilador RC interno @ 8 MHz. Ver Tabla 8.11 en
pgina 33 para ms detalles.
3. El CKOUT Fuse permite al reloj del sistema, que debe emitirse en PORTB0. Ver "Clock Output Buffer"
en la pgina 35 para ms detalles.
4. Ver "Sistema de reloj de divisor" en la pgina 35 para ms detalles.
El estado de los bits de fusibles no se ve afectada por Chip Erase. Tenga en cuenta que los bits fusibles estn bloqueadas si
Bloqueo bit1 (LB1) est programado. Programa de los bits de fusibles antes de la programacin de los bits de bloqueo.
27.2.1
27.3
Enclavamiento de Fusibles
Los valores de los fusibles estn enganchados cuando el dispositivo entra en el modo de programacin y cambios en la
valores de los fusibles no tendrn efecto hasta que la pieza sale del modo de programacin. Esto no se aplica a
la EESAVE fusible que se llevar a efecto una vez que se programa. Los fusibles tambin se aferraron
Encendido en el modo Normal.
Bytes Signature
Todos los microcontroladores Atmel tienen un cdigo de firma de tres bytes que identifica el dispositivo. Este
cdigo puede ser ledo tanto en modo serie y paralelo, tambin cuando el dispositivo est bloqueado. Los tres
bytes residen en un espacio de direcciones separado. Para el ATmega48PA / 88PA / 168PA / 328P la signatura
bytes tura se dan en Tabla 27-10.
27.4
Parte
0x000
0x001
0x002
ATmega48PA
0x1E
0x92
0x0A
ATmega88PA
0x1E
0x93
0x0F
ATmega168PA
0x1E
0x94
0x0B
ATmega328P
0x1E
0x95
0x0F
Byte Calibracin
El ATmega48PA / 88PA / 168PA / 328P tiene un valor de calibracin byte para el oscilador RC interno.
Este byte reside en el byte alto de la direccin 0x000 en el espacio de direcciones firma. Durante reset,
298
8161D-AVR-10.9
27.5
Tamao de pgina
Tabla 27-11. No. de palabras en una pgina y No. de pginas en Flash
Dispositivo
ATmega48PA
Palabras 2K
(4K bytes)
32 palabras
PC [4: 0]
ATmega88PA
Palabras 4K
(8K bytes)
32 palabras
ATmega168PA
ATmega328P
Palabras 8K
(16K bytes)
16K palabras
(32K bytes)
No. de
Pginas
PCPAGE
PCMSB
64
PC [10: 5]
10
PC [4: 0]
128
PC [11: 5]
11
64 palabras
PC [5: 0]
128
PC [12: 6]
12
64 palabras
PC [5: 0]
256
PC [13: 6]
13
Tabla 27-12. No. de palabras en una pgina y No. de pginas en la memoria EEPROM
27.6
Dispositivo
EEPROM
Tamao
Pgina
Tamao
ATmega48PA
256 bytes
4 bytes
EEE [1: 0]
ATmega88PA
512 bytes
4 bytes
ATmega168PA
512 bytes
ATmega328P
Bytes 1K
PCWORD
No. de
Pginas
PCPAGE
EEAMSB
64
EEE [7: 2]
EEE [1: 0]
128
EEE [8: 2]
4 bytes
EEE [1: 0]
128
EEE [8: 2]
4 bytes
EEE [1: 0]
256
EEE [9: 2]
27.6.1
299
8161D-AVR-10.9
PD1
OE
PD2
VCC
WR
PD3
BS1
PD4
XA0
PD5
XA1
PD6
PAGEL
4.5 - 5.5V
AVCC
PC [1: 0]: PB [5: 0]
DATOS
PD7
12 V
REINICIO
BS2
PC2
XTAL1
GND
Nota:
VCC - 0,3 V <AVCC <VCC + 0.3V, sin embargo, AVCC debe siempre estar dentro de 4.5 - 5.5V
Nombre Pin
I/O
Funcin
RDY / BSY
PD1
OE
PD2
YO
WR
PD3
YO
BS1
PD4
YO
XA0
PD5
YO
XA1
PD6
YO
PAGEL
PD7
YO
BS2
PC2
YO
DATOS
I/O
Smbolo
Valor
PAGEL
Prog_enable [3]
XA1
Prog_enable [2]
XA0
Prog_enable [1]
BS1
Prog_enable [0]
300
8161D-AVR-10.9
XA0
Flash de carga o direccin EEPROM (alta o baja byte de direccin determinada por BS1).
Cargar datos (byte de datos de alta o baja para Flash determinado por BS1).
Comando de carga
No Accin, Idle
27.7
Comando Ejecutado
1000 0000
Viruta borra
0100 0000
0010 0000
0001 0000
Escribir flash
0001 0001
Escribir EEPROM
0000 1000
0000 0100
0000 0010
Leer flash
0000 0011
Leer EEPROM
Programacin Paralela
27.7.1
301
8161D-AVR-10.9
27.7.3
Viruta borra
El Borrado Chip borrar el flash y EEPROM(1) recuerdos ms bits de bloqueo. Los bits son Lock
No restablezca hasta que la memoria del programa ha sido completamente borrado. Los bits de fusibles no son
cambiado. Un Erase chip debe ser realizado antes de que el flash y / o EEPROM son
reprogramado.
Nota:
1. La memoria EEPRPOM se conserva durante viruta borra si el EESAVE fusible est programado.
302
8161D-AVR-10.9
303
8161D-AVR-10.9
PAGEMSB
PROGRAMA
CONTADOR
PCPAGE
PCWORD
Direccin de la pgina
DENTRO DEL FLASH
DIRECCIN DE PALABRAS
Dentro de una pgina
PROGRAMA DE MEMORIA
PGINA
PGINA
PALABRA DE INSTRUCCIONES
01
02
PAGEEND
Nota:
La
DATOS
0x10
B
Dir. BAJA
XX
Dir. BAJA
E
XX
G
Dir. ALTA
H
XX
XA1
XA0
BS1
XTAL1
WR
RDY / BSY
REAJUSTE + 12V
OE
PAGEL
BS2
Nota:
27.7.5
Programacin de la EEPROM
La EEPROM se organiza en pginas, ver Tabla 27-12 en la pgina 299. En la programacin de la
EEPROM, los datos del programa se enclava en un bfer de pgina. Esto permite que una pgina de datos para ser
programados al mismo tiempo. El algoritmo de programacin para la memoria de datos EEPROM es tan
siguientes (consulte "Programacin del flash" en la pgina 302 para ms detalles sobre comandos, Direccin y
Carga de datos):
304
8161D-AVR-10.9
La
DATOS
0x11
G
Dir. ALTA
B
Dir. BAJA
DATOS
XX
Dir. BAJA
C
DATOS
XX
XA1
XA0
BS1
XTAL1
WR
RDY / BSY
REAJUSTE + 12V
OE
PAGEL
BS2
27.7.6
Lectura de la flash
El algoritmo para la lectura de la memoria flash es el siguiente (consulte "Programacin del flash" en la
pgina 302 para ms detalles sobre Mando y Direccin de carga):
1. A: Cargue de Comando "0000 0010".
2. G: Carga Direccin Byte alto (0x00 - 0xFF).
3. B: Carga Direccin Byte bajo (0x00 - 0xFF).
4. Conjunto OE a "0", y BS1 a "0". La palabra de Flash byte bajo ahora se puede leer en DATA.
5. Conjunto BS1 a "1". La palabra de Flash byte alto ahora se puede leer en DATA.
6. Conjunto OE a "1".
27.7.7
La lectura de la EEPROM
El algoritmo para la lectura de la memoria EEPROM es como sigue (vase "Programacin del flash"
en la pgina 302 para ms detalles sobre Mando y Direccin de carga):
1. A: Cargue de Comando "0000 0011".
2. G: Carga Direccin Byte alto (0x00 - 0xFF).
3. B: Carga Direccin Byte bajo (0x00 - 0xFF).
4. Conjunto OE a "0", y BS1 a "0". El byte EEPROM de datos ahora se puede leer en DATA.
5. Conjunto OE a "1".
305
8161D-AVR-10.9
27.7.9
27.07.10
DATOS
La
0x40
DATOS
XX
0x40
DATOS
XX
0x40
DATOS
XX
XA1
XA0
BS1
BS2
XTAL1
WR
RDY / BSY
REAJUSTE + 12V
OE
PAGEL
306
8161D-AVR-10.9
07.27.12
0
Byte Fusible extendido
1
DATOS
BS2
Lock Bits
BS1
1
BS2
27.07.13
307
8161D-AVR-10.9
07.27.15
27.8
Descarga Serial
Tanto las matrices de memoria flash y EEPROM se puede programar con el serial bus mientras SPI
REINICIO se tira a GND. La interfaz serie se compone de pines SCK, MOSI (entrada) y MISO (salida
poner). Despus de RESET se establece bajo, la programacin Habilitar instruccin necesita ser ejecutado primero
antes del programa / borrar operaciones se pueden ejecutar. NOTA, en Tabla 27-17 en la pgina 309, el pasador
mapeo para la programacin SPI est en la lista. No todas las partes utilizan los pines SPI dedicados para el interior
Interfaz SPI.
REINICIO
GND
Notas:
1. Si el dispositivo est sincronizado por el oscilador interno, es necesario conectar una fuente de reloj para la
Pin XTAL1.
2. VCC - 0,3 V <AVCC <VCC + 0.3V, sin embargo, AVCC debe siempre estar dentro de 1.8 - 5.5V
308
8161D-AVR-10.9
27.8.2
Smbolo
Patas
I/O
MOSI
PB3
YO
MISO
PB4
SCK
PB5
YO
Descripcin
Serie de datos de
Datos de serie fuera
Reloj en serie
309
8161D-AVR-10.9
Tabla 27-18. Tpico de retraso de espera antes de escribir el siguiente flash o EEPROM Ubicacin
Smbolo
27.8.3
tWD_FLASH
4.5 ms
tWD_EEPROM
3.6 ms
tWD_ERASE
9.0 ms
Byte 1
Byte 2
Byte 3
Byte4
Programacin Habilitar
$ AC
$ 53
$ 00
$ 00
$ AC
$ 80
$ 00
$ 00
$ F0
$ 00
$ 00
$ 4D
$ 00
Adr extendido
$ 48
$ 00
adr LSB
$ 40
$ 00
adr LSB
byte menor en
$ C1
$ 00
0000 000aa
$ 28
adr MSB
adr LSB
$ 20
adr MSB
adr LSB
$ A0
0000 00aa
aaaa aaaa
$ 58
$ 00
$ 30
$ 00
$ 50
$ 00
$ 00
$ 58
$ 08
$ 00
$ 50
$ 08
$ 00
$ 38
$ 00
$ 00
Instrucciones de carga
$ 00
byte de datos en
$ 00
0000 000aa
310
8161D-AVR-10.9
Byte 1
Byte 2
Byte 3
Byte4
$ 4C
adr MSB
adr LSB
$ 00
Memoria EEPROM
$ C0
0000 00aa
aaaa aaaa
$ C2
0000 00aa
AA00 AAAA
$ AC
$ E0
$ 00
byte de datos en
$ AC
$ A0
$ 00
byte de datos en
$ AC
$ A8
$ 00
byte de datos en
$ AC
$ A4
$ 00
byte de datos en
Escribe Instrucciones(6)
Notas:
1.
2.
3.
4.
5.
6.
7.
byte de datos en
$ 00
Si el LSB en RDY datos / BSY byte a cabo es '1', una operacin de programacin se encuentra pendiente. Espere hasta
este bit vuelve "0" antes de la siguiente instruccin se lleva a cabo.
Dentro de la misma pgina, el byte de datos de baja debe ser cargado antes de la byte de datos de alta.
Despus que los datos se carga en el bfer de pgina, el programa de la pgina EEPROM, consulte Figura 27-8 en la pgina
312.
311
8161D-AVR-10.9
Byte 1
Byte 2
AADR MSB
Bit 15 B
Byte 3
Byte 1
Byte 4
Byte 2
Adr LSB
Adr MSB
Byte 3
Adr LSBrB
Bit 15 B
Byte 4
Pgina Buffer
Pgina Offset
Pgina 0
Pgina 1
Page 2
Nmero de pgina
Pgina N-1
Memoria de programa /
Memoria EEPROM
27.8.4
MSB
LSB
MSB
LSB
MUESTRA
Por caractersticas del mdulo SPI ver "Caractersticas de temporizacin SPI" en la pgina 319.
312
8161D-AVR-10.9
Absolutos mximos *
* AVISO:
28.2
Caractersticas de CC
Parmetro
Condicin
Min.
VIL
-0,5
-0,5
VIH
VIL1
VIH1
VIL2
VIH2
VIL3
VIH3
VOL
VOH
IIL
Fuga de entrada
I Corriente / O Pin
mu
IIH
Fuga de entrada
I Corriente / O Pin
mu
0.7VCC (2)
0.6VCC (2)
-0,5
0.8VCC (2)
0.7VCC (2)
-0,5
0.9VCC (2)
-0,5
-0,5
0.7VCC (2)
0.6VCC (2)
Typ.
Max.
Unidades
0.2VCC (1)
0.3VCC (1)
VCC + 0,5
VCC + 0,5
0.1VCC (1)
VCC + 0,5
VCC + 0,5
0.1VCC (1)
VCC + 0,5
0.2VCC (1)
0.3VCC (1)
VCC + 0,5
VCC + 0,5
0.9
0.6
4.2
2.3
313
8161D-AVR-10.9
Parmetro
RRST
30
60
kW
RPU
20
50
kW
VACIO
Comparador analgico
Voltaje de entrada Offset
VCC = 5V
Vin = VCC / 2
40
mV
IACLK
Comparador analgico
Entrada de Corriente de fuga
VCC = 5V
Vin = VCC / 2
50
n/A
tACID
Comparador analgico
Retardo de propagacin
VCC = 2.7V
VCC = 4.0V
Notas:
Condicin
Min.
Typ.
<10
-50
Max.
750
500
Unidades
ns
1. "Max": el valor ms alto donde se garantiza el pasador para ser ledo tan bajo
2. "Min": el valor ms bajo en el que se garantiza el pasador para ser ledo como alta
3. Aunque cada puerto I / O puede hundirse ms de las condiciones del ensayo (20 mA en VCC = 5V, 10 mA en VCC = 3V) bajo estado estacionario
condiciones (no transitoria), a continuacin se deben tener en cuenta:
ATmega48PA / 88PA / 168PA / 328P:
1] La suma de todos IOL, para los puertos C0 - C5, ADC7, ADC6 no debe exceder de 100 mA.
2] La suma de todos IOL, los puertos B0 - B5, D5 - D7, XTAL1, XTAL2 no debe superar los 100 mA.
3] La suma de todos IOL, los puertos D0 - D4, de RESET no debe superar los 100 mA.
Si IOL supera la condicin de prueba, VOL podr superar la especificacin relacionados. Pernos no estn garantizados para hundir ms actual
de la condicin de prueba en la lista.
4. Aunque cada puerto I / O puede fuente ms de las condiciones del ensayo (20 mA en VCC = 5V, 10 mA en VCC = 3V) bajo estado estacionario
condiciones (no transitoria), a continuacin se deben tener en cuenta:
ATmega48PA / 88PA / 168PA / 328P:
1] La suma de todos los IOH, para los puertos C0 - C5, d0- D4, ADC7 RESET no debe superar los 150 mA.
2] La suma de todos los IOH, para los puertos B0 - B5, D5 - D7, ADC6, XTAL1, XTAL2 no debe superar los 150 mA.
Si IIOH supera la condicin de prueba, VOH podr superar la especificacin relacionados. Pernos no se garantiza que la fuente actual
mayor que la condicin de prueba en la lista.
28.2.1
Caractersticas ATmega48PA DC
Parmetro
CPI
Typ.(2)
Max.
0.2
0.5
mA
1.2
2.5
mA
4.0
mA
0.03
0.15
mA
0.21
0.7
mA
0.9
2.7
mA
0.75
mu
0.9
mu
3.9
mu
0.1
mu
Condicin
Min.
Unidades
El modo de apagado(3)
Notas:
314
8161D-AVR-10.9
Caractersticas ATmega88PA DC
Parmetro
CPI
Typ.(2)
Max.
0.2
0.5
mA
1.2
2.5
mA
4.1
mA
0.03
0.15
mA
0.18
0.7
mA
0.8
2.7
mA
0.8
mu
0.9
mu
3.9
mu
0.1
mu
Typ.(2)
Max.
0.2
0.5
mA
1.2
2.5
mA
4.2
mA
0.03
0.15
mA
0.2
0.7
mA
0.9
2.7
0.75
mu
0.83
mu
4.1
mu
0.1
mu
Condicin
Min.
Unidades
El modo de apagado(3)
Notas:
28.2.3
Caractersticas ATmega168PA DC
Parmetro
CPI
Condicin
Min.
Unidades
El modo de apagado(3)
Notas:
315
8161D-AVR-10.9
Caractersticas ATmega328P DC
Parmetro
Typ.(2)
Max.
0.3
0.5
mA
1.7
2.5
mA
5.2
mA
0.04
0.15
mA
0.3
0.7
mA
1.2
2.7
mA
0.8
1.6
mu
0.9
2.6
mu
4.2
mu
0.1
mu
Condicin
CPI
Min.
Unidades
El modo de apagado(3)
Notas:
1.
2.
3.
4.
28.3
Grados velocidad
Frecuencia mxima depende de VCC. Como se muestra en Figura 28-1, de la frecuencia mxima vs.
Curva de VCC es lineal entre 1,8 V <VCC <2.7V y entre 2.7V <VCC <4.5V.
Figura 28-1. Frecuencia mxima vs. VCC
20 MHz
10 MHz
4 MHz
1.8V
2.7V
4.5V
5.5V
316
8161D-AVR-10.9
28.4
Caractersticas de reloj
28.4.1
Tabla 28-1.
VCC
Fbrica
Calibracin
8,0 MHz
3V
25 C
10%
Usuario
Calibracin
1.8V - 5.5V
-40 C - 85 C
1%
28.4.2
Temperatura
Precisin de calibracin
V IH1
V IL1
28.4.3
Tabla 28-2.
Smbolo
Parmetro
1 / tCLCL
Oscilador de Frecuencia
tCLCL
Periodo de Reloj
250
100
50
ns
tCHCX
High Time
100
40
20
ns
tCLCX
Baja Tiempo
100
40
20
ns
tCLCH
Tiempo de subida
2.0
1.6
0.5
tCHCL
Tiempo de bajada
2.0
1.6
0.5
tCLCL
Nota:
Min.
Max.
Min.
Max.
Min.
Max.
10
20
Unidades
MHz
Todas las caractersticas DC contenidos en esta hoja de datos se basan en la simulacin y caracterizacin de otros microcontroladores AVR
fabricado en la misma tecnologa de proceso. Estos valores son los valores preliminares que representan los objetivos de diseo, y sern
actualizado despus de caracterizacin de silicio real.
317
8161D-AVR-10.9
Tabla 28-3.
Smbolo
Min
Typ
Max
1.1
1.4
1.6
0.6
1.3
1.6
SRON
0.01
10
V / ms
VRST
0.2 VCC
0.9 VCC
trst
2.5
mS
VPOT
VHYST
tBOD
VBG
VCC = 2,7
TA = 25 C
TBG
IBG
Notas:
1.0
Unidades
50
mV
mS
1.1
1.2
VCC = 2,7
TA = 25 C
40
70
mS
VCC = 2,7
TA = 25 C
10
mu
Tabla 28-4.
VBOT Min
Typ VBOT
111
VBOT Max
Unidades
BOD discapacitados
110
1.7
1.8
2.0
101
2.5
2.7
2.9
100
4.1
4.3
4.5
011
010
Reservado
001
000
Notas:
1. VBOT puede estar por debajo del voltaje de operacin mnimo nominal para algunos dispositivos. Para los dispositivos en que esto sea el caso, el dispositivo es
probado hasta VCC = VBOT durante la prueba de produccin. Esto garantiza que un reinicio de Brown-Out ocurrir antes VCC cae a
una tensin, donde ya no se garantiza el correcto funcionamiento del microcontrolador. La prueba se realiza mediante
BODLEVEL = 110, 101 y 100.
318
8161D-AVR-10.9
Descripcin
Modo
Perodo SCK
Maestro
Maestro
Maestro
3.6
Preparar
Maestro
10
Mantener
Maestro
10
Sale a SCK
Maestro
0.5 tsck
SCK a cabo
Maestro
10
Maestro
10
SS bajo a cabo
Esclavo
10
Perodo SCK
Esclavo
4 tck
11
Esclavo
2 tck
12
Esclavo
13
Preparar
Esclavo
10
14
Mantener
Esclavo
tck
15
SCK a cabo
Esclavo
16
SCK a SS alta
Esclavo
17
SS de alto a tri-estatal
Esclavo
18
SS bajo a SCK
Esclavo
Nota:
Min
Typ
Max
15
ns
1600
15
20
10
20
319
8161D-AVR-10.9
SCK
(CPOL = 0)
2
SCK
(CPOL = 1)
4
MISO
(Introduccin de datos)
MSB
...
LSB
MOSI
(Salida de datos)
MSB
...
LSB
16
SCK
(CPOL = 0)
11
11
SCK
(CPOL = 1)
13
MOSI
(Introduccin de datos)
14
12
MSB
...
LSB
15
MISO
(Salida de datos)
MSB
17
...
LSB
320
8161D-AVR-10.9
28.7
Tabla 28-6 describe los requisitos de los dispositivos conectados a la 2 cables Serial Bus. La
ATmega48PA / 88PA / 168PA / 328P 2 cables de interfaz serie cumple o excede los requisitos en las condiciones sealadas.
Smbolos de temporizacin se refieren a Figura 28-5.
Tabla 28-6.
Smbolo
Parmetro
VIL
VIH
Vhys (1)
VOL (1)
tr (1)
TOF (1)
tSP (1)
Ii
Ci (1)
FSCL
Condicin
Corriente absorbida 3 mA
Rp
THD; STA
tLow
Max
Unidades
-0,5
0.3 VCC
0.7 VCC
VCC + 0,5
0.4
300
ns
250
ns
50(2)
ns
-10
10
mu
10
pF
400
kHz
V CC -0,4V
1000 ns
---------------------------- ----------------3 mA
Cb
V CC -0,4V
300ns
---------------------------- -------------3 mA
Cb
4.0
-
mS
0.6
mS
4.7
mS
1.3
mS
4.0
mS
0.6
mS
4.7
mS
0.6
mS
3.45
mS
0.9
mS
250
ns
100
ns
4.0
mS
0.6
mS
4.7
mS
1.3
mS
muslo
TSU; STA
TSU; STO
Tiempo de preparacin de
datos
El tiempo de preparacin para la condicin de
STOP
Bus tiempo libre entre un STOP y START
condicin
tBUF
Notas:
Min
321
8161D-AVR-10.9
muslo
tLow
tr
tLow
SCL
TSU; STA
THD; STA
THD; DAT
TSU; DAT
TSU; STO
SDA
tBUF
322
8161D-AVR-10.9
Caractersticas ADC
Tabla 28-7.
Smbolo
Caractersticas ADC
Parmetro
Condicin
Min
Resolucin
VREF = 4V, VCC = 4V,
Reloj ADC = 200 kHz
LSB
4.5
LSB
LSB
4.5
LSB
0.5
LSB
Diferencial no linealidad
(DNL)
0.25
LSB
Ganancia de error
LSB
Error de desplazamiento
LSB
Tiempo de conversin
VIN
Unidades
Bits
Frecuencia de reloj
VREF
Max
10
AVCC (1)
Typ
Voltaje de entrada
13
260
mS
50
1000
kHz
VCC - 0.3
VCC + 0.3
1.0
AVCC
GND
VREF
38.5
VINT
RREF
32
kW
LLUVIA
100
Nota:
1.0
1.1
kHz
1.2
323
8161D-AVR-10.9
28.9
Tabla 28-8.
Smbolo
Parmetro
Min
VPP
11.5
IPP
tDVXH
tXLXH
Typ
Max
Unidades
12.5
250
La
67
ns
200
ns
tXHXL
150
ns
tXLDX
67
ns
tXLWL
ns
tXLPH
ns
tPLXH
150
ns
tBVPH
67
ns
tPHPL
150
ns
tPLBX
67
ns
tWLBX
67
ns
tPLWL
67
ns
tBVWL
67
ns
tWLWH
150
ns
tWLRL
tWLRH
3.7
4.5
sra
tWLRH_CE
7.5
sra
tXLOL
tBVDV
tOLDV
tOHDZ
Notas:
ns
250
ns
250
ns
250
ns
1. tWLRH es vlida para el flash escribir, escribir EEPROM, escribir bits de fusibles y escribir bits de bloqueo
comandos.
2. tWLRH_CE es vlido para el comando viruta borra.
324
8161D-AVR-10.9
XTAL1
tDVXH
tXLDX
Datos y Contol
(DATA, XA0 / 1, BS1, BS2)
tBVPH
PAGEL
tPLBX t BVWL
tWLBX
tPHPL
tWLWH
WR
tPLWL
WLRL
RDY / BSY
tWLRH
Figura 28-7. Timing programacin paralela, Secuencia de carga con los requisitos de tiempo(1)
DIRECCIN DE CARGA
(BYTE LOW)
DATOS DE CARGA
(BYTE LOW)
tXLPH
t XLXH
DIRECCIN DE CARGA
(BYTE LOW)
tPLXH
XTAL1
BS1
PAGEL
DATOS
XA0
XA1
Nota:
1. Los requisitos de temporizacin muestran en Figura 28-6 (Es decir, tDVXH, tXHXL y tXLDX) tambin se aplica a los
elementos de tope
su utilizacin.
Figura 28-8. Timing programacin paralela, Secuencia de lectura (dentro de la misma pgina) con
Requisitos de temporizacin(1)
DIRECCIN DE CARGA
(BYTE LOW)
DATOS DE LEER
(BYTE LOW)
DATOS DE LEER
(Byte alto)
DIRECCIN DE CARGA
(BYTE LOW)
tXLOL
XTAL1
tBVDV
BS1
tOLDV
OE
tOHDZ
DATOS
XA0
XA1
Nota:
1. Los requisitos de temporizacin muestran en Figura 28-6 (Es decir, tDVXH, tXHXL y tXLDX) tambin se aplica a los
lectores
su utilizacin.
325
8161D-AVR-10.9
326
8161D-AVR-10.9
29.1.1
5,5 V
0.8
5,0 V
4,5 V
0.6
CPI (mA)
4,0 V
3,3 V
0.4
2,7 V
0.2
1,8 V
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
Figura 29-2. ATmega48PA: Activo Corriente de suministro vs. frecuencia (1-20 MHz)
12
5,5 V
10
5,0 V
8
4,5 V
CPI (mA)
4,0 V
4
3,3 V
2
2,7 V
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
327
8161D-AVR-10.9
85 C
-40 C
25 C
0.12
0.1
CPI 0.08
(mA)
0.06
0.04
0.02
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-4. ATmega48PA: Activo Corriente de suministro frente a VCC (Interno oscilador RC, 1 MHz)
1.2
85 C
25 C
-40 C
0.8
CPI (mA)
0.6
0.4
0.2
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
328
8161D-AVR-10.9
-40 C
4
CPI (mA)
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
29.1.2
5,5 V
0.14
0.12
5,0 V
0.1
4,5 V
CPI (mA)
0.08
4,0 V
0.06
3,3 V
0.04
2,7 V
1,8 V
0.02
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
329
8161D-AVR-10.9
5,5 V
2.5
5,0 V
2
4,5 V
CPI (mA)
1.5
4,0 V
1
3,3 V
0.5
2,7 V
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
Figura 29-8. ATmega48PA: inactivo Corriente de suministro frente a VCC (Interno oscilador RC, 128 kHz)
0,042
85 C
0,035
25 C
0,028
-40 C
CPI (mA)
0,021
0,014
0,007
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
330
8161D-AVR-10.9
85 C
25 C
-40 C
0.3
0.25
0.2
CPI (mA)
0.15
0.1
0.05
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-10. ATmega48PA: inactivo Corriente de suministro frente a Vcc (Interno oscilador RC, 8 MHz)
85 C
25 C
-40 C
1.2
0.8
CPI (mA)
0.6
0.4
0.2
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
331
8161D-AVR-10.9
29.1.3
Tabla 29-1.
PRR poco
PRUSART0
2.9 uA
20.7 uA
97.4 uA
PRTWI
6.0 uA
44.8 uA
219,7 uA
PRTIM2
5.0 uA
34.5 uA
141,3 uA
PRTIM1
3.6 uA
24.4 uA
107.7 uA
PRTIM0
1.4 uA
9.5 uA
38.4 uA
PRSPI
5.0 uA
38.0 uA
190.4 uA
PRADC
6.1 uA
47.4 uA
244.7 uA
Tabla 29-2.
PRUSART0
1,8%
11,4%
PRTWI
3,9%
20,6%
PRTIM2
2,9%
15,7%
PRTIM1
2,1%
11,2%
PRTIM0
0,8%
4,2%
PRSPI
3,3%
17,6%
PRADC
4,2%
22,1%
PRR poco
Es posible calcular el consumo de corriente tpico basado en los nmeros de Tabla 29-2
en la pgina 332 para otros ajustes VCC y frecuencia de los que aparecen en Tabla 29-1 en la pgina 332.
Ejemplo
Calcular el consumo actual se espera en modo inactivo con TIMER1, ADC, y SPI habilitado
en VCC = 2,0 V y F = 1 MHz. Desde Tabla 29-2 en la pgina 332, tercera columna, vemos que necesitamos
aadir 11,2% para el TIMER1, 22,1% para el ADC, y el 17,6% para el mdulo SPI. Leyendo de
Figura 29-6 en la pgina 329, Nos encontramos con que el consumo de corriente de reposo es de ~ 0,028 mA en VCC = 2.0V
y F = 1 MHz. El consumo total de corriente en modo inactivo con TIMER1, ADC, y SPI habilitado,
da:
Yo CC totales 0.028 mA (1 + 0,112 + 0,221 + 0,176) 0.042 mA
332
8161D-AVR-10.9
85 C
1
0.8
CPI (UA)
0.6
0.4
-40 C
25 C
0.2
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-12. ATmega48PA: Power-Down Corriente de suministro frente a VCC (temporizador Watchdog Activado)
8
-40 C
85 C
25 C
6
CPI (UA)
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
333
8161D-AVR-10.9
85 C
1.6
25 C
1.2
CPI (UA)
-40 C
0.8
0.4
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
29.1.6
6MHz_xtal
6MHz_res
0.14
0.12
4MHz_res
4MHz_xtal
0.1
CPI (mA)
0.08
2MHz_res
2MHz_xtal
0.06
450kHz_res
0.04
0.02
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
334
8161D-AVR-10.9
Pin Pull-Up
Figura 29-15. ATmega48PA: I / O Pin resistencia pull-up actual vs. Voltaje de entrada (VCC = 1,8 V)
50
40
30
PIO (UA)
20
10
25 C
85 C
-40 C
0
0
0.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
VOP (V)
Figura 29-16. ATmega48PA: I / O Pin resistencia pull-up actual vs. Voltaje de entrada (VCC = 2,7 V)
70
60
50
40
PIO (UA)
30
20
25 C
85 C
-40 C
10
0
0
0.5
1.5
2.5
VOP (V)
335
8161D-AVR-10.9
120
100
80
PIO (UA)
60
40
25 C
85 C
-40 C
20
0
0
VOP (V)
Figura 29-18. ATmega48PA: Restablecer resistencia pull-up actual vs. Cambiar Pin Voltaje (VCC = 1,8 V)
35
30
25
IRESET
20 (UA)
15
10
25 C
5
-40 C
85 C
0
0
0.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
VRESET (V)
336
8161D-AVR-10.9
50
40
IRESET (UA)
30
20
25 C
-40 C
85 C
10
0
0
0.5
1.5
2.5
VRESET (V)
Figura 29-20. ATmega48PA: Restablecer resistencia pull-up actual vs. Cambiar Pin Voltaje (VCC = 5 V)
120
100
80
IRESET (UA)
60
40
20
25 C
-40 C
85 C
0
0
0.5
1.5
2.5
3.5
4.5
VRESET (V)
337
8161D-AVR-10.9
85 C
0.8
25 C
0.6
-40 C
VOL (V)
0.4
0.2
0
0
12
16
20
IOL (mA)
Figura 29-22. ATmega48PA: I / O Pin Voltaje de salida vs. Sink actual (VCC = 5 V)
0.6
85 C
0.5
25 C
-40 C
0.4
VOL (V)
0.3
0.2
0.1
0
0
12
16
20
IOL (mA)
338
8161D-AVR-10.9
2.5
-40 C
25 C
85 C
2
VOH (V)
1.5
0.5
0
0
12
16
20
IOH (mA)
Figura 29-24. ATmega48PA: I / O Pin Voltaje de salida frente a la fuente de corriente (VCC = 5 V)
5
4.9
4.8
4.7
VOH (V)
4.6
-40 C
4.5
25 C
4.4
85 C
4.3
4.2
0
12
16
20
IOH (mA)
339
8161D-AVR-10.9
-40 C
25 C
85 C
2.5
2
Umbral (V)
1.5
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-26. ATmega48PA: I / O Pin de entrada Tensin umbral vs. VCC (VIllinois, I / O Pin ledo como '0')
2.5
85 C
25 C
-40 C
Umbral (V)
1.5
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
340
8161D-AVR-10.9
25 C
85 C
-40 C
0.5
La histresis de
0.4 (mV)
entrada
0.3
0.2
0.1
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-28. ATmega48PA: Restablecer Umbral de entrada Tensin vs. VCC (VIH, I / O Pin ledo como '1')
-40 C
25 C
85 C
2.5
Umbral (V)
1.5
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
341
8161D-AVR-10.9
85 C
25 C
-40 C
Umbral (V)
1.5
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
0.6
0.5
La histresis
de
entrada (mV)
0.4
0.3
0.2
85 C
25 C
-40 C
0.1
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
342
8161D-AVR-10.9
Umbral BOD
Figura 29-31. ATmega48PA: BOD Umbrales vs. Temperatura (BODLEVEL es de 1,8 V)
1.85
Rising Vcc
1.84
1.83
Umbral (V)
1.82
Caer Vcc
1.81
1.8
1.79
-50
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
Temperatura ( C)
Rising Vcc
2.74
2.72
Umbral (V)
2.7
2.68
Caer Vcc
2.66
2.64
2.62
-50
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
Temperatura ( C)
343
8161D-AVR-10.9
Rising Vcc
4.34
4.32
Umbral (V)
4.3
4.28
Caer Vcc
4.26
4.24
-50
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
Temperatura ( C)
01.29.11
114
112
FRC (kHz)
110
2,7 V
3,3 V
4,0 V
5,5 V
108
106
104
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
Temperatura ( C)
344
8161D-AVR-10.9
116
-40 C
114
FRC (kHz)
112
25 C
110
108
85 C
106
1.5
2.5
3.5
4.5
5.5
VCC (V)
85 C
8.1
25 C
FRC (MHz)
7.9
7.8
-40 C
7.7
7.6
1.5
2.5
3.5
4.5
5.5
VCC (V)
345
8161D-AVR-10.9
3,3 V
5,5 V
1,8 V
8.1
8
FRC (MHz)
7.9
7.8
7.7
7.6
-50
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
Temperatura ( C)
Figura 29-38. ATmega48PA: calibrada 8 MHz RC Oscilador de Frecuencia vs. OSCCAL Valor
16
85 C
25 C
-40 C
14
12
10
FRC (MHz)
8
6
4
2
0
0
16
32
48
64
80
96
112 128 144 160 176 192 208 224 240 256
OSCCAL (X1)
346
8161D-AVR-10.9
-40 C
25 C
85 C
300
250
CPI 200
(UA)
150
100
50
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
-40 C
25 C
85 C
80
70
60
CPI 50
(UA)
40
30
20
10
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
347
8161D-AVR-10.9
85 C
25 C
-40 C
140
120
100
CPI (UA)
80
60
40
20
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
32
85 C
25 C
-40 C
24
CPI (UA)
16
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
348
8161D-AVR-10.9
-40 C
5
25 C
4
CPI (mA)
85 C
2
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
29.01.13
0.12
5,5 V
0.1
5,0 V
4,5 V
CPI 0.08
(mA)
4,0 V
0.06
3,3 V
0.04
2,7 V
1,8 V
0.02
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
349
8161D-AVR-10.9
5,5 V
2
5,0 V
4,5 V
1.5
CPI (mA)
4,0 V
1
3,3 V
0.5
2,7 V
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
85 C
25 C
-40 C
200
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
350
8161D-AVR-10.9
29.2.1
5,5 V
0.8
5,0 V
4,5 V
0.6
CPI (mA)
4,0 V
3,3 V
0.4
2,7 V
0.2
1,8 V
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
Figura 29-48. ATmega88PA: Activo Corriente de suministro vs. frecuencia (1-20 MHz)
12
5,5 V
10
5,0 V
8
4,5 V
CPI (mA)
4,0 V
4
3,3 V
2,7 V
2
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
351
8161D-AVR-10.9
-40 C
25 C
85 C
0.09
CPI (mA)
0.06
0.03
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-50. ATmega88PA: Activo Corriente de suministro frente a VCC (Interno oscilador RC, 1 MHz)
85 C1.2
25 C
-40 C1
0.8
CPI (mA)
0.6
0.4
0.2
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
352
8161D-AVR-10.9
-40 C
4
CPI (mA)
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
29.2.2
5,5 V
0.12
5,0 V
0.09
4,5 V
CPI (mA)
4,0 V
0.06
3,3 V
2,7 V
0.03
1,8 V
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
353
8161D-AVR-10.9
5,5 V
2
5,0 V
4,5 V
1.5
CPI (mA)
4,0 V
1
3,3 V
0.5
2,7 V
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
Figura 29-54. ATmega88PA: inactivo Corriente de suministro frente a VCC (Interno oscilador RC, 128 kHz)
0.04
85 C
0.03
25 C
-40 C
CPI (mA)
0.02
0.01
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
354
8161D-AVR-10.9
85 C
25 C
-40 C
0.3
0.25
0.2
CPI (mA)
0.15
0.1
0.05
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-56. ATmega88PA: inactivo Corriente de suministro frente a Vcc (Interno oscilador RC, 8 MHz)
1.2
85 C
25 C
-40 C
0.9
CPI (mA)
0.6
0.3
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
355
8161D-AVR-10.9
29.2.3
Tabla 29-3.
PRR poco
PRUSART0
3.0 uA
21.3 uA
97.9 uA
PRTWI
6.1 uA
45.4 uA
219,0 uA
PRTIM2
5.2 uA
35.2 uA
149.5 uA
PRTIM1
3.8 uA
25.6 uA
110.0 uA
PRTIM0
1.5 uA
9.8 uA
39.6 uA
PRSPI
5.2 uA
40.0 uA
199.6 uA
PRADC
6.3 uA
48.7 uA
247.0 uA
Tabla 29-4.
PRUSART0
1,8%
11,4%
PRTWI
3,9%
24,4%
PRTIM2
2,9%
18,6%
PRTIM1
2,1%
13,6%
PRTIM0
0,8%
5,2%
PRSPI
3,5%
21,5%
PRADC
4,2%
26,3%
PRR poco
Es posible calcular el consumo de corriente tpico basado en los nmeros de Tabla 29-4
en la pgina 356 para otros ajustes VCC y frecuencia de los que aparecen en Tabla 29-3 en la pgina 356.
Ejemplo
Calcular el consumo actual se espera en modo inactivo con TIMER1, ADC, y SPI habilitado
en VCC = 2,0 V y F = 1 MHz. Desde Tabla 29-4 en la pgina 356, tercera columna, vemos que necesitamos
aadir 13,6% para el TIMER1, 26,3% para el ADC, y el 21,5% para el mdulo SPI. Leyendo de
Figura 29-52 en la pgina 353, Nos encontramos con que el consumo de corriente de reposo es de ~ 0,027 mA en VCC = 2.0V
y F = 1 MHz. El consumo total de corriente en modo inactivo con TIMER1, ADC, y SPI habilitado,
da:
Yo CC totales 0.027 mA (1 + 0.136 + 0.263 + 0.215) 0.043 mA
356
8161D-AVR-10.9
85 C
1.4
1.2
1
CPI (UA)
0.8
0.6
0.4
25 C
0.2
-40 C
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-58. ATmega88PA: Power-Down Corriente de suministro frente a VCC (temporizador Watchdog Activado)
8
85 C
-40 C
25 C
CPI (UA)
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
357
8161D-AVR-10.9
2.5
85 C
-40 C
CPI (UA)
1.5
25 C
1
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
29.2.6
6MHz_res
6MHz_xtal
0.16
0.14
0.12
4MHz_res
4MHz_xtal
CPI (mA)
0.1
0.08
2MHz_res
2MHz_xtal
0.06
450kHz_res
0.04
0.02
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
358
8161D-AVR-10.9
Pin Pull-Up
Figura 29-61. ATmega88PA: I / O Pin resistencia pull-up actual vs. Voltaje de entrada (VCC = 1,8 V)
50
40
30
PIO (UA)
20
10
25 C
-40 C
85 C
0
0
0.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
VOP (V)
Figura 29-62. ATmega88PA: I / O Pin resistencia pull-up actual vs. Voltaje de entrada (VCC = 2,7 V)
80
70
60
50
PIO (UA)
40
30
20
25 C
-40 C
10
85 C
0
0
0.5
1.5
2.5
VOP (V)
359
8161D-AVR-10.9
120
100
80
PIO (UA)
60
40
25 C
85 C
-40 C
20
0
0
VOP (V)
Figura 29-64. ATmega88PA: Restablecer resistencia pull-up actual vs. Cambiar Pin Voltaje (VCC = 1,8 V)
40
35
30
25
IRESET (UA)
20
15
10
25 C
-40 C
85 C
0
0
0.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
VRESET (V)
360
8161D-AVR-10.9
50
40
IRESET (UA)
30
20
25 C
-40 C
85 C
10
0
0
0.5
1.5
2.5
VRESET (V)
Figura 29-66. ATmega88PA: Restablecer resistencia pull-up actual vs. Cambiar Pin Voltaje (VCC = 5 V)
120
100
80
IRESET (UA)
60
40
25 C
-40 C
85 C
20
0
0
0.5
1.5
2.5
3.5
4.5
VRESET (V)
361
8161D-AVR-10.9
85 C
0.8
25 C
0.6
VOL (V)
-40 C
0.4
0.2
0
0
12
16
20
IOL (mA)
Figura 29-68. ATmega88PA: I / O Pin Voltaje de salida vs. Sink actual (VCC = 5 V)
0.6
85 C
0.5
25 C
0.4
-40 C
VOL (V)
0.3
0.2
0.1
0
0
12
16
20
IOL (mA)
362
8161D-AVR-10.9
2.5
-40 C
25 C
85 C
2
VOH (V)
1.5
0.5
0
0
12
16
20
IOH (mA)
Figura 29-70. ATmega88PA: I / O Pin Voltaje de salida frente a la fuente de corriente (VCC = 5 V)
5
4.9
4.8
4.7
VOH (V)
4.6
-40 C
4.5
25 C
85 C
4.4
4.3
4.2
0
12
16
20
IOH (mA)
363
8161D-AVR-10.9
85 C
-40 C
25 C
2.5
2
Umbral (V)
1.5
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-72. ATmega88PA: I / O Pin de entrada Tensin umbral vs. VCC (VIllinois, I / O Pin ledo como '0')
-40 C
2.5
85 C
25 C
2
Umbral (V)
1.5
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
364
8161D-AVR-10.9
25 C
85 C
-40 C
0.5
La histresis de
0.4 (mV)
entrada
0.3
0.2
0.1
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-74. ATmega88PA: Restablecer Umbral de entrada Tensin vs. VCC (VIH, I / O Pin ledo como '1')
-40 C
1.5
25 C
85 C
1.2
Umbral (V)
0.9
0.6
0.3
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
365
8161D-AVR-10.9
85 C
25 C
-40 C
Umbral (V)
1.5
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
0.5
La histresis de
0.4 (mV)
entrada
0.3
0.2
85 C
25 C
-40 C
0.1
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
366
8161D-AVR-10.9
Umbral BOD
Figura 29-77. ATmega88PA: BOD Umbrales vs. Temperatura (BODLEVEL es de 1,8 V)
1.83
Rising Vcc
1.82
1.81
Umbral (V)
1.8
1.79
Caer Vcc
1.78
1.77
-50
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
70
80
90
Temperatura ( C)
Rising Vcc
2.74
2.72
Umbral (V)
2.7
Caer Vcc
2.68
2.66
2.64
-50
-40
-30
-20
-10
10
20
30
40
50
60
Temperatura ( C)
367
8161D-AVR-10.9
Rising Vcc
4.32
4.3
Umbral (V)
4.28
Caer Vcc
4.26
4.24
4.22
-50
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
Temperatura ( C)
29.02.11
110
109
108
2,7 V
3,3 V
4,0 V
5,5 V
107
106
105
-40
-20
20
40
60
80
100
Temperatura ( C)
368
8161D-AVR-10.9
114
-40 C
112
FRC (kHz)
25 C
110
108
106
85 C
104
1.5
2.5
3.5
4.5
5.5
VCC (V)
85 C
8.2
8.1
25 C
FRC (MHz)
8
7.9
-40 C
7.8
7.7
7.6
1.5
2.5
3.5
4.5
5.5
VCC (V)
369
8161D-AVR-10.9
5,5 V
4,0 V
8.2
3,0 V
FRC8.1
(MHz)
7.9
7.8
-40
-20
20
40
60
80
100
Temperatura ( C)
Figura 29-84. ATmega88PA: calibrada 8 MHz RC Oscilador de Frecuencia vs. OSCCAL Valor
14
85 C
25 C
-40 C
12
10
FRC (MHz)
8
0
0
16
32
48
64
80
96
112 128 144 160 176 192 208 224 240 256
OSCCAL (X1)
370
8161D-AVR-10.9
300
250
200
CPI (UA)
150
100
50
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
-40 C
25 C
85 C
80
70
60
CPI 50
(UA)
40
30
20
10
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
371
8161D-AVR-10.9
160
140
120
100
CPI (UA)
80
60
40
20
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
40
30
CPI (UA)
85 C
25 C
20
-40 C
10
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
372
8161D-AVR-10.9
-40 C
25 C
7
6
85 C
5
CPI (mA)
4
3
2
1
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
02.29.13
5,5 V
0.1
5,0 V
0.08
4,5 V
CPI (mA)
4,0 V
0.06
3,3 V
0.04
2,7 V
1,8 V
0.02
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
373
8161D-AVR-10.9
5,5 V
5,0 V
1.6
4,5 V
1.2
CPI (mA)
4,0 V
0.8
3,3 V
0.4
2,7 V
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
85 C
25 C
-40 C
200
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
374
8161D-AVR-10.9
29.3.1
5,5 V
0.8
5,0 V
4,5 V
0.6
CPI (mA)
4,0 V
3,3 V
0.4
2,7 V
0.2
1,8 V
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
Figura 29-94. ATmega168PA: Activo Corriente de suministro vs. frecuencia (1-20 MHz)
12
5,5 V
10
5,0 V
8
4,5 V
CPI (mA)
4,0 V
4
3,3 V
2,7 V
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
375
8161D-AVR-10.9
-40 C
85 C
25 C
0.12
0.09
CPI (mA)
0.06
0.03
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-96. ATmega168PA: Activo Corriente de suministro frente a VCC (Interno oscilador RC, 1 MHz)
1.2
85 C
25 C
-40 C
0.8
CPI (mA)
0.6
0.4
0.2
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
376
8161D-AVR-10.9
CPI (mA)
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
29.3.2
5,5 V
0.12
5,0 V
4,5 V
0.09
CPI (mA)
4,0 V
0.06
3,3 V
2,7 V
0.03
1,8 V
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
377
8161D-AVR-10.9
5,5 V
2.5
5,0 V
2
4,5 V
CPI (mA)
1.5
4,0 V
1
3,3 V
0.5
2,7 V
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
Figura 29-100.IATmega168PA: dle Corriente de suministro frente a VCC (Interno oscilador RC, 128 kHz)
0.04
85 C
0,035
0.03
25 C
-40 C
0,025
CPI (mA)
0.02
0,015
0.01
0,005
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
378
8161D-AVR-10.9
85 C
25 C
-40 C
0.25
0.2
CPI (mA)
0.15
0.1
0.05
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-102.ATmega168PA: Inactivo Corriente de suministro frente a Vcc (Interno oscilador RC, 8 MHz)
1.2
85 C
25 C
-40 C
0.9
CPI (mA)
0.6
0.3
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
379
8161D-AVR-10.9
29.3.3
Tabla 29-5.
PRR poco
PRUSART0
2.86 uA
20.3 uA
52.2 uA
PRTWI
6.00 uA
44.1uA
122,0 uA
PRTIM2
4.97 uA
33.2 uA
79.8 uA
PRTIM1
3.50 uA
23.0 uA
55.3 uA
PRTIM0
1.43 uA
9.2 uA
21.4 uA
PRSPI
5.01 uA
38.6 uA
111.4 uA
PRADC
6.34 uA
45.7 uA
123.6 uA
Tabla 29-6.
PRUSART0
1,5%
8,9%
PRTWI
3,2%
19,5%
PRTIM2
2,4%
14,8%
PRTIM1
1,7%
10,3%
PRTIM0
0,7%
4,1%
PRSPI
2,9%
17,1%
PRADC
3,4%
20,3%
PRR poco
Es posible calcular el consumo de corriente tpico basado en los nmeros de Tabla 29-6
en la pgina 380 para otros ajustes VCC y frecuencia de los que aparecen en Tabla 29-5 en la pgina 380.
Ejemplo
Calcular el consumo actual se espera en modo inactivo con TIMER1, ADC, y SPI habilitado
en VCC = 2,0 V y F = 1 MHz. Desde Tabla 29-6 en la pgina 380, tercera columna, vemos que necesitamos
aadir 10,3% para el TIMER1, 20,3% para el ADC, y 17,1% para el mdulo SPI. Leyendo de
Figura 29-98 en la pgina 377, Nos encontramos con que el consumo de corriente de reposo es de ~ 0,027 mA en VCC = 2.0V
y F = 1 MHz. El consumo total de corriente en modo inactivo con TIMER1, ADC, y SPI habilitado,
da:
Yo CC totales 0.027 mA (1 + 0.103 + 0.203 + 0.171) 0.040 mA
380
8161D-AVR-10.9
85 C
0.8
0.6
CPI (UA)
0.4
0.2
25 C
-40 C
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-104.ATmega168PA: Power-Abajo Corriente de suministro frente a VCC (temporizador Watchdog Activado)
8
-40 C
85 C
25 C
CPI (UA)
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
381
8161D-AVR-10.9
85 C
2
1.5
CPI (UA)
-40 C
25 C
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
29.3.6
0.14
0.12
4MHz_res
4MHz_xtal
0.1
CPI 0.08
(mA)
2MHz_res
2MHz_xtal
450kHz_res
1MHz_res
0.06
0.04
0.02
0
1.5
2.5
3.5
4.5
5.5
VCC (MHz)
382
8161D-AVR-10.9
Pin Pull-Up
Figura 29-107.ATmega168PA: I / O Pin resistencia pull-up actual vs. Voltaje de entrada (VCC = 1,8 V)
50
40
30
PIO (UA)
20
10
25 C
-40 C
85 C
0
0
0.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
VOP (V)
Figura 29-108.ATmega168PA: I / O Pin resistencia pull-up actual vs. Voltaje de entrada (VCC = 2,7 V)
80
70
60
50
PIO (UA)
40
30
20
25 C
10
-40 C
85 C
0
0
0.5
1.5
2.5
VOP (V)
383
8161D-AVR-10.9
25 C
20
-40 C
85 C
0
0
VOP (V)
Figura 29-110.ATmega168PA: Reponer resistencia pull-up actual vs. Cambiar Pin Voltaje
(VCC = 1,8 V)
40
35
30
25
IRESET (UA)
20
15
10
25 C
5
-40 C
85 C
0
0
0.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
VRESET (V)
384
8161D-AVR-10.9
50
40
IRESET (UA)
30
20
25 C
-40 C
85 C
10
0
0
0.5
1.5
2.5
VRESET (V)
Figura 29-112.ATmega168PA: Reponer resistencia pull-up actual vs. Cambiar Pin Voltaje (VCC = 5V)
120
100
80
IRESET (UA)
60
40
25 C
-40 C
85 C
20
0
0
VRESET (V)
385
8161D-AVR-10.9
85 C
0.8
25 C
0.6
VOL (V)
-40 C
0.4
0.2
0
0
12
16
20
IOL (mA)
85 C
0.5
25 C
-40 C
0.4
VOL (V)
0.3
0.2
0.1
0
0
12
16
20
IOL (mA)
386
8161D-AVR-10.9
2.5
-40 C
25 C
85 C
2
VOH (V)
1.5
0.5
0
0
12
16
20
IOH (mA)
4.8
4.6
-40 C
25 C
85 C
VOH (V)
4.4
4.2
4
0
12
16
20
IOH (mA)
387
8161D-AVR-10.9
85 C
25 C
-40 C
2.5
2
Umbral (V)
1.5
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-118.ATmega168PA: I / O Pin Umbral de entrada Tensin vs. VCC (VIllinois, I / O Pin ledo como '0')
85 C
25 C
-40 C
2.5
Umbral (V)
1.5
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
388
8161D-AVR-10.9
0.6
0.5
La histresis de
0.4 (mV)
entrada
0.3
0.2
0.1
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-120.ATmega168PA: Restablecer Umbral de entrada Tensin vs. VCC (VIH, I / O Pin ledo como '1')
85 C
-40 C
25 C
1.5
1.2
Umbral (V)
0.9
0.6
0.3
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
389
8161D-AVR-10.9
2.5
Umbral (V)
1.5
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
0.6
0.5
La histresis
de
entrada (mV)
0.4
0.3
0.2
85 C
0.1
25 C
-40 C
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
390
8161D-AVR-10.9
Umbral BOD
Figura 29-123.ATmega168PA: BOD Umbrales vs. Temperatura (BODLEVEL es de 1,8 V)
1.86
1.84
Rising Vcc
1.82
Umbral (V)
1.8
Caer Vcc
1.78
1.76
1.74
1.72
-50
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
Temperatura ( C)
Rising Vcc
2.74
2.72
Umbral (V)
2.7
2.68
Caer Vcc
2.66
2.64
2.62
-50
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
Temperatura ( C)
391
8161D-AVR-10.9
4.32
Rising Vcc
4.3
Umbral (V)
4.28
4.26
Caer Vcc
4.24
4.22
4.2
-50
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
Temperatura ( C)
03.29.11
119
117
FRC (kHz)
115
2,7 V
113
3,3 V
5,5 V
111
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
Temperatura ( C)
392
8161D-AVR-10.9
120
-40 C
118
FRC (kHz)
25 C
116
114
112
85 C
110
1.5
2.5
3.5
4.5
5.5
VCC (V)
85 C
8.2
25 C
8
FRC (MHz)
7.8
-40 C
7.6
7.4
1.5
2.5
3.5
4.5
5.5
VCC (V)
393
8161D-AVR-10.9
5,5 V
5,0 V
2,7 V
8.2
8.1
1,8 V
8
FRC (MHz)
7.9
7.8
7.7
7.6
7.5
-50
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
Temperatura ( C)
85 C
25 C
14
-40 C
12
10
FRC (MHz)
8
6
4
2
0
0
16
32
48
64
80
96
112 128 144 160 176 192 208 224 240 256
OSCCAL (X1)
394
8161D-AVR-10.9
-40 C
25 C
85 C
300
250
CPI (UA)
200
150
100
1.5
2.5
3.5
4.5
5.5
VCC (V)
-40 C
25 C
85 C
80
70
CPI (UA)
60
50
40
30
1.5
2.5
3.5
4.5
5.5
VCC (V)
395
8161D-AVR-10.9
25 C
160
85 C
-40 C
140
120
CPI (UA)
100
80
60
40
20
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
85 C
24
25 C
22
-40 C
20
CPI (UA)
18
16
14
12
1.5
2.5
3.5
4.5
5.5
VCC (V)
396
8161D-AVR-10.9
-40 C
25 C
85 C
CPI (mA)
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
29.03.13
5,5 V
0.1
5,0 V
0.08
4,5 V
CPI (mA)
4,0 V
0.06
3,3 V
0.04
2,7 V
1,8 V
0.02
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
397
8161D-AVR-10.9
5,5 V
5,0 V
4,5 V
1.5
CPI (mA)
4,0 V
1
3,3 V
0.5
2,7 V
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
1500
1250
PulseWidth
(ns)
1000
750
500
85 C
25 C
-40 C
250
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
398
8161D-AVR-10.9
29.4.1
5,5 V
1
5,0 V
0.8
4,5 V
CPI (mA)
4,0 V
0.6
3,3 V
0.4
2,7 V
1,8 V
0.2
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
5,5 V
12
5,0 V
10
4,5 V
CPI (mA)
4,0 V
6
3,3 V
4
2,7 V
2
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
399
8161D-AVR-10.9
85 C
25 C
-40 C
0.12
CPI (mA)
0.08
0.04
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-142.ATmega328P: Activo Corriente de suministro frente a VCC (Interno oscilador RC, 1 MHz)
1.4
85 C
25 C
1.2
-40 C
1
0.8
CPI (mA)
0.6
0.4
0.2
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
400
8161D-AVR-10.9
85 C
25 C
-40 C
5
CPI (mA)
4
3
2
1
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
29.4.2
5,5 V
0.16
5,0 V
4,5 V
0.12
CPI (mA)
4,0 V
3,3 V
0.08
2,7 V
0.04
1,8 V
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
401
8161D-AVR-10.9
5,5 V
5,0 V
2.5
4,5 V
Yo CC (mA)
4,0 V
1.5
3,3 V
2,7 V
0.5
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
Figura 29-146.ATmega328P: Inactivo Corriente de suministro frente a VCC (Interno oscilador RC, 128 kHz) ,
0.06
0.05
85 C
0.04
CPI (mA)
25 C
-40 C
0.03
0.02
0.01
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
402
8161D-AVR-10.9
85 C
0.35
25 C
0.3
-40 C
0.25
CPI (mA)
0.2
0.15
0.1
0.05
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-148.ATmega328P: Inactivo Corriente de suministro frente a Vcc (Interno oscilador RC, 8 MHz)
2
85 C
1.6
25 C
-40 C
1.2
CPI (mA)
0.8
0.4
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
403
8161D-AVR-10.9
29.4.3
Tabla 29-7.
PRR poco
PRUSART0
3,20 mu
22,17 mu
100,25 mu
PRTWI
7,34 mu
46,55 mu
199,25 mu
PRTIM2
7,34 mu
50,79 mu
224,25 mu
PRTIM1
6,19 mu
41,25 mu
176,25 mu
PRTIM0
1,89 mu
14,28 mu
61,13 mu
PRSPI
6,94 mu
43,84 mu
186,50 mu
PRADC
8,66 mu
61,80 mu
295,38 mu
Tabla 29-8.
PRR poco
PRUSART0
1,4%
7,8%
PRTWI
3,0%
16,6%
PRTIM2
3,3%
17,8%
PRTIM1
2,7%
14,5%
PRTIM0
0,9%
4,8%
PRSPI
2,9%
15,7%
PRADC
4,1%
22,1%
Es posible calcular el consumo de corriente tpico basado en los nmeros de Tabla 29-8
en la pgina 404 para otros ajustes VCC y frecuencia de los que aparecen en Tabla 29-7 en la pgina 404.
Ejemplo
Calcular el consumo actual se espera en modo inactivo con TIMER1, ADC, y SPI habilitado
en VCC = 2,0 V y F = 1 MHz. Desde Tabla 29-8 en la pgina 404, tercera columna, vemos que necesitamos
aadir 14,5% para el TIMER1, 22,1% para el ADC, y el 15,7% para el mdulo SPI. Leyendo de
Figura 29 a 145 en la pgina 402, nos encontramos con que el consumo de corriente de reposo es de ~ 0,055 mA en VCC =
2.0V y F = 1 MHz. El consumo total de corriente en modo inactivo con TIMER1, ADC, y SPI
habilitado, da:
Yo CC totales 0.045 mA (1 + 0,145 + 0,221 + 0,157) 0.069 mA
404
8161D-AVR-10.9
85 C
1
0.8
CPI (UA)
0.6
0.4
0.2
25 C
-40 C
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-150.ATmega328P: Power-Abajo Corriente de suministro frente a VCC (temporizador Watchdog Activado)
10
9
-40 C
85 C
25 C
8
7
6
CPI (UA)
5
4
3
2
1
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
405
8161D-AVR-10.9
25 C
1.4
1.2
CPI (UA)
1
0.8
0.6
0.4
0.2
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
29.4.6
6MHz_res
6MHz_xtal
0.14
0.12
4MHz_res
4MHz_xtal
0.1
0.08
2MHz_res
2MHz_xtal
0.06
1MHz_res
CPI (mA)
0.04
0.02
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
406
8161D-AVR-10.9
Pin Pull-Up
Figura 29-153.ATmega328P: I / O Pin resistencia pull-up actual vs. Voltaje de entrada (VCC = 1,8 V)
60
50
40
PIO (UA)
30
20
25 C
10
85 C
-40 C
0
0
0.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
VOP (V)
Figura 29-154.ATmega328P: I / O Pin resistencia pull-up actual vs. Voltaje de entrada (VCC = 2,7 V)
90
80
70
60
PIO 50
(UA)
40
30
20
25 C
10
85 C
-40 C
0
0
0.5
1.5
2.5
VOP (V)
407
8161D-AVR-10.9
80
60
40
25 C
85 C
20
-40 C
0
0
VOP (V)
Figura 29-156.ATmega328P: Reponer resistencia pull-up actual vs. Cambiar Pin Voltaje
(VCC = 1,8 V)
40
35
30
25
IRESET (UA)
20
15
10
25 C
85 C
-40 C
0
0
0.2
0.4
0.6
0.8
1.2
1.4
1.6
1.8
VRESET (V)
408
8161D-AVR-10.9
60
50
IRESET
40 (UA)
30
20
25 C
10
85 C
-40 C
0
0
0.5
1.5
2.5
VRESET (V)
Figura 29-158.ATmega328P: Reponer resistencia pull-up actual vs. Cambiar Pin Voltaje (VCC = 5 V)
120
100
80
IRESET (UA)
60
40
25 C
20
85 C
-40 C
0
0
VRESET (V)
409
8161D-AVR-10.9
85 C
0.8
25 C
0.6
V OL (V)
-40 C
0.4
0.2
0
0
10
15
20
25
IOL (mA)
85 C
0.5
25 C
0.4
-40 C
V OL (V)
0.3
0.2
0.1
0
0
10
15
20
25
IOL (mA)
410
8161D-AVR-10.9
2.5
-40 C
25 C
85 C
2
V OH (V)
1.5
0.5
0
0
10
15
20
25
IOH (mA)
4.7
4.6
-40 C
4.5
25 C
4.4
85 C
4.3
0
10
15
20
25
IOH (mA)
411
8161D-AVR-10.9
-40 C
25 C
85 C
3
2.5
Umbral (V)
2
1.5
1
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-164.ATmega328P: I / O Pin Umbral de entrada Tensin vs. VCC (VIllinois, I / O Pin ledo como '0')
2.5
85 C
25 C
-40 C
Umbral
1.5 (V)
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
412
8161D-AVR-10.9
-40 C
25 C
85 C
0.6
0.5
La histresis
de entrada
(mV)
0.4
0.3
0.2
0.1
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
Figura 29-166.ATmega328P: Restablecer Umbral de entrada Tensin vs. VCC (VIH, I / O Pin ledo como '1')
2.5
-40 C
25 C
85 C
Umbral
1.5 (V)
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
413
8161D-AVR-10.9
85 C
25 C
-40 C
Umbral
1.5 (V)
0.5
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
0.6
0.5
La histresis
de entrada
(mV)0.4
0.3
0.2
-40 C
0.1
25 C
85 C
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
414
8161D-AVR-10.9
Umbral BOD
Figura 29-169.ATmega328P: BOD Umbrales vs. Temperatura (BODLEVEL es de 1,8 V)
1.85
1.83
1
Umbral (V)
1.81
1.79
1.77
1.75
-60
-40
-20
20
40
60
80
100
Temperatura ( C)
2.76
1
2.74
Umbral (V)
2.72
2.7
2.68
2.66
-60
-40
-20
20
40
60
80
100
Temperatura ( C)
415
8161D-AVR-10.9
4.35
Umbral (V)
4.3
0
4.25
-60
-40
-20
20
40
60
80
100
Temperatura ( C)
04.29.11
F RC (kHz)
114
113
2,7 V
112
3,3 V
111
4,0 V
5,5 V
110
109
-60
-40
-20
20
40
60
80
100
Temperatura ( C)
416
8161D-AVR-10.9
118
-40 C
116
F RC (kHz)
25 C
114
112
110
85 C
108
1.5
2.5
3.5
4.5
5.5
VCC (V)
85 C
8.2
25 C
8
F RC (MHz)
-40 C
7.8
7.6
7.4
1.5
2.5
3.5
4.5
5.5
VCC (V)
417
8161D-AVR-10.9
5,0 V
8.3
3,0 V
8.2
8.1
F RC (MHz)
8
7.9
7.8
7.7
7.6
-50
-40
-30
-20
-10
10
20
30
40
50
60
70
80
90
100
Temperatura ( C)
85 C
25 C
12
-40 C
10
F RC (MHz)
8
6
4
2
0
0
16
32
48
64
80
96
112 128 144 160 176 192 208 224 240 256
OSCCAL (X1)
418
8161D-AVR-10.9
-40 C
25 C
85 C
300
250
200
CPI (UA)
150
100
50
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
100
-40 C
25 C
85 C
80
CPI (UA)
60
40
20
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
419
8161D-AVR-10.9
85 C
25 C
-40 C
160
140
120
CPI (UA)
100
80
60
40
20
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
85 C
25 C
-40 C
25
20
CPI (UA)
15
10
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
420
8161D-AVR-10.9
25 C
85 C
-40 C
8
7
6
CPI (mA)
5
4
3
2
1
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
04.29.13
5,5 V
5,0 V
0.1
4,5 V
CPI (mA)
4,0 V
3,3 V
2,7 V
0.05
1,8 V
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
Frecuencia (MHz)
421
8161D-AVR-10.9
5,5 V
2.5
5,0 V
4,5 V
2
CPI (mA)
4,0 V
1.5
3,3 V
2,7 V
0.5
1,8 V
0
0
10
12
14
16
18
20
Frecuencia (MHz)
1000
800
600
400
85 C
25 C
-40 C
200
0
1.5
2.5
3.5
4.5
5.5
VCC (V)
422
8161D-AVR-10.9
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Reservado
Nombre
(0xFE)
Reservado
(0xFD)
Reservado
(0xFC)
Reservado
(0xFB)
Reservado
(0xFA)
Reservado
(0xF9)
Reservado
(0xF8)
Reservado
(0xF7)
Reservado
(0xF6)
Reservado
(0xF5)
Reservado
(0xF4)
Reservado
(0xF3)
Reservado
(0xF2)
Reservado
(0xf1)
Reservado
(0xF0)
Reservado
(0xEF)
Reservado
(0xEE)
Reservado
(0xED)
Reservado
(0xEC)
Reservado
(0xEB)
Reservado
(0xEA)
Reservado
(0xE9)
Reservado
(0xE8)
Reservado
(0xE7)
Reservado
(0xE6)
Reservado
(0xE5)
Reservado
(0xE4)
Reservado
(0xE3)
Reservado
(0xE2)
Reservado
(0xE1)
Reservado
(0xE0)
Reservado
(0xDF)
Reservado
(0xDE)
Reservado
(0xdd)
Reservado
(0xDC)
Reservado
(0xDB)
Reservado
(0xDA)
Reservado
(0xD9)
Reservado
(0xd8)
Reservado
(0xD7)
Reservado
(0xD6)
Reservado
(0xD5)
Reservado
(0xD4)
Reservado
(0xD3)
Reservado
(0xD2)
Reservado
(0xD1)
Reservado
(0xD0)
Reservado
(0xCF)
Reservado
(0xCE)
Reservado
(0xCD)
Reservado
(0xCC)
Reservado
(0xCB)
Reservado
(0xCA)
Reservado
(0xC9)
Reservado
(0xC8)
Reservado
(0xC7)
Reservado
(0xC6)
UDR0
(0xC5)
UBRR0H
195
USART Baud Rate Registro alta
(0xC4)
UBRR0L
(0xC3)
Reservado
(0xC2)
UCSR0C
UMSEL01
(0xC1)
UCSR0B
RXCIE0
(0xC0)
UCSR0A
RXC0
199
Pgina
199
UMSEL00
UPM01
UPM00
USBS0
UCSZ01 / UDORD0
UCSZ00 / UCPHA0
UCPOL0
TXCIE0
UDRIE0
RXEN0
TXEN0
UCSZ02
RXB80
TXB80
196
TXC0
UDRE0
FE0
DOR0
UPE0
U2X0
MPCM0
195
197/212
423
8161D-AVR-10.9
Nombre
(0xBF)
Reservado
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Pgina
(0xBE)
Reservado
(0xBD)
TWAMR
TWAM6
TWAM5
TWAM4
TWAM3
TWAM2
TWAM1
TWAM0
244
(0xBC)
TWCR
TWINT
TWEA
TWSTA
TWSTO
TWWC
TWEN
TWIE
241
(0xBB)
TWDR
(0xBA)
TWAR
TWA6
TWA5
TWA4
TWA3
TWA2
TWA1
TWA0
TWGCE
244
(0xB9)
TWSR
TWS7
TWS6
TWS5
TWS4
TWS3
TWPS1
TWPS0
243
243
(0xB8)
TWBR
(0xB7)
Reservado
(0xB6)
ASSR
(0xB5)
Reservado
(0xB4)
OCR2B
162
(0xB3)
OCR2A
162
EXCLK
AS2
TCN2UB
241
OCR2AUB
OCR2BUB
TCR2AUB
-
TCR2BUB
164
(0xB2)
TCNT2
(0xB1)
TCCR2B
FOC2A
FOC2B
WGM22
CS22
CS21
CS20
(0xB0)
TCCR2A
COM2A1
COM2A0
COM2B1
COM2B0
WGM21
WGM20
(0xAF)
Reservado
162
161
158
(0xAE)
Reservado
(0xAD)
Reservado
(0xAC)
Reservado
(0xAB)
Reservado
(0xAA)
Reservado
(0xa9)
Reservado
(0xA8)
Reservado
(0xA7)
Reservado
(0xA6)
Reservado
(0xA5)
Reservado
(0xA4)
Reservado
(0xA3)
Reservado
(0xA2)
Reservado
(0xA1)
Reservado
(0xA0)
Reservado
(0x9F)
Reservado
(0x9E)
Reservado
(0x9D)
Reservado
(0x9C)
Reservado
(0x9B)
Reservado
(0x9A)
Reservado
(0x99)
Reservado
(0x98)
Reservado
(0x97)
Reservado
(0x96)
Reservado
(0x95)
Reservado
(0x94)
Reservado
(0x93)
Reservado
(0x92)
Reservado
(0x91)
Reservado
(0x90)
Reservado
(0x8F)
Reservado
(0x8E)
Reservado
(0x8D)
Reservado
(0x8C)
Reservado
(0x8B)
OCR1BH
138
(0x8A)
OCR1BL
138
(0x89)
OCR1AH
138
(0x88)
OCR1AL
138
(0x87)
ICR1H
138
(0x86)
ICR1L
138
(0x85)
TCNT1H
138
(0x84)
TCNT1L
138
(0x83)
Reservado
(0x82)
TCCR1C
FOC1A
FOC1B
137
(0x81)
TCCR1B
ICNC1
ICES1
WGM13
WGM12
CS12
CS11
CS10
136
(0x80)
TCCR1A
COM1A1
COM1A0
COM1B1
COM1B0
WGM11
WGM10
134
(0x7F)
DIDR1
AIN1D
AIN0D
249
(0x7E)
DIDR0
ADC5D
ADC4D
ADC3D
ADC2D
ADC1D
ADC0D
266
424
8161D-AVR-10.9
Bit 7
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
Reservado
(0x7C)
ADMUX
REFS1
REFS0
MUX3
MUX2
MUX1
MUX0
262
(0x7B)
ADCSRB
ACME
ADTS2
ADTS1
ADTS0
265
(0x7A)
ADCSRA
ADEN
ADSC
ADATE
ADIF
ADIE
ADPS2
ADPS1
ADPS0
263
(0x79)
ADCH
(0x78)
ADCL
(0x77)
Reservado
(0x76)
Reservado
(0x75)
Reservado
(0x74)
Reservado
(0x73)
Reservado
(0x72)
Reservado
(0x71)
Reservado
(0x70)
TIMSK2
OCIE2B
OCIE2A
TOIE2
163
(0x6F)
TIMSK1
ICIE1
OCIE1B
OCIE1A
TOIE1
139
(0x6E)
TIMSK0
OCIE0B
OCIE0A
TOIE0
111
(0x6D)
PCMSK2
PCINT23
PCINT22
PCINT21
PCINT20
PCINT19
PCINT18
PCINT17
PCINT16
74
(0x6C)
PCMSK1
PCINT14
PCINT13
PCINT12
PCINT11
PCINT10
PCINT9
PCINT8
74
(0x6B)
PCMSK0
PCINT7
PCINT6
PCINT5
PCINT4
PCINT3
PCINT2
PCINT1
PCINT0
74
(0x6A)
Reservado
(0x69)
EICRA
ISC11
ISC10
ISC01
ISC00
(0x68)
PCICR
PCIE2
PCIE1
PCIE0
(0x67)
Reservado
(0x66)
OSCCAL
(0x65)
Reservado
(0x64)
PRR
PRTWI
PRTIM2
PRTIM0
PRTIM1
PRSPI
(0x63)
Reservado
(0x62)
Reservado
(0x61)
CLKPR
CLKPCE
CLKPS3
CLKPS2
CLKPS1
CLKPS0
37
(0x60)
WDTCSR
WDIF
WDIE
WDP3
WDCE
WDE
WDP2
WDP1
WDP0
54
0x3F (0x5F)
SREG
YO
0x3E (0x5E)
SPH
(SP10) 5.
SP9
SP8
12
0x3D (0x5D)
SPL
SP7
SP6
SP5
SP4
SP3
SP2
SP1
SP0
12
0x3C (0x5C)
Reservado
0x3B (0x5b)
Reservado
0x3A (0x5A)
Reservado
0x39 (0x59)
Reservado
0x38 (0x58)
Reservado
0x37 (0x57)
SPMCSR
SPMIE
(RWWSB) 5.
(RWWSRE) 5.
BLBSET
PGWRT
0x36 (0x56)
Reservado
0x35 (0x55)
MCUCR
BODSE
PUD
IVSEL
IVCE
0x34 (0x54)
MCUSR
WDRF
BORF
EXTRF
PORF
54
0x33 (0x53)
SMCR
SM2
SM1
SM0
SE
40
0x32 (0x52)
Reservado
0x31 (0x51)
Reservado
0x30 (0x50)
ACSR
ACD
ACBG
ACO
ACI
ACIE
ACIC
ACIS1
ACIS0
0x2F (0x4F)
Reservado
0x2E (0x4E)
SPDR
0x2D (0x4D)
SPSR
SPIF
WCOL
SPI2X
174
PEACC
SPIE
SPE
DORD
MSTR
CPOL
CPHA
SPR1
SPR0
173
(0x7D)
0x2C (0x4C)
Nombre
Adlar
265
265
Bods
PRUSART0
-
PGERS
-
PRADC
SELFPRGEN
44/68/92
247
175
0x2A (0x4A)
GPIOR1
0x29 (0x49)
Reservado
0x28 (0x48)
OCR0B
0x27 (0x47)
OCR0A
0x26 (0x46)
TCNT0
0x25 (0x45)
TCCR0B
FOC0A
FOC0B
WGM02
CS02
CS01
CS00
0x24 (0x44)
TCCR0A
COM0A1
COM0A0
COM0B1
COM0B0
WGM01
WGM00
0x23 (0x43)
GTCCR
TSM
PSRASY
PSRSYNC
0x22 (0x42)
EEARH
0x21 (0x41)
EEARL
0x20 (0x40)
EEDR
0x1F (0x3F)
EECR
0x1E (0x3E)
GPIOR0
0x1D (0x3D)
EIMSK
0x1C (0x3C)
EIFR
292
GPIOR2
42
0x2B (0x4B)
71
37
Pgina
25
25
5.
21
21
EEPM1
EEPM0
MISTERIOSA
143/165
21
EEMPE
EEPE
EERE
INT1
INT0
72
INTF1
INTF0
72
21
25
425
8161D-AVR-10.9
Bit 6
Bit 5
Bit 4
Bit 3
Bit 2
Bit 1
Bit 0
0x1B (0x3B)
Direccin
PCIFR
PCIF2
PCIF1
PCIF0
0x1A (0x3A)
Reservado
0x19 (0x39)
Reservado
0x18 (0x38)
Reservado
0x17 (0x37)
TIFR2
OCF2B
OCF2A
TOV2
163
0x16 (0x36)
TIFR1
ICF1
OCF1B
OCF1A
TOV1
139
0x15 (0x35)
TIFR0
OCF0B
OCF0A
TOV0
0x14 (0x34)
Reservado
0x13 (0x33)
Reservado
0x12 (0x32)
Reservado
0x11 (0x31)
Reservado
0x10 (0x30)
Reservado
0x0F (0x2F)
Reservado
0x0E (0x2E)
Reservado
0x0D (0x2D)
Reservado
0x0C (0x2C)
Reservado
0x0B (0x2B)
PORTD
PORTD7
PORTD6
PORTD5
PORTD4
PORTD3
PORTD2
PORTD1
PORTD0
93
0x0A (0x2A)
DDRD
DDD7
DDD6
DDD5
DDD4
DDD3
DDD2
DDD1
DDD0
93
0x09 (0x29)
PIND
PIND7
PIND6
PIND5
PIND4
PIND3
PIND2
PIND1
PIND0
93
0x08 (0x28)
PORTC
PORTC6
PORTC5
PORTC4
PORTC3
PORTC2
PORTC1
PORTC0
92
0x07 (0x27)
DDRC
DDC6
DDC5
DDC4
DDC3
DDC2
DDC1
DDC0
92
0x06 (0x26)
PINC
PINC6
PINC5
PINC4
PINC3
PINC2
PINC1
PINC0
92
0x05 (0x25)
PORTB
PORTB7
PORTB6
PORTB5
PORTB4
PORTB3
PORTB2
PORTB1
PORTB0
92
0x04 (0x24)
DDRB
DDB7
DDB6
DDB5
DDB4
DDB3
DDB2
DDB1
DDB0
92
0x03 (0x23)
PINB
PINB7
PINB6
PINB5
PINB4
PINB3
PINB2
PINB1
PINB0
92
0x02 (0x22)
Reservado
0x01 (0x21)
Reservado
0x0 (0x20)
Reservado
Nota:
Nombre
Pgina
1. Para la compatibilidad con dispositivos futuros, los bits reservados debe escribirse a cero si accede. Direcciones de memoria Reservados E / S
nunca debe ser por escrito.
2. E / S Registros dentro del rango de direcciones 0x00 - 0x1F son directamente poco accesible siguiendo las instrucciones de OSE y la ICC. En estos
registros, el valor de los bits individuales pueden verificarse mediante el uso de las instrucciones SBIS y SBIC.
3. Algunos de los indicadores de estado se borran escribiendo un uno lgico para ellos. Tenga en cuenta que, a diferencia de la mayora de los otros RAV, la CBI y
OSE
instrucciones slo funcionarn con el bit especificado, y por lo tanto se pueden utilizar en los registros que contienen tales Indicadores de estado. La
Instrucciones de la ICC y OSE trabajan con registros 0x00 a 0x1F solamente.
4. Cuando se utiliza el yo comandos especficos / S IN y OUT, la E / S direcciones 0x00 - 0x3F debe ser utilizado. Al abordar de E / S
Registros como espacio de datos utilizando instrucciones LD y ST, 0x20 hay que aadir a estas direcciones. La
ATmega48PA / 88PA / 168PA / 328P es un microcontrolador complejo con ms unidades perifricas que se puede apoyar en el 64
ubicacin reservada en Opcode para las instrucciones IN y OUT. Para el espacio ampliado de E / S de 0x60 - 0xFF en SRAM, slo
la ST / STS / ETS y las instrucciones LD / SUD / LDD se pueden utilizar.
5. Slo vlido para ATmega88PA / 168PA.
426
8161D-AVR-10.9
Operandos
Descripcin
Operacin
Banderas
#Clocks
Rd, Rr
Rd Rd + Rr
Z, C, N, V, H
ADC
Rd, Rr
Rd Rd + Rr + C
Z, C, N, V, H
ADIW
Rdl, K
Z, C, N, V, S
SUB
Rd, Rr
Rd Rd - Rr
Z, C, N, V, H
SUBI
Rd, K
Rd Rd - K
Z, C, N, V, H
SBC
Rd, Rr
Rd Rd - Rr - C
Z, C, N, V, H
SBCI
Rd, K
Rd Rd - K - C
Z, C, N, V, H
SBIW
Rdl, K
Z, C, N, V, S
Rd, Rr
Y lgico Registros
Rd Rd Rr
Z, N, V
ANDI
Rd, K
Rd Rd K
Z, N, V
Oregn
Rd, Rr
OR lgico Registros
Rd Rd v Rr
Z, N, V
ORI
Rd, K
Rd Rd v K
Z, N, V
EOR
Rd, Rr
Exclusiva O Registros
Rd Rd Rr
Z, N, V
COM
Rd
Uno de Complemento
Rd 0xFF - Rd
Z, C, N, V
NEG
Rd
Complemento a dos
Rd 0x00 - Rd
Z, C, N, V, H
SBR
Rd, K
Rd Rd v K
Z, N, V
CBR
Rd, K
Rd Rd (0xFF - K)
Z, N, V
INC
Rd
Incremento
Rd Rd + 1
Z, N, V
Diciembre
Rd
Decremento
Rd Rd - 1
Z, N, V
TST
Rd
Rd Rd Rd
Z, N, V
CLR
Rd
Borrar Registro
Rd Rd Rd
Z, N, V
SER
Rd
Establecer Registro
Rd 0xFF
Ninguno
MUL
Rd, Rr
Multiplicar Unsigned
R1: R0 Rd x Rr
Z, C
MULS
Rd, Rr
Multiplicar Firmado
R1: R0 Rd x Rr
Z, C
MULSU
Rd, Rr
R1: R0 Rd x Rr
Z, C
FMUL
Rd, Rr
Z, C
FMULS
Rd, Rr
1
R1: R0 (Rd x Rr) <<
1
Z, C
FMULSU
Rd, Rr
Z, C
Jump Relativa
Ordenador personal PC + k + 1
Ninguno
Ordenador personal Z
Ninguno
INSTRUCCIONES DE SUCURSALES
Rjmp
IJMP
JMP(1)
Ir directo
Ordenador personal k
Ninguno
RCALL
Ordenador personal PC + k + 1
Ninguno
Ordenador personal Z
Ninguno
Ordenador personal k
Ninguno
RET
Subrutina Volver
Ninguno
RETI
Interrupcin Volver
YO
Rd, Rr
si (Rd = RR) PC PC + 2 o 3
Ninguno
CP
Rd, Rr
Comparar
Rd - Rr
Z, N, V, C, H
CPC
Rd, Rr
Rd - Rr - C
Z, N, V, C, H
IPC
Rd, K
Rd - K
Z, N, V, C, H
SBRC
Rr, b
si (Rr (b) = 0) PC PC + 2 o 3
Ninguno
1/2/3
SBRS
Rr, b
si (Rr (b) = 1) PC PC + 2 o 3
Ninguno
1/2/3
SBIC
P, b
Si (P (b) = 0) PC PC + 2 o 3
Ninguno
1/2/3
SBIS
P, b
Si (P (b) = 1) PC PC + 2 o 3
Ninguno
1/2/3
BRBS
s, k
Ninguno
1/2
BRBC
s, k
Ninguno
1/2
BREQ
Rama si Igualdad
Si (Z = 1), entonces PC PC + k + 1
Ninguno
1/2
Brn
Rama si no igual
Si (Z = 0), entonces PC PC + k + 1
Ninguno
1/2
BRCS
Si (C = 1), entonces PC PC + k + 1
Ninguno
1/2
BRCC
Si (C = 0), entonces PC PC + k + 1
Ninguno
1/2
BRSH
Si (C = 0), entonces PC PC + k + 1
Ninguno
1/2
BRLO
Rama si Baja
Si (C = 1), entonces PC PC + k + 1
Ninguno
1/2
BRMI
Rama si Minus
si (N = 1), entonces PC PC + k + 1
Ninguno
1/2
BRPL
Rama si Plus
si (N = 0), entonces PC PC + k + 1
Ninguno
1/2
BRGE
si (N V = 0), entonces PC PC + k + 1
Ninguno
1/2
BRLT
si (N V = 1), entonces PC PC + k + 1
Ninguno
1/2
BRHS
Si (H = 1), entonces PC PC + k + 1
Ninguno
1/2
BRHC
Si (H = 0), entonces PC PC + k + 1
Ninguno
1/2
BRTS
si (T = 1), entonces PC PC + k + 1
Ninguno
1/2
BRTC
si (T = 0), entonces PC PC + k + 1
Ninguno
1/2
BRVS
si (V = 1), entonces PC PC + k + 1
Ninguno
1/2
BRVC
si (V = 0), entonces PC PC + k + 1
Ninguno
1/2
YO LO LLAMO
LLAMADA(1)
CPSE
4
1/2/3
427
8161D-AVR-10.9
Operandos
Descripcin
Operacin
Banderas
#Clocks
BRIE
Rama si Habilitado
si (i = 1), entonces PC PC + k + 1
Ninguno
1/2
BRID
si (I = 0), entonces PC PC + k + 1
Ninguno
1/2
P, b
I / O (P, b) 1
Ninguno
CBI
P, b
I / O (P, b) 0
Ninguno
LSL
Rd
Rd (n + 1) Rd (n), Rd (0) 0
Z, C, N, V
LSR
Rd
Z, C, N, V
ROL
Rd
Z, C, N, V
ROR
Rd
Z, C, N, V
ASR
Rd
Z, C, N, V
SWAP
Rd
Nibbles Intercambia
Ninguno
BSET
Flag Set
SREG (s) 1
SREG (s)
BCLR
Bandera Borrar
SREG (s) 0
SREG (s)
BST
Rr, b
T Rr (b)
BLD
Rd, b
Rd (b) T
Ninguno
SEC
Carry Set
C1
CLC
Claro Carry
C0
SEN
N1
CLN
N0
SEZ
Z1
CLZ
Z0
SEI
YO1
YO
CLI
YO0
YO
SES
S1
CLS
S0
SEV
V1
CLV
V0
SET
Establecer T en SREG
T1
CLT
T Claro en SREG
T0
SEH
CLH
H1
H0
H
H
1
1
Rd Rr
Rd + 1: Rd Rr + 1: Rr
Ninguno
Ninguno
Rd, Rr
MOVW
Rd, Rr
LDI
Rd, K
Carga Inmediata
Rd K
Ninguno
LD
Rd, X
Cargar indirecta
Rd (X)
Ninguno
LD
Rd, X +
Rd (X), X X + 1
Ninguno
LD
Rd, - X
X X - 1, Rd (X)
Ninguno
LD
Rd, Y
Cargar indirecta
Rd (Y)
Ninguno
LD
Rd, Y +
Rd (Y), Y Y + 1
Ninguno
LD
Rd, - Y
Y Y - 1, Rd (Y)
Ninguno
LDD
Rd, Y + q
Rd (Y + q)
Ninguno
LD
Rd, Z
Cargar indirecta
Rd (Z)
Ninguno
LD
Rd, Z +
Rd (Z), Z Z + 1
Ninguno
LD
Rd, -Z
Z Z - 1, Rd (Z)
Ninguno
LDD
Rd, Z + q
Rd (Z + q)
Ninguno
LDS
Rd, k
Rd (K)
Ninguno
ST
X, Rr
Tienda indirecta
(X) Rr
Ninguno
ST
X +, Rr
(X) Rr, X X + 1
Ninguno
ST
- X, Rr
X X - 1, (X) Rr
Ninguno
ST
Y, Rr
Tienda indirecta
(Y) Rr
Ninguno
ST
Y +, Rr
(Y) Rr, Y Y + 1
Ninguno
ST
- Y, Rr
Y Y - 1, (Y) Rr
Ninguno
STD
Y + q, Rr
(Y + q) Rr
Ninguno
ST
Z, Rr
Tienda indirecta
(Z) Rr
Ninguno
ST
Z +, Rr
(Z) Rr, Z Z + 1
Ninguno
ST
-Z, Rr
Z Z - 1, (Z) Rr
Ninguno
STD
Q + Z, Rr
(Z + q) Rr
Ninguno
STS
k, Rr
(K) Rr
Ninguno
R0 (Z)
Ninguno
LPM
LPM
Rd, Z
Rd (Z)
Ninguno
LPM
Rd, Z +
Rd (Z), Z Z + 1
Ninguno
(Z) R1: R0
Ninguno
SPM
EN
Rd, P
En Puerto
Rd P
Ninguno
OUT
P, Rr
Puerto de salida
P Rr
Ninguno
EMPUJAR
Rr
PILA Rr
Ninguno
428
8161D-AVR-10.9
Operandos
Rd
Descripcin
Pop Registro de Pila
Operacin
Rd PILA
Banderas
#Clocks
Ninguno
Ninguno
No Operacin
SLEEP
Sueo
Ninguno
WDR
DESCANSO
Watchdog Restablecer
Rotura
Ninguno
Ninguno
1
N/A
Nota:
429
8161D-AVR-10.9
ATmega48PA
Speed (MHz)
20(3)
Nota:
01.08 a 05.05
ATmega48PA-AU
ATmega48PA-MMH(4)
ATmega48PA-MU
ATmega48PA-PU
Paquete(1)
Rango Operativo
32A
28M1
32M1-A
28P3
Industrial
(-40C a 85C)
1. Este dispositivo tambin puede ser suministrado en forma de oblea. Por favor, pngase en contacto con su oficina local de ventas de Atmel para la informacin
de pedido detallado
y cantidades mnimas.
2. embalaje libre de plomo cumple con la Directiva Europea para la restriccin de sustancias peligrosas (Directiva RoHS) .Tambin
Haluro libre y totalmente verde.
3. Vase "grados de velocidad" en la pgina 316.
4. NiPdAu Finalizar plomo.
Tipo de paquete
32A
28M1
28-pad, 4 x 4 x 1,0 corporal, Lead Pitch 0.45 mm Cuadrado Plano-Gua / Micro Plomo paquete Frame (QFN / FML)
32M1-A
32-pad, 5 x 5 x 1.0 cuerpo, Lead Pitch 0.50 mm Cuadrado Plano-Gua / Micro Plomo paquete Frame (QFN / FML)
28P3
430
8161D-AVR-10.9
ATmega88PA
Speed (MHz)
20(3)
Nota:
01.08 a 05.05
ATmega88PA-AU
ATmega88PA-MMH(4)
ATmega88PA-MU
ATmega88PA-PU
Paquete(1)
Rango Operativo
32A
28M1
32M1-A
28P3
Industrial
(-40C a 85C)
1. Este dispositivo tambin puede ser suministrado en forma de oblea. Por favor, pngase en contacto con su oficina local de ventas de Atmel para la informacin
de pedido detallado
y cantidades mnimas.
2. embalaje libre de plomo cumple con la Directiva Europea para la restriccin de sustancias peligrosas (Directiva RoHS) .Tambin
Haluro libre y totalmente verde.
3. Vase "grados de velocidad" en la pgina 316.
4. NiPdAu Finalizar plomo.
Tipo de paquete
32A
28M1
28-pad, 4 x 4 x 1,0 corporal, Lead Pitch 0.45 mm Cuadrado Plano-Gua / Micro Plomo paquete Frame (QFN / FML)
32M1-A
32-pad, 5 x 5 x 1.0 cuerpo, Lead Pitch 0.50 mm Cuadrado Plano-Gua / Micro Plomo paquete Frame (QFN / FML)
28P3
431
8161D-AVR-10.9
ATmega168PA
Speed (MHz)(3)
20
Nota:
01.08 a 05.05
ATmega168PA-AU
ATmega168PA-MMH(4)
ATmega168PA-MU
ATmega168PA-PU
Paquete(1)
Rango Operativo
32A
28M1
32M1-A
28P3
Industrial
(-40C a 85C)
1. Este dispositivo tambin puede ser suministrado en forma de oblea. Por favor, pngase en contacto con su oficina local de ventas de Atmel para la informacin
de pedido detallado
y cantidades mnimas.
2. embalaje libre de plomo cumple con la Directiva Europea para la restriccin de sustancias peligrosas (Directiva RoHS) .Tambin
Haluro libre y totalmente verde.
3. Vase "grados de velocidad" en la pgina 316.
4. NiPdAu Finalizar plomo.
Tipo de paquete
32A
28M1
28-pad, 4 x 4 x 1,0 corporal, Lead Pitch 0.45 mm Cuadrado Plano-Gua / Micro Plomo paquete Frame (QFN / FML)
32M1-A
32-pad, 5 x 5 x 1.0 cuerpo, Lead Pitch 0.50 mm Cuadrado Plano-Gua / Micro Plomo paquete Frame (QFN / FML)
28P3
432
8161D-AVR-10.9
ATmega328P
Speed (MHz)
20 (3)
Nota:
ATmega328P- AU
ATmega328P- MU
ATmega328P- PU
Paquete(1)
Rango Operativo
32A
32M1-A
28P3
Industrial
(-40C a 85C)
1. Este dispositivo tambin puede ser suministrado en forma de oblea. Por favor, pngase en contacto con su oficina local de ventas de Atmel para la informacin
de pedido detallado
y cantidades mnimas.
2. embalaje libre de plomo cumple con la Directiva Europea para la restriccin de sustancias peligrosas (Directiva RoHS) .Tambin
Haluro libre y totalmente verde.
3. Vase Figura 28-1 en la pgina 316.
Tipo de paquete
32A
28P3
32M1-A
32-pad, 5 x 5 x 1.0 cuerpo, Lead Pitch 0.50 mm Cuadrado Plano-Gua / Micro Plomo paquete Frame (QFN / FML)
433
8161D-AVR-10.9
32A
PIN 1
B
PIN 1 IDENTIFICADOR
E1
D1
D
0 ~ 7
A1
A2
La
L
DIMENSIONES COMUNES
(Unidad de medida = mm)
Notas:
SMBOLO
Min
NOM
MAX
La
1.20
A1
0.05
0.15
A2
0.95
1.00
1.05
8.75
9.00
9.25
D1
6.90
7.00
7.10
8.75
9.00
9.25
E1
6.90
7.00
7.10
0.30
0.45
0.09
0.20
0.45
0.75
NOTA
Nota 2
Nota 2
0.80 TYP
05/10/2001
TTULO
R
DIBUJO NO.
32A
REV.
B
434
8161D-AVR-10.9
28M1
1
Pin 1 ID
2
VISTA LATERAL
VISTA SUPERIOR
A2
D2
A1
La
0.08 C
1
2
Pin # 1
Muesca
(0,20 R)
DIMENSIONES COMUNES
(Unidad de medida = mm)
E2
SMBOLO
Min
NOM
MAX
La
0.70
0.75
0.80
A1
0.01
0.05
A2
b
e
VISTA INFERIOR
0.20 REF
0.18
D
D2
2.45
0.30
2.60
2.75
4.00 BSC
2.45
e
Nota:
0.23
4.00 BSC
E
E2
NOTA
2.60
2.75
0.50 BSC
0.35
0.40
0.55
10.27.04
TTULO
2325 Orchard Parkway 20M1, 20-pad, 4 x 4 x 0,8 mm Cuerpo, Lead Pitch 0.50 mm,
26Ed P d MiL dFP k (FML) S JCA 9 131
DIBUJO NO.
20M1
REV.
La
435
8161D-AVR-10.9
32M1-A
D
D1
1
2
3
Pin 1 ID
E1
VISTA LATERAL
VISTA SUPERIOR
A3
A2
A1
La
0.08 C
DIMENSIONES COMUNES
(Unidad de medida = mm)
SMBOLO
Min
NOM
MAX
La
0.80
0.90
1.00
A1
0.02
0.05
A2
0.65
1.00
P
D2
1
2
3
P
Pin # 1 Muesca
(0,20 R)
A3
E2
VISTA INFERIOR
0.20 REF
0.18
0.23
0.30
4.90
5.00
5.10
D1
4.70
4.75
4.80
D2
2.95
3.10
3.25
4.90
5.00
5.10
E1
4.70
4.75
4.80
E2
2.95
3.10
3.25
0.50 BSC
0.30
0.40
0.50
0.60
12o
0
Nota: JEDEC estndar MO-220, Fig. 2 (Anvil singulacin), VHHD-2.
NOTA
0.20
05.25.06
TTULO
32M1-A, 32-pad, 5 x 5 x 1.0 mm Cuerpo, Lead Pitch 0.50 mm,
3.10 mm Pad Expuesto, Micro Plomo paquete Frame (FML)
DIBUJO NO.
32M1-A
REV.
E
436
8161D-AVR-10.9
28P3
PIN
1
E1
La
PLANO DE ASIENTO
A1
B2
B1
(4 plazas)
0 ~ 15
REF
e
E
eB
Nota:
DIMENSIONES COMUNES
(Unidad de medida = mm)
SMBOLO
Min
NOM
La
A1
0,508
34.544
34.798
7,620
8,255
E1
7.112
7,493
0,381
0,533
B1
1,143
1,397
B2
0,762
1,143
3,175
3,429
0,203
0,356
eB
10.160
MAX
NOTA
4.5724
Nota 1
Nota 1
2.540 TYP
28.09.01
TTULO
28P3, 28 derivaciones (0.300 "/7.62 mm Ancho) Dual Plstico
Paquete Inline (PDIP)
DIBUJO NO.
28P3
REV.
B
437
8161D-AVR-10.9
Errata ATmega48PA
La letra de revisin en este apartado se refiere a la revisin del dispositivo ATmega48PA.
34.1.1
Rev. D
No errata conocida.
34.2
Errata ATmega88PA
La letra de revisin en este apartado se refiere a la revisin del dispositivo ATmega88PA.
34.2.1
Rev. F
No errata conocida.
34.3
Errata ATmega168PA
La letra de revisin en este apartado se refiere a la revisin del dispositivo ATmega168PA.
34.3.1
Rev E
No errata conocida.
34.4
Errata ATmega328P
La letra de revisin en este apartado se refiere a la revisin del dispositivo ATmega328P.
34.4.1
Rev D
No errata conocida.
34.4.2
Rev C
No muestreado.
34.4.3
Rev B
Inestable oscilador de 32 kHz
1. Oscilador Inestable 32 kHz
El oscilador de 32 kHz no funciona como reloj del sistema.
El oscilador 32 kHz utilizado como temporizador asncrono es incorrecto.
Fix Problema / Solucin
Ninguno
34.4.4
Rev A
Inestable oscilador de 32 kHz
1. Oscilador Inestable 32 kHz
El oscilador de 32 kHz no funciona como reloj del sistema.
El oscilador 32 kHz utilizado como temporizador asncrono es incorrecto.
Fix Problema / Solucin
Ninguno
438
8161D-AVR-10.9
35.1
1.
35.2
35.3
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Actualizaciones de edicin.
1.
2.
3.
4.
5.
439
8161D-AVR-10.9
7.
8.
Las caractersticas tpicas insertados para "ATmega48PA Caractersticas tpicas" en la pgina 327.
9.
10.
11.
Actualizado Tabla 28-1 en la pgina 317 mediante la eliminacin de la nota al pie de Vcc calibracin / usuario
12.
Actualizado Tabla 28-7 en la pgina 323 mediante la eliminacin de valor Max (2,5 LSB) de Absolute
exactitud, VREF = 4V, VCC = 4V, ADC reloj = 200 kHz.
Informacin para pedidos Insertado por "ATmega48PA" en la pgina 430.
13.
35.4
1.
Revisin inicial (Basado en la ficha tcnica ATmega48P / 88P / 168P / 328P 8025F-AVR-08/08).
2.
Cambios realizados en comparacin con ATmega48P / 88P / 168P / 328P ficha tcnica 8025F-AVR-08/08:
- Actualizado "Caractersticas de CC" en la pgina 313 con nuevos valores tpicos de la CPI.
- Actualizado "grados de velocidad" en la pgina 316.
- Nuevos grficos en "Caractersticas tpicas" en la pgina 326.
- Nuevo "Informacin de pedido" en la pgina 430.
440
8161D-AVR-10.9
yo
8161D-AVR-10.9
iii
8161D-AVR-10.9
iv
8161D-AVR-10.9
v
8161D-AVR-10.9
vii
8161D-AVR-10.9
Sede
Internacional
Atmel Corporation
2325 Orchard Parkway
San Jose, CA 95131
EE.UU.
Tel: 1 (408) 441-0311
Fax: 1 (408) 487-2600
Atmel Asia
Unidad de 1-5 y 16, 19 / F
BEA Tower, Millennium City 5
418 Kwun Tong carretera
Kwun Tong, Kowloon
Hong Kong
Tel: (852) 2245-6100
Fax: (852) 2722-1369
Atmel Europa
Le Krebs
8, Rue Jean-Pierre Timbaud
BP 309
78054 Saint-Quentin-enYvelines Cedex
Francia
Tel: (33) 1-30-60-70-00
Fax: (33) 1-30-60-71-11
Atmel Japn
9F, Tonetsu Shinkawa Bldg.
1-24-8 Shinkawa
Chuo-ku, Tokio 104-0033
Japn
Tel: (81) 3-3523-3551
Fax: (81) 3-3523-7581
Apoyo Tcnico
avr@atmel.com
Contacto de Ventas
www.atmel.com/contacts
Producto Contacto
Sitio Web
www.atmel.com
Pide Literatura
www.atmel.com/literature
Descargo de responsabilidad: La informacin contenida en este documento se proporciona en relacin con los productos de Atmel. Ninguna licencia, expresa o implcita, por impedimento legal o de otro tipo, a cualquier
derecho de propiedad intelectual otorgadas por este documento o en conexin con la venta de productos Atmel. A EXCEPCIN DE LO ESTABLECIDO EN LOS TRMINOS Y CONDICIONES DEL ATMEL
CIONES DE VENTA UBICADA EN EL SITIO WEB DE ATMEL, ATMEL NO ASUME RESPONSABILIDAD ALGUNA Y RECHAZA CUALQUIER EXPRESA, IMPLCITA O LEGAL
GARANTA EN RELACIN CON SUS PRODUCTOS INCLUYENDO, PERO NO LIMITADO A, LA GARANTA DE COMERCIALIZACIN, IDONEIDAD PARA UN DETERMINADO
PROPSITO, O NO INFRACCIN. EN NINGN CASO ATMEL RESPONSABLE POR DAOS DIRECTOS, INDIRECTOS, MORALES, ESPECIAL O INCIDENTAL
DAOS TAL (INCLUYENDO, SIN LIMITACIONES, DAOS POR PRDIDA DE BENEFICIOS, INTERRUPCIN DE NEGOCIO O PRDIDA DE INFORMACIN) EMERGENTES
EL USO O LA IMPOSIBILIDAD DE USO DE ESTE DOCUMENTO, INCLUSO SI ATMEL HA SIDO ADVERTIDO DE LA POSIBILIDAD DE TALES DAOS. Atmel hace ninguna
representaciones o garantas con respecto a la exactitud o integridad de los contenidos de este documento y se reserva el derecho de realizar cambios en las especificaciones
y descripciones de productos en cualquier momento sin previo aviso. Atmel no tiene ningn compromiso de actualizar la informacin contenida en el presente documento. A menos que se disponga especficamente
de lo contrario, los productos Atmel no son adecuados para, y no podrn ser utilizados en aplicaciones de automocin. Los productos de Atmel no pretenden, autorizados, o una garanta de uso
como componentes en aplicaciones destinadas a apoyar o sostener la vida.
2009 Atmel Corporation. Reservados todos los derechos. Atmel , el logotipo y combinaciones de los mismos Atmel, comercio AVR, logotipo AVR y otros estn registrados
marcas comerciales o marcas de Atmel Corporation o sus filiales. Otros trminos y nombres de productos pueden ser marcas comerciales de otros.
8161D-AVR-10.9