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.
fonte
Respostas:
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 .:
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:
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.
fonte