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でプルダウンされている機器を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ではないケーブルを使用すれば回避することができます

  1. USB 2.0で3A対応
  2. USB 2.0で5A対応
  3. USB 3.2で3A対応
  4. USB 3.2で5A対応

USB Type-C to Type-Cケーブルは上記4種類に大別できますが、このうち、2〜4は100% E-Markedです。仕様でそのように定められているため、E-Markedでなければそれは仕様違反品です。 (cheeroのやつとか)

そのため、2〜4のタイプに該当するタイプのケーブルでは、RP4と組み合わせた場合にRP4が動作しない可能性が高いです。

逆に、1だけはE-MarkedでなくてもOKということになっています。100%断言はできませんが、少なくとも私が知る限りでは、1のタイプのケーブルでE-Markedなものは見たことがありません。

つまりどういうことかと言うと、USB 2.0で3A対応のC to Cケーブルを使用すれば、ほぼ100%の確率でRP4が動作しない事象を回避することができます。

公式声明

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

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