Cartão SD/MMC com suporte a FAT16/32 no LPC2101

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

Cartão SD/MMC com suporte a FAT16/32 no LPC2101

Mensagempor eduardovra » 10 Out 2007 14:51

Ola
Estou desenvolvendo um logger que vai necessitar de grande capacidade de memória de massa. Por questões de economia de energia e disponibilidade resolvi utilizar um chip MSP430F147. Na verdade também posso utilziar um LPC2101(ARM).
Para manter compatibilidade com os sistemas operacionais é necessário que os arquivos sejam gravados no cartão dentro do padrão FAT.
Fiz algumas pesquisas na internet e encontrei algumas APIs prontas para utilizar, mas estou em dúvida se os requerimentos de memória serão satisfeitos com o chip que possuo.
Queria saber se alguem ja teve experiencia em algum projeto parecido ou se alguem poderia me ajudar =]

Obrigado
eduardovra
Bit
 
Mensagens: 5
Registrado em: 23 Jun 2007 15:01

Mensagempor Viktor » 11 Out 2007 08:44

Em primeiro lugar aqui ninguém, excluindo você, é claro, sabe de seus requerimentos de memória. Em segundo lugar também não sabemos o que você encontrou na internet, portanto também não podemos saber se o que você encontrou poderá ser implementado no chip por você escolhido.
Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

Mensagempor eduardovra » 11 Out 2007 11:31

Viktor
só estou perguntando se tem alguem no forum que ja desenvolveu algo parecido independente dos requerimentos de memoria ou processador.
só expliquei algumas coisas para contextualizar o problema, não estou pedindo nenhuma solução pronta é só questao de compartilhar experiencias mesmo.
eduardovra
Bit
 
Mensagens: 5
Registrado em: 23 Jun 2007 15:01

Referencias

Mensagempor eduardovra » 11 Out 2007 11:38

eduardovra
Bit
 
Mensagens: 5
Registrado em: 23 Jun 2007 15:01

Re: Referencias

Mensagempor Viktor » 11 Out 2007 12:10

Viktor
Byte
 
Mensagens: 281
Registrado em: 12 Out 2006 11:33

Mensagempor jeanfernandes » 12 Jan 2008 00:34

Eduardo

Ve o circuit cellar design contest projeto TAM TAM do ARM 2005. Acho que o codigo fonte que tem lá dá para te dar suporte.

O grande problema não é nem a capacidade de memória. Com FAT16 você pode guardar 2 GB de dados. Acima disso só com FAT32. Outro fator é como você vai guardar os dados, ou seja, em que velocidade voce vai pegar os dados da planta e mandar. Existe comandos especificos para isso, tipo gravar um bloco de dados, voce define o tamanho e vai escrevendo. Depois da um "post". Se a velocidade não é tão crítica voce pode gravar setor a setor. 512 bytes. sem maiores problemas.

Outro fator importante é a quantidade de arquivos num unico diretorio. FAT16 tem um limite. Dai voce teria que criar sub pastas para não ter que foder o diretorio raiz.

Outro ponto importante é se voce vai apagar ou nao arquivos na FAT, isso vai gerar uns buraquinhos no cartao na hora que apagar, e o codigo que voce vai usar tem que ser bem feito para não complicar tua vida.

Normalmente eu vi poucas distro FAT que usa LFN (long file names), que nada mais é do que usar entradas de diretorio para escrever o nome dos arquivos maior que 8.3.

Eu particularmente nunca precisei escrever no cartao, assim dei uma capada numa distro qq da vida e fiz apenas a parte de ler..... e nao tem muita complicacao nao, a nao ser na hora de dar boot no cartao, pois para pegar o endereçamento completo do setor de boot e fazer os jumpers necessarios para a area de diretorios e de arquivos, dependendo do compilador e do alinhamento de bytes tratados voce pode ter algumas supresas desagraveis, no que diz respeito principalmente a conversão de ponteiros.

O bom mesmo é ter uma ferramenta de depuracao passo a passo para ver pra onde voce esta apontando na hora do boot, para ver se voce vai precisar ou nao mexer no codigo.

Esses links que a turma passou ae acho que ja resolvem o teu problema.
Normalmente o pessoal escreve codigo para acesso ao cartão no modo SPI. No ARM voce pode ir a 8 Mhz na boa, claro dependendo do teu hardware, pois se for mal feito, limita a velocidade que voce pode impor ao cartão.

Certas preocupacoes tais como deixar a tensao no cartao estabilizar, ter o controle de power do cara (ve la no site da vlsi, eles poem um mosfetzim para controlar o power), pois é sempre bom ter o controle de reset por software e hardware num dispositivo dessa natureza.

Outro fato por exemplo, eh a velocidade da SPI. Na inicializacao do cartoa voce usa uma velocidade baixa, e so depois sobe no gás. Algo como 100 Khz e depois sobe para 7 Mhz.

Acho que é por ae, sentar na bancada e larga o pau.

:roll:
Editado pela última vez por jeanfernandes em 12 Jan 2008 13:38, em um total de 1 vez.
Jean P. Fernandes - Eng. Eletrônico - (83) 2102-2116 - APEL - www.apel.com.br - Campina Grande - PB
jeanfernandes
Word
 
