12 pórticos de los atmega
DESCRIPTION
Funcionamiento de los pórticos de entrada y salida paralela en los ATmegaTRANSCRIPT
![Page 1: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/1.jpg)
PÓRTICOS DE ENTRADA Y
SALIDA PARALELA DE LOS
MICROCONTOLADORES
ATmega
Elaborado por: Ing. Jaime E. Velarde
![Page 2: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/2.jpg)
TERMINALES DE LOS PÓRTICOS
• LOS ATmega164P POSEEN CUATRO PÓRTICOS (A, B, C y D) PARA ENTRADA Y SALIDA PARALELA
• LOS TERMINALES O PINES SE IDENTIFICAN COMO Pxn, ES DECIR:
– PA0, PA1, …. , PA7 PARA EL PÓRTICO A
– PB0, PB1, …. , PB7 PARA EL PÓRTICO B
– PC0, PC1, …. , PC7 PARA EL PÓRTICO C
– PD0, PD1, …. , PD7 PARA EL PÓRTICO D
![Page 3: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/3.jpg)
REGISTROS DE LOS PÓRTICOS
• CADA PÓRTICO ESTÁ FORMADO TRES REGISTROS: PORTx, DDRx y PINx
• CONTIENEN 8 LATCHES PARA LOS 8 BITS
• LOS BITS SE IDENTIFICAN COMO PORTxn, DDRxn y PINxn:
– PORTx0, PORTx1, …. , PORTx7
– DDx0, DDx1, …. , DDx7
– PINx0, PINx1, …. , PINx7
![Page 4: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/4.jpg)
FUNCIÓN DE LOS LATCHES
• PORTxn: CONTIENEN LOS BITS QUE
APARECEN EN LOS PINES CUANDO
SON PROGRAMADOS COMO SALIDAS
• DDxn: SON LOS BITS QUE DEFINEN SI
LOS PINES SON PROGRAMADOS
COMO ENTRADAS O COMO SALIDAS
• PINxn: CONTIENEN LOS BITS QUE SE
ENCUENTRAN EN LOS PINES, YA
CUANDO SON ENTRADAS O SALIDAS
![Page 6: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/6.jpg)
DIAGRAMA DE BLOQUES DE
LOS BITS DE LOS PÓRTICOS
TERMINAL O
PIN del
PÓRTICO
LATCH del
BIT DDxn
BUFFER del
BIT DDxn
LATCH del
BIT PORTxn
BUFFER del
BIT PORTxn
BUFFER del
BIT PINxn
LATCH
SINCRONIZADO
del BIT PINxn
INTERRUPTOR
ANALÓGICO
activado por el
CONTROL para
DORMIR
BUFFER de
SALIDA
CONTROL de la
RESISTENCIA de
PULL-UP
![Page 7: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/7.jpg)
ACCIÓN DEL RESET SOBRE LOS
PÓRTICOS
BIT
DDxn = 0L
BIT
PORTxn = 0LPxn en ALTA
IMPEDANCIA
DESACTIVADO el
CONTROL para
DORMIR, queda
configurado como
ENTRADA
PULL-UP
DESACTIVADO
![Page 8: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/8.jpg)
DESPUÉS DEL RESET LOS
PÓRTICOS SON ENTRADAS
• LOS DDRxn QUEDAN CON CERO
LÓGICO, QUE DESHABILITAN LOS
BUFFERS DE SALIDA
• LOS PORTxn TAMBIÉN QUEDAN CON
CERO LÓGICO, QUE DESACTIVAN LAS
RESISTENCIAS DE PULL-UP
• COMO CONSECUENCIA LOS
TERMINALES Pxn ESTÁN COMO
ENTRADAS, EN ALTA IMPEDANCIA
![Page 9: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/9.jpg)
LECTURA DE CERO LÓGICO DESDE EL
TERMINAL DEL PÓRTICO
LECTURA
desde
PINxn = 0L
LATCH PINxn
SINCRONIZADO
para retener la
señal de entrada
SEÑAL
EXTERNA
igual a 0L
![Page 10: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/10.jpg)
LECTURA DE UNO LÓGICO DESDE EL
TERMINAL DEL PÓRTICO
LECTURA
desde
PINxn = 1L
LATCH PINxn
SINCRONIZADO
para retener la
señal de entrada
SEÑAL
EXTERNA
igual a 1L
![Page 11: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/11.jpg)
SINCRONISMO DE LOS
LATCHES DE ENTRADA• LO QUE SE LEE DESDE EL LATCH PINxn, ES
LO QUE ESTUVO PRESENTE EN EL PIN MEDIO CICLO ANTES DE EJECUTAR LA INSTRUCCIÓN DE LECTURA
![Page 12: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/12.jpg)
INSTRUCCIONES PARA LEER
DESDE LOS TERMINALES
• SE PUEDEN LEER LOS 8 BITS DESDE
UN PÓRTICO CON LA INSTRUCCIÓN:
IN Rd,PINx
• SE PUEDE CHEQUEAR UN SOLO BIT
DEL PÓRTICO CON LAS
INSTRUCCIONES:
SBIC PINx,b
SBIS PINx,b
Lectura de un Reg de E/S
IN Rd,A
Omitir la siguiente
instrucción de acuerdo al
estado del bit del Reg de E/S
SBIC A,b
SBIS A,b
![Page 14: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/14.jpg)
INSTRUCCIONES PARA LEER DE
LOS OTROS REGISTROS
• TAMBIÉN SE PUEDEN LEER LOS 8 BITS DE
PORTx o DDRx CON:
IN Rd,PORTx
IN Rd,DDRX
• TAMBIÉN SE PUEDE CHEQUEAR UN SOLO
BIT PORTxn o DDRxn:
SBIC PORTx,b
SBIS PORTx,b
SBIC DDRx,b
SBIS DDRx,b
Lectura de un Reg de E/S
IN Rd,A
Omitir la siguiente
instrucción de acuerdo al
estado del bit del Reg de E/S
SBIC A,b
SBIS A,b
![Page 15: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/15.jpg)
LECTURA DE TERMINALES SIN
CONEXIÓN EN EL PÓRTICO
Incertidumbre en
la LECTURA
desde PINxn
Pxn SIN
SEÑAL
EXTERNA
![Page 16: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/16.jpg)
HABILITACIÓN DE PULL-UP EN
LOS PÓRTICOS DE ENTRADA
ESCRITURA
de 1L en
PORTnx
PULL-UP
ACTIVADO
de 20 a 50 KΩ
LECTURA
desde
PINxn = 1L
Pxn SIN
SEÑAL
EXTERNA
![Page 17: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/17.jpg)
PROGRAMACIÓN DEL PÓRTICO
COMO SALIDA
SEÑAL en
Pxn = 0L
LECTURA
desde
PINxn = 0L
LECTURA
desde
PORTxn = 0L
ESCRITURA
de 1L en
DDnx
![Page 18: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/18.jpg)
PÓRTICOS DE SALIDA DESPUÉS
DEL RESET
• AL PROGRAMAR COMO SALIDA
INMEDIATAMENTE DESPUÉS DEL
RESET, SALEN CERO LÓGICO; YA
QUE LOS BITS PORTxn TIENEN CERO
• EL VOLTAJE MÁXIMO DE CERO
LÓGICO (VOL MAX) ES DE 0,7V CON
IOL=20mA Y CON VCC=5V
• IOL de todo el PÓRTICO < 100mA
• IOL de todos los PÓRTICOS < 400mA
![Page 19: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/19.jpg)
SALIDA DE UNO LÓGICO POR EL
PÓRTICO
SEÑAL en
Pxn = 1L
LECTURA
desde
PINxn = 1L
LECTURA
desde
PORTxn = 1L
![Page 20: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/20.jpg)
CARGAS EN LAS SALIDAS
• EL VOLTAJE MÍNIMO DE UNO LÓGICO
(VOH MIN) ES DE 4,2V CON IOH=-20mA Y
CON VCC=5V
• SE PUEDE MANEJAR LEDS CON
RESISTENCIAS LIMITADORAS DE
CORRIENTE
• IOH de todo el PÓRTICO < 100mA
• IOH de todos los PÓRTICOS < 200mA
![Page 21: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/21.jpg)
SALIDA DE CERO LÓGICO POR
EL PÓRTICO
SEÑAL en
Pxn = 0L
LECTURA
desde
PINxn = 0L
LECTURA
desde
PORTxn = 0L
![Page 22: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/22.jpg)
SINCRONISMO DE LA SALIDA
CON LA ENTRADA
• PARA LEER LO QUE SE ESCRIBE EN
EL PÓRTICO ES NECESARIO DEJAR
PASAR UN CICLO COMPLETO
![Page 23: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/23.jpg)
INSTRUCCIONES PARA
ESCRIBIR EN LOS PÓRTICOS
• SE PUEDEN ESCRIBIR LOS 8 BITS EN
UN PÓRTICO CON LA INSTRUCCIÓN:
OUT PORTx,Rr
• SE PUEDE ESCRIBIR EN UN SOLO BIT
DEL PÓRTICO CON LAS
INSTRUCCIONES:
SBI PORTx,b
CBI PORTx,b
Escritura de un Reg de E/S
OUT A,Rr
Poner Uno en o Borrar el
bit del Reg de E/S
SBI A,b
CBI A,b
![Page 24: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/24.jpg)
INSTRUCCIONES PARA
CONFIGURAR LOS PÓRTICOS
• SE PUEDEN CONFIGURAR TODO EL
PÓRTICO CON LA INSTRUCCIÓN:
OUT DDRx,Rr
• SE PUEDE CONFIGURAR UN SOLO BIT
DEL PÓRTICO CON LAS
INSTRUCCIONES:
SBI DDRx,b
CBI DDRx,b
Escritura de un Reg de E/S
OUT A,Rr
Poner Uno en o Borrar el
bit del Reg de E/S
SBI A,b
CBI A,b
![Page 26: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/26.jpg)
BIT PUD (PULL-UP DISABLE)
• EN EL ATmega164P, EL REGISTRO DE CONTROL DE MCU (MCUCR), CONTIENE EL BIT PARA DESHABILITAR EL PULL-UP DE TODOS LOS PÓRTICOS
• DESPUÉS DEL RESET PUD = 0L
• SE UTILIZA PARA CONTROLAR EL CONSUMO DE CORRIENTE
![Page 27: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/27.jpg)
ACTIVACIÓN DEL CONTROL
PARA DORMIR
ACTIVADO el
CONTROL para
DORMIR, queda
abierto el SWITCH
ANALÓGICO
Y la entrada a
la Compuerta
a Tierra
![Page 28: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/28.jpg)
SLEEP
• LAS ENTRADAS SON ASEGURADAS A TIERRA EN LA ENTRADA DE LA COMPUERTA SCHMITT-TRIGER, CUANDO SE ACTIVA EL CONTROL PARA DORMIR EN LOS SIGUIENTES CASOS:
– MODO STANDBY
– MODO STANDBY EXTENDIDO
– MODO PARA CUIDAR EL CONSUMO
– MODO PARA BAJAR EL CONSUMO
![Page 29: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/29.jpg)
RESUMEN DEL
FUNCIONAMIENTO
DDRxn PORTxn PUD E/S PULL-UP COMENTARIO
0 0 X E NO ALTA IMPEDANCIA
0 1 0 E SI ENTREGA CORRIENTE
0 1 1 E NO ALTA IMPEDANCIA
1 0 X S NO VOL (DRENAJE)
1 1 X S NO VOH (FUENTE)
![Page 30: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/30.jpg)
EJEMPLO 1 DE LECTURA DESDE
UN PÓRTICO
• LEER LOS 8 BITS DEL PÓRTICO D,
LOS QUE ESTÁN CONTROLADOS
MEDIANTE 8 DIP-SWITCHES:
LDI R16,$00
OUT DDRD,R16
LDI R16,$FF
OUT PORTD,R16- - - - - - - - - - - - - - - - - -
IN R16,PIND
Configuración del
Pórtico D como entrada
(Opcional)
Activación de las
8 resistencias de
Pull-up
Lectura desde el Pórtico
![Page 31: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/31.jpg)
SIMULACIÓN DEL EJEMPLO 1
DE LECTURA
![Page 32: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/32.jpg)
EJEMPLO 2 DE LECTURA DESDE
UN PÓRTICO
• LEER LOS 4 BITS BAJOS DEL
PÓRTICO C, CONTROLADOS POR 4
DIP-SWITCHES:
LDI R16,$00
OUT DDRC,R16
LDI R16,$0F
OUT PORTC,R16- - - - - - - - - - - - - - - - - -
IN R16,PINC
Configuración del
Pórtico C como entrada
(Opcional)
Activación de las
4 resistencias de
Pull-up
Lectura desde el Pórtico
![Page 33: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/33.jpg)
SIMULACIÓN DEL EJEMPLO 2
DE LECTURA
![Page 34: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/34.jpg)
EJEMPLO 1 PARA BIFURCAR
POR UN BIT DEL PÓRTICO
• LEER EL BIT 6 DEL PÓRTICO B
CONTROLADO POR UN INTERRUPTOR
Y SALTAR SI ESTÁ ABIERTO:
LDI R16,$40
OUT PORTB,R16- - - - - - - - - - - - - - - - - -
SBIC PINB,6
RJMP ABIERTO- - - - - - - - - - - - - - - - - -
Activación de la
resistencia de
Pull-up
Omite la siguiente
instrucción si el bit
del Pórtico es 0
Salta si el interruptor
está abierto
![Page 35: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/35.jpg)
SIMULACIÓN DEL EJEMPLO 1
PARA BIFURCAR
![Page 36: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/36.jpg)
EJEMPLO 2 PARA BIFURCAR
POR UN BIT DEL PÓRTICO
• LEER EL BIT 3 DEL PÓRTICO D
CONTROLADO POR UN PULSANTE Y
SALTAR SI ESTÁ ACTIVADO:
LDI R16,$08
OUT PORTD,R16- - - - - - - - - - - - - - - - - -
SBIS PIND,3
RJMP ACTIVADO- - - - - - - - - - - - - - - - - -
Activación de la
resistencia de
Pull-up
Omite la siguiente
instrucción si el bit
del Pórtico es 1
Salta si el pulsante
está cerrado
![Page 37: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/37.jpg)
SIMULACIÓN DEL EJEMPLO 2
PARA BIFURCAR
![Page 38: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/38.jpg)
EJEMPLO 1 DE ESCRITURA EN
UN PÓRTICO
• MOSTRAR EL NÚMERO 3 MEDIANTE
UN DISPLAY DE CÁTODO COMÚN
CONECTADO AL PÓRTICO A:
LDI R16,$FF
OUT DDRA,R16- - - - - - - - - - - - - - - - - -
LDI R16,0b01001111
OUT PORTA,R16
Configuración del
Pórtico A como salida
Encendido de
los segmentos
para formar el
número 3
![Page 39: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/39.jpg)
SIMULACIÓN DEL EJEMPLO 1
DE ESCRITURA
![Page 40: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/40.jpg)
EJEMPLO 2 DE ESCRITURA EN
UN PÓRTICO
• MOSTRAR EL NÚMERO 4 MEDIANTE
UN DISPLAY DE ÁNODO COMÚN
CONECTADO AL PÓRTICO C:
LDI R16,$FF
OUT DDRC,R16- - - - - - - - - - - - - - - - - - -
LDI R16,0b10011001
OUT PORTC,R16
Configuración del
Pórtico C como salida
Encendido de
los segmentos
para formar el
número 4
![Page 41: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/41.jpg)
SIMULACIÓN DEL EJEMPLO 2
DE ESCRITURA
![Page 42: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/42.jpg)
EJEMPLO DE UN PÓRTICO
COMO ENTRADAS Y SALIDAS
• CONFIGURAR AL PÓRTICO B PARA QUE LOS 4
BITS ALTOS SEAN ENTRADAS CONTROLADAS
POR DIP-SWITCHES, LOS 3 SIGUIENTES BITS
BAJOS MANEJEN LEDS Y EL ÚLTIMO BIT LEA EL
ESTADO DE UN PULSANTE:
LDI R16,$0E
OUT DDRB,R16
LDI R16,$F1
OUT PORTB,R16- - - - - - - - - - - - - - - - - - -
Configuración del
Pórtico B
Activación de las
resistencias de
Pull-up para las
entradas
![Page 43: 12 Pórticos de los Atmega](https://reader034.vdocuments.site/reader034/viewer/2022052205/5593aa1a1a28ab52068b461b/html5/thumbnails/43.jpg)
SIMULACIÓN DEL EJEMPLO
COMO ENTRADAS Y SALIDAS