Módulos de SD card

Tenho dois módulos de cartão SD. Um para o formato micro SD card e outro para SD card normal.

Os módulos de cartões SD (sdcard) para os arduinos tem as seguintes caracteristicas gerais:

  • Comunicam com o arduino  por uma interface SPI, composta por 4 ligações;
  • Necessitam da biblioteca SD para ler e escrever em sistemas de ficheiros FAT;

Biblioteca

SD
https://www.arduino.cc/en/Reference/SD

A bilioteca tem exemplos da programação necessária para utilizar o sd card.

Exemplos

  • Card Info: exibe informações sobre o SD card;
  • Datalogger: Faz o log de dados de sensores num ficheiro no SD card
  • Dump File: Lê um ficheiro do SD card
  • Files: Cria e elimina ficheiros no SD
  • List Files: Lista os ficheiros numa pasta do SD card
  • Read Write: Lê e escreve dados num SD card

Utilização de memória tipica dos exemplos

O rascunho usa 10912 bytes (35%) do espaço de armazenamento do programa. O máximo é 30720 bytes.
Variáveis globais usam 1008 bytes (49%) de memória dinâmica, restando 1040 bytes para variáveis locais. O maximo é 2048 bytes.

Ligações do módulo

SD – Arduino

  • 5V – 5V
  • GND – GND
  • MOSI – pin 11 (pino fixo SPI)
  • MISO – pin 12 (pino fixo SPI)
  • CLK – pin 13 (pino fixo SPI)
  • CS – pin 10 (pino SPI, qualquer pino digital)

Alguns módulos também têm um pino de 3.3 Volts, que, pelo que percebi e experimentei, não é necessário ligar.

Experiência de utilização

Experimentei os dois módulos com dois cartões diferentes, a ideia era avaliar os problemas encontrados, a memória usada e a velocidade de resposta.

Problemas

Não tive qualquer problema. Funcionou a primeira.

Memória

A memoria necessária para implementar a biblioteca e o mais simples exemplo de escrita e leitura revela que a sua utilização é impossivel num Nano 168. Usa  cerca de 10 Kbytes de memoria de programa e cerca de 1k bytes de memoria de dados.

Velocidade

Usando um Nano 328p com um cartão antigo, que presumo lento:

volume, escrita, leitura

  • 128, 128 bytes, 6 ms,  627 ms (com criação do ficheiro)
  • 256, 128 bytes, 11 ms,  413 ms
  • 512,  256 bytes, 21 ms,  416 ms
  • 1024, 512 bytes, 39 ms,  417 ms
  • 2048, 1024 bytes, 76 ms,  769 ms

Usando um Nano 328p com um cartão micro SD que presumo mais rapido:

volume, escrita, leitura

  • 128, 128 bytes, 41 ms,  1699 ms (com criação do ficheiro)
  • 256, 128 bytes, 45 ms,  68 ms
  • 512,  256 bytes, 59 ms,  84 ms
  • 1024, 512 bytes, 78 ms,  89 ms
  • 2048, 1024 bytes, 121 ms,  107 ms