J'ai un périphérique USB pleine vitesse pour lequel je veux fournir 2 ports - un chacun aux extrémités opposées du boîtier. C'est ainsi que le câble peut être connecté à l'endroit le plus pratique. Mon MCU (atmega32u4) n'a qu'une seule interface, donc les ports physiques seront partagés, mais un seul doit être branché à la fois.
Bien sûr, on ne peut pas faire confiance aux utilisateurs pour ne pas brancher les deux côtés à la fois. Comment se protéger contre cela?
Idées que j'ai trouvées:
- Câblez-les simplement "en l'état" et espérez que l'hôte pourra gérer les broches D + / D- jointes
- Porte NAND avec broches 5V séparées en entrée, sortie vers un MOSFET qui déconnecte Vcc lorsque les deux sont branchés.
La deuxième option semble-t-elle raisonnable ou une solution plus complexe est-elle nécessaire?
protection
usb-device
monty
la source
la source
Réponses:
Comme indiqué, vous ne pouvez pas connecter directement deux hôtes à un appareil - donc si vous les câbliez simplement et que quelqu'un le connectait aux deux extrémités, vous auriez un problème.
Cependant, vous avez également un problème si une seule extrémité est branchée. L'USB, en particulier le mode haute vitesse (480 Mbps), est une impédance contrôlée. Si vous câblez les deux lignes de données des connecteurs ensemble, vous vous retrouvez avec ce qui est connu comme un stub dans la conception haute fréquence. Le câble allant au connecteur inutilisé dégradera les performances du connecteur actif.
Pour ce faire correctement, vous voulez un CI multiplexeur. Vous pouvez acheter des multiplexeurs USB 2.0 dédiés spécialement conçus pour ce type d'application - quelque chose comme le TS3USB30 . Cela vous permettrait de connecter les lignes de données des deux ports aux entrées mux et de connecter la sortie à votre appareil en interne. Le multiplexeur déconnectera le connecteur inutilisé qui déconnectera les tronçons de la ligne de transmission.
Pour l'alimentation, j'utiliserais probablement un multiplexeur de puissance tel qu'un circuit de diode OR-ing. La ligne VBUS de l'un des ports (avant le multiplexeur de puissance) peut ensuite être utilisée comme entrée pour le multiplexeur de données.
La masse serait commune (connectée) entre les deux ports USB et votre appareil.
la source
Le multiplexeur tel que suggéré par Tom Carpenter est une bonne solution.
Mais pour l'USB pleine vitesse (12 Mbps), les stubs dans les signaux ne sont pas particulièrement importants. Si la distance entre les extrémités du talon reste inférieure à 1 / 10e de la longueur d'onde, c'est-à-dire inférieure à ~ 2 mètres, les réflexions ne déforment pas beaucoup la forme d'onde.
De plus, les niveaux de tension sur les broches D + et D- resteront dans la plage acceptable, il n'y a donc pas beaucoup de risques de dommages électroniques à l'un ou l'autre hôte.
Le principal problème qui reste est que si vous connectez les broches + 5V des deux hôtes ensemble, il pourrait y avoir de grands courants impliqués. Vous pouvez utiliser une diode provenant de la broche + 5 V de chaque connecteur USB pour ne laisser entrer que du courant, jamais en sortir.
la source
La conception électronique paresseuse consisterait simplement à utiliser un commutateur multi-connecteur physique pour choisir celui qui est utilisé.
Notez que cela aurait l'avantage supplémentaire de pouvoir les laisser tous les deux branchés et d'utiliser le commutateur pour sélectionner l'entrée à utiliser.
la source
Il n'y a aucun moyen compatible USB de le faire. L'USB n'est pas conçu pour être partagé entre deux hôtes et tenter de le faire entraînera des situations potentiellement désastreuses.
Au mieux, vous pouvez utiliser un multiplexeur USB ou un commutateur IC, avec GPIO pour déterminer quel connecteur est connecté. Vous devrez décider quelle connexion USB a la priorité, car les deux ne peuvent pas être connectées à votre interface USB en même temps.
Ou regardez des alternatives. Demandez à un ordinateur de communiquer avec l'autre. Ou utilisez Bluetooth ou Wi-Fi ou un autre type de connexion.
la source
J'ai une tablette Wacom avec cette fonctionnalité. Ils gèrent le problème que vous décrivez en utilisant un verrouillage mécanique.
Il y a un curseur en plastique qui bloque un port ou l'autre, selon sa position.
la source
Il serait peut-être plus facile de laisser le connecteur USB d'un côté du boîtier et de dupliquer et / ou de déplacer symétriquement tous les autres éléments orientés utilisateur. Ensuite, le boîtier peut être tourné de sorte que le port USB soit face au connecteur, tandis que tous les autres éléments sont toujours facilement accessibles.
Une autre option consiste à localiser les deux ports d'un côté du boîtier (aux extrémités opposées) et à ajouter un talon coulissant à l'intérieur du boîtier que l'utilisateur peut déplacer pour ouvrir un port ou l'autre. L'USB 12 MHz a de bonnes chances de fonctionner avec un port supplémentaire déconnecté qui lui est attaché.
la source