J'utilise un IC USB-UART avec un MCU, qui est alimenté par une batterie.
L'IC USB-UART est alimenté par le connecteur USB, pas par la batterie, de sorte que je n'ai pas besoin d'ouvrir une console à chaque fois que l'interrupteur s'éteint et se rallume.
simuler ce circuit - Schéma créé à l'aide de CircuitLab
edit: Je ne l'ai pas dessiné sur la figure mais le CI a un régulateur interne de 3,3 V et chaque VDD est au niveau de 3,3 V lorsque le commutateur est activé.
Maintenant, je m'inquiète quand l'USB est branché et que l'interrupteur est toujours éteint.
Le document MCU indique que la valeur nominale maximale de chaque broche d'entrée est VDD + 0,3, ce qui serait de 0,3 V lorsque le MCU n'est pas alimenté.
Si la paire TX / RX du côté USB-UART devient élevée, cela détruira-t-il les broches du côté MCU?
Si oui, de quoi ai-je besoin entre les paires TX / RX?
la source
Réponses:
Cela dépend du MCU, mais dans la plupart des cas, il alimentera le MCU, et peut-être le reste de la carte via le MCU. Le MCU essaiera de fonctionner et fera des choses étranges. Votre planche fera des choses bizarres. Si votre carte consomme suffisamment de courant, cela endommagera cette broche du MCU.
Vous devez vous assurer que le signal UART reste à 0 V lorsque le MCU est éteint. Si la puce UART (ou UART) que vous utilisez n'a pas de broche d'activation (les puces UART USB avec lesquelles j'ai travaillé peuvent être configurées exactement pour le cas que vous décrivez), alors ET les sorties UART avec le VCC du microprocesseur.
la source
La solution pourrait être aussi simple qu'un NMOS entre la broche TX de l'USB-UART (drain) et la broche RX du MCU (source), avec la porte connectée au MCU VDD.
Cela signifie que l'USB-UART ne pourra piloter que 3,3 V moins la tension de seuil du transistor. Vous devrez vérifier si cela est encore suffisant pour satisfaire le V_IH de votre MCU.
Je suis sceptique quant aux solutions qui impliquent une porte logique alimentée (indirectement) par VBUS. Tant que la porte logique entraîne l'entrée MCU à un niveau élevé, le MCU VCC peut ne pas descendre suffisamment loin pour désactiver le pilote TX. Avec la solution NMOS, la broche TX ne peut être entraînée qu'à une tension inférieure à VCC, ce qui rend ce type de rétroaction impossible.
Soit dit en passant, vous devriez également considérer la direction inverse: si le MCU est alimenté, mais que l'USB-UART ne l'est pas, vous voudrez vous assurer que vous ne fournissez pas accidentellement de l'alimentation à l'USB-UART, vidant votre batterie plus rapide que prévu. Une solution logicielle devrait suffire pour cela.
la source
J'ai une solution complètement différente, qui dépend cependant de la puce USB que vous utilisez.
Certains d'entre eux ont différents VBUS et VCCIO. Dans ce cas, vous pourriez être en mesure d'alimenter la partie IO de cette puce avec l'UC.
la source
La solution la plus simple consiste à placer des résistances entre les broches d'E / S. Cela limitera le flux de courant dans les broches afin que l'émetteur-récepteur ne puisse pas alimenter l'uC. La valeur de la résistance est un équilibre entre la limitation de la bande passante entre les puces et la limitation du courant.
Tampons logiques alimentés par l'USB mais avec des sorties activées par l'UC. Cela fait la même chose que l'activation de la sortie de l'émetteur-récepteur de l'autre réponse.
Y a-t-il un avantage à désactiver l'UC lorsqu'il est connecté à l'ordinateur? Sinon, vous pouvez alimenter l'uC à partir d'une alimentation USB 5 V. Les façons de procéder sont les suivantes:
la source
Avez-vous pensé si un couple de tampons à trois états serait une bonne solution? Vous pouvez attacher la broche d'activation à votre commutateur, puis vous assurer que la polarité de tx à rx est correcte, ce qui vous donne effectivement la protection que vous demandez.
la source