【コラム】

塩田紳二のアンドロイドなう

84 充電しながらUSBデバイスが使えるホストケーブル

 

84/120

写真01は、Nexus7-2013年版(以下Nexus 7と略す)の画面写真の一部を拡大したものです。マウスカーソルが表示されていて、バッテリが充電状態です。このマウスはUSBでNexus 7と接続していて、かつ、同時にNexus 7が充電状態になっています。いろいろと調べた結果、こうしたケーブルを簡単に作ることが可能だということがわかりました。今回は、このケーブルについて説明しようと思います。

写真01: バッテリアイコンが充電状態で、マウスカーソルが下にある。マウスは、USBで接続しており、「OTG充電ケーブル」を使うと、充電とUSBデバイスの接続が同時にできる

Nexus 7は、USBのBattery Charging Specification 1.2(以下[BC1.2]と略す)という仕様に準拠しているため、充電を行いつつ、かつ、USBデバイスを接続するケーブルを利用することが可能なのです。このように充電とUSB接続が同時に行えるケーブルをここでは「OTG充電ケーブル」と呼ぶことにします。なお、俗に「給電ケーブル」や「三つ叉ケーブル」などと呼ばれるコネクタが3つあるケーブルが市販されていますが、単純に電源ラインだけを接続したUSBケーブルやホストケーブルであることがほとんどです。

Nexus 7などのアンドロイドデバイスのほとんどは、マイクロUSBコネクタを装備しています。このマイクロUSBコネクタは、本体の充電に使われますが、「OTGケーブル」や「ホストケーブル」と呼ばれる専用のケーブルを接続することでUSBデバイスを接続できるようになります。このように、ホストになることもできれば、USBデバイスとしても動作できる機器をUSBでは、「OTGデバイス」(On The Go)といいます。

問題は、マイクロUSBコネクタが1つしかないので、充電かUSBデバイスの接続かのどちらか一方しか行えないことにあります。少しでも消費電力が大きなデバイスをOTGケーブルで接続してしまうと、本体のバッテリを消費していってしまいます。機器の種類や機器の状態によっては、画面がオフの間もUSBデバイスに電力が供給され続けるため、比較的短時間でバッテリがなくなってしまうこともあります。

こうした問題があるために作られたUSBの仕様が[BC1.2]です。仕様書は、以下のURLから入手可能です(英語のみ)。

http://www.usb.org/developers/docs/devclass_docs/BCv1.2_070312.zip

この仕様書では、ACA(Accessory Charger Adaptor)というものを定義しています。ACAは、OTGデバイスを充電しつつ、USBデバイス(Accessory)を利用可能にするためのアダプタです。こうしたアダプタには、たとえば、アンドロイドスマートフォンを装着してスピーカーから音楽を再生するような機器や充電スタンドとった機器が想定されています。

「OTG充電ケーブル」は、このACAを簡略化してケーブルとして扱えるようにしたものです。

OTG充電ケーブルとは

さて、ケーブルの回路を説明する前にOTGや[BC1.2]について簡単に解説しておきます。まず、OTGデバイスは、前述のようにケーブルの種類で、USBホストになったり、USBデバイスになることができるデバイスです。最近では、ほとんどのアンドロイドのスマートフォンやタブレットがOTGデバイスとして作られています。ただし、過去に出荷されたアンドロイド機では、OTGではなく、USBデバイスとしてだけしか動作しないものもあります。

OTGデバイスでは、接続するケーブルで、動作が変わり、このとき、USBの仕様に従って、電力の供給が行われます。電力は、「USBホスト」側から供給され、「USBデバイス」は、これを利用して動作します。ただしUSBデバイスは電力を持っていて、ホスト側からの電力を利用しないものも作ることができます。また、このときもケーブルを流れる電力の向きはかわりません。

OTGデバイスの役割が変わるということは、電力供給の向きも変わるということです(図01)。このため、OTGデバイスがUSBホストになっているときには、電力を供給する側であるために自身の充電を行うことができません。OTGデバイスを充電するためには、ホストケーブルではなく、普通のUSBケーブルを使って、他のホスト(PCなど)やACアダプタなどに接続する必要があります。このときACアダプタとUSBホストを区別するための仕様については、「第5回 つながっているのはACアダプタ、それともUSB端子」で解説しました。

図01: OTGデバイスは、ケーブルの種類によって、ホストとしてもデバイスとしても動作できる。このとき、USBケーブルを流れる電力の向きが一方向で違いに逆向きになる

