PIC18F1320_Uso de Los Puertos

TÉCNICAS DIGITALES 2 PIC18F1320 USO DE LOS PUERTOS Autor: Ing. GUILLERMO A. FERNÁNDEZ Carrera de Ingeniería Electrónic

Views 117 Downloads 0 File size 562KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

TÉCNICAS DIGITALES 2

PIC18F1320 USO DE LOS PUERTOS

Autor: Ing. GUILLERMO A. FERNÁNDEZ Carrera de Ingeniería Electrónica – Facultad de Ingeniería Universidad Nacional de Misiones Oberá – Misiones – Argentina

- Año 2013 -

INTRODUCCIÓN Los microcontroladores pueden interactuar con el mundo exterior gracias a sus puertos. Los mismos permiten el ingreso o salida de información. Los puertos están constituidos por una serie de líneas o pines que pueden configurarse individualmente como salida o entrada digital (y en algunos casos como entradas analógicas). A continuación se explica el procedimiento para utilizar los puertos incluidos en el PIC18F1320.

DIAGRAMA DE PINES

PINES COMPARTIDOS Como puede apreciarse en el diagrama de pines, los puertos poseen líneas de E/S compartidas con otras funciones que corresponden a otros módulos internos del microcontrolador.

Puerto A (PORTA)

Puerto B (PORTB)

Este puerto posee 8 líneas de E/S (RA7:RA0). De estas líneas, sólo RA5 es entrada, el resto puede configurarse individualmente como entrada o salida. Las líneas RA3:RA0, están compartidas con las entradas analógicas AN0….AN3. Las líneas RA6 y RA7, sólo pueden utilizarse si el micro está configurado para funcionar con el oscilador interno.

Este puerto posee 8 líneas de E/S (RB7:RB0). Todas las líneas pueden configurarse individualmente como entrada o salida. Las líneas RB0, RB1 y RB4, están compartidas con las entradas analógicas AN4….AN6. Las líneas RB6 y RB7 son utilizadas para la programación del microcontrolador. U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

CONFIGURACIÓN Y LECTURA/ESCRITURA DE LOS PUERTOS Para configurar los puertos como líneas de E/S digitales y efectuar operaciones de lectura y escritura sobre los mismos, los microcontroladores PIC18F1320 disponen de un par de registros denominados TRISx, PORTx y LATx (con x = A o B) para cada puerto. Los registros TRISx permiten configurar individualmente las líneas como entradas o salidas digitales. Mientras que la lectura o escritura de los puertos es efectuada a través de los registros PORTx y LATx. A continuación veremos como se utilizan los registros mencionados. Registros TRISx: Para configurar los pines de los puertos.

0 → Output 1 → Input

Registros PORTx: Para leer o escribir en los pines de los puertos.

Registros LATx: Para leer o escribir en los pines de los puertos. Instrucciones de Lectura-Modificación-Escritura

ESTRUCTURA INTERNA DE UN Pin I/O GENÉRICO

Todas las instrucciones destinadas a escribir sobre un registro GPR o SFR lleva a cabo un proceso de «lectura-modificación-escritura». Cuando la escritura se hará sobre los puertos del micro, esta operación puede ocasionar una falla. Por ejemplo si se desea ejecutar la instrucción «bsf PORTB,6» para poner a UNO el bit 6 del puerto B (RB6), el micro internamente lee todos los pines del puerto B, modifica el valor y luego escribe sobre todo este puerto. Si uno de los pines (distinto de RB6) presenta una tensión fuera del rango permitido para «0» y «1» en las entradas (por ejemplo este pin es utilizado para encender un led, y la corriente entrante al uC eleva el potencial del pin por encima de VILmax), al ejecutarse la instrucción, la lectura del nivel lógico correspondiente al pin será indefinido. Por este motivo, la ejecución de «bsf PORTB,6», puede alterar equivocadamente el estado lógico de la salida que presenta la tensión prohibida (la que enciende el led). Para evitar este inconveniente, los PIC18Fxxx disponen de los registros LAT. Los mismos contienen la salida del latch correspondiente al puerto (PORT) y no la lectura de los estados lógicos de cada pin del puerto. Entonces, ejecutando «bsf LATB,6» en lugar de la instrucción indicada, en el proceso de lectura del puerto para su modificación, se leerán las salidas de los latch del puerto y no el estado lógico que viene de lo pines (la cual puede ser incorrecta) asegurándose así el estado correcto a escribir en el puerto para modificar el bit 6.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

CONFIGURACIÓN Y LECTURA/ESCRITURA DE LOS PUERTOS Configuración y utilización del Puerto A Para configurar el puerto A, debe cargarse el registro TRISA con un código binario. Cada bit de este registro (TRISAx) está relacionado con un línea del puerto A (RAx), y permite determinar si dicha línea o pin será una entrada o una salida. De esta forma tenemos:

