Tout sur l'USB
Au cours des six mois qui se sont écoulés après la publication du dernier article sur l'USB-C, j'ai réfléchi à de nombreuses façons d'améliorer ces articles. Il est bien sûr normal d’éprouver un tel sentiment, voire même attendu. Je crois maintenant qu'il y a quelques lacunes que je pourrais combler. Par exemple, je n'ai pas fourni suffisamment d'exemples de circuits, et parfois un schéma peut mieux transmettre les choses que mille mots.
Réparons ça ! Je vais vous donner des schémas pour les types de périphériques USB-C que vous souhaiterez probablement construire. Je partagerai également un tas de références de circuits intégrés dans cet article, mais je n'ai bien sûr pas de collection exhaustive – si vous trouvez d'autres circuits intégrés intéressants qui fonctionnent à des fins USB-C et qui ne sont pas mentionnés ici, veuillez le faire. faites-le nous savoir dans les commentaires !
Nous avons vu le premier exemple de circuit dans le premier article : un port USB-C côté appareil (« orienté en amont ») qui prend en charge l'USB 2.0 et 5 V d'alimentation. Vous devez disposer des résistances 5,1 K, une résistance par broche, et n'oubliez pas de joindre les deux broches de données – utilisez des vias si nécessaire. Si vous souhaitez déterminer la quantité de courant disponible, vous pouvez également connecter des CAN ou des comparateurs aux deux broches CC ensemble, bien que le plus souvent, votre appareil soit suffisamment faible en consommation pour qu'il n'y ait aucune raison de s'en soucier.
Désormais, si vous souhaitez réaliser un appareil avec une prise USB-C, le câblage est le même. La seule différence est qu'il vous suffit de remplir l'un des menus déroulants CC et de câbler une paire de broches D+/D- au lieu des deux paires. Rien de grave ne risque de se produire dans la pratique si vous câblez la deuxième paire de broches USB 2.0, c'est tout simplement grossier par rapport à la norme ; il était en conflit avec un certain type de ports et de câbles (ceux VirtualLink) qui ne sont plus vendus.
Cependant, si vous connectez des pull-downs 5,1 K aux deux broches CC, vous créerez accidentellement un accessoire de pirate informatique : un adaptateur de mode débogage, quelque chose qui vous aidera à obtenir des signaux supplémentaires de certains ports USB-C. Par exemple, sur l'ordinateur portable Framework, une carte équipée d'une prise USB-C avec les deux menus déroulants fera passer un port USB-C en mode débogage et exposera la connexion EC UART sur les broches SBU. À moins que vous ne fabriquiez un tel accessoire de débogage, vous ne devez remplir qu'un seul des menus déroulants et câbler les broches de données USB 2.0 en conséquence.
Et si vous vouliez créer un port hôte ? D'un côté, c'est plus facile, car vous n'avez pas nécessairement besoin de faire de mesures ADC. Au lieu de cela, vous ajoutez des pull-ups, des valeurs différentes pour différentes quantités de courant disponible. Tous les appareils ne vérifient pas la présence du pull-up, mais les téléphones le font, donc si vous fabriquez un chargeur USB-C de fortune, un téléphone ou un ordinateur portable pourrait ne pas le reconnaître comme un moyen valable de charger si vous n'avez pas le pull-up. -UPS. Cela ne coûte pas non plus cher de les ajouter !
Plus important encore, vous souhaiterez peut-être contrôler VBUS, en l'allumant uniquement après avoir détecté un pull-down sur l'une des broches CC. Vous n'aurez pas nécessairement de problème si vous ne le faites pas, mais cela couvre certains cas extrêmes importants, comme quelqu'un qui branche un câble USB-A vers USB-C sur votre port !
Je n'ai jamais fait ce circuit, mais à mon avis, il devrait suffire d'utiliser deux FET, un par broche CC, tous deux mis en parallèle. Ce circuit peut avoir des cas extrêmes — des améliorations sont les bienvenues ! D'un autre côté, j'ai utilisé à plusieurs reprises des ports USB-C équipés d'un pull-down comme ports hôtes, ce n'est donc certainement pas une exigence stricte et vous n'avez pas toujours besoin de diviser votre collection FET.
Au total, il y a deux choses que vous souhaitez faire si vous construisez un port hôte, et aucune des deux n'est tout à fait requise. De plus, si vous souhaitez rendre les circuits plus complexes, ou peut-être même créer un port à double rôle, il existe des circuits intégrés qui vous aident avec cette partie de l'USB-C !
Par exemple, prenez le WUSB3801. Il prend en charge la détection de la source et du récepteur, contient tous les pull-ups et pull-ups nécessaires et peut même créer des ports à double rôle, ce qui vous permet de créer tout type de port d'alimentation 5 V. Il peut afficher l'état du port avec quelques GPIO, ou vous pouvez le connecter à votre microcontrôleur via I2C, et il possède même une broche d'identification afin que vous puissiez l'utiliser pour remplacer complètement un port MicroUSB par un port USB-C ! Le WUSB3801 est suffisamment petit, suffisamment soudable et suffisamment polyvalent. Par exemple, sur le serveur Hackaday Discord, quelqu'un a construit un circuit WUSB3801 qui limite le courant d'un chargeur Li-ion selon que le port USB-C connecté peut fournir ou non 3 ampères.