atmega 328p español

Download Atmega 328p Español

If you can't read please download the document

Upload: vertiagua

Post on 28-Jan-2016

77 views

Category:

Documents


14 download

DESCRIPTION

DATASHET DEL MICRO ATMEL 328P

TRANSCRIPT

  • Caractersticas Alto Rendimiento, AVR de baja potenciaMicrocontrolador 8-Bit Advanced RISC Arquitectura

    - 131 Instrucciones de gran alcance - Ejecucin mayora solo ciclo de reloj - 32 x 8 registros de propsito general de Trabajo - Funcionamiento totalmente esttico - Hasta 20 MIPS de rendimiento a 20 MHz - On-chip de 2 tiempos Multiplicador Segmentos de memoria de alta resistencia no voltiles - 4/8/16 / 32K bytes de memoria progam En-Sistema de Auto-flash programable (ATmega48PA / 88PA / 168PA / 328P) - 256/512 / 512 / 1K Bytes EEPROM (ATmega48PA / 88PA / 168PA / 328P) - 512 / 1K / 1K / 2K Bytes SRAM interna (ATmega48PA / 88PA / 168PA / 328P) - Escribir / Ciclos de Borrado: 10.000 Flash / EEPROM 100000 - Retencin de datos: 20 aos a 85 C / 100 aos a 25 C(1) - Seccin del Cdigo opcional de arranque con bits de bloqueo Independientes In-System Programming de programa de arranque en el chip Verdadero Funcionamiento Lea-While-escritura - Bloqueo de programacin de software de seguridad Caractersticas perifricos - Dos de 8 bits de temporizador / Contadores con Precontador separada y modo de comparacin - Uno de 16 bits Temporizador / Contador con Precontador independiente, Compare Mode, y captura Modo - Contador en tiempo real con el oscilador independiente - Seis Canales PWM - 8 canales ADC de 10 bits en TQFP y QFN / FML Medicin de temperatura - 6 canales ADC de 10 bits en el Paquete PDIP Medicin de temperatura - Programable USART Serial - Master / Slave SPI Interface serie - 2 cables de interfaz serie byte a byte (Philips I2C compatible) - Programable Watchdog Timer con Independiente oscilador en el chip - On-chip analgico Comparador - Interrupcin y Wake-up en el pin Cambio Caractersticas especiales de microcontroladores - Power-on Reset y Deteccin programable de Brown de salida - Calibrada interna Oscilador - Externo y de interrupcin Fuentes internas - Seis modos de espera:, Reduccin de Ruido ADC de espera, de ahorro de energa, la Energa-abajo, espera, y extendido de espera E / S y Paquetes - 23 lneas de E / S - 28 pines PDIP, TQFP 32-plomo, 28-pad QFN / FML y 32-pad QFN / FML Voltaje de funcionamiento: - 1.8 - 5.5V para ATmega48PA / 88PA / 168PA / 328P Rango de temperatura: - -40C a 85C Velocidad Grado: - 0-20 MHz @ 1.8 - 5.5V Bajo consumo de energa a 1 MHz, 1,8 V, 25 C durante ATmega48PA / 88PA / 168PA / 328P: - Modo Activo: 0,2 mA - Energa-abajo de modo: 0,1 mu - Modo de ahorro de energa: 0,75 mu (Incluyendo 32 kHz RTC)

    8-bit Microcontroladores con un 4/8/16 / 32K Bytes In-System Programable Flash

    ATmega48PA ATmega88PA ATmega168PA ATmega328P

    Rev. 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    1. Pin Configuraciones

    Figura 1-1. Pinout ATmega48PA / 88PA / 168PA / 328P

    TQFP Top View PD2 (INT0 / PCINT18) PD1 (TXD / PCINT17)

    PD0 (RXD / PCINT16) PC6 (RESET /

    PCINT14) PC5 (ADC5 / SCL / PCINT13) PC4

    (ADC4 / SDA / PCINT12) PC3 (ADC3 / PCINT11) PC2 (ADC2 / PCINT10)

    PDIP

    (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

    910111213141516

    24 23 22 21 20 19 18 17

    PC1 (ADC1 / PCINT9) PC0 (ADC0 / PCINT8) ADC7 GND AREF ADC6 AVCC PB5 (SCK / PCINT5)

    (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

    (PCINT14 / RESET) PC6 (PCINT16 / RXD) PD0 (PCINT17 / TXD) PD1 (PCINT18 / INT0) PD2 (PCINT19 / OC2B / INT1) PD3 (PCINT20 / XCK / T0) PD4 VCC GND (PCINT6 / XTAL1 / TOSC1) PB6 (PCINT7 / XTAL2 / TOSC2) PB7 (PCINT21 / OC0B / T1) PD5 (PCINT22 / OC0A / AIN0) PD6 (PCINT23 / AIN1) PD7 (PCINT0 / CLKO / ICP1) PB0

    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

    PC5 (ADC5 / SCL / PCINT13) PC4 (ADC4 / SDA / PCINT12) PC3 (ADC3 / PCINT11) PC2 (ADC2 / PCINT10) PC1 (ADC1 / PCINT9) PC0 (ADC0 / PCINT8) GND AREF AVCC PB5 (SCK / PCINT5) PB4 (MISO / PCINT4) PB3 (MOSI / OC2A / PCINT3) PB2 (SS / OC1B / PCINT2) PB1 (OC1A / PCINT1)

    3231302928272625

    28 FML Top View PD2 (INT0 / PCINT18) PD1 (TXD / PCINT17) PD0 (RXD / PCINT16) PC6

    (RESET / PCINT14) PC5 (ADC5 / SCL /

    PCINT13) PC4 (ADC4 / SDA / PCINT12)

    PC3 (ADC3 / PCINT11)

    32 FML Top View PD2 (INT0 / PCINT18) PD1 (TXD / PCINT17) PD0 (RXD / PCINT16) PC6 (RESET /

    PCINT14) PC5 (ADC5 / SCL / PCINT13) PC4

    (ADC4 / SDA / PCINT12) PC3 (ADC3 /

    PCINT11) PC2 (ADC2 / PCINT10)

    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

    891011121314

    21 20 19 18 17 16 15

    PC2 (ADC2 / PCINT10) PC1 (ADC1 / PCINT9) PC0 (ADC0 / PCINT8) GND AREF AVCC PB5 (SCK / PCINT5)

    (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

    910111213141516

    24 23 22 21 20 19 18 17

    PC1 (ADC1 / PCINT9) PC0 (ADC0 / PCINT8) ADC7 GND AREF ADC6 AVCC PB5 (SCK / PCINT5)

    (/ OC0A / AIN0 PCINT22) PD6 (PCINT23

    / AIN1) PD7 (PCINT0 / CLKO / ICP1)

    PB0 (PCINT1 / OC1A) PB1 (PCINT2 / SS

    / OC1B) PB2 (PCINT3 / OC2A / MOSI)

    PB3 (PCINT4 / MISO) PB4 NOTA: pista de fondo debe ser soldada al suelo. NOTA: pista de fondo debe ser soldada al suelo.

    (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

    2 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    1.1

    1.1.1

    Descripciones de los pines

    VCC Tensin de alimentacin Digital.

    1.1.2 GND Ground.

    1.1.3 Puerto B (PB7: 0) XTAL1 / XTAL2 / TOSC1 / TOSC2 Puerto B es un puerto de E 8 bits bidireccional / S con resistencias pull-up internas (seleccionados para cada bit). La Buffers de salida del puerto B tienen caractersticas de transmisin simtricas tanto con alta fregadero y fuente capacidad. Como entradas, los pines del puerto B que se extraen externamente baja sern fuente de corriente si el pull-up resistencias se activan. Los pines del puerto B son tri declar cuando una condicin de reset se activa, incluso si el reloj no se est ejecutando.

    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

  • ATmega48PA / 88PA / 168PA / 328P

    Las diversas caractersticas especiales de Port D se elaboran en "Funciones alternativas de Port D" en la pgina 88.

    1.1.7 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 ADC7: 6 (TQFP y QFN / FML paquete solamente) En el paquete de TQFP y QFN / FML, ADC7: 6 sirven como entradas analgicas al convertidor A / D. Estos pasadores son alimentados desde la alimentacin analgica y sirven como canales ADC de 10 bits.

    4 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    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 GND VCC

    Perro guardin Timer

    Perro guardin Oscilador

    Energa Supervisin POR / BOD y REINICIO

    debugWIRE

    PROGRAMA LGICA

    Oscilador Circuitos / Reloj Generacin

    Flash SRAM

    UPC

    EEPROM

    AVCC AREF GND

    8bit T / C 0 16bit T / C 1 A / D Conv. 2

    Bus de datos 8bit T / C 2 Analog

    Comp. Interna Bandgap 6

    USART 0 SPI TWI

    PORT D (8) PORT B (8) 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

  • ATmega48PA / 88PA / 168PA / 328P

    la arquitectura es ms un cdigo eficiente logrando rendimientos de hasta diez veces ms rpido que con- microcontroladores CISC convencionales.

    El ATmega48PA / 88PA / 168PA / 328P ofrece las siguientes caractersticas: 4K / 8K bytes de In-System Flash programable con capacidad de lectura-While-escritura 256/512/512 / 1K bytes EEPROM, 512 / 1K / 1K / 2K bytes de SRAM, 23 de propsito general de E / S lneas, 32 registros de propsito generales de trabajo, tres flexibles Timer / Contadores con comparar los modos, las interrupciones internas y externas, un pro- serie mable USART, a 2 hilos de interfaz Serial orientado a byte, un puerto serie SPI, un canal 6 de 10 bits ADC (8 canales en TQFP y QFN paquetes / FML), un temporizador de vigilancia programable con El oscilador interno, y cinco de software modos de ahorro de energa seleccionable. La pantalla de inicio se detiene la CPU al tiempo que permite la SRAM, Timer / Contadores, USART, 2 cables de interfaz serie, puerto SPI, y sistema de interrupcin para continuar funcionando. El modo de Apagado salva el contenido del registro, pero congela el oscilador, desactivando todas las dems funciones de chips hasta la siguiente interrupcin o reinicio de hardware. En el modo de ahorro de energa, el temporizador asncrono sigue funcionando, lo que permite al usuario mantener una base de temporizador mientras que el resto del dispositivo est durmiendo. El modo de reduccin de ruido ADC detiene el Todos los mdulos de E / S, excepto temporizador asncrono y ADC CPU y, para minimizar el ruido de conmutacin durante ing conversiones del ADC. En el modo de espera, el oscilador de cristal / resonador est funcionando mientras que el resto del dispositivo est durmiendo. Esto permite muy rpida puesta en marcha en combinacin con bajo consumo de energa.

    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 Comparacin entre ATmega48PA, ATmega88PA, ATmega168PA y ATmega328P

    El ATmega48PA, ATmega88PA, ATmega168PA y ATmega328P difieren slo en la memoria tamaos, soporte cargador de arranque y interrumpen tamaos vectoriales. Tabla 2-1 resume los diferentes bro ory e interrumpir tamaos vectoriales para los tres dispositivos.

    Tabla 2-1.

    Dispositivo

    ATmega48PA

    ATmega88PA

    ATmega168PA

    ATmega328P

    Tamao de la memoria resumen

    Flash

    4K Bytes

    8K Bytes

    16K Bytes

    32K Bytes

    EEPROM

    256 Bytes

    512 Bytes

    512 Bytes

    1K Bytes

    RAM

    512 Bytes

    1K Bytes

    1K Bytes

    2K Bytes

    Vector de interrupcin Tamao

    1 palabra de instruccin / vector

    1 palabra de instruccin / vector

    2 palabras de instruccin / vector

    2 palabras de instruccin / vector

    ATmega88PA, ATmega168PA y ATmega328P apoyar una verdadera lectura-escritura Mientras Auto-Pro- mecanismo 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

  • ATmega48PA / 88PA / 168PA / 328P

    3. Recursos

    Un completo conjunto de herramientas de desarrollo, notas de aplicacin y hojas de datos estn disponibles para descargar en http://www.atmel.com/avr.

    Nota: 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.

    5. Sobre Ejemplos de cdigo

    Esta documentacin contiene ejemplos simples de cdigo que muestran brevemente cmo utilizar diversas partes el dispositivo. Estos ejemplos de cdigo se supone que el archivo de cabecera especfica parte se incluye antes compilacin. Tenga en cuenta que los fabricantes de compiladores no todos C incluyen definiciones de los bits en los archivos de

    cabecera e interrumpir la manipulacin en C depende del compilador. Por favor, confirme con la documentacin del compilador C tacin para ms detalles.

    Para E / S Registros situado en mapa ampliado de E / S, "IN", "OUT", "SBIS", "SBIC", "CBI", y "OSE" instrucciones deben ser reemplazadas con las instrucciones que permiten el acceso a la E / S extendida. Tpicamente "LDS" y "STS" en combinacin con "SBRS", "SBRC", "SBR", y "CBR".

    7 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    6. AVR CPU Core

    6.1 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. Diagrama de bloques de la arquitectura AVR

    De bus de datos de 8 bits

    Flash Programa Memoria

    Programa Contador

    Estado y Control

    Instruccin Registrarse

    32 x 8 General Propsito Registrers

    Interrupcin Unidad

    SPI Unidad

    Perro guardin Timer

    Direccionami

    ento indirecto

    Instruccin Decoder

    Direccionami

    ento directo 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

  • ATmega48PA / 88PA / 168PA / 328P

    operacin ical ALU, dos operandos son emitidas desde el Registro de archivos, se ejecuta la operacin, y el resultado se almacena en el Registro de archivos - en un ciclo de reloj.

    Seis de los 32 registros se pueden utilizar como tres punteros de direccin indirecta registro de 16 bits para datos Abordar el espacio - que permite clculos de direccin eficientes. Uno de los estos indicadores de direccin tambin se puede utilizar como un puntero de direccin para tablas de consulta en la memoria de programa flash. Estos registros de funciones aadidas son la X de 16 bits X, Y y Z-registro, que se describe ms adelante en esta seccin.

    La ALU soporta operaciones aritmticas y lgicas entre registros o entre una constante y un registro. Operaciones de registro individual tambin se pueden ejecutar en la ALU. Despus de una operacin aritmtica cin, el registro de estado se actualiza para reflejar la informacin sobre el resultado de la operacin.

    El flujo del programa es proporcionada por salto y call instrucciones condicionales e incondicionales, capaces de dirigirse directamente a todo el espacio de direcciones. La mayora de las instrucciones AVR tienen una sola palabra de 16 bits

    lucro estera. Cada direccin de memoria de programa contiene una instruccin de 16 o 32 bits.

    Espacio de memoria de programa Flash se divide en dos secciones, la seccin de programa de arranque y la Seccin de programacin de aplicaciones. Ambas secciones se han dedicado bits de bloqueo de escritura y lectura / escritura proteccin. La instruccin SPM que escribe en la seccin de memoria de aplicaciones de Flash debe residir en la seccin del programa de arranque.

    Durante las interrupciones y llamadas a subrutinas, el contador de programa direccin de retorno (PC) se almacena en el Stack. La pila se asigna eficazmente en la SRAM general de datos, y en consecuencia la Pila tamao slo est limitado por el tamao total de SRAM y el uso de la SRAM. Todos los programas de usuario debe inicializar el SP en el restablecimiento de rutina (antes de ejecutar subrutinas o interrupciones). La Pila Puntero (SP) es lectura / escritura accesible en el espacio de E / S. La SRAM de datos se puede acceder fcilmente a travs de los cinco modos de direccionamiento diferentes soportados en la arquitectura AVR.

    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 Regis- tros, 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 Unidad Aritmtica Lgica - ALU

    El alto rendimiento AVR ALU opera en conexin directa con todo el propsito general 32 registros de trabajo. Dentro de un solo ciclo de reloj, operaciones aritmticas entre fines generales registros o entre un registro y una inmediata son ejecutados. Las operaciones de la ALU se dividen en tres categoras principales - aritmticas, lgicas y bit-funciones. Algunas implementaciones de la arquitectura tambin proporciona un multiplicador de gran alcance que apoya ambos firmados / multiplicacin sin signo y formato fraccionario. Vea la seccin "conjunto de instrucciones" para una descripcin detallada.

    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

  • ATmega48PA / 88PA / 168PA / 328P

    especificado en la referencia del conjunto de instrucciones. Esta voluntad en muchos casos eliminar la necesidad de utilizar el dedicado comparar instrucciones, resultando en un cdigo ms rpido y ms compacto.

    El Registro de Estado no se almacena automticamente al entrar en una rutina de interrupcin y restaurado al regresar de una interrupcin. Esto debe ser manejado por software.

    6.3.1 SREG - Estado AVR Registro El Registro de Estado AVR - SREG - se define como:

    Bit 0x3F (0x5F) Lectura / Escritura Valor inicial

    7 YO

    R / W 0

    6 T

    R / W 0

    5 H

    R / W 0

    4 S

    R / W 0

    3 V

    R / W 0

    2 N

    R / W 0

    1 Z

    R / W 0

    0 C

    R / W 0

    SREG

    - I: Global Interrupt Enable El bit Global Interrupt Enable se debe establecer para las interrupciones que se habiliten. La interaccin individuo Control rupt permitir entonces se realiza en los registros de control independientes. Si la interrupcin Activacin global Registro se borra, ninguna de las interrupciones estn habilitadas independiente de la interrupcin individuo habilitar la configuracin. El bit I es despejado por hardware despus de haberse producido una interrupcin, y se establece por la instruccin RETI para habilitar interrupciones posteriores. El bit I tambin se puede ajustar y se aclar por la aplicacin de las instrucciones de SEI y CLI, como se describe en la referencia del conjunto de instrucciones.

    - T: Bit de almacenamiento de copia Las instrucciones de copia Bit BLD (carga Bit) y BST (tienda Bit) utilizan el T-bit como origen o destino nacin para el bit operado. Un poco de un registro en el Registro de archivos se puede copiar en T por la Instruccin BST, y un poco en T se pueden copiar en un bit en un registro en el Registro de archivos por el Instruccin BLD.

    - H: La mitad indicador de acarreo La mitad Carry Flag H indica a Half Carry en algunas operaciones aritmticas. La mitad llevo es til en aritmtica BCD. Consulte la seccin "Descripcin del conjunto de instrucciones" para obtener informacin detallada.

    - S: Bit de signo, S = N V El S-bit es siempre un exclusivo o entre la bandera N Negativo y el complemento de dos Desbordamiento Bandera V. Consulte el "conjunto de instrucciones Descripcin" para obtener informacin detallada.

    - V: Complemento de la bandera de Dos desbordamiento Complemento de desbordamiento Bandera V del dos soportes de dos aritmtica de complemento. Vea el "Descripcin del conjunto de instrucciones" para obtener informacin detallada.

    - N: Indicador de negativo El negativo de la bandera N indica un resultado negativo en una operacin aritmtica o lgica. Vea el "Descripcin del conjunto de instrucciones" para obtener informacin detallada.

    - Z: Bandera Zero El Zero Flag Z indica un resultado cero en una operacin aritmtica o lgica. Vea la "Instruccin Descripcin Set "para obtener informacin detallada.

    - C: Llevar la bandera El indicador de acarreo C indica un acarreo de una operacin aritmtica o lgica. Ver el "conjunto de instrucciones Descripcin "para obtener informacin detallada.

    10 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    6.4 Propsito General de Registro Archivo

    El Registro de archivos est optimizado para el AVR mejorado conjunto de instrucciones RISC. A fin de lograr el rendimiento y la flexibilidad requerida, los siguientes esquemas de entrada / salida son compatibles con el Registrar archivo:

    -bit

    -bit

    -bit

    -bit

    Figura 6-2 muestra la estructura de los registros de trabajo 32 de propsito general en la CPU.

    Figura 6-2. AVR CPU de propsito general Registros de Trabajo

    7

    R0 R1 R2 ...

    R13 General Propsito Trabajo

    Registros

    R14 R15 R16 R17 ...

    R26 R27 R28 R29 R30 R31

    0x1A 0x1B 0x1C 0x1D 0x1E 0x1F

    Registro X Byte bajo Registro X Byte alto Registro Y. Byte bajo Registro Y. Byte alto Z-registrarse Byte bajo Z-registrarse Byte alto

    0x0D 0x0E 0x0F 0x10 0x11

    0 Dir.

    0x00 0x01 0x02

    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

  • ATmega48PA / 88PA / 168PA / 328P

    6.4.1 El registro X, Y-registro y registro Z Los registros R26..R31 tienen algunas funciones aadidas a su uso de propsito general. Estos REG- nistros son punteros de direcciones de 16 bits para el direccionamiento indirecto del espacio de datos. Los tres indirecta registros de direcciones X, Y, y Z se definen como se describe en Figura 6-3.

    Figura 6-3. La X, Y, y Z-registros

    15 Registro X 7

    R27 (0x1B)

    XH 0 7

    R26 (0x1A)

    XL 0 0

    15 Registro Y 7

    R29 (0x1D)

    15 Registro Z 7

    R31 (0x1F)

    YH 0 7

    R28 (0x1C)

    ZH 0 7

    R30 (0x1E)

    YL 0 0

    ZL 0

    0

    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 7- 3 en la pgina 18.

    Ver Tabla 6-1 para ms detalles Stack Pointer.

    Tabla 6-1.

    Instruccin

    EMPUJAR

    LLAMADA YO LO LLAMO RCALL

    POP

    RET RETI

    Instrucciones Stack Pointer

    Puntero de pila

    Disminuye en 1

    Disminuye en 2

    Incrementa en 1

    Se incrementa en un 2

    Descripcin

    Los datos se inserta en la pila

    Direccin de retorno se inserta en la pila con una llamada de subprograma o interrumpir

    Los datos se extrae de la pila

    Direccin de retorno se extrae de la pila con el regreso de subrutina o regreso de interrupcin

    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

  • ATmega48PA / 88PA / 168PA / 328P

    6.5.1 SPH y SPL - Stack Pointer alta y Stack Pointer Baja Registro

    Bit 0x3E (0x5E) 0x3D (0x5D)

    15 SP15 SP7

    7 Lectura / Escritura R / W

    R / W Valor inicial RAMEND

    RAMEND

    14 SP14 SP6

    6 R / W R / W

    RAMEND RAMEND

    13 SP13 SP5

    5 R / W R / W

    RAMEND RAMEND

    12 SP12 SP4

    4 R / W R / W

    RAMEND RAMEND

    11 SP11 SP3

    3 R / W R / W

    RAMEND RAMEND

    10 SP10 SP2

    2 R / W R / W

    RAMEND RAMEND

    9 SP9 SP1

    1 R / W R / W

    RAMEND RAMEND

    8 SP8 SP0

    0 R / W R / W

    RAMEND RAMEND

    SPH SPL

    6.6 Instruccin Ejecucin Timing

    En esta seccin se describe el acceso general de temporizacin conceptos para la ejecucin de instrucciones. El AVR CPU es impulsado por el clkCPU reloj de la CPU, genera directamente de la fuente de reloj seleccionado para el chip. No se utiliza ninguna divisin interna del reloj.

    Figura 6-4 muestra la instruccin paralela recupera y ejecuciones de instruccin habilitada por el Har- Arquitectura de Harvard y el acceso rpido concepto Registro Archivo. Este es el concepto bsico pipelining obtener hasta 1 MIPS por MHz con los correspondientes resultados nicos para funciones por el costo, funciones por los relojes, y funciones por grupo motor.

    Figura 6-4. La Instruccin paralelo Obtiene y ejecuciones de instrucciones

    T1 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. Ciclo individual ALU Operacin

    T1 T2 T3 T4

    clkCPU

    Tiempo de ejecucin

    Registro Operandos Fetch

    ALU Operacin Ejecutar

    Resultado Escribe Volver

    13 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    6.7 Reset y manejo de interrupciones

    El AVR proporciona varias fuentes de interrupcin diferentes. Estas interrupciones y el restablecimiento separada Vector cada uno tiene un vector de programa separado en el espacio de memoria de programa. Todas las interrupciones estn individual asignado bits de habilitacin que debe ser uno lgico escritas junto con la interrupcin Global Activar bit en el registro de estado con el fin de permitir la interrupcin. Dependiendo del programa El valor del contador, las interrupciones se puede desactivar automticamente cuando Bloqueo de arranque Bits BLB02 o BLB12 estn programados. Esta caracterstica mejora la seguridad del software. Vea la seccin "Memoria Programa- ming "en la pgina 294 para ms detalles.

    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 dis- abled. 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 Vec- tor 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

  • ATmega48PA / 88PA / 168PA / 328P

    Cdigo Asamblea Ejemplo

    en r16, SREG cli

    sbi EECR, EEMPE

    sbi EECR, EEPE

    fuera SREG, r16 ; restaurar el valor SREG (I-bit)

    ; tienda valor SREG

    ; iniciar EEPROM

    ; deshabilitar las interrupciones durante la

    secuencia sincronizada

    Cdigo C Ejemplo

    Char cSREG;

    cSREG = SREG; / * Tienda valor SREG * / / * deshabilitar las interrupciones durante la secuencia temporizada * / _CLI ();

    EECR | = (1

  • ATmega48PA / 88PA / 168PA / 328P

    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 En-Sistema de memoria de programa Flash reprogramable

    El ATmega48PA / 88PA / 168PA / 328P contiene 4/8/16 / 32K bytes en el chip del En-Sistema Repro- La memoria flash parametrizable para almacenamiento de programas. Desde todas las instrucciones AVR son 16 o 32 bits de ancho, el flash se organiza de la 2/4/8/16 K x 16. Para la seguridad del software, el bro de programa Flash ory espacio se divide en dos secciones, la seccin del gestor de arranque y de la Seccin de programa de aplicacin en ATmega88PA y ATmega168PA. Vase la descripcin en la seccin SELFPRGEN "SPMCSR - Tienda Programa de control de la memoria y registro de estado "en la pgina 292 para ms detalles.

    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 Direccin- ing 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-Pro- programacin, 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 Tim- ing "en la pgina 13.

    16 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    Figura 7-1. Mapa de memoria de programa ATmega48PA Memoria de programa

    0x0000

    Aplicacin Seccin de Flash

    0x7FF

    Figura 7-2. Mapa de memoria de programa ATmega88PA, ATmega168PA y ATmega328P

    Memoria de programa

    0x0000

    Aplicacin Seccin de Flash

    Seccin de flash de inicio 0x0FFF / 0x1FFF / 0x3FFF

    17 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    7.3 Memoria SRAM de datos

    Figura 7-3 muestra cmo se organiza la memoria ATmega48PA / 88PA / 168PA / 328P SRAM.

    El ATmega48PA / 88PA / 168PA / 328P es un microcontrolador complejo con unidades ms perifricos que se puede apoyar en los 64 lugares reservados en el Cdigo de operacin para el IN y OUT instrucciones. Para el espacio O Extended I / de 0x60 - 0xFF en SRAM, slo el ST / STS / ETS y Instrucciones LD / LDS / LDD pueden ser utilizados.

    Los 768/1280/1280/2303 posiciones de memoria de datos inferiores abordan tanto el Registro de archivos, la E / S memoria, extendido memoria de E / S y la SRAM de datos interna. Los primeros 32 lugares frente a la Registrar Archivo, el prximo 64 de ubicacin de la memoria estndar de E / S, luego 160 ubicaciones de extendido de E / S memoria, y los prximos 512/1024/1024/2048 lugares abordan la SRAM de datos interna.

    Los cinco modos diferentes de direccionamiento para la cubierta de la memoria de datos: directos, indirectos con Desplazamiento cin, indirecto, indirecto con Pre-decremento, e indirecta con post-incremento. En el Registro Archivo, registra R26 a R31 caracterstica las indirectas que traten registros de puntero.

    Los alcances de direccionamiento directo todo el espacio de datos.

    La indirecta con el modo Desplazamiento alcanza 63 ubicaciones de direccin de la direccin de base dado por la Y o Z-registrarse.

    Al usar registrarse modos de direccionamiento indirecto con decremento previo y posterior automtico incremental cin, registra la direccin X, Y, y Z se decrementa o incrementa.

    Los 32 usos de trabajo registros generales, el 64 de E / S Registros, 160 Extended E / S Registros y los 512/1024/1024/2048 bytes de SRAM de datos interna en el ATmega48PA / 88PA / 168PA / 328P son accesibles a travs de todos estos modos de direccionamiento. El Registro de archivos se describe en "Neral eral Propsito Registro de archivos "en la pgina 11.

    Figura 7-3. Memoria de datos Mapa

    Memoria de datos

    32 Registros 64 E / S Registros 160 Ext E / S Reg.

    SRAM interna (512/1024/1024/2048 x 8)

    0x04FF / 0x04FF / 0x0FF / 0x08FF

    0x0000 - 0x001F 0x0020 - 0x005F 0x0060 - 0x00FF 0x0100

    18 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    7.3.1 Memory Access Tiempos de datos En esta seccin se describe el acceso general de temporizacin conceptos de acceso a la memoria interna. La acceso SRAM interna de datos se lleva a cabo en dos ciclos como se describe en clkCPU Figura 7-4.

    Figura 7-4. On-chip SRAM Ciclos de acceso de datos

    T1 T2 T3

    clkCPU

    Direccin

    Datos

    WR

    Datos

    RD

    Calcular Direccin Direccin vlida

    Memoria de instrucciones Acceso Siguiente instruccin

    7.4 Memoria EEPROM de datos

    El ATmega48PA / 88PA / 168PA / 328P contiene 256/512/512 / 1K bytes de EEPROM bro datos ria. Se organiza como un espacio de datos por separado, en el que los bytes individuales pueden ser ledos y escritos. La EEPROM tiene una autonoma de al menos 100.000 ciclos de escritura / borrado. El acceso entre la EEPROM y la CPU se describen en la siguiente, especificando la EEPROM Direccin Regis- tros, el registro de datos EEPROM, y la EEPROM Control de Registro.

    "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 EEPROM de lectura / escritura de acceso Los registros EEPROM de acceso son accesibles en el espacio de E / S.

    El tiempo de acceso de escritura para el EEPROM se da en Tabla 7-2. Una funcin de auto-sincronizacin, sin embargo, permite que el software de usuario detectar cuando el siguiente byte se puede escribir. Si el cdigo de usuario contiene

    instrucciones las que escriben la EEPROM, se deben tomar algunas precauciones. En el poder fuertemente filtrada suministros, VCC es probable que suba o baje lentamente el encendido / abajo. Esto hace que el dispositivo para algunos perodo de tiempo para funcionar a una tensin inferior a la especificada como mnimo para la frecuencia de reloj utilizada. Ver "Prevencin de la Corrupcin EEPROM" en la pgina 20 para obtener ms informacin sobre cmo evitar problemas en estos situaciones.

    A fin de evitar escrituras EEPROM no intencionales, un procedimiento de escritura especfica debe ser seguido. Consulte la descripcin del registro de control EEPROM para ms detalles sobre esto.

    Cuando se lee la EEPROM, se detiene la CPU durante cuatro ciclos de reloj antes de la siguiente instruccin es ejecutado. Cuando se escriba la EEPROM, se detiene la CPU durante dos ciclos de reloj antes de la siguiente instruccin se ejecuta.

    Leer

    Escribir

    19 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    7.4.2 Prevencin de la Corrupcin EEPROM Durante los perodos de baja VCC, los datos de la EEPROM pueden ser corrompidos porque la tensin de alimentacin es demasiado bajo para la CPU y la memoria EEPROM para operar correctamente. Estas cuestiones son las mismas que para sistemas de nivel de placa usando EEPROM, y las mismas soluciones de diseo deben ser aplicados.

    Un corrupcin de datos EEPROM puede ser causada por dos situaciones cuando el voltaje es demasiado bajo. En primer lugar, una secuencia de escritura regular a la EEPROM requiere una tensin mnima para funcionar correctamente. Seccin gundo lugar, la propia CPU puede ejecutar instrucciones incorrectamente, si la tensin de alimentacin es demasiado baja.

    Corrupcin de datos EEPROM puede evitarse fcilmente siguiendo esta recomendacin diseo:

    Mantenga RESET AVR activa (bajo) durante los perodos de tensin de alimentacin insuficiente. Esto puede hacerse activando la Brown-cabo interna Detector (BOD). Si el nivel de deteccin de la interna DBO no coincide con el nivel de deteccin es necesario, una baja VCC externa restablecer circuito de proteccin puede ser utilizado. Si se produce un reset mientras una operacin de grabacin se encuentra en progreso, la operacin de escritura ser

    com- completado siempre que la tensin de alimentacin es suficiente.

    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 REG- nistros 0x00 a 0x1F solamente.

    Los registros de E / S y control de perifricos se explican en las secciones posteriores.

    7.5.1 Uso general de E / S Registros El ATmega48PA / 88PA / 168PA / 328P contiene tres de uso general de E / S Registros. Estos registros se pueden utilizar para almacenar cualquier informacin, y son particularmente tiles para almacenar variables e indicadores de estado global. Uso general de E / S Registros dentro del rango de direcciones 0x00 - 0x1F son directamente poco accesible siguiendo las instrucciones OSE, CBI, SBIS y SBIC.

    20 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    7.6

    7.6.1

    Registro Descripcin

    EEARH y EEARL - El Registro EEPROM Direccin

    Bit 0x22 (0x42) 0x21 (0x41)

    15 -

    EEAR7 7

    Lectura / Escritura R R / W

    Valor inicial 0 X

    14 -

    EEAR6 6 R

    R / W 0 X

    13 -

    EEAR5 5 R

    R / W 0 X

    12 -

    EEAR4 4 R

    R / W 0 X

    11 -

    EEAR3 3 R

    R / W 0 X

    10 -

    EEAR2 2 R

    R / W 0 X

    9 -

    EEAR1 1 R

    R / W 0 X

    8 EEAR8 EEAR0

    0 R / W R / W

    X X

    EEARH EEARL

    - Res: Bits Reservados Estos bits estn reservados bits en la ATmega48PA / 88PA / 168PA / 328P y siempre lea como cero.

    - EEAR8..0: EEPROM Direccin Los registros de direcciones EEPROM - EEARH y EEARL especifican la direccin de EEPROM en el 256/512 / 512 / 1K bytes de espacio EEPROM. Los bytes de datos EEPROM se dirigen linealmente entre 0 y 255/511/511/1023. El valor inicial de EEAR no est definido. Un valor adecuado debe ser escrito antes de que pueda acceder a la EEPROM.

    EEAR8 es un poco sin utilizar en ATmega48PA y siempre debe estar escrito a cero.

    7.6.2 EEDR - El registro de datos EEPROM

    Bit 0x20 (0x40) Lectura / Escritura Valor inicial

    7 MSB R / W

    0 R / W

    0 R / W

    0 R / W

    0 R / W

    0 R / W

    0 R / W

    0

    6 5 4 3 2 1 0 LSB R / W

    0

    EEDR

    - EEDR7.0: EEPROM de datos Para la operacin de escritura EEPROM, el Registro EEDR contiene los datos que se escriben en el EEPROM en la direccin propuesta por el Registro EEAR. Para la operacin de EEPROM de lectura, el EEDR contiene los datos ledos desde la EEPROM en la direccin indicada por EEAR.

    7.6.3 EECR - El registro de control EEPROM

    Bit 0x1F (0x3F) Lectura / Escritura Valor inicial

    7 - R 0

    6 - R 0

    5 EEPM1

    R / W X

    4 EEPM0

    R / W X

    3 MISTERIOSA

    R / W 0

    2 EEMPE

    R / W 0

    1 EEPE R / W

    X

    0 EERE R / W

    0

    EECR

    - Res: Bits Reservados Estos bits estn reservados bits en la ATmega48PA / 88PA / 168PA / 328P y siempre lea como cero.

    - EEPM1 y EEPM0: EEPROM de programacin Modo Bits El ajuste define bit de modo EEPROM de programacin que la accin de programacin que ser de disparador Gered al escribir EEPE. Es posible programar datos en una operacin atmica (borrar el viejo valor y programar el nuevo valor) o dividir el borrado y escritura operaciones en dos diferentes operaciones. Los tiempos de programacin para los diferentes modos se muestran en Tabla 7-1. Mientras EEPE

    21 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    se establece, se ignorar cualquier escritura a EEPMn. Durante reset, los bits EEPMn se restablecern a 0b00 a menos que la EEPROM es la programacin ocupado.

    Tabla 7-1.

    EEPM1

    0

    0

    1

    1

    Modo EEPROM Bits

    EEPM0

    0

    1

    0

    1

    Programacin Tiempo

    3.4 ms

    1,8 ms

    1,8 ms

    -

    Operacin

    Borrar y escribir en una sola operacin (Operacin Atmica)

    Erase Slo

    Slo escritura

    Reservado para uso futuro

    - MISTERIOSA: EEPROM Listo habilitacin de interrupcin Escribir MISTERIOSA a uno permite que la EEPROM Listo interrupcin si el bit I en SREG se establece. Escritura MISTERIOSA a cero deshabilita la interrupcin. La interrupcin Listo EEPROM genera una interaccin constante rupt cuando se borra EEPE. La interrupcin no se generar durante la escritura de EEPROM o SPM.

    - EEMPE: EEPROM Maestro habilitacin de escritura El bit EEMPE determina si el establecimiento EEPE a uno hace que el EEPROM para escribir. Cuando se establece EEMPE, estableciendo EEPE dentro de los cuatro ciclos de reloj se escribir datos en la EEPROM en el direccin seleccionada Si EEMPE es cero, estableciendo EEPE no tendr ningn efecto. Cuando EEMPE ha sido escrito a uno por software, hardware borra el bit a cero despus de cuatro ciclos de reloj. Vea el Descripcin de la broca EEPE para un procedimiento de escritura en la EEPROM.

    - EEPE: EEPROM Habilitar La EEPROM Habilitar seal EEPE es la luz estroboscpica de escritura en la EEPROM. Cuando la direccin y los datos estn correctamente configuradas, el bit EEPE debe estar escrito a uno a escribir el valor en el EEPROM. El bit EEMPE debe estar escrito a uno antes de un uno lgico se escribe en Eepe, otro- sabio no escribir EEPROM tiene lugar. El siguiente procedimiento se debe seguir al escribir la EEPROM (el orden de los pasos 3 y 4 no es esencial):

    1. Espere hasta EEPE se convierte en cero.

    2. Espere hasta que SELFPRGEN en SPMCSR se convierte en cero.

    3. Escriba la nueva direccin EEPROM para EEAR (opcional).

    4. Escribir nuevos datos de la EEPROM a EEDR (opcional).

    5. Escribir un uno lgico en el bit EEMPE al escribir un cero a Eepe en EECR.

    6. En el plazo de cuatro ciclos de reloj despus de establecer EEMPE, escribe un uno lgico EEPE.

    La EEPROM no se puede programar durante una CPU de escritura a la memoria Flash. El software debe comprobar que la programacin de Flash se ha completado antes de iniciar una nueva escritura de EEPROM. Paso 2 slo es relevante si el software contiene un gestor de arranque que permite a la CPU para programar el Flash. Si el flash no est siendo actualizado por la CPU, paso 2 puede omitirse. Ver "Gestor de arranque Soporte - Leer-While-Escribir Auto-Programacin, ATmega88PA, ATmega168PA y ATmega328P "en la pgina 277 para obtener ms informacin acerca de la programacin de arranque.

    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

  • ATmega48PA / 88PA / 168PA / 328P

    Cuando ha transcurrido el tiempo de acceso de escritura, el bit EEPE es despejado por hardware. El soft- usuario cermica puede consultar este bit y esperar a que un cero antes de escribir el siguiente byte. Cuando EEPE se ha establecido, la CPU se detiene durante dos ciclos antes de que se ejecute la siguiente instruccin.

    - EERE: EEPROM de habilitacin de lectura La EEPROM Leer seal de habilitacin de EERE es la luz estroboscpica de lectura en la EEPROM. Cuando la correcta direccin est configurado en el Registro EEAR, el bit EERE se debe escribir en un uno lgico para activar el EEPROM ledo. El acceso a EEPROM de lectura tiene una instruccin, y el dato solicitado se disponible de inmediato. Cuando se lee la EEPROM, la CPU se detiene durante cuatro ciclos antes de la siguiente instruccin se ejecuta.

    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)

    Tiempo EEPROM Programacin

    Nmero de ciclos de calibrado del oscilador RC

    26368

    Typ Tiempo Programacin

    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

  • ATmega48PA / 88PA / 168PA / 328P

    Cdigo Asamblea Ejemplo

    EEPROM_write:

    ; Esperar a la finalizacin de la escritura previa

    SBIC EECR, EEPE rjmp EEPROM_write ; Establecer direccin (r18: r17) en direccin de registro

    fuera EEARH, r18

    fuera EEARL, r17 ; Escribir datos (R16) al registro de datos

    fuera EEDR, r16 ; Escribe una lgica para EEMPE

    sbi EECR, EEMPE ; Iniciar eeprom escritura estableciendo EEPE

    sbi EECR, EEPE enriar

    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

  • ATmega48PA / 88PA / 168PA / 328P

    Los siguientes ejemplos de cdigo muestran montaje y funciones C para la lectura de la EEPROM. El ejem- ples asumen que las interrupciones se controlan de manera que no se produzcan interrupciones durante la ejecucin de estas funciones.

    Cdigo Asamblea Ejemplo

    EEPROM_read:

    ; Esperar a la finalizacin de la escritura previa

    SBIC EECR, EEPE rjmp EEPROM_read ; Establecer direccin (r18: r17) en direccin de registro

    fuera EEARH, r18

    fuera EEARL, r17 ; Iniciar eeprom ledo escribiendo EERE

    sbi EECR, EERE ; Lea los datos de registro de datos

    en enriar

    r16, EEDR

    Cdigo C Ejemplo

    unsigned char EEPROM_read (sin firmar int uiAddress) {

    / * Esperar a la finalizacin de la escritura anterior * / while (EECR y (1

  • ATmega48PA / 88PA / 168PA / 328P

    8. Sistema de reloj y Opciones

    8.1 Sistemas de reloj y su distribucin

    Figura 8-1 presenta los principales sistemas de reloj en el AVR y su distribucin. Todos los relojes no tiene que ser activo en un momento dado. A fin de reducir el consumo de energa, los relojes de los mdulos no estn siendo utilizados se puede detener mediante el uso de diferentes modos de suspensin, como se describe en "Power

    Management cin y Sleep Modos "en la pgina 39. Los sistemas de reloj se detallan a continuacin.

    Figura 8-1. Reloj Distribucin

    General I / O Mdulos ADC CPU Core RAM

    Flash y EEPROM

    Asincrnico Timer / Contador

    clkADC

    clkI / S

    clkASY

    clkCPU

    clkFLASH

    AVR Reloj Unidad de Control

    Reloj del sistema Precontador Restablecer Lgica Watchdog Timer

    Reloj Fuente

    Reloj Multiplexor

    Reloj Watchdog

    Perro guardin Oscilador

    Timer / Contador Oscilador Reloj externo

    Cristal Oscilador

    De baja frecuencia Crystal Oscillator

    Calibrado RC Oscilador

    8.1.1 CPU Clock - clkCPU El reloj de la CPU se enruta a partes del sistema en cuestin con la operacin del ncleo AVR. Ejemplos de tales mdulos son los de uso general Registro archivo, el Registro de estado y la memoria de datos que contiene el puntero de pila. Detener el reloj de la CPU inhibe el ncleo de la realizacin operaciones y clculos generales.

    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.

    Reloj Flash - clkFLASH El reloj flash controla el funcionamiento de la interfaz de Flash. El reloj Flash es generalmente simul- activo neamente con el reloj de la CPU.

    8.1.2

    8.1.3

    26 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    8.1.4 Asncrono Timer Reloj - clkASY El reloj temporizador asncrono permite que la asncrona temporizador / contador que se registr directamente desde un reloj externo o un cristal de reloj de 32 kHz externo. El dominio de reloj dedicado permite el uso de este temporizador / contador como un contador en tiempo real, incluso cuando el dispositivo est en modo de suspensin.

    ADC Reloj - clkADC El ADC est provisto de un dominio de reloj dedicada. Esto permite detener la CPU y los relojes de E / S con el fin de reducir el ruido generado por los circuitos digital. Esto le da a la conversin ADC ms precisa resultados.

    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. Opciones de dispositivo Clocking Select(1)

    CKSEL3..0

    1111 - 1000

    0111 - 0110

    0101 - 0100

    0011

    0010

    0000

    0001

    Dispositivo Opcin Clocking

    Bajo oscilador de cristal de energa

    Full Swing Crystal Oscillator

    Baja frecuencia Osciladores de cristal

    Interna 128 kHz oscilador RC

    Calibrada oscilador RC interno

    Reloj externo

    Reservado

    Nota: 1. Para todos los fusibles "1" significa no programada, mientras que "0" significa programar.

    8.2.1 Por defecto la fuente del reloj El dispositivo se enva con oscilador RC interno en 8.0MHz y con la CKDIV8 fusible pro- programado, lo que resulta en el reloj del sistema 1.0MHz. La hora de inicio es mxima y el tiempo de espera perodo habilitado. (CKSEL = "0010", SUT = "10", CKDIV8 = "0"). El ajuste predeterminado garantiza que todos los usuarios pueden hacer su ajuste de la fuente de reloj deseado usando cualquier interfaz de programacin disponibles.

    Reloj Secuencia de arranque Cualquier fuente de reloj necesita una suficiente VCC para iniciar oscilante y un nmero mnimo de oscilacin ciclos antes de que pueda considerarse estable.

    Para asegurar suficiente VCC, el dispositivo emite un reset interno con un retraso de tiempo de espera (tTOUT) despus el restablecimiento del dispositivo es liberada por todas las dems fuentes de restablecimiento. "Control y restablecimiento del

    sistema" en la pgina 46 describe las condiciones de arranque para el reajuste interno. El retraso (tTOUT) se mide el tiempo de la vigilancia Oscilador y el nmero de ciclos en la demora es fijado por los bits fusibles SUTx y CKSELx. La

    8.2.2

    27 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    retrasos seleccionables se muestran en la Tabla 8-2. La frecuencia de la tensin de oscilador es Watchdog dependiente como se muestra en la "Caractersticas tpicas" en la pgina 326.

    Tabla 8-2. Nmero de ciclos Watchdog Oscilador

    Typ Tiempo de espera (VCC = 3.0V)

    0 ms

    4.3 ms

    69 ms

    Nmero de ciclos

    0

    512

    8K (8192)

    Typ Tiempo de espera (VCC = 5.0V)

    0 ms

    4.1 ms

    65 ms

    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 conside- Ered 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 Bajo oscilador de cristal de energa

    Botones XTAL1 y XTAL2 son de entrada y salida, respectivamente, de un amplificador inversor que puede ser configurado para su uso como un oscilador en el chip, como se muestra en Figura 8-2 en la pgina 29. Cualquiera de un cuarzo cristal o un resonador de cermica pueden ser utilizados.

    Este cristal oscilador es un oscilador de baja potencia, con una reduccin de oscilacin de la tensin en la salida XTAL2 poner. Se da el menor consumo de energa, pero no es capaz de conducir otras entradas de reloj, y puede ser ms susceptible al ruido en entornos ruidosos. En estos casos, consulte la "Full Swing Crystal Oscillator "en la pgina 30.

    C1 y C2 siempre deben ser iguales para ambos cristales y resonadores. El valor ptimo de la condensadores depende del cristal o resonador en uso, la cantidad de capacitancia parsita, y el ruido electromagntico del medio ambiente. Algunas pautas iniciales para la eleccin de los condensadores para utilizar con cristales se dan en Tabla 8-3 en la pgina 29. Para resonadores cermicos, el va- condensador ues dadas por el fabricante deben ser utilizados.

    28 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    Figura 8-2. Conexiones Crystal Oscillator

    C2

    C1

    XTAL2 (TOSC2)

    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. Cristal de baja potencia Oscilador Modos de funcionamiento(3)

    Rango recomendado para Los condensadores C1 y C2 (PF)

    -

    12 - 22

    12 - 22

    12 - 22

    CKSEL3..1(1)

    100(2)

    101

    110

    111

    Rango de frecuencia (MHz)

    0,4 hasta 0,9

    0,9-3,0

    3,0-8,0

    8,0-16,0

    Notas: 1. Esta es la configuracin CKSEL Recommanded para los rangos de diferencia frenquency. 2. Esta opcin no se debe utilizar con cristales, slo con resonadores de cermica. 3. Si la frecuencia de 8 MHz excede la especificacin del dispositivo (depende de VCC), el CKDIV8 Fuse se puede programar con el fin de dividir la frecuencia interna por 8. Se debe garantizar que el reloj dividido resultante cumple con la especificacin de frecuencia del dispositivo.

    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

    Puesta en marcha Tiempo de Energa-abajo y De ahorro de energa

    258 CK

    258 CK

    1K CK

    1K CK

    1K CK

    Retardo adicional de reinicio (VCC = 5.0V)

    14CK + 4,1 ms(1)

    14CK + 65 ms(1)

    14CK(2)

    14CK + 4,1 ms(2)

    14CK + 65 ms(2)

    Oscilador Fuente / Condiciones de alimentacin

    Resonador de cermica, rpido el aumento del poder

    Resonador cermico, lentamente el aumento del poder

    Resonador cermico, DBO habilitado

    Resonador de cermica, rpido el aumento del poder

    Resonador cermico, lentamente el aumento del poder

    CKSEL0

    0

    0

    0

    0

    1

    SUT1..0

    00

    01

    10

    11

    00

    29 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    Tabla 8-4. Los tiempos de puesta en marcha para el Poder Crystal Oscillator Seleccin Menor Reloj (Continuacin)

    Puesta en marcha Tiempo de Energa-abajo y De ahorro de energa

    16K CK

    16K CK

    16K CK

    Retardo adicional de reinicio (VCC = 5.0V)

    14CK

    14CK + 4,1 ms

    14CK + 65 ms

    Oscilador Fuente / Condiciones de alimentacin

    Crystal Oscillator, DBO habilitado

    Crystal Oscillator, rpido el aumento del poder

    Crystal Oscillator, lentamente el aumento del poder

    Notas:

    CKSEL0

    1

    1

    1

    SUT1..0

    01

    10

    11

    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.

    8.4 Full Swing Crystal Oscillator

    Botones XTAL1 y XTAL2 son de entrada y salida, respectivamente, de un amplificador inversor que puede ser configurado para su uso como un oscilador en el chip, como se muestra en Figura 8-2 en la pgina 29. Cualquiera de un cuarzo cristal o un resonador de cermica pueden ser utilizados.

    Este cristal oscilador es un oscilador pleno apogeo, con swing-carril a carril en la salida XTAL2. Es til para conducir otras entradas de reloj y en entornos ruidosos. El consumo de corriente es ms alto que el "El poder de Cristal oscilador de baja" en la pgina 28. Tenga en cuenta que el Full Swing Crystal Oscilador slo funcionar para VCC = 2.7 a 5.5 voltios.

    C1 y C2 siempre deben ser iguales para ambos cristales y resonadores. El valor ptimo de la condensadores depende del cristal o resonador en uso, la cantidad de capacitancia parsita, y el ruido electromagntico del medio ambiente. Algunas pautas iniciales para la eleccin de los condensadores para utilizar con cristales se dan en Tabla 8-6 en la pgina 31. Para resonadores cermicos, el va- condensador ues dadas por el fabricante deben ser utilizados.

    El modo de funcionamiento es seleccionada por el CKSEL3..1 fusibles como se muestra en Tabla 8-5.

    Tabla 8-5. Full Swing modos de funcionamiento Crystal Oscillator

    Rango recomendado para Los condensadores C1 y C2 (PF)

    12 - 22

    CKSEL3..1

    011

    Rango de frecuencia(1) (MHz)

    0,4-20

    Notas: 1. Si la frecuencia de 8 MHz excede la especificacin del dispositivo (depende de VCC), el CKDIV8 Fuse se puede programar con el fin de dividir la frecuencia interna por 8. Se debe garantizar que el reloj dividido resultante cumple con la especificacin de frecuencia del dispositivo.

    30 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    Figura 8-3. Conexiones Crystal Oscillator

    C2

    C1

    XTAL2 (TOSC2)

    XTAL1 (TOSC1)

    GND

    Tabla 8-6. Puesta en marcha Times por el Full Swing Crystal Oscillator Seleccin Reloj

    Puesta en marcha Tiempo de Energa-abajo y De ahorro de energa

    258 CK

    258 CK

    1K CK

    1K CK

    1K CK

    16K CK

    16K CK

    16K CK

    Retardo adicional de reinicio (VCC = 5.0V)

    14CK + 4,1 ms(1)

    14CK + 65 ms(1)

    14CK(2)

    14CK + 4,1 ms(2)

    14CK + 65 ms(2)

    14CK

    14CK + 4,1 ms

    14CK + 65 ms

    Oscilador Fuente / Condiciones de alimentacin

    Resonador de cermica, rpido el aumento del poder

    Resonador cermico, lentamente el aumento del poder

    Resonador cermico, DBO habilitado

    Resonador de cermica, rpido el aumento del poder

    Resonador cermico, lentamente el aumento del poder

    Crystal Oscillator, DBO habilitado

    Crystal Oscillator, rpido el aumento del poder

    Crystal Oscillator, lentamente el aumento del poder

    Notas:

    CKSEL0

    0

    0

    0

    0

    1

    1

    1

    1

    SUT1..0

    00

    01

    10

    11

    00

    01

    10

    11

    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

  • ATmega48PA / 88PA / 168PA / 328P

    8.5 Baja frecuencia Osciladores de cristal

    La baja frecuencia Osciladores de cristal se ha optimizado para su uso con un cristal de reloj de 32,768 kHz. Al seleccionar cristales, capasitance carga y Resistencia serie equivalente de cristal, ESR deben tenerse en consideracin. Ambos valores son especificados por el fabricante de cristal. ATmega48PA / 88PA / 168PA / 328P oscilador est optimizado para un consumo muy bajo, y As, cuando la seleccin de cristales, ver Tabla 8-7 en la pgina 32 para las recomendaciones mximas ESR en 6.5 pF, 9,0 pF y 12,5 cristales pF

    Tabla 8-7. Recomendacin mximo ESR para 32.768 kHz oscilador de cristal

    Crystal CL (PF)

    6.5

    9.0

    12.5

    Nota: 1. Mxima ESR es un valor tpico basado en la caracterizacin

    Max ESR [k ](1)

    75

    65

    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. Capacitancia de baja frecuencia Osciladores de cristal

    Dispositivo

    ATmega48PA / 88PA / 168PA / 328P

    32 kHz Osc. Tipo

    Osc Sistema.

    Timer Osc.

    Cap (XTAL1 / Tosc1)

    18 pF

    18 pF

    Cap (XTAL2 / Tosc2)

    8 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

    01

    10

    11

    Puesta en marcha Times por la baja frecuencia Osciladores de cristal Seleccin del Reloj

    Retardo adicional de Reset (VCC = 5.0V)

    4 CK

    4 CK + 4,1 ms

    4 CK + 65 ms

    Recomendaciones de uso

    Potencia en ascenso rpido o BOD habilitadas

    Poco a poco el aumento del poder

    Frecuencia estable en el arranque

    Reservado

    32 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    Tabla 8-10.

    CKSEL3..0

    0100(1)

    0101

    Nota:

    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

    1K CK

    32K CK Frecuencia estable en el arranque

    Recomendaciones de uso

    1. Esta opcin slo debe utilizarse si la estabilidad de frecuencia en el arranque no es importante para la aplicacin

    8.6 Calibrada oscilador RC interno

    Por defecto, el oscilador RC interno proporciona un reloj de 8,0 MHz aproximada. Aunque la tensin y dependiente de la temperatura, este reloj puede ser calibrado con mucha precisin por el usuario. Ver Mesa 28-1 en la pgina 317 para ms detalles. El dispositivo se enva con el CKDIV8 Fusible programado. Ver "Sistema de reloj de divisor" en la pgina 35 para ms detalles.

    Este reloj puede ser seleccionado como el reloj del sistema mediante la programacin de la CKSEL fusibles como se muestra en Tabla 8-11. Si se selecciona, que operar sin componentes externos. Durante restablecimiento, cargas de hardware el valor de calibracin preprogramado en el Registro OSCCAL y por lo tanto automticamente cal- ibrates el oscilador RC. La exactitud de esta calibracin se muestra como la calibracin de fbrica en Tabla 28-1 en la pgina 317.

    Al cambiar el registro OSCCAL de SW, ver "OSCCAL - Oscilador Registro calibracin" en la pgina 37, es posible obtener una precisin de la calibracin ms alto que mediante el uso de la calibracin de fbrica. La exactitud de esta calibracin se muestra como la calibracin de usuario en Tabla 28-1 en la pgina 317.

    Cuando se utiliza este oscilador cuando el reloj del chip, el Watchdog oscilador seguir siendo utilizado para la Temporizador de vigilancia y para el restablecimiento Tiempo de espera. Para obtener ms informacin sobre la cali-

    preprogramado valor bracin, consulte la seccin "Byte de calibracin" en la pgina 298.

    Tabla 8-11. Calibrada interna oscilador RC Modos de funcionamiento

    Rango de frecuencia(2) (MHz)

    7.3 a 8.1

    Notas:

    CKSEL3..0

    0010(1)

    1. El equipo se suministra con esta opcin seleccionada. 2. Si la frecuencia de 8 MHz excede la especificacin del dispositivo (depende de VCC), el CKDIV8 Fuse se puede programar con el fin de dividir la frecuencia interna de 8.

    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

    Puesta en marcha Tiempo de Power- abajo y de ahorro de energa

    6 CK

    6 CK

    6 CK

    Reservado

    Nota: 1. Si se ha programado el fusible RSTDISBL, esta vez la puesta en marcha se incrementar a 14CK + 4,1 ms para asegurar el modo de programacin se pueden introducir.

    2. El equipo se suministra con esta opcin seleccionada.

    Retardo adicional de Reset (VCC = 5.0V)

    14CK(1)

    14CK + 4,1 ms

    14CK + 65 ms(2)

    SUT1..0

    00

    01

    10

    11

    Condiciones de alimentacin

    BOD habilitado

    Potencia en ascenso rpido

    Poco a poco el aumento del poder

    33 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    8.7 128 kHz oscilador interno

    El oscilador interno 128 kHz es un oscilador de baja potencia que proporciona un reloj de 128 kHz. El cuencia cuencia es nominal a 3V y 25 C. Este reloj puede ser selecto como el reloj del sistema programacin de los fusibles CKSEL a "11" como se muestra en Tabla 8-13.

    Tabla 8-13. 128 kHz oscilador interno Modos de funcionamiento

    Frecuencia nominal(1)

    128 kHz

    Nota:

    CKSEL3..0

    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. Puesta en marcha Times por el 128 kHz oscilador interno

    Puesta en marcha Tiempo de Power- abajo y de ahorro de energa

    6 CK

    6 CK

    6 CK

    Reservado

    Nota: 1. Si se ha programado el fusible RSTDISBL, esta vez la puesta en marcha se incrementar a 14CK + 4,1 ms para asegurar el modo de programacin se pueden introducir.

    Retardo adicional de Reajustar

    14CK(1)

    14CK + 4 ms

    14CK + 64 ms

    SUT1..0

    00

    01

    10

    11

    Condiciones de alimentacin

    BOD habilitado

    Potencia en ascenso rpido

    Poco a poco el aumento del poder

    8.8 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. Crystal Oscillator Frecuencia de reloj

    Frecuencia

    0-20 MHz

    CKSEL3..0

    0000

    Figura 8-4. Configuracin de la unidad de reloj externo

    NC XTAL2

    EXTERNO RELOJ SEAL

    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

  • ATmega48PA / 88PA / 168PA / 328P

    Tabla 8-16. Puesta en marcha Times por la Seleccin Reloj externo

    Puesta en marcha Tiempo de Power- abajo y de ahorro de energa

    6 CK

    6 CK

    6 CK

    Reservado

    Retardo adicional de Reset (VCC = 5.0V)

    14CK

    14CK + 4,1 ms

    14CK + 65 ms

    SUT1..0

    00

    01

    10

    11

    Condiciones de alimentacin

    BOD habilitado

    Potencia en ascenso rpido

    Poco a poco el aumento del poder

    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 Clock Output Buffer

    El dispositivo puede emitir el reloj del sistema en el pin CLKO. Para habilitar la salida, el CKOUT Fusible tiene que ser programado. Este modo es adecuado cuando se utiliza el reloj de chips para conducir otra cir- Cuits en el sistema. El reloj tambin se emitir en el reset y el normal funcionamiento de E / S pin se anular cuando se programa el fusible. Cualquier fuente de reloj, incluyendo el RC interno Oscilador, se puede seleccionar cuando el reloj se emite en CLKO. Si el reloj del sistema de divisor es usado, es el reloj del sistema dividido que se emite.

    8.10 Timer / Contador Oscilador

    ATmega48PA / 88PA / 168PA / 328P utiliza el mismo oscilador de cristal para el oscilador de baja frecuencia y Timer / Contador Oscilador. Ver "Baja Frecuencia Oscilador de Cristal" en la pgina 32 para ms detalles sobre los requisitos del oscilador y de cristal.

    ATmega48PA / 88PA / 168PA / 328P compartir los Timer / Contador Oscilador Pins (TOSC1 y TOSC2) con XTAL1 y XTAL2. Cuando se utiliza el temporizador / contador oscilador, el reloj del sistema tiene que ser cuatro veces la frecuencia del oscilador. Debido a esto y al intercambio de pines, el Timer / Contador Oscilador slo se puede utilizar cuando el calibrada interna oscilador RC se selecciona como fuente de reloj del sistema.

    La aplicacin de una fuente externa de reloj para TOSC1 se puede hacer si EXTCLK en el Registro ASSR es escrito a uno lgico. Ver "Asynchronous Operacin del Timer / Contador2" en la pgina 155 Para mayor Descripcin sobre la seleccin de reloj externo como entrada en lugar de un reloj de cristal de 32,768 kHz.

    8.11 Sistema Reloj Precontador

    El ATmega48PA / 88PA / 168PA / 328P tiene un prescaler reloj del sistema, y el reloj del sistema puede ser dividida por el establecimiento de la "CLKPR - Reloj preescala registro" en la pgina 377. Esta caracterstica puede ser usado para disminuir la frecuencia de reloj del sistema y el consumo de energa cuando el requisito de la potencia de procesamiento es baja. Esto se puede utilizar con todas las opciones de fuente de reloj, y que afectar a la frecuencia de reloj de la CPU y todos los perifricos sincrnicos. clkI / S, clkADC, clkCPU y clkFLASH se dividen por un factor como se muestra en Tabla 28-3 en la pgina 318.

    35 8161D-AVR-10.9

  • ATmega48PA / 88PA / 168PA / 328P

    Al cambiar entre configuraciones prescaler, el reloj del sistema Precontador asegura que no fallos se produce en el sistema de reloj. Tambin asegura que no de frecuencia intermedia es mayor que ni la frecuencia de reloj correspondiente a la configuracin anterior, ni la frecuencia de reloj pondiente pondiente a la nueva configuracin. El contador de ondulacin que implementa el prescaler se ejecuta en el frecuencia del reloj dividida, que puede ser ms rpido que la frecuencia de reloj de la CPU. Por lo tanto, no es posible determinar el estado de la prescaler - incluso si fuera legible, y la exacta el tiempo que se tarda en cambiar de una divisin de reloj a la otra no se puede predecir exactamente. Desde tiempo de los valores CLKPS se escriben, se tarda entre T1 + T2 y T1 + 2 * T2 antes de la nueva frecuencia de reloj est activo. En este intervalo, se producen 2 bordes de reloj activos. Aqu, T1 es la pre- perodo de reloj ante-, y T2 es el perodo correspondiente a la nueva configuracin prescaler.

    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

  • ATmega48PA / 88PA / 168PA / 328P

    8.12

    8.12.1

    Registro Descripcin

    OSCCAL - Oscilador de calibracin Registro

    Bit (0x66) Lectura / Escritura Valor inicial

    7 CAL7 R / W

    6 CAL6 R / W

    5 CAL5 R / W

    4 CAL4 R / W

    3 CAL3 R / W

    2 CAL2 R / W

    1 CAL1 R / W

    0 CAL0 R / W

    OSCCAL

    Dispositivo Valor de calibracin especfica

    - CAL7..0: Oscilador Valor de calibracin La calibracin Registro oscilador se utiliza para recortar el oscilador RC calibrada interna a eliminar las variaciones de proceso de la frecuencia del oscilador. Un valor de calibracin preprogramado es escrito automticamente a este registro durante el restablecimiento de chips, dando