É possível reconhecer cartões SD maiores que 2GB pelo Arduíno?

143 views
Skip to first unread message

Daniel Franco

unread,
Aug 4, 2014, 6:46:32 PM8/4/14
to arduino-...@googlegroups.com
Olá pessoal, eu sou meio iniciante ainda, mas eu fiz uma boa pesquisa e não achei resposta, aparentemente só é possível reconhecer cartões de até 2Gb, mas porque? porque não é possível reconhecer mais? quando eu coloco um maior aqui ele sempre da um valor errado no teste e as vzes não reconhece, mas um de 2gb que eu tinha aqui na minha bagunça vai normal, no começo achei que era algum defeito mas depois eu descobri que é uma característica porem sem resposta do porque, MAS O PIOR DE TUDO é que eu fui nas lojas aqui na cidade e teve até uma delas que me chamou de trouxa por querer usar um cartão de 2gb sendo que tem cartões de 8gb por R$20 e que era o mesmo preço do de 2Gb que eles tinham antes... não consegui achar cartões de 2gb novos aqui na cidade, os menores foram de 4gb, fui em todas as lojas aqui na cidade (é cidade pequena, tem cerca de 140 lojas apenas, foi uma tarde inteira, mas fui em todas, até nas de 1.99 que tem nos bairros) e ninguém mais tem, aparentemente o custo do de 2gb pro de 4 e 8 se tornou comercialmente inviável ter os de 2gb pois o publico alvo aparentemente não utiliza mais um armazenamento inferior a 4gb.

Alguem tem uma dica? por hora eu me viro aqui, mas depois eu vou precisar de mais, aparentemente no mercado livre tem mas é quase o mesmo preço dos maiores encontrados aqui, então se tivesse como usar um maior me seria muito útil.

Lago

unread,
Aug 4, 2014, 9:42:35 PM8/4/14
to arduino-...@googlegroups.com
Andei olhando os forums e vi que funciona sim, veja:

Como formatou seu cartão? As libs trabalham com FAT16 e FAT32.

Att
Lago

Lago

unread,
Aug 4, 2014, 9:47:32 PM8/4/14
to arduino-...@googlegroups.com
Veja:


Em segunda-feira, 4 de agosto de 2014 19h46min32s UTC-3, Daniel Franco escreveu:

Daniel Franco

unread,
Aug 4, 2014, 10:25:05 PM8/4/14
to arduino-...@googlegroups.com
Eu usei esse programa que tem neste link ai para formatar o cartão, ele fez automaticamente em FAT16.
O que eu tenho de cartão aqui é esse de 2 e dai varios de 8gb... não tinha um de 4gb para testar, nem tinha visto esse site, e em varios lugares eu li que o maximo era 2gb, amanha vou comprar um de 4gb para testar, em todo caso ai diz: he library supports FAT16 formatted SD cards up to 2GB in size. 4GB FAT16 formatted SD cards might work, but is untested.
Ou seja, talvez funcione talvez não... só é garantido com 2gb...

Enfim, alguém saberia me explicar oque limita o tamanho do cartão? por acaso é os bits do atmega? se for então um arduino due deve conseguir ler um HD de mais de 500gb... ou é a biblioteca?

Lago

unread,
Aug 5, 2014, 2:55:11 PM8/5/14
to arduino-...@googlegroups.com
Só por curiosidade, o que tanto quer guardar num SD maior que 2G?

Att


Em segunda-feira, 4 de agosto de 2014 19h46min32s UTC-3, Daniel Franco escreveu:

Elson Junior

unread,
Aug 6, 2014, 8:58:36 PM8/6/14
to arduino-...@googlegroups.com
Eu até entendo o Daniel. O problema nem é o tamanho. O problema é que está cada vez mais difícil achar um cartão SD de 2 Gb, logo esta limitação do arduino incomoda.


--
--
Você recebeu esta mensagem porque está inscrito no
Grupo "arduino-brasília" nos Grupos do Google.
E-mail: arduino-...@googlegroups.com
Url: http://groups.google.com.br/group/arduino-brasilia?hl=pt-BR
Sair: arduino-brasil...@googlegroups.com
---
Você recebeu essa mensagem porque está inscrito no grupo quot;arduino-brasilia" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para arduino-brasil...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para arduino-...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Daniel Franco

