clase - puertos

26
Clase: Puertos de los microcontroladores PIC 1 Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital II Tecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras ELECTRÓNICA DIGITAL II Clase 2

Upload: tecnicaturaenelectronica

Post on 30-Jun-2015

130 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

1

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

ELECTRÓNICA DIGITAL II

Clase 2

Page 2: Clase - Puertos

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

TEORÍA PARTE 1: PUERTOS DE LOS MICROCONTROLADORES

PIC

2Clase: Puertos de los microcontroladores PIC

Page 3: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

3

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

¿Qué es un PUERTO?

Un puerto de un microcontrolador es un terminal del chip por donde entra o sale información en forma de bits, 0 ó 1 (masa ó VCC).

Un microcontrolador es más poderoso cuanto más puertos tiene, puesto que tiene una mayor capacidad de control.

Los puertos individuales se agrupan en “PORTS”, de esta manera pueden trabajar juntos a nivel de palabra o byte.

Los puertos pueden ser configurados individualmente por el usuario para que cumplan una determinada función en la aplicación.

Cada pin de un puerto multiplexa diferentes funciones, algunas de ellas muy disímiles entre sí. Un puerto no puede ser configurado para cumplir dos funciones al mismo tiempo.

Page 4: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

4

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Configuración de los PUERTOS

Luego de un RESET, todos los puertos son configurados como entradas.

Los puertos, en general se configuran al inicio del programa de aplicación.

Cada puerto tiene 2 o 3 registros asociados: TRISx, PORTx y LATx. Los micros de la línea 16FXXX no tienen el registro LATx.

Adicionalmente, cuando funcionan como terminal de un periférico, es necesario además configurar el registro asociado a tal periférico.

Page 5: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

5

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Registros asociados a la configuración de puertos para PIC16F84

Page 6: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

6

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Registros asociados a la configuración de puertos para PIC16F873

Page 7: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

7

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Registros TRIS

Cada puerto tiene asignado un registro TRIS. Al puerto A le corresponde el TRISA, al puerto B el TRISB, etc.

El registro TRISx se usa para indicar si el puerto será usado como entrada o salida digital. Cada terminal puede configurarse individualmente.

El bit 0 de TRISx configura al puerto Rx0, el bit 7 configura al Rx7.

Un 1 en un bits de TRISx configura al puerto correspondiente como entrada; un 0 lo configura como salida.

Page 8: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

8

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Registros PORT

Cada puerto tiene asignado un registro PORT. Al puerto A le corresponde el PORTA, al puerto B el PORTB, etc.

El registro PORTx se usa para leer el estado del puerto o para sacar información por él. Los puertos pueden leerse o escribirse individualmente o agrupados todo el puerto completo

El bit 0 de PORTx controla el puerto Rx0, el bit 7 controla al Rx7.

En microcontroladores más modernos, existe un registro adicional llamado LATx. En estos micros, los datos se leen mediante el registro PORTx y se sacan mediante el LATx.

Page 9: Clase - Puertos

Clase: Puertos de los microcontroladores PIC 9

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Distribución de pines del PIC16F84

Page 10: Clase - Puertos

Clase: Puertos de los microcontroladores PIC 10

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

PIC16F84: función de cada terminal

Page 11: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

11

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

PIC16F84: Puerto A

El Puerto A tiene un ancho de 5 bits (RA0-RA4)

Las entradas tienen niveles lógicos TTL, excepto RA4.

Las salidas tienen niveles lógicos CMOS, excepto RA4.

RA4 tiene niveles lógicos Schmitt Trigger como entrada y colector abierto como salida.

RA4 multiplexa la entrada de reloj del TIMER0.

Page 12: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

12

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

PIC16F84: Puerto B

El Puerto B tiene un ancho de 8 bits (RB0-RB7)

Las entradas tienen niveles lógicos TTL.

Las salidas tienen niveles lógicos CMOS.

Todos los pines de puerto B tienen resistencias de pull-up que son habilitadas borrando el bit RBPU del registro OPTION_REG.

El nibble superior (RB4-RB7) incorpora una petición de interrupción por cambio en alguno de sus pines, cuando están configurados como entradas. Pueden despertar al microcontrolador de una condicíón SLEEP.

Page 13: Clase - Puertos

Clase: Puertos de los microcontroladores PIC 13

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Distribución de pines del PIC16F873

Page 14: Clase - Puertos

Clase: Puertos de los microcontroladores PIC 14

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

