Almacenamiento de tarjeta micro-SD de bajo consumo

17

Estamos construyendo un registrador de datos de baja potencia basado en el ATmega328P, para utilizar el cargador de arranque Arduino y el IDE, etc. Idealmente, el consumo de energía debería ser inferior a 0,3 mA a 3,3 V para obtener aproximadamente 4 meses de vida útil en una sola batería AA. Los datos del sensor se almacenarán a un máximo de 76 bytes / seg durante los 4 meses, dando alrededor de 750 MiB de datos. Por lo tanto, necesitamos un dispositivo de memoria grande, que aún sea de baja potencia.

Por lo que puedo decir, la única solución práctica para almacenar tanta información es usar una tarjeta SD. Sin embargo, las tarjetas SD parecen usar un poco más de poder de lo que podemos permitirnos, una corriente de inactividad de 0,2 mA para las tarjetas que tenemos ahora y más cuando están escribiendo.

Entonces algunas preguntas:

  • ¿Es un interruptor de lado alto la única forma práctica de controlar el consumo de energía de la tarjeta SD?
  • ¿Hay alguna advertencia que debamos tener en cuenta al cambiar la alimentación a la tarjeta? Por ejemplo, es un proceso de nivelación de desgaste que se realizará después de una escritura de bloque, o puede suceder en cualquier momento.
  • ¿Hay otras alternativas que deberíamos considerar?
pregunta geometrikal

4 respuestas

18

Si está presupuestando un promedio de 0.3 mA, cada µA cuenta. No es tanto un problema para el microcontrolador, pero la tarjeta SD consumirá decenas de mAs. Quieres que esté encendido lo menos posible. Pero el ATmega328P tiene solo 2 KB de RAM, lo que significa que su búfer de muestra estará lleno en menos de medio minuto, y luego es el momento de escribir en la tarjeta SD. Dos veces por minuto.

Consideraría un TI MSP430 en lugar del AVR. Sigue siendo el controlador más bajo disponible comúnmente. Le ahorrará el µA que necesitará cuando escriba en la tarjeta SD. El MSP430F5418A también tiene 16 kB de RAM, por lo que tiene que encender la tarjeta SD solo una vez cada tres minutos y medio.

Puede ejecutar el MSP430 en su oscilador de baja frecuencia, y cambiar al DCO (Oscilador controlado digitalmente) de alta frecuencia para escribir en la tarjeta SD, para que esto tome el menor tiempo posible.

Para alimentar la tarjeta SD, de hecho usaría un interruptor de lado alto. La

editar
Si no le importa un paquete BGA, un dispositivo NAND Flash puede ser una alternativa a la tarjeta SD.
This puede funcionar en MMC o modo SPI. Consume menos que una tarjeta SD, pero sigue consumiendo 200 µA en modo de espera, por lo que aún querrá apagarlo con el FET de lado alto. Asegúrese de reducir las E / S del chip antes de desconectar la alimentación. Eso va para la tarjeta SD también.

    
respondido por el stevenvh
14

(Respondiendo a mi propia publicación con información útil)

He realizado algunos experimentos con un conjunto limitado de tarjetas SD para verificar su consumo de energía. Parece que varían ampliamente entre los fabricantes y dentro de los tipos, algunas tarjetas consumen 10 veces más energía para dormir que otras.

Hay dos resultados a continuación. El primero es el consumo actual estimado al dormir, y el segundo es el consumo actual promedio de aproximadamente 1 sector, escriba cada 5 segundos para mi tablero .

Card                     Sleep (mA)         Cyclic write (mA)   Number of cards tested

Sandisk 4GB Class 4      0.34-0.95 (0.69)   0.64-1.25 (1.05)    5
Verbatim 4GB Class 4     0.06-0.12 (0.09)   0.12-0.17 (0.16)    6
Kingston 4GB Class 4     1.34-1.34 (1.34)   1.47-1.47 (1.47)    1
Lexar 4GB Class 4        0.09-0.09 (0.09)   0.11-0.12 (0.12)    2

Lexar 8GB Class 6        0.06-0.09 (0.08)   0.09-0.12 (0.10)    4 (best so far)

Toshiba 16GB Class 10    0.12-0.12 (0.12)   0.18-0.18 (0.18)    1

No he incluido la corriente de pico porque no parece ser una medida confiable con mi multímetro. Probablemente porque la tarjeta solo se escribe por unos pocos ms. Pero me di cuenta de que todas las tarjetas dieron una medida de pico de 5 - 6 mA (alisada) mientras que el Lexar dio 2 - 3mA (alisado). Tenga en cuenta que la corriente máxima real es un orden de magnitud mayor que esto, pero sí indica que la tarjeta Lexar tiene una corriente de escritura baja y está inactiva.

Ganador actual

Lexar 8GB Class 6

Actualizaré esta lista a medida que se realicen más pruebas. (Última actualización: 2014-08-14)

    
respondido por el geometrikal
2

Pruebas agradables. Consulte nuestro tutorial de registro de datos de bajo consumo con Arduino Pro Mini y tarjetas SD: enlace

Probablemente contiene exactamente lo que necesita (la interrupción de RTC lo despierta, cerca de un año de duración de la batería, etc.) Nuestro consumo de energía "general" es de aproximadamente 0.195 mA a 3.3 V, y esto puede bajar a 0.11 mA o mucho más bajo, si usa otras placas o el chip ATmega328P en sí.

Al igual que @stevenvh dijo, necesitará un transistor para controlar la alimentación del lector de tarjetas SD cuando el procesador esté en modo de suspensión.

    
respondido por el OSBSS
0

Las corrientes de reposo más bajas que he visto para las tarjetas SD son alrededor de 0.05 mA para el antiguo sandisk 256Mb, y al igual que la gente de OSBSS, rara vez obtengo mi data logger construye por debajo de 0.1 mA porque las tarjetas SD típicas parecen consumir aproximadamente 0.07 mA. Aún así, cuando llegue a ese territorio, debería poder obtener fácilmente de 3 a 4 meses de AA si su regulador de arranque es lo suficientemente eficiente.

Asegúrese de verificar que está levantando las conexiones no utilizadas en su adaptador de tarjeta SD, o las corrientes de reposo pueden ser mucho más altas. También explore la biblioteca de bajo consumo de Rocket Screem, como esto le permite ingresar fácilmente diferentes modos de suspensión 328P.

En cuanto al cambio: el tipo que escribió las bibliotecas de SD para el arduino advierte contra el apagado de las tarjetas SD en el patio de Arduino, por lo que no he seguido ese enfoque. Me gustaría saber cómo funcionó para los chicos de OSBSS (?)

    
respondido por el Ed Mallon

Lea otras preguntas en las etiquetas