quinta-feira, abril 13, 2017

Z80 na Protoboard: Clock

Como parte dos meus estudos sobre o microprocessador Z80 resolvi fazer uma montagem simples em protoboard. Esta série de posts vai descrever passo a passo esta montagem. Vamos começar com o circuito de clock.

Protoboard com os CIs espetados, mas ainda não conectados

Uma das vantagens do Z80 em relação a outros microprocessadores contemporâneos foi trabalhar com um sinal de clock único, uma onda quadrada com nível TTL (5V). O modelo que vou usar, Z84C0020, é capaz de operar com uma frequência de DC a 20MHz. DC, neste caso, quer dizer que não existe uma frequência mínima (o clock pode ser mantido indefinidamente em nível alto ou baixo sem perda do estado interno).

Como um dos meus objetivos é visualizar dados e endereços em LEDs durante a execução, vou trabalhar com clocks baixos (na faixa de 1 a 20 Hz). O clock define a duração de um ciclo (que a Zilog chama de T-cycle), a execução de uma instrução pode demorar 4 a 23 destes ciclos. A Zilog agrupa os T-cycles em M-cycles (por exemplo, M0 é a leitura do primeiro byte da instrução), mas não vamos falar nisto agora.

Existem várias formas de construir um oscilador. No caso vou usar um tradicional oscilador RC construído com portas lógicas (ver referências abaixo). O esquema básico utiliza inversores, utilizei portas NAND com as entrada interligadas. Feito os cálculos para a faixa de frequência desejada, o circuito ficou assim:



A montagem na protoboard ficou com o potenciômetro pendurado:


O resultado obtido não foi exatamente o calculado (a frequência máxima ficou em 15Hz ao invés de 20Hz), mas está satisfatório.


Referências:

Especificação do Z84C00 (pdf)
Build Your Own Z80 Computer (pdf)
Nota de Aplicação da Fairchield (pdf)

Nenhum comentário: