UD6 1 CARACTERISTICAS PIC16F87X [Modo de...

13
1 CARACTERÍSTICAS PIC16F87X Centro CFP/ES CARACTERÍSTICAS PIC16F87X Características generales Organización de la memoria Los microcontroladores PIC 16F87X poseen dos bloques de memoria separados, la memoria de programa y los bancos de registros. Las posiciones de la memoria de datos son de 1 byte cada una y las de la memoria de programa de 14 bits. Para direccionar los datos hacen falta 7 bits para elegir posición dentro de un determinado banco y 2 bits más para seleccionar el banco, ya que pueden existir cuatro bancos de registros. Memoria de programa Al tener cada posición de memoria un tamaño de 14 bits, en las instrucciones del programa están implícitas las direcciones de los registros o memoria de datos. En una sola palabra se agrupa el código de la instrucción y su dirección. De los 14 bits, 7 se utilizan para indicar su dirección, lo que da un máximo direccionable en la memoria de datos de 128 bytes por banco de registros.

Transcript of UD6 1 CARACTERISTICAS PIC16F87X [Modo de...

Page 1: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

1

CARACTERÍSTICAS PIC16F87X

Centro CFP/ES

CARACTERÍSTICAS PIC16F87X

Características generalesOrganización de la memoria

Los microcontroladores PIC 16F87X poseen dos bloques de memoriaseparados, la memoria de programa y los bancos de registros. Lasposiciones de la memoria de datos son de 1 byte cada una y las de lamemoria de programa de 14 bits. Para direccionar los datos hacen falta 7bits para elegir posición dentro de un determinado banco y 2 bits más paraseleccionar el banco, ya que pueden existir cuatro bancos de registros.

Memoria de programaAl tener cada posición de memoria un tamaño de 14 bits, en lasinstrucciones del programa están implícitas las direcciones de los registroso memoria de datos. En una sola palabra se agrupa el código de lainstrucción y su dirección. De los 14 bits, 7 se utilizan para indicar sudirección, lo que da un máximo direccionable en la memoria de datos de128 bytes por banco de registros.

Page 2: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

2

CARACTERÍSTICAS PIC16F87X

Direccionamiento y paginado

En los PICs 16F87X, el contador de programa (CP) del microcontroladortiene un tamaño de 13 bits, con lo que es posible direccionar un tamañototal de memoria de programa hasta un máximo de 8k x 14 bits organizadaen páginas de un tamaño de 2k x 14 bits.

Para manejar microcontroladores de 4 u 8k bytes de memoria deprograma, ha de recurrirse a la paginación, cada página tiene unacapacidad de 2k, y éstas a su vez, se dividen en 8 subpaginas de 256bytes.

El contador del programa, al estar formado por 13 bits, está compuesto pordos secciones tal y como se muestra en la figura 2.3.1.2. El byte bajo vienedel registro de PCL que puede ser leído y escrito. Los bits superiores(PC<12:8>), están alojados en el registro PCH, sobre el que no se puedeleer ni escribir, pero se puede acceder a él indirectamente a través delregistro PCLATH.

BANCO DE REGISTROS Y MEMORIA DE DATOS

Page 3: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

3

CARACTERÍSTICAS RELEVANTES

En la siguiente tabla se muestran las características más relevantes de los PIC 16F87X:

Características 16F873 16F874 16F876 16F877

Frecuencia Máxima DC-20Mhz DC-20Mhz DC-20Mhz DC-20Mhz

Memoria de programa FLASH Palabra de 14 bits

4KB 4KB 8KB 8KB

Posiciones RAM de datos 192 192 368 368

Posiciones EEPROM de datos 128 128 256 256

Ports E/S A, B y C A, B, C, D y E A, B y C A, B, C, D y E

Nº de Pines 28 40 28 40

Interrupciones 13 14 13 14

Timers 3 3 3 3

Módulos CCP 2 2 2 2

Comunicaciones Serie MSSP, USART MSSP,USART MSSP,USART MSSP, USART

Comunicación Paralelo - PSP - PSP

Líneas de entrada en Convertidor A/D de 10 bits

5 8 5 8

Juego de Instrucciones 35 instrucciones 35 instrucciones 35 instrucciones 35 instrucciones

Longitud de la instrucción 14 bits 14 bits 14 bits 14 bits

DIAGRAMA DE CONEXIÓN

Page 4: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

4

DIAGRAMA DE CONEXIÓN

MCLR/VPP: Reset externo. Por esta patita seaplica también la tensión / VPP usada enla grabación del programa.

RA0/AN0: E/S digital o entrada analógicaRA1/AN1: E/S digital o entrada analógicaRA2/AN2/VREF: E/S digital, entrada

analógica o salida de la tensión dereferencia

RA3/AN3/ VREF: E/S digital, analógica oentrada externa de VREF

RA4/TOCKI: E/S digital o entrada del relojpara TMR0

RA5/AN4/SS: E/S digital, analógica oselección del puerto serie sincrono

RB0/INT-RB7: E/S digitales del Puerto B.RB0/INT puede actuar como entrada deinterrupción externa. RB4-RB7 puedenprovocar interrupción cuando cambian deestado

RE0/RD/AN5: E/S digital del Puerto E. Señalde lectura del Puerto paralelo esclavo.Entrada analógica.

RE1/WR/AN6: E/S digital. Señal de escrituradel Puerto paralelo esclavo. Entradaanalógica.

RE2/CS/AN7: E/S digital. Señal de activación delPuerto paralelo esclavo. Entrada analógica.

VDD: Entrada del positivo de la alimentaciónOSC1-2/CLKIN: Entrada al cristal cuarzo o reloj

externoRC0/T1OSO/T1CL1: E/S digital del Puerto C.

Conexión del oscilador externo para eltemporizador TMR1 o entrada de reloj para elTMR1

RC1/T1OSI/CCP2: E/S digital del Puerto C.Conexión del oscilador externo para TMR1 osalida del modulo 2 de captura/comparación

RC2/CCP1: E/S digital del Puerto C. Salida delmodulo 1 de captura/comparación

RC3/SCK/SCL: E/S digital. E/S de reloj para elPuerto serie sincrono (SSP) de los módulosSPI a I2C

RC4/SDI/SDA: E/S digital. Entrada de datos serieen el modo SPI. E/S de datos serie en modoI2C

RC5/SD0: E/S digital del Puerto C. Salida dedatos serie en el modo SPI

RC6/TX/CK: E/S digital. Transmisión serieasincrona. Entrada de reloj paracomunicación serie sincrona

RC7/RX/DT: E/S digital. Recepción serieasincrona. Línea de datos en la comunicaciónserie sincrona.

RD0/PSP0-RD7/PSP7: E/S digitales del Puerto D.Este Puerto puede trabajar como Puertoparalelo esclavo para interconexión con unbus de datos de 8 bits de otromicroprocesador

ARQUITECTURA INTERNA

Page 5: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

5

RECURSOS PIC GAMA MEDIA

Oscilador principalPara la generación de los impulsos de reloj internos los PIC16F87X disponende cuatro alternativas, debiendo el usuario seleccionar el más adecuado yprogramar adecuadamente los bits FOSC1 y FOSC0 de la palabra deconfiguración, que establecen la configuración entre las siguientes:

- LP: Oscilador de cristal de cuarzo o resonador cerámico de baja potencia- XT: Cristal o resonador cerámico- HS: Oscilador de cristal o resonador de alta velocidad- RC:Oscilador formado por una red resistencia condensador

Perro guardián (WDT)El Perro guardián vigila que el programa no se "cuelgue" y dejen deejecutarse las instrucciones secuénciales del mismo tal como lo ha previstoel diseñador. Para realizar esta labor de vigilancia, el perro guardián da unpaseo por la CPU cada cierto tiempo y comprueba si el programa se ejecutanormalmente; en caso contrario, el perro provoca un reset, reinicializandotodo el sistema.

RECURSOS PIC GAMA MEDIA

Temporizador TMR0El TMR0 se comporta como un registro de propósito especial ubicado en la posición 1

del área de datos. Para trabajar con TMR0 se pueden utilizar las siguientes fórmulasen el caso que los impulsos de reloj provengan del oscilador interno con un periodode Tosc.

Tiempo = 4 · Tosc · (Valor cargado en TMR0) · (Rango del Divisor)Valor a cargar en TMR0 = (tiempo / 4 · Tosc) · (Rango del Divisor)

ResetEl reset de los microcontroladores puede ser originado por las siguientes causas:

1ª Conexión de la alimentación (POR: Power-On-Reset)2ª Activación de la patita MCLR (Master Clear Reset) durante una operación normal.3ª Activación de MCLR en el estado de Reposo o SLEEP.4ª Desbordamiento del Perro guardián.

Page 6: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

6

RECURSOS PIC GAMA MEDIA

Modo de reposo (Sleep)Este modo especial de funcionamiento ocasiona un consumo muy bajo yse entra en él con la ejecución de la instrucción SLEEP. Con estainstrucción ocurren las siguientes acciones:1. Si el perro guardián está activado, se refrescara su valor (se borra)

pero sigue funcionando normalmente.2. El oscilador principal del sistema deja de funcionar.3. Los puertos de E/S mantienen el mismo estado que tenían antes de

ejecutar SLEEP.4. Los bits TO y PD del registro de estado toman los valores 1 y 0,

respectivamente.Para salir del estado de Reposo hay dos posibilidades:

1ª Se activa la patita MCLR y se genera un reset.2ª El Perro guardián que estaba activo cuando se ejecuto SLEEP se

desborda y genera un reset.

RECURSOS PIC GAMA MEDIA

InterrupcionesUna interrupción consiste en una detención del programa en curso pararealizar una determinada rutina que atienda la causa que ha provocado lainterrupción.

Los PIC16F87X tienen cuatro posibles fuentes de interrupción:1ª. Interrupción externa provocada al activar la patita RB0/INT2ª. Desbordamiento del TMR03ª. Cambio de estado en las líneas del Puerto B4ª. Cambio de estado en el comparador analógico

Puertos de entrada y salidaPuerto A:

Consta de 6 patitas o líneas (RA0-RA5). Todas, menos RA4, pueden actuarcomo E/S digitales o como canales de entrada para el Conversor AD. Lapatita RA4, además de E/S digital puede funcionar como entrada de relojexterno para el TMR0.

Page 7: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

7

RECURSOS PIC GAMA MEDIA

Puerto B:Las 4 líneas de mas peso del Puerto B (RB<3:0>) actúan como E/Sdigitales, según la programación del registro TRISB. Además puedendisponer de una carga pull-up interna si se programa la línea como entraday el bit<7> (RBPO) del registro OPTION vale 0.

Las líneas RB<7:4> funcionan como las anteriores, pero además puedenprovocar una interrupción si se programan como entradas y se produce elcambio de nivel lógico en alguna de ellas. En tal caso se activa el bit <0>(RBIF) de INTCON. La interrupción se anula al borrar el bit <3> (RBIE) deINTCON o al hacer una nueva lectura del Puerto B.

Puerto C:Es un puerto bidireccional de 8 bits, cada patita actúa como E/S digital,según la programación de TRISC. Además, también puede actuar comoentrada o salida de diversos periféricos internos. Consultar el punto 2.4.1donde se explican los diagramas de conexionado para ver la función decada patita en el puerto C.

RECURSOS PIC GAMA MEDIA

Puerto D:Cada patita puede configurarse como E/S digital, según la programacióndel registro TRISD. También puede funcionar como Puerto Paralelo Esclavopara soportar la interconexión directa con el bus de datos de 8 bits de otromicroprocesador. Para funcionar en este modo hay que poner a 1 elbit<4> (PSMODE) de TRISE. En tal caso, las líneas RE<2:0> del Puerto Epasan a soportar las señales de control CS, WR y RD, entre el Puerto D yel bus del microprocesador. Cada vez que el microprocesador realiza unciclo de lectura o escritura sobre el Puerto D el bit <7> (PSPIF) delregistro PIR1 se pone a 1.

Puerto E:Este puerto que solo dispone de tres patitas esta disponible en el modelo,la nomenclatura de las líneas es:RE0/RD/AN5RE1/WR/AN6RE2/CS/AN7

Page 8: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

8

CONVERSOR ANALÓGICO - DIGITAL

El módulo de conversiónAnalógico/Digital dispone decinco entradas para losdispositivos de 28 pines y ochopara los otros dispositivos de lafamilia.Es un conversor analógico a digitalde 8 bits con una tensión dereferencia que puede ser interna(VDD) o externa (entra por lapatita AN3/Vref). En cadamomento la conversión solo serealiza con la entrada de uno desus canales, depositando elresultado de la misma en elregistro ADRES y activándose labandera ADIF, que provoca unainterrupción si el bit de permisocorrespondiente esta activado.Además, al terminar la conversiónel bit GO/DONE se pone a 0.

TEMPORIZADOR TMR1

El TMR1 es un Temporizador/Contador ascendente de 16 bits, por lo queesta implementado mediante dos registros específicos TMR1H y TMR1L,que contienen el valor del conteo en cada momento. El valor de registroTMR1H-TMR1L evoluciona desde 0000h hasta FFFFh, en cuyo instanteactiva la bandera TMR1IF y vuelve a 0000h. Como fuente de losimpulsos de reloj existen tres alternativas:

1ª. Generación interna (4 TOSC)2ª. Generación mediante un oscilador externo controlado por cristal quese conecta a las patitas RC0/T1OSO/T1CKI y RC1/T1OSI/CCP2. Eloscilador se activa poniendo a 1 el bit T1OSCEN del registro T1CON. Elbit TMR1CS del registro T1CON selecciona entre el reloj interno oexterno.3ª. Trabaja en modo contador de eventos, cuando los impulsos externosa contar se aplican a la patita RC0/T1OSO/T1CKI.

Page 9: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

9

TEMPORIZADOR TMR1

TEMPORIZADOR TMR1

Page 10: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

10

TEMPORIZADOR TMR1

TEMPORIZADOR TMR2

El TMR2 solo esta incorporado en unos pocos modelos de la gama mediaporque se trata de un temporizador de 8 bits diseñado para usarseconjuntamente con el circuito de Modulación de Anchura de Impulsos(PWM).

Se incrementa al ritmo de los impulsos que se le aplican (4.TOSC), quepueden ser divididos por 1, por 4 o por 16 mediante un Predivisor.

Cuando el valor de TMR2 coincide con el del PR2 (Registro de Periodo) segenera un impulso en la salida EQ y TMR2 pasa a 00h. PR2 es un registroespecífico de lectura y escritura que cuando hay un Reset se carga con elvalor FFh. Los impulsos producidos por EQ se aplican a un Post-divisorque puede dividirlos hasta 1:16, activando su salida la bandera TMR2IF.El registro T2CON regula los principales parámetros de este temporizador.

Page 11: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

11

TEMPORIZADOR TMR2

TEMPORIZADOR TMR2

Page 12: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

12

TEMPORIZADOR TMR2

CALCULAR TIMERS Y PWM

http://eng-serve.com/pic/pic_timer.html

Page 13: UD6 1 CARACTERISTICAS PIC16F87X [Modo de …profesores.sanvalero.net/~arnadillo/Documentos/Apuntes...2 CARACTERÍSTICAS PIC16F87X Direccionamiento y paginado En los PICs 16F87X, el

13

CARACTERÍSTICAS PIC 16F87X