[BC1.2]で、定義されているACAには、3つの動作モードがあり、そのうちのひとつに、OTGデバイスにUSBデバイスを接続しつつ、両方の電力を、別の電源から供給できるものがあります。(図02)は、ACAの論理的なダイアグラムです([BC1.2]仕様書からの抜粋)。

図02: [BC1.2]が定義するACAこと、Accessory Charging Adapter。OTG機器をホストとして動作させUSBデバイス(Accessory)を接続し、かつ、外部から双方に電力を供給するアダプタ

図02の左側にある「OTG Device」がスマートフォンやタブレットに相当し、右上の「Accessory」はUSBデバイス、右下の「CDP or DCP」がUSBチャージャーやUSB出力のACアダプタに相当します。ちなみにCDPは「Charging Downstream Port」、DCPは「Dedicated Charging Port」の略で、前者は、PCの充電用USBコネクタのように出力電力を大きくできるUSBポートをいい、後者は、USB電源のように電力供給のみを行う機器をさします。USB 2.0までは、電力供給は、500mAまでに制限されていて、こうしたタイプのUSBコネクタは「SDP」(Standard Downstream Port)と呼ばれてCDPとは明確に区別されています。

充電可能な動作モードとは図02の下にある表の最後の行にあるもので、このときには、図の「Charger Switch」が「Closeed」つまり、OTGデバイスとAccessoryの電源ラインは、CDP/DCPから供給されている状態で、OTGデバイスは「A-dev」状態(つまりホスト)になっていることになります。このモードを決めているのは、OTGデバイスのマイクロUSBコネクタのIDピンです。このIDピンは、OTGデバイスのホスト、デバイスの動作を切り替えるものでした。

ACAでは、このIDピンとGNDの間に抵抗器を入れ、その抵抗値でACAの状態を判定します。そのときる抵抗値は、RID_A(124kΩ)になります。

[BC1.2]に準拠したデバイスは、IDピンにRID_Aの抵抗が接続されていることを検出すると、電力の供給をやめ、マイクロUSBの電源ライン(VBUS/GND)から電力を受け、充電を行うようになります。

なお、[BC1.2]に準拠していないOTGデバイスでは、抵抗器のためにIDピンがGNDに接続されていないと判定されて、USBデバイスとして動作します。

実際の回路図など

筆者の作成したものは、ACAの特定のモードでのみ動作するものなので、図02の「Adapter Control」はなく、表の行4のモードに固定されてものです。つまり、ケーブルを作るなら、IDピンに抵抗器を接続して反対をGNDに接続(プルダウン)しておくだけです。

具体的な回路図としては、(図03)のようになります。一般に、マイクロUSBケーブルやホストケーブルでもでは、ID信号はケーブル側に出ていないのが普通なので、マイクロUSBコネクタ単体を入手してケーブルを作る必要があります。筆者は、手持ちの機材を利用してとりあえずブレッドボードで簡易配線したものを作って実験しました(写真02)。

図03: ACAの動作をもとに試作してみた「OTG充電ケーブル」の回路図

写真02:とりあえずバラックで作った「OTG充電ケーブル」。124kΩの抵抗が手に入らなかったので、手持ちの2つの抵抗を組み合わせた

RID_Aの値である124kΩは、一般的に流通している抵抗器の系列にはないものなので、この値の抵抗は、簡単には手に入らないと思います。また、[BC1.2]の仕様書では、RID_Aの値は、下が122kΩ、上が126kΩと、誤差は1.6%以内になっているので注意してください。抵抗値を検出するだけなので大きな電流は流れないはずなので1/4Wで大丈夫でしょう。

筆者は、手ともにあった誤差1%の金属皮膜抵抗120kΩと、誤差5%の4kΩの炭素皮膜抵抗の組み合わせで実験しました。テスターで計って抵抗の組み合わせが仕様内であることは確認しています。

ブレッドボードで実験したのは、ケーブルをつくっても、抵抗が2つだとさすがにマイクロUSBのコネクタケースの中にははいらないので、外に出すしかなく、だったら、工作が容易なものを最初に作って実験しようとおもったからです。

[BC1.2]対応機器がACAを区別しているのはプルダウン抵抗値の測定なので、おおまかな値でも大丈夫とはおもうのですが、厳格に測定する対応機器がないとも限りません。ちなみに仕様上は、[BC1.2]では、IDピンについて以下のものを検出しています。また、これ以外にも、DCPの区別などでD-/D+信号などの状態もチェックしています(詳しくは[BC1.2]の仕様書をご覧ください)。

