Ir ao conteúdo

Implementação da FAT32 com PIC


Projetos_afg

Posts recomendados

Postado

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.

Postado

O grande problema do FAT32 é que é uma tecnologia patenteada, logo vai ser difícil achar algo sobre o protocolo em si sem molhar a mao de alguem ou pagar pela patente.

Uma duvida, você vai precisar ler o cartao em ambiente windows?

Abs.

Postado

Felipe_Eletronic:

Não entendi essa do "Ambiente Windows", já que a FAT32 é igual para qualquer sistema operacional que a use.

vtrx:

Apesar de eu estar querendo desenvolver o programa por conta própria, essa biblioteca está em assembly. Vou usá-la. Valeu pela ajuda!

Postado

Vai demorar um pouco para eu implementar, já que o programa é bem complexo, e ainda necessito comprar um encaixe para o cartão SD. se funcionar, eu aviso, e faço um tutorial em português no meu site.

Postado

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.

Postado

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

Postado

Sink00, interessante esse assunto. E no caso de eu ter um USB Host e um pendrive conectado ao invés de um cartão SD? É a mesma receita? porque se eu não me engano, pendrive é FAT16, não? Valeu!

Postado

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

Postado

Sink00:

Eu sei programar em C, mas o programa em questão é de alta precisão de tempo, cada instrução conta. Também usarei muita da memória para a elaboração de uma tabela ASCII estendida, para implementar em um display gráfico.

Postado

Se voce programar completamente em C ou superiror,além do ja mencionado por 'projetos_afg',voce pode estar generalisando seu produto.Além disso quando alguem programa em ASM,geralmente tem profundo conhecimento em eletronica digital e hardware.

Postado

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

Postado

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.

Postado

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.

Postado

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

Postado

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

Postado

Graccula,estou pensando em estudar o 8051 para usar o C8051F360,que é um 8051 com 100MIPS.

voce conhece?

Se sim,então poderei usar um KIT de 8051 adaptado para ele e todos os progs?

Esse prog RIDE 51 é completo para o 8051(ASM)?

  • 2 anos depois...
Postado

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 ??

Postado

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

Postado

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.

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...