16 novembro 2015

Como funciona o conversor de nível lógico 3,3 - 5V

Muitas vezes ligar um módulo que trabalha com nível de sinal de 3.3V ao Arduino (cujo nível de sinal é de 5V, na maioria das placas) pode ser um exercício complicado, e nem sempre montar um divisor de tensão com resistores consegue trazer os resultados esperados, seja em interfaces I2C ou SPI. Isso sem contar a perda de espaço ao montar um circuito desse tipo.

Nessas situações, você pode utilizar um componente barato e confiável, o Conversor de Nível Lógico 3,3 - 5V:

Conversor de nível lógico 3.3 - 5V Bidirecional

Com este conversor você tem 2 canais bidirecionais (convertem tensão de 3,3 para 5v e de 5v para 3,3V), e dois unidirecionais (convertem de 5V para 3,3V), além de ser ideal para montagem em uma protoboard.

Ele também é muito útil para ser utilizado com o Raspberry Pi (nível de sinal de 3.3V) para conectar alguns módulos que trabalham com nível de sinal de 5V. 

Pinagem e estrutura


Essa placa tem internamente dois circuitos: um divisor de tensão comum, que vai diminuir a tensão de 5V para 3,3V, e um circuito baseado em MOSFET, que vai fazer a conversão em ambos os sentidos (menor para o maior e maior para o menor).

Na imagem abaixo temos a disposição dos dois canais nas laterais da placa, e na parte central temos os conectores de tensão de referência, cuja ligação é obrigatória para que a placa funcione.

Conversor de nível lógico - Canais


Em cada canal temos 2 entradas e 2 saídas, que funcionam da seguinte maneira:

  • RXI e RXO (RX Input e RX Output) - Pinos do divisor de tensão. Esses pinos convertem o sinal de 5V para 3,3V, e NÃO funcionam no sentido inverso.
  • TXI e TXO (TX Input e TX Output) - Pinos do circuito MOSFET. Esses pinos convertem o sinal de 5V para 3,3V e de 3,3V para 5V, se necessário.

A imagem abaixo mostra de maneira mais clara como funciona cada canal:

Conversor de nivel logico - Detalhes


Conversor de nível lógico - Exemplos de uso


Uma das aplicações mais comuns do conversor de nível lógico é com o módulo bluetooth, que trabalha com nível de sinal de 3,3V, e nos posts aqui do Arduino e Cia geralmente usamos com um divisor de tensão formado por resistores.

Em uma ligação básica desse conversor com o Arduino e um módulo bluetooth HC-05, por exemplo, teríamos a seguinte ligação:

Circuito Arduino Uno HC-05 e LLC


Já com um módulo cartão SD, que no post Gravando dados do Arduino no cartão SD usou 8 resistores, a ligação ficaria assim, bem mais simples:

Circuito Arduino Uno e modulo cartão SD


Como comentamos no início do post, você pode utilizar também o conversor de nível lógico para ligar ao Raspberry Pi módulos que trabalham exclusivamente com 5V, como o módulo RTC DS1307:

Raspberry Pi e Conversor de Nível Lógico


O Conversor de Nível Lógico é uma opção simples e prática para o seu circuito, deixando o seu projeto com um aspecto mais profissional.


16 comentários:

  1. Se eu preciso apenas converter os 5v de um carregador de celular para ligar um módulo que trabalha a 3,3v posso utilizar um regulador de tensão comum ou mesmo um compacto como por exemplo AMS1117 ?

    ResponderExcluir
    Respostas
    1. Bom dia Elvis,

      Pode ser um regulador de tensão comum. Eu já fiz algo desse tipo usando o módulo LM317:

      http://www.arduinoecia.com.br/2015/06/modulo-regulador-tensao-lm317-step-down.html

      Abraço!

      Excluir
  2. Comprei esse componente mas ele não veio com aquelas "cabecinhas" nos pinos como tem no anúncio do site http://www.filipeflop.com/pd-14770b-conversor-de-nivel-logico-3-3-5v-bidirecional.html?ct=&p=1&s=1

    Os pinos ficam soltos. É assim mesmo ou precisa comprar algo pra prender?

    ResponderExcluir
    Respostas
    1. Oi Adriano,

      Esses pinos precisam ser soldados no módulo.

      Abraço!

      Excluir
  3. Pessoal, acredito que isso seja a solução para o meu problema que é ter um arduino rodando com alimentação de bateria de litium de 3.7v, com demanda de 5v para alguns sensores, mas a duvida que ficou é: O consumo de energia aumenta ? devido ao fato de trabalhar com baterias, o consumo é um fator crucial para o meu projeto, então se há um aumento, eu preciso saber como calcular isso para dimensionar a bateria de acordo.

    Obrigado,

    ResponderExcluir
    Respostas
    1. Este módulo apenas altera o nível lógico de sinais, para usá-lo, você ainda precisa de uma fonte de 5v (conectada no pino HV) para fornecer o nível de sinal correspondente. Ele não é capaz de elevar uma tensão de 3v para 5v por si.
      Suas possibilidades são um circuito dobrador de tensão (eficiência baixa, vai aumentar muito o consumo) ou ligar 2 pilhas de lítio em série, para obter 7,4v.

      Excluir
  4. Bom dia! Estou utizando o NodeMCU ESP8266 que trabalha com tensão de 3.3V e não tem nenhum pino 5v. Quero saber se posso usar esse conversor para conectar um componente de 5v no NodeMCU?

    ResponderExcluir
    Respostas
    1. Oi Ivanildo,

      Sim, este é o conversor mais indicado.

      Abraço!

      Excluir
  5. Olá, você saberia me dizer a limitação da frequência de operação que este circuito consegue tem, se está muito abaixo dos tempos especificados no datasheet do BSS138?

    ResponderExcluir
    Respostas
    1. Oi Felipe,

      O que você quer dizer exatamente com frequência de operação ?

      Abraço!

      Excluir
    2. Olá,
      Eu posso enviar os dados com uma taxa de transmissão de 5 Mbps, 10 Mbps ou mais?

      Excluir
    3. Olá,

      talvez me expressei mal, gostaria de saber a taxa de transmissão suportada, ex: 10 Mbps ou 5 Mbps, pelo conversor e se já foi usado em taxas próximas a exemplificada?

      Abraço!

      Excluir
    4. Oi Felipe,

      Entendi. eu realmente não testei com essas taxas, mas creio que não tenha problema. O módulo deve suportar tranquilamente.

      Abraço!

      Excluir
    5. Meus 2 centavos... os pinos RX funcionam com divisor de tensão, de modo totalmente analógico, logo teoricamente não deve haver limite de taxa transferência de dados. Já os pinos bidirecionais, que usam os MOSFET, tudo vai depender da velocidade de comutação destes transistores. Veja o modelo deles e consulte o datasheet. Possivelmente está na casa dos MHz, o que em teoria deve ser o suficiente para suportar taxas de transferências de alguns Mbps.

      Excluir
  6. Bom dia. Tá, e quando vc tem um arduino standalone que não tem a tensao de 3.3v como é que faz?

    ResponderExcluir