Está en la página 1de 16

Suscríbete a DeepL Pro para poder editar este documento.

Entra en www.DeepL.com/pro para más información.

13. Puertos de E/S

13.1 Panorama general


Todos los puertos del AVR® tienen una verdadera funcionalidad de lectura-modificación-escritura cuando se utilizan como
puertos de E/S digitales generales. Esto significa que se puede cambiar la dirección de un pin del puerto sin cambiar
involuntariamente la dirección de cualquier otro pin con las instrucciones SBI y CBI. Lo mismo se aplica cuando se cambia
el valor de accionamiento (si se configura como salida) o se habilita/deshabilita las resistencias de pull-up (si se configura
como entrada). Cada búfer de salida tiene características de accionamiento simétricas con alta capacidad de recepción y
fuente. El controlador de pines es lo suficientemente potente como para controlar directamente las pantallas LED. Todos los
pines del puerto tienen resistencias de pull-up seleccionables individualmente con una resistencia invariable a la tensión de
alimentación. Todos los pines de E/S tienen diodos de protección tanto a VCC como a tierra como se indica en
Figura 13-1. Consulte la Sección 28. "Características eléctricas" en la página 258 para ver la lista completa de parámetros.

Figura 13-1. Esquema de equivalencia de las clavijas de E/S

Rpu
Pxn
Lógica

Cpin Ver figura


"E/S digital general"
para los
detalles

Todos los registros y referencias de bits en esta sección están escritos en forma general. Una "x" minúscula representa la
letra de numeración del puerto, y una "n" minúscula representa el número de bit. Sin embargo, cuando se utiliza el registro
o el bit define en un programa, la forma precisa debe ser utilizado. Por ejemplo, PORTB3 para el bit nº 3 del puerto B, aquí
documentado generalmente como PORTxn. Los registros de E/S físicos y las ubicaciones de los bits se enumeran en la
Sección 13.4 "Descripción de los registros" en la página 72.
Se asignan tres direcciones de memoria de E/S para cada puerto, una para el registro de datos - PORTx, otra para el registro
de dirección de datos - DDRx, y otra para los pines de entrada del puerto - PINx. La ubicación de E/S de los pines de
entrada del puerto es de sólo lectura, mientras que el registro de datos y el registro de dirección de datos son de
lectura/escritura. Sin embargo, si se escribe un uno lógico en un bit del registro PINx, se producirá una conmutación en el
bit correspondiente del registro de datos. Además, el bit de desactivación de pull-up - PUD en el MCUCR desactiva la función
de pull-up para todos los pines en todos los puertos cuando se establece.
El uso del puerto de E/S como E/S digital general se describe en la Sección 13.2 "Puertos como E/S digital general" en la
página 59. La mayoría de los pines del puerto están multiplexados con funciones alternativas para las características
periféricas del dispositivo. La forma en que cada función alternativa interfiere con el pin del puerto se describe en la Sección
13.3 "Funciones alternativas del puerto" en la página 63. Consulte las secciones individuales del módulo para obtener una
descripción completa de las funciones alternativas. Tenga en cuenta que la habilitación de la función alternativa de algunos
de los pines del puerto no afecta al uso de los demás pines del puerto como E/S digitales generales.
13.2 Puertos como E/S digitales generales
Los puertos son bidireccionales de E/S con pull-ups internos opcionales. La Figura 13-2 muestra una descripción funcional de un
Pin del puerto de E/S, aquí llamado genéricamente Pxn.

Figura 13-2. E/S digitales generales(1)

WRx, WPx, WDx, RRx, RPx y RDx son comunes a todos los pines de un mismo puerto. clkI/O, SLEEP y PUD
son comunes a todos los puertos.

13.2.1 Configuración de la clavija


Cada pin de puerto consta de tres bits de registro: DDxn, PORTxn y PINxn. Como se muestra en la Sección 13.4 "Descripción
del registro" en la página 72, se accede a los bits DDxn en la dirección de E/S DDRx, a los bits PORTxn en la dirección de
E/S PORTx, y a los bits PINxn en la dirección de E/S PINx.
El bit DDxn en el registro DDRx selecciona la dirección de este pin. Si DDxn se escribe en lógica uno, Pxn se configura
como un pin de salida. Si DDxn se escribe en cero lógico, Pxn se configura como un pin de entrada.
Si en PORTxn se escribe un uno lógico cuando el pin está configurado como pin de entrada, se activa la resistencia
de pull-up. Para conmutar el
Si la resistencia de pull-up está desactivada, PORTxn debe escribirse como cero lógico o el pin debe configurarse como
un pin de salida. Los pines del puerto se triplican cuando se activa la condición de reset, incluso si no hay relojes en
marcha.
Si PORTxn se escribe uno lógico cuando el pin está configurado como un pin de salida, el pin del puerto es conducido
alto (uno). Si PORTxn se escribe un cero lógico cuando el pin está configurado como un pin de salida, el pin del puerto
se conduce a bajo (cero).
13.2.2 Conmutación de la clavija
Escribir un uno lógico en PINxn conmuta el valor de PORTxn, independientemente del valor de DDRxn. Tenga en cuenta
que la instrucción SBI puede utilizarse para conmutar un solo bit en un puerto.

13.2.3 Conmutación entre entrada y salida


Cuando se conmuta entre el triestado ({DDxn, PORTxn} = 0b00) y la salida alta ({DDxn, PORTxn} = 0b11), debe producirse
un estado intermedio con el pull-up habilitado {DDxn, PORTxn} = 0b01) o la salida baja ({DDxn, PORTxn} = 0b10).
Normalmente, el estado de pull-up habilitado es totalmente aceptable, ya que un entorno de alta impedancia no notará la
diferencia entre un driver alto fuerte y un pull-up. Si este no es el caso, el bit PUD en el registro MCUCR se puede establecer
para desactivar todos los pull-ups en todos los puertos.
La conmutación entre la entrada con pull-up y la salida baja genera el mismo problema. El usuario debe utilizar el triestado
({DDxn, PORTxn} = 0b00) o el estado de salida alto ({DDxn, PORTxn} = 0b11) como paso intermedio.
La Tabla 13-1 resume las señales de control para el valor de los pines.

