Com o avanço da tecnologia, as tensões digitais estão cada vez menores. Já faz um bom tempo desde que 5V eram suficientes para qualquer semicondutor. Hoje 3,3V já não é mais o limite, se tornando cada vez mais comum trabalhar com 1,8V, ou até mesmo 1,2V.
E como novas tecnologias trazem novos desafios, surgem as dúvidas: É possível ligar uma saída 3V3 em uma entrada 5V? Há problema em ligar um circuito 3V3 TTL em um circuito 3V3 CMOS? Como fazer essa ligação?
Já escrevemos sobre esse assunto faz algum tempo. Na época, tentamos descrever quais os níveis de tensões digitais de acordo com a tecnologia utilizada. Vale a leitura: Limiares das Lógicas dos Níveis de Baixa Tensão
Tensões Digitais de Entrada e Saída
Vamos começar relembrando alguns conceitos. Um semicondutor digital trabalha com valores como zeros e uns, e para esses valores foram adotados o padrão de 0V (ou GND) e VCC, respectivamente. No entanto, há infinitas possibilidades entre esses valores e é preciso saber como o circuito se comporta em uma situação intermediária.
Para as tensões digitais de entrada adota-se VIH (V Input High) para a menor tensão ainda considerada 1. De forma análoga, entende-se como VIL (V Input Low) a maior tensão ainda considerando o valor 0.
Da mesma forma, a saída também pode variar os níveis de tensões digitais. Quando um semicondutor pretende indicar 1, a tensão pode variar entre VCC e VOH (V Output High) e quando pretende indicar 0, a tensão pode variar entre VOL (V Output Low) e GND.
A faixa de tensão de entrada é sempre menos crítica que a faixa de tensão de saída, pois dessa forma a entrada de um semicondutor irá aceitar qualquer que seja a tensão de saída de outro semicondutor de mesmo tipo.
Uma outra característica é o nível de tensão intermediário entre VIL e VIH. Para um semicondutor padrão essa faixa de trabalho não é permitida, não podendo ter garantia de qual nível lógico ele irá entender.
Para as saídas, o fabricante sempre garante que nunca haverá uma tensão superior a VOL para a saída lógica 0, ou uma tensão inferior a VOH para a saída lógica 1.
Alguns dos semicondutores possuem a tecnologia Schmitt Trigger. Isso garante que tensões intermediárias serão considerados níveis lógicos estáveis, dependendo de onde tenha partido o sinal.
Diferentes Tecnologias
Existe um pouco mais além das tecnologias TTL e CMOS, como o LTTL (Low Power TTL), BiCMOS, LVC (Low Voltage CMOS), etc. No entanto, para nosso estudo, basta saber que valores de alimentação diferentes vão alterar os valores de limites de entrada e saída.
Dessa forma, podemos apresentar os valores de acordo com a tecnologia e tensão de alimentação da seguinte forma:
A primeira coisa que observamos é que, para a tecnologia CMOS, a tensão de VIH e VIL são sempre uma porcentagem da tensão de alimentação. Para a entrada ser considerada 1, a tensão mínima pode varia entre 65% e 70% da tensão de alimentação, e para a entrada ser considerada 0 a tensão máxima pode variar entre 30% e 35% da tensão de alimentação.
A tecnologia CMOS permite uma faixa de alimentação consideravelmente alta, normalmente variando entre 3V e 15V. Dessa forma, considerando os limites de 70% de VCC como mínimo para nível alto e 30% como máximo para nível baixo, temos uma tabela de valores considerados válidos.
| CMOS | VIL | VIH |
| VCC = 3V | 0,9V | 2,1V |
| VCC = 5V | 1,5V | 3,5V |
| VCC = 9V | 2,7V | 6,3V |
| VCC = 12V | 3,6V | 8,4V |
| VCC = 15V | 4,5V | 10,5V |
Para os níveis TTL, não se pode considerar os mesmos limites de 30% e 70%. Tanto para circuitos TTL de alimentação 5V quanto para alimentação de 3,3V, os níveis de entrada e saída são os mesmos. Isso garante que circuitos TTL alimentados por 3,3V podem ter suas saídas ligadas nas entradas de outros TTL de alimentação 5V. No entanto, o inverso não é verdadeiro.
Interligação entre circuitos
Vamos começar com a análise de elementos simples e bem conhecidos. Vamos imaginar que estamos desenvolvendo um shield e desejamos interligar a saída de um Arduino Duemilanove (ATmega328P), que possui a alimentação dos 5V da USB, e um CD4511 alimentado pelos mesmos 5V. Esse componente é um conversor de BCD para display de 7 segmentos, que é um circuito bastante comum.
Os níveis de tensão de saída do Arduino Duemilanove e os níveis de tensão de entrada do CD4511 são os seguintes:
| Dispositivo | Tensão | VOH (ATmega328P) | 4,2V | VOL (ATmega328P) | 0,9V | VIH (CD4511) | 3,5V | VIL (CD4511) | 1,5V | |||||||||||
| Dispositivo | Tensão | ||||||||||||||||||||
| VOH (ATmega328P) | 4,2V | ||||||||||||||||||||
| VOL (ATmega328P) | 0,9V | ||||||||||||||||||||
| VIH (CD4511) | 3,5V | ||||||||||||||||||||
| VIL (CD4511) | 1,5V |
No entanto, precisamos analisar o que aconteceria se ligássemos esse shield em um Arduino Due (SAM3X8E), que possui a alimentação de 3,3V. Se mantivermos nosso CD4511 nos 5V, as tensões digitais seriam as seguintes:
| Dispositivo | Tensão |
| VOH (SAM3X8E) | 2,3V |
| VOL (SAM3X8E) | 1,0V |
| VIH (CD4511) | 3,5V |
| VIL (CD4511) | 1,5V |
Nesta situação, apesar da tensão VOL atender com folga a tensão VIL, a saída VOH pode chegar a valores menores que o limite mínimo VIH. Dessa forma, há uma faixa de tensão que não estaria coberta e poderia causar um erro ou uma falha.
Casamento de Sinais – Buffer
Entendemos, então, quais são os níveis de tensão mínimos e máximos. Também encontramos uma situação de possível falha em um projeto. O que podemos fazer?
A primeira solução é a utilização de um buffer de sinal. Trata-se de um circuito semicondutor capaz de fazer o casamento de sinais de tensão diferentes, normalmente utilizados nesse tipo de aplicação. O mais conhecido deles é o 74HCT244.
Para uma alimentação de 5V, esse circuito possui um VIH e VIL típicos respectivamente de 1,6V e 1,2V. Isso seria suficiente para a correção do sinal entre o nosso Arduino Due e o CD4511.

