Autor Tema: Daño en memoria flash  (Leído 8879 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Daño en memoria flash
« Respuesta #15 en: 19 de Abril de 2017, 11:16:31 »
¿Cuántos datos debes retener a la vez?

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Daño en memoria flash
« Respuesta #16 en: 19 de Abril de 2017, 11:19:06 »
Pon varias de estas. Cuestan la décima parte y soportan 100000 ciclos:
https://www.digikey.com/product-detail/en/adesto-technologies/RM24C512C-LSNI-T/1265-1215-2-ND/5972798

Para ver duración busca la palabra mágica:  'Endurance'

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re:Daño en memoria flash
« Respuesta #17 en: 19 de Abril de 2017, 12:13:31 »
1. 'Endurance' no aparece en el datasheet  :(
2. No puedo colocar varias de esas memorias por espacio y ademas serian muchas para poder guardar toda la información que necesito.
3. Es historia lo que tengo que guardar y son diferentes historias, por eso la gran cantidad de datos y casi que al tiempo.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Daño en memoria flash
« Respuesta #18 en: 19 de Abril de 2017, 12:48:15 »
1. Endurance si que viene, varias veces: http://www.adestotech.com/wp-content/uploads/DS-RM24C512C_082.pdf

2. Las memorias que he puesto tienen un encapsulado pequeño SOIC8 (5.8x4.8mm) mucho menor que la memoria que has puesto tu (20x12mm)

3. Te preguntaba la cantidad de datos (con cifra) para sobredimensionar la memoria (x10) y así que puedas rotar los datos y que la memoria dure más.
Otra cosa es que algunos datos se escribirán muchas veces y otros pocas veces. Hay que mover más los datos que más se escriban.
Creo que la idea general se entiende.

Un saludo.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Daño en memoria flash
« Respuesta #19 en: 19 de Abril de 2017, 12:52:44 »
2. Las memorias que he puesto tienen un encapsulado pequeño SOIC8 (5.8x4.8mm) mucho menor que la memoria que has puesto tu (20x12mm)

No me he dado cuenta de que su capacidad es de solo 512kbit. Lo he confundido con 512Mbit.
Esta memoria no te vale.

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re:Daño en memoria flash
« Respuesta #20 en: 19 de Abril de 2017, 12:57:15 »
1. No aparece en el datasheet de la memoria eeprom que pienso usar: https://toshiba.semicon-storage.com/info/docget.jsp?did=14878&prodName=TC58BVG0S3HTAI0

2. Memoria muy pequeña  :(.

3. Esa idea si es buena, aunque algunas historias ocupan mas de 2 sectores de 4K.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Daño en memoria flash
« Respuesta #21 en: 19 de Abril de 2017, 13:03:15 »
A ver que tal esta de 2Gbit :
https://www.digikey.com/product-detail/en/winbond-electronics/W25M02GVZEIG-TR/W25M02GVZEIG-TR-ND/5803925

Es de tipo SLC, que resiste más que otros tipos. Es de mejor calidad y más cara:
https://en.wikipedia.org/wiki/Multi-level_cell

El problema es que tendrás que comprarlo en otro sitio porque digikey solo te permite comprar en lotes de 5000.

Un saludo.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Daño en memoria flash
« Respuesta #22 en: 19 de Abril de 2017, 13:05:57 »
1. No aparece en el datasheet de la memoria eeprom que pienso usar: https://toshiba.semicon-storage.com/info/docget.jsp?did=14878&prodName=TC58BVG0S3HTAI0
Puedes buscarlo en otro datasheet y si no aparece, no te fíes.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Daño en memoria flash
« Respuesta #23 en: 19 de Abril de 2017, 15:58:59 »
1. No aparece en el datasheet de la memoria eeprom que pienso usar: https://toshiba.semicon-storage.com/info/docget.jsp?did=14878&prodName=TC58BVG0S3HTAI0

Es una Flash eso..es EEPROM en el sentido de que uno puede borrarlo de forma electrica, pero es un Flash en si.
Nosotros nos referimos a una EEPROM como aquella que podemos borrar byte a byte, que ademas de eso y la cantidad de ciclos es lo que lo diferencia de las Flash. Claramente ese datasheet es una Flash, incluso si buscas Flash aparece esto:

Citar
ECC can be performed on the NAND Flash main and spare areas

Refiriendose a la memoria como una Flash ...

Una EEPROM no posee tanta capacidad como la que mostras, 1 Gb es una absurdidad. Por supuesto, podes usar esta flash y como es tan GRANDE podrias tranquilamente modificar pagina a pagina que no te importaria. Y duraria mas...

Pero eso no es todo, Hay mas !!!

Como borche de oro, La flash puede venir con bloques fallados!, el datasheet especifica que el numero de bloques sanos es desde los 1004 a los 1024. Eso hace que necesites saber que bloques estan malos y crear una tabla para discriminarlos apenas los recibis o planificar de antemano que hay bloques que fallan.
Tambien deberias tener una tabla para aquellos sectores que te presenten errores, es cierto que tiene una correcion de errores de hasta 8 bits en bloques de 512 bytes, y deteccion de error para un 9no bit.

------------------------------------

Lo mas grande como EEPROM que vi es de 1M.

http://www.onsemi.com/pub/Collateral/CAT24M01-D.PDF
https://www.digikey.com/product-detail/en/on-semiconductor/CAT24M01WI-GT3/CAT24M01WI-GT3OSCT-ND/2698362

Como te dijo Picuino la idea es que pongas varios en el bus I2C, Podes poner un maximo de 4. Lo unico que cambiarias son los valores de los pines para cambiar su direccion.
Lo que si no podes sobredimensionar demasiado.

Si tu problema es el tamaño poseen en encapsulados UDFN8 que son de 3mmx2mm, o TSSOP8 4.4mmx3mm
« Última modificación: 19 de Abril de 2017, 16:01:35 por KILLERJC »

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re:Daño en memoria flash
« Respuesta #24 en: 19 de Abril de 2017, 17:34:32 »
Bueno, por lo que veo estoy en un problema jajajajaja... necesito guardar información, 3MBytes, en que memoria la podría guardar.

Por que la que muestras es de 1Mbit, es muy poco espacio.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Daño en memoria flash
« Respuesta #25 en: 19 de Abril de 2017, 18:10:51 »
Todo depende de la cantidad de vida util que esperas tener de tu almacenamiento. De ahi podemos salir para un lado u otro.

Ya sabemos que el ratio de escritura va a ser 1 escritura por minuto, no sabemos que cantidad debe cambiar ni cuanto queres que dure el producto.

Suponiendo que cambies al ratio que tenias, si tuvieras 3 de esas EEPROM de 1M te durarian 20 meses aproximadamente ( 2 meses = 100k escrituras aprox ).
Aun asi no te sirve?

Buscas una Flash mas grande que pueda contener todo y poder ir rotandolo asi dura mas. ¿ Tal ves una SD manejado con SPI en el peor de los casos?

Y finalmente si no queres depender mas de eso buscas otra cosa. Que puedas grabar siempre y que quede, lo unico que se que puede hacerlo es un HDD.

Y si aun asi no te sirve, buscaria la forma de hacerlo distinto a lo que estas haciendo.
« Última modificación: 19 de Abril de 2017, 18:17:09 por KILLERJC »

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re:Daño en memoria flash
« Respuesta #26 en: 20 de Abril de 2017, 09:38:44 »
Creo que mi opción sera, una eeprom donde pueda guardar mi configuración, y una flash de bastante capacidad para poder guardar historia con una vida útil bastante larga, espero superar los 5 años.

Desconectado colotron

  • PIC12
  • **
  • Mensajes: 73
    • Canal de YouTube
Re:Daño en memoria flash
« Respuesta #27 en: 20 de Abril de 2017, 16:14:11 »
Unas preguntas que pueden servir para dimensionar mejor el tema de la memoria:
1) cuánta memoria precisas por día (o la unidad de tiempo que te parezca) -> bytes/dia o bytes/minuto o lo que tengas a mano
2) es crítico el consumo de energía? (es a pilas/baterías?)
3) mencionas el tema del espacio, es muy reducido el espacio en placa?

