Broches UART à MCU non alimenté?

11

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.

schématique

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?

Inbae Jeong
la source
@Toor Que signifie "tbh"?
Elliot Alderson
1
Les portails devraient de toute façon pouvoir tolérer jusqu'à leur tension de fonctionnement maximale, car ils doivent pouvoir le faire pour fonctionner à l'extrémité supérieure de leur plage de tension d'alimentation. Le Vdd + 0,3 fait référence aux diodes de serrage ESD dans le MCU, mais si le MCU n'est pas alimenté, ces diodes n'ont pas de rail sur lequel serrer. Si un MCU compatible 5V était mis hors tension 3V et que vous appliquiez 5V à une E / S, ces diodes essaieraient de se fixer au rail 3,3V, mais cela ne signifie pas qu'il soufflerait sans eux à 5V. Vous pouvez utiliser des résistances série pour limiter le courant à travers lesdites diodes.
DKNguyen
3
@ElliotAlderson "tbh" est un Internet-isme commun pour "pour être honnête".
Foyer
7
@Toor Les diodes créeront un rail d'alimentation; voir youtube.com/watch?v=2yFh7Vv0Paw .
CL.
5
Cela peut en effet être un problème - non seulement le risque théorique de dommages, mais il y a des pièces qui ne feront pas une réinitialisation de l'alimentation propre si elles étaient auparavant "sorta" alimentées par des E / S avant que la puissance réelle soit appliquée. Si vous trouvez que le filet d'alimentation de la carte est tiré à .5v - .6v lorsqu'il est "éteint", vous risquez d'être en difficulté.
Chris Stratton

Réponses:

14

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.

TimWescott
la source
5

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.

wrtlprnft
la source
2

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.

glglgl
la source
1
C'est une bonne idée, mais assurez-vous de lire attentivement la fiche technique de l'émetteur-récepteur USB. Certains circuits intégrés se verrouillent ou ont d'autres défaillances si aucune alimentation n'est appliquée. La section Absloute Maximum Ratings au début de la fiche technique devrait couvrir cela.
jherbold
1

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:

  1. Un commutateur SPDT qui sélectionne l'alimentation USB lorsque la batterie est éteinte. Remplace le commutateur SPST dans votre schéma de circuit.
  2. Une diode, des diodes, un circuit intégré à diode idéal ou des MOSFET contrôlés par l'UC pour sélectionner l'alimentation USB lorsqu'elle est disponible. Vous devez maintenant considérer ce qui se passe lorsque le coupe-batterie est fermé et que l'USB est connecté. Un changement de batterie incontrôlé est rarement une bonne chose.
jherbold
la source
7
Vous pourriez le penser - mais les résistances seules ne fonctionnent pas réellement . Même une grande résistance série sur la ligne de réception UART ne le fera pas (bien qu'elle puisse éviter des dommages). Le problème est que jusqu'à ce que vous dépassiez des tensions de seuil très basses, rien ne tire vraiment de courant, et même pas beaucoup sans horloge. Ainsi, même avec des résistances en série, le rail d'alimentation de la carte peut être tiré au point où les choses commencent tout juste à avoir un état inapproprié, auquel point la réinitialisation de l'alimentation n'est plus fiable.
Chris Stratton
D'accord. Merci d'avoir fourni plus de détails à ma réponse. J'espérais fournir une solution prototype rapide et j'aurais dû le dire. Ce n'est pas une solution à toute épreuve et ne fonctionnera que si le courant de démarrage uC est suffisamment élevé pour créer suffisamment de chute de tension sur les résistances pour maintenir la tension à l'uC suffisamment basse pour qu'elle ne se décolore pas.
jherbold
0

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.

Jorge D
la source