EEPROM DADOS corrompida

S

ShuklaS

Guest
oi,
estamos usando EEPROM 24C01A EEPROM DADOS corrompida aleatoriamente
Por favor, deixe-me saber se houver um problema de visto tal
Obrigado

 
Como foi que você disse que os dados estão corrompidos?

Eu tive esse problema antes.Eu não sou capaz de ler valores corretos que eu quero.

Aqui está a razão.

Aqui está a explicação dada por Les sobre o seguinte: (copiado do www.picbasic.org)O compilador não tem culpa, mas o seu entendimento de acesso EEPROM não está completo.EEPROMs não são como acesso aleatório como as pessoas pensam, eles trabalham com as páginas.Alguns eeproms tem uma página de 8, 16, 32 ou 64 bytes.O 24LC128 e 24LC256 têm limites de página de 64 bytes.

Se você examinar a folha de dados da EEPROM, você vai ver duas formas de escrita, da página de acesso e gravação aleatória.RANDOM escrita deve estar dentro de um limite de 64 bytes, e não pode atravessá-la sem primeiro enviar um comando de parada e esperando a memória a ser alocada para a matriz de EEPROM's.

Assim, os limites são de 0 a 63, 64-127, 128 a 191 e assim por diante.

Seu código escreve em múltiplos de 6 bytes sem um comando STOP sendo enviados para o barramento I2C, por isso, quando a contagem chega a 64, a eeprom automaticamente tenta escrever uma página, e ignora todos os outros comandos no ônibus até que ele terminou, mas o seu código ainda está tentando escrever outro 4 bytes. isto é, 60 a 63.

Ao realizar RANDOM acesso a uma eeprom, ela deve estar em uma única transferência de bytes, não mais pode violar o protocolo.

Acesso à leitura de uma EEPROM é verdadeiramente aleatórios no entanto.

Tente alterar seu código para que o tamanho do passo é 8 no loop for próxima, e ler e escrever 8 bytes de cada vez.Isto irá curá-lo.

 
oi,
A razão de dizer que o meu dataget corrompido é que eu sou capaz de ler e escrever corretamente em 100 tempo 99 vez que eu sou capaz de ler o valor currectly

 
Pode haver muitas razões para isso.
1) Você não está à espera de 10ms para escrever ciclo completo para começar antes do início do novo ciclo de gravação.
2) Seu relógio I2C é muito rápido.ou seja, maior do que uma especificação de velocidade EEPROMs (100kHz ou 400kHz)
3) o pino de Write Protect EEPROM é deixado flutuando.Mesmo que o datasheet menciona que você pode mantê-lo flutuando (internamente puxado para baixo), eu recomendo que você chão externamente ou usar microcontrolador I / O pin para ativar escrita somente durante o ciclo de gravação.

 
Obrigado irmãos essas dicas vai certamente ajudar as abelhas de novo como eu para microcontroladores.

 

Welcome to EDABoard.com

Sponsor

Back
Top