Outro componente que se propõe a fazer esse trabalho é o SN74LVCC4245A, que não apenas faz a conversão de níveis de tensão como também possui o controle de direção.
Ele possui tensões de entrada e saída diferentes para as entradas e saídas A e B, conforme abaixo:
| Canal A | Canal B | ||
| VIH | VCCA = 5,0V VCCB = 3,3V | 2,0V | 2,0V |
| VCCA = 5,0V VCCB = 5,0V | 2,0V | 3,85V | |
| VIL | VCCA = 5,0V VCCB = 3,3V | 0,8V | 0,8V |
| VCCA = 5,0V VCCB = 5,0V | 0,8V | 1,65V | |
| VOH | VCCA = 5,0V VCCB = 3,3V | 3,76Vmin | 2,25Vmin |
| VCCA = 5,0V VCCB = 5,0V | 3,76Vmin | 3,76Vmin | |
| VOL | VCCA = 5,0V VCCB = 3,3V | 0,44V | 0,44V |
| VCCA = 5,0V VCCB = 5,0V | 0,44V | 0,44V |
Esta solução é muito indicada para sinais de alta velocidade de chaveamento (alta frequência), pois regeneram qualquer deformação do sinal. No entanto, agregam o custo de um componente extra no seu projeto.
Casamento de Sinais – Open Collector
Outra solução é a utilização de um buffer open-collector (ou open-drain, para saídas tipo FET). Dessa forma, a saída é sempre um coletor aberto (ou dreno aberto) que necessita de um resistor pull-up externo para definir o nível alto de tensão. Pode-se ligar qualquer nível de tensão, tendo como limite o VCE (ou VDS para o tipo FET) do transistor de saída. Esses componentes são comuns quando existe a necessidade de trabalhar com tensões digitais de saídas não usuais e muito elevadas.

