Resolvi então usar um dos flip-flops da placa de protótipo original para amostrar o sinal de saída do decodificador nas bordas de subida do sinal de "clock" do z80.
Resolvi utilizar a borda de subida, para não precisar de utilizar um inversor antes do sinal de "clock". Se não funcionasse, eu experimentaria na borda de descida.
Desta vez, o circuito funcionou sem problemas.
Fiz um teste utilizando o "loop" entre a entrada e a saída, com o seguinte programa em assembler:
LD HL,0A000H
LD B,0 ; 256 bytes)
LD C,12 ; porta
INIR
Desta forma pude comprovar o perfeito funcionamento do circuito, que retornou os seguintes bytes:
A000: XX 00 FF FE FD FC FB FA
A008: F9 F8 F7 F6 F5 F4 F3 F2
A010: F1 F0 .....
O primeiro byte, XX, era o valor que foi lido por último. O segundo byte é o valor do registrador B no inicio da iteração, que vai sendo decrementado até atingir 0.
Note que a instrução INIR foi utilizada, ou seja, o circuito leu os dados na velocidade máxima que o Z80 suporta para endereçamento de I/O.
A figura abaixo contém o detalhe que foi modificado. A a porta IC7A nem precisa ser utilizada, pois o flip-flop possui uma saída /Q.
O circuito como está hoje, pode ser visto abaixo:
Agora sim, vai ser possível iniciar os testes com o conversor de tensão e com o buffer de saída, operando em 3Volts.
Nenhum comentário:
Postar um comentário