unread,
Aug 8, 2014, 5:05:44 PM8/8/14
to arduino-...@googlegroups.com
Desculpa a demora para responder.
É como o Elson disse, aqui na minha cidade (não sou de brasilia, mas como esse é um bom grupo espero que me aceitem) já não acha mais os de 2gb, é só de 4gb para +, tem no mercado livre cartões menores mas dai tem mais o frete e o tempo para vir... para o que eu vou usar 20mb de espaço já dá...

Fiz o teste com um de 4gb, funcionou, mas as vzes da erro na leitura...

Edilto Cesar

unread,
Aug 8, 2014, 5:22:05 PM8/8/14
to arduino-...@googlegroups.com

Na China tem aos monte.
O problema e o tempo para chegar.

Edwaldo Queiroz

unread,
Aug 8, 2014, 5:41:51 PM8/8/14
to Arduino
Me deixa dar um pitaco aqui, observando que nunca estudei nem utilizei SD com Arduino, portanto, pode ser uma total asneira. hehehe

Vamos lá: será que se particionar o cartão, com a partição igual ou menor que 2gb, resolveria o problema? Assim dava para fazer os testes, até que se possa utilizar cartões maiores ou encontrar os menores.

:¬)))

 
---
Edwaldo Queiroz
(31) 8779-3313
seug...@gmail.com


2014-08-08 18:22 GMT-03:00 Edilto Cesar <enge...@gmail.com>:

Na China tem aos monte.
O problema e o tempo para chegar.

--

Luzemário

unread,
Sep 18, 2014, 4:13:55 PM9/18/14
to arduino-...@googlegroups.com
Nada impede que se formate um cartão maior com 2GB e se use só os 2GB. O problema é que a diferença entre os padrões SD, SDHC e SDXC pode tornar o cartão incompatível no Arduino. Todo cartão compatível com o padrão SD maior que 2GB é SDHC. Todo o cartão compatível com o padrão SD maior que 32GB é SDXC.

A FAT16 só permite partições de até 2GB porque o tamanho máximo de cada célula (ou cluster) no mapa de alocação é de 32KB. Como o sistema usa 16 bits para endereçar essas células (daí o nome "File Allocation Table 16 bits" ou "FAT16"), o tamanho máximo que pode ser mapeado é de 2GB (32768 bytes por cluster x 65536 clusters).

O MSDOS 6.22 trouxe uma implementação não padrão da FAT16 que permitia clusters de 64KB, mas o número de clusters não podia ser maior que 32767, mantendo o limite de 2GB. Esse formato não é utilizado no driver FAT das versões posteriores do Windows e pode representar problemas de compatibilidade. Além disso, clusters grandes representam um enorme desperdício de espaço para arquivos pequenos. Um arquivo de texto de 1KB em um sistema com células de 64KB vai ocupar 64KB de espaço, porque não é possível alocar menos de uma célula ou frações dela para um arquivo.

O padrão FAT32 não só permite 2^32 clusters, mas também permite que cada cluster tenha até 64KB e outras mudanças. Mesmo assim, o tamanho de um único arquivo não pode ser maior que 4GB, daí não ser possível salvar imagens de DVDs ou BLU-Rays em HDs externos formatados em FAT32.

Nos cartões SDXC, o padrão é exFAT (FAT de 64 bits). Este padrão é proprietário da Microsoft e não pode ser utilizado sem autorização dela e sem pagamento de royalties. Não há biblioteca para esse padrão (e talvez nunca tenha em razão do licenciamento). Muita gente está utilizando os formatos de arquivos do Linux porque são abertos (ext2, ext3, etc), mas os fabricantes só estão preocupados com o que traz dinheiro para eles (Leia-se: Windows). Essa é uma briga que vai causar grandes problemas de compatibilidade no futuro.

Há algumas bibliotecas que permitem usar FAT16 num cartão de 4GB, mas essa opção não é padrão e pode não ser reconhecida corretamente no Windows. O Linux é mais flexível e pode reconhecer o cartão normalmente. Há risco do Windows continuar a gravação de um arquivo maior que 2GB repetindo as células da posição maior que 2GB no início do disco. Isso faz com que o resto do arquivo seja gravado de novo nos setores iniciais (wrap), assim danificando o conteúdo do cartão. Isso é muito comum em cartões SD, Ipods e pendrives falsificados porque o controlador do dispositivo "mente" quando informa a quantidade de setores disponíveis.

Maiores informações podem ser consultadas aqui:
http://en.wikipedia.org/wiki/File_Allocation_Table
http://kb.sandisk.com/app/answers/detail/a_id/2520/~/sd%2Fsdhc%2Fsdxc-specifications-and-compatibility
Reply all
Reply to author
Forward
0 new messages