Que tipo de memoria usar

#1
hola a todos!

lo que pasa es que tengo una duda:

estoy programando el micro 16F877 para hacer un "identificador de llamadas".
Todo el código ya lo tengo, pero tengo que guardar datos (teléfonos, nombres, etc) en una memoria; y no se cual usar ni como: si la EEPROM o la FLASH
¿Cual tiene mayor número de escrituras y leídas?¿Cuál es más rapida?¿Cuál es más facil?
¿Alguien tiene algun manual o información?¿Cuál es mas facil?

de antemano, muchísimas gracias, (pues es lo único que me falta para terminar el proyecto, y me urge)

:D
 
#2
creo que la mas facil es la eeprom, incluso hay muchos micro que la tienen integrada, pero tambien creo que mas rapida es la flash.
 
#3
Te recomiendo una EEPROM externa por SPI o I2C, tales como las de Microchip o Atmel.

Una 25LC256 de Microchip, 32KB, viene en DIP8, es SPI, tiene por lo menos 1,000,000 ciclos de escritura.
 
#4
Es una EEPROM ya que puedes escribir y leer, en cuanto a la flash, no puedes escribir ni almacenar datos como la eeprom e incluso la RAM.
 
#5
Meta dijo:
Es una EEPROM ya que puedes escribir y leer, en cuanto a la flash, no puedes escribir ni almacenar datos como la eeprom e incluso la RAM.
absolutamente incorrecto Meta..

el que sea FLASH solo implica que internamente sea de construcción diferente, pero puedes leer/escribir, volver a escribir, como desees... la FLASH solo tiene menos ciclos de escritura.
 
#6
eidtech dijo:
Meta dijo:
Es una EEPROM ya que puedes escribir y leer, en cuanto a la flash, no puedes escribir ni almacenar datos como la eeprom e incluso la RAM.
absolutamente incorrecto Meta..

el que sea FLASH solo implica que internamente sea de construcción diferente, pero puedes leer/escribir, volver a escribir, como desees... la FLASH solo tiene menos ciclos de escritura.
Si es al programar un *.hex al PIC, en cambio de almacenar datos como la EEPROM o RAM es como dije.

Si pretendes almacenar datos en la flash ya programada en el PIC y cambiar datos como hace una EEPROM, es la primera vez que veo esto. Ni una BIOS lo hace, para almacenarlo lo hace en una EERPOM interna o externa.

Espero haberlo dejado claro esta vez y perdón por la confusión.
 
#7
Meta, has escuchado hablar del bootloader...?

Tu que crees que hace...? Lo que hace es cambiar la FLASH en tiempo de ejecución... a traves de los datos recibidos por algun puerto...aun despues de haber grabado el .HEX

Incluso hay manera de escribir la FLASH como si de una variable normal se tratara.

Y por ultimo... tambien hay FLASH externa...
 
#8
¿Boot Loader?

mmmmmmmmmmmmmm...

...pues...

...sí.

O estoy confundido o me expreso mal.

Hace un tiempo, me han explicado que el Boot Loader tiene un pequeño programa de .hex en la flash. Al ejecutarse, guarda información e instrucciones en la memoria RAM. Después las instrucciones que hay en la memoria RAM, ordena que se borre la actual memoria flash que hay almacenada y guarda los nuevos datos y el bootloader otra vez. Si en el momento se pierde la alimentación del PIC, se borra la RAM, y si no ha dado tiempo de hacer la operación, el PIC no sirve, lo mismo con la BIOS de cualquier ordenador o PC.

¿Has oído decir que nunca apagues o reinicies el PC mientras se actualiza la BIOS? Esta información o mensaje lo dice hasta al actualizar el Firmware de la PS3.

Sin contar con el bootloader, ¿hay alguna manera de guardar una operación aritmética o resultado como sumar 2 + 3 = 5 en la flash?

Si lo guardas en la EEPROM si queda guardada aunque apagues el PIC y lo vuelvas a alimentar. ¿Puedes hacer esto en la flash y sin el bootloader?