TRISAx = 0 → RAx = SALIDA TRISAx = 1 → RAx = ENTRADA Para efectuar la lectura/escritura del puerto A, basta con leer o escribir sobre el registro PORTA. La escritura puede efectuase sobre el puerto completo utilizando la instrucción “movwf PORTA,0”, o sobre una línea del mismo a través de “bsf PORTA,RAx” o “bcf PORTA,RAx” (con x= 0…7; excluyendo 5).

También pueden utilizarse las instrucciones “btfsc PORTA,RAx” y “btfss PORTA,RAx” para leer el estado de una línea del puerto A. Ejemplo: movlw movwf

b’00011100’ TRISA,0

movf

PORTA,W,0

bsf

PORTA,RA0

; Configura RA1:RA0 como ; salidas, RA4:RA2 como ; entradas RA7:RA6 como ; salidas. ; Lee el puerto A. En este ; caso los bits 7, 6, 1 y 0 deberán ; descartarse. ; Pone un “1” en la salida RA0

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

CONFIGURACIÓN Y LECTURA/ESCRITURA DE LOS PUERTOS Funciones de las líneas del Puerto A

Pág. – 89 (Data Sheet) RA4: Salida Drenador Abierto

Registros asociados con el Puerto A ENTRADAS POR DEFECTO Luego de un RESET (de cualquier tipo), todas líneas del Puerto A quedan configuradas como entradas.

Pág. – 89 (Data Sheet)

ENTRADAS ANALÓGICAS POR DEFECTO Luego de un RESET (de cualquier tipo), algunas de las líneas del Puerto A quedan configuradas como entradas ANALÓGICAS. Por lo tanto, en el registro ADCON1 deben configurarse como líneas DIGITALES (ver NOTA1).

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

CONFIGURACIÓN Y LECTURA/ESCRITURA DE LOS PUERTOS Configuración y utilización del Puerto B Para configurar el puerto B, debe procederse de igual forma que en el puerto anterior cargándose el registro TRISB un código binario. Cada bit de este registro (TRISBx) está relacionado con un línea del puerto B (RBx), y permite determinar si dicha línea o pin será una entrada o una salida. De esta forma tenemos:

TRISBx = 0 → RBx = SALIDA TRISBx = 1 → RBx = ENTRADA

Ejemplo: movlw movwf

b’00001111’ TRISB,0

movf

PORTB,W,0

bsf btfss

PORTB,RB4 PORTB,RB0

; Configura RB3:RB0 como ; entradas y RB7:RB4 como ; salidas. ; Lee el puerto A. En este ; caso los bits 7 a 4 deberán ; descartarse. ; Pone un “1” en la salida RB4. ; Lee el estado de RB0 y saltea ; la siguiente instrucción si ; RB0=1.

Para efectuar la lectura/escritura del puerto B, se utilizan las mismas instrucciones que en el puerto A, pero haciendo referencia al registro PORTB.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

CONFIGURACIÓN Y LECTURA/ESCRITURA DE LOS PUERTOS Funciones de las líneas del Puerto B

Pág. – 98 (Data Sheet)

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

CONFIGURACIÓN Y LECTURA/ESCRITURA DE LOS PUERTOS Registros asociados con el Puerto B Pág. – 98 (Data Sheet)

ENTRADAS ANALÓGICAS POR DEFECTO Luego de un RESET (de cualquier tipo), algunas de las líneas del Puerto B quedan configuradas como entradas ANALÓGICAS. Por lo tanto, en el registro ADCON1 deben configurarse como líneas DIGITALES (ver NOTA1).

ENTRADAS POR DEFECTO Luego de un RESET (de cualquier tipo), todas líneas del Puerto B quedan configuradas como entradas.

NOTA1 Para configurar todas las líneas de los puertos como E/S digitales, antes de utilizarlos debe cargarse el registro ADCON1 con el valor FF. Ejemplo: movlw movwf movlw movwf clrf

FFh ADCON1,0 b’00001111’ TRISB,0 PORTB,0

; Las líneas RA3:RA0 , RB1:RB0 y RB4 ; quedan configuradas como E/S digitales. ; Configura RB3:RB0 como entradas ; y RB7:RB4 como salidas. ; Borra el puerto B.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

CARACTERÍSTICAS ELÉCTRICAS IMPORTANTE: EN TODO DISEÑO CON MICROCONTROLADORES DEBEN CONSIDERARSE LAS CARACTERÍSTICAS ELÉCTRICAS DEL DISPOSITIVO QUE VA A UTILIZARSE. POR TAL MOTIVO, A CONTINUACIÓN SE INDICAN ALGUNAS DE LAS CARACTERÍSTICAS DEL PIC18F1320, LAS CUALES DEBERÁN CONSIDERARSE A LA HORA DE DISEÑAR UN SISTEMA EMBEBIDO.

Valores Máximos Absolutos Estos valores son muy importantes ya que son los máximos que nunca deben alcanzarse. La temperatura de trabajo del micro siempre deberá estar entre -40°C y +125°C. El voltaje de alimentación nunca debe alcanzar +5,5V.

El voltaje de programación Vpp nunca debe alcanzar 13,25V.

