USB について
前回の USB-C 記事がリリースされてから 6 か月間、私はこれらの記事を改善できる方法をたくさん考えてきました。 もちろん、そのような感情を持つのは普通のことであり、予想されることですらあります。 今では、埋められるギャップがいくつかあると信じています。 たとえば、十分な回路例を提供していないため、1 つの回路図が 1,000 の言葉よりもよく物事を伝えることができる場合があります。
それを直しましょう! 実際に構築したいと思われる種類の USB-C デバイスの回路図を示します。 この記事では、多数の IC 部品番号も紹介しますが、もちろん完全なコレクションを持っているわけではありません。USB-C 用途で動作し、ここで言及されていないさらに優れた IC を見つけたら、ぜひ見つけてください。コメントでみんなに知らせてください!
最初の記事で最初の回路例を見てきました。これは、USB 2.0 と 5 V の電力をサポートするデバイス側 (「上流側」) USB-C ポートです。 ピンごとに 1 つの抵抗を含む 5.1 K の抵抗が必要です。また、両方のデータ ピンを接続することを忘れないでください。必要に応じてビアを使用してください。 利用可能な電流量を確認したい場合は、ADC またはコンパレータを両方の CC ピンに一緒に接続することもできますが、ほとんどの場合、デバイスは十分に低電力であるため、わざわざ接続する必要はありません。
さて、USB-C プラグを備えたデバイスを作成する場合も、配線は同じです。 唯一の違いは、CC プルダウンの 1 つを設定するだけで済み、D+/D- ピンの両方のペアではなく 1 つのペアに配線する必要があることです。 USB 2.0 ピンの 2 番目のペアを配線しても、実際には何も悪いことは起こりません。標準から見て野暮なだけです。 以前は、販売されなくなった特定の種類のポートやケーブル (VirtualLink のもの) と競合していました。
ただし、両方の CC ピンに 5.1 K プルダウンを配線すると、誤ってハッカー アクセサリ、つまり一部の USB-C ポートから追加の信号を取り出すのに役立つデバッグ モード アダプタを作成してしまうことになります。 たとえば、Framework ラップトップでは、両方のプルダウンを備えた USB-C プラグを備えたボードが USB-C ポートをデバッグ モードに切り替え、SBU ピンで EC UART 接続を公開します。 このようなデバッグ アクセサリを作成する場合を除き、プルダウンの 1 つだけを設定し、それに応じて USB 2.0 データ ピンを接続する必要があります。
ホストポートを作成したい場合はどうすればよいでしょうか? 一方で、必ずしも ADC 測定を行う必要がないため、より簡単です。 代わりに、利用可能な電流の量に応じて異なる値のプルアップを追加します。 すべてのデバイスがプルアップの存在をチェックするわけではありませんが、電話はチェックします。そのため、間に合わせの USB-C 充電器を作成している場合、プルアップがない場合、電話やラップトップはそれを有効な充電方法として認識しない可能性があります。 -UPS。 追加するのにもそれほど費用はかかりません。
さらに重要なのは、CC ピンの 1 つでプルダウンが検出された後にのみ VBUS を制御し、VBUS のスイッチをオンにすることをお勧めします。 そうでなくても必ずしも問題が発生するわけではありませんが、誰かが USB-A - USB-C ケーブルをポートに接続しているなど、いくつかの重要なエッジ ケースはカバーされています。
私はこの回路を作ったことはありませんが、私の考えでは、CC ピンごとに 1 つずつ、両方を並列に配置した 2 つの FET を使用するだけで十分なはずです。 この回路には特殊なケースがある可能性があります。改善は大歓迎です。 一方、私はプルダウンを備えた USB-C ポート ブレークアウトをホスト ポートとして何度か使用したことがあります。そのため、これは決して難しい要件ではなく、FET コレクションを常にブレークアウトする必要はありません。
ホスト ポートを構築する場合、合計で 2 つのことを実行する必要がありますが、どちらも完全には必須ではありません。 また、回路をより複雑にしたい場合、またはデュアルロール ポートを使用したい場合は、USB-C のこの部分に役立つ IC があります。
たとえば、WUSB3801 を考えてみましょう。 ソースとシンクの両方の検出を処理し、必要なすべてのプルダウンとプルアップが内部にあり、デュアルロール ポートも実行できるため、あらゆる種類の 5 V 電源ポートを構築できます。 いくつかの GPIO でポートのステータスを出力したり、I2C 経由でマイクロコントローラーに接続したりできます。さらに ID ピンも備えているため、これを使用して MicroUSB ポートを USB-C ポートに完全に置き換えることができます。 WUSB3801 は十分に小さく、十分にはんだ付け可能で、十分に多用途です。 たとえば、Hackaday Discord サーバー上で、接続された USB-C ポートが 3 アンペアを供給できるかどうかに基づいてリチウムイオン充電器の電流を制限する WUSB3801 回路を誰かが構築しました。