PROVADOR LÓGICO TTL/CMOS – COM PIC 12F675 (REF169)

Uma ponta de prova de níveis TTL/CMOS pode ser um equipamento interessante para testes digitais…

Se realizarmos uma busca rápida pela internet, com certeza encontraremos muitos modelos de ponta de prova para níveis TTL/CMOS. A maioria utiliza portas lógicas, outras usam transistores e as mais sofisticadas usam um par de amplificadores operacionais. A proposta deste protótipo é usar um PIC12f675 para realizar a tarefa pesada. Apesar de ter apenas 8 pinos, dispõem internamente de 4 canais no seu conversor analógico/digital. Isto realmente facilita a leitura das tensões necessárias para este circuito.
Antes de passar ao projeto, devemos lembrar um pouco sobre ‘níveis lógicos’ de portas. No caso das portas da família TTL, é convencionado que níveis abaixo de 0,8 volts é considerado com sendo nível lógico ‘0’. Já o nível ‘1’ será uma tensão acima de 2 volts até 5 volts. Como esta família trabalha somente com 5 volts, isto já limita muito os problemas.
Mas que dizer da família CMOS?
Esta família pode ser alimentada com tensões entre 3 volts ( ou menos) a 18 volts. Então não podemos falar de valores fixos de tensão para ‘1’ ou ‘0’, mas usamos um percentual da tensão de alimentação para fixar estes níveis. Para esta família ficou convencionado que níveis abaixo de 30 % da alimentação será nível ‘0’ e acima de 70% até o Vcc, teremos o nível ‘1’.
Para exemplificar, suponhamos que tenhamos uma tensão de 15 volts alimentando um ci da família CMOS:

Para nível ‘1’ = 70 x 15 / 100 = acima de 10,5 volts
Para nível ‘0’ = 30 x 15 / 100 = abaixo de 4,5 volts

Passemos agora para o esquema proposto com o PIC. Veja abaixo:

Por meio de 2 fios com garras jacarés nas pontas, retiramos a alimentação do próprio equipamento sob teste. Para obtermos os patamares de comparação será necessário medir esta tensão de alimentação e calcular estes valores tanto para TTL como para CMOS. Através do pino 3 , reduzindo a tensão por meio de uma rede divisora de tensão, medimos a tensão usando o canal 3 do conversor A/D. Com este valor obtemos os outros valores de comparação, como pode ser observado na sub-rotina ‘le_vcc()’.
Depois, dependendo da posição da chave TTL/CMOS será comparado os valores apropriados com a leitura que será feita pelo canal 1 do A/D, pelo pino 6. Este lerá a tensão da ponta de prova (probe) comparando com os valores calculados para níveis ‘1’ , ‘0’ ou alta impedância. Foi acrescentado um som diferente para cada nível, o que ajuda determinar o nível também pelo som. Uma pequena capsula piezoelétrica foi usada para obter estes sons.
E como testamos se há pulsos no circuito sob teste? Usamos o timer 0 programado para contar pulsos externos (pino 5). Quando temos sinal variando na entrada de prova, o flag do timer 0 constantemente será setado. Quando isto acontece, a rotina faz acender o led ‘pulso’ e acionar o som apropriado para este nível. Um transistor NPN serve para adaptar os níveis corretos de entrada para a o PIC.
No inicio dos testes, usei um resistor limitador junto com zener de 5 volts para alimentar o PIC. Mas isto gerou muita instabilidade, especialmente quando se acendia os leds, derrubando o valor do vcc. Pensei em um regulador 7805, mas este impunha muita queda de tensão entre o pino de entrada e saída, dificultando usar uma fonte de 5 volts ou menos. Necessitava de uma fonte que permitisse passar tensões abaixo de 5 volts sem queda de tensão e que também limitasse tensão maiores. A solução foi usar uma
alimentação regulada com uso de 3 transistores. Com este arranjo, uma tensão de entrada tão pequena como 3 volts sairá integralmente na saída. Tensões maiores serão reguladas e mantidas a 5 volts na saída. Como o consumo é pequeno não foi necessário uso de dissipador no transistor BC558. Mas um cuidado especial deve ser tomado para não se inverter as garras na hora de ligar ao circuito sob teste, sob risco de danificar o circuito incluindo o PIC. No circuito, temos um resistor de 33k, cujo valor determina o estado de alta impedância, quando a ponta de prova se encontra desligada ou o circuito sob teste esta em alta impedância. Ele produz uma tensão intermediária entre os níveis alto e baixo. Reduzindo o valor tenderá a acender o led ‘1’ e aumentando o valor tenderá a acender o led ‘0’.
Adicionalmente, caso a chave modo TTL/CMOS esteja na posição TTL e a alimentação for maior que 5,5 volts, ocorrerá um aviso, piscando o led ‘1’ e apitando com som mais agudo. Este alerta parará somente com a mudança da chave para posição ‘CMOS’.
Obs. Esta montagem foi realizada apenas em placa de protoboard, sujeita a bug’s ainda não detectados. Estão sendo fornecidos os arquivos que poderão ser alterados pelos hobistas, conforme a necessidade.