Tabla 13-1. Configuraciones de los pines de los puertos


DDxn PORTxn PUD (en MCUCR) E/S Tirar Comentario
hacia
0 0 X Entrada No Triestado (Hi-Z)
arriba
0 1 0 Entrada Sí Pxn se alimentará de corriente si se tira de ext.
hacia abajo.
0 1 1 Entrada No Triestado (Hi-Z)
1 0 X Salida No Salida baja (hundimiento)
1 1 X Salida No Salida alta (fuente)

13.2.4 Lectura del valor del pin


Independientemente de la configuración del bit de dirección de datos DDxn, el pin del puerto puede leerse a través del bit
de registro PINxn. Como se muestra en la Figura 13-2, el bit de registro PINxn y el latch anterior constituyen un sincronizador.
Esto es necesario para evitar la metaestabilidad si el pin físico cambia de valor cerca del flanco del reloj interno, pero también
introduce un retraso. La Figura 13-3 muestra un diagrama de temporización de la sincronización al leer un valor de pin
aplicado externamente. Los retrasos de propagación máximo y mínimo se denotan tpd,max y tpd,min respectivamente.

Figura 13-3. Sincronización al leer un valor de pin aplicado externamente

Considere el período de reloj que comienza poco después del primer flanco descendente del reloj del sistema. El latch se
cierra cuando el reloj es bajo, y se vuelve transparente cuando el reloj es alto, como indica la región sombreada de la señal
"SYNC LATCH". El valor de la señal se bloquea cuando el reloj del sistema pasa a nivel bajo. Se introduce en el registro
PINxn en el siguiente flanco positivo del reloj. Como indican las dos flechas tpd,max y tpd,min, una sola transición de señal
en el pin se retrasará entre ½ y 1½ período de reloj del sistema, dependiendo del tiempo de afirmación.
Cuando se lee un valor de pin asignado por software, se debe insertar una instrucción nop como se indica en la Figura 13-
4 en la página 61. La instrucción out establece la señal "SYNC LATCH" en el flanco positivo del reloj. En este caso, el
retardo tpd a través del sincronizador es de 1 periodo de reloj del sistema.

Figura 13-4. Sincronización al leer un valor de pin asignado por software

El siguiente ejemplo de código muestra cómo establecer los pines del puerto B 0 y 1 en alto, 2 y 3 en bajo, y definir los pines
del puerto 4 al 7 como entrada con pull-ups asignados a los pines del puerto 6 y 7. Los valores de los pines resultantes se
leen de nuevo, pero como se ha comentado anteriormente, se incluye una instrucción nop para poder leer de nuevo el valor
asignado recientemente a algunos de los pines.
Ejemplo de código ensamblador(1)
...
Definir pull-ups y poner las salidas en alto
Definir las direcciones de los pines del puerto
ldi r16,(1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0)
ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1< < DDB0)
out PORTB,r16
out DDRB,r17
; Insertar nop para la sincronización
nop
; Pines del puerto de lectura
in r16,PINB
...
Ejemplo de código C
unsigned char i;
...
/* Definir pull-ups y poner las salidas en alto */
/* Definir las direcciones de los pines del puerto */
PORTB = (1<<PB7)|(1<< PB6)|(1< < PB1)|(1< <PB0);
DDRB = (1<<DDB3)|(1<< DDB2)|(1< <DDB1)|(1<DDB0);
/* Insertar nop para la sincronización*/
no_operation();
/* Leer los pines del puerto */
i = PINB;
...

Nota: . Para el programa de ensamblaje, se utilizan dos registros temporales para minimizar el tiempo desde que se
establecen los pull-ups en los pines
0, 1, 6, y 7, hasta que los bits de dirección estén correctamente configurados, definiendo los bits 2 y 3 como
bajos y redefiniendo los bits 0 y 1 como conductores altos fuertes.
13.2.5 Habilitación de entradas digitales y modos de reposo
Como se muestra en la Figura 13-2, la señal de entrada digital se puede conectar a tierra en la entrada del disparador
Schmitt. La señal denotada como SLEEP en la figura, es ajustada por el controlador de reposo de la MCU en el modo de
apagado, en el modo de ahorro de energía y en el modo de espera para evitar un alto consumo de energía si algunas
señales de entrada se dejan flotando, o tienen un nivel de señal analógica cercano a VCC/2.
SLEEP se anula para los pines del puerto habilitados como pines de interrupción externa. Si la solicitud de interrupción
externa no está habilitada, SLEEP está activo también para estos pines. SLEEP también es anulado por otras funciones
alternativas como se describe en la Sección 13.3 "Funciones alternativas de los puertos" en la página 63.
Si un nivel lógico alto ("uno") está presente en un pin de interrupción externa asíncrona configurado como "interrupción en
flanco ascendente, flanco descendente o cualquier cambio lógico en el pin" mientras la interrupción externa no está
habilitada, la bandera de interrupción externa correspondiente se activará al reanudar desde el modo de reposo antes
mencionado, ya que la sujeción en estos modos de reposo produce el cambio lógico solicitado.

13.2.6 Pines no conectados


