3.8. Conversão de nível¶
Um pino GPIO na câmera fornece cerca de 3,3 V quando em nível alto. Um dispositivo do outro lado pode operar em 5 V (microcontroladores mais antigos, muitas placas de sensores) ou 1,8 V (sensores mais novos, alguns barramentos chip-a-chip). Conectar os dois diretamente às vezes é seguro e às vezes destrutivo; a conversão de nível é o circuito que faz essa ponte de forma confiável.
3.8.1. Por que acionar diretamente entre tensões diferentes pode danificar um pino¶
Cada pad de E/S de um chip possui um par de diodos de proteção embutidos: um do pino para o terra, outro do pino para o trilho de alimentação do chip. Eles estão lá para absorver a descarga eletrostática (ESD) – um pico breve de alta tensão proveniente de eletricidade estática que pode atingir um pino quando a placa é manuseada. Uma pessoa que andou sobre um carpete pode acumular vários quilovolts de estática; tocar no pino errado transfere essa carga para o chip em nanossegundos. O diodo de proteção superior fica polarizado diretamente e desvia o pulso com segurança para o trilho de alimentação antes que ele alcance os transistores dentro do chip.
Quando um sinal de 5 V é aplicado continuamente a um pino de 3,3 V que não é tolerante a 5 V, o diodo de proteção superior conduz para sempre. Os diodos são dimensionados para pulsos curtos de ESD, não para corrente em regime permanente; o trilho de alimentação começa a subir acima de 3,3 V, o diodo aquece e o pino ou o regulador de tensão interno do chip falha.
Pinos tolerantes a 5 V usam um estágio de entrada diferente – o diodo superior vai para um trilho mais alto ou está ausente – então aplicar 5 V é inofensivo. Se os pinos de uma placa são ou não tolerantes a 5 V varia conforme a placa; consulte a referência rápida da OpenMV Cam.
A outra direção tem seu próprio problema. Um GPIO de 3,3 V acionando em nível alto produz ~3,3 V no fio. Um receptor de 5 V que precisa de 0.7 × Vcc para reconhecer o nível alto vê seu limiar em 3,5 V; 3,3 V pode ser lido como baixo ou como ambíguo. Mesmo sem danos, o sinal não funciona de forma confiável.
Um conversor de nível resolve ambas as direções.
3.8.2. O N-MOSFET como chave¶
Os circuitos abaixo usam um único MOSFET de canal N. Ele tem três pinos – gate, drain e source – e se comporta como uma chave controlada eletricamente.
A entrada de controle é a tensão entre o gate e o source, escrita Vgs (tensão gate-source):
Vgs = (gate voltage) - (source voltage)
O MOSFET se importa com essa diferença, não com a tensão absoluta em qualquer um dos pinos isoladamente. Seu comportamento decorre de Vgs:
Quando
Vgsestá acima da tensão de limiar do MOSFET (tipicamente em torno de 1 V para uma peça logic-level de pequeno sinal), o transistor liga e a corrente flui livremente do drain para o source.Quando
Vgsestá em ou abaixo de 0, o transistor desliga e quase nenhuma corrente flui do drain para o source.
O caminho drain-source é o caminho de corrente chaveado; Vgs abre ou fecha essa chave.
Um N-MOSFET também possui um diodo de corpo entre drain e source que conduz quando o drain é puxado abaixo do source por mais de ~0,6 V. O diodo é um efeito colateral da fabricação; o conversor bidirecional abaixo o utiliza de propósito.
3.8.2.1. Regras de ligação¶
Um N-MOSFET não é um dispositivo simétrico de três terminais. O diodo de corpo aponta do source (anodo) para o drain (catodo), e Vgs é o que controla o canal. Duas regras decorrem disso e devem valer para todo circuito de chave com N-MOSFET:
O source vai para a tensão mais baixa; o drain vai para a mais alta. Com o drain no trilho mais alto, o diodo de corpo fica polarizado reversamente e não faz nada. Inverta-os e o diodo de corpo fica polarizado diretamente o tempo todo: a corrente flui do source agora mais alto, através do diodo de corpo, para o drain agora mais baixo, independentemente do que o gate esteja fazendo. O MOSFET deixa de ser uma chave – ele tem fuga contínua, o sinal não pode ser desligado e o dispositivo frequentemente superaquece e falha.
O gate é ligado ao trilho de tensão do source. Manter o gate no trilho em que o source repousa em repouso faz
Vgs = 0em idle, bem abaixo do limiar; o MOSFET permanece firmemente desligado até que algo acione o gate acima do source (o circuito unidirecional abaixo) ou puxe o source abaixo do gate (o circuito bidirecional). Deixe o gate flutuando em outro lugar e o estado desligado deixa de ser definido – ruído, fuga ou capacitância parasita podem fazerVgsderivar acima do limiar e ligar o MOSFET aleatoriamente.
Inverter qualquer uma das regras transforma o conversor de nível em um caminho com fuga e não confiável. Ambos os circuitos conversores abaixo seguem essas regras: source no lado mais baixo, drain no mais alto, gate ligado ou acionado a partir do trilho do source.
3.8.3. Unidirecional 3,3 V → 5 V¶
O conversor de nível mais simples empurra um sinal unidirecional do GPIO da câmera para uma entrada de 5 V. Um único N-MOSFET mais dois resistores fazem o trabalho.
Um N-MOSFET converte o nível (e inverte) de um sinal de 3,3 V para uma saída de 5 V.¶
Quando o GPIO aciona em nível alto (3,3 V no gate), Vgs está acima do limiar e o MOSFET liga; o drain é puxado para baixo até ~0 V. Quando o GPIO aciona em nível baixo (0 V no gate), o MOSFET está desligado e o pull-up de 10 kΩ leva o drain a 5 V.
A saída é o inverso da entrada. O software pode reverter o sinal (escrever 0 para “saída de 5 V alta”), ou pode-se encadear dois estágios para obter um sinal não invertido, com o dobro de componentes.
3.8.4. Bidirecional com um único N-MOSFET¶
Para uma linha que precisa ser acionada a partir de qualquer lado – um barramento compartilhado em que cada extremidade pode puxar a linha para baixo – o circuito padrão é um único N-MOSFET por linha, com um pull-up para a alimentação de cada lado.
Um único N-MOSFET faz a ponte entre uma linha de 3,3 V e uma de 5 V; cada lado tem seu próprio pull-up.¶
O gate é ligado à alimentação de 3,3 V, de modo que o comportamento do MOSFET depende de qual lado está acionando:
Ambos os lados em idle. O source fica em 3,3 V via o pull-up da esquerda; o gate está em 3,3 V;
Vgs = 0; o MOSFET está desligado. O lado de 5 V flutua para 5 V via o pull-up da direita. Ambos os lados leem nível alto.O lado de 3,3 V puxa para baixo. O source cai para 0 V;
Vgssobe acima do limiar; o MOSFET liga e conduz de source para drain. O lado de 5 V é puxado para baixo através do transistor.O lado de 5 V puxa para baixo. O drain cai para 0 V; o diodo de corpo do MOSFET (drain para source) fica polarizado diretamente e conduz; o source (lado de 3,3 V) é puxado para baixo até cerca de 0,6 V.
Vgsentão excede o limiar e o MOSFET liga totalmente, levando ambos os lados a nível baixo.
O BSS138 é o N-MOSFET padrão para esse esquema; N-MOSFETs logic-level de pequeno sinal com tensões de limiar de gate semelhantes se comportam todos da mesma forma aqui.