Um semicondutor bastante popular para esse tipo de aplicação é o SN74141, que possui saídas do tipo open-collector e suporta uma tensão de VCE de 60V.
Casamento de Sinais – Divisor Resistivo
Para o caso da ligação de um circuito de mais alta tensão com um circuito de mais baixa tensão, existe a possibilidade do uso de um simples divisor de tensão. Essa é uma saída barata e frequentemente utilizada, no entanto, deve-se ter cuidado que a impedância de entrada do circuito de entrada seja elevada para não haver distorções no sinal. Valores menores de resistência podem ser aplicados para diminuir esse efeito, tomando cuidado com o limite de corrente de saída do dispositivo gerador de sinal.
| VO 5V | VI 3V3 | |
| VOH | 4,2V | 2,8V |
| VOL | 0,9V | 0,6V |
Conseguimos, dessa forma, diminuir a tensão máxima para a ligação em um circuito de 3,3V.
O mesmo princípio pode ser aplicado para circuitos de tensão menores, como 1,8V. No entanto deve-se tomar cuidado, pois esses circuitos tendem a deformar sinais de alta velocidade.
Casamento de Sinais – MosFET
Uma alternativa elegante é o uso de um transistor para o casamento dos sinais. Trata-se de um MosFET responsável por fazer o chaveamento do sinal de GND, sendo dos Pull-Ups a responsabilidade de manter as tensões para o nível alto. Essa solução é adequada para soluções de frequências moderadas. Este circuito é bastante popular para a comunicação I2C, uma vez que a comunicação é bidirecional.

Este circuito pode ser entendido das seguintes maneiras. Pode-se considerar um dispositivo com saída 3,3V conectado a um outro dispositivo de entrada 5V. Uma segunda alternativa é para o caso de um dispositivo de saída 5V se comunicando com um dispositivo de entrada 3,3V. Uma última possibilidade é um canal de comunicação bidirecional, como o I2C mencionado. Neste caso, ambos os lados possuem entradas ligadas a este circuito e apenas podem chavear um terra através de um dreno de um FET normalmente interno ao dispositivo. Para os três casos, a interpretação do circuito é a mesma.
Uma vez que o dispositivo ligado a TX-3.3V deseje enviar o sinal de 1, ele manterá a tensão em 3,3V. Dessa forma a queda de tensão entre GATE e Source será zero (VG-VS=0V) e nenhum chaveamento é feito no dreno. Assim, a tensão em TX-5V se mantém 5V. Caso o dispositivo em TX-3.3V envie o sinal 0, o source passa a ser ligado em GND. Dessa forma a queda de tensão no gate passa a ser significativa (VG-VS=3,3V) e o MosFET conduz levando GND ao terminal TX-5V, que terá 0 como esperado.
No sentido contrário, caso TX-5V queira enviar o sinal de 1, ele manterá os 5V. Neste caso, o TX-3.3V é uma entrada e manterá o pull-up de 3,3V, o que deixará a mesma queda de tensão de 0V entre GATE e SOURCE. No entanto, se TX-5V deseja enviar 0, este irá ligar o GND. Nessa situação, o diodo de proteção dentro do MosFET irá conduzir, fazendo com que TX-3.3V tenha a queda de tensão do diodo (VF) que normalmente é algo em torno de 0,7V, suficiente para o circuito ligado a TX-3.3V entender o sinal 0.

