Diagnostics Board

Em 23 de Junho de 2012




Como usar a Placa de Diagnóstico




Antes de começar, tenha certeza que o micro a ser testado esta desconectado da fonte de alimentação. De preferência remova o plug para não ter dúvidas e encaixe firmemente a placa na posição. Inserir com o micro ligado pode danificá-lo ainda mais ou danificar a placa de diagnóstico.

Verifique inicialmente se o jumper J1 está aberto e o J2 na posição "VCC". Muitas CPUs Z80 sairam com um pequeno defeito de fabricação na linha M1 do processador e a placa de diagnóstico não funcionaria adequadamente nessas CPUs. Então mantenha sempre o jumper em "VCC" e use a posição "M1" somente quando vc estiver testando especificamente essa linha. (Mais detalhes no fim do texto)


O Teste Inicial

Logo que a fonte de alimentação for ligada será possiver ver o primeiro LED da placa piscando, se a CPU estiver ok. Se não iniciar, tente pressionar o botão de reset.

Começando a piscar já podemos dizer que o Z80 está ok e o programa de teste está rodando normalmente. Se os CIs de video estiverem ok e se a parte da ULA que gera imagem estiver funcionando, a borda ficará azul, enquando o miolo, completamente preto.

Se a placa não iniciar, verifique inicialmente as voltagens de alimentação, o capacitor do reset e o clock no pino 6 da CPU. Estando tudo ok, troque o Z80.

A Sequencia de Testes

Os testes são mais focados nos dois bancos das memórias RAM: memória baixa (primeiros 16kb) e memória alta (32kb restantes), porque esses são os principais componentes que dão defeito.

Ao todo são feitos três tipo de testes em cada banco, examinando bit a bit a procura de enventuais CIs com problemas.

Testes 0 e 1 - Bit Set e Bit Reset




Nesses primeiros testes, todos os bits da memória são setados para 1 e logo depois para 0. Provavelmente a maioria das máquinas com problemas já falharão logo nessa fase que é a mais fácil de identificar o CI defeituoso.

O teste 0, que é para a memória baixa, começa piscando o LED 0 (o mais a esquerda) quatro vezes e então começam a ser varridos todos os endereços dos primeiros 16kb. Após este, automaticamente já passa para o teste seguinte. Então o LED 1 piscará quatro vezes e o teste do Set/Reset é repetido, porém para a memória alta. Note que a qualquer momento que um problema for encontrado, a borda mudará para a cor vermelha e a placa piscará por quatro vezes sequidas um padrão de leds alterados (LED 0, 2, 4 e 6 desligados, LED 1, 3, 5, e 7 ligados) indicando que aconteceu um erro. Logo após os leds se alternam com o valor que a memória devia conter e o valor lido também por quatro vezes. Quando um problema é encontrado, o teste da vez é abortado e continua com a próxima sequencia.




Durante os testes da RAM será possivel ver padrões e cores randômicas na tela, dependendo da área de memória testada no momento. Com alguma prática é possivel inclusive dizer se o funcionamento desta parte da ULA está OK.

Testes 2 e 3 - Inversão


Esses próximos testes (o 2 para a memória baixa e o 3 para a alta) consistem em setar o conteúdo de todos os endereços pares para 1, zerar a memória e escrever 1 em todos os endereços impares. Se duas linhas de endereços ou dados estivessem em curto nas memórias, poderiam passar nos primeiros testes, mas não nesses.

Tests 4 e 5 - Preenchimento Randômico


Um problema bem raro que poderia ainda passar pelos testes inciais seria por exemplo setar um determinado bit em um endereço e isso trocar um bit qualquer em outra parte do chip. Raríssimo, mas poderia acontecer, então esses testes gravam na memória baixa (teste 4) e na memória alta (teste 5) valores aleatórios para tentar identificar esse tipo de problema.

Esse teste também serviria para identificar um problema na parte de decodificação dos endereços (CIs 74LS175). Por exemplo, supondo que um bit de decodificação estivesse travado em 0 por um defeito no 74LS157, um acesso em um endereço cairia em outro diferente.