Si algunos pines no se utilizan, se recomienda asegurarse de que estos pines tienen un nivel definido. Aunque la mayoría
de las entradas digitales están deshabilitadas en los modos de reposo profundo, como se ha descrito anteriormente, deben
evitarse las entradas flotantes para reducir el consumo de corriente en todos los demás modos en los que las entradas
digitales están habilitadas (reset, modo activo y modo inactivo).
El método más sencillo para asegurar un nivel definido de un pin no utilizado, es habilitar el pull-up interno. En este caso, el
pull-up se desactivará durante el reinicio. Si el bajo consumo de energía durante el reinicio es importante, se recomienda
utilizar un pull-up o pull-down externo. No se recomienda conectar los pines no utilizados directamente a VCC o GND, ya
que esto puede causar corrientes excesivas si el pin se configura accidentalmente como una salida.
13.3 Funciones de los puertos alternativos
La mayoría de los pines del puerto tienen funciones alternativas además de ser E/S digitales generales. La Figura 13-5
muestra cómo las señales de control de los pines de puerto de la Figura 13-2 simplificada en la página 59 pueden ser
anuladas por funciones alternativas. Las señales de anulación pueden no estar presentes en todos los pines de puerto, pero
la figura sirve como descripción genérica aplicable a todos los pines de puerto de la familia de microcontroladores AVR®.

Figura 13-5. Funciones de los puertos alternativos(1

PUOExn: Pxn PULL-UP OVERRIDE ENABLE PUD: DESACTIVACIÓN DEL PULL-UP


PUOVxn: Pxn VALOR DE ARRASTRE WDx: WRITE DDRx
DDOExn: Pxn DIRECCIÓN DE DATOS HABILITADA RDx: Leer DDRx
DDOVxn: Pxn DIRECCIÓN DE DATOS VALOR DE SOBREPASO RRx: LEER REGISTRO PORTx
PVOExn: Pxn PORT VALUE OVERRIDE ENABLE WRx: PUERTO DE ESCRITURAx
PVOVxn: Pxn VALOR DE PUERTO VALOR DE SOBREPASO RPx: LEER PUERTOx PIN
DIEOExn: Pxn DIGITAL INPUT ENABLE OVERRIDE ENABLE WPx: ESCRIBIR PINx
DIEOVxn: Pxn DIGITAL INPUT ENABLE OVERRIDE VALUE CLK:E/S RELOJ DE E/S
DORMIR: CONTROL DEL SUEÑO DIxn: PIN DE ENTRADA DIGITAL n EN EL
PTOExn: Pxn, PORT TOGGLE OVERRIDE ENABLE AIOxn: PUERTOx
PIN DE ENTRADA/SALIDA ANALÓGICA n EN
EL PUERTOx

Nota: . WRx, WPx, WDx, RRx, RPx y RDx son comunes a todos los pines del mismo puerto. clkI/O, SLEEP y PUD
son comunes a todos los puertos. Todas las demás señales son únicas para cada pin.
La Tabla 13-2 resume la función de las señales de anulación. Los índices de pines y puertos de la Figura 13-5 en la página
63 no se muestran en las tablas siguientes. Las señales de anulación se generan internamente en los módulos que tienen
la función alternativa.

Tabla 13-2. Descripción genérica de las señales de anulación de las funciones alternativas
Nombre de la señal Nombre completo Descripción
Si esta señal está activada, la habilitación del pull-up es controlada por la
PUOE Habilitación de la señal PUOV. Si esta señal está desactivada, el pull-up se habilita cuando
anulación del pull-up {DDxn, PORTxn, PUD} = 0b010.
Si PUOE está activado, el pull-up se activa/desactiva cuando PUOV está
PUOV Valor de anulación del
pull-up activado/desactivado, independientemente de la configuración de los bits
del registro
Si esta señalDDxn,
está PORTxn
activada, ylaPUD.
habilitación del controlador de salida es
Activación de la
DDOE controlada por la señal DDOV. Si esta señal está desactivada, el
dirección de los datos
controlador de salida es habilitado por el bit de registro DDxn.
Valor de anulación de Si DDOE está activado, el controlador de salida se
DDOV
la dirección de los habilita/deshabilita cuando DDOV está activado/desactivado,
datos independientemente de la configuración
Si esta señal está activada del bitdedesalida
y el controlador registro DDxn.
está habilitado, el
Activación del valor
PVOE valor del puerto es controlado por la señal PVOV. Si PVOE está
del puerto
desactivado y el controlador de salida está habilitado, el valor del puerto
es
Si controlado por elPVOE,
se establece bit de registro
el valorPORTxn.
del puerto se establece en PVOV,
PVOV Valor del puerto valor de
independientemente de la configuración del
anulación
Bit del registro PORTxn.
Activación de la
PTOE Si PTOE está activado, el bit del registro PORTxn se invierte.
conmutación de
puertos Si este bit está activado, la habilitación de la entrada digital está controlada
Habilitación de la
DIEOE por la señal DIEOV. Si esta señal está desactivada, la habilitación de la
entrada digital
entrada digital viene determinada por el estado de la MCU (modo normal,
Habilitación de la
Valor de modo de reposo).
Si se establece DIEOE, la entrada digital se activa/desactiva cuando
DIEOV anulación
habilitación de la se establece/desactiva DIEOV, independientemente del estado de la
entrada digital MCU (modo
Esta es normal,
la entrada modo
digital dealternar
para suspensión).
funciones. En la figura, la señal está
conectada a la salida del disparador schmitt pero antes del sincronizador.
DI Entrada digital
A menos que la entrada digital se utilice como fuente de reloj, el módulo
con la función alternativa utilizará su propio sincronizador.
Se trata de la entrada/salida analógica hacia/desde funciones
AIO Entrada/salida analógica
alternativas. La señal se conecta directamente a la almohadilla, y puede
utilizarse bidireccionalmente.
Las siguientes subsecciones describen brevemente las funciones alternativas para cada puerto y relacionan las señales
de anulación con la función alternativa. Consulte la descripción de la función alternativa para obtener más detalles.
13.3.1 Funciones alternativas del puerto B
Los pines del puerto B con funciones alternativas se muestran en la Tabla 13-3.

Tabla 13-3. Pines del puerto B Funciones alternativas


Clavija del Funciones alternativas
puerto
XTAL 2 (clavija del oscilador de reloj del chip 2)
PB7 TOSC2 (clavija del oscilador del temporizador 2)
PCINT7 (interrupción de cambio de clavija )
XTAL1 (pin 1 del oscilador del reloj del chip o entrada de reloj externo)
PB6 TOSC1 (pin 1 del oscilador del temporizador)
PCINT6 (interrupción de cambio de pin 6)
PB5 SCK (entrada de reloj maestro de bus SPI)
PCINT5 (interrupción de cambio de pin 5)
MISO (entrada maestra de bus SPI / salida esclava)
PB4 PCINT4 (interrupción de cambio de pin 4)

MOSI (salida maestra de bus SPI / entrada esclava)


PB3 OC2A (La salida del temporizador / contador 2 compara la salida A)
PCINT3 (interrupción de cambio de pin 3)
SS (selección de esclavo maestro de bus SPI)
PB2 OC1B (salida del temporizador / contador 1 comparar salida B)
PCINT2 (interrupción de cambio de pin 2)
cambio de salida
OC1A (La pin 2) del temporizador / contador 1 compara la salida A)
PB1 PCINT1 (interrupción de cambio de pin 1)
ICP1 (entrada de captura de entrada de temporizador / contador1)
PB0 CLKO (salida de reloj del sistema dividido)
PCINT0 (interrupción de cambio de pin 0)
(interrupción de cambio de pin 0)
La configuración alternativa de los pines es la siguiente:

