quarta-feira, abril 19, 2017

Z80 na Protoboard: Reset

Nos microcontroladores modernos, estamos acostumados a ligar o pino de reset (ativo com nível baixo) a um resistor de pullup e esquecer. Se quisermos um reset sem desligar a alimentação, colocamos um botão  entro o pino e terra. Com o Z80 é recomendado algo mais sofisticado.

Mais uns fios e componentes conectados

O sinal de reset no Z80, como em outros processadores, tem o objetivo de colocá-lo em uma situação inicial conhecida. Especificamente, zerar o contador de programa (PC) e inibir interrupções. Enquanto o sinal de reset estiver em nível baixo, o processador fica parado e os pinos de endereço e dados ficam em estado de alta impedância (como se estivessem desconectados).

Uma primeira preocupação quanto ao sinal de reset é a sua duração. O Z80 requer que o sinal fique baixo por pelo menos três ciclos completos de clock para executar o reset. Um preocupação maior é quando o Z80 é alimentado. Neste momento a tensão de alimentação está subindo até o seu valor nominal e, dependendo da implementação, o sinal de clock ainda não está disponível.

Para obter um sinal de reset confiável é necessário um circuito adicional. Este circuito deve manter o sinal baixo quando for ligado e garantir uma  duração mínima do pulso, O circuito abaixo foi extraído do livro Build Your Own Z80 Computer:

Um zoom da montagem na protoboard:



A imagem abaixo mostra o sinal de reset quando o circuito é alimentado (a linha amarela é o reset e a linha azul a alimentação).


Referências:

Especificação do Z84C00 (pdf)
Build Your Own Z80 Computer (pdf)