teste de continuidade automatizado com arduino

386 views
Skip to first unread message

Felipe Sanches

unread,
Aug 25, 2013, 8:52:01 PM8/25/13
to Garoa HC
===ATENÇÃO===
A introdução desse email é bem longa, então você pode pular direto pro final do email pra ver se vc sabe a resposta para a minha pergunta e depois se tiver algum interesse em saber do contexto, pode ler o email desde o início!
===ATENÇÃO===


Estou gastando várias horas por semana fazendo engenharia reversa de uma placa  eletrônica digital de um arcade da década de 80.

Grande parte do trabalho é feito com um multimetro no modo testador de continuidade. Parte do trabalho é inspeção visual das trilhas, e o resto consiste no uso do testador de continuidade pra verificar quais pinos de um determinado CI se conectam a qual pino de qual dos outros CIs da placa. Dado que a placa tem mais de duzentos CIs DIP, obviamente a tarefa é bem repetitiva e cansativa.

Eu estou planejando criar uma ferramenta para me auxiliar nesse processo.

Meu plano é num primeiro passo levantar um grafo onde cada nó representa um CI da placa e cada ligação entre 2 nós representa que há pelo menos uma trilha interligando os 2 CIs representados pelos 2 nós. Para levantar esse grafo inicial, eu precisaria ligar todos os 14 ou 16 pinos de um DIP em curto e todos esses sinais seriam ligados a uma das pontas de prova do multimetro. A mesma coisa eu faço com todos os pinos do outro CI, ligados à outra ponta de prova. Se apitar, significa que algum dos pinos do primeiro CI está conectado a algum dos pinos do segundo CI.

Uma vez levantado esse grafo (que representa um mapa grosseiro de interligação dos chips - quase um net list, mas em alto nível) podemos refinar a busca analisando cada par de CIs que estejam interligados no grafo. O resultado desse refinamento seria um net list a partir do qual eu poderia semi-automatizar o desenho de um esquemático usando o KiCAD talvez.

Para essa segunda análise, mais detalhada, eu pretendo automatizar os MxN testes de continuidade (onde M é o número de pinos do primeiro CI e N é o número de pinos do segundo CI). Obviamente não precisamos testar a interligação dos pinos GND e VCC. Então, pra exemplificar, o teste entre dois CIs da família 74, supondo que ambos sejam chips DIP de 14 pinos, resulta em 12x12 = 144 testes.
A quantidade de testes pode ser reduzida se for utilizada uma abordagem de busca recursiva, onde, pra cada pino do chip A inicialmente se testa a continuidade com o conjunto de todos os pinos do chip B. Se conduz, então se testa com toda a primeira metade de pinos do B e depois com a segunda, e em cada grupo de pinos que dá resultado positivo se segue recursivamente refinando a busca.

Aí que vem a minha dúvida. Será que rola eu usar um arduino para fazer essa automatização?

Pensei em ligar um par de registradores de saída paralela 8 bits com entrada serial para jogar um padrão de zero ou 5 volts nos pinos do chip A, e ter um par de registradores de entrada paralela de 8bits com saída serial para fazer a leitura dos pinos do chip B. O uso desses shift registers é para expandir o I/O do Arduino para que eu possa ter 16 outputs e 16 inputs (suficiente para mapear pares de chips DIP de até 16 pinos cada).

O problema é que eu acho que jogar 5volts na placa pode ser problemático pois pode por alguma via acabar alimentando os chips e fazendo o funcionamento deles adulterar as leituras. Então acho que o ideal seria trabalhar com voltagens menores.

==== A pergunta é essa: ====
Alguém sabe me dizer que tipo de eletrônica eu posso usar para implementar um testador de continuidade que opere com níveis de tensão mais baixos usando o Arduino?

happy hacking,
Felipe "Juca" Sanches

Felipe Sanches

unread,
Aug 25, 2013, 8:54:02 PM8/25/13
to Garoa HC
E um desafio extra: Como testar ligações entre pinos de um mesmo CI? Por exemplo quando a saída de uma porta lógica é ligada à entrada de outra porta lógica estando ambas portas lógicas dentro de um único CI...


2013/8/25 Felipe Sanches <ju...@members.fsf.org>

Rodrigo Magalhães

unread,
Aug 26, 2013, 12:25:35 AM8/26/13
to hacker...@googlegroups.com
Felipe,

uma ideia (que precisaria ser validada) para evitar que os CIs entrem em funcionamento seria aplicar 5V no pino testado e deixar todos os outros pinos abertos. Usando algum buffer tri-state, como o 74125, você conseguiria esse efeito. Bastaria ligar a saída de cada porta do 74125 a um pino do CI A. Depois, aplicaria 5V no primeiro pino e deixaria os demais em estado de alta impedância, e assim sucessivamente.

Esse esquema permitiria até mesmo que você testasse a continuidade entre pinos do mesmo CI. E, trabalhando com 5V, não precisaria de conversores para ficar reduzindo e elevando a voltagem.

Interessante o seu projeto. Você chegou a dar uma vasculhada na net? Pode ser que outras pessoas também enfrentaram esse problema, talvez lhe dê algumas ideias legais.


2013/8/25 Felipe Sanches <ju...@members.fsf.org>
--
.--. .- .-. .- .--. --- ... - .- .-. . ... -.-. .-. . ...- .- .--. .- .-. .- .... .- -.-. -.- . .-. ... .--. .- -.-. . ... .--. .- - --. --- --- --. .-.. . --. .-. --- ..- .--. ... -.. --- - -.-. --- --
Regras da Lista: http://garoa.net.br/wiki/Lista:LeiaAntesDeClicarNoSend
Para mais informações sobre o Garoa Hacker Clube acesse http://garoa.net.br
Maiores opções sobre o Google Groups, visite: http://groups.google.com/group/hackerspacesp
.--. .- .-. .- -- .- .. ... .. -. ..-. --- .-. -- .- . ... .- -.-. . ... ... . --- .-- .. -.- ..
Epoch 0 <=> Fundação: 1298244863 s ~ 2.408064*10^52 tP (tempos de Planck)
 

Reply all
Reply to author
Forward
0 new messages