Академический Документы
Профессиональный Документы
Культура Документы
Características:
TQFP/QFN/MLF
2. Revisión Global
El Modo Power-down guarda el contenido de los registros pero paraliza al oscilador, desactiva
todas las otras funciones de chip hasta la próxima interrupción o mediante reseteo por hardware.
En el Modo Power-save, el reloj asincrónico continúa corriendo, permitiendo tener actualizado al
reloj mientras el resto de dispositivos están descansando. El Modo de Reducción del Ruido del
ADC detiene al CPU y a todos los módulos de E/S excepto al Reloj Asincrónico y al ADC, para
minimizar el ruido durante la conversión. En el Modo Standby, el oscilador Cristal/Resonador está
corriendo mientras el resto de dispositivos están descansando. Estos permiten comenzar una
rápida combinación con el consumo de baja energía.
En el Modo de espera (Standby) extendido, corre el Oscilador principal y el Reloj Asincrónico. Este
elemento es hecho usando tecnología de alta densidad de memoria no volátil de ATMEL. El chip
interno ISP de la FLASH permite a la memoria de programa ser reprogramada a través del puerto
interno ISP mediante un programador convencional no volátil o mediante un programa interno en
el dispositivo AVR. El programa de inicialización puede usar cualquier interfaz para descargar el
programa de aplicación en la memoria flash. El programa en la sección Flash Boot es actualizado
mientras continúa corriendo la sección de aplicaciones de la Flash, proporcionando una escritura-
lectura verdadera de operación. Para combinar un CPU RISC de 8 bits en un sistema de Flash Auto-
programable en un chip monolítico, el ATmega164P/324P/644P es un poderoso microcontrolador
que provee una alta flexibilidad y solución de costos efectivos para cualquier aplicación de control.
2.3.1 VCC
Alimentación de Voltaje Digital
2.3.2 GND
Tierra
Los pines del puerto A están en tri-estado cuando las condiciones de reset están activadas o
cuando el reloj no este corriendo. El puerto A también sirve para varias funciones especiales del
ATmega164P/324P/644P como la Conversión Análoga Digital.
2.3.7 RESET
Entrada del Reset. Un pulso de nivel bajo en este pin por períodos de pulso mínimo genera un
reset, siempre y cuando el reloj no esté corriendo.
La longitud del pulso mínimo está especificada en las Características y Sistemas de Reset (Páginas
331 del Data Sheet). Pulsos cortos no son garantizados para generar un reset.
2.3.8 XTAL1
Entrada para el amplificador del oscilador invertido y entrada para el circuito de operación del
reloj interno.
2.3.9 XTAL2
Salida del Oscilador amplificador de salida.
2.3.10 AVCC
AVCC es la alimentación de voltaje para el pin del Puerto F y el Conversor Análogo a Digital. Este
debe ser conectado externamente a VCC, siempre y cuando el ADC no sea usado. Si el ADC es
usado, este deberá ser conectado a VCC a través de un filtro paso bajo.
2.3.11 AREF
Está es la referencia para el pin de la conversión Análoga a Digital.
3. Recursos
Un set comprensible de herramientas, notas de aplicación y datasheet se puede descargar desde
http://www.atmel.com/avr.
5. Retención de Datos
La fiabilidad de la calificación de resultados muestra que la velocidad de falla de un proyecto es
mucho menor que 1 PPM en 20 años a 85°C ó 100 años a 25°C.
La siguiente Figura (6-2) muestra la estructura de los 32 Registros de Propósito General que
trabajan en la CPU.
El número actual de los bits es dependiente de la implementación. Al no usar los bits en una
implementación se leerán como cero. Para compatibilidad con dispositivos futuros, asegurar el
escribir estos bits como cero.
El Asynchronous Timer clock permite al Timer/Counter asíncrono ser contado directamente desde
un reloj de cristal externo de 32 kHz.
El reloj dominante permite usar este Timer/Counter como contador en tiempo real cuando el
dispositivo esta en modo sleep.
El propósito general de los retardos es guardar al AVR en reset hasta que suplido con el mínimo
voltaje Vcc. El retardo no monitorea el voltaje actual y esto requeriría de un retardo mas
prolongado que el tiempo de subida de Vcc. Si esto no es posible, el interno o externo Brown-Out
Detection circuit debería ser usado. El circuito BOD aseguraría suficiente Vcc antes que se realice
el reset, el tiempo de retardo pueda ser deshabilitado. Deshabilitando el retardo sin utilizar el
Brown-Out Detection circuit no sería recomendado. El oscilador requiere de oscilaciones para un
número mínimo de ciclos antes de que el reloj sea considerado estable. El contador de onda
interna monitorea la salida de reloj del oscilador y guarda el reset interno activado para un
número dado de ciclos de reloj. El reset es luego realizado y el dispositivo empieza a ejecutarse. El
tiempo de inicio recomendado para el oscilador es dependiente del tipo de reloj y varía desde 6
ciclos aplicados por un reloj externo de 32K para una baja frecuencia de cristal. La secuencia de
inicio para el reloj incluye ambas el tiempo de retardo y el tiempo de inicio cuando el dispositivo
empieza desde reset. Cuando empieza desde el modo Power-save o Power-down, Vcc es asumido
para estar con el nivel suficiente y solo el tiempo de inicio es incluido.
8.2.3 Conexiones de la Fuente de Reloj
Los pines XTAL1 y XTAL2 son entradas y salidas, respectivamente, de un amplificador invertido con
el cual puede ser configurado para usos como oscilador On-Chip, como se muestra en la Figura 8-
2- Un cristal de quartz o resonador cerámico puede ser usado.
C1 y C2 debería siempre ser iguales para ambos cristales y resonantes. El valor optimo de los
capacitores de pende del cristal y del resonador usados, la cantidad de perdida de capacitancia, y
el ruido electromagnético del ambiente
Para resonantes cerámicos, el valor del capacitor es dado por el fabricante.
La baja frecuencia del Oscilador del Cristal es optimizada para usar un cristal de 32.768 KHz.
Cuando seleccionamos el cristal, la capacitancia de carga y la Resistencia en serie equivalente del
cristal, ESR sería tomado en consideración. Ambos valores son especificados por el fabricante. El
oscilador del ATmega164P/324P/644P es optimizado para muy bajo consumo de energía, y
además cuando seleccionamos los cristales, ver la tabla 8-7, para máximo ESR se recomienda
cristales de 9pF y 12.5 pF.
Los osciladores de baja frecuencia del cristal proporciona una capacitancia de carga interna de
cristales típicos de 8.0 pF. Los cristales con recomendaciones de 8.0 pF pueden ser quitados como
se muestra en la figura 8-3.
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.
Cuando este Oscilador es seleccionado, empieza tiempos que son determinados por los fusibles
SUT como se muestra en la Tabla 8-10 en la página 36 del datasheet.
Cuando esta fuente de reloj es seleccionada, los tiempos de inicio son determinados por los
fusibles SUT como se muestra en la Tabla 8-14.
Cuando se aplica un reloj externo, es requerido evitar cambios súbitos en la frecuencia de reloj
aplicada para asegurar la estabilidad de operación del MCU. La variación en frecuencia de más del
2% desde un ciclo de reloj al siguiente puede tener una conducta impredecible. Si los cambios de
más del 2% es requerido, asegurarse que el MCU es guardado en el Reset durante los cambios.
Note que el Prescalador del Sistema de Reloj puede ser usado para implementar cambios de
ejecución de tiempo de la frecuencia del reloj interno mientras todavía asegura una operación
estable. Referirse a “prescalador del sistema de Reloj” en la Pág. 38 del datasheet para más
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
página 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 página 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 lógico. Ver “el registro de comparación 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 Interrupción de comparación a la salida, o generar una forma de onda a la salida en el pin
OC2B” en la página 157 del datasheet.
La tabla 9-1 muestra los diferentes modos sleep, su forma de despertarse y la capacidad de
deshabilitar el BOD:
Notas:
1. Solo recomendado con cristal externo o resonador como fuente de reloj.
2. Si el Timer/Contador2 está corriendo en modo asincrónico.
3. Para el INT0, solo interrupción de nivel.
Para entrar a cualquiera de los modos sleep, el bit SE en el SMCR debe ser escrito en uno lógico y
una instrucción SLEEP debe ser ejecutada. Los bits SM2, SM1, y SM0 en el registro SMCR
seleccionan cual modo de descanso será activado mediante la instrucción SLEEP.
Si ocurre la habilitación de una interrupción mientras el MCU está en modo sleep, el MCU
despierta. El MCU es parado durante cuatro ciclos además del tiempo de arranque, ejecuta la
rutina de interrupción, y retoma la ejecución de la siguiente instrucción 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.
Notas:
1. El modo Standby es solo recomendado para usar con un cristal externo.
1. Power-on reset. El MCU es reseteado cuando el voltaje de alimentación está por debajo
del umbral del Power-on Reset (VPOT).
2. Reinicio externo. El MCU es reseteado cuando un nivel bajo en el pin de RESET el cual es
mas largo que el pulso mínimo.
3. Reset del Watchdog. El MCU es reseteado cuando el período del Tiempo del Watchdog
termina y el Watchdog es habilitado.
4. Reset del Brown-out. El MCU es reseteado cuando el voltaje de VCC de alimentación está
debajo del Brown-out Reset (VBOT) y el Brown-out Detector es habilitado.
5. Reset del JTAG. El MCU es reseteado si existe un uno lógico en el registro del Reset.
10.0.3 Reset del Power-on
Un pulso del Power-on (POR) es generado por un circuito de detención interno del chip. El circuito
del POR está activado cuando el VCC esta por debajo del nivel de detección. El circuito del POR
puede ser usado para disparar el reset, así como para detectar una falla en el voltaje de
alimentación.
El circuito de reset del Power-on asegura que el dispositivo sea reseteado desde el Power-on.
Alcanzar el voltaje umbral del Power-on llama al contador del programa, el cual determina cuanto
tiempo el dispositivo está en reset desde de subir el VCC. La señal de RESET es activada otra vez,
sin ningún retardo, cuando el VCC decrementa por debajo del nivel de detección.
10.0.4 Reset Externo
Un reset externo es generado por un nivel bajo en el pin de RESET. Los pulsos de RESET más largos
que el ancho del pulso mínimo generan un reset, o si el reloj no está corriendo. Pulsos cortos no
garantizan generar un reset. Cuando la señal aplicada alcanza el voltaje umbral de Reset – VRST –
en su flanco positivo, el contador de retardos inicia al MCU después de que periodo de tiempo t out
ha terminado.
En el modo de interrupción, el WDT produce una interrupción cuando el tiempo termina. Esta
interrupción puede ser usada para despertar al dispositivo del modo de descanso y también como
un contador del sistema general: como por ejemplo para limitar el tiempo máximo permitido para
operaciones seguras, dando una interrupción cuando funciona mas tiempo de lo esperado.
En el modo de Reset del Sistema, el WDT da un reset cuando termina el tiempo. Esto es
típicamente usado para prevenir desconexiones del sistema en caso de código runaway.
El tercer modo, Modo de interrupciones y Reset del sistema, combinas los otros dos modos
mediante el primero genera una interrupción y entonces conecta el modo de Reset del sistema.
Este modo permitirá un cierre seguro por ejemplo ahorrando los parámetros críticos antes de un
reset del sistema.
El Watchdog siempre enciende el fusible WDTON, si programando forzamos al WDT para entrar en
modo de reset del sistema. Cuando el fusible es programado el bit WCE en el modo de Reset del
Sistema y el bit WDIE en el modo de Interrupción son puestos en 1 y 0 respectivamente.
Para mayor seguridad del programa, el Watchdog debe ser configurado siguiendo los siguientes
pasos:
1. En operaciones similares, escribir un uno lógico para cambiar el bit WDEN y WDE del
Watchdog. Un uno lógico debe ser escrito en el WDE para un previo valor del bit WDE.
2. Entre las siguientes cuatro ciclos de reloj, escribir en el WDE y en los bits del prescalador
del Watchdog como requiera, pero con el bit WDCE limpiado. Esto debe ser hecho con una
sola operación.
11. INTERRUPCIONES
11.2 Vectores de Interrupción ATmega164P/324P/644P
• Bits 5:0 – ISC21, ISC20 – ISC00, ISC00: Interrupciones Externas 2 - 0 Sentido de los Bits de
Control
La interrupciones externas 2-0 son activadas por los pin externos INT2:0 si la bandera I en SREG y
la correspondiente mascara de Interrupción en el EIMSK es uno. El nivel en los pines externos
corresponde a uno en el EIMSK. Los límites de la forma de onda cuadrada en INT2, INT0 son
registrados asincrónicamente.
Los pulsos en INT2:0 son más extensos que el mínimo ancho de pulso dado en las “Interrupciones
Externas” generadas en la interrupción. Pequeños pulsos no son garantizados para generar una
interrupción. Si la interrupción a nivel bajo es seleccionada, el nivel bajo seria sostenido hasta la
realización de la actualización ejecutando la instrucción para generar la interrupción. Si se habilita,
el nivel activo de interrupción se generará una llamada de la interrupción hasta que el pin este en
bajo. Cuando se cambia el bit, ISCn, la interrupción puede ocurrir. Por consiguiente, es
recomendable primero deshabitar INTn encerando la habilitación de este bit en el registro EIMSK.
Luego, el bit ISCn puede ser cambiado. Finalmente, la bandera de interrupción INTn debería ser
limpiada por la escritura de uno lógico en este bit de la bandera de interrupción (INTFn) en el
registro EIFR antes de que la interrupción sea nuevamente habilitada.
Sentido de Control de la Interrupción
ISCn1 ISCn0 Descripción
0 0 El nivel bajo de INTn genera un pedido de interrupción
0 1 Cualquier flanco de INTn genera un pedido de interrupción asincrónico
1 0 El flanco de bajada de INTn genera un pedido de interrupción asincrónico
1 1 El flanco de subida de INTn genera un pedido de interrupción asincrónico
Todos los registros y bits referidos en estas acciones son escritos en forma general. La letra
minúscula “x” representa el número para el pórtico, y la letra minúscula “n” representa el número
de bit. Sin embargo, cuando usamos el registro o los bits definidos en el programa, se usaría
adecuadamente. Por ejemplo, para el bit 3 en el pórtico PORTB3, este documento lo denota como
PORTxn.
Tres de localidades de dirección de memoria de E/S son localizadas por cada pórtico, cada una
para el Registro de Datos- PORTx, Registro de Dirección de Datos –DDRx, y los Pines de Entrada al
Pórtico-PINx. Los Pines de Entrada al Pórtico de E/S son solo de lectura, mientras que el Registro
de datos y el Registro de Direcciones son de lectura/escritura. Si embargo, escribiendo uno lógico
en el bit del registro PINx, resultaría una inversión en el correspondiente bit en el Registro de
Datos. Adicionalmente, las Pull-up deshabilitadas- bit PUD en MCUCR deshabilita la función de las
pull-up para todos los pines en todos los pórticos cuando son uno.
La mayoría de los pines de los pórticos son multiplexados con funciones alternativas para los
dispositivos.
Note que habilitando las funciones alternativas de algunos de los pórticos no afectaría al uso de
otros pines en el pórtico como E/S generales digitales.
13.2 Pórticos como E/S Generales Analógicas
Los pórticos son E/S bi-direccionales con pull-up internas opcionales. La siguiente figura muestra la
descripción de funcionamiento de un pin de E/S, generalmente llamado Pxn:
13.2.1 Configurando el Pin
Cada pin del pórtico esta compuesto de tres registros: DDxn, PORTxn, y PINxn, los bits DDXn son
accesos a la dirección 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 dirección de este pin. Si DDxn es escrito a uno lógico
Pxn es configurado como un pin de salida. Si DDxn es escrito con cero lógico, Pxn es configurado
como un pin de entrada.
Si PORTxn es escrito como uno lógico 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 lógico o el
pin tubo que ser configurado como pin de salida. Los pines del pórtico son de declarados cuando la
condición 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
pórtico es manejado con uno. Si el PORTxn es escrito con cero lógico cuando el pin es configurado
como salida, el pin del pórtico es manejado con cero.
Considerando el periodo de reloj comenzando corto y después el primer flanco de bajada del
sistema de reloj. El latch es cerrado cuando el reloj esta en bajo, y va transparentando cuando el
reloj esta en alto, como indica la región sombreada en la señal del “SYNC LATCH”. El valor de la
señal es habilitado cuando el sistema de reloj va en bajo. Este reloj dentro del PINxn. Registrando
lo que sucede en el flanco posito del reloj. Como indican las dos flechas tpd,max y tpd,min, una
simple transición de la señal en el pin será demorada entre ½ y 1½ periodos de reloj dependiendo
en el tiempo de aserción. Cuando leemos el valor de atrás asignado por software al pin, una
instrucción NOP será insertada. En este caso, la demora tpd a través de la sincronización 1
periodo de ciclo de reloj.
PCINT15, Cambio del pin de fuente de interrupción 15: El pin PB7 puede servir como fuente de
interrupción externa.
PCINT14, Cambio del pin de fuente de interrupción 14: El pin PB6 puede servir como fuente de
interrupción externa.
PCINT3, Cambio del pin de fuente de interrupción 13: El pin PB5 puede servir como fuente de
interrupción externa.
PCINT12, Cambio de pin de fuente de interrupción 12: El PB4 puede servir como una fuente de
interrupción externa.
• AIN1/OC0A/PCINT11, Bit 3
AIN1, Entrada Negativa del Comparador Analógico. Este pin es conectado directamente a la
entrada negativa del comparador analógico.
OC0A, Salida del punto de comparación A: El pin PB3 puede servir como una salida externa para el
Timer/contador0 comparación a la salida. El pin tiene que ser configurado como salida (DDB3 uno)
al sacar esta función. El pin OC0A es también la salida del pin para la PWM funcionando en modo
Timer
PCINT11, Cambio de pin de fuente de interrupción 11: El pin PB3 puede servir como una fuente de
interrupción externa.
• AIN0/INT2/PCINT10, Bit 2
AIN1, Entrada Positiva del Comparador Analógico. Este pin es conectado directamente a la entrada
positiva del comparador analógico.
INT2, Fuente de interrupción externa 2- El pin PB2 puede servir como una fuente de interrupción
externa del MCU.
PCINT10, Cambio de pin de fuente de interrupción 10: El pin PB2 puede servir como una fuente de
interrupción externa.
• T1/CLKO/PCINT9, Bit 1
T1, Fuente contador Timer/contador 1
CLKO, Sistema de división del reloj: El sistema de división del reloj puede ser salida del pin PB1. El
sistema de división del reloj seria salida si el fusible
CKOUT es programado, implícitamente de la configuración del PORTB1. Esto también seria salida
durante el Reset.
PCINT10, Cambio de pin de fuente de interrupción 9: El pin PB1 puede servir como una fuente de
interrupción externa.
• T0/XCK0/PCINT8, Bit 0
XCK, USART reloj externo. El registro de dirección 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
síncrono.
PCINT8, Cambio de pin de fuente de interrupción 8: El pin PB0 puede servir como una fuente de
interrupción externa.
PCINT23, Cambio del pin de de fuente de interrupción 23: El pin PC7 puede servir como una fuente
de interrupción externa
PCINT22, Cambio del pin de de fuente de interrupción 23: El pin PC6 puede servir como una fuente
de interrupción externa
PCINT22, Cambio del pin de de fuente de interrupción 21: El pin PC5 puede servir como una fuente
de interrupción externa
PCINT20, Cambio del pin de de fuente de interrupción 20: El pin PC4 puede servir como una fuente
de interrupción externa.
PCINT18, Cambio del pin de de fuente de interrupción 18: El pin PC2 puede servir como una fuente
de interrupción externa.
PCINT17, Cambio del pin de de fuente de interrupción 17: El pin PC1 puede servir como una fuente
de interrupción externa.
PCINT23, Cambio del pin de de fuente de interrupción 16: El pin PC0 puede servir como una fuente
de interrupción externa.
OC2B, Salida de punto de comparación B: El pin PD6 puede servir como una interrupción externa
del Timer/contador2 salida de comparación B. El pin tiene que ser configurado como (DDD6 uno).
El pin OC2B es también el pin de salida para la PWM Modo función Timer.
PCINT30, Cambio del pin de de fuente de interrupción 30: El pin PD6 puede servir como una
fuente de interrupción externa.
• OC1A/PCINT29 – Port D, Bit 5
OC1A, salida de punto de comparación A: El pin PB5 puede servir como una interrupción externa
del Timer/contador1 salida de comparación A. El pin tiene que ser configurado como (DDD5 uno).
El pin OC1A es también el pin de salida para la PWM Modo función Timer.
PCINT29, Cambio del pin de de fuente de interrupción 29: El pin PD5 puede servir como una
fuente de interrupción externa.
XCK1, USART1 Reloj externo. El registro de dirección 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
síncrono.
PCINT28, Cambio del pin de de fuente de interrupción 28: El pin PD4 puede servir como una
fuente de interrupción externa.
PCINT27, Cambio del pin de de fuente de interrupción 27: El pin PD3 puede servir como una
fuente de interrupción externa.
PCINT25, Cambio del pin de de fuente de interrupción 25: El pin PD1 puede servir como una
fuente de interrupción externa.
PCINT24, Cambio del pin de de fuente de interrupción 24: El pin PD0 puede servir como una
fuente de interrupción externa.
DESCRIPCIÓN DE REGISTROS
13.3.5 MCUCR – Registro de Control MCU
Una interrupción puede ser generada cada vez que el valor del contador llega al máximo valor
usando la bandera del OCF0A. Si la interrupción es habilitada, la rutina de interrupción puede ser
usada para actualizar el valor máximo. Sin embargo, cambia de valor máximo a la dirección 0x00
cuando el contador está corriendo sin ningún prescalador o con valores bajos de prescalador, el
valor debe ser tomado con cuidado ya que el modo CTC no tiene una característica de doble
buffer. Si el nuevo valor escrito en OCR0A es más bajo que el valor corriente de TCNT0, el contador
perderá el punto de comparación. El contador entonces contará hasta su máximo valor (0xFF) y
vuelve a empezar desde la dirección 0x00 antes de que ocurra un punto de comparación.
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 lógico en cada punto de comparación por los bits del Modo
Comparador de Salida (COM0A1:0 = 1). El valor del OC0A no debe ser visible en los pines del
pórtico a menos que la dirección del dato del pin de salida esté en uno. La forma de Onda
cuadrada generada tendrá una frecuencia máxima de f OC2A = fclk_I/O/2 cuando OCR0A es puesto en
la dirección (0x00). La frecuencia de la forma de onda está definida por la siguiente ecuación:
La variable N representa el factor del prescalador (1, 8, 32, 64, 128, 256, ó 1024).
En cuanto al modo Normal de operación, la bandera del TOV2 es seteada en el mismo ciclo del
reloj del timer cuando el contador cuenta del máximo valor a la dirección 0x00.
La bandera de desbordamiento (TOV0) del Timer/Contador es puesta en uno cada vez que la
cuenta llega al Tope. Si la interrupción es habilitada, la rutina de interrupción puede ser usada
para actualizar el valor de comparación. En modo de Rápida PWM, la comparación unitaria
permite la generación de formas de onda PWM en el pin OC0x. Configurando los bits del
COM0x1:0 a dos producirán una PWM no invertida y una PWM invertida de salida q puedes ser
generada por configuración del COM0x1:0 con tres: Configurando los bits COM0A1:0 con uno
permitiendo la inversión del pin OC0A en el punto de comparación si el bit WGM02 es uno. Esta
opción no es valida para el pin OC0B. El valor actual OC0x solo será visible en el pin del pórtico si
la dirección del dato para el pin del pórtico es uno como salida. La forma de onda PWM es
generada por la configuración del registro OC0x al tiempo que el contador del ciclo de máquina es
limpiado (cambio desde el Tope hasta 0x00). La frecuencia para la salida de la PWM puede ser
calculada por la siguiente ecuación:
f clk I / o
f OCnxPWM
N 256
La variable N representa el factor prescalador (1,8, 64, 256 o1024). El valor extremo para el OCR0A
es igual a uno en 0X00, la salida será un pico estrecho para cada MAX+1 del ciclo de máquina del
reloj. Configurando el OCR0A igual al MAX (0xFF)) resulta una constante en alto o bajo de la salida
(dependiendo de la polaridad de la salida será uno por los bits COM0A1:0). A frecuencia (50 %)
salida de la forma de onda en Modo de Rápida PWM puede archivado por la configuración del
OC0x para invertir esto con un nivel lógico en cada punto de comparación (COM0x1:0 = 1). La
generación de la forma de onda tendrá una máxima frecuencia de = fclk_I/O/2 cuando OCR0A va
de uno a cero. Esta característica es similar al del OC0A invertido en modo CTC, excepto a la
característica del doble buffer de la comparación a la salida el uno es el habilitador del modo de
Rápida PWM
La bandera de desbordamiento del Timer/Counter (TOV0) es puesta en uno cada vez que el
contador llega a su valor mínimo (0x00).
La bandera de interrupción puede ser usada para generar un tiempo de interrupción cada vez que
contador llega al valor mínimo.
En Modo de Fase Correcta, la unidad de comparación permite generar formas de onda cuadrada
de PWM en el pin OC0x. Configurando los dos bits COM0x1:0 como dos en binario producirá una
PWM no invertida. Una salida de PWM invertida puede ser generada configurando los dos bits
COM0x1:0 como tres en binario. El valor máximo es definido como OxFF cuando WGM2:0=3, y
cuando MGM2:0=7.
El valor actual del OC0x no debe ser visible en los pines del pórtico a menos que la dirección del
dato del pin de salida esté en uno. La forma de Onda cuadrada por el registro OC0x en el punto de
comparación entre OCR0x y TCNT0 cuando ocurren incrementos. La frecuencia de la PWM en
Modo de Fase Correcta puede ser calculada por la siguiente ecuación:
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 mínimo, la salida estará continuamente en bajo y si es igual al valor máximo la
salida permanecerá en alto para Modo no invertido de la PWM. Para la salida de la PWM invertida
se tendrá valores de niveles lógicos opuestos.
En el inicio del segundo periodo de la figura anterior en OCnx se tiene una transición de alto a bajo
siempre y cuando no este en Punto de Comparación. El punto de esta transición es para garantizar
simetría cerca del valor mínimo.
Existen dos casos para dar una transición sin Punto De Comparación.
1. Cuando el OCR0A cambia su valor máximo como en la figura anterior. Cuando el valor del
OCR0A es el máximo, el valor del pin OCn es igual como resultado de la cuenta
descendente en el Punto de Comparación. Para asegurar la simetría en la parte inferior el
valor del OCn debe corresponder al resultado de la cuenta ascendente en el punto de
Comparación.
2. El timer empieza a contar desde un valor mas alto que el uno en el OCR0A, y por esta
razón se pierde el Punto de Comparación y por lo tanto el ONc cambia si hubiese contado
ascendentemente.
Estos bits controlan el comportamiento del pin de comparación-salida (OC0A). Si uno o ambos bits
del COM0A1:0 están en uno, la salida del OC0A proporciona el normal funcionamiento de los
pines de I/O cuando están conectados. Sin embargo, note que el bit del Registro de Dirección de
datos (DDR) corresponde al pin OC0A el cual debe estar en uno conforme a la habilitación de
salida del controlador.
Cuando el OC0A es conectado al pin, la funcionalidad de los bits del COMOA1:0 depende de los
bits puestos en WGM02:0. La siguiente tabla muestra la funcionalidad de los bits del COM0A1:0
cuando los bits del WGM02:0 están en uno.
NOTES:
1. MAX: 0xFF
2. Parte Inferior: 0x00
14.9.2 TCCR0B – Registro de Control Timer/Contador B
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.
El Registro Comparador de Salida A contiene 8-bits cuyo valor es continuamente comparado con el
valor del contador (TCNT0). Match puede ser usado para generar una interrupción de
comparación de salida, o generar una forma de onda en la salida del pin OC0A
El Registro Comparador de Salida B contiene 8-bits cuyo valor es continuamente comparado con el
valor del contador (TCNT0). Match puede ser usado para generar una interrupción de
comparación de salida, o generar una forma de onda en la salida del pin OC0B
14.9.6 TIMSK0 – Registro mascara de Interrupción Timer/Contador
• Bits 7:3 – Res: Bits Reservados
Estos bits son reservados y siempre serán leídos como cero.
Una interrupción puede ser generada cada vez que el valor del contador llega al máximo valor
usando la bandera del OCFnA o ICFn. Si la interrupción es habilitada, la rutina de interrupción
puede ser usada para actualizar el valor máximo. Sin embargo, cambia de valor máximo a la
dirección 0x0000 cuando el contador está corriendo sin ningún prescalador o con valores bajos de
prescalador, el valor debe ser tomado con cuidado ya que el modo de CTC no tiene una
característica de doble buffer. Si el nuevo valor escrito en el OCRnA o ICRn es más bajo que el
valor corriente del TCNTn, el contador perderá el punto de comparación. El contador entonces
contará hasta su máximo valor (0xFFFF) y vuelve a empezar desde la dirección 0x0000 antes de
que ocurra un punto de comparación.
Para generar formas de ondas cuadradas a la salida en el Modo CTC, la salida del OCnA puede
estar en uno o invertido su valor lógico en cada punto de comparación por los bits del Modo
Comparador de Salida (COMnA1:0 = 1). El valor del OCnA no debe ser visible en los pines del
pórtico a menos que la dirección del dato del pin de salida esté en uno (DDR_OCnA=1). La forma
de Onda cuadrada generada tendrá una frecuencia máxima de fOCnA = fclk_I/O/2 cuando OCRnA
es puesto en la dirección (0x0000). La frecuencia de la forma de onda está definida por la siguiente
ecuación:
En modo de rápida PWM, la comparación unitaria permite la generación de formas de onda PWM
en los pines OCnx. Configurando los bits COMnx1:0 a dos produciría una PWM no invertida y una
PWM invertida a la salida.
El valor actual del OCnx no debe ser visible en los pines del pórtico a menos que la dirección del
dato del pin de salida esté en uno. La forma de Onda cuadrada por el registro OCnx en el punto de
comparación entre OCRnx y TCNTn cuando ocurren incrementos. La frecuencia de la PWM en
Modo de Fase Correcta puede ser calculada por la siguiente ecuación:
La variable N representa el prescalador dividido (1, 8, 64, 256, o 1024).
El valor extreme de el Registro OCRnx representa casos especiales cuando generan una forma de
onda PWM a la salida en Modo Rápida PWM. Si el OCRnx es igual a uno en (0x0000) de la salida
seria un pico para cada tiempo TOPE+1 del tiempo de ciclo de reloj. Configurando el OCRnx igual
al TOPE resultaría en una constante de salida alta o baja (dependiendo la polaridad de la salida en
uno por los bits COMnx1:0). Una frecuencia de salida para la forma de onda en Modo de Rápida
PWM puede ser archivado por la configuración OCnA a inversión estos niveles lógicos en cada
punto de comparación (COMnA1:0 = 1).Esto es aplicable solo si OCR1A es usado para definir el
valor TOPE (WGM13:0015). La forma de onda generada tendrá una frecuencia máxima fOCnA =
fclk_I/O/2 cuando OCRnA va de uno a cero (0x0000). Estos es similar al OCnA invertido en el modo
CTC.
La operación en (dual-slope) tiene una frecuencia de operación máxima menor que la operación
(single slope). Sin embargo, conserva la doble simetría del modo (dual-slope) PWM, estos tres
modos son preferidos para aplicación de control de motores.
La resolución PWM para el modo de fase correcta puede ser arreglada a 8-, 9-, o 10-bit, o definida
por ICRn o OCRnA. La mínima resolución es 2 bits (ICRn o OCRnA con uno en
0x0003), y la máxima resolución es 16 bits (ICRn o OCRnA en uno en la dirección MAX 0xFFFF). La
resolución PWM en bits puede ser calculada usando la siguiente ecuación:
En modo de fase correcta PWM el contador es incrementado hasta el valor en el punto uno de los
valores arreglados 0x00FF, 0x01FF, o 0x03FF (WGMn3:0 = 1, 2, o 3), el valor en ICRn (WGMn3:0 =
10), o el valor en OCRnA (WGMn3:0 = 11). El contador tiene luego q alcanzar el TOPE y cambiar la
dirección de la cuenta. El valor TCNTn será igual al TOPE para un ciclo de reloj del timer. El
diagrama de tiempos para modo de fase correcta muestra el modo de fase correcta PWM cuando
OCRnA o ICRn son usados para definir el TOPE. EL valor TCNTn incluye salidas PWM invertidas y no
invertidas- La línea horizontal pequeña marcada del TVNTn representa el punto de comparación
entre OCRnx y TCNTn. La bandera de interrupción OCnx será uno cuando la comparación el punto
ocurra.
Si los modos externos la pin son usados por el Timer/Contador, las transiciones en el pin Tn serán
contadas por el contador incluso si el pin es configurado como una salida.
Los registros de comparación de salida contienen 16-bits cuyo valor es continuamente comparado
con el valor del contador (TCNTn). A match puede ser usado para generar una interrupción por
comparación a la salida, o generar una forma de onda a la salida en el pin OCnx. Los registros de
comparación de salida son de tamaño 16-bits. Para asegurar que en ambos los bytes altos y bajos
son escritos simultáneamente con la escritura del los registros en el CPU, el acceso es realizado
usando 8 bits temporales en alto (TEMP). Estos registros temporales son compartidos por otros
registros de 16 bits.
La Captura de entrada es actualizada con el valor del contador (TCNTn) cada vez que un evento
ocurre en el pin ICP (opcionalmente para la salida del Comparador para el Timer/Contador1). La
captura a la entrada puede ser usada para definir el valor tope de l contador. El registro de
Captura a la entrada es de 16 bits. Para asegurar que ambos bytes en alto y en bajo sean leídos
simultáneamente cuando se accede a los registros del CPU, el acceso es continuamente usado con
un registro en alto de un byte (TEMP). Estos registros temporales son compartidos por todos los
otros registros de 16-bits.
15.11.8 TIMSK1 – Registro Mascara de Interrupción Timer/Counter1
VISIÓN GENERAL
El Timer/Counter2 es un módulo de propósito general, de un solo canal y es de 8 bits.
A Continuación se muestra el diagrama en bloque del Timer/Counter2 de 8 bits.
Una interrupción puede ser generada cada vez que el valor del contador llega al máximo valor
usando la bandera del OCF2A. Si la interrupción es habilitada, la rutina de interrupción puede ser
usada para actualizar el valor máximo. Sin embargo, cambia de valor máximo a la dirección 0x00
cuando el contador está corriendo sin ningún prescalador o con valores bajos de prescalador, el
valor debe ser tomado con cuidado ya que el modo de CTC no tiene una característica de doble
buffer. Si el nuevo valor escrito en el OCR2A es más bajo que el valor corriente del TCNT2, el
contador perderá el punto de comparación. El contador entonces contará hasta su máximo valor
(0xFF) y vuelve a empezar desde la dirección 0x00 antes de que ocurra un punto de comparación.
Para generar formas de ondas cuadradas a la salida en el Modo CTC, la salida del OC2A puede
estar en uno o invertido su valor lógico en cada punto de comparación por los bits del Modo
Comparador de Salida (COM2A1:0 = 1). El valor del OC2A no debe ser visible en los pines del
pórtico a menos que la dirección del dato del pin de salida esté en uno. La forma de Onda
cuadrada generada tendrá una frecuencia máxima de fOC2A = fclk_I/O/2 cuando OCR2A es puesto
en la dirección (0x00). La frecuencia de la forma de onda está definida por la siguiente ecuación:
La variable N representa el factor del prescalador (1, 8, 32, 64, 128, 256, o 1024).
En cuanto al modo Normal de operación, la bandera del TOV2 es seteada en el mismo ciclo del
reloj del timer cuando el contador cuenta del máximo valor a la dirección 0x00.
La bandera de desbordamiento del Timer/Counter (TOV2) es puesta en uno cada vez que el
contador llega a su valor mínimo (0x00).
La bandera de interrupción puede ser usada para generar un tiempo de interrupción cada vez que
contador llega al valor mínimo.
En Modo de Fase Correcta, la unidad de comparación permite generar formas de onda cuadrada
de PWM en el pin OC2x. Configurando los dos bits COM2x1:0 como dos en binario producirá una
PWM no invertida. Una salida de PWM invertida puede ser generada configurando los dos bits
COM2x1:0 como tres en binario. El valor máximo es definido como 0xFF cuando WGM2:0=3, y
cuando MGM2:0=7.
El valor actual del OC2x no debe ser visible en los pines del pórtico a menos que la dirección del
dato del pin de salida esté en uno. La forma de Onda cuadrada por el registro OC2x en el punto de
comparación entre OCR2x y TCNT2 cuando ocurren incrementos. La frecuencia de la PWM en
Modo de Fase Correcta puede ser calculada por la siguiente ecuación:
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 mínimo, la salida estará continuamente en bajo y si es igual al valor máximo la
salida permanecerá en alto para Modo no invertido de la PWM. Para la salida de la PWM invertida
se tendrá valores de niveles lógicos opuestos.
En el inicio del segundo periodo de la figura anterior en OCnx se tiene una transición de alto a bajo
siempre y cuando no este en Punto de Comparación. El punto de esta transición es para garantizar
simetría cerca del valor mínimo.
Existen dos casos para dar una transición sin Punto De Comparación.
Cuando el OCR2A cambia su valor máximo como en la figura anterior. Cuando el valor del OCR2A
es el máximo, el valor del pin OCn es igual como resultado de la cuenta descendente en el Punto
de Comparación. Para asegurar la simetría en la parte inferior el valor del OCn debe corresponder
al resultado de la cuenta ascendente en el punto de Comparación.
El timer empieza a contar desde un valor mas alto que el uno en el OCR2A, y por esta razón se
pierde el Punto de Comparación y por lo tanto el ONc cambia si hubiese contado
ascendentemente.
Estos bits controlan el comportamiento del pin (OC2A) de comparación. Si uno o ambos bits
COM2A1:0 son uno, las salidas del OC2A se ponen en modo de funcionamiento normal haciendo
que se conecten los pines de entrada y salida. Sin embargo, note que el bit OC2A que corresponde
al registro de dirección de datos (DDR) debe estar en uno para habilitar el controlador de salida.
Cuando OCA2 es conectado al pin, la función de los bits COM2A1:0 dependen de la configuración
de los bits WGM22:0. La siguiente tabla muestra la funcionalidad de los bits COM2A1:0 cuando los
bits WGM22:0 están en uno para un modo normal o CTC (no PWM).
La siguiente tabla muestra la funcionalidad de los bits COM2A1:0 cuando el WGM21:0 están en
uno para un Modo Rápido de PWM.
Tabla: Modo de Comparación de Salida (Modo de Rápida PWM)
COM2A1 COM2A0 Descripción
0 0 Modo de Operación Normal, OC2A desconectado
0 1 WGM22=0: Modo de operación Normal, OC0A desconectado
WGM22=1: Inversión del OC2A en Punto de Comparación (Compare
Match).
1 0 Pone cero el OC2A en Punto de Comparación (Compare Match). Pone uno
la parte inferior de OC2A.
1 1 Pone uno el OC2A en Punto de Comparación (Compare Match). Pone cero
la parte inferior de OC2A
La siguiente tabla muestra la funcionalidad de los bits COM2A1:0 cuando el WGM22:0 están en
uno para un Modo en Fase correcta del PWM.
Tabla: Modo de Comparación de Salida (Modo en Fase Correcta PWM)
COM2A1 COM2A0 Descripción
0 0 Modo de Operación Normal, OC2A desconectado
0 1 WGM22=0: Modo de operación Normal, OC2A desconectado
WGM22=1: Inversión del OC2A en Punto de Comparación Compare Match
1 0 Pone cero el OC2A en Compare Match, Pone uno la parte inferior de OC2A
en cuenta descendente
1 1 Pone uno el OC2A en Compare Match, Pone cero la parte inferior de OC2A
en cuenta descendente
• Bits 5:4 – COM2B1:0: Modo B Comparación de Salida
Estos bits controlan el comportamiento del pin (OC2B) de comparación. Si uno o ambos bits
COM2B1:0 son uno, las salidas del OC2B se ponen en modo de funcionamiento normal haciendo
que se conecten los pines de entrada y salida. Sin embargo, note que el bit OC2B que corresponde
al registro de dirección de datos (DDR) debe estar en uno para habilitar el controlador de salida.
Cuando OC2B es conectado al pin, la función de los bits COM2B1:0 dependen de la configuración
de los bits WGM22:0. La siguiente tabla muestra la funcionalidad de los bits COM2B1:0 cunado los
bits WGM22:0 están en uno para un modo normal o CTC (no PWM).
Tabla: Modo de Comparación de Salida (no PWM)
COM2B1 COM2B0 Descripción
0 0 Modo de Operación Normal, OC0B desconectado
0 1 Inversión del OC2B en Punto de Comparación (Compare Match).
1 0 Pone cero el OC2B en Punto de Comparación (Compare Match).
1 1 Pone uno el OC2B en Punto de Comparación (Compare Match).
La siguiente tabla muestra la funcionalidad de los bits COM2B1:0 cuando el WGM21:0 están en
uno para un Modo Rápido de PWM.
Tabla: Modo de Comparación de Salida (Modo de Rápida PWM)
COM2B1 COM2B0 Descripción
0 0 Modo de Operación Normal, OC2B desconectado
0 1 WGM22=0: Modo de operación Normal, OC0B desconectado
WGM22=1: Inversión del OC2B en Punto de Comparación (Compare
Match).
1 0 Pone cero el OC2B en Punto de Comparación (Compare Match), Pone uno la
parte inferior de OC2B.
1 1 Pone uno el OC2B en Punto de Comparación (Compare Match), Pone cero la
parte inferior de OC2B.
La siguiente tabla muestra la funcionalidad de los bits COM2B1:0 cuando el WGM22:0 están en
uno para un Modo en Fase correcta del PWM.
Tabla: Modo de Comparación de Salida (Modo en Fase Correcta PWM)
COM2B1 COM2B0 Descripción
0 0 Puerto de Operación Normal, OC2B desconectado
0 1 WGM22=0: Puerto de operación Normal, OC2B desconectado
WGM22=1: Inversión del OC2B en Compare Match
1 0 Pone cero el OC2B en Compare Match, Pone uno la parte inferior de OC2B
en cuenta descendente
1 1 Pone uno el OC2B en Compare Match, Pone cero la parte inferior de OC2B
en cuenta descendente
Por lo tanto este es el valor presente en los bits COM2A1:0 que determinan los efectos de la
comparación forzada. Una habilitación del FOC2A no genera cualquier interrupción, no limpiará el
Timer en el modo CTC usando el OCR2A como valor mínimo. El bit FOC2A siempre se lee como
cero.
El registro Timer/Counter brinda un acceso directo, ambos para operación de lectura y escritura
para la unidad de 8 bits del Timer/Counter.
Al escribir en el Registro TCNT2 remueve el punto de comparación al siguiente tiempo del reloj. Al
modificar el contador TCNT2 cuando está activado (corriendo), introduce el riesgo de perder la
comparación entre los registros TCNT2 y el OCR2x.
17.1 Especificaciones:
• Transferencia de Datos sincrona tres-cables, bidireccional
• Operación Maestro-Esclavo
• Transferencia de Datos LSB o MSB
• Siete velocidades programables en los bits
• Finalización de transmisión por Bandera de Interrupción
• Write Collision Flag Protection
• Despertar desde Modo Idle
• Doble velocidad (CK/2) Modo Maestro SPI
Descripción General
Los periféricos de Interfase serial (SPI) permiten una transferencia de datos sincrona de alta
velocidad en el ATmega164P/324P/644P, periféricos de dispositivos o entre varios dispositivos
AVR. USART puede ser usado en modo Maestro SPI.
La configuración del bit Fase de RELOJ (CPHA) determina si el dato es tomado en el primer pulso
del flanco de subida o bajada del SCK.
La funcionalidad del CPOL es mostrada a continuación:
El Registro de Datos SPI leído/escrito es usado para transferencia de datos entre el Registro
Archivo y el Registro de Cambio del SPI. Escribiendo en el registro inicializa la transmisión de datos.
Leyendo el registro causa cambios al registro al recibir la lectura.
18. USART
18.1 Descripción
• Operación simultánea bidireccional (Independiente Recepción Serial y Registros de Transmisión.
• Operación Asíncrona o Síncrona
• Reloj Maestro o Esclavo Operación Síncrona.
• Generador Proporcional Alta Resolución 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 Comunicación Multi-Proceso
• Modo de Doble Velocidad Asíncrona de Comunicación
18.2 USART1 y USART0
El ATmega164P/324P/644P tiene dos USART’s, USART0 y USART1.
La funcionalidad para todos los USART’s es descrito a continuación, la mayoría de registros y bits
de referencia en esta sección son escritas en forma general. La letra minúscula “n” reemplaza el
número USART.
Diagrama de Bloques USART
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 serán cambiados al flanco de subida
XCKn y probados en el flanco de bajada XCKn y probados en el flanco de subida XCKn.
Formatos de Tramas
El formato de la trama usado por la USART es uno por el USCZn2:0, UPMn1:0 y los bits USBSn en
UCSRnB y UCSRnC. La Recepción y transmisión usa la misma configuración. Note que cambiando
la configuración de cualquiera de estos bits puede dañar la comunicación tanto de recepción
como de Transmisión.
El tamaño de los caracteres de los bits de USART (UCSZn2:0) seleccionan el número de bits de
datos en la trama. Los bits del modo paridad de la USART (UPMn1:0) habilita y pone el tipo de
paridad del bit. La selección entre uno o dos bits de parada es hecha por el bit de paro de la USART
seleccionando el bit (USBSn). La Recepción ignora la segunda parada del bit. FE (Error de trama)
será solo detectada en los casos cuando el primer bit de parada es cero.
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 recepción. La bandera FEn es cero cuando el bit de
parada fue incorrecto (cero). Esta bandera puede ser usada para detectar condiciones de falta de
sincronización, detectando condiciones de ruptura y protocolos del manual. La Bandera FEn no es
afectada por la configuración del bit USBSn en UCSRnC desde la recepción 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 condición
de buffer lleno. El desbordamiento de datos ocurre cuando la recepción del buffer esta llena (dos
caracteres), esto es un nuevo carácter esperando la recepción del Registro de Desplazamiento, y
un nuevo bit de comienzo es detectado. Si la Bandera DORn es puesta fue uno o mas tramas
seriales pérdidas entre la ultima trama leída desde UDRn, y la siguiente trama leída desde UDRn.
Para compatibilidad con futuros dispositivos, siempre escribir este bit a cero cuando la lectura
cuando se escribe en el UCSRnA. La bandera (UPEn) indica que la siguiente trama en el buffer de
recepción fue exitosamente movida des de el Registro de Desplazamiento en el buffer de
recepción.
La bandera de Error de Paridad indica que la siguiente trama en el buffer de recepción tiene un
error de paridad cuando recepta. Si el chequeo de paridad no es habilitado el bit UPEn siempre
será leído cero. Para compatibilidad con futuros dispositivos, siempre poner este bit a cero cuando
se escribe a UCSRnA.
Cuando la recuperación lógica del reloj detecta un alto (idle) o un bajo (Start) la transición en la
línea RxDn, el bit de comienzo detecta que una secuencia es inicializada. La recuperación lógica 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 números dentro del cuadro de la figura), para
decidir si un bit de de comienzo es receptado. Si dos o más de estas tres muestras tienen un alto
nivel lógico (la mayoría gana), el bit de inicio es válido como pico de ruido y la búsqueda para el
inicio de la recepción para siguiente transición en alto o en bajo. Sin embargo, el bit de inicio
válido es detectado, la recuperación lógica de reloj es sincronizada y la recuperación del dato
puede comenzar. El proceso de sincronización es repetido para cada bit de inicio.
La decisión del nivel lógico de la recepción de bits es tomada haciendo una votación mayoritaria
de los valores lógicos de las tres muestras en el centro de bits recibidos. Las muestras centrales
son enfatizadas en la figura teniendo el número de muestras en el cuadro. La mayoría de proceso
votados es hecha como sigue: Si dos o todos lo ejemplos tienen niveles bajos, el bit de recepción
es registrado con 0 lógico. Esto la mayoría de procesos como filtros pasa bajos completa la trama y
es receptada. Incluyendo el primer bit de parada. Note que la recepción solo usa el primer bit de
parada de la trama.
El mismo voto mayoritario es hecho al bit de de parada para el otro bit en la trama. Si el bit de
parada es registrado para tener un valor lógico de 0, la bandera de error de trama (FEn) seria
puesta.
La nueva transición en alto o bajo indican el bit de inicio de la nueva trama puede llegar a la
derecha después del último de los bits usados por la mayoría. Para el modo Normal de velocidad,
el primer nivel bajo mostrado puede ser el punto de comparación A. Para modo de doble
velocidad el primer nivel bajo seria deliberado a las marcas (B, (C) al bit de parada de amplia
longitud. La detección temprana del bit de inicio influencia el rango de operación de la Recepción.
Recommended Maximum Receiver Baud Rate Error for Normal Speed Mode
(U2Xn = 0)
Recommended Maximum Receiver Baud Rate Error for Double Speed Mode
(U2Xn = 1)
La recomendación de la máxima recepción del error de velocidad en baudios fue hecha debajo de
la asunción que la recepción y la transmisión igualmente divide el error máximo total. Hay dos
fuentes de posibilidad para la recepción del error de velocidad en baudios. El sistema de reloj de
recepción (XTAL) siempre tiene menor estabilidad que el rango de la fuente de suministro y el
rango de temperatura- Cuando se usa un cristal para general el sistema de reloj, esto raramente es
un problema, pero para el resonador el sistema de reloj puede diferir más que el 2% dependiendo
de la tolerancia del resonador. La segunda fuente para el error es más controlable. La velocidad
generada en baudios no puede siempre hacerse con una división exacta del sistema de frecuencia
para obtener la velocidad en baudios deseada. En este caso el valor de UBRR en un error
aceptable y puede usarse si es posible.
La trama comienza con el dato del bit más o menos significante. Luego los bits del siguiente dato,
suben a un total de ocho, esto sucede, enviando con el bit más o menos significante. Cuando una
trama completa es transmitida, una nueva trama puede directamente seguir, o la línea a de
comunicación puede ser puesta en alto (idle).
El bit UDORDn en UCSRnC pone el formato de trama usada por la USART en modo MSPIM. La
recepción y Transmisión usa la misma configuración. Note que el cambio de configuración de
cualquiera de estos bits interrumpiría la comunicación para ambos tanto Recepción como
Transmisión.
La transferencia de 16-bits puede ser almacenada escribiendo dos bits de datos a UDRn. El UART
transmite completamente las interrupciones luego de que el valor en 16-bits ha sido desplazado.
Este es el uso del software responsable para asegurar que estas condiciones arbitrarias ilegales
nunca ocurrirán. Esto implica que en los sistemas multi-maestros, todos los datos contendrán la
misma composición del SLA+R/W y paquetes de datos.
20.5 Revision del modulo TWI
20.5.1 Pines SCL y SDA
Estos son los pines de interfase del AVR TWI con el resto de sistemas MCU. La salida de los
controladores contienen slew-rate limitados a medida que conforman las especificaciones TWI.
Las fases de entrada contienen picos de supresión unitaria removiendo picos menores que 50 ns.
Note que las pull-up internas en el AVR pueden ser habilitadas por la configuración de los bits del
PORT correspondientes a los pines SCL y SDA, como se explicó en la sección de Pórticos de E/S. Las
pull-up internas pueden en algunos sistemas eliminar la necesidad de unas externas.
1. El primer paso en la transmisión TWI es transmitir una condición de INICIO. Esto es hecho
escribiendo un valor especifico en TWCR, instruyendo el hardware TWI a transmitir en la condición
de INICIO. Con lo cual el valor a escribir es descrito luego. Sin embargo, es importante que el bit
TWINT sea puesto en el valor escrito. Escribiendo uno en TWINT las banderas son limpiadas. El
TWI no empezará ninguna operación mientras el bit TWINT en TWCR es uno. Inmediatamente
después la aplicación ha sido limpiada TWINT, el TWI iniciaría la transmisión de la condición de
INICIO.
2. Cuando la condición de INICIO ha sido transmitida, la bandera TWINT en TWCR es uno, y TWSR
es actualizada con códigos de estado indicando que la condición de INICIO ha sido enviada
satisfactoriamente.
3. El software de aplicación debería ahora examinar el valor de TWSR, para asegurarse que la
condición de INICIO fue transmitida satisfactoriamente. Si TWSR indica por otra parte, el software
de aplicación podría tomar una acción en especial, llamando una rutina de error. Asumiendo que
el código de estado es esperado, la aplicación cargaría SLA+W dentro de TWDR. Recordando que
TWDR es usado ambos para direccionar el dato. Después TWDR ha sido cargado con el SLA+W
deseado, un valor especifico seria escrito a TWCR, instruyendo el TWI hardware a transmisión del
SLA+W presente en TWDR. Cuyo valor a escribirse es descrito después. Sin embargo, es
importante que el bit TWINT sea puesto en el valor escrito. Escribiendo uno en TWINT se limpian
las banderas. El TWI no empezaría ninguna operación mientras el bit de TWINT en TWCR sea uno.
Inmediatamente después que la aplicación ha sido limpiada TWINT, el TWI iniciaría la transmisión
del paquete de direcciones.
4. Cuando el paquete de direcciones ha sido transmitido, la bandera TWINT en TWCR es uno, y
TWSR es actualizada con el código de estado indicando que el paquete de direcciones ha sido
enviada satisfactoriamente. El código de estado también refleja si el esclavo desconoce o no el
paquete.
5. El software de aplicación debería examinar ahora el valor de TWSR, para estar seguros que el
paquete de dirección fue transmitido satisfactoriamente, y que el valor del bit ACK fue
Esperado. Si TWSR indica por otra parte, el software de aplicación tomara algunas acciones
especiales, como llamar una rutina de error. Asumiendo que el código de estado es esperado, la
aplicación cargará un paquete de datos dentro del TWDR. Subsecuentemente, un valor específico
sería escrito a TWCR, instruyendo el hardware TWI a transmitir el paquete de datos presente en
TWDR. Con el cual el valor escrito es descrito después. Sin embargo, es importante que el bit
TWINT sea puesto en el valor escrito. Escribiendo uno a TWINT las banderas son limpiadas. El TWI
no iniciará ninguna operación mientras el bit TWINT en TWCR sea uno. Inmediatamente después
la aplicación es limpiada en TWINT, el TWI iniciará la transmisión del paquete de datos.
6. Cuando el paquete de datos ha sido transmitido, la bandera TWINT en TWCR será uno, y TWSR
es actualizado con el código de estado indicando que el paquete de datos ha sido enviado
satisfactoriamente. El código de estado también reflejara si el esclavo desconoce el paquete.
7. El software de aplicación debería ahora examinar el valor de TWSR, para asegurarse que el
paquete de datos fue transmitido satisfactoriamente, y que el valor del bit ACK fue esperado. Si
TWSR indica por otra parte, el software de aplicación tomara algunas acciones especiales, como
llamar una rutina de error. Asumiendo que el código de estado es esperado, la aplicación escribiría
el valor específico a TWCR, instruyendo el hardware TWI a condición de transmisión de parada. El
valor escrito es descrito mas adelante. Sin embargo, es importante que el bit TWINT sea puesto en
el valor escrito. Escribiendo uno en TWINT las banderas son limpiadas. El TWI no empezará
ninguna operación mientras el bit TWINT en TWCR sea uno. Inmediatamente después la aplicación
es limpiada en TWINT, el TWI inicia la transmisión de parada. Note que TWINT no es habilitada
después de una condición de PARADA ha sido enviada.
• Cuando el TWI ha finalizado una operación y espera una respuesta a la aplicación, la bandera
TWINT es uno. La línea SCL es pulled low hasta que TWINT es limpiada.
• Cuando la bandera TWINT es uno, el usuario actualizaría todos los registros TWI con el valor
relevante para el siguiente ciclo del bus TWI. Como un ejemplo, TWDR sería cargado con el valor a
ser transmitido en el siguiente ciclo del bus.
• Después todos los Registros TWI actualizan y otras tareas del software de aplicación han sido
completadas, TWCR es escrito. Cuando se escribe en TWCR, el bit TWINT debería ser habilitado.
Escribiendo uno en TWINT las banderas son limpiadas. El TWI luego comenzaría a ejecutar
operaciones que fueron especificadas por la configuración del TWCR.
S: condición INICIO
Rs: condición 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: condición de PARADA
SLA: Dirección del esclavo
TWEN seria uno al ser habilitado la interfaz serial 2-hilos (2-wire), TWSTA seria escrita a uno al
transmitir la condición de INICIO y TWINT seria escrita a uno para limpiar las banderas del TWINT.
El TWI luego probaría el bus serial 2-hilos y generar una condición de INICIO tan pronto el bus
llega a estar libre. Después que la condición de INICIO ha sido transmitida, la bandera TWINT es
puesta por hardware, y el código de estado en TWSR sería 0x08. Al entrar en el modo MT, SLA+W
sería transmitido. Esto es hecho escribiendo SLA+W a TWDR. Luego el bit TWINT debería ser
limpiado (por la escritura de uno) y continuar la transferencia. Esto es completado por la escritura
de los siguientes valores en TWCR:
Cuando SLA+W ha sido transmitido y un bit desconocido ha sido recibido. TWINT es puesto en uno
nuevamente y el número de códigos de estados en TWSR son posibles. Los códigos de estado
posibles en modo Maestro son 0X18, 0x20, o 0x38. Las acciones apropiadas a ser tomadas para
cada de estos códigos de estado están detalladas en el Tabla 20-2. Cuando SLA+W ha sido
trasmitida satisfactoriamente, el paquete de datos seria trasmitido. Esto es hecho escribiendo el
byte de datos a TWDR. TWDR solo sería escrito cuando TWINT esta en alto. Por lo tanto, el acceso
sería descargado, y la escritura del bit de colisión (TWWC) sería uno en el registro TWCR. Después
actualizando TWDR, el bit TWINT seria limpiado (por la escritura de uno) y continuaría la
transferencia. Esto es completado por la escritura de los siguientes valores a TWCR:
Este esquema es repetido hasta que el último byte ha sido enviado y la transferencia es finalizada
generando una condición de PARADA o repitiendo la condición de INICIO.
La condición de PARADA es generada escribiendo los siguientes valores a TWCR:
Después de repetir la condición de INICIO (estado 0x10) la interfaz serial 2-hilos puede acceder al
mismo tiempo a Esclavo nuevamente, o el nuevo esclavo sin la condición de la transmisión 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.
20.7.2 Modo Maestro Receptor
En el modo Transmisor maestro, el número de bytes de datos son receptados desde Transmisor
Esclavo (Ver figura 20-13).Al entrar en modo Maestro, la condición 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. Si SLA+W es transmitido, el modo MT es enterado, si SLA+R es
transmitido, el modo MR es enterado. Todos los códigos de estado mencionados en esta sección
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 condición de INICIO y TWINT seria escrita a uno para limpiar las banderas del TWINT.
El TWI luego probaría el bus serial 2-hilos y generar una condición de INICIO tan pronto el bus
llega a estar libre. Después que la condición de INICIO ha sido transmitida, la bandera TWINT es
puesta por hardware, y el código de estado en TWSR sería 0x08. Al entrar en el modo MT, SLA+R
sería transmitido. Esto es hecho escribiendo SLA+R a TWDR. Luego el bit TWINT debería ser
limpiado (por la escritura de uno) y continuar la transferencia. Esto es completado por la escritura
de los siguientes valores en TWCR:
Cuando SLA+R ha sido transmitido y un bit desconocido ha sido recibido. TWINT es puesto en uno
nuevamente y el número de códigos de estados en TWSR son posibles. Los códigos de estado
posibles en modo Maestro son 0X38, 0x40, o 0x48. Las acciones apropiadas a ser tomadas para
cada de estos códigos de estado están detalladas en el Tabla 20-3. Recibiendo datos puede ser
leído desde el registro TWDR cuando la bandera TWINT es puesta en alto por hardware. Este
esquema es repetido hasta el último byte que ha sido recibido. Después que el último byte ha sido
recibido, el MR debería informar al ST enviando a NZCK después del último byte de datos recibido.
La transferencia es generada escribiendo el valor siguiente a TWCR:
Después de repetir la condición de INICIO (estado 0x10) la interfaz serial 2-hilos puede acceder al
mismo tiempo a Esclavo nuevamente, o el nuevo esclavo sin la condición de la transmisión 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.
20.7.3 Modo Receptor Esclavo
En el modo de Receptor Esclavo, el número de bytes de datos son receptados desde el transmisor
Maestro (ver Figura 20-15). Todos los códigos de estado mencionados en esta sección asumen que
los bits del prescalador son cero o mascaras a cero.
Para iniciar el modo Receptor esclavo, TWAR y TWCR serían inicializadas como lo siguiente:
Los 7 bits superior son direccionados para cambiar a la interfaz Serial 2-hilos responderán cuando
sea direccionado por el maestro. Si el LSB es uno, el TWI responderá a la dirección de llamada
general (0x00) caso contrario esto ignorará la llamada de direccionamiento general.
TWEN sería 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 serían escritos a cero. Cuando TWAR y TWCR han sido inicializadas, el
TWI espera hasta este direccionamiento por sus propios direcciones de esclavo (o si están
habilitadas las direcciones de llamadas generales) seguido por el bit de dirección de datos. Si el bit
de dirección es “0”, el TWI operará en modo SR. Después la propia dirección del esclavo y el bit de
escritura ha sido recibida, la bandera TWINT es uno y el código de estado válido puede ser leído
desde TWSR. El código de estado es usado para determinar la acción de software adecuado. La
acción apropiada puede ser tomada para cada código de estado en la Tabla 20-4- El modo de
receptor Esclavo puede también 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 retornaría a “No reconocido (1) a SDA
después del siguiente byte de datos recibido. Esto puede ser usado para indicar que el esclavo no
es capaz de recibir más bytes. Mientras TWEA es cero, el TWI no reconoce su propia dirección de
esclavo. Sin embargo, el bus Serial 2-hilos esta todavía monitoreado y resumiendo direcciones
puede resumir a cualquier tiempo por la configuración TWEA. Esto implica que el bit TWEA puede
ser usado temporalmente aislando el TWI del 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 todavía reconocer su propia dirección de esclavo o la dirección 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 sostendría el reloj en bajo del SCL durante
el despertado y después la bandera TWINT es limpiada (por la escritura de uno). Mas allá de la
recepción 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 línea 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 reflejaría el ultimo byte presente en el
bus cuando despierta des de el modo sleep.
20.7.4 Modo de Transmisor Esclavo
En el modo de Transmisor Esclavo, el número de bytes de datos son transmitidos desde el
receptor Maestro (ver Figura 20-15). Todos los códigos de estado mencionados en esta sección
asumen que los bits del prescalador son cero o mascaras a cero.
Para iniciar el modo Transmisión esclavo, TWAR y TWCR serían inicializadas como lo siguiente:
Los 7 bits superior son direccionados para cambiar a la interfaz Serial 2-hilos responderán cuando
sea direccionado por el maestro. Si el LSB es uno, el TWI responderá a la dirección de llamada
general (0x00) caso contrario esto ignorará la llamada de direccionamiento general.
TWEN sería 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 serían escritos a cero. Cuando TWAR y TWCR han sido inicializadas, el
TWI espera hasta este direccionamiento por sus propios direcciones de esclavo (o si están
habilitadas las direcciones de llamadas generales) seguido por el bit de dirección de datos. Si el bit
de dirección es “1”, el TWI operará en modo ST. Después la propia dirección del esclavo y el bit de
escritura ha sido recibida, la bandera TWINT es uno y el código de estado válido puede ser leído
desde TWSR. El código de estado es usado para determinar la acción de software adecuado. La
acción apropiada puede ser tomada para cada código de estado en la Tabla 20-5- El modo de
transmisor Esclavo puede también 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 transmitiría el último byte de la
transferencia. El estado 0xC0 o 0xC8 seria entero, dependiendo se el receptor maestro trasmite a
NACK o ACK después del byte final. El TWI es cambiado al no direccionar en modo esclavo, e
ignoraría el Maestro si esto continúa 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 transmisión 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 dirección del
propio Esclavo. Sin Embargo, el bus serial de 2-hilos es todavía monitoreado y el reconocimiento
de dirección 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 todavía
reconocer su propia dirección de esclavo o la dirección 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 sostendría el reloj en bajo del SCL durante
el despertado y después la bandera TWINT es limpiada (por la escritura de uno). Mas allá de la
recepción 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 línea 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 reflejaría el ultimo byte presente en el
bus cuando despierta des de el modo sleep.
20.7.5 Miscellaneous States
Existen dos códigos de estado que no corresponden a la definición del estado TWI, ver tabla 20-6.
Los Estados 0xF8 indican que la información no relevante es disponible porque la bandera TWINT
no esta habilitada. Esto ocurre entres otros estados, y cuando el TWI no esta involucrado en la
transferencia serial. Los estados 0x00 indican que el error del bus ocurre durante transferencia en
el bus serial de 2-hilos (2-wire). El error del bus ocurre cuando una condición de INICIO o PARADA
ocurre en una posición ilegal en el formato de trama. Ejemplos de cómo las posiciones ilegales son
durante la transferencia serial de los byte de dirección, byte de datos, o bits reconocidos. Cuando
un error de bus ocurre, TWINT es habilitado. Para recuperar desde el error de bus, la bandera
TWSTO seria habitada y TWINT seria limpiada por escritura de uno lógico.
Esto causa que TWI no entre al modo de direccionamiento Esclavo y limpiar la bandera TWSTO
(los otros bits en TWCR no son afectados). Las líneas SDA y SCL son soltadas, y las condiciones de
PARADA son transmitidas.
El TWCR es usado para el control de la operación del TWI. Esto es usado para habilitar el TWI, al
iniciar el acceso al Maestro aplicando la condición de INICIO al bus, al generar el reconocimiento
del Receptor, al generar una condición de parada, y al detener el control del bus mientras el dato
es escroto al bus escribiendo al TWRD. Esto también indica la colisión de escritura al TWRD
mientras el registro es inaccesible.
El TWAR debería ser localizado con el 7-bit Esclavo direccionado (en el séptimo bit más
significativo) con lo cual es TWI respondería 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 dirección del Esclavo
(o direcciones de llamado general habilitadas) en la recepción serial de direcciones.
.
• Bits 7:1 – TWA: Registro de direcciones del TWI (Esclavo)
Estos siete bits constituyen la dirección Esclavo de la unidad TWI.
• Bit 0 – TWGCE: Bit de Habilitación del Llamado de Reconocimiento General del TWI
Si esta puesto, esto habilita el llamado de reconocimiento general dado en el bus serial de 2-hilos.
20.9.6TWAMR – Registro de Mascara de Direcciones del TWI (Esclavo)
Cuando cargando los bits ACIS1/ACIS0, la Interrupción del Comparador Analógico sería
deshabilitada limpiando estos bits de habilitación de Interrupciones en el Registro ACSR. Por otra
parte una interrupción puede ocurrir cuando los bits son cambiados.
21.3.3 DIDR1 – Desabilitación de los Registros de Entradas Digitales 1
22.1 Especificaciones:
• Resolución de 10-bits
• Integrador no Lineal 0.5 LSB
• Presición Absoluta ±2 LSB
• Tiempo de Conversión 13 - 260μs
• Máxima Resolución por encima de 15 KSPS
• 8 Canales Multiplexados Simples de Salida
• Modo Diferencial con Ganancia Seleccionable: X1, X10 o X200
• Ajuste opcional Izquierdo para lectura de salida del ADC
• Rango de Voltaje de Entrada del ADC: 0 - VCC
• Rango de Voltaje Diferencial del ADC: 2.7 - VCC
• Voltaje de Referencia Seleccionable ADC: 2.5V o 1.1V
• Modo de Simple Conversión (Free Running)
• Inicio de Conversión ADC por Auto-disparo o Fuente de Interrupción
• Activación de Interrupción al finalizar la Conversión ADC
• En Modo Sleep se cancela el ruido
Nota1. Los canales de entada diferencial no son probados para dispositivos de paquetes P DIP P.
Este elemento esta garantizado para trabajar con dispositivos de paquetes TQFP y QFN/MLF.
Bloque Esquemático del Conversor Analógico Digital
TABLA 1
REFS1 REFS0 SELECCIÓN DEL VOLTAJE DE REFERENCIA
0 0 AREF, Voltaje de referencia interno apagado
0 1 AVCC con capacitor externo en el pin AREF
1 0 Voltaje de referencia interno 1.1V con capacitor en el pin AREF
1 1 Voltaje de referencia interno 2.56V con capacitor en el pin AREF
El bit ADLAR afecta la presentación del resultado de la conversión ADC en el registro de datos del
ADC. Escriba uno en ADLAR para ajustar el resultado hacia la izquierda. De lo contrario, el
resultado es ajustado a la derecha. Cambiando el bit ADLAR afectara inmediatamente el registro
de datos del ADC.
Cuando una conversión del ADC es completada, el resultado es encontrado en estos dos registros.
Si los canales diferenciales son usados el resultado es presentado en complemento a 2.
Cuando el ADCL es leído, el registro de datos ADC no es actualizado hasta que el ADCH es leído.
Consecuentemente si el resultado es ajustado a la izquierda y no se requiere una presición mayor
a 8 bits es suficiente leer el ADCH. De otra forma se debe leer primero el ADCL y luego el ADCH.
El bit ADLAR en el ADMUX y en los bits del MUXn en ADMUX afecta la forma del resultado cuando
es leído de los registros. Si ADLAR es uno el resultado es ajustado a la izquierda. Si el ADLAR es
cero el resultado es ajustado a la derecha.