Segue pasta com arquivos zipados para esta montagem:

files_PROVADOR_LOGICO__V2

Manuais:

PIC12f675

Curiosidades:
Em foco: saúde
A impressionante audição da traça-da-cera
A ponta da asa das aves planadoras
Sol e ar fresco — são “antibióticos” naturais?
Decretos que dividiram continentes
Será que Deus existe? Que diferença isso faz?
Em foco: África
Quando seu filho faz perguntas sobre a morte

Outros assuntos:
Como chegar a um acordo
Os desastres naturais são castigo de Deus?
Por que rejeitar a pornografia?
Como ser feliz no casamento?
Quando seu casamento não é o que você esperava
Como resolver diferenças no casamento
Como recuperar a confiança no casamento
Quando um dos cônjuges tem necessidades especiais
Aprenda a perdoar
Como acabar com a tática do silêncio
Como criar filhos responsáveis
Como administrar o seu dinheiro
Como posso controlar meu peso?
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?

Até o próximo artigo!!!

29 comments on “PROVADOR LÓGICO TTL/CMOS – COM PIC 12F675 (REF169)

  1. Bom dia nobre Claudio…Parabéns pelo site!!!
    Enviei dois e-mais para você, recentemente. Poeria lê-los e me responder??? Antecipadamente agradeço.

    1. Olá Batmonstro!
      Não consegui achar nada na caixa de entrada. Pode ser que eu o tenha confundido com algum span e tenha deletado. Poderia reeviar por favor?
      Cláudio

  2. Ola´Claudio, boa noite, eu estava vendo seu comentário sobre COMO COMPILAR ARQUIVO .ASM, com MPLAB ID e eu tentei compilar para arquivo .HEX para PIC 16F57 mas sem sucesso, eu não consegui, eu entendo de eletrônica, mas não de programação, E já que que você é muito bom em programação, será que é pedir muito pra você, se da para compilar esse arquivo pra mim, (são 2, um pra encoder e outro pra decoder) para o pic 16f57, e se der, não abusando de sua vontade, compile TB para pic 16C57, pra ficar fixo, e SE não for possível, eu agradeço da mesma forma, Grato por sua atenção. Bagini

    1. Olá Bagini! Para compilar um arquivo para .hex, terá que ter o arquivo asm do programa. Se ele for de um tipo de pic e desejar migrar para outro modelo, terá que ver a compatibilidade entre eles. Em alguns casos, será necessários alterar muito código. Em outros, não será possível e em raros casos, se forem compatíveis funcionará de primeira. A família ‘F’ é de memória Flash, sendo regravável, mas a família ‘C’ é de única gravação (OTP – One Time Programmable) e uma vez gravado não pode ser desgravado (exceto os com janelas e apagamento com ultravioleta). O pic 16f57/16c57 não tem eeprom interna e caso se necessite salvar valores, terá que usar uma eeprom serial externa, aumentando o custo. O hex citado é algum do site que você queria alterar?
      Cláudio

      1. Olá Claudio Boa Noite, Primeiro Peço Desculpas Por Demorar Em Responder Pois Fiquei Sem internet Por Um Tempo, E Perdi Tb Onde Tinha Feito A Pergunta(RS RS)
        Bom, Eu Sou Hobbysta VC Sabe, Peguei Esse Projeto Aqui ( jap.hu/electronic/codec-p.html ) E Achei Interessante e Queria Monta-lo, Até Comprei Os PIC 16F57, Mas Não Consegui Compilar, Por Isso Pedi Se Era Possível Você Compilar Para Mim, Pode Ser Somente Para O PIC 16F57, Se Possível Mande Um E-MAIL Para Mim Que Te Retorno Enviando O Arquivo .asm ( encoder e decoder )Desde Já Muito Agradecido Por Sua Atenção. Att

        1. Olá Bagini! Verifique junto ao autor se ele não pode fornecer o arquivo .hex pronto para você. Para compilar os asm em questão teria que saber para qual compilador ele foi feito. Tentei compilar no Mplab e notei que realmente dá muitos erros . Talvez algum colega do blog tenha já compilado com sucesso e possa fornecer o modelo do compilador e os procedimentos necessários…
          Cláudio

          1. Boa Noite Claudio Larios, Realmente Deve Ter Sido Compilado Com Outro Tipo de Compilador Diferente do Seu, Mas Valeu A Intenção e a Atenção Dispensada, Muito Obrigado e Pode Ter Certeza, Vou Continuar Sempre Visitando Sua Página, Att.

Comments are closed.

Back To Top