Si es mucha cantidad de datos (habría que ver cuanto es "mucho"), consideraste usar una memoria microSD en crudo (sin sistema de archivos, escribiendo y leyendo pagínas/bloques/sectores).

Para las FRAM parece que es mucha cantidad de datos.

Como está estructurado el software?, doy por descontado que se escribe de a páginas enteras y no de a 1/2/4/8 bytes, hago bien?.

Como se realiza el borrado? (el borrado se hace por sector, pero que no vaya a ser que se lee todo un sector, se borra, y se vuelve a escrbir todo un sector menos una página que sería la borrada).

También que no se escriba siempre al mismo lugar de la memoria (a la misma página) sino que se utilice como un buffer circular gigante.

Me llama la atención que la memoria se llena tan rápido y se consuman tantos ciclos de escritura en tan poco tiempo.

Desconectado IngRandall

  • PIC18
  • ****
  • Mensajes: 383
Re:Daño en memoria flash
« Respuesta #28 en: 20 de Abril de 2017, 16:36:45 »
Como se realiza el borrado? (el borrado se hace por sector, pero que no vaya a ser que se lee todo un sector, se borra, y se vuelve a escrbir todo un sector menos una página que sería la borrada).

Hola, algo que me deja con mucha duda de tu comentario es esta parte, eso es como yo hago, leo un sector, borro el sector y escribo el sector... como debería hacerlo?

