CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

14
INGENIERÍA ELECTRÓNICA

Transcript of CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

Page 1: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

Page 2: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

PRINCIPALES REGISTROS DE CONTROL Y MANEJO DE

MEMORIAS FLASH Y EEPROM

3.1 Los registros de Control

El funcionamiento de los recursos de los PIC es un conjunto de registros específicos cuyos

bits soportan el control de los mismos. Estos registros están ubicados en las primeras

posiciones de cada banco de la memoria de datos RAM.

3.2 Registro de Estado (Status)

Es el registro más usado de todos, pues sus bits están destinados a controlar las funciones

vitales del procesador. Por este motivo, está duplicado en las cuartas posiciones de cada

banco.

Los 3 bits de menos peso son señalizadotes de ciertas condiciones en las operaciones

lógicas aritméticas

Los señalizadores PD# y TO# son útiles en el proceso de reset por que indican que lo ha

originado y permite actuar en consecuencia no son escribibles.

Z: Señalizador de cero.- se pone 1 cuando el resultado es cero

C: acarreo/llevada del 8vo bit.- se pone a 1 automáticamente en suma o resta

después del bit más significativo.

DC: acarreo /llevada en el 4to bit.- Funciona similar a señalizador C, pero para

cuarto bits útil en código BCD.

PD#: Se activa a 0 al ejecutar la instrucción sleep (reposo). Se pone 1 cuando se

desconecta de la fuente de alimentación o se e4jecuta la instrucción clrwdt (refresco

perro guardián)

TO#: Se activa a nivel bajo al desbordarse el perro guardián. Toma el valor 1 cuando

se desconecta de la alimentación o se ejecutan cualquiera de estas instrucciones

sleep o clrwdt.

Page 3: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

Los 3 bits más significativos del registro de estado se utilizan para seleccionar el banco de

la memoria RAM.

El registro de estado puede actuar como destino, en cuyo caso los bits de los señalizadores

Z, C, DC no son escribibles en aquellas instrucciones que afectan la operación que realizan.

Como los tres bits destinados al direccionamiento de la RAM (IRP, RPI y RP0) toman el

valor 0 después del Reset.

3.3 Registro de opciones (OPTION)

Tiene las mismas funciones que tenía en el PIC16F84:

El registro Option toma el valor de 1111 1111 en cualquier tipo de reset que se produzca.

1. Asigna divisor de frecuencias a Timer 0 (TRM0) o al perro

guardián.

2. Elige el rango en el que trabaja el divisor de frecuencia.

3. Selecciona el tipo de reloj del TMR0 que pude ser interno o

externo, a través de la patita T0CKL, también selecciona el

flanco activo.

4. Selecciona el falco activo para la interrupción externa por

RB0/INT

5. Activa o desactiva las resistencias de pull-up del puerto B.

Page 4: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

3.4 Registro para controlar las interrupciones

Los PIC16F87X tienen muchas causas que pueden originar una interrupción. Al aceptarse

una interrupción se salva el valor del PC en la pila y se carga con el valor 00,4H que es el

vetor de interrupción.

El PIC16F84 tenía cuatro causas que generan interrupción: desbordamiento del TMR0,

activación del pin RB0/INT, cambio de estado de uno de los pines más significativos del

puerto B y finalización de la escritura de un byte en la EEPROM.

Los PIC16F87X disponen de más causas que provocan de interrupción, también tiene más

registros para contener bits de señalizadores y de permiso o prohibición.

3.4.1 Registro de permiso de interrupciones (INTCON)

Es un registro leible y escribible que para facilitar el acceso se halla duplicado en los cuatro

bancos, ocupa las direcciones 0Bh, 8Bh, 10Bh y 18Bh. Tienen la misión de controlar las

PSA Asignación del divisor de frecuencias

1=El divisor de frecuencias se asigna a WDT

0= el divisor de frecuencias se le asigna al TMR0

T0SE Tipo de flanco de T0CKL

1= Incremento del TMR0 cada flanco descendente

0= incremento del TMR0 cada flanco ascendente

T0CS Tipo de reloj para el TMR0

1= Pulsos introducidos a través de T0CKL (contador)

0= Pulsos de reloj interno Fosc/4 (temporizador)

INTEDC Flanco activo de la interrupción externa

1= flanco ascendente

0= flanco descendente

RBPU# Resistencias de Pull-up del puerto B

1= Desactivadas

0= Activadas

Page 5: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

interrupciones provocadas por el TMR0 cambio de estado en los pines más significativos

del puerto B y la activación del RB0/INT.

3.4.2 Registro de permiso de interrupción 1 (PIE1)

