Intensifique 3.3V a 5V para E / S digital


35

Normalmente, uso um Arduino para meus projetos porque ele tem entradas e saídas de 5V e Vin de 5V, o que facilita muito a vida ao fazer a interface com componentes de 5V. Para este projeto, quero usar um Raspberry Pi porque quero conectá-lo a um monitor. O Pi é alimentado por 5V, o que é bastante fácil. No entanto, possui pinos de 3.3VI / O e os dispositivos com os quais quero interagir são de 5V.

Eu tenho um dispositivo com um pino de entrada de 5V, que precisa ser direcionado para 5V. O dispositivo possui um pino de saída de 5V, que o dispositivo dirige para 5V quando sai.

Já converti bidirecionalmente entre dispositivos de 5V e 3.3V, mas isso acontecia com um shifter de nível lógico que estava ativo LOW. O circuito é o típico com um transistor e um diodo e dois resistores pull-up. Esta aplicação requer ALTO ativo. Felizmente, este projeto não requer E / S bidirecional.

Para a direção de 5V a 3,3V, um divisor de tensão bruto funcionará.

Para a direção de 3,3V a 5V, no entanto, não conheço uma solução fácil. Eu fiz algumas pesquisas e parece haver conversores de impulso (conversores de impulso DC-DC), mas para construí-los a partir de componentes discretos, preciso construir um circuito PWM para acionar a comutação.

Eu só estava me perguntando se havia uma maneira mais simples de conseguir isso, com complexidade comparável ao shifter ativo de baixo nível lógico.


Confira os diferentes métodos de interface. savagecircuits.com/…
AKR


Quanta corrente a saída de 5V precisa fornecer? Está alimentando uma entrada no nível lógico?
Dwayne Reid

Respostas:


31

Desde que Dave Tweed apontou a falha na outra resposta, basicamente copiei minha resposta para o deslocamento de nível de transistor único ... Observe também a interessante solução de Nicolas D na pergunta.

Eu tenho algumas soluções (algumas soluções fornecidas pela Microchip AQUI ):

1) Conexão direta: se Voh (tensão de saída de alto nível) da sua lógica de 3.3V for maior que Vih (tensão de entrada de alto nível), tudo o que você precisa é de uma conexão direta. (também é necessário para esta solução que o Vol (tensão de saída de baixo nível) da saída de 3,3V seja menor que o Vil (tensão de entrada de baixo nível) da entrada de 5V). Essa solução geralmente é rejeitada devido a margens insuficientes.

2) Se as condições acima estiverem próximas, muitas vezes você pode aumentar levemente a tensão de saída de alto nível com um resistor de pull-up (para 3,3V) e conectar diretamente os sinais.

3) O resistor de pull-up pode fornecer uma pequena quantidade de aumento de tensão de alto nível. Para mais, você pode usar diodos e pull-up de 5V. O circuito mostrado não desliga para 5V, mas aumenta a tensão de entrada de alto nível para a lógica de 5V pela quantidade de queda de tensão de um diodo (appx 0,7v). Deve-se tomar cuidado com esse método para que você ainda tenha um nível baixo válido, pois isso também é gerado por uma queda de diodo. Os díodos Schottky podem ser utilizados para um ligeiro aumento da tensão de alto nível, minimizando o aumento indesejado da tensão de baixo nível. Consulte a nota de aplicativo acima mencionada para obter mais informações sobre este circuito .:

esquemático

simular este circuito - esquemático criado usando o CircuitLab

4) Se você puder lidar com uma inversão lógica (e não exigir pull-up ativo), um resistor de mosfet e pull-up pode ser usado:

esquemático

simule este circuito

5) Também existem muitas soluções lógicas de lógica, como: MC74VHC1GT125, que é um "Deslocador de nível lógico de buffer não inversor / CMOS com entradas compatíveis com LSTTL ″" em um pacote SOT23-5 ou SOT-353. Pequeno simples e bastante barato. O uso desta solução também deve incluir um capacitor de desacoplamento próximo ao CI.


Eu acho que alguns de seus diagramas estão rotulados para trás. Eu tenho uma saída lógica de 3.3V e uma entrada lógica de 5v. Entendo como o nº 4 funciona e posso confirmar que o rótulo está apenas ao contrário (mas é o circuito correto para o que eu preciso). Não compreendo totalmente o número 3 o suficiente para saber se está rotulado para trás ou se está realmente para trás. Dito isto, se eu usar duas instâncias do nº 4 para manter a lógica não invertida, devo estar pronto.
Huckle

Os rótulos não estão ao contrário. "3.3V logic in" indica que é uma entrada no circuito que forneci ... é claro que é proveniente de uma saída do seu circuito. "5V logic out" indica apenas que é uma saída do meu circuito para sua entrada lógica de 5V. Vou editar para esclarecer.
quer

Faz sentido agora que você o explica, mas é inversamente do ponto de vista convencional (onde ponto de vista convencional significa o ponto de vista de alguém que faz interface com CIs digitais). Obrigado novamente.
Huckle

2
@ Huckle: Tut forneceu um circuito ou módulo para ser usado na interface de outros dois circuitos. O padrão é rotular os terminais ou pontos de interface do ponto de vista do circuito - não os que você não pode ver. Você conecta suas saídas às entradas deste circuito. Às vezes, precisamos indicar onde conectar em outro circuito, mas usar setas nesses casos, para que fique claro.
Transistor

@ Você se importa de explicar um pouco mais sobre como o # 3 funciona? Estou tendo dificuldade para entender isso. Não sei o que é 3.3V-D1 :( Obrigado
wbkang
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.