14
Sistemas Basados en Microprocesadores Memorias de Datos

02f.Memorias de datos

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 02f.Memorias de datos

Sistemas Basados en

Microprocesadores

Memorias de Datos

Page 2: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Memorias de datos

Los µcontroladores PIC disponen de dos memorias:

Una volátil de tipo RAM que se utiliza para el procesado

rápido de datos temporales.

Una no volátil de tipo EEPROM para el almacenamiento

de datos persistentes.

Page 3: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Memoria de datos RAM

Se utiliza un bus de direccionamiento está de 12 bits Se pueden direccionar un máximo de 4KBytes.

Cada posición de memoria es de 8 bits.

Está organizada en 16 bancos de 256 posiciones.

La memoria contiene dos zonas: SFR (Special Function Registers): ocupa las últimas 128

posiciones y es usada para el control y estado del controlador y sus periféricos.

GPR (General Purpose Registers): ocupa el resto de la memoria y es utilizada para datos genéricos del programador.

Page 4: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Modos de direccionamientos

Direccionamiento directo:

Por medio del registro BSR<3:0> se selecciona el banco activo, y en la instrucción se indica los 8 bits de menos peso que direccionan dentro del banco seleccionado

En las instrucciones en ensamblador se debe indicar que se hace uso del direccionamiento directo.

la instrucción movff siempre utiliza este direccionamiento y se indican los 12 bits del registro fuente y los 12 bits del registro destino

Memoria de datos RAM (continuación…)

Page 5: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Modos de direccionamiento (continuación…)

Direccionamiento de acceso a banco:

Se crea un banco de memoria especial formado por las 128 primeras posiciones y las 128 últimas posiciones

Sólo se requieren 8 bits para direccionar, indicados en la propia instrucción

Por defecto, las instrucciones utilizan este tipo de direccionamiento

Simplifica la programación al no tener en cuenta los bancos del direccionamiento directo

Memoria de datos RAM (continuación…)

Page 6: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Memoria de datos RAM (continuación…)

Registro de

selección de banco

en direccionamiento

directo

Banco de acceso

para el

direccionamiento de

acceso a banco

128 primeras posiciones

de la memoria

128 últimas posiciones de la

memoria registros SFR

Con este bit

(parámetro de las

instrucciones) se

selecciona el tipo

de direccionamiento

Direccionamiento directo y acceso a banco

Page 7: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Memoria de datos RAM (continuación…)

Modos de direccionamiento (continuación…)

Direccionamiento indirecto:

Permite al programador acceder a posiciones de memoria sin

especificarlo en las instrucciones.

Para indicar la dirección, se utilizan los registros FSRxH:FSRxL

(sólo se usan los 12 bits de menos peso)

Para el dato, se utiliza el registro INDFx que contendrá el dato del

registro apuntado por FSRxH:FSRxL

Muy útil para la creación de estructuras de datos como arrays,

pilas…

Page 8: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Memoria de datos RAM (continuación…)

Direccionamiento indirecto

Se indica la dirección del registro

sobre el que se va a trabajar

En la instrucción, se trabaja

sobre el registro INDFx sin

preocuparse de su dirección

Estos registros pueden

ser modificados

aritméticamente; p.e. un

incremento para recoger

un espacio de memoria

Page 9: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Memoria de datos RAM (continuación…)

Tabla de registros de propósito específico

Page 10: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Memoria de datos EEPROM

Se utilizan direcciones de 8 bits

Se pueden direccionar 256 posiciones

Cada posición de memoria tiene 8 bits

Es una memoria persistente y se puede leer y escribir.

La memoria tiene una vida útil de alrededor de 1.000.000 de escrituras.

Registros asociados a la lectura/escritura:

EEADR (registro de dirección):contiene la dirección sobre la que se va a leer o escribir.

EEDATA (registro de dato): contiene el dato a leer o escribir.

EECON1 (registro de control): configura las operaciones de lectura y escritura

EECON2 (registro de seguridad): para evitar falsas escrituras

Page 11: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Memoria de datos EEPROM (continuación…)

Page 12: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Memoria de datos EEPROM (continuación…)

Proceso de lectura

La lectura del registro es inmediata.

Pasos a seguir

1. Se indica la dirección en el registro de dirección EEADR

2. Se configura el registro de control EECON1

3. Se lee el dato del registro de datos EEDATA

Page 13: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Memoria de datos EEPROM (continuación…)

Proceso de escritura

El proceso de escritura no es inmediato, sino que se requiere de un tiempo para que se complete la operación.

Se utiliza una secuencia de seguridad para evitar falsas escrituras (número limitado de escrituras de la memoria).

Este recurso implementa una interrupción por finalización de escritura (bits EEIP, EEIE, EEIF).

Pasos a seguir:

1. Se indica la dirección en el registro de dirección EEADR

2. Se escribe el dato en el registro de datos EEDATA

3. Se configura el registro de control EECON1

4. Se implementa la secuencia de seguridad (las interrupciones deben estar desactivadas)

5. Se espera a que finalice la escritura (bucle de chequeo de bit de estado o por interrupción)

Page 14: 02f.Memorias de datos

http://paginaspersonales.deusto.es/jonathan.garibay/

Memoria de datos EEPROM (continuación…)

Proceso de escritura (continuación…)