Memória SD

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

Mensagempor fabiorike » 14 Dez 2006 08:47

Bom Dia,
Como vc sabe que 58h,00h,00h,01h,00h,ffh é o 2 bloco ?
POis cada bloco nao tem 512bytes e o endereço acima não é 100h, que dá 256 bytes?
fabiorike
Bit
 
Mensagens: 46
Registrado em: 16 Out 2006 10:32

Mensagempor fabiorike » 14 Dez 2006 08:57

eu posso diminui o tamanho do bloco, pois meu controlador tem 256bytes de ram, então para ler os dados eu teria que ter um bloco no sd de tamanho igual.
obrigado
fabiorike
Bit
 
Mensagens: 46
Registrado em: 16 Out 2006 10:32

Mensagempor proex » 14 Dez 2006 09:09

Vc esta certo, foi bobeira minha, o correto esta abaixo.

58h,00h,00h,00h,00h,ffh para escrever no primeiro bloco;

58h,00h,00h,02h,00h,ffh para escrever no segundo bloco;

58h,00h,00h,04h,00h,ffh para escrever no terceiro bloco;

58h,00h,00h,06h,00h,ffh para escrever no quarto bloco;
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor fabiorike » 14 Dez 2006 09:24

Estou pensando usar o memoria EEPRom do meu controlador para escrever no sd card e depois para ler, mas o problema seria o tempo pois pelo que eu estaa vendo demora 4 ms segundos para gravar na EEPROM, ai eu ja teria perdido dados na hora de ler o SD card.
Alguem tem alguma sugestão para ressolver este problema ja que para escrever e ler os dados no SD é preciso mandar tudo de uma vez e receber tudo de uma vez.Minha memória RAM é de 256bytes tbm nao dá, estou usando AT89S8253
Obrigado
fabiorike
Bit
 
Mensagens: 46
Registrado em: 16 Out 2006 10:32

Mensagempor chipselect » 15 Dez 2006 21:43

seta o tamanho de bloco do sd card pra 1 byte... ou usa o "modo linear" que o proex falou.

Caso queira utilizar ainda o tamanho de bloco de 512 bytes, então, em vez de uma EEPROM, utilize uma SRAM, pode ser uma com barramento I2C...
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor fabiorike » 18 Dez 2006 09:34

Bom Dia,
Como eu posso setar o bit Write_blk_MIsalign no registrador CSD?

è possivel eu dar titulo para aas mensagens gravadas no Sd, por exemplo, 'teste: 1234567789', mas eu quero só ler os numeros '1234567789' o Mcu é capaz de fazer isso? ou eu terei que cada vez que eu ler um bloco devo dar o endereço do mesmo

Obrigado
fabiorike
Bit
 
Mensagens: 46
Registrado em: 16 Out 2006 10:32

Mensagempor fabiorike » 18 Dez 2006 11:10

Como eu mudo o tamanho da bloco ?


CMD16-> 50h,00h,00h,00h,08h,0ffh

Isto é para 1byte, está certo assim?

Obrigado
fabiorike
Bit
 
Mensagens: 46
Registrado em: 16 Out 2006 10:32

Mensagempor chipselect » 19 Dez 2006 12:22

eu acho que é
50 0 0 0 1 ff
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor fabiorike » 19 Dez 2006 13:50

Boa Tarde.

Proex como eu faço para setar o pino Write_blk_MIsalign no registrador CSD?
è possivel eu gravar endereço dentro com dados, por exemplo, No bloco 1 tem o nome teste e junto com ele o endereço dos dados teste assim eu posso ir para o endereço aonde está escrito teste, entenderam?

Obrigado
fabiorike
Bit
 
Mensagens: 46
Registrado em: 16 Out 2006 10:32

Mensagempor ftrevis » 20 Dez 2006 10:06

Ola pessoal,

Vcs saberiam me dizer se os cartoes "memory stick" da sony são compativeis com estes sd/mmc?


Trevis
ftrevis
Bit
 
Mensagens: 5
Registrado em: 13 Dez 2006 09:55

Mensagempor chipselect » 20 Dez 2006 23:42