Los bits que permiten (1) o prohíben (0) las interrupciones provocadas por los periféricos

internos del microcontrolador y que no estaban contempladas en el INTCON.

GIE: Bit de permiso global de interrupciones

1= Permiso

0= Prohibido

PEIE: Bit de permiso de los periféricos que no se controlan con INTCON

T0IE: Bit de permiso de la interrupción de TMR0

INTE: Bit de permiso de interrupción externa en RB0/INT

RBIE: Bit de permiso de la interrupción por cambio en RB4-RB7

T0IF: Señalizador de desbordamiento en TMR0

INTF: Señalizador de activación del pin RB0/INT

RBIF: Señalizador de cambio en RB4-RB7

PSPIE: Permiso de interrupción para la puerta paralela esclava al realizar una

operación

de lectura/escritura. En modelos de 40pines.

ADIE: Permiso de interrupción para el conversor A/D al finalizar la conversión

RCIE: Permiso de interrupción para el receptor del USART cuando el buffer se

llena.

TXIE: Permiso de interrupción para el transmisor de USART cuando el buffer se

vacía.

SSPIE: Permiso de interrupción para la puerta serie síncrona

CCP1IE: Permiso de interrupción para el modulo CCP1 cuando se produce una

captura o

comparación

TMR21E: Permiso de interrupción para el TMR2 con su desbordamiento.

TMR11E: Permiso de interrupción para el TMR1 con su desbordamiento.

Page 6: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

3.4.3 Registro de permiso de interrupciones 2 (PIE2)

Contiene los bits de permiso de interrupciones de las causas que no abarcaron PIE1. Como

son: fin de escritura en la EEPROM, producida por comparador, colisión de bus en el modo

SSP y producción de una captura o una comparación en el modulo CCP2.

3.4.4 Registro de señalizadores de interrupciones 1 y 2 (PIR1 Y PIR2)

Los bits de permiso / prohibición de las causas de interrupción recogidas en los registros

PIE1 Y PIE2, existen otros dos registros PIR1 y PIR2 cuyos bits actúan de señalizadotes

del momento en el que se origina la causa que provoca la interrupción.

3.5 Lectura y Escritura de las memorias EEPROM y FLASH

La propia aplicación se puede reprogramar según las condiciones externas, es posible

ampliar el área de la memoria de datos no volátil EEPROM con posiciones libres de

memoria FLASH.

CMIE: Permiso de interrupción para EL COMPARADOR

EEIE: Permiso de interrupción por fin de escritura en la EEPROM de datos

BCLIE: Permiso de interrupción por colisión de bus en el SSP cuando dos o más

maestros tratan de transferir al mismo tiempo.

CCP2IE: Permiso de interrupción en el modulo CCP2.

1. Se introduce el dato a escribir en EEDATA y la dirección en EEADR 2. Se pone Wren=1 en EECON1 Permiso de escritura

3. Se escribe la secuencia de seguridad que cargan el registro EECON2 con

el dato 55h y luego con AAh.

4. Para iniciar la escritura se pone WR=1 en EECON1

5. Al finalizar la escritura se activa el señalizador EEIF de forma

automática

6. Se debe borrar el señalizador EEIF y prohibir la escritura (WR=0)

Page 7: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

EEPGD: Selecciona el acceso a la FLASH (0) o a la EEPROM (1)

WRERR: Señalizador de error en escritura

WREN: Permiso de escritura

WR: Hay que poner 1 para iniciar la escritura y 0 automáticamente al finalizar

RD: Hay que poner 1 para iniciar lectura.

Page 8: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

PROGRAMAR PIC ES FÁCIL

En este capitulo se han visto pequeñas partes para leer y escribir la memoria flash de

instrucciones para leer y escribir en EEPROM

EJERCICIO utilización de las dos memorias, para esto se considerara a los anteriores

códigos vistos como subrutinas para realizar procesos de lectura/escritura. Las subrutinas

son:

Código para realizar la lectura de la EEPROM, convertida a subrutina.

La líneas con * es para resaltar los cambios que se debe hacer en los códigos anteriores para

hacerlos subrutinas y poner como etiqueta el nombre correspondiente.

Organigrama

Representa el funcionamiento mas completo del programa

Programa comentado

El primer programa del PIC se graba de forma habitual con una subrutina ESCRIBIR-

EEPROM.

LEER-FLASH ESCRIBIR-FLASH LEER-EEPROM ESCRITURA-EEPROM

