Página 1 de 3

Ler e escrever dados no Pen Drive (sem FAT)

MensagemEnviado: 01 Dez 2006 16:48
por Cláudio
Olá a todos,

Faz tempo que venho namorando a idéia de montar um aparelhinho que grave os dados em um pen-drive e permita a posterior coleta em um pc. Já vi um tópico aqui (não consegui achar novamente) sobre FAT, mas me parece que o buraco é mais em baixo, bem parece que esse treco é patenteado...
É possível escrever e ler bytes diretamente de um PIC em um pen-drive USB, utilizando como interface um chip USB como o FTDI? E a coleta no Pc, é possível sem estar no formato FAT?
Obrigado desde já.

MensagemEnviado: 01 Dez 2006 17:25
por Rinaldo
Para poder acessar o Pen-Drive precisa de um USB Host, os PIC com USB são somente device.

Rinaldo

Metodo Macrobiótico do Peroba para ler a FAT sem usoPatentes

MensagemEnviado: 02 Dez 2006 00:01
por Wagner de Queiroz
claudio, vc pode usar sim fat na boa.

entretanto com algumas consideracoes:

formate o cartao no pc e crie um arquivo enoooooorme no disco. Tudo isso, contanto que o nome do arquivo seja bobo e minusculo:

arquivo.bin com tamanho de 128mb (Caso seu cartao seja de 128Mb)
entre no primeiro setor do arquivo criado e grave uma string especial, tipo
OiaEuAqui.

Pegue o cartao e coloque para o pic ler. Leia todos os setores para saber onde esta a string OiaEuAqui. (A probabilidade de achar outra string igual é nula né)
O que aconteceu.

O cartao fat tem um unico arquivo simples que ocupa todo o disco. Como so tem este arquivo e ele ocupa tudo. Nao tem fragmentacao do disco. Onde acaba um setor, comeca o seguinte. Vc nao precisa saber nada de fat, diretorios, etc. Só precisa ler e gravar o seu arquivo sabendo que setor ele comeca. Troque esta string pelos dados que vc usa. Vc agora sabe onde comeca o seu arquivo, entao sabe que dali até o fim do cartao tem seu arquivo.

Voce esta entendendo a minha linha de raciocinio ?

Caso gere um arquivo menor pensando em gravar outras coisas, por este metodo voce tem que contar os bytes até o fim do arquivo. Nao podera gravar nada depois disso, pq vai invadir areas de outros arquivos ou pastas.

Se nao me falha a memoria o Windows XP grava uns arquivos malucos no fim do cartao. Entao cuidado.

Se o cartao é pequeno, formate em FAT16 para escapar de problemas de patentes.

Se precisar de algumas informacoes bizarras sobre fat, posso te ajudar.

MensagemEnviado: 04 Dez 2006 08:30
por Cláudio
Wagner,
Quando você diz "cartão", você se refere também a um pen-drive ou só esses cartões de memória de máquina digital?
Entendi sua idéia sim. Mas não sei como seria a ligação do hardware do pen-drive com o PIC, bem como as temporizações envolvidas.
Como assim informações bizarras?? rsrsrsrs
Há algum chip que faça o que o Rinaldo citou?

Obrigado e abraço pra vcs...

MensagemEnviado: 04 Dez 2006 13:31
por Wagner de Queiroz
a ideia basica é usar o cartao SD, mas se vc descobrir como trabalhar com cartao de maquina digital NAO SD ou pendrive, a ideia é saber onde comeca e termina o arquivo no bixo e gravar seus dados sequencialmente dentro, sem alterar o tamanho do arqvuivo. Gera o arquivo enorme com zero ou ff e va escrevendo dentro deste arquivo.

O problema com a Fat é que isso é recomendavel fazer apos formatar o cartao e nao ter nenhum arquivo dentro pq dai o cartao estara limpo, formatado e com seu arquivo enorme la dentro.

Voce pode usar os primeiros bytes deste arquivo para colocar um ponteiro para a primeira posicao livre do cartao.

MensagemEnviado: 04 Dez 2006 23:22
por chipselect
olá Cláudio

Para você utilizar um PEN-Drive no PIC, você vai ter que implementar a stack USB. Acho que não dá num MCU como o PIC, talvez até seja possível se você "capar" o protocolo ao máximo, mas vai te dar um trabalhão, melhor usar um cartão de memória, tipo MMC ou SD mesmo que usa SPI e custa barato.

Só para você ter uma idéia do custo, comprei um cartão MMC de 64MB por R$15,00 com frete incluso e nota fiscal... já testei e funciona ok.

O circuito para o MMC/SD via SPI não usa nada tão complexo, mas a tensão de trabalho é de 3.3V... use a série L do PIC que você pode montar o circuito com essa tensão de trabalho, fica mais fácil a interface.

