Pesquisar este blog

sábado, 14 de fevereiro de 2015

Teste free run de microprocessadores

Como Testar Microprocessadores Antigos

Há alguns dias recebi uma mensagem pedindo ajuda para testar o funcionamento de microprocessadores Z80.  Pra isso eu tenho computadores que tem o Z80 como CPU e basta retirá-lo do soquete, inserir o Z80 em teste e ligar o computador pra ver se funciona. Mas o autor da mensagem não tinha esse recurso, portanto precisa de um circuito bem básico para testar os integrados. Eu sugeri que ele montasse um circuito que achei na internet, que usava um artifício de fazer o microprocessador executar apenas instruções NOP (no operation), dessa forma o microprocessador vai incrementando o contador de programa (PC - program counter) e jogando o endereço no barramento de endereços em busca de novas instruções para executar.  Se alimentarmos o microprocessador com um clock decente e fazer pullup e pulldown em alguns sinais de controle, o microprocessador começa a funcionar e podemos ver isso monitorando os sinais na barra de endereços altos (os baixos vão piscar muito rapidamente, dependendo da frequência de clock).
O site em questão é esse:
http://www.z80.info/z80test0.htm

E o esquema do circuito mínimo proposto pelo autor é assim:

Não cheguei a montar e experimentar esse circuito, mas eu tenho outros microprocessadores que eu gostaria de testar o funcionamento. Pesquisando mais um pouco, achei esse site com um projeto de um computador básico usando o microprocessador 8085 da Intel:
http://saundby.com/electronics/8085/index.shtml

O projeto é descrito passo a passo, e nos primeiros ele também faz o 8085 rodar em "free running", executando instruções NOP e verificando a alteração no contador de programa através de monitoramento das linhas de endereço altas.
Eu montei o circuito conforme esse esquema (na verdade os pinos de endereço alto foram ligados a um buffer 74LS245 que aciona os leds):
Fiz a montagem no meu protoboard que já tem alguns circuitos de infraestrutura e usei uma plaquinha com oscilador e divisores de frequência para fornecer o clock para o 8085A. Um detalhe: o 8085 precisa de dois sinais de clock, sendo um invertido em relação ao outro, logo o sinal passa também por uma porta inversora 74LS04 antes de entrar no pino X2.


Vídeo do teste do 8085A
http://youtu.be/2wEv_p6LGJ8
Descobri que tenho um 8085A pifado ...

E no mesmo site havia um circuito para testar também o CDP1802 que é outro microprocessador de 8 bits.
O circuito que eu montei foi o seguinte:


A complicação no 1802 é que o op code da instrução NOP não é $00 como no Z80 ou 8085, mas o código $C4  (1100 0100), portanto as linhas de dados precisariam ter esses bits como entrada. Os resistores ligados  em 5V fazem o bit 1 e os resistores ligados ao terra fazem o bit 0. As linhas de endereçamento foram ligados também ao buffer 74LS245 para acionamento dos leds.



Vídeo do CDP1802
http://youtu.be/oLWaoay9sSI
Dessa vez, todos meus CDP1802 funcionaram.  :o)