sábado, 26 de abril de 2014

Memoria RAM

Memoria de datos (RAM)
El PIC16F877 posee cuatro bancos de memoria RAM, cada banco posee 128 bytes. De estos 128 los primeros 32 (hasta el 1Fh) son registros que cumplen un propósito especial en el control del microcontrolador y en su configuración. Los 96 siguientes son registros de uso general que se pueden usar para guardar los datos temporales de la tarea que se está ejecutando(figura 3.9.)

Todas las posiciones o registros de memoria se pueden acceder directa o indirectamente(esta última forma a través del registro selector FSR). Para seleccionar que página o banco de memoria se trabaja en un momento determinado se utilizan los bits RP0 y RP1
del registro STATUS.
Resumen de algunos de los registros de configuración

BANCO 0:
- TMR0: Registro del temporizador/contador de 8 bits.
- PCL: Byte menos significativo del contador de programa (PC).
- STATUS: Contiene banderas (bits) que indican el estado del       procesador después de una operación aritmética/lógica.
- FSR: Registro de direccionamiento indirecto.
- PORTA, PORTB, PORTC, PORTD, PORTE: Registro de puertos de E/S     de datos. Conectan con los pines físicos del micro.
- PCLATH: Byte alto (más significativo) del contador de programa   (PC).
- INTCON: Registro de control de las interrupciones.
- ADRESH: Parte alta del resultado de la conversión A/D.
- ADCON0: Controla la operación del módulo de conversión A/D

BANCO 1:
- OPTION: Registro de control de frecuencia del TMR0.
- TRISA, TRISB, TRISC, TRISD. TRISE: Registros de configuración     de la operación de los pines de los puertos.
- ADRESL: Parte baja del resultado de la conversión A/D.
- ADCON1: Controla la configuración de los pines de entrada análoga.

BANCO 2:
- TMR0: Registro del temporizador/contador de 8 bits.
- PCL: Byte menos significativo del contador de programa (PC).
- FSR: Registro de direccionamiento indirecto.
- EEDATA: Registro de datos de la memoria EEPROM.
- EEADR: Registro de dirección de la memoria EEPROM.
- PCLATH: Byte alto (más significativo) del contador de programa (PC).
- INTCON: Registro de control de las interrupciones.

BANCO 3:
- OPTION: Registro de control de frecuencia del TMR0.
- EECON1: Control de lectura/escritura de la memoria EEPROM de datos.
- EECON2: No es un registro físico.
Función de algunos registros especiales


00h o INDF: Registro para direccionamiento indirecto de datos. Este no es un registro disponible físicamente; utiliza el contenido del registro FSR y los bits RP0 y RP1 del registro STATUS para seleccionar indirectamente la memoria de datos, la instrucción que lo acompañe determinará que se debe realizar con el registro señalado.

01h o TMR0. Temporizador/contador de 8 bits. Este es un contador que se puede incrementar con una señal externa aplicada al pin RA4/TOCKI o de acuerdo a una señal interna proveniente del reloj de instrucciones del microcontrolador. La rata de incremento del registro se puede determinar por medio de un preescalador o divisor de frecuencia, localizado en el registro OPTION. Como una mejora con respecto a referencias anteriores, se le ha agregado la generación de interrupción cuando se rebasa
la cuenta (el paso de 0FFh a 00h).

02h o PCL: Contador de programa. Se utiliza para direccionar las palabras de 14 bits del programa que se encuentra almacenado en la memoria ROM; este contador de programas es de 13 bits de ancho, figura 3.10. Sobre el byte bajo, se puede escribir o leer
directamente, mientras que sobre el byte alto, no. El byte alto se maneja mediante el registro PCLATH (0Ah). Ante una condición de reset el microcontrolador inicia el contador de programa con todos sus bits en “cero”. Durante la ejecución normal del programa, y dado que todas las instrucciones ocupan sólo una posición de memoria, el contador se incrementa en uno con cada instrucción, a menos que se trate de alguna instrucción de
salto. 


En una instrucción CALL o GOTO la dirección de memoria a donde se quiere ir, es decir,los bits 12 a 0 del contador de programa se cargan desde el código de operación de la instrucción.

En algunas instrucciones donde la parte baja del contador de programa, es decir los ocho bits bajos del registro PCL, es el destino, los otros cinco bits se cargan directamente desde el PCLATH (bits 4 a 0), por ejemplo en el caso de la instrucción ADDWF. Esto se debe tener en cuenta cuando se desea hacer lectura de tablas usando el comando:
ADDWF PC,1 , en este caso se debe tener en cuenta que la tabla debe estar comprendida dentro de un solo bloque de 256 bytes (0-255, 256-511, etc.).

03h o STATUS: Registro de estados. Contiene el estado aritmético de la ALU, la causa del reset y los bits de preselección de página para la memoria de datos.(figura 3.11) muestra los bits correspondientes a este registro. Los bits 5 y 6 (RP0 y RP1) son los bits de selección de página para el direccionamiento directo de la memoria de datos; solamente RP0 se usa en los PIC16F84. RP1 se puede utilizar como un bit de propósito general de lectura/escritura. Los bits TO y PD no se pueden modificar por un proceso de escritura; ellos muestran la condición por la cual se ocasionó el último reset.


05h o PORTA: Puerto de Entrada/Salida de 6 bits. Este puerto, al igual que todos sus similares en los PIC, puede leerse o escribirse como si se tratara de un registro cualquiera. El registro que controla el sentido (entrada o salida) de los
pines de este puerto está localizado en la página 1, en la posición 85h y se llama TRISA. El puerto A también puede ser configurado para que trabaje como entradas análogas para el convertidor Análogo a Digital interno del
microcontrolador.

06h o PORTB: Puerto de entrada/salida de 8 bits. Al igual que en todos los PIC,este puede leerse o escribirse como si se tratara de un registro cualquiera; algunos de sus pines tienen funciones alternas en la generación de interrupciones. El registro de control para la configuración de la función de sus pines se localiza en la página 1, en la dirección 86h y se llama TRISB. Puede ser configurado también para cumplir otras funciones.

07h o PORTC: Puerto de entrada/salida de 8 bits. Al igual que en todos los PIC, este puede leerse o escribirse como si se tratara de un registro cualquiera; algunos de sus pines tienen funciones alternas. El registro de control para la configuración de la
función de sus pines se localiza en la página 1, en la dirección 87h y se llama TRISC.
Puede ser configurado también para cumplir otras funciones.

08h o PORTD: Puerto de entrada/salida de 8 bits. Al igual que en todos los PIC, este puede leerse o escribirse como si se tratara de un registro cualquiera; algunos de sus pines tienen funciones alternas cuando se utiliza el micro en modo microprocesador.
El registro de control para la configuración de la función de sus pines se localiza en la página 1, en la dirección 88h y se llama TRISD. Puede ser configurado también para cumplir otras funciones.

09h o PORTE: Puerto de Entrada/Salida de 3 bits. Este puerto, al igual que todos sus similares en los PIC, puede leerse o escribirse como si se tratara de un registro cualquiera. El registro que controla el sentido (entrada o salida) de los
pines de este puerto está localizado en la página 1, en la posición 89h y se llama TRISE. El puerto E también puede ser configurado para que trabaje como entradas análogas para el convertidor Análogo a Digital interno del microcontrolador o para que maneje las señales de control en el modo microprocesador.

85h o TRISA: Registro de configuración del puerto A. Como ya se mencionó, es el registro de control para el puerto A. Un “cero” en el bit correspondiente al pin lo configura como salida, mientras que un “uno” lo hace como entrada.

86h o TRISB: Registro de configuración del puerto B. Orientado hacia el control del puerto B. Son válidas las mismas consideraciones del registro TRISA.

87h o TRISC: Registro de configuración del puerto C. Orientado hacia el control del puerto C. Son válidas las mismas consideraciones del registro TRISA.

88h o TRISD: Registro de configuración del puerto D. Orientado hacia el control del puerto D. Son válidas las mismas consideraciones del registro TRISA.

89h o TRISE: Registro de configuración del puerto E. Orientado hacia el control del puerto E. Son válidas las mismas consideraciones del registro TRISA.

020h a 7Fh: Registros de propósito general. Estas 96 posiciones están implementadas en la memoria RAM estática, la cual conforma el área de trabajo del usuario. Pueden ser utilizadas para almacenar cualquier dato de 8 bits.

Registro de trabajo W. Este es el registro de trabajo principal, se comporta de manera similar al acumulador en los microprocesadores. Este registro participa en la mayoría de la:
 • Memoria de programa : FLASH, 8 K de instrucciones de 14 bits c/u.
• Memoria de datos : 368 bytes RAM, 256 bytes EEPROM.
• Pila (Stack) : 8 niveles (14 bits).
• Fuentes de interrupción : 13
• Instrucciones : 35
• Encapsulado : DIP de 40 pines.
• Frecuencia oscilador : 20 MHz (máxima)
• Temporizadores/Contadores: 1 de 8 bits (Timer 0); 1 de 16 bits (Timer 1); 1 de 8
bits (Timer 2) con pre y post escalador. Un perro guardián (WDT)
• Líneas de E/S : 6 del puerto A, 8 del puerto B, 8 del puerto C, 8 del puerto D y 3
del puerto E, además de 8 entradas análogas.
• Dos módulos de Captura, Comparación y PWM:
- Captura: 16 bits. Resolución máx. = 12.5 nseg.
- Comparación: 16 bits. Resolución máx. = 200 nseg.
- PWM: Resolución máx. = 10 bits.
• Convertidor Análogo/Digital de 10 bits multicanal (8 canales de entrada).
• Puerto serial síncrono (SSP) con bus SPI (modo maestro) y bus I²C
(maestro/esclavo).
• USART (Universal Synchronous Asynchronous Receiver Transmitter) con dirección
de detección de 9 bits.
• Corriente máxima absorbida/suministrada (sink/source) por línea (pin): 25 mA
• Oscilador : Soporta 4 configuraciones diferentes: XT, RC, HS, LP.
• Tecnología de Fabricación: CMOS
• Voltaje de alimentación: 3.0 a 5.5 V DC


• Puede operar en modo microprocesador

No hay comentarios:

Publicar un comentario