Si es cierto que se puede hacer, pues estaría calidad, no tendría que preocuparme almacenar datos en tiempo real en la limitada EEPROM interna ya que me sobra mucho bites de la flash por poner un ejemplo.

EDIT:
Lo de la flash externa nunca lo he oído, si eso existe, es muy curioso.
 
#9
Meta dijo:
¿Boot Loader?

mmmmmmmmmmmmmm...

...pues...

...sí.

O estoy confundido o me expreso mal.

Hace un tiempo, me han explicado que el Boot Loader tiene un pequeño programa de .hex en la flash. Al ejecutarse, guarda información e instrucciones en la memoria RAM. Después las instrucciones que hay en la memoria RAM, ordena que se borre la actual memoria flash que hay almacenada y guarda los nuevos datos y el bootloader otra vez. Si en el momento se pierde la alimentación del PIC, se borra la RAM, y si no ha dado tiempo de hacer la operación, el PIC no sirve, lo mismo con la BIOS de cualquier ordenador o PC.

Sin contar con el bootloader, ¿hay alguna manera de guardar una operación aritmética o resultado como sumar 2 + 3 = 5 en la flash?

Si

Si lo guardas en la EEPROM si queda guardada aunque apagues el PIC y lo vuelvas a alimentar. ¿Puedes hacer esto en la flash y sin el bootloader?

Si

Si es cierto que se puede hacer, pues estaría calidad, no tendría que preocuparme almacenar datos en tiempo real en la limitada EEPROM interna ya que me sobra mucho bites de la flash por poner un ejemplo.

EDIT:
Lo de la flash externa nunca lo he oído, si eso existe, es muy curioso.
http://www.atmel.com/products/SFlash/default.asp

Investiga bien como funciona el bootloader, tienes que leer sobre la arquitectura, organización de memoria y el conjunto de instrucciones.
 
#13
Veo que los Atmel está en cabeza, ¿los PIC están atrás?


RECUERDA:
¿Existe la manera de guardar datos a la memoria flash sin el bootloader?
Aún esta parte no me has respondido.
 
#15
jejeejjeje, tranqui, eso es lo que quería saber.

Juraría que la respuesta es NOOOO.

Sin bootloader, claro.

¿Hay ejemplos en asm de ese ejemplo que dije del 2 + 3 = 5 y que se guarde en la propia flash en vez de la EEPROM?

¿Entonces para qué hicieron la EERPOM interna o externa?

¿De adorno?
 
#16
Uy... no es la intención de ponernos a hablar de historia ni de características, pero en si la EEPROM es muy diferente de la FLASH... tiempos de acceso, consumos de potencia, espacio en silicio.

Hay notas de aplicación de Atmel, que hablan del tema con respectivo código. No es lo mejor ni lo mas eficiente, pero SI se puede.
 
#17
En Atmel no se, pero quiero saberlo si se puede en PIC. En otros sitios dicen que no, aquí dicen que si (en Atmel).

¿En qué quedamos?

Mi lógica no me lo creo porque recuerdo que los primeros PIC no incluía EEPROM interna para guardar datos y había necesidad de ello en aquella época. Lo hicieron y ahora si se puede. Lo del bootloader es para actualizar más bien el firmware y sin quitar el PIC de la placa.

Sin contar con el bootloader no me creo que eso sea cierto, recuerdo que en un libro de PIC decía que no, pero cuando me devuelvan el libro confirmaré la respuesta y les diré la página, título, etc...

PD: Que sepas que no estoy por cabrearte ni llevarte la contraria, son opiniones que tenemos y para aprender.
 
#19
Hola mi muy distinguido amigo:

Hablaba del PIC. Ya has demostrado que en Atmel si se puede, pero en PIC no se. ME has demostrado documentos del AVR, pero de PIC no. Bueno vamos a dejarlo así, pero te admito que en PIC no me lo creo.

Un cordial saludos.
 
Arriba