Tela Final

Depois que os seis passos de testes de memórias são concluídos, a placa fará alguns testes adicionais. Note que dependendo dos defeitos presentes nas memórias, pode não ser possível chegar até aqui.

Aqui é informado se os testes nas memórias foram OKs ou não e é feito um teste na ROM. Ele é feito somando-se todos os bytes do conteúdo da ROM e mostrado um resultado que pode ser comparado com valores conhecidos, também apresentados na tela. Se você obter um valor diferente dos propostos, não necessáriamente pode ser um defeito, mas apenas uma outra versão de ROM. Leve o resultado do teste em conta se toda a RAM passou nos testes anteriores, mas mesmo assim a placa ainda não está bootando normalmente. Já foram pelo menos alguns casos que vi de ROM corrompida, bastando trocar o CI por uma EPROM gravada para resolver o problema.

Após a ROM, o próximo teste é para saber se a ULA está gerando interrupções. Um contador é montado e incrementado a cada recebimento de interrupção, logo, são 60 interrupções por segundo (50 nas máquinas inglesas) e será possivel ver o padrão de LEDs piscando alternadamente como um contador binário. A cada 256 ciclos de interrupção o contador é mostrado na tela para acompanhamento.

Agora o teste da linha M1, onde todos os LEDs devem piscar simultaneamente. Note que o jumper deve estar na posição "M1" para o resultado deste teste valer, porém você não deve trocar o jumper com a interface ligada. Faça todos os testes anteriores e quando o micro estiver consertado roda-se todo o diagnóstico novamente, mas com o jumper na posição "M1".

Com todos os testes concluídos, a placa tentará dar um boot normal no micro, mas já notei que frequentemente ele trava nessa parte. Portanto, chegando aqui, simplesmente feche o jumper J1 e pressione reset. Isso é o equivalente a ligar o micro sem a placa de testes, mas poupando um pequeno stress mecânico de ficar colocando e tirando a placa a todo momento para repetir os testes.

Interpretando os resultados

Como já foi dito, sempre que um dos testes de memória falhar, a borda ficará vermelha e os leds piscarão quatro vezes o padrão de erro. Logo após a placa piscará os bits que foram gravados na memória e os bits que foram realmente lidos, alternadamente. Nos testes 0 e 1 por exemplo isso é facilmente identificável, porque todos os LED se acenderão mostrando que ele tentou gravar o mesmo padrão em todos os CIs e logo após ele vai acender somente os que ele consegui ler. Então por exemplo, se um CI da memória baixa falha, bastaria ver quais LEDs são diferentes do padrão e sacar o chip para testes ou troca.


No exemplo acima pode ser visto que o CI responsável pelo bit 6 está com problemas. No caso do TK90X versão brasileira, a contagem dos CIs é o inverso da posição dos LEDs, então esse seria o segundo CI contado a partir da esquerda do banco de RAM. Já o TK90X argentino e o ZX48 e o plus os LEDSs ficam nas mesmas posições dos CIs, logo, no exemplo acima, seria o sexto CI do banco, a partir da esquerda.

Observações finais

A Diagnostics roda mesmo independente de TV ou monitor, mas é bom manter o micro ligado a um por causa das informações que podem ser vistas na tela. Uma outra observação é que se a placa chegou até o teste de interrupções da ULA e ainda assim você não tem imagem, existe mais algum tipo de problema na parte analógica do micro, na geração de imagens do LMs ou ainda na alimentação do 12V desses CIs ou mesmo no modulador de RF, então vale umas medições extras nessa área.

Video do Demonstração






Fotos de 7 de Junho de 2012




Fotos de 21 de Março de 2012










Fotos de 19 de Março de 2012







Voltar - Home


Comente



COMENTÁRIOS DESABILITADOS NO MOMENTO! RETORNAM EM BREVE
É expressamente proibido a reprodução total ou parcial deste texto sem a minha devida autorização por escrito.