- XTAL2/TOSC2/PCINT7 - Puerto B, Bit 7


XTAL2: Pin del oscilador del reloj del chip 2. Se utiliza como pin de reloj para el oscilador de cristal o el oscilador de cristal
de baja frecuencia. Cuando se utiliza como pin de reloj, el pin no puede utilizarse como pin de E/S.
TOSC2: Pin del oscilador del temporizador 2. Se utiliza sólo si se selecciona el oscilador RC calibrado interno como fuente
de reloj del chip, y el temporizador asíncrono está habilitado por la configuración correcta en ASSR. Cuando el bit AS2 en
ASSR está activado (uno) y el bit EXCLK está desactivado (cero) para habilitar el reloj asíncrono del
Temporizador/Contador2 utilizando el oscilador de cristal, el pin PB7 se desconecta del puerto, y se convierte en la salida
inversora del amplificador del oscilador. En este modo, un oscilador de cristal está conectado a este pin, y el pin no puede
ser utilizado como un pin de E/S.
PCINT7: Fuente de interrupción de cambio de pin 7. El pin PB7 puede servir como fuente de
interrupción externa. Si PB7 se utiliza como pin de reloj, DDB7, PORTB7 y PINB7 leerán 0.

- XTAL1/TOSC1/PCINT6 - Puerto B, Bit 6


XTAL1: Pin del oscilador del reloj del chip 1. Se utiliza para todas las fuentes de reloj del chip excepto el oscilador RC
calibrado interno. Cuando se utiliza como pin de reloj, el pin no puede ser utilizado como un pin de E/S.
TOSC1: Pin del oscilador del temporizador 1. Se utiliza sólo si se selecciona el oscilador RC calibrado interno como
fuente de reloj del chip, y se habilita el temporizador asíncrono mediante la configuración correcta en el ASSR. Cuando
el bit AS2 en ASSR se establece (uno) para habilitar el reloj asíncrono del Temporizador/Contador2, el pin PB6 se
desconecta del puerto, y se convierte en la entrada del amplificador oscilador inversor. En este modo, se conecta un
oscilador de cristal a esta patilla, y la patilla no puede utilizarse como patilla de E/S.
PCINT6: Fuente de interrupción de cambio de pin 6. El pin PB6 puede servir como fuente de
interrupción externa. Si PB6 se utiliza como pin de reloj, DDB6, PORTB6 y PINB6 leerán 0.
- SCK/PCINT5 - Puerto B, Bit 5
SCK: Salida de reloj maestro, pin de entrada de reloj esclavo para el canal SPI. Cuando el SPI está habilitado como esclavo,
este pin se configura como entrada independientemente de la configuración de DDB5. Cuando el SPI está habilitado como
maestro, la dirección de los datos de este pin está controlada por DDB5. Cuando el pin es forzado por el SPI a ser una
entrada, el pull-up puede seguir siendo controlado por el bit PORTB5.
PCINT5: Fuente de interrupción de cambio de pin 5. El pin PB5 puede servir como fuente de interrupción externa.

- MISO/PCINT4 - Puerto B, Bit 4


MISO: Pin de entrada de datos maestro, salida de datos esclavo para el canal SPI. Cuando el SPI está habilitado como
maestro, este pin se configura como entrada independientemente de la configuración de DDB4. Cuando el SPI está
habilitado como esclavo, la dirección de los datos de este pin está controlada por DDB4. Cuando el pin es forzado por el
SPI a ser una entrada, el pull-up puede seguir siendo controlado por el bit PORTB4.
PCINT4: Fuente de interrupción de cambio de pin 4. El pin PB4 puede servir como fuente de interrupción externa.

- MOSI/OC2/PCINT3 - Puerto B, Bit 3


MOSI: Salida de datos maestros SPI, entrada de datos esclavos para el canal SPI. Cuando el SPI está habilitado como
esclavo, este pin se configura como entrada independientemente de la configuración de DDB3. Cuando el SPI está
habilitado como maestro, la dirección de los datos de este pin está controlada por DDB3. Cuando el pin es forzado por el
SPI a ser una entrada, el pull-up puede seguir siendo controlado por el bit PORTB3.
OC2, salida de comparación: El pin PB3 puede servir como salida externa para la coincidencia de comparación del
Temporizador/Contador2. El pin PB3 tiene que ser configurado como una salida (DDB3 puesto (uno)) para servir a esta
función. El pin OC2 es también el pin de salida para la función de temporizador en modo PWM.
PCINT3: Fuente de interrupción de cambio de pin 3. El pin PB3 puede servir como fuente de interrupción externa.

- SS/OC1B/PCINT2 - Puerto B, Bit 2