Mensagens: 539
Registrado em: 11 Out 2006 15:36
Localização: Campina Grande - PB

Mensagempor Renie » 12 Jan 2008 03:38

Olá Viktor!

Ha algum tempo não sou mais moderador do ASM51( depois de muito lutar com o dono da "casa"!), por motivos particulares e por ética ( se
não podia ajudar no controle, não poderia continuar moderador!)!

Ainda sou um participante desta casa ASM51, quase não posto mais
porquê não tenho domínio para tal feito (temos muitos colegas com
muito mais bagagem que eu, um meres hobysta!), quando posso, dou
minhas piruadas!

O ASM51 sempre foi um ponto de apoio para todos, aqui muitos pedem
ajuda e muitos tentam ajudar, e assim espero que sempre seja!

Mensagens degradadoras, insultos, ou MAL PENSADAS ( e escritas no
mesmo sentido), causam desconforto (e inibem os novatos- o ASM51
é para todos, do novato que não sabe identificar cor de resistor ao
dominador de muitos uC e qualquer coisa!)

Pode não ter sido sua intenção "agredir" ao colega Eduardo que pode até
não ter sabido se explicar, mas, seu post soou como tal!

Eu também já cometí erros semelhantes, por isso fiz essa assinatura ha
alguns anos!
[]'s
Renie
-------------------------------------------------------------------------------------------------------------
Meu velho site com eletrônica praticamente parado http://www.reniemarquet.com
Nosso Blog http://artemadeiraevida.blogspot.com.br
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor chipselect » 12 Jan 2008 15:16

olá

Não conheço o ARM, nem o MSP430, mas já fiz muito código pra FAT-16.

Utilizo o Rabbit 3000 a 22MHz nesse projeto (256KB de flash e 128KB de ram) .

Implementei minhas próprias rotinas de FAT e acesso ao cartão SD para ficar 100% compatível com o PC.

Algumas observações que eu posso fazer são:
- FAT-16 sem LFN a patente da Microsoft não cobre, logo seria "free" pra vc usar. Eu não implementei a VFAT por causa disso.
- FAT-16 tem limite de 2G usando os clusteres de tamanho definido, entretanto existe uma maneira de formatar o cartão com FAT-16 para suportar 4G, fazendo o tamanho do cluster ter o dobro do que as antigas ferramentas permitiam (64KB). Isso funcionava perfeitamente no Windows NT 4.0.
- Memória RAM que eu utilizo basicamente é um buffer de 4KB, o que permite armazenar 4 setores, mais as variáveis de ponteiro indicando início da FAT, da área de dados, etc (são poucas variáveis do tipo inteiro 16 bits e alguns 32 bits). Evito utilizar funções recursivas para minimizar o uso de stack.
- vocë pode eliminar o uso do buffer para leitura/escrita, mas isso pode comprometer a vida útil do cartão, pois escrevendo o cluster inteiro, um byte no cluster por vez, seriam 4K comandos de escrita caso o tamanho do bloco da flash utilizada pelo cartão seja 4K...
- Memória flash necessária pro código varia de acordo com o que eu preciso da FAT, mas 16K de flash dá pra fazer muita coisa nela.
- SPI eu inicializo o cartão com 100Khz, no uso normal utilizo 1MHz (o máximo do módulo com o Rabbit). Eu não lembro se a taxa de escrita ou leitura resultante deu 20KB/s, só lembro desse valor.
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Re: Cartão SD/MMC com suporte a FAT16/32 no LPC2101

Mensagempor syncope » 24 Mar 2008 00:37

Olá.
Esse tópico começou no ano passado mas eu mesmo assim quero compartilhar minha pequena experiência com o FAT32 no ARM, neste meu primeiro post neste fórum.

Eu comprei a placa STR-P711 da Olimex que ja vem com o slot pra mmc/sd card.

Como precisava de leitura e escrita no formato FAT32 no meu projeto, eu pesquisei a respeito e acabei escolhendo a biblioteca do Chan: http://elm-chan.org/fsw/ff/00index_e.html .

Portei o exemplo do avr para o str711, tou usando o compilador Rowley Crossworks for ARM, fiz um primeiro post aqui

http://www.st.com/mcu/forums-cat-6208-17.html

Agora tou brincando de gravar e ler do sd card em conjunto com o freertos, ainda estou fazendo testes, depois eu posto um exemplo da biblioteca fat32 com o freertos no str711.

Aqui tem um exemplo já portado pro ARM da NXP, lpc2148:

http://www.indyelectronics.com/ff005%20IAR.zip

E aqui tem outro exemplo legal que o cara misturou tudo no lpc2148, freertos, usb. fat32, iap etc

http://jcwren.com/arm/

fallow galera

william
syncope
 
Mensagens: 1
Registrado em: 22 Mar 2008 14:32

stm32 fat sd

Mensagempor kyo_on » 09 Dez 2008 15:50

estou tentando utilizar o fat com cartão sd em um uc cortex-m3, queria saber se alguem me endica alguma biblioteca.
Tecnico em Eletrônica
Tecnólogo em Sistemas Eletrônicos
kyo_on
 
Mensagens: 3
Registrado em: 22 Out 2008 16:42


Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x