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