SS: Entrada de selección de esclavo. Cuando el SPI está habilitado como esclavo, este pin se configura como entrada
independientemente de la configuración de DDB2. Como esclavo, el SPI se activa cuando este pin se pone a nivel bajo.
Cuando el SPI está habilitado como maestro, la dirección de los datos de este pin está controlada por DDB2. Cuando el
pin es forzado por el SPI a ser una entrada, el pull-up puede seguir siendo controlado por el bit PORTB2.
OC1B, salida de comparación de coincidencia: El pin PB2 puede servir como una salida externa para la comparación del
temporizador/contador1 match B. El pin PB2 tiene que ser configurado como una salida (DDB2 puesto (uno)) para servir
esta función. El pin OC1B es también el pin de salida para la función de temporizador en modo PWM.
PCINT2: Fuente de interrupción de cambio de pin 2. El pin PB2 puede servir como fuente de interrupción externa.

- OC1A/PCINT1 - Puerto B, Bit 1


OC1A, salida de comparación de coincidencia: El pin PB1 puede servir como salida externa para la comparación del
temporizador/contador1 match A. El pin PB1 tiene que estar configurado como salida (DDB1 puesto (uno)) para servir a
esta función. El pin OC1A es también el pin de salida para la función de temporizador en modo PWM.
PCINT1: Fuente de interrupción de cambio de pin 1. El pin PB1 puede servir como fuente de interrupción externa.

- ICP1/CLKO/PCINT0 - Puerto B, Bit 0


ICP1, pin de captura de entrada: El pin PB0 puede actuar como pin de captura de entrada para el Timer/Contador1.
CLKO, reloj del sistema dividido: El reloj del sistema dividido puede salir por el pin PB0. El reloj del sistema dividido se
emitirá si el fusible CKOUT está programado, independientemente de los ajustes de PORTB0 y DDB0. También se emitirá
durante el reinicio.
PCINT0: Fuente de interrupción de cambio de pin 0. El pin PB0 puede servir como fuente de interrupción externa.
La Tabla 13-4 en la página 67 y la Tabla 13-5 en la página 67 relacionan las funciones alternativas del puerto B con las
señales de anulación mostradas en la Figura 13-5 en la página 63. SPI MSTR INPUT y SPI SLAVE OUTPUT constituyen la
señal MISO, mientras que MOSI se divide en SPI MSTR OUTPUT y SPI SLAVE INPUT.
Tabla 13-4. Anulación de señales para funciones alternativas en PB7.. PB4
Señal PB7/XTAL2/ PB6/XTAL1/ PB5/SCK/ PB4/MISO/
Nombre TOSC2/PCINT7(1) TOSC1/PCINT6(1) PCINT5 PCINT4
PUOE INTRC EXTCK + AS2 INTRC + AS2 SPE MSTR SPE MSTR
PUOV 0 0 PORTB5 PUD PORTB4 PUD
DDOE INTRC EXTCK + AS2 INTRC + AS2 SPE MSTR SPE MSTR
DDOV 0 0 0 0
PVOE 0 0 SPE MSTR SPE MSTR
PVOV 0 0 SALIDA SCK SALIDA ESCLAVO SPI
INTRC EXTCK + AS2 + INTRC + AS2 + PCINT6
DIEOE PCINT5 PCIE0 PCINT4 PCIE0
PCINT7 PCIE0 PCIE0
DIEOV (INTRC + EXTCK) AS2 INTRC AS2 1 1
PCINT5 ENTRADA PCINT4 INPUT SPI
DI PCINT7 ENTRADA PCINT6 ENTRADA
SCK ENTRADA MSTR INPUT
AIO Salida del oscilador Entrada del oscilador/reloj - – -–
Nota: . INTRC significa que uno de los osciladores RC internos está seleccionado (por los fusibles CKSEL), EXTCK significa
que
se selecciona el reloj externo (mediante los fusibles CKSEL)

Tabla 13-5. Anulación de señales para funciones alternativas en PB3.. PB0

Señal PB3/MOSI/ PB2/SS/ PB1/OC1A/ PB0/ICP1/


Nombre OC2/PCINT3 OC1B/PCINT2 PCINT1 PCINT0
PUOE SPE MSTR SPE MSTR 0 0
PUOV PORTB3 PUD PORTB2 PUD 0 0
DDOE SPE MSTR SPE MSTR 0 0
DDOV 0 0 0 0
SPE MSTR +
PVOE OC1B ENABLE OC1A ENABLE 0
OC2A ENABLE
SPI MSTR OUTPUT +
PVOV OC1B OC1A 0
OC2A
DIEOE PCINT3 PCIE0 PCINT2 PCIE0 PCINT1 PCIE0 PCINT0 PCIE0
DIEOV 1 1 1 1
PCINT3 ENTRADA PCINT0 ENTRADA ICP1
DI PCINT2 ENTRADA SPI PCINT1 ENTRADA
SPI SLAVE SS ENTRADA
AIO ENTRADA
-– -– -– -–
13.3.2 Funciones alternativas del puerto C
Los pines del puerto C con funciones alternativas se muestran en la Tabla 13-6.

Tabla 13-6. Pines del puerto C Funciones alternativas


Clavija del Función alternativa
puerto
RESET (pin de reset)
PC6
PCINT14 (interrupción de cambio de pin 14)
ADC5 (canal de entrada ADC 5)
PC5 SCL (línea de reloj del bus serie de
2 hilos) PCINT13 (interrupción de
cambio de pinde
ADC4 (canal 13)
entrada ADC 4)
PC4 SDA (línea de entrada/salida de datos del bus
serie de 2 hilos) PCINT12 (interrupción de
cambio de pin de
ADC3 (canal 12)entrada ADC 3)
PC3
PCINT11 (interrupción de cambio
de pin 11)
ADC2 (canal de entrada ADC 2)
PC2
PCINT10 (interrupción de cambio
de pin (canal
ADC1 10) de entrada ADC 1)
PC1
PCINT9 (interrupción de cambio
de pin (canal
ADC0 9) de entrada ADC 0)
PC0
PCINT8 (interrupción de cambio
de pin 8)
La configuración alternativa de los pines es la siguiente:

- RESET/PCINT14 - Puerto C, Bit 6


RESET, pin de reinicio: Cuando el fusible RSTDISBL está programado, este pin funciona como un pin de entrada, y la pieza
tendrá que depender del reinicio de encendido y del reinicio por caída de tensión como sus fuentes de reinicio. Cuando el
fusible RSTDISBL no está programado, el circuito de reinicio está conectado a la patilla, y la patilla no puede utilizarse como
patilla de entrada.
Si PC6 se utiliza como pin de reset, DDC6, PORTC6 y PINC6 leerán 0.
PCINT14: Fuente de interrupción de cambio de pin 14. El pin PC6 puede servir como fuente de interrupción externa.

- SCL/ADC5/PCINT13 - Puerto C, Bit 5


SCL, reloj de la interfaz serie de 2 hilos: Cuando el bit TWEN en TWCR está activado (uno) para habilitar la interfaz serie
de 2 hilos, el pin PC5 se desconecta del puerto y se convierte en el pin de E/S del reloj serie para la interfaz serie de 2 hilos.
En este modo, hay un filtro de picos en el pin para suprimir los picos de menos de 50ns en la señal de entrada, y el pin es
conducido por un controlador de drenaje abierto con limitación de velocidad de giro.
PC5 también puede utilizarse como canal de entrada ADC 5. Tenga en cuenta que el canal de
entrada ADC 5 utiliza energía digital. PCINT13: Pin de cambio de fuente de interrupción 13. El pin
PC5 puede servir como fuente de interrupción externa.

- SDA/ADC4/PCINT12 - Puerto C, Bit 4


SDA, datos de la interfaz serie de 2 hilos: Cuando el bit TWEN en TWCR está activado (uno) para habilitar la interfaz serie
de 2 hilos, el pin PC4 se desconecta del puerto y se convierte en el pin de E/S de datos serie para la interfaz serie de 2
hilos. En este modo, hay un filtro de picos en el pin para suprimir los picos de menos de 50ns en la señal de entrada, y el
pin es conducido por un driver de drenaje abierto con limitación de velocidad de giro.
PC4 también puede utilizarse como canal de entrada ADC 4. Tenga en cuenta que el canal de
entrada ADC 4 utiliza energía digital. PCINT12: Pin de cambio de fuente de interrupción 12. El pin
PC4 puede servir como fuente de interrupción externa.

- ADC3/PCINT11 - Puerto C, Bit 3


PC3 también puede utilizarse como canal de entrada ADC 3. Tenga en cuenta que el canal de
entrada ADC 3 utiliza alimentación analógica. PCINT11: Pin de cambio de fuente de interrupción 11.
El pin PC3 puede servir como fuente de interrupción externa.
- ADC2/PCINT10 - Puerto C, Bit 2
PC2 también puede utilizarse como canal de entrada ADC 2. Tenga en cuenta que el canal de
entrada ADC 2 utiliza alimentación analógica. PCINT10: Pin de cambio de fuente de interrupción
10. El pin PC2 puede servir como fuente de interrupción externa.

- ADC1/PCINT9 - Puerto C, Bit 1


PC1 también puede utilizarse como canal de entrada ADC 1. Tenga en cuenta que el canal de
entrada ADC 1 utiliza energía analógica. PCINT9: Pin de cambio de fuente de interrupción 9. El pin
PC1 puede servir como fuente de interrupción externa.

- ADC0/PCINT8 - Puerto C, Bit 0


PC0 también puede utilizarse como canal de entrada ADC 0. Tenga en cuenta que el canal de
entrada ADC 0 utiliza energía analógica. PCINT8: Pin de cambio de fuente de interrupción 8. El pin
PC0 puede servir como fuente de interrupción externa.
La Tabla 13-7 y la Tabla 13-8 relacionan las funciones alternativas del puerto C con las señales de anulación mostradas en la Figura
13-5 en la página 63.

Tabla 13-7. Anulación de señales para funciones alternativas en PC6.. PC4(1)


Nombre de la PC6/RESET/PCINT14 PC5/SCL/ADC5/PCINT13 PC4/SDA/ADC4/PCINT12
señal
PUOE RSTDISBL DOS DOS
PUOV 1 PORTC5 PUD PORTC4 PUD
DDOE RSTDISBL DOS DOS
DDOV 0 SCL_OUT SDA_OUT
PVOE 0 DOS DOS
PVOV 0 0 0
DIEOE RSTDISBL + PCINT14 PCIE1 PCINT13 PCIE1 + ADC5D PCINT12 PCIE1 + ADC4D
DIEOV RSTDISBL PCINT13 PCIE1 PCINT12 PCIE1
DI PCINT14 ENTRADA PCINT13 ENTRADA PCINT12 ENTRADA
AIO ENTRADA DE RESET ENTRADA ADC5 / ENTRADA SCL ENTRADA ADC4 / ENTRADA
Nota: SDA de giro en los pines de salida PC4
. Cuando está habilitada, la interfaz serie de 2 hilos habilita los controles de velocidad
y PC5. Esto es
no se muestra en la figura. Además, se conectan filtros de picos entre las salidas AIO mostradas en la
figura del puerto y la lógica digital del módulo TWI.

Tabla 13-8. Anulación de señales para funciones alternativas en PC3.. PC0