RID_GND GND接続(1kΩ以下)
RID_A 124kΩ
RID_B 68kΩ
RID_C 36.5kΩ
RID_FLOAT 開放(220kΩ以上)

ケーブルを自作される場合、誤差1%のものを使ったり、実測して確認して、できれば実験してから組み上げるといいかもしれません。

また、USBの信号のうちD+とD-については、信号の扱いが微妙なので、ちゃんとしたケーブルで配線する必要があります。ブレッドボードを使う場合には、最短接続できるように工夫する必要があります。ここがいい加減だと、USBデバイスの認識などでエラーが出ます。

なお、アンドロイド機が[BC1.2]に対応しているのかどうかについては、基本的に情報がないのが普通です。このため、手持ちの機器で実験される場合、USBデバイスや電源側を接続せず、IDに124kΩでプルダウンして、アンドロイド側からの電源出力(VBUS)がオフになることを確認することをおすすめします。できれば、仕様書を読むなどして正確な理解のうえ実験するほうがいいでしょう。

また、本記事の回路図を元に作成したとしても、機器の仕様などにより違う結果となることが考えられ、最悪機器の破壊に至る可能性があります。どのような場合でも筆者や当サイトは何の責任もとることができません。実験やケーブルの作成はご自身のリスクでお願いします。

回路としては、抵抗ひとつつなぐだけのものなので、確認するのはすぐできるのですが、これで正しく動作するか、[BC1.2]に対応してないハードウェアだとどうなるのか? などを確認するために仕様書を読んで理解するのにちょっと時間がかかってしまいました。もし仕様書を読まれる場合、OTG関連のドキュメントやUSB 2.0の仕様書にも目を通して置いた方がいいでしょう。

本連載は、2014年11月4日にAndorid情報のWeb専門誌「AndroWire」に掲載した記事を再構成したものです。

84/120

インデックス