1. Después de hacer ajustes, hemos llegado a escribir cada 10 min.
2. Si es critico el consumo, por que el equipo debe ser lo mas bajo consumo posible, actualmente cuando esta en sleep consume entre 4 a 8uA.
3. Pues reducido mas o menos, si no que por ejemplo creo que hasta 3 memorias seria viable, ademas de espacio el costo del equipo aumentaría, actualmente, con los cambios que hemos hecho, utilizaría 2 memorias eeprom de 256Kbytes cada una para almacenar todo, voy a hacer pruebas y comentare.

Desconectado colotron

  • PIC12
  • **
  • Mensajes: 73
    • Canal de YouTube
Re:Daño en memoria flash
« Respuesta #29 en: 20 de Abril de 2017, 18:36:09 »
Como se realiza el borrado? (el borrado se hace por sector, pero que no vaya a ser que se lee todo un sector, se borra, y se vuelve a escrbir todo un sector menos una página que sería la borrada).

Hola, algo que me deja con mucha duda de tu comentario es esta parte, eso es como yo hago, leo un sector, borro el sector y escribo el sector... como debería hacerlo?

Ah bien... pasa que he visto alguna librería por internet hecha con muy buena voluntad por algún arduino-fan y .... tenía una función borrado+escritura de página que volcaba todo un sector a memoria del micro, lo borraba en la flash externa, y volvía a escribir la misma información pero solo modificaba la página nueva a escribir.

Ya veo que no hace falta esperar ese tipo de cosas :)

1. Después de hacer ajustes, hemos llegado a escribir cada 10 min.

Ok, pero y volumen de datos?, supongo que lo que en realidad importa es el porcentaje de memoria escrita en un período de tiempo (caudal de datos digamos).
Ejemplo: si escribo un 1% de la memoria cada 10 minutos, estoy escribiendo toda la memoria cada 100x10 = 1000 minutos ~ 16.5 horas/ciclo completo
Supongamos que tenemos 10 000 ciclos buenos de escritura antes de dañar la flash, eso sería:
10 000 ciclos* 16.5 horas/ciclo = 166 Khoras = 6944 días = 19 años
Pero si escribo un 10% de la memoria cada 10 minutos, bueno, la décima parte, 1.9 años

Yo usaría esa cuenta barata de servilleta para decir groso modo que capacidad de memoria preciso de acuerdo al caudal de datos logeado, o al revés, de acuerdo a la duración deseada del equipo que capacidad de memoria preciso.

2. Si es critico el consumo, por que el equipo debe ser lo mas bajo consumo posible, actualmente cuando esta en sleep consume entre 4 a 8uA.

Entonces eso podría dejar de lado la opción de usar una tarjeta SD, que podría consumir 10 veces más que un chip de flash.

3. Pues reducido mas o menos, si no que por ejemplo creo que hasta 3 memorias seria viable, ademas de espacio el costo del equipo aumentaría, actualmente, con los cambios que hemos hecho, utilizaría 2 memorias eeprom de 256Kbytes cada una para almacenar todo, voy a hacer pruebas y comentare.

4Mbit... y se complica mucho conseguir memoria flash de ~10Mbits?
Estás limitado a mercado local o podés pedir algo a Digikey o Mouser por ejemplo?, una búsqueda rápida:
https://www.digikey.com/products/en/integrated-circuits-ics/memory/774?k=&pkeyword=&pv154=45&pv154=29&pv154=995&pv154=997&pv154=996&pv16=6548&pv16=7409&pv16=6689&pv16=2850&pv16=4328&pv16=11667&pv16=11958&pv16=6793&pv16=6768&pv16=11668&pv16=12133&FV=f040005%2Cffe00306%2C2380076%2C23805db%2C23805dc%2C23805dd%2C23805de%2C23805df%2C23805e0%2C23805e2%2C23805e3%2C238063c%2C238063d%2C238063e%2C238063f%2C2380640%2C2380641%2C2380642%2C2380643%2C2380644%2C2380645%2C238066b%2C238066c%2C238066e%2C238066f%2C2380670%2C238068c%2C238068d%2C238068e%2C238068f%2C2380690%2C2380692%2C2380694%2C2380695%2C23806ac%2C23806ad%2C23806ae%2C23806b0%2C23806b1&mnonly=0&newproducts=0&ColumnSort=0&page=1&quantity=0&ptm=0&fid=0&pageSize=25

Y si es local elemon algo puede tener:
http://elemon.com.ar/BuscarSubRubros.aspx?Action=2&GrupoId=ME&RubroId=293&SubRubroId=1

Si precisas hacer pruebas hasta podrías usar una de alguna notebook en desguase (tambien son capsulas so-8, fáciles de trabajar).


 

anything