Ir ao conteúdo
  • Cadastre-se

Implementação da FAT32 com PIC


Projetos_afg

Posts recomendados

Bom dia,

Estou pretendendo gravar arquivos em um cartão SD. A parte da comunicação com o cartão eu encontrei em um site. Agora só não encontro um site que explique detalhadamente a FAT32. Não quero bibliotecas, estou desenvolvendo o driver. Estou usando o PIC 18F4550 e a programação é em assembly.

Toda a ajuda é bem vinda.

Link para o comentário
Compartilhar em outros sites

Projetos_Afg,

quando eu disse ambiente windows, é para saber se você vai ler o cartao em algum PC, pois caso precise dele apenas no PIC, usar um Fat32 é desnecessário, pois o cartao SD pode ser escrito e lido como se fosse uma memoria flash comum.

No caso do FAT32 você implementa um padrão de distribuição dos dados entre os setores do cartão de memória.

Acho que agora me expressei melhor, aguardando.

Abs.

Link para o comentário
Compartilhar em outros sites

Uma pergunta.. por que você faz questão de usar assembly. Não faz sentido nenhum programar assembly se você pode programar em C. Saber assembly é útil pontualmente mas qualquer projeto que eu vejo hoje em dia de um porte minimo é em C. E ja existe isso pronto pela Microchip na Application Library.

Abs

Link para o comentário
Compartilhar em outros sites

Eu acredito que FAT16 so era usado em pendrives pequenos... Hoje em dia se não me engano todos são FAT32.

Imagino que sim.. não vejo por que não, so que a biblioteca teria que ser mudada por que ela esta feita para ser usada com SPI, o que é uma comunicação serial menos formatada que USB.

Abs

Link para o comentário
Compartilhar em outros sites

Eu não disse para ele não SABER ASM, mas sim so para usar se for realmente preciso. E quanto a questão de generalisar o seu produto eu discordo. O produto sempre sera o mesmo. Em qual linguagem voce usar. O usuario nao quer nem saber o que ele faz. E 99% das coisas podem ser feitas com ambas, porém voce demora muito menos com C. E para finalizar e o principal de todos. Portabilidade do codigo. Codigos em C se bem escritos dendem a ser muito facilmente portaveis entre aplicações e dispositivos mesmo que não das mesma familia. Um codigo feito bem em PIC pode ser muito bem utilizado em um ARM como em um AVR se for bem feito, com modificações apenas nas definições iniciais do codigo. Isso é muito valorizado no mercado. Na minha opinião, a não ser que o custo estja apertadissimo, eu mudaria de dispositivo em vez de programar em ASM. Pessoalmente entre alguem com vasto conhecimento em ASM e um pouco em C contra alguem com um Vasto conhecimento em C e um pouco de ASM, eu ficaria com o segundo mas sem pensar duas vezes. E pelo que eu conheço do mercado muitas empresas fariam o mesmo.

Abs

Link para o comentário
Compartilhar em outros sites

Mudar de microcontrolador não me convém, por isso estou fazendo tudo em assembly, precisarei de altas taxas de transferência.

E tenho um ótimo conhecimento da linguagem C para o compilador CCS. Mas nessa aplicação não dá.

Agora, usar rotinas feitas por outras pessoas para produtos comerciais não dá. Por isso eu elaboro todas as minhas rotinas.

Link para o comentário
Compartilhar em outros sites

Sink,não estou desmerecendo nada,apenas comentei que para alto desempenho,rendimento e domínio total de um Processador ou microcontrolador,é mais útil se programar grande parte ou a totalidade(dependendo da experiencia do programador) em ASM.

Ja ví muitos projetos terem que migrar para um micro 'maior' por causa do tamanho do programa em C.

Mas se o programador trabalha para uma empresa,tem que seguir as regras da empresa,geralmente velocidade de desenvolvimento.

Só comentei pois voce citou que existe 'bibliotecas' prontas,isso não significar desempenho total.

Eu mesmo ja tive muitos programas em C++,C e Delphi no Windows tendo que otimizar certas funções em ASM,mas aí estamos fando de grandes sistemas operacionais,não microcontroladores.

