
今年もどうぞよろしくおねがいしますm(__)m
新年早々ですが、Nexus7におけるUSBと充電の両立について、過去の記事の修正という苦渋のスタートです。末尾にはXperiaに関する情報も掲載しました。
以前のブログで
「Nexus7はUSBホスト動作中の充電ができない。
充電するためには対応カーネルへの書き換えが必要。」
と説明していたのに、目から鱗な新製品を発見しました。

Android用充電機能付きUSBハブ 4ポートセルフパワータイプ
BSH4AMB03/N (buffalo)
Android用充電機能付き
「タブレットに充電しながらマウスや、キーボードなどのUSB機器が使えるので、バッテリーの持ちを気にせずパソコンのように使用できます。」
なんだと?しかも
対応機種
Nexus7(2013年モデル)、GALAXY Tab S 8.4、GALAXY note Ⅲ、Venue 8 Pro
どういう事だぁぁぁぁ!?
というわけで、調査やりなおし。
まずは以前の再現実験から。
カーネルを標準状態に戻したNexus7と、OTG三つ又ケーブル(Yケーブル)の場合。モバイルバッテリーで給電しますが・・・

やはり、Yケーブルと標準カーネルでは充電できません(充電アイコンが表示されていません)。
(1/17追記)USBハブが届いたので試してみました。手前がハブ、その奥がDDCです。

確かに、標準カーネルでも充電しながらUSBオーディオ再生できています。
USBハブの説明ページを読み返してみます。
対応機種
ACA-Dock機能に対応したAndroid端末
Nexus7(2013年モデル)、GALAXY Tab S 8.4、GALAXY note Ⅲ、Venue 8 Pro
ACA-Dock?なんじゃそりゃ。調べてみました。
ACAとはAccessory Charger Adaptorの略で、USBの追加規格BC(Battery Charging Specification)で定義された充電対応アダプターです。
この規格に対応した端末とアダプターが揃うと、USBホスト動作時にも充電が可能となります。
ACAの仕様では、USB端子のIDピン(OTG時はGNDに接続)を124kΩでプルダウン(抵抗経由でGNDに接続)することになっています。ACA対応端末では、IDピンに124kΩが接続されていることを検出するとUSBの電源を入力(充電)に切り替えたうえでUSBホスト動作するようになっています。
普通のUSBではホストとなるものが電源供給するルールなので、ホスト動作中にUSB端子からの充電はできないのですが、こんな追加規格ができていたんですね。
ACAに準拠したOTGケーブルを作るとすると、接続はこうです。
(1/9修正)4pinと5pinが逆だったので直しました。ごめんなさい!
問題はACAに対応した端末が非常に少ない(Nexus7でも2012は未対応)点と、一般に売られている充電対応OTGケーブル(Yケーブル)はIDピンを直接GNDに接続しておりACAには準拠していないということです。
市販の「充電対応」OTGケーブル(Yケーブル)
こちらのケーブルが接続された端末は、一部の機種を除き、通常のOTG動作と判定して電源ピンへの出力を開始します。つまり充電ができない方がUSB規格通りの端末ということになります。
(このケーブルで充電できる端末は、電圧検出など特殊な方法で電源ピンの入出力を切り替えているようです。)
以前に試したOTG Charge対応カーネルとは、ACA機能に対応していないYケーブルを使用するために、ACA判別ロジックを無視してOTG動作時の電源ラインを強制的に入力(=充電)に切り替えるためのものだったわけですね。
ということで結論を以下のように修正します。
Nexus7でUSBホスト動作時に充電するためには、以下のいずれかが必要。
1. ACA対応製品 ※Nexus7(2013)のみ
現時点で確認できているのは、バッファローのBSH4AMB03/Nのみ
2. OTG Charge対応カーネルに書き換えたNexus7と、充電対応OTG(Y)ケーブル
この場合のYケーブルは、IDピンをGNDに直結したものでよい。
なかなか複雑でした。Nexus7の1機種にしてこの調子じゃあ、売りにくいですわね。
大手PCアクセサリーメーカーが充電対応OTGケーブルを出してこないわけです。
残念ながら、今回紹介したUSBハブは電源にACアダプターを使うため、そのまま車載というわけにはいきません。ACアダプターの仕様がわかれば、電源を自作して車載できるかもしれません。
カーネル書き換えの方は実績もあり確実ですがroot化のリスクもあります。
結局ソフトとハードのどちらをいじるかという選択になります。
(1/6追記)ACアダプターの定格は12V/2Aだそうです。
12Vかぁ。ACC線直結ってわけにもいかないし、わざわざインバーター積むのも、ねぇ。ACCラインにLDOレギュレーターかます?・・・12V出力可能なモバイルバッテリーが一番確実かな。
このあたりのUSB充電については
詳しい解説ページがありましたので、興味ある方は読んでみてください。
ちなみに、充電端子がUSBと独立しているXperia Z3 Tablet Compactの場合はこうなります。

・車載USB電源セパレート 2.1A/2ポート T5229 (多摩電子工業)
・Xperia用マグネット充電ケーブル 0.5m (サンワダイレクト)
・USB-OTGケーブル カスタム品
・USBケーブル Supra USB2.0 1.0m (SAEC)
OTGケーブルはメーカー品が出ました。
・Androidデバイス用USB変換ケーブル USB-OTG10 (アイ・オー・データ機器)
自分の場合、つなぐのはDDCなのでこれで十分かと思いますが、オーディオ用のものをカスタムで製作していただきました。
「USB段階では大して変わらん」と公言している割にはUSBケーブルも替えてるし。だんだんこだわってきましたw
USB再生に関係なく、充電したい時にマグネットケーブルをピタッとつなぐだけ。
「
一方ロシアは鉛筆を使った」的なシンプルソリューションで楽ちんです。
なお後継のXperia Z4シリーズ以降の機種での充電はUSB端子に一本化され、マグネット充電端子は廃止になってしまいました。Z4のUSBがACAに対応していればUSBホスト動作と充電の両立は可能ですが対応しているかどうかは不明です。対応していたとしても、Nexus7の場合と同様にACA仕様のケーブル(市販品はまだない?)かACA機器を用意する必要があり少し面倒です。車載用途にはZ3以前の方が簡単なので残念です。
USBホスト動作と本体充電の両立は、スマホやタブレットでUSBオーディオする場合かなり重要なポイントになります(数時間再生したらバッテリー切れ、では実用になりませんからね)。自分はZ3TC以降端末の更新が止まっているのはこれで引っかかっているためで、対応機種は常時捜索中ですw
(補足)
Galaxy Tab Sの時に探し出した、LAVA社の充電対応OTGアダプターはACA機器であるという仮説を立てて、Nexus7(2013)で使ってみましたが、充電動作が不安定で使えませんでした。こちらは原因不明。
関連ページ
Android端末でUSBオーディオする方法まとめ