View
3.600
Download
0
Category
Preview:
DESCRIPTION
Citation preview
Sistemas Basados en
Microprocesadores
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.
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.
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…)
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…)
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
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…
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
http://paginaspersonales.deusto.es/jonathan.garibay/
Memoria de datos RAM (continuación…)
Tabla de registros de propósito específico
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
http://paginaspersonales.deusto.es/jonathan.garibay/
Memoria de datos EEPROM (continuación…)
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
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)
http://paginaspersonales.deusto.es/jonathan.garibay/
Memoria de datos EEPROM (continuación…)
Proceso de escritura (continuación…)
Recommended