Entrada de 12V no pino do microcontrolador


8

Estou tentando contar pulsos / s. em um pino de microcontrolador na faixa de ~ 5 a 100Hz. O µC pode operar na entrada de 5V, então tenho que baixar o nível de tensão com segurança.

Um resistor simples vem à mente, mas deixa qualquer oscilação aberta diretamente no µC pin- meh .

Encontrei esta resposta, mas a questão permanece: se esse circuito é capaz de alterações "rápidas" de 100Hz.

Existe uma maneira comprovada e confiável (por meio de um IC, talvez?) De entrar em contato com pinos de 5V ou 3,3V para entradas "sujas" de 12V? Eu tenho os 12V e 5V disponíveis para acionar qualquer IC "pronto".


2
divisor resistivo + diodos zener / de aperto?
Wesley Lee

2
Esta é realmente uma pergunta que não pode ser respondida por uma simples pesquisa no Google?
Ale..chenski

16
Ele pode ser respondido, mas eu gostaria muito de uma resposta de qualidade antes de destruir meu equipamento por minha própria estupidez. Vamos resolver a "paz de espírito"?
Christian

8
O @AliChen stackexchange pretende ser um repositório canônico de perguntas e respostas. Até perguntas simples podem ser boas se coletarem respostas úteis.
Wayne Conrad

2
100Hz não é rápido.
user253751

Respostas:


13

Use um circuito como este:

esquemático

simular este circuito - esquemático criado usando o CircuitLab

R1 e R2 determinam a faixa de tensão e executam a divisão inicial. Esses resistores devem ser capazes de obter alguma energia. Típico é MELF 0,4W. Todos os outros podem ser resistores / capacitor de chip.

R3 evita que surtos causem danos ao gatilho schmitt. R4 e R5 são opcionais para evitar sinais flutuantes.
No entanto, a combinação R3 / R4 também pode ser usada para ajustar o limite, se necessário.

C1 e C2 determinam a velocidade máxima. A combinação R3 / C2 pode filtrar lentamente. C1 filtra transientes.

Um gatilho schmitt separado é usado, pois você pode obtê-los muito pequenos e baratos. E evita o roteamento de um sinal fraco em traços longos. Embora também seja uma parte sacrificial em grandes ondas.

Eu projetei este circuito com base no que vi dentro dos CLPs. O circuito acima é para 24V. Ajuste os resistores para combinar com 12V de acordo com IEC61131-2.

iec 61131-2
O conceito do padrão é garantir que a entrada tenha que afundar uma quantidade mínima de corrente antes de considerá-la um '1'. Os três tipos especificam quanto e são aplicados com base no ruído ambiental. Isso evita que as falhas toquem nele ou nos relés próximos. A desvantagem é que o R1 / 2 deve ser de potência decente e baixa resistência.


Uau. Uma resposta muito completa ao que inicialmente parecia uma pergunta simples. Obrigado.
Christian

Estou realmente curioso sobre R4 e R5 - quando eles farão alguma coisa útil? R2 + R3> R4 de qualquer maneira. É caso algum dos componentes "pesados" se quebre?
pipe

O @pipe R3 e R4 pode ajudar a configurar o limite, fornecendo um caminho de alta impedância para a lógica. O R5 é supérfluo na maioria das vezes, mas no design usado, o pull-down do mcu não pôde ser usado. Se, por algum motivo, o buffer falhar, a entrada mcu não exibirá 50hz hum. (Nota: confiança foi solicitado)
Jeroen3

17

Eu tentaria uma solução de divisor de resistor como mostrado abaixo.

insira a descrição da imagem aqui

Selecione a taxa do resistor para que a tensão dividida esteja no nível apropriado para o MCU quando a entrada estiver na sua tensão nominal. A tensão do diodo zener é selecionada para prender a entrada do MCU quando a entrada estiver acima da entrada máxima. O zener também protegerá o MCU se a entrada for negativa.

Esta solução funcionará muito bem para a faixa de frequência relativamente baixa que você especificou.


1
Por que escolher zener para ser 4v7? 5v2 (5v1?) Seria a melhor solução?
R.Joshi 24/07

7
@ R.Joshi: Se o microcontrolador de 5V for alimentado por uma fonte tolerante de 10% (4,5-5,5V VDD), a aplicação de 5,2V no pino poderá ser mais do que o típico VDD + 0,3V máximo absoluto. A lógica alta é reconhecida em 2V para TTL e 2/3 * VDD para CMOS, portanto, não há problemas com um zener 4V7 lá.
Hans