Casamento de Sinais – Diodo
Uma outra possibilidade para fazer o casamento de sinais é o uso de um diodo. No entanto, diversos circuitos podem ser empregados dessa forma, cada um com vantagens e desvantagens. Vamos analisar os principais deles.
Neste caso, o diodo irá garantir que a tensão não supere a tensão de alimentação fazendo uso de um resistor de proteção. Caso o TX-5V indique o sinal 0, este será ligado em GND. Como o diodo estará ligado reversamente, a impedância interna dele é muito maior que o resistor utilizado. Assim, a tensão em RX-3.3V será 0V. Caso TX-5V sinalize 1, este ligará 5V. Nesta condição a tensão no anodo do diodo é superior à tensão no catodo do diodo e este irá conduzir. Dessa forma, a tensão em RX-3.3V será a queda de tensão do diodo VZ (RX-3.3V=5V-3,3V-VF). Caso seja utilizado um diodo padrão (VF=0,7V), a tensão será 4,0V. Se utilizarmos um diodo Schottky (VF=0,3V), a tensão será de aproximadamente 3,6V. É importante observar o valor de tensão máximo que o IO suporta (Limiting Values ou Absolute Maximum Rating) indicado no Datasheet. Essa solução é melhor aplicada quando se faz o uso do diodo de proteção já presente dentro do componente (circuito de proteção contra descargas eletrostáticas), muito comum nos IOs de microcontroladores.

Outra solução possível é o chaveamento de GND. Neste caso, o diodo impede que a tensão mais alta (5V) chegue ao IO, mantendo este em 1 (3,3V) através de um resistor de pull-up. Quando a entrada é 0, o diodo conduz e a tensão sobre o IO é VF=0,7V, normalmente suficiente para ser considerado 0 lógico.
Por fim, outra solução bastante adotada é a utilização de um diodo zener. Neste caso, ele serve como limitador de tensão, mantendo o valor dentro dos limites do VCC. Para nosso caso, o zener 1N5518 manteria a tensão em 3,3V na entrada do IO quando o sinal 1 de 5V fosse aplicado.
Casamento de Sinais – 5V Tolerant
Outra alternativa é a utilização de semicondutores que possuam a tecnologia conhecida como 5V-Tolerant. Essa tecnologia permite a ligação de saídas digitais de 5V diretamente em entradas digitais de 3,3V sem a preocupação de danificar o circuito ou criar um ponto de estresses. Uma vez que a interligação entre componentes de diferentes alimentações tem se tornado comum, esse tipo de tecnologia é cada vez mais presente.
Um exemplo dessa tecnologia é o 74LCX11, que possui uma faixa de alimentação bem limitada (2,3V a 3,6V), mas que pode ter sinais de 5V ligados em suas entradas sem risco de danos.
Glossário
| BCD | Binary Coded Decimal – Codificação Binário Decimal |
| CMOS | Complementary Metal Oxide Semiconductor |
| BiCMOS | Bipolar CMOS |
| LVC | Low Voltage CMOS |
| GND | Ground – Terra, ou Zero-Volts |
| I2C | Inter Integrated Circuit |
| IO | Input Output – Entrada e Saída |
| TTL | Transistor Transistor Logic |
| LTTL | Low Power TTL |
| VIH | Voltage Input High – Tensão mínima de Entrada para Nível Alto |
| VIL | Voltage Input Low – Tensão máxima de Entrada para Nível Baixo |
| VOH | Voltage Output High – Tensão mínima de Saída para Nível Alto |
| VOL | Voltage Output Low – Tensão máxima de Saída para Nível Baixo |
| VCE | Voltage Collector Emitter – Tensão entre Coletor e Emissor |
| VZ | Voltage Zener – Tensão de Zener ou Tensão Reversa |
| VF | Voltage Forward – Tensão Direta |
| USB | Universal Serial Bus |
Conclusão
No projeto de sistemas eletrônicos digitais, é preciso sempre analisar as ligações entre os semicondutores. Pois a correta escolha dos níveis de tensão é importante para manter a confiabilidade dos sinais e o bom funcionamento dos sistemas digitais. As soluções devem ser escolhidas sempre levando em consideração a velocidade de comutação e tensão de alimentação, sem esquecer do custo e simplicidade no funcionamento.
Esperamos que os conceitos desenvolvidos aqui não apenas ajudem na interconexão entre dispositivos digitais, mas abra caminho para a compreensão e a elaboração de esquemas de interligação entre o ambiente digital e analógico. Logo mais, artigos com esse foco serão publicados no Embarcados.
Referência
https://www.ti.com/lit/an/scea035a/scea035a.pdf
https://www.ti.com/lit/an/scea046/scea046.pdf
https://www.epsem.upc.edu/~jesusv/Families_Logiques.PDF
https://mti.kvk.uni-obuda.hu/adat/tananyag/digit2/angolkepzes/dt_2_lecture09w.pdf
https://www.fairchildsemi.com/ds/CD/CD4013BC.pdf
https://www.atmel.com/Images/doc8161.pdf
https://www.ti.com/lit/ds/symlink/cd4511b.pdf
https://www.atmel.com/images/doc11057.pdf
https://www.nxp.com/documents/data_sheet/74HC_HCT244.pdf
https://www.ti.com/lit/ds/symlink/sn74lvcc4245a.pdf
https://www.ti.com/lit/an/slva485/slva485.pdf
https://neon1.net/nixieclock/sn74141.pdf
https://www.adafruit.com/datasheets/an97055.pdf
https://www.sm0vpo.com/_pdf/74_TTL/74LCX11.pdf
https://www.fairchildsemi.com/an/AN/AN-248.pdf









