USBの電源管理に関して非常に具体的な質問をしたいと思います。
まず、デバイスのデザインの概要を説明します。これは、私のDIYスピーカーシステム用のオーディオコーデックが組み込まれた対称信号ラインドライバーです。デバイスは内部的に2つの独立したブロックに分割されています。制御MCUを備えたラインドライバとオーディオコーデック(TIのPCM2706)です。どちらも(ドライバーブロック用のFT232Rを介して)USBデータ接続が必要であり、デバイス全体にバスパワーを供給する必要があります。2つのブロックはUSBハブチップによってリンクされ、PCへの単一のアップリンクUSB接続を生成します。ドライバーステージの消費量は100〜200 mA(間違いなく複数の負荷ユニット)になると思います。
ここで問題が発生します。USB仕様によると、バスパワーハブは、ダウンストリームポートごとに1ユニットしか提供できませんが、アップストリームから最大5ユニットを引き出します。知りたいのですが、ドライバーステージ用にFT232を介して2つのユニットを要求した場合、ハブはどうなりますか?アップストリームの5ユニットの制限に達しないため(ハブ用に1ユニット、コーデック用に1ユニット、ドライバ用に2ユニット)、コンピュータは物理的にその電流を供給できるはずです。
ハブチップについては、http: //www.ti.com/lit/ds/symlink/tusb2036.pdfをチェックしてきました。「連動」電源モードのオプションがありますが、これは役に立ちますか?または、チップはドライバーに2つのユニットを許可することを拒否しますか?この場合、汚い回避策はありますか?
列挙中に最大100 mAを引き出すには高出力デバイスも必要であるという要件を認識しています。FT232は列挙の直後にドライバーをオンにすることができるため、これは問題ではありません。ハブもステージを個別にオンにします。
私は私の問題を十分に明確に述べてくれたことを願っています。
更新:
TUSB2036チップについてさらに調査を行いました。過電流保護は、/ OCPROTピンによってオフにできます。次に、ハブは、過電流を検出できないことをルートコントローラーに報告します。USB 2.0仕様ではOC保護が必要であるというデータシートに警告があります。これは私には関係ありません。必要なのは1.1フルスピードのみです。PCのルートハブは、デバイス全体にIMOから500 mAmpを供給します。したがって、ドライバーのFT232が100 mAのみを必要とするように設定することができ、ハブは(もちろんPCからの500 mAを考慮して)制限を超えたかどうかを知ることはありません。これがうまくいくかどうか誰かが知ることができますか?