não são ftrevis...

O Memory Stick trabalha com um protocolo serial bem diferente, se não me engano nem dá pra deixar de usar o ECC como a gente faz com o checksum no SD.
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor fabiorike » 21 Dez 2006 09:09

Bom Dia,

è possivel eu gravar um arquivo no PC e ler depois com o controlador, sem o uso do FAT, ou so com o FAT é possivel eu fazer isso?

Obrigado
fabiorike
Bit
 
Mensagens: 46
Registrado em: 16 Out 2006 10:32

Mensagempor chipselect » 21 Dez 2006 11:19

Caso você queira utilizar o SD para trocar informações com o PC em um microcontrolador bixado, existe alguns recursos que você deve lançar mão.

O método mais simples é você utilizar apenas um arquivo no SDCARD. Assim você conseguirá escrever no cartão com MCU e ler no PC depois, sem sequer implementar uma linha de código de FAT-16.

Você precisa para isso:
- configurar o tamanho de bloco para 1 byte (CUIDADO: não são todos os cartões SD/MMC que suportam isso!)
-No PC, você formata o cartão, cria um único arquivo enorme nele contendo uma string logo no inicio, que seria a marcação pro mcu localizar. Essa marcação poderia ser a string ":\inicio".
- quando o MCU inicia o cartão, ele varre todos os blocos do cartão (em sequencia) procurando a string de marcação inicial. Uma vez encontrada, o MCU sabe que a partir daquele endereço de bloco ele pode escrever que estará dentro do arquivo ainda e não irá corromper a FAT-16.

Esse método funciona bem e não irá corromper a FAT-16 desde que você não escreva além do limite do arquivo. Uma vez formatado ou com o cartão "limpo", quando um arquivo é criado, todos os seus clusteres estarão em sequencia no cartão. Então basta encontrar o primeiro setor que é onde tá escrito a string de inicio.

Eu sugiro criar um arquivo com o tamanho máximo possível no cartão.

A vantagem é que você não escreve uma linha de código de FAT-16, mas as desvantagens são:
- lento, pois tamanho de bloco de 1 byte deixa o pacote com um overhead desfavorável.
- não será compatível com todos os cartões SD.
- Como o cartão SD utiliza memória FLASH, escrever 1 byte muitas vezes significa escrever um bloco interno inteiro da flash (geralmente de 4K), logo, se você fizer uma escrita byte a byte, quando tiver preenchido os primeiros 4K, toda essa área já terá sido gravada 4 mil vezes. Se você considerar que os fabricantes geralmente especificam 100 mil gravações, você tem ai um pequeno problema de vida útil.

O tamanho de bloco de 1 byte pode até ser maior, caso seu MCU tenha memóiria ram suficiente pra gerenciar isso e o SD aceite o tamanho.
chipselect
Word
 
Mensagens: 744
Registrado em: 16 Out 2006 18:50

Mensagempor fabiorike » 21 Dez 2006 12:47

Boa Tarde ChipSelect,
Obrigado pela Dica,hehe é verdade vc ja tinha falado, foi mal hehe.
Mas se eu usar um so arquivo eu conseguiria ler uma parte do mesmo?
Vc saberia me dizer como eu faço para o controlador varrer o SD e conseguir achar a famosa string "teste", por exemplo?

Obrigado mais uma vez
fabiorike
Bit
 
Mensagens: 46
Registrado em: 16 Out 2006 10:32

Mensagempor fabiorike » 21 Dez 2006 13:42

EM relação a vida util acho que nao será um problema, pois eu estou pensando em gravar no Sd e usar o MCU para ficar lendo o SD o unico problema será saber o ponto correto para começar a ler, pois eu gostaria de poder ler na sequnecia e outras vezes poder ler aleatoriamente.

Para poder ler a String o q deve-se fazer? Isso eu nao tenho a menor ideia de como o MCU pode ler uma palavra.
Obrigado
fabiorike
Bit
 
Mensagens: 46
Registrado em: 16 Out 2006 10:32

AnteriorPróximo

Voltar para 8051

Quem está online

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

cron

x