Si vous concevez un port universel, vous devrez fournir de l’énergie. C’est une leçon apprise à l’époque des ports LPT et COM, où les périphériques fabriqués en usine et les cartes DIY devaient faire des tours de passe-passe pour obtenir quelques milliampères, souvent en utilisant des lignes de données. Si vous le faites mal, un port brûlera. Dans le meilleur des cas, ce sera votre port, dans le pire des cas, les ports d’un certain nombre de vos clients.
Avoir un rail d’alimentation dédié sur votre connecteur résout simplement ce problème. Nous n’avons peut-être jamais eu de DB-11 et de DB-27, mais nous avons finalement eu l’USB, avec l’une de ses quatre broches dédiée à un rail d’alimentation de 5 V. Je me souviens très bien d’avoir vu mon premier port USB, sur le côté d’un Thinkpad 390E que mon père avait acheté dans les années 2000 – j’avais huit ans à l’époque. Il s’agissait simplement d’USB 1.0, et pourtant, même si je n’ai jamais pu utiliser correctement ce port, il a définitivement marqué le début de mes aventures USB.
Environ six ans plus tard, j’étais assis à mon bureau, essayant de construire une station d’accueil USB pour mon EEE PC, comme je l’espérais, avec des tonnes de périphériques à l’intérieur. Il arrivait régulièrement que le port USB soit court-circuité en raison de connexions défectueuses ou de trop nombreux appareils connectés en même temps ; heureusement, l’ordinateur portable a persévéré autant que moi. En essayant de faire quelques recherches, une chose sur laquelle je n’arrêtais pas de trébucher était la limite de 500 mA. Cela n’a pas vraiment aidé, car aucun des appareils que j’utilisais n’essayait même d’indiquer sa consommation d’énergie sur l’emballage – vous obteniez un hub USB indiquant « 100 mA » ou une souris indiquant « 500 mA » sans aucune explication.
Quinze années supplémentaires se sont écoulées et je suis ici, après avoir parcouru des centaines de schémas d’ordinateurs portables, étudié et appris des décisions de conception, récupéré des ordinateurs portables pour les deux pièces et même les circuits intégrés sur leurs cartes mères, conçu et construit des mods d’ordinateurs portables, aujourd’hui je conçois même mes propres cartes mères d’ordinateurs portables ! Si vous avez déjà entendu parler de la limite de 500 mA et que vous l’avez considérée comme une contrainte pour votre projet, ne vous inquiétez pas – ce n’est pas aussi simple et clair que la spécification pourrait vous le faire croire.
Qui fixe réellement la limite actuelle ?
La spécification stipulait à l’origine que vous n’êtes pas censé consommer plus de 500 mA à partir d’un port USB. À certains moments, vous n’êtes même pas censé consommer plus de 100 mA ! Elle évoquait les charges unitaires, les taux de consommation de courant et quelques autres restrictions que vous voudriez appliquer à un rail d’alimentation. Naturellement, cela impliquait une certaine forme d’application, et vous verriez cette limite appliquée – de temps en temps.
Du côté de l’hôte, la limitation de courant devait bien sûr être réinitialisable, et, à l’époque, cela signifiait soit des fusibles PTC, soit une limitation de courant numérique – tous deux avec leurs défauts et une augmentation de prix notable – par port. Certains s’en sont donné la peine (surtout les ordinateurs portables), mais beaucoup ne l’ont pas fait, soit en regroupant des groupes de ports sur un seul rail limité à 5 V, soit en s’attendant simplement à ce que l’ensemble du régulateur 5 V de la carte prenne le relais.
Aujourd’hui encore, les hackers lésinent sur la limitation de courant, même si cela peut être utile pour les technologies défectueuses que nous piratons si souvent. Voici un conseil d’un concepteur de cartes mères en herbe : achetez quelques bonnes dizaines de SY6280, ils coûtent 10 centimes pièce, et voici également un petit PCB de dérivation pour eux. Ils sont bons pour un maximum de 2 A, et vous obtenez une broche EN gratuitement. De plus, cela fonctionne à la fois pour 3,3 V, 5 V et tout ce qui se trouve entre les deux, par exemple la sortie d’une seule cellule LiIon. Naturellement, d’autres suggestions dans les commentaires sont appréciées – le SY6280 n’est pas beaucoup stocké par les fournisseurs occidentaux, vous voudrez donc LCSC ou Aliexpress.
L’autre aspect de l’équation est celui des appareils. Vous vous souvenez du chauffe-tasses USB devenu plaque chauffante qui nécessitait 30 ports USB en parallèle pour cuire les aliments ? Il les utilisait consciencieusement pour rester sous les 500 mA. Les appareils fabriqués en série, malheureusement, ne le faisaient pas.
Les disques durs portables avaient besoin d’un peu plus de 2,5 W pour démarrer, les clés USB des modems 3G avaient besoin d’un pic de 2 A lors de la connexion à un réseau, les téléphones avaient besoin de plus de 500 mA pour se charger et les chauffe-café… eh bien, vous ne voulez pas vendre un chauffe-café de 2,5 W alors que votre concurrent se vante d’avoir 7,5 W. Cela a conduit aux câbles en Y, mais aussi à l’incompatibilité des hôtes avec les appareils des utilisateurs et au mécontentement des clients. Et qui veut des plaintes quand une solution est simple ?
C’était aussi la complexité. Supposons que vous conceviez un hub USB avec quatre ports. Au cœur de celui-ci se trouve un circuit intégré de hub USB. Ajoutez-vous une mesure de la consommation de courant et l’activation de vos sorties pour vous assurer de ne pas trop drainer l’entrée ? Vos utilisateurs apprécieront-ils que leurs appareils s’éteignent de manière aléatoire, ce qui ne posera aucun problème aux hubs moins chers ? Allez-vous vous limiter à bien moins que ce que le port en amont peut réellement offrir ? Plus important encore, les utilisateurs se soucient-ils suffisamment d’acheter un hub trop conforme, par opposition à un hub qui coûte bien moins cher et qui fonctionne tout aussi bien, sauf dans certains cas extrêmes ?
Repousser les limites
La surveillance du courant de 500 mA était peut-être la solution à l’origine, mais il n’y avait pas vraiment besoin de la conserver, et quelle que soit la sécurité que 500 mA offrait, elle s’accompagnait d’une mise en œuvre et d’une maintenance fastidieuses. La norme USB ne s’attendait pas à ce que l’exigence de 2,5 W évolue, elle n’avait donc initialement aucune disposition pour l’augmenter, à part l’« auto-alimentation », c’est-à-dire que votre appareil capte l’énergie ailleurs que sur le port USB. En conséquence, les appareils et les fabricants ont repoussé la limite supérieure vers quelque chose de plus raisonnable, sans mécanisme convenu sur la manière de le faire.
Les ports USB, purement mécaniques, pouvaient très bien supporter plus de 0,5 A en continu, et bientôt, une tolérance de 1 A ou même de 1,5 A est devenue la norme. Les fabricants avaient leurs propres limites de courant en tête, mais 500 mA était depuis longtemps révolus – et oublions le chiffre de 100 mA. Le seul endroit où l’on pouvait couramment rencontrer 500 mA était peut-être les amplificateurs à l’intérieur des téléphones portables, simplement parce qu’il n’y avait pas beaucoup d’espace sur une carte mère ni beaucoup de budget d’alimentation à dépenser.
Les fabricants de smartphones se trouvaient dans une situation délicate : comment distinguer un port capable de fournir 500 mA d’un port capable de fournir 1 000 mA, voire 2 A ? C’est ainsi que les manigances D+/D- sur les chargeurs de téléphone ont vu le jour, sans compter la cupidité des fabricants. Pour Android, il fallait court-circuiter les lignes de données avec une résistance de 200 ohms, pour Apple, il fallait mettre 2,2 V ou 2,7 V sur les broches de données, et si l’on faisait suffisamment d’efforts, on pouvait parfois utiliser trois résistances pour faire les deux à la fois.
Mettre la norme en conformité
Le groupe de normalisation USB a essayé de rattraper le retard de la norme USB BC (Battery Charging Standard) et a adopté le schéma Android. Leur idée était la suivante : si vous vouliez créer un chargeur capable de supporter 1,5 A, vous mettriez en court-circuit D+ et D-, et un appareil pourrait tester un court-circuit pour vérifier s’il peut consommer cette quantité. Bien sûr, de nombreux appareils ne vérifiaient jamais, mais c’était un mode intéressant pour les smartphones en particulier.
Lorsque vous fabriquez un appareil avec une batterie LiIon qui vise à consommer plus d’un ampère et à être produit en quantité de plusieurs centaines de milliers, la sécurité et la compatibilité avec le chargeur sont cruciales. Un mode de charge moins courant mais astucieux de la norme BC, le CDP (Charging Downstream Port), vous permettrait même d’utiliser l’USB2 *et* 1,5 A. Sa prise en charge a été ajoutée à certains ordinateurs portables utilisant des circuits intégrés spéciaux ou une détection au niveau du chipset. Vous aviez peut-être un port jaune sur votre ordinateur portable, dédié au chargement d’un smartphone et capable de mettre à l’aise la logique de détection du port de votre téléphone.
Par la suite, l’USB3 a profité de l’occasion pour augmenter la limite de 500 mA à 900 mA. L’idée était simple : si vous êtes connecté via USB2, vous pouvez consommer 500 mA, mais si vous utilisez un périphérique USB3, vous pouvez consommer 900 mA, un budget de puissance accru qui est en effet utile pour les périphériques USB3 à vitesse plus élevée, plus susceptibles d’essayer d’effectuer beaucoup de calculs à la fois. Dans la pratique, je n’ai jamais vu aucun ordinateur portable implémenter la partie de vérification de la limite de courant USB2 vs USB3, cependant, comme de plus en plus d’appareils ont adopté l’USB3, cela a certainement élevé la barre de ce que vous pouvez être assuré d’attendre de n’importe quel port.
Comme nous l’avons tous vu, les normes externes ont décidé d’augmenter la limite de puissance en augmentant la tension. En jouant avec les niveaux analogiques sur les broches D+ et D- d’une certaine manière, la norme Quick Charge (QC) vous permet d’obtenir 9 V, 12 V, 15 V ou même 20 V à partir d’un port ; malheureusement, sans possibilité de signaler la limite de courant. Ces normes ont été principalement limitées aux téléphones, heureusement.
Ardoise mince USB-C
L’USB-C PD (Power Delivery) a complètement démoli cette complexité, comme vous l’aurez peut-être remarqué si vous avez suivi ma série USB-C. En effet, un appareil peut vérifier la capacité actuelle du port avec un ADC connecté à chacune des deux broches CC du connecteur USB-C. Trois niveaux de courant sont définis : 3 A, 1,5 A et « Par défaut » (500 mA pour les appareils USB2 et 900 mA pour USB3). Votre téléphone signale probablement le niveau par défaut, votre chargeur signale 3 A et votre ordinateur portable signale 3 A ou 1,5 A. Vous souhaitez obtenir des tensions plus élevées ? Vous pouvez effectuer des communications numériques assez simples pour y parvenir.
Vous souhaitez consommer 3 A à partir d’un port ? Vérifiez les lignes CC avec un ADC, utilisez quelque chose comme un WUSB3801 ou faites simplement la même chose en « vérifiant l’étiquette du bloc d’alimentation ». Vous souhaitez consommer moins de 500 mA ? Vous n’avez même pas besoin de vous soucier de vérifier les CC, si vous avez 5 V, cela fonctionnera. Et comme 5 V / 3 A est une option définie dans la norme, une myriade d’ordinateurs portables vous fourniront sans effort 15 W de puissance à partir d’un seul port.
Sur les ports USB-C, la BC peut toujours être prise en charge pour la rétrocompatibilité, mais cela n’a plus autant de sens de la prendre en charge. Les normes propriétaires de chargeurs de smartphone, qui augmentent d’elles-mêmes le VBUS, sont complètement interdites dans l’USB-C. Les concepteurs d’appareils disposant d’un mécanisme simple pour consommer une bonne quantité d’énergie, la conformité est devenue beaucoup plus probable qu’auparavant – non pas que quelques fabricants n’essaient pas de créer leurs propres systèmes, mais ils sont minoritaires.