Olá, Francesco:
Para casar uma saida de 3.3v para 5v· não pode ser usado um transistor bipolar (ex. 2n2222) com o coletor a vcc e a saida no emissor com um resistor pulldown entre emissor e terra. Alem disso, entre emissor e entrada do sinal um resistor limitador de corrente?
Parabéns. Muito completo e de suma importância.
Parabéns pelo artigo Francesco, muito bom, creio que vai ajudar muitos profissionais e estudantes da área a ter uma referência para seus projetos quando esbarrarem nessa questão de diferença de sinais lógicos.
O artigo é bem importante e interessante para o público de sistemas embarcados. Eu acho que a conclusão poderia ser um pouco mais elaborada, por exemplo: Para sistemas com várias linhas que precisam de conversão de tensão e com alta velocidade velocidade de comutação, a conversão de tensão por buffer é a opção mais indicada. Já em sistemas mais simples com poucos sinais e baixa velocidade de comutação, pode-se empregar o diodo ou divisor resistivo(se circuito alvo apresentar alta resistência de entrada). Para sistemas sistemas simples e com velocidade moderada de comutação casamento com MOSFET seria mais adequado… Acho que… Leia mais »
Olá Fábio, Muito obrigado pelo seu feedback. Ele é importante para sempre melhorarmos nosso trabalho. Concordo com você, realmente a conclusão não fez o correto fechamento do texto. Não poderia concluir apenas indicando que determinada tecnologia é mais indicada para cada situação, pois não poderia polarizar em soluções únicas. Em vez disso, acho melhor as alterações do texto para agregar seus comentários e deixar a conclusão mais simplificada. A revisão desse artigo foi feita muito rápida, então alguns pontos (como o ‘k’atodo) acabou passando durante a tradução de artigos de inglês para português de algumas das referências. Bem apontado. Quanto… Leia mais »
excelente artigo, totalmente condizente com os desafios que encontramos para interfacear dispositivos com várias tecnologias de alimentação! Parabéns.
Olá Mario,
Obrigado pelo retorno.
Excelente artigo e muito completo! Valeu :_)
Onde tem a definição de cada Sigla constante nas tabelas acima?
Gostaria de poder interpretar melhor os limites de tensões nelas apresentados.
Grato pela atenção.
Olá Euclides,
Quais as siglas que você se refere? Vou adicionar um pequeno glossário no final do artigo para facilitar a compreensão.
Excelente o seu artigo ! Era tudo o que eu estava precisando, para conectar uma central de controle remoto de 12V a um Arduino de 5V. Show de bola ! Muito obrigado pela iniciativa e desprendimento de elaborar um trabalho tão completo.