*LEER-EEPROM bsf STATUS,RP1 ; Con estas dos ; Instrucciones se bcf STATUS,RP0 ; se selecciona el banco 2 movf ADDR_L,W ; Se mete en EEADR movwf EEADR ; la dirección a leer bsf STATUS,RP0 ; Se pasa al banco 3 bcf EECON1,EEPGD ; Se selecciona ; El acceso a EEPROM bsf EECON1,RD ; Se da la orden de lectura bcf STATUS,RP0 ; Se pasa al banco 2 movf EEDATA,W ; Se escoge el dato leído movwf DATA_L ; y se deja en DATA_L return ; Retorno de subrutina

Page 9: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

Para grabar en el PIC un nuevo programa es necesario borrar el anterior esto en la

EEPROM no lo afecta por lo que al grabar el valor 27 de la primera posición permanecerá

ahí.

DISEÑAR CON PIC ES FÁCIL

Ampliación de los periféricos para el trabajo con PIC

Con los PIC16F87X surge la necesidad de disponer de herramientas que saquen todo el

partido los nuevos recursos que incorporen, estos PIC son capaces de gobernar mediante su

hardware interno, ha impulsado diseñar una plataforma con la que se puede experimentar técnicas avanzadas de control.

LA TARJETA DE EXPANSIÓN MICRO PIC I/O

Es una tarjeta que se conecta al Micro PIC Trainer mediante el PIC-BUS. Se basa en

inclusión de periféricos E/S con las características del PIC16F87X.

Page 10: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

Principales características:

Doble conector: PIC-BUS con todas las señales del PIC de 28 pines.

Alimentación: para conexión de un transformador de 12 VAC.

Generador de funciones: que proporciona una onda cuadrada de frecuencia

seleccionable. Cristal de cuarzo: de 32.768 KHz para uso de tiempo real.

Piezoeléctrico: para generar un pitido cuando se activa.

Sensores analógicos: de luminosidad tipo LDR y de temperatura LM35.

Circuito de detección de cruce por cero de una señal senoidal.

Motor DC: puede controlarse su encendido, apagado así como el sentido de giro y se lo

puede alimentar con 5 VAC o de 12 AVC.

Control de motor: Con posibilidad de regular su velocidad.

Optoacoplador infrarrojo de corte: Puede ser usado como encoder para controlar el

giro del motor.

Page 11: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

Alimentación

Recibe una tensión máxima de 12 VAC y un puente rectificador (D1) con un condensador

(C1) rectifica y filtra la VAC que proporciona +5 VDC, +12 VDC.

Doble conector PICBUS

Son dos conectores idénticos de 26 vías que soportan las mismas señales mediante un cable

plano se conecta uno de los dichos conectores con el micropic trainer plus y así conforman

un sistema completo con las tres tarjetas.

Page 12: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

Generador de Funciones

Se basa en un PIC16C54RC, existe un generador de onda cuadrada cuya frecuencia se

puede seleccionar entre 8 valores con tres microinterruptores (SW1).

Oscilador de 32.768 KHz

Compuesto por un cristal de cuarzo de 32.768KHz y dos condensadores de 27pF, configura

un oscilador de frecuencia igual a ala de resonancia del cristal.

Page 13: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

Sensores Analógicos

La inclusión de un convertidor analógico/digital entre los recursos del PIC16F87X ha

incluido un sensor de temperatura de tipo LD35D y un sensor de luz LDR.

Opto-triac para control AC

El control de potencia de AC que se entrega en la carga es necesario conocer el momento

en el que la tensión pasa por el valor de 0 VAC. Cada vez que la señal vale 0 VAC no hay

generación de luz y el autotransistor se bloquea y la tensión de su colector sube a +Vcc

avisando del cruce por 0.

Page 14: CAPITULO_3 (Registros de Control y Manejo de Memorias Flash y Eeprom)

INGENIERÍA ELECTRÓNICA

Relés

Es un dispositivo muy usado en la industria y muy fácil de controlar. Basta un sencillo

circuito de excitación para poder controlar la activación o no de las bobinas que abre o

cierra los contactos.

Motor DC y driver L293B

Para el control de motores en la tarjeta Micro´PIC I/O se ha elegido el circuito integrado

L293B, que es capaz de controlar dos motores DC o uno PAP. Soporta la corriente de 1 A

por canal.

Consta de 4 canales que son gobernados por señales de control EN1 y EN2, fácilmente

generables por los recursos de los PIC16F87X especialmente por el PWM.

BIBLIOGRAFÍA:

ANGULO MARTÍNEZ IGNACIO; ROMERO YESA SUSANA; ANGULO USATEGUI

JOSÉ MARIA, Microcontroladores “PIC”: Diseño Práctico de Aplicaciones. Segunda

Parte: PIC16F877XX, PIC18FXXXX; Capitulo 3.