¿Podría el software causar daños permanentes a la microSD?

Estamos usando microSD como memoria principal en nuestros dispositivos (modo raw, interfaz SPI, MCU STM32), y en estos años tuvimos muchos problemas con ellos.

Hemos actualizado nuestros controladores muchas veces y también hemos agregado muchas protecciones de hardware a las placas. hasta ahora hemos resuelto muchos problemas, pero también quedan algunos problemas. Sabemos que nuestras microSD son de mala calidad y en ocasiones encuentran daños permanentes (sectores defectuosos, protegidos contra escritura,...).

Mi pregunta es que, en teoría, ¿es posible dañar permanentemente la microSD por software (controlador de bajo nivel)?

Si su software configura erróneamente el pin MISO como salida, eso podría dañarlo.

Respuestas (3)

Sí, es posible hacer que una tarjeta SD quede completamente inoperable simplemente usándola "normalmente". El software de bajo nivel siempre se interpone en el camino, lo desee o no.

La tarjeta SD en sí contiene firmware que toma la decisión final de escribir o no datos en una ubicación determinada. Es poco probable que los controladores de su sistema operativo tengan mucha influencia en la salud del disco. La cantidad total de datos escritos determinará en última instancia la tasa de uso de la tarjeta.

No compre tarjetas SDC de grado de consumo baratas, debe considerar comprar las tarjetas de grado industrial más caras y optar por las clasificadas para un rango de temperatura de funcionamiento más amplio.

Mi empresa realizó una prueba destructiva de las tarjetas industriales de alta gama y tomó 3 semanas completas de sobreescritura constante para ver el primer error de escritura, eso fue después de que se escribieron aproximadamente 18 terabytes.

Las tarjetas más baratas se rindieron por completo después de solo un par de días, es decir, se volvió imposible escribir nada en la tarjeta. El propio sistema operativo se negó a comprender la geometría, lo que significa que no era posible recuperar la tarjeta para volver a su uso normal: la tarjeta estaba desgastada hasta el punto de ser inútil.

Llegamos a la conclusión de que las tarjetas SD son un medio de almacenamiento bastante malo, pero para un uso de baja velocidad, aunque probablemente estarán bien siempre que esté dispuesto a sobreespecificarlas para proporcionar quizás cuatro veces más almacenamiento de lo que realmente necesita su proyecto.

Hay algunas formas de bloquear sus tarjetas de memoria SD solo con software:

  1. Use comandos de 'interfaz' patentados que pueden habilitar el cifrado o bloquear algo más.
  2. Solicite el cambio a 1.8V SDIO, mientras aún tiene 3.3V en la MCU (no estoy seguro de qué podría pasar aquí y qué tan amplios podrían ser los daños)
  3. El uso de unidades de asignación de clúster incorrectas (formateo con la herramienta de Windows en lugar de una dedicada) o la escritura en la tarjeta en sectores únicos de 512 bytes en lugar de bloques más grandes (lo que obliga a borrar "sectores flash" únicos de 32k 64 veces), reducirá significativamente la vida útil de la tarjeta. http://elm-chan.org/fsw/ff/en/appnote.html#fs2
  4. En caso de usar tarjetas SD de grado consumidor. Hay una lotería en el comportamiento después de gastar el flash. Algunas tarjetas pueden entrar en modo de solo lectura, algunas permitirán sobrescribir bloques defectuosos y otras simplemente se bloquearán. Aún más, existe la posibilidad de que la tarjeta SD se bloquee "solo porque sí" sin ningún intento de desgastarla.

Podría escribir continuamente en la tarjeta SD hasta que muera, ya que tienen un número limitado de ciclos de escritura.

Aunque, si no está tratando deliberadamente de matar la tarjeta, o escribiendo constantemente grandes cantidades de datos, es poco probable que llegue a ese límite con el uso normal.

Gracias, pero ese no es nuestro problema.