Bus à succès omniprésent : piratage des hubs USB 2
Nous nous sommes récemment penchés sur l’USB 2.0, la norme de communication point à point omniprésente. L’USB 2 est complètement différent de l’USB 3, la norme USB de nouvelle génération à connecteur bleu. Par exemple, l’USB 2 est un bus pseudo-différentiel full duplex et il n’est pas couplé au courant alternatif. Cela rend l’USB2 notoirement difficile à isoler galvaniquement, contrairement à l’USB 3. D’un autre côté, l’USB 2 est beaucoup plus facile à intégrer dans vos projets. Et la meilleure façon d’y parvenir est peut-être d’implémenter un hub USB.
Les hubs USB 2 sont désormais omniprésents. cela ne coûte pas grand-chose à ajouter à votre tableau et vous avez vraiment des tonnes d’options. L’option standard est constituée de hubs à 4 ports : un port de liaison montante vers votre hôte, quatre ports de liaison descendante vers vos appareils. Si vous n’avez que deux ou trois appareils, vous pourriez être tenté de rechercher un circuit intégré de hub avec moins de ports, mais cela ne vaut pas la peine : utilisez simplement une puce à 4 ports et faites-en des réserves.
Qu’en est-il des puces à 7 ports ? Vous les verrez de temps en temps – mais regardez attentivement la fiche technique. Certains d’entre eux seront constitués de deux puces à 4 ports dans un seul boîtier, avec quatre des ports goulots d’étranglement par rapport aux trois autres ports – attention ! Il est fondamentalement garanti que les hubs de bureau à 7 ports utilisent également deux circuits intégrés à 4 ports, alors, encore une fois, faites attention aux goulots d’étranglement. lsusb -t
vous aidera à déterminer la structure du hub au cas où vous ne voudriez pas ouvrir son boîtier, heureusement.
Des recommandations ? J’utilise des puces SL2.1 – elles sont disponibles dans un boîtier SO16, très simples, avec un brochage précis et facilement soudables à la main. Le CH334 est un concurrent proche, mais attention car il existe différentes variantes de cette puce qui diffèrent à la fois par le boîtier et le brochage, donc si vous achetez une puce avec une certaine lettre, vous voudrez vous y tenir. De plus, soyez prudent : les différentes variantes s’épuisent à des rythmes différents, donc si vous vous enfermez dans une variante CH334, pensez à vous en approvisionner.
Les puces d’origine occidentale ne manquent pas non plus – Texas Instruments est sans aucun doute un leader dans ce domaine. Si jamais vous craignez de manquer de circuits intégrés de hub dans votre stock lors de l’assemblage de quelque chose, vous pouvez vous y préparer à l’avance en laissant des empreintes de zéro ohm sous l’emballage du hub. L’USB 2 ne se soucie pas beaucoup des stubs, et un tel hack est très facile à réaliser avec SL2.1 en particulier. Il vous reste deux ports supplémentaires ? Placez-les sur un connecteur double USB2 à 9 broches de style boîtier PC – les accessoires amusants compatibles avec celui-ci ne manquent jamais !
L’alimentation des circuits intégrés de hub USB2 est simple : ils ont tendance à inclure un régulateur linéaire de 5 V à 3,3 V, vous pouvez donc les alimenter directement à partir d’une source de 5 V. D’un autre côté, si vous n’avez pas de 5 V en réserve, la grande majorité des circuits intégrés de hub peuvent être alimentés directement à partir de 3,3 V – cela nécessite généralement de court-circuiter l’entrée 5 V du hub à 3,3 V, mais pas nécessairement. Si la fiche technique n’est pas claire sur le fonctionnement en 3,3 V uniquement, laissez quelques cavaliers 0R. Et bien sûr, assurez-vous d’ajouter des condensateurs de 100 nF ou similaires – un par broche d’alimentation du circuit intégré du hub. Vous vous souvenez de l’avertissement concernant l’imprécision des oscillateurs RC intégrés dans les MCU ? Il en va de même pour les hubs : si votre hub dispose d’un oscillateur RC interne, ne lui faites pas confiance, assurez-vous d’avoir une empreinte cristalline que vous pouvez remplir si vous rencontrez des problèmes de stabilité.
Mettre certaines broches du port USB vers le monde extérieur ? Vous voudrez les protéger contre les dommages – ou, plutôt, vous voudrez protéger votre coûteux processeur contre les dommages.
S’il vous plaît, pensez aux diodes ESD
Amener l’USB quelque part, ou même simplement l’utiliser comme lien avec le monde extérieur ? Vous devriez vraiment utiliser des diodes ESD – ou au moins les planifier et vous donner la possibilité de les remplir plus tard. Après tout, les diodes ESD compatibles USB2 ne manquent pas, et les problèmes ESD sont plus proches que prévu.
Par exemple, j’ai récemment construit un appareil de poche composé d’un Pi Zero alimenté par batterie et d’une carte son USB connectée à des écouteurs filaires, avec un long câble assez standard. Je porte beaucoup de vêtements synthétiques, en particulier des sweats à capuche et des vestes, et le Pi redémarre à chaque fois que j’enlève ou que je mets ma veste, grâce à l’électricité statique induite dans les fils du casque à travers l’isolation du câble, entrant dans le Port USB sur le Pi Zero.
Je suis donc allé mettre des diodes ESD sur les broches USB 2, en utilisant l’empreinte que j’avais précédemment ajoutée à ma carte « juste au cas où » mais que je n’avais pas remplie, et ce mode de panne a instantanément disparu pour de bon. N’oubliez pas que les empreintes de pas sont gratuites et que les boodges coûtent du temps. Vous voulez une recommandation ? Les diodes à quatre canaux sont plutôt bonnes pour l’USB 2 ; recherchez l’empreinte SRV-05 dans KiCad, dans le package SOT-23-6. Il s’agit d’une empreinte suffisamment générique pour que les packs de diodes ESD ne manquent pas dans la même empreinte, ils ont une capacité suffisamment faible pour que vous puissiez même l’utiliser à des fins telles que la protection du pavé tactile, et ils fonctionneront également pour des applications comme Ethernet ou disponibles en externe. GPIO.
Avez-vous besoin de diodes ESD ? Oui, ajoutez simplement l’empreinte. D’ailleurs, il en va de même pour les interrupteurs de contrôle de surintensité – j’ai déjà parlé du SY6820, mais cela mérite d’être répété. L’ensemble de votre système n’a pas besoin de redémarrer lorsque vous court-circuitez un port USB de la carte, et un circuit intégré de commutateur à courant limité bon marché vous permettra de vous assurer que c’est le cas, tout en vous permettant également d’allumer et d’éteindre le port, comme un joli bonus.
Ce ne sont là que quelques conseils sur et autour des hubs et connecteurs USB 2, mais j’espère que cela vous aidera dans vos projets.