サマリ
想定読者:回路設計(の思想)に興味がある方 / 想定時間:30分~35分程度
第22回目のテーマは、前回の続きからUSBの回路設計について取り上げます。まだ前回をご覧になっていない方は参照することをお勧めいたします。

#1 電源回路を理解しよう
まずは全ての基礎になる電源回路を見てみましょう。最初に、データシートに記載されているチップの供給に向けた回路図を示します。
VDDには1.1V、VDD33には3.3V、VSSは0Vのスペック値でしたね。それぞれ該当の電圧が支給されていることがわかります。見るべきポイントはコンデンサの数です。
基本的にVDD33はチップ自体の制御に使われる電源であり、VDDは通信に使用される電源となります。よって、変動幅の大きいVDD側に多めのコンデンサが用意されていることが見て取れます。この個数自体は推奨ですので、信号波形の変動幅を見て多めにしたり(そのためのスペースを設けておく)、0.01uFをVDD側に挿入することや、VDD33側に100uFを挿入する、コストを見て減らすなどの調整をします。
加えて、推奨回路には電源部分に”FB”という表記でフェライトビーズが挿入されています。電源ノイズの遮断目的に使用されていますので、こちらはお好みで調整する形となります。

もう一つ考慮しなければならないUSBの特徴として、“VBUS”があります。こちらが複雑で注意が必要です。
身の周りでも、スマホにUSBケーブルを指すだけで電源がチャージされますよね? こちらの仕様を司るのがVBUSになります。特に、USB3.2からは、PD (Power driver)規格による電源を急速にチャージするための目的にも使えるようになったことから、5Vだけでなく20Vまで、かつ様々な電流に対応する必要が出てきました。
例えば、自身の回路として5Vを受けられるように設計していたのに、いきなり20V流されたらさすがに壊れますよね。よって、USBの規格として、供給元は電源を供給する前に、自身がどのような仕様か、また電源を流していいタイミングかを待つための制御用の信号線が用意されています。
逆に捉えると、受給側は仕様に対応するハンドシェイクに相当するものを実施しなければなりません。これが複雑になる原因になります。
これらの仕組みを整備するためには、そもそも自身の回路をどのように使うかを決める必要があります。次に、①電源の供給側、②需給側、③制御の3つの観点から設計する必要があります。
たまたま選んだ本チップは、データシートより”ハブの役割”と記載がありますので、目的としては、上流から流れてくる信号を適切に受け取り、下流に流すバッファの役割になります。
自ずと、①として電源自体は、必ず上流から供給される状態となりますので、特段考慮する必要はありません。
②の需給側としては、本チップに加え、ハブの役割を担うことから下流にも渡す必要があります。本チップへの供給は、上記より3.3Vと1.1Vの供給が必要なので、上流から流れてくる5VからDCDCコンバータなどを用いて準備します。また、下流へはそのまま線を接続すれば上流からそのまま流すことが可能です。(制御線は後ほど記載)
ポイントとしては③の制御になります。ハンドシェイクに相当するもの、それが”CC”という名で2本存在します。こちらのハンドシェイクを一から全て設計することはかなり大変です(なお、前回の記事でも説明しきれていない部分になります)。そのようなユースケースに対応するためにも、対応できるチップが世の中にはたくさんありますので、活用しましょう。同じTIだと例えば、TUSB422が対応しています。(URL:https://www.ti.com/product/ja-jp/TUSB422)※本チップは5V対応までです。
アプリケーションの図例がありましたので、以下に示します。CC1/CC2の通信を担い、そのハンドシェイク結果を元に、SoCに対してI2Cで通信するような形となっています。図内の上段にはVBUSを用いたバッテリーへのチャージならびに周辺へ供給するユースケースが示されています。さすがに複雑ですので本記事では本チップの詳細には入り込みませんが、CCの制御のためには別のチップの組み合わせることが推奨になります。

元のデータシート(TUSB8004A)に戻ります。ハンドシェイクが成立したとしても、まだ保護回路自体は設計できていない状態です。そこで、対策として以下の図を示しています。別のTI製のチップであるTPS2561やTPS2001を用いてチェック機構を推奨しています。

これらのように世の中には様々なユースケースに沿ったチップが用意されていますので、組み合わせて設計します。ただ単に組み合わせるだけ?と思われるかもしれませんが、完成に至るまではかなり大変なのです。コストを考慮しつつ、機能面で各種チップを調査。全て充足しているかをチェックしたのちに、電源回路ですから保護回路をどうするか、立ち上げのシーケンスは問題ないか、仮に一部分が故障した際に連鎖しないか、、、など、電源は特に故障に直結しますので、かなり手間がかかる部分になります(複雑ですね)
#2 周辺回路を理解しよう
お疲れ様でした。USBは電源周りが複雑ですが、残りの回路は基本的にシンプルです。電源以外の推奨回路をざっくり見ていきましょう。
まず初めに、機能ブロック図でいうと、”Oscilator & Clock and Reset Distribution”部分になります。こちらはチップを動作させるためのクロックを供給するために、24MHz水晶発振器の回路と各種初期設定のためのプルアップ/プルダウン抵抗の回路が示されています。
基本的には踏襲で大丈夫ですが、設定の状態を変更する際には抵抗の値を変えたり、プルアップ/プルダウンを逆にするなどの対応が必要ですので、データシートのレジスタ値(設定)は確認するようにしましょう。

次に、”GPIO/I2C/SMBUS”部分になります。図内左側にある”PD controller”は、先ほど電源回路で示した”CC”などを制御する部分になります。本チップではその機能が無いため、別のチップで代用してねと記載がある程度です。
EEPROMは設定値を書き込んでおくためのメモリになります。I2Cの制御により、SCL/SDAの線をプルアップ抵抗から繋いでおけばOKです。余談ですが、回路図が巨大になると、I2Cでの接続先が複数ページに散らばってしまうことがあります。複数人で設計していると、各々がI2Cにプルアップ抵抗をつけてしまっていたことから故障につながるヒヤリハットがありました。DR(デザインレビュー)時にはこういった見落としが無いようにチェックする機構が必要になりますね。(まだI2Cの紹介記事を出していないので、機を見て記載します)
この辺りは回路としてはそこまで難しくはありません。どちらかというとソフトウェアによる制御がメインですので、データシート片手にソフトウェア部隊の方(もしくは自分)と調整が後ほど必要になる部分です。

#3 通信回路を理解しよう
最後にUSB2.0/3.2の通信回路に触れたいと思います。Upstream PortとDownstream Portの2種類がありますので、それぞれ見ていきましょう。
まずUpstream Portになります。図内左側にコネクタ、右側に本チップが記載されています。基本的にはシンプルに接続する形でOKです。コネクタ側から見ていきましょう。
まずは”VBUS”があります。こちらは電源回路の部分で取り扱いましたので基本的には割愛なのですが、チップ内部のステータス判定のために抵抗分割による電圧供給が実施されています。
次に、”SSTX”や”SSRX”などがあります。こちらは実際の通信線になりますので、チップに直接接続される形になります。なお、送信側に0.1uFほど直流成分をカットするためのコンデンサが入っています。
次に、”CC”ですが、こちらも電源回路の部分で取り扱いましたので割愛です。
次に、”DP”は、USB2.0のHigh-Speedに用いられる信号線になっています。こちらもチップに直接接続されていますね。
”SBU”や”SSRX”(2個目)はディスプレイポートという規格(通信)に対応させるための信号線になっています。利用する際は勿論つなぎますが、そうでない場合はNC(未接続)で良いでしょう。
最後にGNDやSHIELDは0VにしておけばOKです。なお、表記が違うのは、GNDはケーブル線内の信号に対し、SHIELDはコネクタの金属の部分の接触面であり、そもそも種類が違うためです。ESD(静電気)やノイズ耐性を強くするためには、このSHIELD部分を如何に内部の回路・通信から遠ざけるか(影響を少なくさせるか)がポイントですので、意外と重要な部分だったりします。なお、これらをEMC設計と読んだりします。

最後にDownstream Portになります。左側はチップ、真ん中にはMUXと書いてあるマルチプレクサ(信号を適宜切り替える機構)、右にはコネクタが記載されています。基本的にはUpstream側と同じですが、供給側ゆえの対応と、コネクタ仕様への対応に差分があります。
まずチップ側を見ると、”OVERCURT”や”PWRCTL”などの信号線がチップから出ています。今度はこちらが電源を供給する側なので、そのためにイネーブル制御などの信号線が出ています。
中段にMUXがあるのは、Type-Cのコネクタの仕様に対応するためです。レセプタ側のコネクタは上下どちらにも接続できるように設計されていることから、信号配置を見てみると両側に通信線があることが確認できます。状況に合わせて送信側/受信側を選択するために、途中で選択(マルチプレクサ)が必要になります。なお、TIとしてはHD3SS3212を推奨しています。また、USB2.0の通信仕様としては、1つの線に対して双方向の通信を実施することから、両側ともそのまま接続しています。あくまで、USB3.2で改良された、単方向の通信仕様が故の特徴になりますね。
なお、通信線にはどちらのケースでもESDや別のUSB側の故障対策としてコネクタの直前に対策チップを入れることもありますが、参照回路よりシンプルに記載されている理解です。

ここまでで、参照回路の理解とチューニングの方向性について取り上げました。特に電源回路部分についてはケース分けに応じた回路設計が必要になることから紹介までとなりましたが、いったんここまでとし、次回はパターン設計についてみていきたいと思います。