連載目次
第120回 「Android N」の新プレビュー版、Developer Preview 4が登場
第119回 「Android N」プレビュー その3
第118回 「Android N」プレビュー その2、Nの改良点
第117回 「Android N」プレビュー その1
第116回 「ZenWatch 2」の充電動作を調べて見た
第115回 Android Wearのバッテリ関連機能を検証してみる
第114回 Android Wearを再評価してみる
第113回 Nexus 7をカーナビにしてみた(その3)
第112回 Nexus 7をカーナビにしてみた(その2)
第111回 Nexus 7をカーナビにしてみた(その1)
第110回 画面キャプチャに便利なシステムUI調整ツール
第109回 2016年の注目はタブレット
第108回 「Nexus 5X」と「USB Type-C」
第107回 「Nexus 5X」と「LTE」
第106回 Android 6.0 ストアとアプリ
第105回 Nexus 5XでみるAndroid 6.0 Marshmallow
第104回 「Nexus 5X」を買いました
第103回 「Android Mのプレビュー3」を試す(前編)
第102回 Android M プレビュー2 (準備編)
第101回 「LG G Watch」のその後
第100回 「Zenefone 2」買いました
第99回 ちいさくてかわいい「LG L20」、イギリスで買ってみました
第98回 「Google日本語入力」アップデートで何が変わった?
第97回 どのアプリで開く? 「インテント」の仕組み
第96回 「OneNote」をつかってみた
第95回 ロリポップのマテリアルデザインをまとめてみる
第94回 「Email Markup」って何?
第93回 Outlookは来たけれど
第92回 Office Previewつかってみた
第91回 Google INBOXを使ってみる
第90回 AndroidWareの文字盤を自作する
第89回 Android Ware Lollipop版
第88回 「Nexus Player」を試す - ソフトウェア編
第87回 「Nexus Player」を試す - ハードウェア編
第86回 「Nexus 9」ファーストインプレッション - ソフトウェア(Lollipop)編
第85回 「Nexus 9」ファーストインプレッション - ハードウェア編
第84回 充電しながらUSBデバイスが使えるホストケーブル
第83回 Android "L"プレビューとAndroidWareがアップデート
第82回 ちょっとイケてる「Kyocera Hydro Vibe」
第81回 Android "L" バッテリ消費を監視する
第80回 アクセスポイントの基本を知る
第79回 OneDriveとGoogleドライブ
第78回 シェルのネットワーク関連コマンド
第77回 "L"の中身
第76回 アンドロイドウェア(Android Wear)は暫定バージョン?
第75回 LGのスマートウォッチ「G Watch」
第74回 "L"がくる
第73回 次は「Lollipop」か? その前にKitKatが4.4.3に
第72回 VPNを使う その3 「VPNをアンドロイドから使う」
第71回 「Chromecast」とは?
第70回 VPNを使う その2 「VPNサーバーを立てる」
第69回 VPNを使う その1 「基礎編」
第68回 アンドロイドのストレージ
第67回 「NVIDA SHIELD」のソフトウェア
第66回 「NVIDA SHIELD」のハードウェア
第65回 HDMIとMHL、SlimPort - ディスプレイ接続端子を整理してみる
第64回 「LG L1 II」を買ってみた
第63回 アンドロイドに音楽を「聞かせる」
第62回 住所録の秘密
第61回 Outlook.comをカレンダーに表示する
第60回 ソースコードはどこにある?
第59回 AndroidのBluetoothテザリングとWindows 8.1
第58回 NFCでマニュアル参照を簡単に
第57回 あらためて「ポータブルアクセスポイント」をきちんと試してみる
第56回 「ビルド番号」ってなに?
第55回 画面キャプチャをバッチファイルで実行
第54回 adbコマンドをちょっと解説
第53回 「android 4.4 "Kit Kat"」で画面を録画する
第52回 「android 4.4 "Kit Kat"」の内部的な変更点
第51回 「android 4.4 "Kit Kat"」を解説
第50回 「Nexus 5」を買ってみた
第49回 Google Keepはリマインダーだった
第48回 android 4.2からサポートされた「ワイヤレスディスプレイ」
第47回 画面キャプチャー
第46回 ヘッドセットの秘密
第45回 Nexus 7のLTEモデル
第44回 Nexus 4買いました。アメリカで。
第43回 ブートローダーとfastboot
第42回 Jelly Beans 4.3 Returns
第41回 Chromecast、テレビに刺さる
第40回 デバイスマネージャでAndroidの位置を確認
第39回 新しいNexus 7を買ってみた
第38回 Jelly Beans 4.3
第37回 レノボ「K900」を国際版化
第36回 NFCで遊ぶ
第35回 自宅で簡単ファイル転送
第34回 レノボ「K900」のカスタマイズされたJelly Beansを見てみる
第33回 CloverTrail+のスマートフォン、レノボ「K900」を買ってみた
第32回 AndroidがBluetooth 4.0を正式サポート
第31回 ARMの次世代CPU「Cortex-A12」
第30回 SDKをインストールしよう
第29回 ウィジェットを活用
第28回 QRコードでお手軽設定
第27回 XPERIA Tipoとロンドンアンロック屋事情
第26回 diNovoキーボードを使う
第25回 キーボードをカスタマイズする
第24回 Androidキーボードのしくみ
第23回 2段階認証を使おう
第22回 いらないプリインストールアプリを削除
第21回 64bitなんて必要なのかしら?
第20回 アメリカでアンドロイドの読書端末を買ってみた
第19回 Android 4.2の新機能
第18回 Android Beamって何だ?
第17回 NFCで何ができる?
第16回 Nexus 7をアメリカで買ってみた
第15回 AndroidをPCにつなぐと
第14回 Androidの記憶領域
第13回 Google Nowを使ってみる
第12回 AndroidのUSBホスト機能
第11回 デュアルSIMを使ってみる
第10回 キーボード一体縦型Androidマシン
第9回 Androidの言語設定
第8回 アンドロイドに道を聞く
第7回 Google Playはどうやってアプリの公開を制御しているのか?
第6回 「Acer A100」がICSになった
第5回 つながっているのはACアダプタ、それともUSB端子
第4回 スマートフォンを普通の電話としてつかってみた
第3回 Androidからの通知を表示可能な腕時計
第2回 アームを誤解してませんか?
第1回 MWCで見たAndroid

もっと見る

人気記事

一覧

新着記事

TVアニメ『アルスラーン戦記 風塵乱舞』、ミニ朗読劇の第四章を公開
[00:06 7/2] ホビー
【コラム】Windows 10ミニTips 第96回 OneDriveにアップロードできるファイルサイズ
[00:00 7/2] パソコン
『ジョジョ』第4部、第14話の先行場面カット&あらすじを公開ッ!
[23:52 7/1] ホビー
[今週シネマ]1、2日公開の映画 「アリス・イン・ワンダーランド/時間の旅」「セトウツミ」「全員、片想い」…
[23:49 7/1] エンタメ
[DOCUMENT OF KYOSUKE HIMURO]氷室京介がライブ無期限休止を決断するまでを追う
[23:38 7/1] エンタメ