Académique Documents
Professionnel Documents
Culture Documents
Caractersticas:
Microcontrolador AVR de 8 bits de alto rendimiento y bajo consumo.
Arquitectura Avanzada RISC
- 131 instrucciones. La mayora de un solo ciclo de reloj de ejecucin.
- 32 registros de trabajo de 8 bits para propsito general.
- Funcionamiento esttico total.
- Capacidad de procesamiento de unos 20 MIPS a 20 MHz.
- Multiplicador por hardware de 2 ciclos
Memorias de programa y de datos no voltiles de alta duracin
- 16/32/44 K bytes de FLASH auto programable en sistema
- 512B/1K/2K bytes de EEPROM
- 1/2/4K bytes de SRAM Interna
- Ciclos de escritura/borrado: 10.000 en Flash / 100.000 en EEPROM
Velocidad de Funcionamiento
- ATMEGA 164P/324P/644PV: 0 4MHz @ 1.8 5.5V - 10MHz @ 2.7
5.5V
- ATMEGA 164P/324P/644PV: 0 10MHz @ 2.7 5.5V - 20MHz @ 4.5
5.5V
Consumo de energa a 1MHz, 1.8V, 25C para el ATMEGA
164P/324P/644P
- Activo: 0.4mA
- Modo Power-down: 0.1uA
- Modo Power-Save: 0.6uA (Incluye RTC de 32 Khz)
1. CONFIGURACIN DE PINES
Figura 1-1. Pines de Salida del ATmega164P/324P/644P
TQFP/QFN/MLF
2. Revisin Global
El ATmega164P/324P/644P es un microcontrolador CMOS de 8 bits de bajo
consumo basado en la arquitectura RISC mejorada. Sus instrucciones se
ejecutan en un ciclo de mquina, el ATmega164P / 324P / 644P consigue
transferencia de informacin alrededor de 1 MIPS por MHz admitido por el
sistema, permitiendo al diseador del sistema optimizar el consumo de energa
versus la velocidad de procesamiento.
2.3.2 GND
Tierra
2.3.3 Puerto A (PA7:PA0)
El puerto A sirve como entradas analgicas para el conversor Anlogo Digital.
El puerto A tambin sirve como un puerto bidireccional de 8 bits con
resistencias internas de pull up (seleccionables para cada bit). Los buffers de
salida del puerto A tienen caractersticas simtricas controladas con fuentes de
alta capacidad.
Los pines del puerto A estn en tri-estado cuando las condiciones de reset estn
activadas o cuando el reloj no este corriendo. El puerto A tambin sirve para
varias funciones especiales del ATmega164P/324P/644P como la Conversin
Anloga Digital.
3. Recursos
Un set comprensible de herramientas, notas de aplicacin y datasheet se puede
descargar desde http://www.atmel.com/avr.
Dependiendo del valor del contador del programa, las interrupciones deben ser
deshabilitadas automticamente cuando los bits Boot Lock (BLB02 o BLB12) son
programados.
Esta caracterstica mejora la seguridad de software.
La direccin ms baja en el espacio de la memoria de programa est definida
por defecto como vectores de Reset e Interrupcin.
La lista completa de vectores se muestra en la pgina 61 del Data Sheet. La lista
tambin determina los niveles de prioridad de las diferentes interrupciones. El
nivel de prioridad es desde la direccin mas baja a la ms alta. El RESET tiene la
prioridad ms alta y la siguiente es el pedido de interrupcin externa (INTO).
Los vectores de interrupcin pueden ser movidos al inicio de la seccin de la
parte baja de la Flash por la configuracin del bit IVSEL en el MCU del registro
de Control (MCUCR). El vector de Reset tambin puede ser movido al inicio de
la seccin de la parte mas baja por la programacin del fusible BOOTRST.
Cuando ocurre una Interrupcin, el bit I del Habilitador de Interrupciones
Globales es limpiado y todas las interrupciones son deshabilitadas.
El software del usuario puede escribir uno lgico en el bit I para habilitar de
nuevo las interrupciones.
Todas las interrupciones habilitadas pueden entonces interrumpir las rutinas de
interrupciones. El bit I es puesto en uno automticamente cuando regresa de
una interrupcin al ser ejecutada la instruccin RETI.
Existen bsicamente dos tipos de interrupciones. El primer tipo es disparado
por un evento que configura la bandera de interrupcin. Para estas
interrupciones, el Contador de Programa es direccionado para el actual Vector
de Interrupcin a medida que se ejecuta una rutina de interrupcin manual y
limpiada por hardware la correspondiente bandera de interrupcin. La bandera
de interrupcin puede tambin ser limpiada por uno lgico para la posicin de
la bandera del bit.
Si una condicin de interrupcin ocurre mientras se habilita el bit de
interrupcin correspondiente este es limpiado, la bandera de interrupcin ser
puesto en uno y la interrupcin recordar ser siempre habilitada o la bandera es
limpiada por software.
De igual forma, si una o ms condiciones de interrupcin ocurren mientras el
bit de interrupcin es limpiado, la correspondiente bandera de interrupcin
ser puesta en uno y la Bandera de Interrupcin Global es Habilitada mientras
el bit es uno, y entonces ser ejecutada por el orden de prioridad.
El segundo tipo de interrupcin ser disparada mas larga que la condicin de
interrupcin actual.
Si la condicin de interrupcin desaparece antes que la interrupcin sea
habilitada, la interrupcin no ser disparada. Cuando existe una interrupcin
en el AVR, esta siempre regresar al programa principal y ejecutar una o ms
interrupciones antes de cualquier pedido de interrupcin. Note que el Registro
Cuando usamos los registros en modo de direccionamiento indirecto con predecremento automtico y post-incrementos, los registros de direccin X, Y y Z
son decrementados o incrementados.
El trabajo de los 32 registros de propsito general, los64 registros de E/S, los
registros extendidos de E/S y bytes 1024/2048/4096 de la SRAM interna en el
ATmega164P/324P/644P son todos accesibles a travs de estos modos de
direccionamiento.
Figura. Mapa de la memoria de datos
Cuando direccionamos los registros de E/S como espacios de datos usando las
instrucciones ST y LD, la localidad 0x20 debe ser aadida a estas direcciones. El
ATmega164P/324P/644P es un microcontrolador complejo con muchas
unidades perifricas que pueden soportar entre las 64 localidades reservadas en
las instrucciones de Entrada y Salida. Para los espacios extendidos de E/S
desde la localidad 0x60 a la 0xFF en la SRAM, solo las instrucciones
ST/STS/STD y LD/LDS/LDD pueden ser usadas.
Para compatibilidad con dispositivos futuros, los bits reservados deberan ser
escritos a cero.
Las direcciones reservadas de E/S nunca deben ser escritas. Algunas de las
banderas de estado son limpiadas por la escritura de un uno lgico en estas.
Note que, a diferencia de otros AVRs, las instrucciones CBI y SBI, solo operan
sobre bits especficos, y pueden adems ser usados sobre registros que tienen
tales banderas de estado. Las instrucciones SCI y CBI trabajan con solo con los
registros de la 0x00 a la 0x1F.
Los registros de E/S y perifricos pueden ser usados para almacenar cualquier
informacin y son particularmente para almacenar variables globales y
banderas de estado.
Los registros de E/S de propsito general estn entre los rangos de direcciones
0x00 a la 0x1F y se usa para su acceso las instrucciones SBI, CBI, SBIS y SBIC
7.6 Descripcin de Registros
7.6.1 EEARH y EEARL Los Registros de Direccin de la EEPROM
Los cristales que especifican una capacitancia de carga CL mas alta que 8.0 pF,
requieren capacitores externos como se describe en la figura 8-2.
Para encontrar una capacitancia de carga adecuada para un cristal de 32.768,
por favor consulte el cristal del datasheet. Cuando este oscilador es
seleccionado, empieza el tiempo que es determinado por los fusibles SUT y
CKSEL0 como se muestra en la figura de la Tabla 8-8.
Note que el Prescalador del Sistema de Reloj puede ser usado para
implementar cambios de ejecucin de tiempo de la frecuencia del reloj interno
mientras todava asegura una operacin estable. Referirse a prescalador del
sistema de Reloj en la Pg. 38 del datasheet para ms detalles.
8.9 Oscilador del Timer/Counter
El ATmega164P/324P/644P usa el mismo tipo de oscilador del cristal para
cristal de baja frecuencia y el oscilador del Timer/Counter. Ver Oscilador del
Cristal de baja frecuencia en la pgina 34 del datasheet para mayores detalles.
El dispositivo puede operar con Timer/Counter desde un cristal con frecuencia
externa de 32.768 KHz o una fuente de reloj externa. Ver Conexiones del la
Fuente de Reloj en la pgina 31 del datasheet para mayores detalles.
Aplicando una fuente de reloj externa a TOSC1 puede ser hecho si EXTCLK en
el Registro ASSR es escrito con uno lgico. Ver el registro de comparacin de
salida B que contiene valores de 8-bit que continuamente compara con el valor
de contador (TCNT2). Esto puede ser usado para generar una Interrupcin de
comparacin a la salida, o generar una forma de onda a la salida en el pin
OC2B en la pgina 157 del datasheet.
8.10 Buffer del Reloj de Salida
El dispositivo puede ser salida del sistema de reloj en el pin CLKO. Al habilitar
la salida, el fusible CKOUT ha sido programado. Este modo es conveniente
cuando el reloj del chip es usado para manejar otros circuitos en el sistema. El
reloj tambin sera una salida durante el reset, y la operacin normal del pin de
E/S sera alterada cuando el fusible es programado. Ninguna fuente de reloj,
incluyendo el Oscilador interno RC, puede ser seleccionado cuando el reloj es
salida en CLKO. Si el prescalador del Sistema de Reloj es usado, esto divide el
sistema de reloj que es salida.
8.11 Prescalador de Sistema de Reloj
El ATmega164P/324P/644P tiene un Prescalador del sistema de reloj y el
sistema de reloj puede ser dividido por configuracin de CLKPR-Registro
Prescalador del reloj en la pgina 40 del datasheet. Esto puede ser usado para
decrementar la frecuencia del sistema de reloj y el consumo de energa cuando
el requerimiento para procesamiento en energa es bajo. Esto puede ser usado
con todas las opciones de fuente de reloj, y esto afectara la frecuencia de reloj
del CPU y todos los perifricos asncronos clkI/O, clkADC, clkCPU, and clkFLASH son
divididos por factores como se muestra en la Tabla 8-15 en la pgina 41 del
datasheet.
Cuando se cambia entre las configuraciones del prescalador, el prescalador del
sistema de reloj asegura que no ocurran fallas tcnicas en el sistema de reloj.
Esto tambin asegura que la frecuencia no es inmediatamente ms alta que la
frecuencia de reloj correspondiente a las configuraciones previas, o la frecuencia
correspondiente a configuraciones nuevas.
El contador de onda que implementa el Prescalador corre a la frecuencia no
dividida del reloj, con lo cual puede ser ms rpido que la frecuencia de reloj
del CPU. Esto no es posible para determinar el estado del prescalador si esto
sera leble, y el tiempo exacto que toma el cambio desde una divisin de reloj
a otra que no puede ser exactamente predefinida. Desde el tiempo que el valor
de CLKPS es escrito, esto toma entre T1 + T2 y T1 + 2*T2 antes de que la nueva
frecuencia de reloj sea activada. En este intervalo, la activacin de 2 flancos para
el reloj son producidos. T1 es el periodo previo del reloj, y T2 es el periodo
correspondiente a la configuracin del nuevo prescalador.
Para evitar cambios unidireccionales de la frecuencia de reloj, un procedimiento
de escritura especial seria el siguiente para cambiar los bits CLKPS:
1. Escribir en el prescalador del reloj el bit de habilitacin de cambio (CLKPCE)
a uno y todos los otros bits en CLKPR a cero.
2. Durante cuatro ciclos, escribir el valor deseado a CLKPS mientras se escribe a
cero CLKPCE.
Las Interrupciones serian deshabilitadas cuando se carga las configuraciones
del Prescalador para estar seguros que el procedimiento de escritura no sea
interrumpido.
8.12 Descripcin de Registros
8.12.1 OSCCAL Registro de Calibracin de Oscilador
Notas:
1. Solo recomendado con cristal externo o resonador como fuente de reloj.
2. Si el Timer/Contador2 est corriendo en modo asincrnico.
3. Para el INT0, solo interrupcin de nivel.
Para entrar a cualquiera de los modos sleep, el bit SE en el SMCR debe ser
escrito en uno lgico y una instruccin SLEEP debe ser ejecutada. Los bits SM2,
SM1, y SM0 en el registro SMCR seleccionan cual modo de descanso ser
activado mediante la instruccin SLEEP.
Si ocurre la habilitacin de una interrupcin mientras el MCU est en modo
sleep, el MCU despierta. El MCU es parado durante cuatro ciclos adems del
tiempo de arranque, ejecuta la rutina de interrupcin, y retoma la ejecucin de
la siguiente instruccin SLEEP.
El contenido del Archivo de Registro y la SRAM son inalterables cuando el
dispositivo despierta del descanso (sleep).
Si ocurre un reset durante el modo sleep, el MCU despierta y ejecuta desde el
Vector de Reset.
9.3 Desabilitacin del BOD
Cuando el Brown-out Detector (BOD) es habilitado por los fusibles BODLEVEL,
el BOD es activado para monitorear la alimentacin de voltaje durante el
periodo de descanso (sleep). Para ahorrar energa, es posible deshabilitar el
BOD por software para algunos modos sleep. El consumo mximo del modo
sleep estar entonces en el mismo nivel como cuando BOD es deshabilitado
globalmente por los fusibles.
Si el BOD es deshabilitado por software, la funcin del BOD es apagada
inmediatamente despus de entrar en modo de descanso. Una vez que
despierta del modo sleep, el BOD es activado automticamente otra vez.
Esto asegura el funcionamiento seguro en caso de que el nivel de VCC cae
durante el perodo de descanso.
Cuando el BOD ha sido deshabilitado, el tiempo de arranque desde el modo de
descanso ser aproximadamente 60us para asegurar que el BOD est trabajando
correctamente antes de que el MCU contine ejecutando el cdigo.
La desabilitacin del BOD es controlada por el bit 6, BODS (BOD Sleep) en el
registro MCUCR. Al escribir uno en este bit se apagar el BOD en el pertinente
modo sleep, mientras el BOD est en cero este estar activo.
Por defecto el BOD est en cero, por lo que siempre est activado.
tiempo para despertar al MCU. Cuando despierta del modo Power-down, hay
un retardo antes de despertarse y contina hasta que despierte totalmente. Esto
permite al reloj reiniciar y llegar a estabilizarse antes de que haya sido detenido.
El periodo para despertarse esta definido por el fusible CKSEL que define el
periodo de reset.
9.7 Modo Power-save
Cuando los bits SM2..0 son escritos como 011, la instruccin SLEEP hace que el
MCU entre en el Modo Power-save. Esto modo es idntico al modo Powerdown, con una excepcin: Si el Timer/contador2 es habilitado, este funcionara
durante el descanso. Este dispositivo puede despertarse desde un
desbordamiento del Timer o una Salida del Comparador desde el
Timer/Contador2 si los bits correspondientes a la
interrupcin del
Timer/Contador2 son habilitadas en TIMSK2, y el bit en la interrupcin global
en SREG es puesta en uno.
Si el Timer /Contador2 no est corriendo, se recomienda usar este modo.
El Timer/Contador2 puede ser contado sincrnicamente y asincrnicamente en
el Modo Power-save. Si el Timer/contador2 no est usando el reloj asincrnico,
el oscilador del Timer/Contador es detenido durante el descanso (sleep). Si el
Timer/contador2 no est usando el reloj sincrnico, la fuente del reloj es
detenido durante el descanso (sleep). Note que aun cuando el reloj sncrono
est corriendo en Power-save, este reloj slo est disponible para el
Timer/Counter2.
9.8 Modo Standby
Cuando los bits SM2..0 son escritos como 110 y un cristal/resonador externo es
seleccionado, la instruccin SLEEP hace que el MCU entre en Modo Standbye.
Este modo es idntico al Power-Down con la excepcin de que el Oscilador es
kept running. En el modo Standby, el dispositivo se despierta en 6 ciclos de
reloj.
9.9 Modo Standby Extendido
Cuando los bits SM2..0 son escritos como 111 y un cristal/resonador externo es
seleccionado, la instruccin SLEEP hace que el MCU entre en el Modo Standbye
extendido. Este modo es idntico al modo Power-save con la excepcin que el
Oscilador es kept running. En el modo Stanbye Extendido, el dispositivo se
despierta en 6 ciclos de reloj
Notas:
1. El modo Standby es solo recomendado para usar con un cristal externo.
Bit 0 SE: Habilitacin del sleep
El bit SE debe ser escrito a uno lgico para hacer que el MCU entre en modo
sleep cuando la instruccin SLEEP es ejecutada. Para evitar que el MCU entre al
modo sleep es recomendable escribir a uno el bit SE antes de ejecutar la
instruccin SLEEP y para limpiar inmediatamente despus de despertarse.
Nota: El Watchdog Timer debe ser reseteado antes de cualquier cambio de los
bits WDP, ya que un cambio en los bits WDP puede resultar un time-out
cuando cambia a un periodo mas corto del time-out.
11. INTERRUPCIONES
11.2 Vectores de Interrupcin
ATmega164P/324P/644P
Todos los registros y bits referidos en estas acciones son escritos en forma
general. La letra minscula x representa el nmero para el prtico, y la letra
minscula n representa el nmero de bit. Sin embargo, cuando usamos el
registro o los bits definidos en el programa, se usara adecuadamente. Por
ejemplo, para el bit 3 en el prtico PORTB3, este documento lo denota como
PORTxn.
Cada pin del prtico esta compuesto de tres registros: DDxn, PORTxn, y PINxn,
los bits DDXn son accesos a la direccin del DDRx E/S, los bits PORTxn
direccional al PORTx E/S, y los bits del PINnx direccional al PINx E/S.
El bit DDxn en el registro DDRx selecciona la direccin de este pin. Si DDxn es
escrito a uno lgico Pxn es configurado como un pin de salida. Si DDxn es
escrito con cero lgico, Pxn es configurado como un pin de entrada.
Si PORTxn es escrito como uno lgico cuando el pin es configurado como un
pin de entrada, las resistencias pull-up son activadas.
Para cambiar a apagar las resistencias pull-up, el PORTxn tuvo que ser escrito
con cero lgico o el pin tubo que ser configurado como pin de salida. Los pines
del prtico son de declarados cuando la condicin reset llega hacer activada.
Incluso si el reloj no esta corriendo.
Si el PORTxn es escrito con uno cuando el pin es configurado como un pin de
salida, el pin del prtico es manejado con uno. Si el PORTxn es escrito con cero
lgico cuando el pin es configurado como salida, el pin del prtico es manejado
con cero.
13.2.2 Invirtiendo el Pin
Escribiendo uno lgico en el PINxn, se invierte el valor de PORTxn,
independientemente del valor de DDRxn.
Note que la instruccin SBI pude ser usada para invertir un pin de un prtico
de manera sencilla.
13.2.3 Cambiando entre Entrada y Salida
Cuando cambiamos entre ({DDxn, PORTxn} = 0b00) y la salida en alto ({DDxn,
PORTxn}= 0b11), e inmediatamente con la habilitacin de las pull-up {DDxn,
PORTxn} = 0b01) o la salida en bajo ({DDxn, PORTxn} = 0b10) ocurrira.
Normalmente, la habilitacin de las pull-up es aceptable, como una altaimpedancia no seria la diferencia entre un fuerte manejo en alto y la pull-up. Si
este no es el caso, el bit PUD en el registro MCUCR puede ser uno y
deshabilitar todas la pull-up en todos los prticos. Cambiando entre la entrada
con pull-up y la salida en bajo genera el mismo problema. Al usar el tri-state
({DDxn, PORTxn} = 0b00) o la salida en high state ({DDxn, PORTxn}
= 0b11) como en el paso inmediato.
Configuracin de los Pines del Prtico
DDxn PORTxn PUD (en
E/S
MCUCR)
0
0
X
Entrada
0
1
0
Entrada
0
1
1
1
0
1
1
X
X
Pullup
No
SI
Entrada No
Salida
No
Salida
No
Comentario
Tri-State (Alta-Z)
Pxn corriente en la fuente
si existe pulled low
Tri-State (Alta-Z)
Salida en Bajo
Salida en Alto (Fuente)
SLEEP es barrido por habilitacin del pin del prtico como un pin de
interrupcin. Si la interrupcin externa demandada no es habilitada, SLEEP es
activada tambin por estos pines. SLEEP es tambin barrida por varias otras
funciones alternativas. Si un nivel lgico alto (uno) es presentada en un pin de
interrupcin asincrnica externa configurada como Interrupcin con Flanco de
Subida, Flanco de Bajada, o cualquier cambio lgico al pin mientras la
interrupcin externa no es habilitada, la correspondiente bandera de
interrupcin seria uno cuando resumimos desde el Modo Sleep mencionado
anteriormente, como al activar en este Modo Sleep produce un cambio lgico de
nivel.
13.2.6 Pines no Conectados
Si algunos pines no son usados, es recomendable asegurarse que estos pines
tengan definido un nivel. Incluso a travs de la mayora de la entradas digitales
son deshabilitadas en profundo Modo Sleep como se describi anteriormente,
las entradas flotantes deberan ser evitadas (Reset, Modo Activo, y Modo Idle)
El mtodo ms simple para asegurar la definicin de un nivel lgico para un
pin que no se usa es habilitar las pull-up internas. En este caso, las pull-up
serian deshabilitadas durante el reset. Si bajo consumo de energa durante el
reset es importante, es recomendable usar pull-up o pull-down. Conectando
pines que no se utilizan directamente a Vcc o Tierra no es recomendable, esto
pude causar excesivas corrientes si el pin es accidentalmente configurado como
salida.
Nombre
de la
Seal
PUOE
Nombre
Completo
Descripcin
PUOV
Valor Pull-up
DDOE
Habilitacin
Direccin de
Datos
DDOV
Habilitacin del
valor de
Direccin de
Datos
PVOE
Habilitacin del
valor del prtico
PVOV
PTOE
DIEOE
DI
Entrada Digital
AIO
Entrada/Salida
Analgica
PA2
PA1
PA0
PCINT11, Cambio de pin de fuente de interrupcin 11: El pin PB3 puede servir
como una fuente de interrupcin externa.
AIN0/INT2/PCINT10, Bit 2
AIN1, Entrada Positiva del Comparador Analgico. Este pin es conectado
directamente a la entrada positiva del comparador analgico.
INT2, Fuente de interrupcin externa 2- El pin PB2 puede servir como una
fuente de interrupcin externa del MCU.
PCINT10, Cambio de pin de fuente de interrupcin 10: El pin PB2 puede servir
como una fuente de interrupcin externa.
T1/CLKO/PCINT9, Bit 1
T1, Fuente contador Timer/contador 1
CLKO, Sistema de divisin del reloj: El sistema de divisin del reloj puede ser
salida del pin PB1. El sistema de divisin del reloj seria salida si el fusible
CKOUT es programado, implcitamente de la configuracin del PORTB1. Esto
tambin seria salida durante el Reset.
PCINT10, Cambio de pin de fuente de interrupcin 9: El pin PB1 puede servir
como una fuente de interrupcin externa.
T0/XCK0/PCINT8, Bit 0
T0, Fuente contador Timer/contador0.
XCK, USART reloj externo. El registro de direccin de datos (DDB0) controla si
el reloj es salida (DDD uno) o entrada (DDD0 cero). El pin XCK0 es activado
solo cuando el USART0 opera en modo sncrono.
PCINT23, Cambio del pin de de fuente de interrupcin 23: El pin PC7 puede
servir como una fuente de interrupcin externa
TOSC1/PCINT22 Portico C, Bit 6
TOSC1, Oscilador de Tiempo pin 1.
interrupcin externa al MCU.
PCINT22, Cambio del pin de de fuente de interrupcin 23: El pin PC6 puede
servir como una fuente de interrupcin externa
TDI/PCINT21 Portico C, Bit 5
TDI, JTAG Test Data Input.
PCINT22, Cambio del pin de de fuente de interrupcin 21: El pin PC5 puede
servir como una fuente de interrupcin externa
PCINT20, Cambio del pin de de fuente de interrupcin 20: El pin PC4 puede
servir como una fuente de interrupcin externa.
TMS/PCINT19 Port C, Bit 3
TMS, JTAG Test Mode Select.
PCINT19, Cambio del pin de de fuente de interrupcin 19: El pin PC3 puede
servir como una fuente de interrupcin externa.
TCK/PCINT18 Port C, Bit 2
TCK, JTAG Test Clock.
PCINT18, Cambio del pin de de fuente de interrupcin 18: El pin PC2 puede
servir como una fuente de interrupcin externa.
SDA/PCINT17 Port C, Bit 1
SDA, 2-wire Serial Bus Data Input/Output Line.
PCINT17, Cambio del pin de de fuente de interrupcin 17: El pin PC1 puede
servir como una fuente de interrupcin externa.
SCL/PCINT16 Port C, Bit 0
SCL, 2-wire Serial Busk Clock Line.
PCINT23, Cambio del pin de de fuente de interrupcin 16: El pin PC0 puede
servir como una fuente de interrupcin externa.
PD3
PD2
PD1
PD0
OC1A, salida de punto de comparacin B: El pin PB4 puede servir como una
interrupcin externa del Timer/contador1 salida de comparacin B. El pin tiene
que ser configurado como (DDD4 uno). El pin OC1B es tambin el pin de salida
para la PWM Modo funcin Timer.
XCK1, USART1 Reloj externo. El registro de direccin de datos (DDD4) controla
si el reloj es salida (DD4 uno) o salida (DDD4 cero). El pin XCK4 es activado
solo cuando USART1 opera en modo sncrono.
PCINT28, Cambio del pin de de fuente de interrupcin 28: El pin PD4 puede
servir como una fuente de interrupcin externa.
INT1/TXD1/PCINT27 Port D, Bit 3
INT1, Fuente de Interrupcin Externa 1. El pin PD3 puede servir como una
fuente de interrupcin externa del MCU.
TXD1, Transmisin de Datos (Pin de Salida de Datos para el USART1). Cuando
la transmisin del USART1 es habilitada, este pin es configurado como salida
indiferentemente del valor de DDD3.
PCINT27, Cambio del pin de de fuente de interrupcin 27: El pin PD3 puede
servir como una fuente de interrupcin externa.
INT0/RXD1/PCINT26 Port D, Bit 2
INT0, Fuente de Interrupcin Externa 0. El pin PD2 puede servir como una
fuente de interrupcin externa del MCU.
RXD1, RXD0, Recepcin de Datos (Pin de Entrada de Datos para el USART1).
Cuando la transmisin del USART1 es habilitada, este pin es configurado como
salida indiferentemente del valor de DDD2. Cuando el USART fuerza este pin
seria una entrada, las pull up pueden ser controladas por el bit del PORTD2.
PCINT26, Cambio del pin de de fuente de interrupcin 26: El pin PD1 puede
servir como una fuente de interrupcin externa.
TXD0/PCINT25 Port D, Bit 1
TXD0, Transmisin de Datos (Pin de Salida de Datos para el USART0). Cuando
la transmisin del USART0 es habilitada, este pin es configurado como salida
indiferentemente del valor de DDD1.
PCINT25, Cambio del pin de de fuente de interrupcin 25: El pin PD1 puede
servir como una fuente de interrupcin externa.
Una interrupcin puede ser generada cada vez que el valor del contador llega al
mximo valor usando la bandera del OCF0A. Si la interrupcin es habilitada, la
rutina de interrupcin puede ser usada para actualizar el valor mximo. Sin
embargo, cambia de valor mximo a la direccin 0x00 cuando el contador est
corriendo sin ningn prescalador o con valores bajos de prescalador, el valor
debe ser tomado con cuidado ya que el modo CTC no tiene una caracterstica de
doble buffer. Si el nuevo valor escrito en OCR0A es ms bajo que el valor
corriente de TCNT0, el contador perder el punto de comparacin. El contador
entonces contar hasta su mximo valor (0xFF) y vuelve a empezar desde la
direccin 0x00 antes de que ocurra un punto de comparacin.
Para generar formas de ondas cuadradas a la salida en el Modo CTC, la salida
del OC0A puede estar en uno o invertido su valor lgico en cada punto de
comparacin por los bits del Modo Comparador de Salida (COM0A1:0 = 1). El
valor del OC0A no debe ser visible en los pines del prtico a menos que la
direccin del dato del pin de salida est en uno. La forma de Onda cuadrada
generada tendr una frecuencia mxima de fOC2A = fclk_I/O/2 cuando OCR0A
La variable N representa el factor del prescalador (1, 8, 32, 64, 128, 256, 1024).
En cuanto al modo Normal de operacin, la bandera del TOV2 es seteada en el
mismo ciclo del reloj del timer cuando el contador cuenta del mximo valor a la
direccin 0x00.
Modo de Rpida PWM
El modo de Rpida PWM (WGM02:0=3 o7) proporciona una opcin de
generacin de forma de onda PWM a alta frecuencia. La rpida PWM difiere de
otra opcin de PWM por la simple pendiente de operacin (diente de sierra). El
contador cuenta desde el 0x00 hasta el Tope luego inicia desde 0x00. El tope es
definido como 0xFF cuando WGM2:0 = 3, y OCR0A cuando WGM2:0 = 7. En
Modo de comparacin de salida no invertido, la salida de comparacin (OCOx)
es limpiada en el punto de comparacin entre TCNT0 y OCR0x, y pone en uno
a la direccin 0x00. En Modo de Comparacin de salida Invertida, la salida es
puesta en uno en el punto de comparacin y es limpiada en la direccin 0x00,
en simple pendiente de operacin, la frecuencia de operacin en modo rpida
PWM puede estar dos veces en alto como en el modo de fase correcta PWM
que usa doble pendiente de operacin (onda triangular). Esta alta frecuencia
hace que el modo Rpida PWM pueda ser usada para reguladores de voltaje,
rectificadores, y aplicaciones DAC. Para alta frecuencia se tiene fsicamente
pequeos tamaos de componentes externos (capacitores), y reduce el costo
total del sistema.
14.7.3 Diagrama de Tiempos en Modo Rpida PWM
La variable N representa el factor del prescalador (1, 8, 32, 64, 128, 256, or 1024).
Los valores extremos para el Registro OCR0A representan casos especiales
cuando genera una forma de onda cuadrada de salida PWM cuando est en
modo de fase correcta. Si el pin OCR0A es igual que el valor mnimo, la salida
estar continuamente en bajo y si es igual al valor mximo la salida
permanecer en alto para Modo no invertido de la PWM. Para la salida de la
PWM invertida se tendr valores de niveles lgicos opuestos.
En el inicio del segundo periodo de la figura anterior en OCnx se tiene una
transicin de alto a bajo siempre y cuando no este en Punto de Comparacin. El
punto de esta transicin es para garantizar simetra cerca del valor mnimo.
Existen dos casos para dar una transicin sin Punto De Comparacin.
1. Cuando el OCR0A cambia su valor mximo como en la figura anterior.
Cuando el valor del OCR0A es el mximo, el valor del pin OCn es igual
como resultado de la cuenta descendente en el Punto de Comparacin.
Para asegurar la simetra en la parte inferior el valor del OCn debe
corresponder al resultado de la cuenta ascendente en el punto de
Comparacin.
2. El timer empieza a contar desde un valor mas alto que el uno en el
OCR0A, y por esta razn se pierde el Punto de Comparacin y por lo
tanto el ONc cambia si hubiese contado ascendentemente.
TOP
Actualizaci
n OCRx
Bande
ra
TOV
0xFF
0xFF
Inmediato
TOP
CTC
Inmediato
3
4
5
0
1
1
1
0
0
1
0
1
Rpida PWM
Reservado
PWM, fase
correcta
OCR
A
0xFF
OCR
A
MAX
Parte
Inferio
r
MAX
6
7
1
1
1
1
0
1
reservado
Rpida, PWM
OCR
A
Botn
0
1
Botn
TOP
MAX
Parte
Inferio
r
TOP
NOTES:
1. MAX: 0xFF
2. Parte Inferior: 0x00
14.9.2 TCCR0B Registro de Control Timer/Contador B
es cambiada acorde los bits COM0A1:0 son puestos. Note que el bit FOC0A es
implementado como un estroboscopio.
Por consiguiente es el presente de valor en los bits COM0A1:0 que determina el
efecto de la comparacin forzada.
Una habilitacin del FOC0A no generar ninguna interrupcin, ni pondr en
uno el timer en el modo CTC usando OCR0A como TOPE. El bit FOC0A
siempre se lee como cero.
Bit 6 FOC0B: Comparacin Forzada a la salida B
El bit FOC0B solo se activa cuando los bits WGM son especificados como Modo
no PWM. Sin embargo, para asegurar la compatibilidad con futuros
dispositivos, este bit seria cero cuando TCCR0B es escrito cuando opera en
Modo PWM. Cuando se escribe uno lgico en el bit FOC0B, inmediatamente la
comparacin es forzada a la generacin de una forma de onda. La salida OC0B
es cambiada acorde los bits COM0A1:0 son puestos. Note que el bit FOC0B es
implementado como un estroboscopio.
Por consiguiente es el presente de valor en los bits COM0A1:0 que determina el
efecto de la comparacin forzada.
La habilitacin de FOC0B no generar ninguna interrupcin, ni pondr en uno
el timer en el modo CTC usando OCR0B como TOPE
El bit FOC0A siempre se lee como cero.
Bits 5:4 Res: Bits Reservados
Estos bits son reservados y siempre se leen como cero.
Bit 3 WGM02: Modo Generacin de Forma de Onda
Ver la descripcin en el TCCR0A- Timer /Contador Registro de Control A
Bits 2:0 CS02:0: Selector de Reloj
Los tres bits de seleccin de la fuente de reloj son usados por el
Timer/Contador.
Descripcin de los bits de seleccin del Reloj
CS02 CS01 CS00 Descripcin
0
0
0
Sin fuente de Reloj(Timer/Contador parados)
0
0
1
Clk I/O (Sin prescalador)
0
1
0
Clk I/O /8(Prescalador)
0
1
1
Clk I/O /64(Prescalador)
1
0
0
Clk I/O /256(Prescalador)
1
0
1
Clk I/O /1024(Prescalador)
1
1
0
Fuente de Reloj Externo pin T0. Reloj con flanco de bajada
1
1
1
Fuente de Reloj Externo pin T0. Reloj con flanco de subida
Si se usan los modos del pin para el Timer/Counter0, las transiciones en el pin
T0 contaran aun cuando el pin se configura como una salida. Esto permite el
mando del software del Contador.
14.9.3 TCNT0 Registro Timer/Contador
Una interrupcin puede ser generada cada vez que el valor del contador llega al
mximo valor usando la bandera del OCFnA o ICFn. Si la interrupcin es
habilitada, la rutina de interrupcin puede ser usada para actualizar el valor
mximo. Sin embargo, cambia de valor mximo a la direccin 0x0000 cuando el
contador est corriendo sin ningn prescalador o con valores bajos de
prescalador, el valor debe ser tomado con cuidado ya que el modo de CTC no
tiene una caracterstica de doble buffer. Si el nuevo valor escrito en el OCRnA o
muestra el modo de rpida PWM cuando OCRnA o ICRn es usada para definir
el Tope. El valor de TCNTn es mostrado en el diagrama de tiempos para
ilustracin del (single slope operation). El diagrama incluye la salida de PWM
invertida y no invertida. Una pequea lnea horizontal marca el TCNTn y
marca la comparacin entre OCRnx y TCNTn. La bandera de interrupcin
OCnx ser uno cuando llegue al punto de comparacin.
hecha al mismo tiempo que el tiempo del ciclo de reloj como TCNTn es
limpiada y la bandera TOVn es uno.
Usando el Registro ICRn por definicin del valor TOPE trabajara cuando se usa
un valor de arreglo al TOPE. Usando el registro ICRn, el registro OCRnA es
libre de ser usado para generar una PWM a la salida del OCnA. Si embargo si la
base de frecuencia de la PWM esta activando cambios (por cambios en el valor
TOPE), usando el OCRnA como TOPE es claramente mejor escoger dos buffer.
En modo de rpida PWM, la comparacin unitaria permite la generacin de
formas de onda PWM en los pines OCnx. Configurando los bits COMnx1:0 a
dos producira una PWM no invertida y una PWM invertida a la salida.
El valor actual del OCnx no debe ser visible en los pines del prtico a menos
que la direccin del dato del pin de salida est en uno. La forma de Onda
cuadrada por el registro OCnx en el punto de comparacin entre OCRnx y
TCNTn cuando ocurren incrementos. La frecuencia de la PWM en Modo de
Fase Correcta puede ser calculada por la siguiente ecuacin:
modo (dual-slope) PWM, estos tres modos son preferidos para aplicacin de
control de motores.
La resolucin PWM para el modo de fase correcta puede ser arreglada a 8-, 9-,
o 10-bit, o definida por ICRn o OCRnA. La mnima resolucin es 2 bits (ICRn o
OCRnA con uno en
0x0003), y la mxima resolucin es 16 bits (ICRn o OCRnA en uno en la
direccin MAX 0xFFFF). La resolucin PWM en bits puede ser calculada
usando la siguiente ecuacin:
Note que cuando se usan los valores de los arreglos en el TOPE, El no uso de
los bits son mascaras de cero cuando cualquiera de los registros OCRnx son
escritos. Como en el tercer periodo ilustrado en la figura, cargando activamente
el TOPE mientras el Timer/counter esta corriendo en modo de fase correcta
puede resultar en una salida antisimtrica. La razn para que esto pueda ser
encontrado a la vez que es actualizado el registro OCRnx. Desde que la
actualizacin OCRnx ocurre en el TOPE, el periodo PWM comienza y termina
al final del valor TOPE. Esto implica que la longitud de la pendiente negativa es
determinada por el previo valor TOPE, mientras la longitud de la pendiente
positiva es determinada por el nuevo valor TOPE. Cuando estos dos valores
difieren de las dos pendientes del periodo diferirn en longitud. La diferencia
en longitud da un resultado antisimtrico a la salida.
Esto es recomendable al usar el modo de fase y frecuencia correcta en
comparacin del modo de fase correcta cuando se carga el valor TOPE mientras
el Timer/Counter esta corriendo. Cuando usamos un valor constante el valor
TOPE prcticamente no hay diferencias entre los dos modos de operacin. En
modo de fase correcta PWM, la comparacin permite la generacin de formas
de onda PWM en los pines OCnx. Configurando los bits COMnx1:0 a dos se
producira una salida invertida de PWM y una no invertida PWM puede ser
generada por la configuracin de COMnx1:0 a tres. El valor actual de OCnx
solo seria visible en el pin del prtico si la direccin del dato para el pin del
prtico es uno como la salida (DDR_OCnx). La forma de onda PWM generada
por configuracin (o limpiando) el registro OCnx en el punto de comparacin
entre OCRnx y TCNTn cuando el contador incrementa, y limpiando (o
poniendo en uno) el registro OCnx al punto de comparacin entre OCRnx y
TCNTn cuando el contador decrementa. La frecuencia PWM para la salida
cuando se usa frecuencia correcta PWM puede ser calcula por la siguiente
ecuacin:
Mo
do
WG
Mn3
WG
Mn2
(CTC
n)
WGM WGM
n1
n0
(PWM (PWM
n1)
n0)
10
11
12
13
14
15
Modo de
Operacin
Timer/Con
tador
TOP
Normal
0xFF
FF
PWM, Fase 0x00
Correcta, 8 FF
bits
PWM, Fase 0x01
Correcta, 9 FF
bits
PWM, Fase 0x03
Correcta,
FF
10 bits
CTC
OCR
nA
Rpida
0x00
PWM, 8
FF
bits
Rpida
0x01
PWM, 9
FF
bits
Rpida
0x03
PWM, 10
FF
bits
PWM, Fase ICRn
y
Frecuencia
Correcta
PWM, Fase OCR
y
nA
Frecuencia
Correcta
PWM, Fase ICRn
y Correcta
PWM, Fase OCR
y Correcta nA
CTC
ICRn
(Reservado )
Rpida
ICRn
PWM
Rpida
OCR
Actualiza Encen
cin
der
OCRnX bande
ra
TOVn
Inmediat 0xFF
o
TOP
0X00
TOP
0X00
TOP
0X00
Inmediat
o
0X00
0xFF
0X00
TOP
0X00
TOP
0X00
0X00
0X00
0X00
TOP
0X00
TOP
0x00
Inmediat
o
-
0xFF
0x00
TOP
0x00
TOP
TOP
PWM
nA
La bandera TOV2 en este caso se comporta como un noveno bit, excepto que
est
solo en uno. Sin embargo, combinado con la interrupcin de
desbordamiento del timer que automticamente limpia la bandera TOV2, la
resolucin del timer puede incrementarse por software. No hay casos especiales
a considerar en el Modo Normal, el valor del nuevo contador puede ser escrito
a cualquier instante.
La salida de comparacin unitaria puede ser usada para generar interrupciones
en algn tiempo dado. Usar la salida de comparacin para generar Formas de
Onda en modo Normal no es recomendada, ya que ocupa mucho tiempo en el
CPU.
Una interrupcin puede ser generada cada vez que el valor del contador llega al
mximo valor usando la bandera del OCF2A. Si la interrupcin es habilitada, la
rutina de interrupcin puede ser usada para actualizar el valor mximo. Sin
embargo, cambia de valor mximo a la direccin 0x00 cuando el contador est
corriendo sin ningn prescalador o con valores bajos de prescalador, el valor
debe ser tomado con cuidado ya que el modo de CTC no tiene una caracterstica
de doble buffer. Si el nuevo valor escrito en el OCR2A es ms bajo que el valor
corriente del TCNT2, el contador perder el punto de comparacin. El contador
entonces contar hasta su mximo valor (0xFF) y vuelve a empezar desde la
direccin 0x00 antes de que ocurra un punto de comparacin.
La variable N representa el factor del prescalador (1, 8, 32, 64, 128, 256, o 1024).
En cuanto al modo Normal de operacin, la bandera del TOV2 es seteada en el
mismo ciclo del reloj del timer cuando el contador cuenta del mximo valor a la
direccin 0x00.
16.7.3 Modo de Rpida PWM
El modo de Rpida PWM (WGM02:0=3 o7) proporciona una opcin de
generacin de forma de onda PWM a alta frecuencia. La rpida PWM difiere de
otra opcin de PWM por la simple pendiente de operacin (diente de sierra). El
contador cuenta desde el 0x00 hasta el Tope luego inicia desde 0x00. El tope es
definido como 0xFF cuando WGM2:0 = 3, y OCR0A cuando WGM2:0 = 7. En
Modo de comparacin de salida no invertido, la salida de comparacin (OCOx)
es limpiada en el punto de comparacin entre TCNT0 y OCR0x, y pone en uno
a la direccin 0x00. En Modo de Comparacin de salida Invertida, la salida es
puesta en uno en el punto de comparacin y es limpiada en la direccin 0x00,
en simple pendiente de operacin, la frecuencia de operacin en modo rpida
PWM puede estar dos veces en alto como en el modo de fase correcta PWM
que usa doble pendiente de operacin (onda triangular). Esta alta frecuencia
hace que el modo Rpida PWM pueda ser usada para reguladores de voltaje,
rectificadores, y aplicaciones DAC. Para alta frecuencia se tiene fsicamente
pequeos tamaos de componentes externos (capacitores), y reduce el costo
total del sistema.
La variable N representa el factor del prescalador (1, 8, 32, 64, 128, 256, o 1024).
Los valores extremos para el Registro OCR2A representa casos especiales
cuando genera una forma de onda cuadrada de salida PWM cuando est en
modo de fase correcta. Si el pin OCR2A es igual que el valor mnimo, la salida
estar continuamente en bajo y si es igual al valor mximo la salida
permanecer en alto para Modo no invertido de la PWM. Para la salida de la
PWM invertida se tendr valores de niveles lgicos opuestos.
En el inicio del segundo periodo de la figura anterior en OCnx se tiene una
transicin de alto a bajo siempre y cuando no este en Punto de Comparacin. El
punto de esta transicin es para garantizar simetra cerca del valor mnimo.
Existen dos casos para dar una transicin sin Punto De Comparacin.
Cuando el OCR2A cambia su valor mximo como en la figura anterior. Cuando
el valor del OCR2A es el mximo, el valor del pin OCn es igual como resultado
de la cuenta descendente en el Punto de Comparacin. Para asegurar la simetra
en la parte inferior el valor del OCn debe corresponder al resultado de la cuenta
ascendente en el punto de Comparacin.
El timer empieza a contar desde un valor mas alto que el uno en el OCR2A, y
por esta razn se pierde el Punto de Comparacin y por lo tanto el ONc cambia
si hubiese contado ascendentemente.
16.11 DESCRIPCION DE REGISTROS
TCCR2A Timer/Counter Control Register A
Cuando el bit TOIE2 es puesto en uno y el bit I del Registro de estado est en
uno, la interrupcin para el desbordamiento del Timer/Counter2 es habilitada.
La interrupcin correspondiente es ejecutada si un desbordamiento en el
Timer/Counter2 ocurre, por ejemplo cuando el bit TOV2 est es uno en el
Registro de las Banderas de Interrupcin del Timer/Counter2 (TIFR2)
0
1
1
1
1
1
0
0
1
1
1
0
1
0
1
fosc/128
fosc/2
fosc/8
fosc/32
fosc/64
18. USART
18.1 Descripcin
Operacin simultnea bidireccional (Independiente Recepcin Serial y
Registros de Transmisin.
Operacin Asncrona o Sncrona
Reloj Maestro o Esclavo Operacin Sncrona.
Generador Proporcional Alta Resolucin en Baudios
Supports Serial Frames with 5, 6, 7, 8, or 9 Data Bits and 1 or 2 Stop Bits
Odd or Even Parity Generation and Parity Check Supported by Hardware
Data OverRun Detection
Framing Error Detection
Noise Filtering Includes False Start Bit Detection and Digital Low Pass Filter
Three Separate Interrupts on TX Complete, TX Data Register Empty and RX
Complete
Modo de Comunicacin Multi-Proceso
Descripcin de la Seal:
txclk Reloj de Transmisin (Seal Interna).
rxclk Reloj Receptor (Seal Interna).
xcki Entrada desde el pin XCK (Seal Interna). Usada para operacin Esclavo
sincrnica.
xcko Salida desde el pin XCK (Seal Interna). Usada para operacin Maestro
sincrnica.
fOSC Frecuencia del pin XTAL (Sistema de Reloj).
18.4.1 Generacin del Reloj Interno- Generador de Velocidad de transmisin
en Baudios
Generacin Interna de Reloj es usada por los modos de operacin Maestro
sncrono. La USART Registro de Velocidad de Baudios (UBRRn) y el contadorBajo conectados a esta funcin como prescalador programable del registro de
velocidad de Baudios. El contador-bajo, corriendo como sistema de reloj (fosc),
es cargado con el valor UBRRn cada vez que el contador ha contado
descendente hasta cero o cuando el Registro UBRRln es escrito. El reloj es
generado cada vez que el contador se hace cero. Este reloj es el generador de
velocidad de transmisin en Baudios a la salida (= fosc/(UBRRn+1)). La
transmisin divide el generador de velocidad de transmisin en Baudios a la
salida por 2, 8 o 16 dependiendo del modo. El generador de velocidad de
transmisin en Baudios a la salida es usada directamente por el reloj receptor y
las unidades de recuperacin de datos. Sin embargo, la recuperacin unitaria
usa la (state machine) que usa 2, 8 o 16 dependiendo del modo uno por la
condicin del los bits UMSELn, U2Xn yDDR_XCKn.
Ecuaciones para calcular la velocidad en baudios
El bit UCPOLn en UCRSC selecciona cual flanco de reloj XCKn es usada para
probar los datos y para cambiar los datos. Cuando UCPOLn es cero los datos
sern cambiados al flanco de subida XCKn y probados en el flanco de bajada
XCKn y probados en el flanco de subida XCKn.
18.5 Formato de Trama
La Trama serial es definida para ser una caracterstica de bits de datos con
sincronizacin de bits (Bits que enmiendan y terminan), y opcionalmente la
paridad del bit para chequear errores. USART acepta en total 30 combinaciones
de los siguientes formatos de trama:
1bit empieza
5, 6, 7, 8 o 9 bits de datos
bit de paridad impar
1 o 2 bits de parade
La trama comienza con el bit de comienzo, seguido por el bit de dato menos
significativo. Luego el siguiente bit de dato, sube a un total de nueve, teniendo
xito, finalizando con el bit ms significante. Si es habilitado, la paridad del bit
es insertada despus de los bits de datos, antes de los bits de parada. Cuando
El noveno bit puede ser usado para indicar la direccin de la trama usando un
multi procesador en modo de comunicacin o por otro protocolo del manual
como para el ejemplo de sincronizacin.
La transmisin USART tiene dos banderas que indican estos estados: USART
Registro de Datos vaco (UDREn) y Transmisin completa (TXCn) Ambas
banderas pueden ser usadas para la generacin de interrupciones. La bandera
del Registro de Datos Vaco (UDREn) indica si la transmisin del buffer ha ledo
o recibido un nuevo dato. Este bit es uno cuando la transmisin del dato es
vaca, y cero cuando la transmisin del buffer contiene datos a ser transmitidos
que todava no han sido movidos en el registro Shift.
Para compatibilidad con futuros dispositivos, siempre escribir este bit con cero
cuando escribimos en el registro UCSRnA. Cuando en el Registro de
Interrupcin de Datos Vaco es habilitado en el bit (UDRIEn) en UCSRnB con
uno, el USART Registro de Interrupcin de Datos Vaco seria ejecutado como
UDREn con uno (las interrupciones globales tienen que ser habilitadas). UDREn
es limpiada por la escritura UDRn. Cuando en el dato de interrupcin es
manejada la transmisin es usada, la rutina del registro de datos de
Interrupcin vaco seria escrito con un nuevo dato a UDRn solamente al
limpiar UDREn o deshabilitar el registro de datos de interrupcin vaca, por
consiguiente la nueva interrupcin ocurrira una vez que la rutina de
interrupcin ha terminado.
El bit de la bandera de transmisin completa (TXCn) es uno cuando la trama
entera en la transmisin del registro Shift ha sido movida fuera y no hay un
nuevo dato actualmente presente en el buffer de transmisin.
El bit de la bandera TXCn es automticamente limpiada cuando se completa la
transmisin y la interrupcin es ejecutada, o puede ser limpiado escribiendo
uno en este bit. La bandera TXCn es usada en la interfase de comunicacin halfduplex (RS-485 estndar), donde en una aplicacin entrando en el modo de
recepcin y libre el bus de comunicacin inmediatamente despus de completar
la transmisin.
Cuando la transmisin es completada la interrupcin es usada, la rutina de
interrupcin del manual no debe tener cero en la bandera TXCn, esto es hecho
automticamente cuando la interrupcin es ejecutada.
18.7.4 Generador de Paridad
El generador de paridad calcula el bit de paridad para la trama de datos
seriales. Cuando el bit de paridad es habilitado (UPMn1 = 1), el control lgico
de transmisin inserta el bit de paridad entre el ltimo bit de dato y el primer
bit de paro de la trama que es enviada.
18.7.5 Deshabilitando la Transmisin
La desabilitacin de la transmisin (configurando el TXEN cero) no llegar
hacer efectivo hasta que las transmisiones pendientes sean completadas, cuando
la transmisin del Registro de Desplazamiento y la transmisin del Buffer
Register no contenga los datos ha ser transmitidos. Cuando deshabilitamos, la
transmisin no es excedida en el pin TxDn.
Otra igualdad para el error de bandera es que ellos no serian alterados por
software haciendo una escritura en la localidad de la bandera. Sin embargo,
todas las banderas serian puestas a cero cuando la UCSRnA es escrita hacia
arriba para compatibilidad de futuras implementaciones USART. Ninguna de
las banderas de error puede generar interrupciones.
La Bandera de Trama de Error (FEn) indica el estado del primer bit de parada
de la siguiente lectura de la trama almacenada en el buffer de recepcin. La
bandera FEn es cero cuando el bit de parada fue incorrecto (cero). Esta bandera
puede ser usada para detectar condiciones de falta de sincronizacin,
detectando condiciones de ruptura y protocolos del manual. La Bandera FEn no
es afectada por la configuracin del bit USBSn en UCSRnC desde la recepcin
ignora todo, excepto para el primer, bit de parada. Para compatibilidad con
futuros dispositivos, siempre poner este bit a cero cuando escribimos a
UCSRnA.
La bandera de desbordamiento de datos (DORn) indica la perdida de datos
debida a la condicin de buffer lleno. El desbordamiento de datos ocurre
cuando la recepcin del buffer esta llena (dos caracteres), esto es un nuevo
carcter esperando la recepcin del Registro de Desplazamiento, y un nuevo bit
de comienzo es detectado. Si la Bandera DORn es puesta fue uno o mas tramas
seriales prdidas entre la ultima trama leda desde UDRn, y la siguiente trama
leda desde UDRn. Para compatibilidad con futuros dispositivos, siempre
escribir este bit a cero cuando la lectura cuando se escribe en el UCSRnA. La
Cuando la recuperacin lgica del reloj detecta un alto (idle) o un bajo (Start) la
transicin en la lnea RxDn, el bit de comienzo detecta que una secuencia es
inicializada. La recuperacin lgica del reloj luego usa muestras de 8, 9, y 19
para modo Normal, y muestras de 4, 5, y 6 para modo de doble velocidad
(indicando como muestras los nmeros dentro del cuadro de la figura), para
decidir si un bit de de comienzo es receptado. Si dos o ms de estas tres
muestras tienen un alto nivel lgico (la mayora gana), el bit de inicio es vlido
como pico de ruido y la bsqueda para el inicio de la recepcin para siguiente
transicin en alto o en bajo. Sin embargo, el bit de inicio vlido es detectado, la
recuperacin lgica de reloj es sincronizada y la recuperacin del dato puede
comenzar. El proceso de sincronizacin es repetido para cada bit de inicio.
18.9.2 Recuperacin de datos Asincrnica
Cuando el reloj de recepcin es sincronizado al bit de inicio, la recuperacin del
dato puede comenzar. La unidad recuperadora de datos usa estados de
mquina para cada bit en modo Normal y ocho estados para cada bit en Modo
de Doble Velocidad. Cada una de las muestras es dada un nmero que es igual
al estado de la unidad de recuperacin.
D
Suma de tamao de caracteres y tamao de paridad (D = 5 a 10 bit)
S
Muestras por bit. S = 16 para modo de operacin normal y S = 8 para
modo de doble velocidad
SF
Primera numero de muestras usado para majority voting de. SF = 8 para
velocidad normal y SF = 4 para modo de Doble velocidad.
SM
Mitad del nmero de muestras usadas para majority voting . SM = 9
para velocidad normal
SM = 5 para modo de Doble velocidad.
Rslow
es el radio de la entrada de datos ms lenta que puede ser
aceptada en relacin a la velocidad de baudios receptada.
Rfast es el radio de la entrada de datos ms rpida que puede ser aceptada en
relacin a la velocidad de baudios receptada.
Recommended Maximum Receiver Baud Rate Error for Normal Speed Mode
(U2Xn = 0)
Recommended Maximum Receiver Baud Rate Error for Double Speed Mode
(U2Xn = 1)
valor de paridad para los datos internos y comparan esto en la habilitacin del
UPMn. Si un error es detectado, la bandera UPMn en UCSRnA seria habilitada.
Configuracin de bits del UPMn
BAUD
fOSC
UBRRn
Adicionalmente a diferencia del los bits del registro de control, y que solamente
la operacin en modo maestro es soportada por el USART en el modo MSPIM,
lo siguiente muestra la diferencia entre los dos mdulos:
El USART en modo MSPIM incluye (doble) buffer de transmisin. El SPI no
tiene buffer.
El USART en modo receptor MSPIM incluye un buffer adicional de nivel.
El bit SPI WCOL no esta incluido en el USART en el modo.
El SPI en modo de doble velocidad (SPI2X) bit no esta incluida. Sin embargo,
lo mismo afecta al almacenamiento por la configuracin del UBRRn acordada.
El tiempo de Interrupcin no es compatible.
El Pin de control difiere del maestro solo en la operacin del USART en modo
MSPIM.
una nueva transmisin sin abandonar el control del bus. Despus del Inicio
Repetitivo, el bus es considera basura hasta la siguiente parada. Esta conducta
es idntica al Inicio, y por consiguiente el Inicio es usado para describir ambos
Inicio e Inicio Repetitivo para la el resto de este manual. Las condiciones de
Inicio y Fin son sealadas por la carga del nivel de la lnea SDA cuando la lnea
SCL esta en alto.
puede reducir la transferencia de datos del TWI por prolongamiento del SCL
duty cycle.
Este es el uso del software responsable para asegurar que estas condiciones
arbitrarias ilegales nunca ocurrirn. Esto implica que en los sistemas multimaestros, todos los datos contendrn la misma composicin del SLA+R/W y
paquetes de datos.
20.5 Revision del modulo TWI
La siguiente seccin describe cada de estos modos. Estas figuras contienen las
siguientes abreviaciones:
S: condicin INICIO
Rs: condicin de INICIO REPETITIVO
R: Lectura de bits (alto nivel en SDA)
W: escritura de bits (bajo nivel en SDA)
A: bit desconocido (bajo nivel en SDA)
A: Bit desconocido (alto nivel en SDA)
Data: 8-bit de datos byte
P: condicin de PARADA
SLA: Direccin del esclavo
20.7.1 Modo Transmisor Maestro
En el modo Transmisor maestro, el nmero de bytes de datos son transmitidos
al Receptor Esclavo (Ver figura 20-11).Al entrar en modo Maestro, la condicin
de INICIO seria transmitida. El formato de los siguientes paquetes de
direcciones determinan si el modo de Transmisor Maestro o el Receptor
Maestro esta enterado. Todos los cdigos de estado mencionados en esta
seccin asumen que los bits del prescalador son cero y son mascaras a cero.
TWEN seria uno al ser habilitado la interfaz serial 2-hilos (2-wire), TWSTA seria
escrita a uno al transmitir la condicin de INICIO y TWINT seria escrita a uno
para limpiar las banderas del TWINT. El TWI luego probara el bus serial 2hilos y generar una condicin de INICIO tan pronto el bus llega a estar libre.
Despus que la condicin de INICIO ha sido transmitida, la bandera TWINT es
puesta por hardware, y el cdigo de estado en TWSR sera 0x08. Al entrar en el
modo MT, SLA+W sera transmitido. Esto es hecho escribiendo SLA+W a
TWDR. Luego el bit TWINT debera ser limpiado (por la escritura de uno) y
continuar la transferencia. Esto es completado por la escritura de los siguientes
valores en TWCR:
Despus de repetir la condicin de INICIO (estado 0x10) la interfaz serial 2hilos puede acceder al mismo tiempo a Esclavo nuevamente, o el nuevo esclavo
sin la condicin de la transmisin de PARADA. Habilitando repetitivamente el
INICIO el Maestro cambie entre los modos de Esclavo, Transmisor Maestro y
Receptor maestro sin perder el control del bus.
TWEN seria uno al ser habilitado la interfaz serial 2-hilos (2-wire), TWSTA seria
escrita a uno al transmitir la condicin de INICIO y TWINT seria escrita a uno
para limpiar las banderas del TWINT. El TWI luego probara el bus serial 2hilos y generar una condicin de INICIO tan pronto el bus llega a estar libre.
Despus que la condicin de INICIO ha sido transmitida, la bandera TWINT es
puesta por hardware, y el cdigo de estado en TWSR sera 0x08. Al entrar en el
modo MT, SLA+R sera transmitido. Esto es hecho escribiendo SLA+R a TWDR.
Luego el bit TWINT debera ser limpiado (por la escritura de uno) y continuar
la transferencia. Esto es completado por la escritura de los siguientes valores en
TWCR:
Despus de repetir la condicin de INICIO (estado 0x10) la interfaz serial 2hilos puede acceder al mismo tiempo a Esclavo nuevamente, o el nuevo esclavo
sin la condicin de la transmisin de PARADA. Habilitando repetitivamente el
INICIO el Maestro cambie entre los modos de Esclavo, Transmisor Maestro y
Receptor maestro sin perder el control del bus.
Los 7 bits superior son direccionados para cambiar a la interfaz Serial 2-hilos
respondern cuando sea direccionado por el maestro. Si el LSB es uno, el TWI
responder a la direccin de llamada general (0x00) caso contrario esto ignorar
la llamada de direccionamiento general.
TWEN sera escrito a uno al habilitar el TWI. El bit TWEA seria escrito a uno al
habilitar el reconocimiento de los propios dispositivos direccionado como
esclavos o direcciones de llamada general. TWSTA y TWSTO seran escritos a
cero. Cuando TWAR y TWCR han sido inicializadas, el TWI espera hasta este
direccionamiento por sus propios direcciones de esclavo (o si estn habilitadas
las direcciones de llamadas generales) seguido por el bit de direccin de datos.
Si el bit de direccin es 0, el TWI operar en modo SR. Despus la propia
direccin del esclavo y el bit de escritura ha sido recibida, la bandera TWINT es
uno y el cdigo de estado vlido puede ser ledo desde TWSR. El cdigo de
estado es usado para determinar la accin de software adecuado. La accin
apropiada puede ser tomada para cada cdigo de estado en la Tabla 20-4- El
modo de receptor Esclavo puede tambin ser entera si arbitrariamente es
perdida mientras el TWI esta en el modo Maestro (ver los estados 0x68 y 0x78)
Si el bit TWEA es reset durante la transferencia, el TWI retornara a No
reconocido (1) a SDA despus del siguiente byte de datos recibido. Esto puede
ser usado para indicar que el esclavo no es capaz de recibir ms bytes. Mientras
TWEA es cero, el TWI no reconoce su propia direccin de esclavo. Sin embargo,
el bus Serial 2-hilos esta todava monitoreado y resumiendo direcciones puede
resumir a cualquier tiempo por la configuracin TWEA. Esto implica que el bit
TWEA puede ser usado temporalmente aislando el TWI del Bus Serial de 2hilos.
En modo sleep o modos Idle, el sistema de reloj del TWI es apagado y el bit
TWEA es uno, la interfase puede todava reconocer su propia direccin de
esclavo o la direccin de llamada general usando el bus de reloj serial de 2-hilos
como fuente de reloj.
La parte luego despierta desde el modo sleep y el TWI sostendra el reloj en
bajo del SCL durante el despertado y despus la bandera TWINT es limpiada
(por la escritura de uno). Mas all de la recepcin de datos seria cargada como
normal, con el reloj del AVR corriendo como normal. Observe que si el AVR
esta configurado con un prolongado tiempo de inicio, la lnea SCL puede ser
sostenido en bajo para un periodo largo, bloqueando otras transmisiones de
datos. Note que el registro de datos para interfase seria de 2-hilos TWDR no
reflejara el ultimo byte presente en el bus cuando despierta des de el modo
sleep.
Los 7 bits superior son direccionados para cambiar a la interfaz Serial 2-hilos
respondern cuando sea direccionado por el maestro. Si el LSB es uno, el TWI
responder a la direccin de llamada general (0x00) caso contrario esto ignorar
la llamada de direccionamiento general.
TWEN sera escrito a uno al habilitar el TWI. El bit TWEA seria escrito a uno al
habilitar el reconocimiento de los propios dispositivos direccionado como
esclavos o direcciones de llamada general. TWSTA y TWSTO seran escritos a
cero. Cuando TWAR y TWCR han sido inicializadas, el TWI espera hasta este
direccionamiento por sus propios direcciones de esclavo (o si estn habilitadas
las direcciones de llamadas generales) seguido por el bit de direccin de datos.
Si el bit de direccin es 1, el TWI operar en modo ST. Despus la propia
direccin del esclavo y el bit de escritura ha sido recibida, la bandera TWINT es
uno y el cdigo de estado vlido puede ser ledo desde TWSR. El cdigo de
estado es usado para determinar la accin de software adecuado. La accin
apropiada puede ser tomada para cada cdigo de estado en la Tabla 20-5- El
modo de transmisor Esclavo puede tambin ser entera si arbitrariamente es
perdida mientras el TWI esta en el modo Maestro (ver los estados 0xB0).
Si el bit TWEA es escrito a cero durante la transferencia, el TWI transmitira el
ltimo byte de la transferencia. El estado 0xC0 o 0xC8 seria entero,
dependiendo se el receptor maestro trasmite a NACK o ACK despus del byte
final. El TWI es cambiado al no direccionar en modo esclavo, e ignorara el
Maestro si esto contina la transferencia. En verdad el Receptor Maestro recibe
todos 1 como datos seriales. El estado 0xC8 es entero si el maestro demanda
bytes de datos adicionales (por transmisin ACK), Aunque el Esclavo ha
transmitido el ultimo byte (TWEA cero y esperando NACK desde el Maestro).
Mientras TWEA es cero el TWI no responde a la direccin del propio Esclavo.
Sin Embargo, el bus serial de 2-hilos es todava monitoreado y el
reconocimiento de direccin puede reasumir cuando quiera configurando el
TWEA. Esto implica que el bit TWEA puede ser usado temporalmente aislando
el TWI desde el bus serial de 2-hilos. En modo sleep o modos Idle, el sistema de
reloj del TWI es apagado y el bit TWEA es uno, la interfase puede todava
reconocer su propia direccin de esclavo o la direccin de llamada general
usando el bus de reloj serial de 2-hilos como fuente de reloj.
La parte luego despierta desde el modo sleep y el TWI sostendra el reloj en
bajo del SCL durante el despertado y despus la bandera TWINT es limpiada
(por la escritura de uno). Mas all de la recepcin de datos seria cargada como
normal, con el reloj del AVR corriendo como normal. Observe que si el AVR
esta configurado con un prolongado tiempo de inicio, la lnea SCL puede ser
sostenido en bajo para un periodo largo, bloqueando otras transmisiones de
datos. Note que el registro de datos para interfase seria de 2-hilos TWDR no
El TWCR es usado para el control de la operacin del TWI. Esto es usado para
habilitar el TWI, al iniciar el acceso al Maestro aplicando la condicin de
INICIO al bus, al generar el reconocimiento del Receptor, al generar una
condicin de parada, y al detener el control del bus mientras el dato es escroto
al bus escribiendo al TWRD. Esto tambin indica la colisin de escritura al
TWRD mientras el registro es inaccesible.
Bit 7 TWINT: Bandera de Interrupcin del TWI
Este bit es habilitado por hardware cuando el TWI ha finalizado esto actualiza
el trabajo y espera la respuesta de la aplicacin por software. Si el bit-I en el
SREG y TWIE en TWCR son habilitadas, el MCU saltara al vector de
El TWAR debera ser localizado con el 7-bit Esclavo direccionado (en el sptimo
bit ms significativo) con lo cual es TWI respondera cuando programamos
como Transmisor Esclavo o Receptor, y no necesita los modos Maestros. En
sistemas multimaestros, TWAR seria habilitado como Maestro con lo cual
puede ser direccionado como Esclavo por otros Maestros.
El LSB de TWAE es usado para habilitar el reconocimiento del llamado de
direcciones general (0x00). Existen unas direcciones asociadas comparadoras
que observan por la direccin del Esclavo (o direcciones de llamado general
habilitadas) en la recepcin serial de direcciones.
.
Bits 7:1 TWA: Registro de direcciones del TWI (Esclavo)
Estos siete bits constituyen la direccin Esclavo de la unidad TWI.
ADTS1
0
0
1
1
0
0
1
1
ADTS0
0
1
0
1
0
1
0
1
Fuente de Disparo
Modo Simple Conversin (Free Running)
Comparador Analgico
Interrupcin Externa
Timer/Contador 0 Punto de Comparacin
Timer/ Contador 0 Desbordamiento
Timer/ Contador 1 Punto de Comparacin B
Timer/ Contador 1 Desbordamiento
Timer/ Contador 1 Capture Event
The ID-Register, Bypass Register, and the Boundary-scan Chain are the Data
Registers used
.
23.3 TAP Test Access Port
La interfase JTAG es accedida a travs de cuatro pines del AVR. En la
terminologa JTAG, estos pines constituyen el Test Access Port-TAP. Estos pines
son:
TMS: Test mode select. Este pin es usado para la navegacin a travs del
estado de mquina del controlador TAP.
TCK: Test Clock. Operacin JTAG es sincronizada con TCK.
TDI: Test Data In. Entrada de Datos serial a ser desplazada en el Registro de
Instrucciones o Registro de Datos (Scan Chains).
TDO: Test Data Out. Salida de Datos Serial desde el Registro de Instrucciones
o Registro de Datos.
El IEEE std. 1149.1 tambin especifica una seal opcional TAP; TRST -Test
ReSeT lo cual no esta provisto.
Cuando el Fusible JTAGEN no es programado, estos cuatro pines TAP son
pines de protico, y el controlador TAP est en Reset. Cuando es programado,
las seales de entrada TAP son pulled high internas y el JTAG es habilitado por
Boundary-scan y programandolo. El dispositivo es desplazado con los fusibles
programados. Para el On-chip Debug system, adicionalmente los pines de
interfase JTAG, el pin RESET es monitoreado por el depurador que es capaza de
detectar fuentes de reset externas. El depurador puede tambin pull low al pin
a reset al sistema entero, asumiendo solo colector abierto en la lnea reset
son usados en la aplicacin.
Un compilador, como el AVR studio, debe sin embargo usar uno o ms de estos
recursos para propsitos internos, permitiendo menos flexiblidad al usuario
final.
Una lista del On-chip debug de las instrucciones especficas del JTAG es dada
en On-chip Debug Specific JTAG Instructions en la pgina 264 del data sheet.
El fusible JTAGEN debera ser programado para habilitar el Prtico de Acceso
de Prueba del JTAG. En suma, el fusible OCDEN debe ser programado y los
bits de Bloqueo no debera ser puestos en uno para el sistema de trabajo Onchip debug. Como un sistema de seguridad, el sistema On.chip debug es
deshabilitado cuando los bits de bloqueo LB1 o LB2 son peuestos en uno.
Adems, el sistema On-chip debug debera estar provisto de un back-door
dentro del dispositivo.
El AVR estudio permite al usuario un control total en la ejecucin de los
programas en el dispositivo AVR con la capacidad del On-chip debug, AVR InCircuit Emulator, or the built-in AVR Instruction Set Simulator.
La fuente de soporte del AVR estudio ejecuta programas en nivel ensamblador
con Atmel Corporations AVR Assembler and C programs compiled with third
party vendors compilers.
AVR estudio funciona con Microsoft Windows 95/98/2000 y Microsoft
Windows NT.
Para una descripcin total del AVR estudio, por favor refierase a la Gua de
Usuario del AVR estudio.
Todos los comandos de ejecucin estn presentes en el AVR estudio. El usuario
puede ejecutar el programa, con pasos simples a travs de cdigos
The user can execute the program, single step through the code either by
tracing into or stepping over functions, step out of functions, place the cursor
on a statement and
execute until the statement is reached, stop the execution, and reset the
execution target. In
addition, the user can have an unlimited number of code Break Points (using
the BREAK
instruction) and up to two data memory Break Points, alternatively combined
as a mask (range)
Break Point.
23.7 On-chip Debug Specific JTAG Instructions
The On-chip debug support is considered being private JTAG instructions, and
distributed within
ATMEL and to selected third party vendors only. Instruction opcodes are listed
for reference.
23.7.1 PRIVATE0; 0x8
Private JTAG instruction for accessing On-chip debug system.
23.7.2 PRIVATE1; 0x9
Private JTAG instruction for accessing On-chip debug system.
23.7.3 PRIVATE2; 0xA
Private JTAG instruction for accessing On-chip debug system.
23.7.4 PRIVATE3; 0xB
Private JTAG instruction for accessing On-chip debug system.
23.8 Using the JTAG Programming Capabilities
Programming of AVR parts via JTAG is performed via the 4-pin JTAG port,
TCK, TMS, TDI, and
TDO. These are the only pins that need to be controlled/observed to perform
JTAG programming
(in addition to power pins). It is not required to apply 12V externally. The
JTAGEN Fuse
must be programmed and the JTD bit in the MCUCR Register must be cleared
to enable the
JTAG Test Access Port.
The JTAG programming capability supports:
Flash programming and verifying.
EEPROM programming and verifying.
Fuse programming and verifying.
Lock bit programming and verifying.
The Lock bit security is exactly as in parallel programming mode. If the Lock
bits LB1 or LB2 are
programmed, the OCDEN Fuse cannot be programmed unless first doing a
chip erase. This is a
security feature that ensures no back-door exists for reading out the content of a
secured
device.
The details on programming through the JTAG interface and programming
specific JTAG
instructions are given in the section Programming via the JTAG Interface on
page 312.
23.9 Bibliography
For more information about general Boundary-scan, the following literature can
be consulted:
IEEE: IEEE Std. 1149.1-1990. IEEE Standard Test Access Port and Boundaryscan
Architecture, IEEE, 1993.
Colin Maunder: The Board Designers Guide to Testable Logic Circuits,
Addison-Wesley, 1992.
Versin
Es el nmero del 4-bit que identifica la revisin del componente. El nmero de
la versin del JTAG sigue la revisin del dispositivo. Revisin A es 0x0, revisin
B es 0x1.
Nmero de Parte
Son cdigos de 16-bits que identifican el componente. El nmero de parte del
JTAG para el
ATmega164P/324P/644P es listado en la Tabla 26-6 en la pgina 296 del
Datasheet.
ID del Fabricante
Son cdigos de 11-bits que identifican el fabricante. EL ID de fabricante del
JTAG para ATMEL es listado en la Tabla 26-6 en la pgina 296.
Registro Reset
El Registro Reset es un Registro de Datos de Prueba usado para restablecer la
parte. Desde los pines del Prtico de 3-estados cuando es reseteado, el Registro
Reset puede tambin reemplazar la funcin de la opcin no implementada de la
instruccin HIGHZ en el JTAG. Un valor en alto del Registro Reset corresponde
a pulling the external Reset low.
La parte es reseteada con tal que exista un valor en alto presente en el Registro
de Datos. Dependiendo de la configuracin de los fusibles para las opciones de
reloj, la parte permanecer reseteada por el reset en periodo de tiempo fuera
despus de dejar el Registro Reset. La salidas desde el Registro de Datos no es
habilitada, tambin el reset tomar lugar inmediatamente, como se muestra en
la Figura 24-2.
24.3.3
Boundary-scan Chain
The Boundary-scan Chain tiene la capacidad de controlar y observar los niveles
lgicos en los pines digitales de E/S, as como el lmite entre digital y lgico
analgico para circuitos analgicos teniendo conexiones off-chip. Para una
completa descripcin ver la pagina 269.
24.3.4
EXTEST; 0x0
Obligatoriamente las instrucciones JTAG para seleccionar el Boundary-scan
Chain como Registro de Datos para probar los circuitos externos en los
paquetes del AVR. Para pines del prtico, Pull-up Deshabilitadas, Control de
Salidas, Datos de Salida, y entrada de Datos son todas accesibles en la revisin
en cadena. Para circuitos Analgico teniendo conexiones off-chip, la interfase
entre el analgico y el lgico digital es la cadena de revisin. Los contenidos de
las habilitaciones de salida del Boundary-scan chain es manejada a la salida as
como el registro IR del JTAG es cargado con la instruccin EXTEST.
Los estados activos son:
Captura DR: Datos en los pines externos son probados en el Boundary-scan
Chain.
Desplazamiento DR: La cadena de revisin interna es desplazada por la
entrada del TCK.
Actualizacin DR: Datos desde la cadena de revisin es aplicada a los pines
de salida.
24.4.1
IDCODE; 0x1
Instruccin opcional del JTAG seleccionando los 32 bits del Registro ID como
Registro de Datos. El registro ID consiste de un numero de versin, un nmero
de dispositivo y un cdigo de fabricante escogidos por JEDEC. Esta es la
instruccin por defecto despus del encendido.
Los estados activos son:
Captura DR: Datos en el Registro IDCODE es probado en el Boundary-scan
Chain.
Desplazamiento DR: El IDCODE revisa si la cadena es desplazada por la
entrada TCK.
24.4.2
SAMPLE_PRELOAD; 0x2
Obligatoriamente las instrucciones del JTAG para pre-carga a la habilitacin de
salida y tomando instantneo de los pines de entrada/salida sin afectar la
operacin del sistema. Sin embargo, la habilitacion de salida no es conectada a
los pines. El Boundary-scan Chain es seleccionado como Registro de Datos.
24.4.3
BYPASS; 0xF
Obligatoriamente las instrucciones JTAG seleccionan el Registro de desviacin
para el registro de datos.
Los estados de activacin son:
Captura DR: cargando 0 lgico en el Registro de Desviacin.
Desplazamiento DR: El Registro de Desviacin clula entre TDI y TDO es
desplazado.
24.4.5
Las funciones alternativas del prtico digital son conectadas fuera de la caja
punteada en la Figura 24-4 para hacer la lectura de verificacin encadena en el
valor actual del pin. Para funciones Analgicas, esto es conectado directamente
desde el pin externo del circuito analgico. No hay revisin en cadena en la
interfase entre lo digital y el circuito analgico, pero algunas seales de
controles digitales a circuitos analgicos son apagadas para evitar la disputa
del manejo en los pads.
Cuando el JTAG IR contiene EXTEST o SAMPLE_PRELOAD el reloj no enva
hacia fuera de los pines del prtico si el fusible CKOUT es programado. Incluso
a travs del reloj es salida cuando el JTAG IR contiene SAMPLE_PRELOAD, el
reloj no es probado por el boundary scan.
Si los bits 50 son limpiados (cero), el correspondiente bit Boot Lock sera
programado si la instruccin SPM es ejecutada dentro de cuatro ciclos de reloj
despus BLBSET y SPMEN son puestos en uno a SPMCSR. El puntero Z no
tiene cuidado durante esta operacin, pero para futura compatibilidad esto es
recomendado para cargar al puntero Z con 0x0001 (lo mismo es usado para
lectura de los bits IOck). Fa futura compatibilidad es recomendado poner en
uno los bits 7 y 6 en R0 cuando se esta escribiendo en los bits de bloqueo.
Cuando se programa los bits de bloqueo la Flash puede leer durante la
operacin.
25.8.8 EEPROM Write Prevents Writing to SPMCSR
El algoritmo para lectura del byte bajo del fusibles es similar a uno descrito para
lectura de los bits de bloqueo. Para leer el byte bajo del fusible, cargar el
puntero Z con 0x0000 y poner en uno los bits BLBSET y SPEM en SPMCSR.
Cuando la instruccin (E) LPM es ejecutada dentro de tres ciclos despus los
bits BLBSET y SPMEN son puestos en uno en SPMCSR, el valor del byte bajo de
los Fusibles (FLB) sera cargado en el registro de destino como se muestra a
continuacin:
Similarmente, cuando se lee el byte alto del Fusible, cargar 0x0003 en el puntero
Z. Cuando la instruccin (E) LPM es ejecutada dentro de tres ciclos despus que
los bits BLBSET y SPEM son puestos en uno en SPMCSR, el valor del byte alto
del Fusible (FHB) sera cargado en el registro de destino como se muestra a
continuacin:
Si el Fusible y los bits de bloqueo son programados, seran ledos como cero. Si
los bits de Fusible y Bloqueo no son programados serian ledos como uno.
25.8.10 Leyendo la Fila de Firma por Software
Para leer la Fila de Firma por software, Cargar el puntero Z con la direccin del
byte de firma dado en la Tabla 25-5 y poner en uno los bits SIGRD y SPMEN en
SPMCSR. Cuando una instruccin LPM es ejecutada dentro de tres ciclos CPU
despus los bits SIGRD y SPMEN son puestos en uno en SPMCSR, el valor del
byte de firma sera cargado en el registro de destino. Los bits SIGRD y SPMEN
auto programara por completo la lectura de los bits de bloqueo de fila de firma
o si la instruccin LPM es ejecutada dentro de tres ciclos CPU. Cuando SIGRD y
SPMEN son limpiados, LPM trabajara como se describe en la habilitacin de
instrucciones del manual.
Cuando el bit RWWSB es uno, la seccin RWW no puede ser accedida. El bit
RWWSB sera limpiado si el bit RWWSRE es escrito a uno despus de que la
operacin de auto programacin es completada. Alternativamente el bit
RWWSB automticamente sera limpiado si la operacin cargar pgina es
inicializada.
Bit 5 SIGRD: Lectura de la Fila de Firma
Si este bit es escrito a uno al mismo tiempo que SPMEN, la siguiente instruccin
LPM dentro de tres ciclos de reloj leera el byte desde la fila de firma en el
registro de destino. Las instrucciones LPM dentro de cuatro ciclos de mquina
despus SIGRD y SPMEN son puestos en uno y no tendran efecto. Esta
operacin es reservada para usos futuros y no debera ser usada.
Bit 4 RWWSRE: Read-While-Write Section Read Enable
Cuando la operacin de auto programacin (Borrado de Pgina o escritura de
Pgina) en la seccin RWW, la seccin RWW es bloqueada para la lectura
(RWWSB sera puesto en uno por hardware). Para re-habilitar la seccin RWW,
el software del usuario esperara hasta que la programacin sea completada
(SPMEN sera limpiado). Luego, si el bit RWWWSRE es escrito a uno al mismo
tiempo que SPMEN, la siguiente instruccin dentro de cuatro ciclos de reloj rehabilita la seccin RWW. La seccin RWW no podra ser re-habilitada mientras
la flash esta ocupada con el Borrado de Pgina o Escritura de Pagina (SPMEN es
uno). Si el bit RWWSRE es escrito mientras la Flash est siendo cargada, la
operacin de cargar la Flash abordara y el dato cargado sera perdido.
Bit 3 BLBSET: Poner en uno el Bit del Boot Lock Bit Set
Si este bit es escrito con uno al mismo tiempo que SPMEN, la siguiente
instruccin SPM dentro de cuatro ciclos de reloj pone en uno los bits Boot Lock,
de acuerdo con el dato en R0. El dato en R1 y la direccin en el puntero Z son
ignoradas. El bit BLSET automticamente sera limpiado por completo del bit
en uno del Lock, o si no la instruccin SPM es ejecutada dentro de cuatro ciclos
de reloj. Cuando la instruccin (E) LPM dentro de tres ciclos despus BLBSET y
SPMEN son puestos en uno en el Registro SPMCSR, leer los bits Bloqueados o
los bits del Fusible (dependiendo en Z0 en el puntero-Z) en el registro de
destino.
Bit 2 PGWRT: Escritura de Pgina
Si este bit es escrito a uno al mismo tiempo que SPMEN, la siguiente instruccin
dentro de cuatro ciclos de reloj ejecutan la escritura de pgina, con el dato
almacenado en el buffer temporal. La direccin de pgina es tomada desde la
parte alta del puntero-Z. el dato en R1 y R0 son ignorados. El bit PGWRT autolimpiara completamente la pgina de escritura, o si no la instruccin SPM es
ejecuta dentro de cuatro ciclos de reloj. La CPU es detenida durante la
operacin de escritura de pgina si la seccin NRWW es direccionada.
Bit 1 PGERS: Borrado de Pgina
Si este bit es escrito a uno al mismo tiempo que SPMEN, la siguiente instruccin
dentro de cuatro ciclos de reloj ejecutan el borrado de pgina. La direccin de
pgina es tomada desde la parte alta del puntero-Z. El dato en R1 y R0 son
ignorados. El bit PGERS auto-limpiara completamente el borrado de pgina, o
si no la instruccin SPM es ejecuta dentro de cuatro ciclos de reloj. La CPU es
detenida durante la operacin de borrado de pgina si la seccin NRWW es
direccionada.
Habilitacin de Fusibles
Los valores de los fusibles son habilitados cuando los dispositivos entran al
modo de programacin. Esto no es aplicable al fusible EESAVE lo cual tendra
efecto una vez que es programado. Estos fusibles son tambin habilitados al
encendido en modo normal.
26.2.1
siguiente tabla que son referidos por nombre de pines. Los pines XA1/XA0
determinan la accin a ejecutarse cuando el pin XTAL se le da un pulso
positivo, El cdigo de pin es mostrado en la figura 26-12. Cuando se pulsa
, el comando carga determinadas acciones a ejecutarse. Los diferentes
comandos son mostrados en la Tabla 26-13.
2. Poner BS1 a 0.
3. Poner DATA a 0001 0000. Este es el comando para escribir en la Flash.
4. Dar a XTAL1 un pulso positivo. Esto carga los comandos.
B. Cargar Direcciones con un byte bajo(Direcciones de los bits 7..0)
1. Poner XA1, XA0 a00. Esto habilita la carga de direcciones.
2. Poner BS2, BS1 a 00. Esto selecciona las direcciones con bytes bajos.
3. Poner DATA = Address en el byte en bajo (0x00 - 0xFF).
4. Dar a XTAL1 un pulso positive. Esto carga la direccin del byte bajo.
C. Cargar los datos en un byte bajo
1. Poner XA1, XA0 a 01. Esto habilita la carga de datos.
2. Poner DATA = Data en un byte bajo (0x00 - 0xFF).
3. Dar a XTAL1 un pulso positivo. Esto carga el byte de datos.
D. Cargar los Datos con un byte alto
1. Poner BS1 a 1. Esto selecciona un byte de datos altos
2. Poner XA1, XA0 a 01. Esto habilita la carga de datos..
3. Poner DATA = Data en un byte alto (0x00 - 0xFF).
4. Dar a XTAL1 un pulso positivo. Esto carga los byte de datos.
E. Habilitacin de Datos
1. Poner BS1 a 1. Esto selecciona un byte de datos en alto.
2. Dar a PAGEL un pulso positivo. Esto habilita los bytes de datos. (Ver Figura
26-3)
F. Repetir B a travs de E hasta que el buffer sea llenado totalmente por todos
los datos si la pgina es cargada.
Mientras los bits ms bajos en la direccin son mapeados a palabras dentro de
la pgina, las direcciones de los bits ms altos dentro de la FLASH. Esto es
ilustrado en la Figura 26-2. Note que si menos de ocho bits son requeridos a las
palabras de direccin en la pgina (tamao de la pagina < 256), el bit ms
significante en la direccin de los bytes en bajo son usadas para direccionar la
pgina cuando realizan la escritura de la pgina.
G. Cargar Direcciones de bytes altos (Direcciones de los bits15..8)
1. Poner XA1, XA0 a 00. Esto habilita que se carguen las direcciones.
2. Poner BS2, BS1 a 01. Esto selecciona las direcciones de los bytes altos.
3. Poner DATA = Address en el byte alto (0x00 - 0xFF).
4. Dar a XTAL1 un pulso positivo. Esto carga las direcciones de los bytes altos.
H. Cargar Direcciones de bytes altos extendidos (Direcciones de los bits 23..16)
1. Poner XA1, XA0 a 00. Esto habilita que se carguen las direcciones.
2. Poner BS2, BS1 a 10. Esto selecciona la direccin extendida del byte alto.
3. Poner DATA = Address extended high byte (0x00 - 0xFF).
4. Give XTAL1 a positive pulse. This loads the address high byte.
I. Program Page
1. Poner BS2, BS1 a 00
2. Dar
un pulso negativo. Esto inicia la programacin de la pgina de datos
en su totalidad.
est en bajo.
2. Dar a
un pulso negativo. Esto inicia la programacin de la pgina de la
EEPROM.
Estn en bajo.
3. Esperar hasta que
estn en alto antes de programar la pgina
siguiente. Ver figura 26-4.
a 1.
a 1.
4. Poner
a 1.
lograda usando la
27.1 Caractersticas DC
32.2 40P6
32.3 44M1
33. Errata
33.1 ATmega164P Rev. A
No known Errata.
33.2 ATmega324P Rev. A
No known Errata.
33.3 ATmega644P Rev. A
No known Errata.
Table of Contents
Features ..................................................................................................... 1
1 Pin Configurations ................................................................................... 2
2 Overview ................................................................................................... 3
2.1 Block Diagram ..........................................................................................................3
2.2 Comparison Between ATmega164P, ATmega324P and ATmega644P ..................4
2.3 Pin Descriptions .......................................................................................................4
3 Resources ................................................................................................. 7
4 About Code Examples ............................................................................. 8
5 Data Retention .......................................................................................... 8
6 AVR CPU Core .......................................................................................... 9
6.1 Overview ..................................................................................................................9
6.2 ALU Arithmetic Logic Unit ...................................................................................10
6.3 Status Register .......................................................................................................10
6.4 General Purpose Register File ...............................................................................12
6.5 Stack Pointer ..........................................................................................................1 3
6.6 Instruction Execution Timing ..................................................................................14
6.7 Reset and Interrupt Handling .................................................................................15
11 Interrupts ................................................................................................ 61
11.1 Overview ..............................................................................................................6 1
11.2 Interrupt Vectors in ATmega164P/324P/644P .....................................................61
11.3 Register Description .............................................................................................65
13 I/O-Ports .................................................................................................. 72
13.1 Overview ..............................................................................................................7 2
13.2 Ports as General Digital I/O ..................................................................................73
13.3 Alternate Port Functions .......................................................................................78
13.4 Register Description .............................................................................................91
Table of Contents....................................................................................... i
TRADUCCION CON LA COLABORACION:
ANDRES MEJIA Y FERNANDO MORALES ESTUDIANTES DE LA E.P.N.
FACULTAD DE CONTROL
MAS COMENTARIOSY MEJORAS POR FAVOR ESCRIBIRME AL CORREO
ELECTRONICO.
ATENTAMENTE,
JUAN GALARZA
A.T.R.
QUITO ECUADOR