Señal PC3/ADC3/ PC2/ADC2/ PC1/ADC1/ PC0/ADC0/
Nombre PCINT11 PCINT10 PCINT9 PCINT8
PUOE 0 0 0 0
PUOV 0 0 0 0
DDOE 0 0 0 0
DDOV 0 0 0 0
PVOE 0 0 0 0
PVOV 0 0 0 0
PCINT11 PCIE1 + PCINT10 PCIE1 + PCINT9 PCIE1 + PCINT8 PCIE1 +
DIEOE
ADC3D ADC2D ADC1D ADC0D
DIEOV PCINT11 PCIE1 PCINT10 PCIE1 PCINT9 PCIE1 PCINT8 PCIE1
DI PCINT11 ENTRADA PCINT10 ENTRADA PCINT9 ENTRADA PCINT8 INPUT
AIO ENTRADA ADC3 ENTRADA ADC2 ADC1 ENTRADA ENTRADA ADC0
13.3.3 Funciones alternativas del puerto D
Los pines del puerto D con funciones alternativas se muestran en la Tabla 13-9.

Tabla 13-9. Pines del puerto D Funciones alternativas


Clavija del Función alternativa
puerto
AIN1 (entrada negativa del comparador
PD7
analógico) PCINT23 (Pin Change
Interrupt 23) positiva del comparador analógico)
AIN0 (entrada
PD6 OC0A (salida de comparación del temporizador/contador
0) PCINT22 (interrupción de cambio de pin 22)
T1 (entrada de contador externo del temporizador/contador 1)
PD5 OC0B (salida de comparación del temporizador/contador
0) PCINT21 (interrupción de cambio de pin 21)
XCK (entrada/salida del reloj externo de la
PD4 USART) T0 (entrada del contador externo
del temporizador/contador 0) PCINT20
(interrupción
INT1 (entradade
decambio de pinexterna
interrupción 20) 1)
PD3 OC2B (salida de comparación del temporizador/contador
2) PCINT19 (interrupción de cambio de pin 19)
INT0 (entrada de interrupción
PD2
externa 0) PCINT18 (interrupción
de
TXDcambio
(pin dedesalida
pin 18)
USART)
PD1
PCINT17 (interrupción de cambio de pin 17)
RXD (pin de entrada USART)
PD0
PCINT16 (interrupción de cambio de pin 16)

La configuración alternativa de los pines es


la siguiente:

- AIN1/OC2B/PCINT23 - Puerto D, Bit 7


AIN1, entrada negativa del comparador analógico. Configure el pin del puerto como entrada con el pull-up interno
desactivado para evitar que la función del puerto digital interfiera con la del comparador analógico.
PCINT23: Fuente de interrupción de cambio de pin 23. El pin PD7 puede servir como fuente de
interrupción externa.

- AIN0/OC0A/PCINT22 - Puerto D, Bit 6


AIN0, entrada positiva del comparador analógico. Configure el pin del puerto como entrada con el pull-up interno
desactivado para evitar que la función del puerto digital interfiera con la del comparador analógico.
OC0A, salida de comparación de coincidencia: El pin PD6 puede servir como salida externa para la comparación del
temporizador/contador0 match A. El pin PD6 tiene que ser configurado como salida (DDD6 puesto (uno)) para servir esta
función. El pin OC0A es también el pin de salida para la función de temporizador en modo PWM.
PCINT22: Fuente de interrupción de cambio de pin 22. El pin PD6 puede servir como fuente de
interrupción externa.

- T1/OC0B/PCINT21 - Puerto D, Bit 5


T1, fuente del contador del
Temporizador/Contador1.
OC0B, salida de comparación de coincidencia: El pin PD5 puede servir como una salida externa para la comparación del
temporizador/contador0 match B. El pin PD5 tiene que ser configurado como una salida (DDD5 puesto (uno)) para servir
esta función. El pin OC0B es también el pin de salida para la función de temporizador en modo PWM.
PCINT21: Fuente de interrupción de cambio de pin 21. El pin PD5 puede servir como fuente de
interrupción externa.

- XCK/T0/PCINT20 - Puerto D, Bit 4


XCK, reloj externo USART.
T0, fuente del contador del
temporizador/contador 0.
PCINT20: Fuente de interrupción de cambio de pin 20. El pin PD4 puede servir como fuente de
interrupción externa.
- INT1/OC2B/PCINT19 - Puerto D, Bit 3
INT1, fuente de interrupción externa 1: El pin PD3 puede servir como fuente de interrupción externa.
OC2B, salida de comparación de coincidencia: El pin PD3 puede servir como una salida externa para la comparación del
temporizador/contador0 match B. El pin PD3 tiene que ser configurado como una salida (DDD3 puesto (uno)) para servir
esta función. El pin OC2B es también el pin de salida para la función de temporizador en modo PWM.
PCINT19: Fuente de interrupción de cambio de pin 19. El pin PD3 puede servir como fuente de interrupción externa.

- INT0/PCINT18 - Puerto D, Bit 2


INT0, fuente de interrupción externa 0: El pin PD2 puede servir como fuente de interrupción
externa. PCINT18: Fuente de interrupción de cambio de pin 18. El pin PD2 puede servir como
fuente de interrupción externa.

- TXD/PCINT17 - Puerto D, Bit 1


TXD, transmitir Datos (pin de salida de datos para la USART). Cuando el transmisor USART está habilitado, este pin se
configura como una salida independientemente del valor de DDD1.
PCINT17: Fuente de interrupción de cambio de pin 17. El pin PD1 puede servir como fuente de interrupción externa.

- RXD/PCINT16 - Puerto D, Bit 0


RXD, Receive Data (pin de entrada de datos para la USART). Cuando el receptor USART está habilitado este pin se
configura como una entrada independientemente del valor de DDD0. Cuando la USART fuerza este pin a ser una entrada,
el pull-up puede seguir siendo controlado por el bit PORTD0.
PCINT16: Fuente de interrupción de cambio de pin 16. El pin PD0 puede servir como fuente de interrupción externa.
La Tabla 13-10 y la Tabla 13-11 en la página 72 relacionan las funciones alternativas del puerto D con las señales de anulación
mostradas en
Figura 13-5 en la página 63.

Tabla 13-10. Anulación de señales para funciones alternativas PD7.. PD4


Nombre de la PD7/AIN1/PCINT23 PD6/AIN0/OC0A/PCINT22 PD5/T1/OC0B/PCINT21 PD4/XCK/T0/PCINT20
señal
PUOE 0 0 0 0
PUO 0 0 0 0
DDOE 0 0 0 0
DDOV 0 0 0 0
PVOE 0 OC0A ENABLE OC0B ENABLE UMSEL
PVOV 0 OC0A OC0B SALIDA XCK
DIEOE PCINT23 PCIE2 PCINT22 PCIE2 PCINT21 PCIE2 PCINT20 PCIE2
DIEOV 1 1 1 1
PCINT21 PCINT20 ENTRADA
DI PCINT23 ENTRADA PCINT22 ENTRADA
ENTRADA T1 XCK ENTRADA T0
AIO AIN1 ENTRADA AIN0 ENTRADA ENTRADA
-– ENTRADA
-–
Tabla 13-11. Anulación de señales para funciones alternativas en PD3.. PD0
Señal PD3/OC2B/INT1/ PD2/INT0/ PD1/TXD/ PD0/RXD/
Nombre PCINT19 PCINT18 PCINT17 PCINT16
PUOE 0 0 TXEN RXEN
PUO 0 0 0 PORTD0 PUD
DDOE 0 0 TXEN RXEN
DDOV 0 0 1 0
PVOE OC2B ENABLE 0 TXEN 0
PVOV OC2B 0 TXD 0
INT1 ENABLE + PCINT19 INT0 ENABLE + PCINT18
DIEOE PCINT17 PCIE2 PCINT16 PCIE2
PCIE2 PCIE1
DIEOV 1 1 1 1
PCINT19 PCINT18 PCINT16
DI PCINT17 ENTRADA
ENTRADA INT1 ENTRADA INT0 ENTRADA RXD
AIO ENTRADA
-– ENTRADA
-– -– -–

13.4 Descripción del registro

13.4.1 MCUCR - Registro de control de la MCU


Bit 7 6 5 4 3 2 1 0
0x35 (0x55) - BODS BODSE PUD - - IVSEL IVCE MCUCR
– – –
Lectura/Escrit R R R R/W R R R/W R/W
ura inicial
Valor 0 0 0 0 0 0 0 0

- Bit 4 - PUD: Desactivación del pull-up


Cuando este bit se escribe a uno, los pull-ups en los puertos de E/S se deshabilitan incluso si los registros DDxn y PORTxn
están configurados para habilitar los pull-ups ({DDxn, PORTxn} = 0b01). Para más detalles sobre esta característica,
consulte la sección 13.2.1 "Configuración del pin" en la página 59.

13.4.2 PORTB - El registro de datos del puerto B


Bit 7 6 5 4 3 2 1 0
0x05 (0x25) PORTB7 PORTB6 PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
Lectura/Escrit R/W R/W R/W R/W R/W R/W R/W R/W
ura inicial
Valor 0 0 0 0 0 0 0 0

13.4.3 DDRB - Registro de dirección de datos del puerto B


Bit 7 6 5 4 3 2 1 0
0x04 (0x24) DDB7 DDB6 DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Lectura/Escrit R/W R/W R/W R/W R/W R/W R/W R/W
ura inicial
Valor 0 0 0 0 0 0 0 0

13.4.4 PINB - Dirección de los pines de entrada del puerto B


Bit 7 6 5 4 3 2 1 0
0x03 (0x23) PINB7 PINB6 PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Lectura/Escrit R R R R R R R R
ura inicial
Valor N/A N/A N/A N/A N/A N/A N/A N/A
13.4.5 PORTC - El registro de datos del puerto C
Bit 7 6 5 4 3 2 1 0
0x08 (0x28) - PORTC6 PORTC5 PORTC4 PORTC3 PORTC2 PORTC1 PORTC0 PORTC

Lectura/Escrit R R/W R/W R/W R/W R/W R/W R/W
ura inicial
Valor 0 0 0 0 0 0 0 0

13.4.6 DDRC - Registro de dirección de datos del puerto C


Bit 7 6 5 4 3 2 1 0
0x07 (0x27) - DDC6 DDC5 DDC4 DDC3 DDC2 DDC1 DDC0 DDRC

Lectura/Escrit R R/W R/W R/W R/W R/W R/W R/W
ura inicial
Valor 0 0 0 0 0 0 0 0

13.4.7 PINC - Dirección de los pines de entrada del puerto C


Bit 7 6 5 4 3 2 1 0
0x06 (0x26) - PINC6 PINC5 PINC4 PINC3 PINC2 PINC1 PINC0 PINC

Lectura/Escrit R R R R R R R R
ura inicial
Valor 0 N/A N/A N/A N/A N/A N/A N/A

13.4.8 PORTD - Registro de datos del puerto D


Bit 7 6 5 4 3 2 1 0
0x0B (0x2B) PORTD7 PORTD6 PORTD5 PORTD4 PORTD3 PORTD2 PORTD1 PORTD0 PORTD
Lectura/Escrit R/W R/W R/W R/W R/W R/W R/W R/W
ura inicial
Valor 0 0 0 0 0 0 0 0

13.4.9 DDRD - Registro de dirección de datos del puerto D


Bit 7 6 5 4 3 2 1 0
0x0A (0x2A) DDD7 DDD6 DDD5 DDD4 DDD3 DDD2 DDD1 DDD0 DDRD
Lectura/Escrit R/W R/W R/W R/W R/W R/W R/W R/W
ura inicial
Valor 0 0 0 0 0 0 0 0

13.4.10 PIND - Dirección de los pines de entrada del puerto D


Bit 7 6 5 4 3 2 1 0
0x09 (0x29) PIND7 PIND6 PIND5 PIND4 PIND3 PIND2 PIND1 PIND0 PIND
Lectura/Escrit R R R R R R R R
ura inicial
Valor N/A N/A N/A N/A N/A N/A N/A N/A

También podría gustarte