2
Eu realmente gostaria de poder marcar duas respostas como "escolhidas". Seu caminho é o caminho a percorrer todos os dias, mas a resposta de Jeroen é um pouco mais profunda. Obrigado, no entanto, por reservar um tempo para responder.
Christian

8

Eu usaria um divisor de resistor e depois protegeria o uC com um Zener de 5.1v

Se você colocar o zener entre o pino e o terra em paralelo com, por exemplo, um resistor de 10k, em seguida, alimente seu sinal de tensão dividida ... zener é mais do que rápido o suficiente e barato / fácil.

Costumo fazer isso e divido o sinal antes que o zener morra com um pote.

Outra opção é a mesma: se você está realmente preocupado com o uso de um opto, se não for um problema de segurança, eu usaria o item acima ou teria o pino normalmente alto de 5V Vcc e o puxaria para baixo com um feto (em cima da minha cabeça) 2N7000 deve funcionar) - mas é menos simples que a opção zener.


7

Se os níveis de sinal são GND e 12V (ou> 5V), a maneira mais simples e 100% segura é:

esquemático

simular este circuito - esquemático criado usando o CircuitLab

Se realmente serve ao seu objetivo, depende da impedância real do sinal de 12V (deve estar bem abaixo de R1) e o que você quer dizer com "sujo".

Além disso, como o @MichaelKaras aponta corretamente, o nível baixo na entrada do µC pode ser alterado para o nível baixo do sinal de 12V mais Vf do diodo (até cerca de 0,7V). Você deve verificar se isso é um problema no seu caso ou não. Se for, você ainda pode tentar usar um diodo Schottky com um Vf de cerca de 0,35V.


Na maioria dos µCs, pode-se até soltar o resistor e ativar a tração interna para esse pino.
Janka

A solução de diodo proposta aqui nem sempre é a melhor ou a melhor solução. A tensão de entrada de baixo nível apresentada ao MCU estará acima de GND por uma queda de tensão direta de diodo mais a tensão de saída de nível sempre baixo que está criando o sinal de 0 a 12V. Isso pode ser particularmente um problema em que os sinais podem transmitir ruído e a entrada do MCU é especificada com níveis de tensão do tipo TTL para V <sub> IL </sub>. Frequentemente, essa especificação pode ser de apenas 0,8V. Portanto, se esta solução for usada, tenha cuidado e, pelo menos especificamente, um diodo de queda de tensão direta baixa como um BAT54.
Michael Karas

@MichaelKaras Você está certo sobre a mudança do nível baixo pelo Vf do diodo; isso precisa ser levado em consideração. Para mim, para 5V µC, V [IL] de 0,8V parece excepcionalmente baixo. Eu pareço encontrar geralmente 0.3Vcc (~ 1.5V) spec'd.
21717 JimmyJ

Se o seu MCU tiver uma especificação do tipo CMOS para V <sub> IL </sub>, talvez funcione OK. Eu ainda gosto de projetar de maneiras que funcionassem mesmo que a especificação fosse muito menor do que aquela, apenas para obter a maior margem operacional possível. Mesmo a diferença de especificar um diodo de baixa queda é um bom passo nesse sentido, se você optar por usar esse tipo de circuito. Seu circuito não é particularmente bom para casos em que pode haver excursões negativas na entrada de 12V.
Michael Karas

Concordo. Projetar margem é uma coisa boa. E tensões negativas no sinal de 12V podem realmente causar estragos no circuito.
21817 JimmyBoas

5

Eu usaria um opto-isolador, 100Hz é facilmente dentro do alcance de qualquer um decente. O 4n25 vem à mente como um número de peça comum e sei que é capaz de muito melhor que 100Hz.


O problema com o uso de um isolador óptico para resolver esse problema é que ele pressupõe que você possa extrair corrente do sinal de 12V. Você pode armazenar em buffer o sinal de 12V, mas isso exigiria um suprimento extra.
Jason Morgan

Tenho certeza de que você pode obter um opto que seria efetivo quase na mesma corrente que uma entrada micro, a partir de 12v, não vai colocar muita carga para acender um pequeno LED.
John U

1
Um vazamento de entrada digital é tipicamente entre 10nA e 1uA (depende da temperatura e do processo). Nunca me deparei com um acoplador óptico que funcione a 1uA. Um acoplador óptico típico, comercializado como baixo consumo de energia, por exemplo, Broadcom ACPL-x6xL precisa de 1,6mA. Isso é entre 1600 e 160000 vezes mais corrente. Mas então, como afirmo em minha resposta, depende dos requisitos que funcionarão, portanto não descartarei uma solução opto.
Jason Morgan