Sinceramente, acho que USB-HOST não é tão simples de ser implementado.

MensagemEnviado: 05 Dez 2006 10:11
por tpfslima
Tambem concordo com chipselect.

Um Leitor de SD Card USB é muito barato, uns 30 reais no Mercado Livre.
Voce pode encher ele de dados dai com seu PC.

Acho que implementar USB Host com PIC é loucura total. É complicado e vc poderia utilizar chips que fazem isso, iguais aqueles que tem em camera digital, que podem ser slaves quando plugados a um PC e masters temporariamente quando plugados a uma impressora.

Soh que isso iria demandar um tempao pra achar um chips desses (a maxim tem um mas nao se acha ele no mercado nacional nem farnell).

A melhor solucao acho que é SD Card.
Preciando das espec. pra estudar mais sobre SD Card, me mande um email. Tem pronto alguns projetos na net tambem.

Boa sorte.

;)

MensagemEnviado: 05 Dez 2006 10:16
por pbernardi
Discordo e concordo com o pessoal acima.

Um SD Card é sem dúvida mais fácil de montar, mas um gravador de PenDrive me parece muito mais atrativo comercialmente.

Você vai montar pra uso próprio e pesquisa ou com fins comerciais? Se for fim comercial acho que valeria a pena procurar uma solução para o PenDrive.

Sds,

MensagemEnviado: 05 Dez 2006 10:41
por Cláudio
Também tô nessa, pbernardi. Concordo na facilidade de desenvolvimento com o cartão, porém nem todos os pc´s possuem esses leitores. Com USB, a coleta num pc fica mais simples e elegante.
Caso fique funcional, tenho interesse em comercializar sim. Caso haja alguém com know-how nessa área posso inclusive negociar uma consultoria de desenvolvimento.
Grato a todos novamente.

MensagemEnviado: 05 Dez 2006 11:14
por Rinaldo
Com um PIC não é possível implementar um USB-Host para Ler-Escrever em um Pen-Drive diretamente.

Mas é possível utilizar a interface SPI do PIC para acessar o cartão SD / MMC, e a interface USB para conversar com o PC.basta utilizar uma classe na USB de MASS STORAGE.

No Site do Microchip existe uma AN que fala sobre isto. utiliza os PIC18F2550.

Rinaldo

MensagemEnviado: 05 Dez 2006 12:30
por tpfslima
com o 2550 e 4550 nao é possivel mesmo fazer comunicacao master.
Nao é possivel fazer tambem com o STR7XX.

Esse é o cara!
http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3639
Já estudei, pesquisei sobre ele.

Será que conseguiriam amostras dele?

Soh pra citar:

What is the MAX3421E?

The MAX3421E is a USB controller that can function either as a USB peripheral or host. It builds on Maxim's MAX3420E peripheral-only controller, and features an SPI interface that can run up to 26MHz. The MAX3421E contains a full-/low-speed transceiver, a smart serial interface engine (SIE), and a register file accessible through an SPI interface.

Entao... Desse tipo de chip que tem nas cameras digitais de mercado.
Alguem sabe de mais algum chip?

Pro seu layout, quem sabe um 18F2560+3421E resolveriam a parada?

MensagemEnviado: 05 Dez 2006 12:35
por tpfslima
Puts, desculpe pessoal,

Is the MAX3421E a USB On-The-Go (OTG) device?
Not entirely. The MAX3421E is a dual-role (peripheral and host) USB controller, so it implements the digital portion of OTG. Although it does not contain VBUS control and other analog details required by an OTG device, these functions can be added with external circuitry and controlled by the MAX3421E general-purpose IO pins.

O MAX nao torna seu equipamento On the Go como a camera digital.

[]s

MensagemEnviado: 05 Dez 2006 13:41
por Cláudio
Certo, mas isso seria necessário na minha aplicação (que que é OTG, rsrs) ?? Estava vendo agora mesmo este CI, pelo que pude ver o PIC não precisa ter USB, comunicando com este via SPI.
Aos poucos vamos desvendando o mistério...

MensagemEnviado: 05 Dez 2006 13:45
por Cláudio

MensagemEnviado: 05 Dez 2006 13:50
por tpfslima
Boa sorte Claudio e conforme for avançando vai mandando noticias.
O produto é bom.

Tem uns sons Philips que implementam o on the go pra ler mp3 de pen drives. E um uns toshibas tambem.

Abrir e ver que chips utilizam é uma ideia.

Mas tome cuidado que um windows CE e Embedded, e alguns linux nao reconhecem determinadas pen drives.
Como vc faria para que seu equipamento reconhecesse algumas pen drives de mercado...

Puts... Que trampo.
Vai ter que comecar a pensar em device drivers.

:P