¿Qué circuitos adicionales se recomiendan para un adaptador de tarjeta micro SD normal?

0

Tengo la intención de usar una tarjeta SD para registrar el movimiento (X, Y, C) de un animal con fines de investigación.

Estoy usando la plataforma de lanzamiento ARM Cortex-M4 TM4C123GH6PM de Texas Instruments junto con un adaptador de tarjeta Micro-SD de Sparkfun. Yo uso el protocolo SPI para escribir / leer la tarjeta micro SD.

Arriba hay una foto del adaptador micro SD específico que uso. Tenga en cuenta que este es un tipo de adaptador que no tiene resistencias, condensadores conectados a cualquier pin en él.

Quiero asegurar la confiabilidad de mi aplicación ya que es de importancia imperativa. Si la SD se corrompe dentro de los 14 días posteriores al montaje, se deberán gastar más fondos para volver a colgar al animal.

He hecho todo lo posible para garantizar la confiabilidad del software, pero a veces recibo errores cuando utilizo fprintf, fsync, en el que reinicio y arreglo el archivo para adjuntarlo nuevamente. Por fin, si nada funciona, restablecer el sistema completamente. Un reinicio generalmente monta el sistema de archivos nuevamente y generalmente funciona. Pero eso es algo que no quiero hacer.

Escribo diez de las siguientes cadenas por segundo y eso es todo lo que escribo en data.txt

1014067x3.97y-1.82z8.31x-0.02y-0.02z-0.01T5-45-28-900GPGLL, 0654.8824, N, 07958.3790, E, 171619.300, AB88,4030

He conectado este adaptador micro SD directamente a los pines MCU SPI. No hay resistencias, capacitores como circuito de soporte. Tenía este adaptador micro SD con resistencias pull-up, etc. y ya he notado una mejor confiabilidad con ese adaptador. Pero quiero saber con certeza si los circuitos adicionales pueden ayudar.

¿Alguien podría ayudarme a saber si las extensiones o cualquier otro circuito adicional harían que mis escrituras en SD sean más confiables?

En este momento, he notado que recibo aproximadamente 1-2 errores de una de las funciones de Fat-fs que uso cada 3-6 horas. El sistema debe funcionar durante 14 días y se espera que data.txt llegue a ser de 1.5GB después de 14 días.

    
pregunta Dina

2 respuestas

1

Bueno, desde un punto de vista eléctrico, es probable que desee resistencias de terminación en serie como 22 ohmios para cerrar la tarjeta SD, es posible que requiera detecciones de datos y líneas de clk según el microcontrolador. También una tapa de 0.1uF de Vcc a Gnd muy cerca de la tarjeta SD. Pero ese único archivo 1G es un gran riesgo. Si puedes hacerlo más pequeño es mucho mejor. No estoy 100% seguro, pero es posible que la tarjeta SD deba volver a escribir todo el archivo cada vez. Eso quemará los ciclos de escritura en la tarjeta y lo hará propenso a errores.

    
respondido por el MadHatter
0

Deberías tener un condensador, cerca del zócalo. a través de los pines de alimentación de los adaptadores SD y resistencias para mejorar la calidad de la señal en las líneas de datos.

En lugar de un archivo grande, estaría muy tentado de crear muchos archivos nuevos, tal vez cada hora o menos.

Una preocupación sería actualizar los bloques de 'metadatos' del archivo. El sistema de archivos de la tarjeta SD también usa bloques para registrar qué bloques está usando el archivo, qué tan grande es el archivo, etc. Esos bloques deben actualizarse en cada descarga. Así que serán reescritos con frecuencia. Pueden ser más problemáticos que los propios bloques de datos, que probablemente solo se actualicen un par de veces.

La actualización de esos bloques de metadatos de forma continua podría "desgastar" bastantes bloques. El firmware interno de la tarjeta SD intenta "nivelar" el desgaste de los bloques. Cuando ese firmware decida que un bloque puede estar cerca de fallar, copiará el contenido del bloque a un nuevo bloque, y eliminará ese bloque desgastado para evitar su uso posterior.

Por el contrario, no actualizar los metadatos en absoluto sería malo, ya que cualquier problema técnico podría dañar el archivo y dificultar su recuperación, ya que no habría un registro permanente en el disco de los bloques que se utilizan (un programa de recuperación de archivos). podría ser capaz de hacer buenas conjeturas sin embargo).

La creación de muchos archivos puede aumentar las posibilidades de tener datos recuperables, al tiempo que distribuye el "desgaste" en los bloques de "metadatos" y, por lo tanto, proporciona un mejor desgaste general.

Use nombres de archivos simples como 'f000000', luego 'f000001'. Su software debe poder leer el directorio, encontrar el nombre más reciente y continuar con el siguiente nombre de archivo en la secuencia. Cuando recupere los datos, amalgamar todo en un archivo debería ser fácil, por ejemplo, * NIX cat lo hará.

    
respondido por el gbulmer

Lea otras preguntas en las etiquetas