Nintendo SwitchのACアダプターでPixel 3を充電できなかったので原因を調べてみた

※当サイトでは通販サイトへのリンクの一部にアフィリエイト広告を使用しています。

Nintendo Switchに付属してきたACアダプターでPixel 3を充電してみたところ充電できなかったので、その原因を探ってみました。

どんな現象が起きたのか

私の手持ちのPixel 3 (Android 10 / QQ2A.200405.005) をNintendo Switch (2019) 付属のACアダプターで試しに充電してみたところ、充電 → 切断を繰り返す現象が発生しました。

この記事では、その時、内部的には何が起きていたのかについて説明します。

Switch純正ACアダプターの仕様

使ったのはこのACアダプターです。

Nintendo Switch (2019) に付属してきた型番「HAC-002(JPN)」で、定格出力は「5.0V/1.5A」と「15.0V/2.6A」の2系統です。

上記はNintendo HAC-002(JPN)が実際にしゃべるSource_Capabilitiesメッセージです。外装に印字されている定格出力と同じ「5.0V/1.5A」「15.0V/2.6A」のFixed Supply PDOを通知します。

なぜPixel 3の充電が失敗するのか

上記はHAC-002(JPN)とPixel 3を接続した際のUSB PDのパケットのログです。

  1. Nintendo HAC-002(JPN)が「5.0V/1.5A」「15.0V/2.6A」の出力をPixel 3に対して通知 (Source_Capabilitiesメッセージ)
  2. Pixel 3が「5.0V/1.5A (Max Currentは3.0A)」を要求 (Requestメッセージ)
  3. HAC-002(JPN)はそのリクエストを拒否 (Rejectメッセージ)
  4. Hard Reset
  5. 1〜4が無限に繰り返される

という現象が起きています。Pixel 3を接続すると充電 → 切断を繰り返すのは、Hard Resetが無限に繰り返されているのが原因と思われます。

そしてその無限Hard Resetですが、恐らくPixel 3がMaximum Operating Currentを3.0Aでリクエストしていることが原因です。こういう風に書くとPixel 3が悪いように聞こえるかもしれませんが、USB PDの仕様ではCapability Mismatchのフラグを立てていればSource_Capabilitiesメッセージ以上の値をMaximum Operation Currentでリクエストしても良いことになっているため、Pixel 3のRequestメッセージに問題はありません。あくまでHAC-002(JPN)の問題です。

他のデバイスを充電した場合

Pixel 3だけではデータが足らないので、他の機種についても調べてみます。

まずはOnePlus 7T。

HAC-002(JPN)からのSource_Capabilitiesメッセージに対して、5V/1.5Aをリクエストします。Pixel 3と違ってMaximum Operating Currentも1.5Aでリクエストしているため、正常に充電できます。これは特に珍しい話ではなく、大体の機種はMaximum Operating Current = Operating Currentでリクエストします。Pixel 3みたいなパターンのほうがレアだと思います。

次はiPad Pro 11 (2018) 。

iPad Pro 11はPixel 3と同じく、Maximum Operating Current = 3.0Aでリクエストします。しかしPixel 3とは異なり 、 HAC-002(JPN)でも充電することができます。

なぜiPad Pro 11は充電できるのかというと、USB PDのネゴシエーションが以下のような流れで行われるからです。

  1. HAC-002(JPN)が「5.0V/1.5A」「15.0V/2.6A」の出力を通知 (Source_Capabilitiesメッセージ)
  2. iPad Pro 11が「5.0V/1.5A (Max Currentは3.0A)」を要求 (Requestメッセージ)
  3. HAC-002(JPN)はそのリクエストを拒否 (Rejectメッセージ)
  4. Hard Reset

ここまではPixel 3と同じです。しかし、これ以降の挙動がPixel 3と異なるため、無限Hard Resetが起きません。

  1. Hard Reset後、HAC-002(JPN)が「5.0V/1.5A」「15.0V/2.6A」のSource_Capabilitiesメッセージを送信 (2回目)
  2. iPad Pro 11が「5.0V/1.5A」をリクエスト (今度はMax Currentも1.5A)
  3. HAC-002(JPN)はiPad Pro 11からのリクエストを了承 (Acceptメッセージ)
  4. 電力供給開始 (PS_Readyメッセージ)

iPad Pro 11はHard Resetが起きるとそのことを覚えていて、2回目のリクエストではMaximum Operating Current = Operating Currentでリクエストするようです。そのためHard Resetが起こらず、正常に充電できます。

まとめ

  • Nintendo SwitchのACアダプターでPixel 3を充電できない事象はあくまでプロトコルレベルの問題
  • Pixel 3はUSB PDの仕様の範囲内で動作している
  • Nintendo SwitchのACアダプターが原因っぽい (Source_Capabilitiesメッセージ以上の電流をリクエストされると問答無用でHard Resetを実行する?)

↓続き↓

Nintendo SwitchのACアダプターにはPixel 3を充電できる個体とできない個体があるっぽい
前回の「Nintendo SwitchのACアダプターでPixel 3を充電できなかったので原因を調べてみた」の続きです。 タイトルの通り、Nintendo SwitchのACアダプターにはPixel 3を充電できるものとできないものがある