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を充電できるものとできないも
タイトルとURLをコピーしました