Las corrientes en las líneas de los puertos nunca deberá alcanzar 25mA, tanto entrante (sink) como saliente (source). EN LO POSIBLE NO DEBERÁ ALCANZAR LOS ±20mA.

Pág. – 237 (Data Sheet) U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

CARACTERÍSTICAS ELÉCTRICAS Valores Normales de Funcionamiento VDD: Voltaje de Alimentación.

VIL: Voltaje de entrada máximo, considerado como “CERO”.

VIH: Voltaje de entrada mínimo, considerado como “UNO”.

II: Corriente entrante o saliente, cuando la línea del puerto se encuentra configurada como entrada.

Pág. – 250 (Data Sheet) U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

CARACTERÍSTICAS ELÉCTRICAS

VOL: Voltaje de Salida, cuando hay un “CERO” en la salida (depende de las condiciones de carga que presenta la salida).

VOH: Voltaje de Salida, cuando hay un “UNO” en la salida (depende de las condiciones de carga que presenta la salida).

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

EJEMPLO DE APLICACIÓN Para comprender la configuración y utilización de los puertos del microcontrolador, a continuación se presenta un ejemplo. En el mismo, un LED es encendido de forma intermitente según un código ingresado en el puerto A del micro. Este código es de dos bits y permite modificar la frecuencia de la intermitencia del LED en cuatro valores distintos. El LED es activado a través de RB3 y el código puede ingresarse en RA1:RA0. El esquema eléctrico del circuito para esta aplicación, está indicado a continuación.

ESQUEMA ELÉCTRICO

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

EJEMPLO DE APLICACIÓN DIAGRAMA DE FLUJO

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

USO DE ESTÍMULOS EN LA SIMULACIÓN CON MPLAB-SIM Estímulos que se pueden simular en MPLAB-SIM

Tipos de estímulos en MPLAB-SIM

Aplicación de los estímulos



Cambios de nivel o pulsos en un pin I/O.



Cambios de valores en registros de propósito general (GPR) y de uso especial (SFR).



ASINCRÓNICO: Puede realizarse el cambio de estado en un pin I/O en cualquier instante, durante la ejecución del programa.



SINCRÓNICO: Puede inyectarse una señal predefinida en un pin I/O, o pueden alterarse los registros SFR y GPR mediante una secuencia preestablecida.



Pueden requerir una duración especificada en tiempo o en ciclos de máquina.



Pueden configurarse para ocurrir cuando se satisface alguna condición. Por ejemplo cuando el programa llega hasta cierta dirección de instrucción.

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

USO DE ESTÍMULOS EN LA SIMULACIÓN CON MPLAB-SIM Para utilizar los estímulos en la simulación, deben realizarse los siguientes pasos:

PASO A: ABRIR VENTANA DE ESTÍMULOS

Menú Debugger → NewWorkbook…

ESTÍMULOS SINCRÓNICOS ESTÍMULOS ASINCRÓNICOS VENTANA DE EDICIÓN Y APLICACIÓN DE ESTÍMULOS Guardar Borrar todos los fila estímulos

Opciones avanzadas

Aplicar Remover cambios a estímulo estímulos previamente aplicado

Cerrar ventana de estímulos

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

USO DE ESTÍMULOS EN LA SIMULACIÓN CON MPLAB-SIM PASO B: CONFIGURAR LOS ESTÍMULOS Para nuestro caso deseamos modificar el estado lógico de la entradas RA0 y RA1, simulando el accionamiento de las llaves S1 y S2 para cambiar la frecuencia de encendido del LED. Por tal motivo se configura estímulos del tipo TOGGLE para RA0 y RA1. Hacer «click» en la primera celda y seleccionar «RA0»

Hacer «click» en la segunda celda y seleccionar «Toggle»

Idem para «RA1»

PASO C: GUARDAR LOS ESTÍMULOS Hacer «click» en el botón «Save» de la ventana de configuración de estímulos. Poner un nombre y guardar. U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

USO DE ESTÍMULOS EN LA SIMULACIÓN CON MPLAB-SIM PASO D: VISUALIZAR ESTIMULOS Y SALIDAS DEL MICRO

Menú View → Simulator Logic Analyzer

Botón para seleccionar entradas y salidas del micro, que se desean seleccionar

Ventana de visualización

PASO E: VISUALIZAR SEÑALES Hacer «click» en el botón «Channels». Seleccionar los pines del micro que se desean ver. Para el ejemplo presentado sería RA0, RA1 (estado de las llaves) y RB3 (salida que enciende el LED).

U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández

USO DE ESTÍMULOS EN LA SIMULACIÓN CON MPLAB-SIM PASO F: APLICAR ESTÍMULOS Una vez ensamblado el programa, correr la simulación de forma «animada». Botón para seleccionar entradas y salidas del micro, que se desean seleccionar

Para aplicar los estímulos a las entradas RA0 y RA1, debe hacerse «click» en:

Haciendo «click» acá, se togglea RA0 Haciendo «click» acá, se togglea RA1 U.Na.M. – Facultad de Ingeniería – Técnicas Digitales 2 – Ing. Guillermo A. Fernández