Neste artigo, veremos como escrever e ler da memória flash usando um Arduino usando o microcircuito 25L8005 como exemplo.
Necessário
- - chip de memória flash com suporte a SPI;
- - um adaptador para memória ou um painel com ganho zero (painel ZIF);
- - Arduino;
- - computador;
- - fios de conexão.
Instruções
Passo 1
Primeiro, precisamos fazer isso de forma que possamos nos conectar facilmente ao microcircuito. Para fazer isso, você pode usar um adaptador especial para soldar o microcircuito ou (o que é preferível) usar um painel de ganho zero (o chamado painel ZIF).
Passo 2
Agora vamos montar o diagrama elétrico para conectar o chip de memória flash ao Arduino. Usaremos a interface SPI para programação de memória, portanto, conectaremos aos pinos padrão:
- CS - pino digital 10, - MOSI - pino digital 11, - MISO - pino digital 12, - SCK - pino digital 13.
etapa 3
Antes de gravar os dados na memória, é necessário apagar o setor ou página na qual vamos gravar. Se não houver muitos dados a serem gravados (em nosso exemplo do tutorial serão apenas 16 bytes), basta apagar 1 setor. A partir da documentação do microcircuito, vemos que a seqüência de apagamento é a seguinte: defina a permissão de gravação (1 byte), envie o comando de apagamento (1 byte) e o endereço (3 bytes), defina a proibição de gravação (1 byte). Isso é exatamente o que o esboço acima faz. Vamos carregá-lo no Arduino. Depois que o esboço for concluído, o pen drive está pronto para gravação.
Passo 4
Agora vamos escrever os dados. Vamos pegar um pequeno array de 16 bytes como exemplo. Como você pode ver na documentação, primeiro você precisa definir a permissão de gravação (1 byte), em seguida, enviar o comando de gravação (1 byte), o endereço inicial (3 bytes) e os dados (em nosso exemplo, 16 bytes), em o final define a proibição de gravação (1 byte).
Faça upload do esboço para o Arduino. Depois de executar este esboço, nosso array de teste deve ter sido gravado na memória flash. Vamos verificar se é assim.
Etapa 5
Vamos escrever um esboço para ler 16 bytes da memória flash. Vamos carregá-lo no Arduino e abrir o monitor da porta serial. No monitor, como esperado, nosso array, lido da memória usando o Arduino, será exibido 1 vez por segundo.