Pinos UART para MCU não energizado?

11

Estou usando um IC USB-UART com um MCU, que é alimentado por uma bateria.

O USB-UART IC é alimentado por um conector USB, não pela bateria, para que eu não precise abrir um console sempre que o interruptor for ligado e desligado.

esquemático

simular este circuito - esquemático criado usando o CircuitLab

edit: Não desenhei na figura, mas o IC possui um regulador interno de 3.3V e todos os VDDs estão no nível de 3.3V quando o interruptor está ligado.

Agora estou preocupado quando o USB está conectado e o interruptor ainda está desligado.

O documento do MCU diz que a classificação máxima de cada pino de entrada é VDD + 0,3, que seria de 0,3 V quando o MCU não está ligado.

Se o par TX / RX no lado USB-UART for alto, ele destruirá os pinos no lado do MCU?

Nesse caso, o que preciso entre os pares TX / RX?

Inbae Jeong
fonte
@Toor O que significa "tbh"?
22719 Elliot Alderson #:
1
Provavelmente, tudo ficará bem. Os portões devem poder tolerar até sua tensão operacional máxima de qualquer maneira, pois precisam ser capazes de fazer isso para funcionar na extremidade superior da faixa de tensão de alimentação. O Vdd + 0.3 refere-se aos diodos de fixação ESD no MCU, mas se o MCU estiver sem energia, esses diodos não terão um trilho para fixação. Se um MCU com capacidade de 5V estivesse sendo desligado 3V e você aplicasse 5V a uma E / S, esses diodos tentariam prender o trilho de 3,3V, mas isso não significa que ele explodiria sem eles a 5V. Você pode usar resistores em série para limitar a corrente através dos referidos diodos.
DKNguyen
3
@ ElliotAlderson "tbh" é um internet-ism comum para "ser honesto".
Hearth
7
@Toor Os diodos criarão um trilho de força; consulte youtube.com/watch?v=2yFh7Vv0Paw .
CL.
5
Isso pode realmente ser um problema - não apenas o risco teórico de dano, mas há partes que não farão uma energia limpa na redefinição se anteriormente fossem "sorta" alimentadas por E / S antes da aplicação da energia real. Se você encontrar a rede de energia da placa sendo puxada para .5v - .6v quando "desligada", pode estar em um problema no território.
21919 Chris Stratton

Respostas:

14

Depende do MCU, mas na maioria dos casos ele liga o MCU e, possivelmente, o restante da placa através do MCU. O MCU tentará executar e fazer coisas estranhas. Sua diretoria fará coisas mais estranhas. Se sua placa consumir corrente suficiente, danificará esse pino no MCU.

Você precisa providenciar para que o sinal UART permaneça em 0V quando o MCU estiver desligado. Se o chip UART (ou UART) que você está usando não tiver um pino de habilitação (os chips UART USB com os quais trabalhei podem ser configurados exatamente para o caso que você está descrevendo), AND AND UART emitirá com o VCC do microprocessador.

TimWescott
fonte
5

A solução pode ser tão simples quanto uma NMOS entre o pino TX do USB-UART (dreno) e o pino RX do MCU (fonte), com a porta conectada ao MCU VDD.

Isso significa que o USB-UART só poderá acionar até 3,3 V, menos a tensão limite do transistor. Você terá que verificar se isso ainda é suficiente para satisfazer o V_IH do seu MCU.

Sou cético em relação a soluções que envolvem um portão lógico alimentado (indiretamente) pelo VBUS. Desde que o portão lógico conduz a entrada do MCU alta, o VCC do MCU pode não cair o suficiente para desligar o driver TX. Com a solução NMOS, o pino TX só pode ser conduzido a uma tensão mais baixa que o VCC, tornando esse tipo de feedback impossível.

A propósito, você também deve considerar a direção inversa: se o MCU estiver ligado, mas o USB-UART não estiver, você deverá garantir que não fornece acidentalmente alguma energia ao USB-UART, drenando o seu bateria mais rápido do que o esperado. Uma solução apenas de software deve ser suficiente para isso.

wrtlprnft
fonte
2

Eu tenho uma solução completamente diferente, que, no entanto, depende de qual chip USB você usa.

Alguns deles têm diferentes VBUS e VCCIO. Nesse caso, você poderá alimentar a parte IO desse chip junto com o uC.

glglgl
fonte
1
É uma boa idéia, mas não deixe de ler atentamente a folha de dados do transceptor USB. Alguns ICs terão outras falhas se uma fonte de alimentação não for aplicada. A seção Absloute Maximum Ratings no início da folha de dados deve cobrir isso.
jherbold
1

A solução fácil é colocar alguns resistores entre os pinos de E / S. Isso limitará o fluxo de corrente nos pinos para que o transceptor não possa alimentar o uC. O valor do resistor é um equilíbrio entre limitar a largura de banda entre os chips e limitar a corrente.

Buffers lógicos alimentados pelo USB, mas com saídas ativadas pelo uC. Isso faz o mesmo que a saída do transceptor habilita a outra resposta.

Existe uma vantagem em desligar o uC quando estiver conectado ao computador? Caso contrário, você pode alimentar o uC a partir da alimentação USB de 5 V. Maneiras de fazer isso são:

  1. Uma chave SPDT que seleciona a energia USB quando a bateria está desligada. Substitui a chave SPST no seu diagrama de circuitos.
  2. Um diodo, diodos, um circuito integrado de diodo ideal ou MOSFETs controlados pelo uC para selecionar a energia USB quando disponível. Agora você precisa considerar o que acontece quando o interruptor da bateria está fechado e o USB está conectado. Troca descontrolada de bateria raramente é uma coisa boa.
jherbold
fonte
7
Você pode pensar assim - mas somente os resistores não funcionam . Mesmo um resistor de grandes séries na linha de recebimento UART não o fará (embora possa evitar danos). O problema é que, até você exceder algumas tensões de limiar muito baixas, nada atrai corrente, e mesmo assim não há muito sem um relógio. Portanto, mesmo com resistores em série, o trilho de potência da placa pode ser puxado até o ponto em que as coisas começam a ter um estado inadequado, quando a energia na redefinição não é mais confiável.
Chris Stratton
Acordado. Obrigado por fornecer mais detalhes à minha resposta. Eu esperava fornecer uma solução rápida de protótipo e deveria ter dito isso. Não é uma solução à prova de idiotas e só funcionará se a corrente de inicialização do uC for alta o suficiente para criar uma queda de tensão suficiente nos resistores para manter a tensão no uC baixa o suficiente para que não desmaie.
jherbold
0

Você já pensou se alguns buffers de três estados seriam uma boa solução? Você pode amarrar o pino de habilitação ao seu comutador e garantir que a polaridade de tx para rx esteja correta, o que efetivamente oferece a proteção que você está solicitando.

Jorge D
fonte