Je voudrais poser une question assez précise concernant la gestion de l'alimentation USB.
Tout d'abord, je vais décrire la conception de mon appareil. Il s'agit d'un pilote de ligne de signal symétrique avec un codec audio intégré pour mon système d'enceintes DIY. L'appareil est divisé en interne en deux blocs pour la plupart indépendants: le pilote de ligne même avec un MCU de contrôle et le codec audio (PCM2706 de TI). Les deux ont besoin d'une connectivité de données USB (via un FT232R pour le bloc pilote) et l'ensemble du périphérique doit être alimenté par bus. Les deux blocs seront reliés entre eux par une puce de concentrateur USB, ce qui donnera une seule connexion USB de liaison montante au PC. Je m'attends à ce que la consommation de l'étage pilote soit comprise entre 100 et 200 mA (certainement plus d'une unité de charge).
Voici le problème: selon la spécification USB, un concentrateur alimenté par bus ne peut fournir qu'une seule unité par port aval tout en tirant au maximum 5 unités de l'amont. J'aimerais savoir ce que ferait le concentrateur si je demandais deux unités via le FT232 pour l'étape pilote. La limite en amont de 5 unités ne sera pas atteinte (1 unité pour le concentrateur, 1 unité pour le codec et deux pour le pilote), donc l'ordinateur devrait être physiquement capable de fournir ce courant.
Pour la puce du concentrateur, j'ai consulté http://www.ti.com/lit/ds/symlink/tusb2036.pdf . Il existe une option de mode d'alimentation "groupé", est-ce que cela pourrait être utile? Ou la puce refuserait-elle simplement d'accorder deux unités au conducteur? Et dans ce cas, y a-t-il une solution de contournement sale?
Je suis conscient de l'exigence selon laquelle les appareils à haute puissance doivent également tirer au maximum 100 mA pendant le dénombrement; ce n'est pas un problème car le FT232 est capable d'activer le pilote juste après l'énumération. Le hub activera également les scènes indépendamment.
J'espère que mon problème est assez clair et merci pour votre temps à l'avance :)
MISE À JOUR:
J'ai fait quelques recherches supplémentaires sur la puce TUSB2036. La protection contre les surintensités peut être désactivée par la broche / OCPROT. Le concentrateur signale ensuite au contrôleur racine qu'il n'est pas en mesure de détecter une surintensité. Il y a un avertissement dans la fiche technique, que la protection OC est requise par la spécification USB 2.0 - cela n'a pas d'importance pour moi, j'ai seulement besoin de 1.1 Full-speed. Le concentrateur racine du PC devrait alors fournir à l'OMI 500 mAmps à l'ensemble de l'appareil. Ainsi, je pourrais paramétrer le FT232 du pilote pour ne nécessiter que 100 mA et le hub ne saurait jamais si j'aurais dépassé la limite (en respectant les 500 mA du PC bien sûr). Quelqu'un peut-il dire si cela pourrait fonctionner?
J'ai conçu une carte autour de ce hub.
Dans ma candidature, il autorisait l'accès à un FT232 et à un FT245.
Si tout se trouve sur votre propre PCB, je vous recommande d'ignorer complètement tous les systèmes de protection contre les surintensités. Après tout, si quelque chose sur votre PCB échoue, tout cela devra être travaillé, donc rendre l'appareil capable de gérer une défaillance partielle est une sorte de point discutable.
Dans ma situation, j'ai attaché le TUSB pour demander les 500 mA complets et désactiver la protection contre les surintensités, et j'ai tout exécuté directement depuis l'USB 5.0v. J'ai accompli cela en forçant le concentrateur à signaler comme étant auto-alimenté à l'hôte en amont.
J'ai fait quelques planches, sans aucun problème réel, donc cela semble une stratégie parfaitement réalisable. Il a également été utilisé avec plusieurs ordinateurs différents, donc je serais assez confiant de l'utiliser tel quel.
Bien sûr, si c'est pour un appareil de production, plutôt qu'un projet personnel, ou un harnais de test (c'est ce que c'est dans mon cas), c'est un tout autre problème.
(Voir la note sur le schéma)
Pour ce que ça vaut, vous pouvez souvent abuser horriblement de la plupart des ports USB modernes sans trop de problèmes. Beaucoup d'entre eux peuvent fournir beaucoup plus de puissance que les 500 mA pour lesquels ils sont conçus, sans trop de problèmes.
De plus, la plupart d'entre eux (tout ce que j'ai testé, à l'exception de certains ordinateurs portables ) fourniront volontiers les 500 mA complets sans qu'un appareil n'ait à énumérer du tout.
Cependant, cela varie d'une carte mère à l'autre, selon la conception de l'hôte USB. Votre kilométrage peut varier.
la source
Peut-être un peu sale: le TUSB2036 permet de sélectionner le port en aval (p3 NPINT1-0 réglé sur 10). Connectez ensuite votre appareil à deux ports (physiques) pour pouvoir dessiner 2 unités en parallèle.
la source