12 pórticos de los atmega

43
[email protected] 1 PÓRTICOS DE ENTRADA Y SALIDA PARALELA DE LOS MICROCONTOLADORES ATmega Elaborado por: Ing. Jaime E. Velarde

Upload: jaime-e-velarde

Post on 01-Jul-2015

5.689 views

Category:

Education


2 download

DESCRIPTION

Funcionamiento de los pórticos de entrada y salida paralela en los ATmega

TRANSCRIPT

Page 1: 12 Pórticos de los Atmega

[email protected] 1

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

[email protected] 2

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

[email protected] 3

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

[email protected] 4

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 5: 12 Pórticos de los Atmega

[email protected] 5

DIRECCIONES DE LOS

PÓRTICOS EN EL ATmega164P

Page 6: 12 Pórticos de los Atmega

[email protected] 6

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

[email protected] 7

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

[email protected] 8

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

[email protected] 9

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

[email protected] 10

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

[email protected] 11

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

[email protected] 12

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 13: 12 Pórticos de los Atmega

[email protected] 13

LECTURAS DESDE PORTx y

DDRx

LECTURA

desde

PORTxn = 0L

LECTURA

desde

DDxn = 0L

Page 14: 12 Pórticos de los Atmega

[email protected] 14

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

[email protected] 15

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

[email protected] 16

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

[email protected] 17

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

[email protected] 18

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

[email protected] 19

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

[email protected] 20

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

[email protected] 21

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

[email protected] 22

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

[email protected] 23

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

[email protected] 24

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 25: 12 Pórticos de los Atmega

[email protected] 25

DESHABILITACIÓN DE TODOS

LOS PULL-UP

PULL-UP

DESACTIVADO

Page 26: 12 Pórticos de los Atmega

[email protected] 26

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

[email protected] 27

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

[email protected] 28

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

[email protected] 29

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

[email protected] 30

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 32: 12 Pórticos de los Atmega

[email protected] 32

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 34: 12 Pórticos de los Atmega

[email protected] 34

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 36: 12 Pórticos de los Atmega

[email protected] 36

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 38: 12 Pórticos de los Atmega

[email protected] 38

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 40: 12 Pórticos de los Atmega

[email protected] 40

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 42: 12 Pórticos de los Atmega

[email protected] 42

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