2

O método selecionado depende parcialmente do que o sinal de entrada faz, como ele se comporta e como isso pode afetar o circuito de entrada e o código que o lê?

por exemplo, é sempre 12V? Tem picos ou ruído? Quanta corrente ele pode dirigir? A corrente pode ser direcionada para ela? Tomar corrente dele afetará qualquer outra coisa? É segurança crítica? ....

Por causa disso, nunca pode haver uma resposta universal para essa pergunta, pois a solução 'correta' depende do que o resto do sistema faz. A solução escolhida que atende aos requisitos terá custos e complexidade diferentes.

Dito isto, como ninguém mais o sugeriu, vou buscar uma entrada FET.

Um JFET ou MOSFET pode ser usado e pode ser fonte comum ou modos de drenagem comuns. Por exemplo, dreno comum:

esquemático

simular este circuito - esquemático criado usando o CircuitLab

A vantagem do modo de dreno comum é que ele permite que a entrada seja conectada a um pino analógico (por exemplo, ADC) ou digital. Se o sinal for realmente digital, eu habilitaria o gatilho schmitt na entrada da CPU (se houver) ou adicionaria um buffer schmitt externo ao pino de entrada da CPU.

Vantagens

  • Impedância de entrada muito alta
  • Entrada parcialmente isolada (pode suportar +/- 30V, dependendo da seleção FET)
  • Analógico possível
  • Efeito mínimo no sinal externo

1

esquemático

simular este circuito - esquemático criado usando o CircuitLab

Figura 1. Interface opto-isolada. Use pull-up interno no GPIO.

Um opto-isolador resolve vários problemas.

  • Isolamento elétrico completo entre o circuito de 12 V e a lógica de 5 V.
  • Manipula sinal sujo de 12 V sem risco.
  • Simplicidade.

1

esquemático

simular este circuito - esquemático criado usando o CircuitLab

R1, R2 e C1 formam um divisor de tensão com um filtro passa-baixa de 1kHz. Qualquer sinal indesejado de alta frequência que viaja nos 12V pode ser filtrado. O cálculo para a frequência do filtro é 1 / (2 pi R2 C1). Nota: A Base requer pelo menos 0,7 V para funcionar corretamente, tenha cuidado ao ajustar o resistor.

O BJT está sendo usado porque é muito comum comparar ao mosfet. Caso os 12V ainda estejam ativos, mas os 5V do seu uC estejam baixos, o BJT não passará corrente para o pino e causará danos.

Para a programação uC, use um gatilho alto para baixo para contar seu pulso. Como este circuito reverterá o pulso.


-2

Geralmente, as entradas MCU já estão protegidas com diodos de braçadeira, desde que você tenha um resistor com um valor otimizado (alto o suficiente para os grampos e baixo o suficiente para a amostragem) e tenha uma boa capacidade de desvio entre VDD e VSS, você não tem se preocupar com isso. Então, apenas um resistor é bom o suficiente.

edit: Graças ao comentário de PeterJ, quero explicar um pouco mais. O mínimo de energia que o MCU consome (assumindo que não dorme), a capacidade de derivação, o valor do resistor; quando tudo isso está no ponto de comprometimento - que é facilmente o caso muito geral, com apenas a condição de usar um resistor de cerca de 10kOhm - o único resistor é bom para a aplicação simples do OP.


4
Um problema que encontrei com isso há muitos anos é que, embora possa não danificar nada, o Vcc internamente pode subir um pouco (até o diodo ser conduzido) e, dependendo do microcontrolador, pode jogar coisas como as leituras do ADC.
precisa

@PeterJ Funciona bem se você pode garantir que pelo menos essa quantidade de corrente seja retirada do suprimento. Na pior das hipóteses, adicione um resistor simulado ...
CL.

Embora "desagradável", eu já vi isso em muitos bens de consumo baratos. Consertei um despertador uma vez em que a rede elétrica era alimentada em uma entrada digital através de um resisor de 10M como referência de temporização. Não é de surpreender que o chip estivesse morto.
Jason Morgan

-5

Você pode optar por um regulador de tensão LM7805 / LM7803 para 5V e 3,3V, respectivamente. Estou assumindo que o uC esteja isolado de uma carga exigente de corrente, se houver.


1
É criativo. Mas você operará fora das especificações em alta velocidade. Se fosse tudo o que você tinha por aí, talvez.
Jeroen3
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.