TEORÍA PARTE 2: ENTORNO DE DESARROLLO MPLAB.SIMULACIÓN DE PROGRAMAS

Page 15: Clase - Puertos

Clase: Puertos de los microcontroladores PIC 15

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Simulación de programas

El entorno de desarrollo MPLAB permite simular el funcionamiento del programa principal. De esta manera es posible ver si el programa se desempeña según lo pensado y realizarle correcciones.

Durante la simulación es posible observar el estado de los registros internos y puertos del microcontrolador y de las variables definidas dentro del programa.

También es posible aplicar señales digitales a los puertos definidos como entradas.

Page 16: Clase - Puertos

Clase: Puertos de los microcontroladores PIC 16

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Simulación de programas

Para usar el simulador es necesario habilitarlo. Para ello hay que tildar la opción 5 MPLABSIM que está dentro de Select Tool en la pestaña Debugger.

Page 17: Clase - Puertos

Clase: Puertos de los microcontroladores PIC 17

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Corriendo el programa

Una vez que el programa ha sido compilado exitosamente y el simulador fue habilitado, se puede correr el programa usando las teclas de funciones:

• F6 Reset: apunta el contador de programa a la primera instrucción, es una inicialización.

• F7 Step into: ejecución instrucción por instrucción, ingresa a una función si la encuentra.

• F8 Step over: ejecuta una función completa en un solo paso.

• F9 Run: corre el programa libremente. En caso de encontrar una condición de ¨break¨ la ejecución se detiene allí.

• F5 Halt: detiene la ejecución del programa si estaba en bajo la acción de F8 o F9.

Page 18: Clase - Puertos

Clase: Puertos de los microcontroladores PIC 18

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Ventana de observación

El estado de los registros internos, puertos o variables del programa se pueden ver a través de la ventana de observación o ¨Watch Window¨

La ventana de observación se habilita desde la pestaña View en la opción Watch.

Page 19: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

19

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Ventana de observación

En la ventana se van agregando los registros, puertos o variables que se desean ver.

Se puede elegir el formato de presentación: hexa, binario, decimal, etc.

Durante la simulación, cada variable o registro que cambia su estado es resaltada en color rojo.

Page 20: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

20

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Ventana de estímulos

La ventana de estímulos permite simular la aplicación de señales sincrónicas o asincrónicas a los puertos de entrada. De esta forma se amplia la capacidad de verificación y depuración de errores de un programa.

Para utilizar la ventana de estímulos hay que crear una nueva ventana o abrir una previamente grabada. Una ventana de estímulos tiene un nombre y una ubicación dentro del directorio.

Page 21: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

21

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Cómo crear una ventana de estímulos

La ventana de estímulos se abre desde la pestaña Debugger, seleccionando la opción New Workbook dentro de la opción Stimulus.

Page 22: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

22

Cómo crear un estímulo asincrónico

Un estímulo asincrónico es aquel que no depende del reloj del microcontrolador, sino que se puede aplicar en cualquier momento.

Para adicionar una señal asincrónica es necesario seleccionar la pestaña Asinch dentro de la ventana. Luego se eligen en los casilleros correspondientes: el puerto al que se aplicará la señal, la acción sobre este y algún comentario.

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Page 23: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

23

Cómo crear un estímulo asincrónico

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Finalmente se guarda la ventana dándole un nombre y ubicación desde la pestaña Debugger, seleccionando la opción Save Workbook as dentro de la opción Stimulus.

Page 24: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

24

Cómo crear un estímulo sincrónico

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Un estímulo sincrónico es aquel que depende directamente del reloj del microcontrolador y es procesaro con cada ciclo de instrucción.

Para adicionar una señal sincrónica es necesario seleccionar la pestaña Clock Stimulus dentro de la ventana de estímulos.

Como en el caso anterior hay que definir el puerto al que se aplicará la señal sincrónica, la duración del ciclo alto y del bajo, cuál será el semiciclo inicial, cuando comenzará a aplicarse y cuando cesará.

Page 25: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

25

Cómo crear un estímulo sincrónico

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Page 26: Clase - Puertos

Clase: Puertos de los microcontroladores PIC

26

Escuela Normal Superior Dr. Nicolás Avellaneda Cátedra: Electrónica Digital IITecnicatura Superior en Electrónica Industrial Profesor: Ing. Gabriel Argañaras

Fuente de información

• Hoja de datos del microcontrolador PIC16F84 y PIC16F882 proporcionada por MICROCHIP en su página web.