Hoje eu peguei o TK-85 que está funcionando corretamente e capturei várias formas de onda, a fim de comparar com a placa que estou tentando restabelecer seu funcionamento.
Eu usei como trigger o sinal de base de tempo vertical presente no anodo de D22 e escorreguei a base de tempo para aproximadamente 2,5ms além. A razão disso é que intervalo vertical não há vídeo sendo gerado. Eu ajustei a posição vertical de forma que a borda de descida do ciclo M1 batesse com o centro da tela do osciloscópio, ou seja sobre o eixo vertical.
A razão de usar o ciclo M1 como referência é que o TK85 (ZX81) literalmente executa a memória para desenhar a tela, e o ciclo M1 vai a nível baixo no início do ciclo de busca (fetch) das instruções.
Quando o ZX81 executa instruções na região correspondente ao D-FILE, existe um circuito que gera 'NOPS' para o Z80 para cada caractere na tela. Sendo assim, este sinal é uma boa referência de tempo para se checar os outros sinais.
Com uma referência fixa foi possível combinar várias formas de onda e combina-las numa figura única de forma a facilitar o entendimento (ou futuras pesquisas de pane).
Formas de onda do TK85 |
Olhando a figura acima vemos de cara uma coisa estranha. O sinal presente no pino 9 de IC5 (LS373) varia entre 0 e 1,2Volts. Isso estava assim também na placa defeituosa e foi exatamente esse comportamento que ontem me fez suspeitar de IC17 (LS04) e de IC5 (LS373). Acabei trocando IC5 porque apesar de tudo a saída da porta E de IC17 invertia o sinal. Depois de trocado IC5 o comportamento do circuito não havia se alterado.
Geração do sinal SHIFT/LOAD |
A conclusão é que embora bizarro esse circuito funciona assim mesmo. O que acontece é que na fase alta do sinal de REFRESH, as saídas de IC5 estão em tristate, e isso equivale a deixar o pino 11 de IC17 em aberto. Com isso, os 1,25 Volts são enxergados como nível alto e a saída representa o inverso do sinal de entrada com um pequeno detalhe: Na falta de algo para puxar a entrada do inversor (IC17-11) para cima, o sinal sobe relativamente devagar, formando uma rampa que causa um delay de aproximadamente 200ns na borda de descida do sinal no pino 10 de IC17. Não sei dizer se este atraso é proposital, teria que analisar mais ou fazer mais experimentos.
Continuando, o sinal de NOP 'atrasado' junto com o sinal MREQ (também atrasado por uma rede RC) e mais o sinal de 3.25MHz são combinados numa porta NAND de forma que um pulso baixo só aparecerá no momento em que os três sinais estiverem em nível lógico alto. Isso acontece entre na fase alta de clock, no final do ciclo de 'refresh', logo antes do início do ciclo de 'fetch' seguinte (o sinal nop segue mais ou menos o inverso do sinal de refresh)
Formas de onda em IC18C (LS10, TK85 funcionando) |
Já a saída era muito estranha, em vez dos pulsos curtos apareciam dois pulsos de SHIFT/LOAD e era isso que fazia o registrador de deslocamento apresentar aquele monte de lixo na tela.
Formas de onda em IC18C (LS10, TK85 defeituoso) |
Abrindo-se a varredura da tela para conferir os estados lógicos apareceu um suspeito: IC18. Aparentemente a saída estava simplesmente invertendo o sinal MREQ'.
Forma de onda 'esperada' em IC18 (vermelho) versus sinal atual (azul) |
IC18 (LS10) removido |
Soquete instalado para IC18 (LS10) |
Então, pausa pra tomar um café e brincar com o cachorro enquanto pensa no problema...
Brincando com o Otto para refrescar as idéias. |
Alguns biscoitos depois comecei a investigar outra a diferença que observei nos sinais: O clock. Como eu ainda tinha na memória do osciloscópio o clock do TK funcionando, fiz uma nova captura e sobrepus os dois sinais:
Clock 3.25MHz'. Branco: TK funcionando / Azul: TK com defeito |
Daí apareceu uma coisa que não tinha notado de início. O Clock do TK com defeito estava sobreposto a um sinal de aproximadamente 1,2Volts. Isso me fez lembrar da saída do LS367 que era reconhecida como nível alto daí refiz a análise dos sinais na entrada de IC18 considerando que o clock estivesse sendo enxergado pelo CI como em nível alto o tempo inteiro:
Considerando o Clock em nível alto, explicava-se o comportamento da saída. |
Bingo!!! Considerando-se o Clock em nível alto o tempo inteiro, o comportamento estranho do sinal SHIFT/LOAD estava explicado!
O problema agora havia se transformado em estudar porque o clock estava diferente do que deveria. Analisando o circuito do TK novamente, vemos que o sinal de clock/2 (3.25MHz) saindo do pino 9 de IC4 (LS74) passa por uma rede diferenciadora (C3-R5) e vai para o pino 9 de IC18. Como o sinal estava passando, o capacitor poderia estar em curto ou o resistor poderia estar aberto.
Derivador de clock. |
Trilha danificada quando a placa foi canibalizada. |
Consertei a placa usando fio rígido. Cortes, trincas e demais interrupções sempre devem ser reparadas soldando fio entre ilhas, pois quando o fio é soldado nas trilhas elas aquecem e tendem a descolar e depois de algum tempo o reparo pode romper-se novamente.
Trilha reparada. |
Depois do conserto, verifiquei a forma de onda dos sinais de CLOCK e SHIFT/LOAD. Desta vez estava tudo certo! Até os picos que apareciam no sinal de "NOP" e a sensibilidade quando se tocava a linha DD6 desapareceram.
Formas de onda como esperado agora! |
O próximo passo vai ser soldar os pinos para os conectores do teclado e testar se a leitura e escrita no cassete estão funcionando.
Um comentário:
Bom dia Danjovic!
Encontrei depois de décadas o meu velho TK85. Gostaria de fazê-lo funcionar novamente porem estou encontrando enormes dificuldades. Gostaria de saber se poderia me ajudar com algumas dicas e passo a passo. Caso seja possível segue meu email: juliano.o.mesquita@hotmail.com
Obrigado,
JM
Postar um comentário