Minhas aventuras com o Z80 - Gravador de EPROM

No post anterior falei um pouco sobre como uma EPROM funciona, a formar de fazer leitura de dados dela e mostrei um leitor através de um Arduino Mega. Neste post vou mostrar como fazer a gravação de dados e mostrar um gravador com o Arduino Mega.

Na gravação as principais mudanças em relação a leitura, são que a EPROM precisa ser alimentada com 6.5V e não mais com 5V, o pino VPP precisa ser alimentado com 13V e não mais com 5V, o pino OE' precisa de nível lógico alto (5 ou 6.5 V) e o pino CE' precisará de um pulso baixo de 100us para executar a gravação.

Para apagar a EPROM é necessário uma lampada UV especifica, muito conhecida no mercado como lampada germicida, ela precisa ser de 254nm de comprimento de onda. A que eu estou usando é uma Osram modelo G4T5/OF, ela tem apenas 4W de potencia e precisa de um reator para funcionar, mas é suficiente, apaga as EPROM em um tempo de torno de 20 a 30 min.


Para mais modelos Osram verificar no link:
https://www.osram.us/ecat/PURITEC

As formas de onda dos pinos no formato de gravação de dados são mostrada abaixo, observar o pino de 100us (tPW) do pino CE'. O pino OE' fica em nível logico alto, o VPP em 13V e VCC em 6.5V.

O valor do pulso tPW de acordo com o datasheet:


Da mesma forma como na leitura, na gravação precisamos setar nível logico alto nos pinos de endereços, em forma de sequencia binária. Para os pinos de dados, com a memoria limpa, todos eles estarão em nível logico alto, então precisamos setar nível logico baixo para os pinos desejado. 

Por exemplo, para gravar no endereço de memoria 3 o valor 207 em decimal, que corresponde a 0xCF ou 0b1100 1111, temos que setar nos pinos de endereço:

000 0000 0000 0011
E no de dados: 
1100 1111
Abaixo um circuito que pode ser montado para a gravação manual, lembrando que novamente como no circuito de leitura, ele possui apenas 3 chaves para o pino de endereço, indo apenas até o oitavo endereço de memoria. Caso deseje mais, basta ir adicionando as chaves e resistores de pull-down.
O código do gravador com Arduino Mega pode ser baixado no link abaixo, lembrando que o esquema de ligações está dentro do sketch. O arquivo de gravação é o EPROM_Burn_v01.


Para adicionar o código compilado no sketch Arduino, use o convbin, no Windows basta arrastar o arquivo .BIN para cima do convbin.exe e no Linux use o comando:

./convbin ARQUIVO.bin
Será gerado um arquivo out.txt, dentro dele terão os bytes para serem adicionados no array valByteROM[] da linha 54 do sketch Arduino.

Caso tenha compilado um formato .hex, será preciso converter primeiro para .bin, o pacote hexstuff.zip tem o BIN2HEX.EXE para fazer a conversão. O procedimento é o mesmo do convbin.

Comentários