Não consigo escrever no spi flash


9

Bem, eu estou preso nisso por um tempo, talvez 2-3 semanas neste momento. Só não tenho certeza do que estou fazendo de errado. Estou tentando escrever nesta parte do spi flash , e agora estou apenas executando rotinas para apagar, escrever e ler para tentar isolá-lo, mas até agora sem sorte. Claro que resolvi vários bugs ao longo do caminho ...

De qualquer forma, tenho minha linha WP empatada no tabuleiro e reduzi o tempo para 200khz, depois corro minha rotina de apagamento e fica assim:

insira a descrição da imagem aqui Primeiro, verifico o ID apenas para depuração, esse é o comando 9F, depois defino WREN com o comando 06, C7 é a eliminação completa do chip e depois verifico o bit de status com 05 e está claro. O tempo de apagamento desse chip é de apenas 35ms.

Agora recarrego meu código e tento escrever:

insira a descrição da imagem aqui Primeiro, defino WREN com 06, verifique o status para ver se WREN está definido com 05, e envie o comando de programa da página 02 para o endereço 0x000000. Você pode ver que estou escrevendo deadcafe como os primeiros bits. Também não ilustrado aqui, após a gravação ser concluída (uma página ou 256 bytes), envio o comando 0x04 para desativar o WREN. Eu observei isso e configurei os últimos quatro bytes do buffer da minha página como 0xAA, 0x55, 0xAA, 0x55 e os vi logo antes do CS ficar alto.

Agora pare de recarregar o código e tente executar um ciclo de leitura: insira a descrição da imagem aqui envie 0x03 como comando de leitura e 0x000000 como endereço e ... todos os 0xFF de volta do dispositivo.

Consigo ver o dispositivo respondendo ao meu ID de leitura e definir comandos WREN para que eu saiba que ele me ouve e possa responder. Não sei o que estou fazendo de errado neste momento. Acho que voltarei a ler a folha de dados e a tentar algumas coisas, mas se alguém tiver alguma ideia, agradeceria a ajuda. Está se preparando para ser outro fim de semana frustrante trabalhando nessa coisa.


10
E ... eu descobri. Se eu tivesse um dólar por cada vez, descobri algo depois de finalmente ficar desesperado o suficiente para postar em algum lugar para obter ajuda. Acontece que existe outro comando 0x98 chamado Desbloqueio Global, que não é mencionado nas seções sobre gravação habilitada ou programação ... De qualquer forma, adicionei isso antes do meu comando WREN e funcionou. desculpe pelo incômodo.
confuso

10
Adicione seu comentário como resposta e aceite-o.
geometrikal

Concordando com @geometrikal que você deve responder sua própria pergunta. Não tive nada além de problemas com a interface PIC SPI; pelos mesmos motivos: a documentação.
User.1

2
Oi! Você postou uma boa pergunta há um ano e, em seguida, postou uma boa resposta nos comentários. Mas a pergunta ainda está aparecendo no topo da lista "Não respondida"! Copie seus comentários em uma resposta e marque-o como "Aceito". Desta forma, ele será administrado corretamente e que possamos upvote sua resposta :)
bitsmack

11
@confused favor postar sua resposta e marcá-lo como respondida para que possamos fechar a questão, Graças
Tensão Pico

Respostas:


3

Eu odeio que isso ainda esteja no topo da lista 'sem resposta', então vou responder.

Conforme declarado nos comentários por 'confuso', existe um comando chamado 'Desbloqueio global' que deve ser executado antes de gravar na parte do flash.


11
Você deve aceitar sua resposta, caso contrário, esta pergunta ainda será marcada como "sem resposta".
Étienne
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.