Au cours des six mois qui se sont écoulés depuis la publication du dernier article sur l’USB-C, j’ai imaginé de nombreuses façons d’améliorer ces articles. Il est bien sûr normal d’avoir un tel sentiment, attendu même. 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 êtes susceptible de vouloir construire. Je partagerai également un tas de numéros de pièces IC dans cet article, mais je n’ai pas une collection exhaustive, bien sûr – si vous trouvez d’autres IC sympas qui fonctionnent à des fins USB-C et 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 (« vers l’amont ») qui prend en charge USB 2.0 et 5 V d’alimentation. Vous devez avoir les résistances de 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 dont vous disposez, vous pouvez également connecter des ADC ou des comparateurs aux deux broches CC ensemble, bien que le plus souvent, votre appareil soit suffisamment faible pour qu’il n’y ait aucune raison de s’embêter.
Maintenant, si vous voulez fabriquer un appareil avec une prise USB-C, le câblage est le même. La seule différence est que vous n’avez besoin que de remplir l’un des pull-downs CC et de câbler une paire de broches D+/D- au lieu des deux paires. Rien de mal n’est susceptible de se produire dans la pratique si vous câblez la deuxième paire de broches USB 2.0, c’est juste grossier par rapport à la norme ; il entrait en conflit avec un certain type de ports et de câbles (ceux de VirtualLink) qui ne sont plus vendus.
Cependant, si vous connectez des pull-downs de 5,1 K aux deux broches CC, vous créerez accidentellement un accessoire de pirate : un adaptateur de mode de 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 pull-downs basculera 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.
Le revers tout aussi facile
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 à faire de mesures ADC. Au lieu de cela, vous ajoutez des pull-ups, une valeur différente pour différentes quantités de courant disponible. Tous les appareils ne vérifient pas la présence de 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 peut ne pas le reconnaître comme un moyen valide de charger si vous n’avez pas le pull -UPS. Cela ne coûte pas cher de les ajouter non plus!
Plus important encore, vous voudrez peut-être contrôler VBUS, en ne l’allumant qu’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 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 – améliorations bienvenues ! De l’autre côté, j’ai utilisé plusieurs fois des dérivations de port USB-C équipées d’un pull-down comme ports hôtes, donc ce n’est certainement pas une exigence stricte, et vous n’avez pas toujours besoin de sortir votre collection FET.
Au total, il y a deux choses que vous voulez faire si vous construisez un port hôte, et aucune des deux n’est vraiment nécessaire. De plus, si vous souhaitez devenir plus complexe sur les circuits, 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 fois la détection de source et de puits, dispose de tous les pulld-owns et pull-ups nécessaires à l’intérieur, et peut même faire des ports à double rôle, ce qui vous permet de construire n’importe quel 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 a 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 assez petit, assez soudable et assez polyvalent aussi. 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 3 ampères ou non.
Que vous souhaitiez créer un port source, un port récepteur ou même un port capable de faire les deux, le WUSB301 (ou l’un des nombreux circuits intégrés similaires comme le TUSB320) sera votre solution du jour. Une plainte que j’ai envers le WUSB3801, c’est qu’il ne fournit pas de GPIO pour déterminer la polarité du port actuellement branché – vous devez utiliser l’interface I2C pour cela. Maintenant, pourquoi auriez-vous besoin de connaître la polarité du port ? Les interfaces haut débit en sont la raison, et l’interface USB 3.0 est définitivement un pilier de l’USB-C, ne serait-ce qu’en raison de sa facilité de mise en œuvre.
Haute vitesse, bas prix
Construire un périphérique USB 3.0 avec une prise USB-C est aussi simple que construire un périphérique USB 2.0 avec une prise USB-C. USB 3.0 a deux diffpairs à haute vitesse ajoutés, et un connecteur USB-C a des emplacements pour quatre diffpairs. Avec la prise, vous connectez votre USB 3.0 SSRX à USB-C RX1, USB 3.0 SSTX à USB-C TX1, ouvrez un pull-down sur le CC1, et vous avez terminé. Il n’y a pas de composants supplémentaires en dehors des condensateurs en série dont votre liaison USB 3.0 pourrait avoir besoin, et ceux-ci ne seront pas différents d’une implémentation régulière.
Maintenant, c’est pourquoi vous verrez beaucoup de clés USB adopter une prise USB-C – c’est aussi simple d’en ajouter une, vous n’avez pas besoin de comprendre les broches CC, d’ajouter des composants supplémentaires ou similaires. Toi faire Cependant, vous devez ajouter des composants supplémentaires si vous souhaitez ajouter une prise USB-C avec prise en charge USB 3.0. Imaginez que vous branchez votre clé USB 3.0 USB-C dans une prise USB-C, selon le sens dans lequel vous la faites pivoter, les broches vont se retrouver dans l’une des deux positions. Vous ne voulez pas joindre les broches TX/RX de la prise ensemble, ce serait un problème majeur d’intégrité du signal, donc si vous ajoutez une prise USB-C avec prise en charge USB 3.0, vous avez besoin d’un multiplexeur pour gérer le haut débit. rotation des signaux.
Il s’agit, à présent, d’un type éprouvé de puce USB-C – vous les trouverez auprès d’au moins une douzaine de fabricants différents ; si vous trouvez quelques circuits intégrés qui ont le même brochage, il vous sera difficile de manquer de puces. Certains multiplexeurs auront une entrée POL, pour commuter manuellement votre signal USB 3.0 dans deux positions possibles – ceux-ci sont destinés à être utilisés avec votre propre contrôleur PD, c’est-à-dire une puce qui gère les broches CC. De nombreux multiplexeurs, vous trouverez, contiennent également la logique CC et vous donneront essentiellement une solution complète pour USB-C compatible 5 V et USB 3.0. Si vous construisez un hôte, vous n’aurez peut-être besoin que d’ajouter la gestion VBUS, et si vous construisez un appareil avec une prise USB-C, vous n’avez besoin de rien d’autre !
Un tel multiplexeur est le fonctionnement de nombreux ports USB-C bon marché sur les ordinateurs portables – ils ne fournissent que l’USB 2.0, rien d’autre, et étant donné sa facilité de mise en œuvre, il est logique que de nombreux fabricants d’ordinateurs portables bon marché s’en tiennent à cela. De plus, vous pouvez même omettre le multiplexeur si vous le souhaitez si vous avez un port USB 3.0 à revendre. Nous avons vu cela se faire sur des cartes mères de bureau, et assez curieusement, c’est ainsi que les deux ports USB-C sont également câblés sur le MNT Pocket Reform ! C’est logique, le hub USB 3.0 intégré de la carte Pocket Reform dispose de quatre ports libres, mais il n’y a que deux ports USB-C sur lesquels vous pouvez exposer l’USB 3.0. Cela fonctionne assez bien, et si quelqu’un veut accéder à ces deux ports USB 3.0 supplémentaires, il vous suffit de concevoir un adaptateur passif !
L’un de ces deux ports USB-C sur le Pocket Reform est spécial, il ne se contente pas de câbler le rail 5 V au VBUS comme le fait le premier port. Au lieu de cela, il a un interrupteur d’alimentation IC câblé jusqu’à VBUS et un FUSB302B câblé jusqu’aux broches CC. C’est le port du chargeur du Pocket Reform, et en effet, c’est l’une des façons dont vous pouvez faire fonctionner l’alimentation.
Obtenez vos volts et vos pixels
Toutes les options dont nous avons parlé prennent déjà en charge jusqu’à 15 W de puissance, en particulier 5 V à 3 A. Des tensions plus élevées sont également prises en charge, bien sûr. Vous avez juste besoin de parler PD, ou peut-être de laisser une puce amicale parler pour vous.
Ces puces conviviales, comme vous pouvez le deviner, sont des circuits intégrés de déclenchement PD. Vous les connectez aux broches CC et ils négocient un profil d’alimentation en votre nom. Ils ont quelques entrées qui vous permettent de régler la tension souhaitée, et éventuellement une sortie de pilote FET pour déconnecter VBUS si le bloc d’alimentation ne peut pas fournir la tension dont vous avez besoin, en vous assurant que vous n’obtenez pas le 5 V par défaut sur un rail d’alimentation où vous avez besoin de 20 V.
Nous pourrions parler beaucoup des puces de déclenchement, beaucoup d’autres le font, et moi aussi. En fait, c’est l’option que les gens choisissent massivement lorsqu’ils ont besoin d’une haute tension sur un port USB-C. Ils sont parfaits pour la majorité des cas d’utilisation, et il y a de fortes chances que vous souhaitiez en atteindre un. Cependant, attention, leur comportement est inflexible : ils ne vous permettent pas de créer un port à double rôle, et ils ne vous permettent pas de faire la distinction entre un bloc d’alimentation USB-C de 30 W et un de 100 W, ce qui aide lorsque vous re conduire une charge résistive. Vous ne pouvez pas non plus les combiner avec USB 3.0 ou DisplayPort car ils n’ont pas de sortie de polarité et ils ne vous permettent pas d’envoyer des messages personnalisés.
Un contrôleur PD vous permettra de faire bien plus ! Que vous utilisiez un contrôleur PD externe comme le FUSB302B ou peut-être un contrôleur PD intégré à votre MCU, il vous permettra de prendre vos propres décisions de communication PD. Il contient toutes les résistances que vous pourriez souhaiter et vous trouverez probablement un exemple de code pour la tâche que vous devez accomplir. Nous sommes déjà passés par la création de messages PD personnalisés, à la fois pour l’alimentation et le fonctionnement du récepteur DisplayPort. À un moment donné, nous construirons même notre propre bloc d’alimentation USB-C avec un FUSB302B, alors restez à l’écoute ! En ce qui concerne les MCU, il existe des microcontrôleurs STM32 et Cypress bien connus avec des périphériques PD, et récemment, le CH32X035 est entré en scène.
Votre propre contrôleur PD vous permettra également d’envoyer des messages DisplayPort – en extrayant une sortie DisplayPort de tous les ports compatibles, ou peut-être en offrant DisplayPort par vous-même. Utilisez une prise USB-C et vous n’aurez pas besoin d’un multiplexeur, ou utilisez une prise et ajoutez un multiplexeur compatible DisplayPort – cela vous permettra d’extraire simultanément DisplayPort et USB 3.0 à deux voies, ou DisplayPort à quatre voies, selon ce que vous pourriez vouloir . Ou, vous pouvez utiliser une prise DisplayPort, omettre le multiplexeur et ne faire fonctionner votre port que dans une seule orientation – ce vendeur chinois eDP peut le confirmer !
La prochaine fois, nous verrons le fonctionnement interne d’un bloc d’alimentation USB-C, puis convertirons un bloc d’alimentation 20 V en une source USB-C avec prise en charge 20 V ; nous n’aurons besoin que du FUSB302, de quelques FET et d’un régulateur 5 V de rechange. Cela ne nous demandera pas grand-chose, vous pourrez convertir vos anciens blocs d’alimentation en alimentation USB-C pour ordinateur portable, et vous aurez également un aperçu du fonctionnement d’un bloc d’alimentation USB-C !