Te garanto que a maioria que só programa em C não tem domínio total de eletronica,principalmente digital e não saberiam como implementar um novo recurso sem usar bibliotecas prontas(como voce mesmo citou).

voce poderia ter aberto outro tópico ,pois 'projetos_afg' ja mencionou que programa em ASM e pediu uma dica em ASM,seu comentário não foi muito útil nesta caso.

Link para o comentário
Compartilhar em outros sites

Eu sabia que ia valer a pena seguir esse tópico! Valeu Projetos_afg pelo White Paper da M$!

E só pra quebrar o gelo, eu gosto do 8051 por causa do ASM. Hehehe. Não peguei gosto pelos PICs justamente por causa do C. Já que vou programar em C, estou partindo para os ARMs.

Também me incomoda utilizar biblioteca de terceiros. Mas mercado é mercado, né? Tem prazo pra entregar, chefe no cangote etc. Mas pra projetos pessoais, não abro mão do bom e velho assembly.

Valeu!

Abraços,

Renato

Link para o comentário
Compartilhar em outros sites

Finalmenta encontrei a especificação completa:

http://download.microsoft.com/downlo.../fatgen103.doc

Engraçado...

Eu ia sugerir que você procurasse pelas informações na comunidade linux (afinal, toda e qualquer distribuição linux implementa FAT32 sem problemas) e você acabou achando a documentação na própria Microsoft.

Boa sorte com o projeto!

Link para o comentário
Compartilhar em outros sites

Projetos_afg, cara, eu uso o ASM51. Mas ele é um compilador de linha de comando mesmo. Acho que o q você precisa é uma IDE bacana, assim você não precisa ir para o DOS para compilar a aplicação.

Atualmente eu estou usando o RIDE51, que é uma IDE que tem suporte a depuração, entre outras facilidades.

Dá uma olhada no meu site, q tem uns tutoriais sobre o RIDE51, inclusive tem ele pra baixar lá tbém.

http://www.seriallink.com.br/lab

Valeu!

Renato

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

Prezados,

Estou usando pic 18F4550 e o programar e compilador da CCS, estou a tempos tentando escrever num cartão SD. Olhei o exemplo(do CCS) de escrita e leitura, mas na verdade ele roda certinho e tal no proteus, porém a leitura do cartão SD no inicio do programa não funciona no hardware que fiz(já testei pino a pino e está ok). Alguém já usou os exemplo fat.c e mmcsd...alguém tem uma dica ??

Link para o comentário
Compartilhar em outros sites

projetos_afg ja pensou em interceptar a comunicação do PC com o cartão SD tava pensando em fazer isto mas pra aprender fat 16 (hehehe to atrazadinho ainda)

vi uma placa a venda onde havia um adaptador de cartão SD onde você colocava ela no PC e na outra ponta um adptador onde você colocavao cartão SD e no meio um só que de barra de pinos onde você conectava seu Uc e interceptava a comunicação entre os dois

ja quanto a discussão do assembly meu ponto de vista não é o profissional e sim o do prazer, não vejo prazer maior no mundo da programação do que um programa compilado em assembly rodando perfeitamente totalmente programado por mim, pra mim isso é impagavel

Link para o comentário
Compartilhar em outros sites

Revivendo o tópico!

Já pesquisei muito sobre o assunto, e já consegui compreender por completo como funciona a estrutura da FAT32. Não é algo muito complicado, mas leva um tempo até você assimilar tudo.

Alguns sites que me ajudaram:

http://www.pjrc.com/tech/8051/ide/fat32.html

http://home.teleport.com/~brainy/fat32.htm

Agora o meu problema não é questão de falta de material, mas sim tempo para elaborar o programa (e uma preguiça rs).

Estou usando um AVR para isso, pois é mais fácil de se endereçar a memória RAM de forma sequencial, além de dispor de modelos baratos com muita RAM (estou utilizando o Atmega32, que tem 2KB de RAM).

Uma programa que me ajudou muito foi o WinHex, que permite observar cada setor de um dispositivo de memória, e na versão paga permite escrever na midia. Utilizei um pendrive para aprender sobre o funcionamento da FAT.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...