tema4 puertos

Upload: jo-se

Post on 02-Mar-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 TEMA4 Puertos

    1/13

    1

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    1

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    2

    Puertos de Entrada/Salida

    Pines de entrada/salida (I/O) de propsito general

    Mediante ellos, el micro PIC puede monitorizar y controlar otrosdispositivos.

    Para aadir flexibilidad al micro, muchos de sus pines deentrada/salida estn multiplexados con funciones alternativas.

    Para la mayora de los puertos, la direccin del pin I/O es controladapor el registro de direccin de datos, llamado TRIS. TRISX controlala direccin del pin n del puerto X.

    Un 1 en el registro TRIS indica que el pin es entrada. Un 0 indica quees salida.

  • 7/26/2019 TEMA4 Puertos

    2/13

    2

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    3

    Estructura tpica de un puerto de entrada/salidade propsito general.

    El valor de RESET de los registros TRIS suele ser un 1, de forma que pordefecto los pines estn configurados como entradas evitando posibles cortocircuitosen la alimentacin que podran daar el micro o el resto del sistema.

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    4

    Cuando una funcin est multiplexada en un pin de I/O de proposito general, lafuncionalidad de un pin puede cambiar para acomodarse a los requisitos del mduloperifrico. Por ejemplo, si un micro tiene un conversor A/D, los pines asociados a

    este mdulo estn configurados en un RESET como entradas analgicas para evitarun consumo de corriente excesivo en el buffer de dicho pin si este estuvieraconfigurado como entrada digital y el valor de tensin en el pin estuviera a un nivelintermedio.

    El registro PORT funciona como un latch para los datos de salida. Cuando elregistro PORT se lee (Ej, MOVF PORTB,W), el micro lee los niveles presentesen los pines de I/O (no en los latches).

  • 7/26/2019 TEMA4 Puertos

    3/13

  • 7/26/2019 TEMA4 Puertos

    4/13

    4

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    7

    Los pines RA0:3 y RA5 de este puertotienen como funcin alternativa ser partedel modulo conversor A/D. RA5 tambinpuede ser una entrada de seleccin deesclavo del mdulo SPI.

    Puerto APuerto bidireccional de 6 bits RA0-RA5

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    8

    RA4 tiene como funcin alternativa deservir como entrada de reloj para eltemporizador/contador TMR0.

    Cuando los pines funcionan comoentradas salidas de proposito general:

    Los pines RA0:3 y RA5 son salidasde tipo push-pull entradas de tipoTTL.

    El pin RA4 es una salida de tipodrenador abierto o una entrada detipo Schmitt Trigger.

  • 7/26/2019 TEMA4 Puertos

    5/13

    5

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    9

    REGISTROS ASOCIADOS AL PUERTO A

    Todas las operaciones de escritura sobre el PORTA sonoperaciones de lectura-modificacin-escritura.

    ;Ejemplo de inicializacin del PORTABCF STATUS, RP0 ;BCF STATUS, RP1 ; Banco 0CLRF PORTA ; Inicializo PORTA poniendo los latches a 0 BSFSTATUS, RP0 ; Banco 1

    MOVLW 0x06 ; Configuro todos los pinesMOVWF ADCON1 ; como entradas digitalesMOVLW 0xCFMOVWF TRISA ; RA son entradas; RA son salidas; TRISA se leen siempre como 0

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    10

    Si se quiere que todos los pines del PORTA funcionen como entradas/salidasdigitales se debe escribir un 011x en los bits PCFG de ADCON1 . Otro valoren estos bits har que todos alguno de los pines del puerto A pasen a funcionarcomo pines del mdulo conversor A/D (ver Leccin - Mdulo de conversin A/D en elPIC16F87X para ms detalles) . El valor de RESET del registro ADCON1 es todo a0, por lo que por defecto, tras un reset el puerto est configurado como entradasanalgicas.

    Configuracin del ADCON1

  • 7/26/2019 TEMA4 Puertos

    6/13

    6

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    11

    Puerto BPuerto bidireccional de 8 bits RA0-RA7Si el bit de TRISB es un 1 es entrada y si es un 0 es salida. En el momentoque el pin de PORTB pase a ser una salida (TRISB=0) elcircuito de pull-up se desactiva.

    Disponen de resistencias pull-up en todos los pines. Se utilizan para que lasentradas al puerto no queden al aire. Se configura con un 0 en el bit 7 delreg. OPTION (RBPU).

    El pin RB0 puede emplearse como entrada de interrupcin (INT). Para suconfiguracin se usa el bit INTEDG (OPTION_REG).

    Los pines RB4-RB7 pueden emplearse para generar interrupciones cuando se

    produzca un cambio en el valor de cualquiera de dichos pines. Para ello el bitRBIE=1 (INTCON).

    La interrupcin por cambio en el PORTB puede despertar al micro del mododormido SLEEP.

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    12

    ESTRUCTURA DE LOS PINES RB7:4

    ESTRUCTURA DE LOS PINES RB0:3

  • 7/26/2019 TEMA4 Puertos

    7/13

    7

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    13

    FUNCION DE LOS PINES

    REGISTROS ASOCIADOS AL PUERTO B

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    14

    Ejemplo:

    CLRF PORTB ;borramos PORTBBSF STATUS,RP0 ; seleccin banco1MOVLW 0xCF ;MOVFW TRISB ;selecciona RB4 y RB5 como salidas

  • 7/26/2019 TEMA4 Puertos

    8/13

    8

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    15

    Puerto C

    PORTC es un puerto bidireccional de 8 bits. TRISC (1 entrada, 0 salida).

    los pines RC3 y RC4 pueden configurarse para que pasen a formar parte delmdulo I2C.

    ESTRUCTURA DE LOS PINES RC Y RC ESTRUCTURA DE LOS PINES RC

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    16

    FUNCION DE LOS PINES

  • 7/26/2019 TEMA4 Puertos

    9/13

    9

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    17

    Puerto DPORTD es un puerto bidireccional de 8 pinescon entrada de tipo Schmitt Trigger.

    TRISD (1 entrada, 0 salida).

    El PORTD puede configurarse para que se comportecomo un puerto esclavo paralelo de 8 bits de unmicroprocesador si se pone el bit de controlPSPMODE (TRISE) a 1.En este modo de funcionamiento los buffers de entradason TTL

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    18

    FUNCION DE LOS PINES

    REGISTROS ASOCIADOS AL PUERTO D

  • 7/26/2019 TEMA4 Puertos

    10/13

    10

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    19

    Puerto EPORTE tiene 3 pines (RE0/RD/AN5, RE1/WR/AN6, y RE2/CS/AN7) que sonindividualmente configurables como entradas o salidas.

    Como funcin alternativa, el PORTE puede comportarse como entradas/salidasde control para el puerto esclavo paralelo del que forma parte junto con elPORTD si el bit PSPMODE (TRISE) se pone a 1.

    Para el funcionamiento en este modo, el usuario debe asegurarse que los bitsTRISE estn a 1, y que estos pines sean entradas digitales. En estemodo los buffers de entrada son TTL.

    Como segunda funcin alternativa de estos pines est el servir de entradasanalgicas AN5, AN6, AN7. Realmente este es su estado inicial tras un

    Power-on-Reset. Debemos modificar el valor de ADCON1 para que funcionecomo entradas digitales. Si se trata de leer el valor del PORTE cuando estaconfigurado como entradas analgicas, se leen como 0. El registro TRISEdebe tener sus bits a 0 (entradas) cuando se usen como entradas digitales.

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    20

    ESTRUCTURA DE LOS PINES DE PORTE

  • 7/26/2019 TEMA4 Puertos

    11/13

    11

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    21

    FUNCION DE LOS PINES

    REGISTROS ASOCIADOS AL PUERTO E

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    22

    Bits de control/estado del puerto esclavo paralelo:bit 7 IBF: Input Buffer Full Status bit1 = Se ha recibido una palabra y est a la espera de ser leida.0 = No se ha recibido palabrabit 6 OBF: Output Buffer Full Status bit1 = El buffer de salida todava tiene la palabra que se ha intentado enviar previamente.0 = El buffer de salida ha sido ledo.bit 5 IBOV: Input Buffer Overflow Detect bit (en modo microprocesador)1 = Se produjo una escritura cuando la palabra anterior an no habia sido leida. Debe limpiarse porsoftware.0 = No se produjo sobreescriturabit 4 PSPMODE: Parallel Slave Port Mode Select bit1 = PORTD funciona en modo puerto esclavo paralelo.0 = PORTD funciona como puerto de entrada salida de proposito general.bit 3 No implementado. Se lee como 0.Bits de direccion de datos del PORTE:bit 2 Bit de control de la direccin del pin RE2/CS/AN71 = Entrada0 = Salidabit 1 Bit de control de la direccin del pin RE1/WR/AN61 = Entrada0 = Salidabit0 Bit de control de la direccin del pin RE0/RD/AN51 = Entrada0 = Salida

  • 7/26/2019 TEMA4 Puertos

    12/13

    12

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    23

    bit 7 ADFM: bit de seleccin del formato del resultado de la conversin A/D.1 = Justificado a la derecha. Los 6 bits ms significativos de ADRESH se leen como 0.0 = Justificado a la derecha. Los 6 bits ms significativos de ADRESL se leen como 0.bit 6-4 No implementados: Leidos como 0bit 3-0 PCFG3:PCFG0: bits de control de configuracin del puerto A/D.

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    24

    PUERTOS ESCLAVO PARALELO (PSP)

    PORTD funciona como un puerto esclavo paralelo de 8 bits si el bit PSPMODE(TRISE) se pone a 1. El PORTD puede ser ledo o escrito por el sistemaque rodea al microcontrolador usando como seales de control los pines deentrada RE0/RD para lectura y RE1/WR para escritura.Si se habilita el PSPMODE, el pin RE0/RD ser la entrada de control para lectura,RE1/WR ser la entrada de control de escritura y RE2/CS ser la entrada deSeleccin de chip.Para que estos bits del PORTE se comporten como pines de control del PSP se debedefinir los bits de direcciones del registro TRISE (TRISE) como entradas (1)Y los bits de configuracin del conversor A/D PCFG3:PCFG0 (ADCON1) paraQue sean digitales.Realmente hay 2 latches de 8 bits: uno para la entrada y otro para la salida. ElUsuario escribe en el latch PORTD de salida y lee del latch PORTD de entrada.En el modo PSP,el registro TRISD es ignorado ya que es el dispositivo externo(microprocesador) el que controla la direccin de los datos.

  • 7/26/2019 TEMA4 Puertos

    13/13

    13

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    25

    FORMAS DE ONDA DE ESCRITURA DEL PUERTO ESCLAVO PARALELO

    Una escritura al PSP se produce cuando las lneas CS y WR se ponen a la vez a nivel bajo. Unavez que el dispositivo externo considera finalizada la escritura, coloca a nivel alto alguna deesas 2 lneas. Este paso a nivel alto es detectado por el microcontrolador durante el ciclo Q2de algn ciclo de instruccin que se est ejecutando. El flag de Buffer de entrada completo(IBF) se coloca a 1 en el ciclo Q4 de la instruccin. El flag de interrupcin PSIPF (PIR1)

    tambin se pone a 1 pudiendo ocasionar un salto a la rutina de interrupcin si los bits PSPIE(PIE1) y los bits GIE y PEIE del INTCON estn a 1.El flag IBF solo puede limpiarse si se lee el PORTD.El flag de overflow en el buffer de entrada IBOV (TRISE) se pondr a 1 si el dispositivoexterno intenta hacer una segunda escritura sin que el nucleo del microcontrolador haya ledo elPORTD.

    ATE-Universidad de Oviedo

    Puertos de Entrada/Salida

    26

    FORMAS DE ONDA DE LECTURA DEL PUERTO ESCLAVO PARALELO

    Una lectura del PSP se realiza cuando el sistema externo pone a la vez las seales CS y RD a nivel bajo. Elflag que indica buffer de salida lleno OBF (TRISE) se pone a 0 inmediatamente, indicando que el latchdel PORTD est esperando a ser ledo por el bus externo. El programa del microcontrolador debe colocar enel PORTD el dato del que quiere informar al resto del sistema. Cuando el sistema externo pone la seal CS ola RD a nivel alto, el microcontrolador espera al ciclo Q2 de la siguiente instruccin y en el ciclo Q4 de esainstruccin pone a 1 el flag de interrupcin PSPIF indicando que la lectura del dato por parte del dispositivoexterno se ha completado.Cuando no estamos en modo PSP, los bits IBF y OBF permanecen a 0. No obstante, si el bit IBOV habasido previamente puesto a 1, debe limpiarse en el programa.Como hemos visto, el flag PSPIF se pone a 1 cuando se ha completado una lectura o escritura, este flag debelimpiarse por parte del programa de usuario. La interrupcin puede deshabilitarse si se pone a 0 el bit dehabilitacin PSPIE (PIE).