Raspberry Pi 4のUSB Type-Cポートが仕様通りでない話の詳細

Raspberry Pi 4のUSB Type-Cポートが仕様に準拠した設計になっていない件について、日本語でマトモに解説している記事がないので解説してみます。

※この問題を最初に報じたscorpiaの記事の5番煎じみたいな記事なので、英語に抵抗ない人はそっちを読むことをオススメします。

広告

2019年12月1日 追記

技適マークありのRaspberry Pi 4が日本でも販売開始となりましたが、OKdo版・Element14版、どちらも本記事で解説している不具合は修正されている模様です。

見分け方とかは以下のサイトで解説されてます。

日本で出たRaspberry Pi 4と電源問題とファームウェアの件 - あっきぃ日誌
わたしがKSYでぽちったRaspberry Pi 4が届きました。中一日かかったようです。郵便局がパンクした?wパッケージに技適番号確認。ありがたや。表面。特にコメントなし。裏面が日本人にとって本番で、こちらに技適の番号の印字が入りました。ちなみにGPIOポート付近には別の国の認証が印字されています。日本同様に解禁とな

追記終わり

この記事の要点

一部 (大半?) のUSB Type-C ACアダプタとE-MarkedケーブルをRaspberry Pi 4の電源として使用した場合に、ACアダプタのVBUS出力がオンにならず、RP4が駆動しません。

USB 2.0かつ3A対応のC to Cケーブルを使うことによって、この事象を回避することができます。

詳細

‎Raspberry Pi Foundationが公開しているRP4の回路図を確認すると、USB Type-CポートのCC1・CC2が1つのR79でGNDへと接続されています。

Raspberry Pi 4 Model B Schematics

しかしながらUSB Type-Cの仕様では、Sink (受電側) のCC1・CC2はそれぞれ別々のRd (5.1 kΩ) でGNDに接続する (プルダウンする) ように定められています。

USB Type-C Cable and Connector Specification, Release 1.4

Raspberry Pi 4のようにCC1・CC2がショートされて1つのRdでGNDへ接続されている機器をE-Markedケーブルで駆動させようとした場合、ACアダプタ – ケーブル – RP4の回路は以下のような状態となります。

①-GND間の抵抗は図の通りRaとなります。 (Raは800〜1200 Ω)

②-GND間の抵抗は1 / (1/Ra + 1/Rd)となり、取り得る値は692〜971 Ωとなります。

②の取り得る値の一部がRaの範囲と被っているため、使用するE-Markedケーブルによっては、CC1・CC2の両方がRaでプルダウンされた場合と同じ状況となります。

CC1・CC2の両方がRaでプルダウンされた状態は、USB Type-Cの仕様では「Audio Adapter Accessory Mode attached」とされています。

USB Type-C Cable and Connector Specification, Release 1.4

「Audio Adapter Accessory Mode attached」と言われても何のことか分からない方が多いと思いますが、早い話が「アナログ型のUSB Type-C – イヤホンジャック変換アダプタが装着された状態」です。

USB Type-C - イヤホンジャックの変換アダプタは2種類あるので要注意
USB Type-Cをイヤホンジャックに変換するアダプタは2種類あるので、購入する際は注意しましょう。

ACアダプタから「アナログ型のUSB Type-C – イヤホンジャック変換アダプタが装着された」と認識されるためにACアダプタの出力がオンにならず、結果としてRP4が駆動しません。USB Type-Cの仕様的にはACアダプタの出力がオンにならないのが正しい挙動なので、USB Type-CポートコントローラICを搭載しているような「ちゃんとしているACアダプタ」ほど、RP4 + E-Markedケーブルで動作しない可能性が高いです。 (scorpiaの記事によるとMacBookとPixel 3の付属ACアダプタでは動作しなかったとか)

試しにAnker PowerPort Speed PD 60 [A2015113] (レビュー記事) にエレコム AD-C35BKを接続してみましたが、VBUSは0Vのままでした。これでRP4が駆動するわけがないですね。 (というかこれでVBUSに電圧が印加されていたらそれはそれでマズい)

 
広告

回避方法

RP4の設計不良による今回の現象は「E-Markedケーブルを使用した場合にのみ」発生します。つまり、E-Markedではないケーブルを使用すれば回避することができます

2019年7月時点でのUSB Type-C to Type-Cケーブルは以下の4種類に大別できます。

  1. USB 2.0 / 3A
  2. USB 2.0 / 5A
  3. USB 3.2 / 3A
  4. USB 3.2 / 5A

この4種類のうち、2〜4は100% E-Markedです。仕様でそのように定められています。E-Markedでなければそれは仕様違反品です。 (cheeroのやつとか)

逆に、1だけはE-MarkedでなくてもOKということになっています。C to Cケーブルとしては最もスペックが低く、必要でもないのにわざわざコストを掛けてE-Markedにする理由がないため、基本的にどのケーブルもUSB 2.0 / 3A品は非E-Markedです。100%とは断言できませんが、少なくとも私はUSB 2.0 / 3AでE-Markedなケーブルを見たことがないです。

そのため、USB 2.0 / 3A対応のC to Cケーブルを使用すれば (ほとんどの確率で) 上記の事象を回避できます。

公式声明

Tech Republicの報じるところによると、Raspberry Pi Foundationの共同設立者Eben Upton氏が「this will be fixed in a future board revision」と言ったらしいので、将来的には修正される模様です。 修正されました。

技適マークのある国内正規版であればこの記事で説明した不具合は修正されているので、心配せず買って大丈夫です。

タイトルとURLをコピーしました