コンテンツへスキップ

[レビュー] 安価な3ポートUSB-HUB(SDカードリーダ付き)

Arduinoと接続して使うのに安価なUSB-HUBを探していると、3ポートUSB-HUB+SDカードリーダ付きの製品を発見しました。先人のレビューを見ている限りは動くようですが、世の中にはUSB-HUBと称してUSBの配線をそのまま分配しただけのものもあるようです。もしかして1ポートしか認識しなかったりするかもしれません。動けば儲けもの、ということで購入してみました。

 

レビュー製品(USB-HUB + SDカードリーダ)

モノはUSBポートx3にSDカードリーダ機能が付いているものです。お値段はAliexpressで送料込み約300円でした(私はセール中に235円で購入)。元々は100均ショップで安いUSB-HUBを探したものの発見出来ず、その代替として購入する運びとなりました。

ちなみに製品の到着はAliexpressで注文してから約2週間でした。

USB-HUB SDカードリーダ
2 in1 Combo Super Speed USB 2.0 3 Port Splitter HUB+TF SD Card Reader

 

動作確認

PC環境(Windows10 64bit)

まずはPCに接続してみました。どうやら正常に認識しているようです。次に手元にあるマウスやらキーボードやらのUSB機器を接続していきました。ついでにデジカメから引き抜いたSDカードも挿入してみます。

USB-HUB SDカードリーダ
取り合えず全ポートに刺せるだけ刺してPCに接続してみました

確認してみると、おお、問題なく動いているようです。正直なところまともに動くかどうか五分五分で考えていたので嬉しいです。

ただ、USB機器全般に言えることですが電源が弱いと動作不安定になります。この製品もセルフパワーのUSB-HUBにこの製品を接続したときは問題なく動作しますが、PCに直接接続すると電源が弱いのか動きが不安定になることがありました。

VBUS電圧チェッカー
USB電源の容量にご注意

Arduino+USB-Host-Sheild環境

次に本来の目的であるArduino環境に接続してみました。構成は以下の通りです。

  • ハードウェア:Arduino Uno互換ボード(Atmega328p搭載) + USB-Host-Shield互換ボード
  • ファームウェア:USB Host Library 2.0 + USB-HUBデモスケッチ
Arduino USB-HUB
Arduino+USB-Host-ShieldにUSB-HUBを接続する

動作確認にはUSB Host Library付属のサンプルスケッチを使用しました。USB-HUBを接続してリセットしてやると問題なくディスクリプターテーブルを取得出来ました。内容を見るとUSB-HUBとマスストレージの2つが検出されているのが分かります。


41
--
String Descriptors:
Product: USB2.0 Hub

Device descriptor:
Descriptor Length: 12
Descriptor type: 01
USB version: 0200
Device class: 09
Device Subclass: 00
Device Protocol: 00

Max.packet size: 40
Vendor ID: 05E3
Product ID: 0618
Revision ID: 8753
Mfg.string index: 00
Prod.string index: 01
Serial number index: 00
Number of conf.: 01

Configuration descriptor:
Total length: 0019
Num.intf: 01
Conf.value: 01
Conf.string: 00
Attr.: E0
Max.pwr: 32

Interface descriptor:
Intf.number: 00
Alt.: 00

Endpoints: 01
Intf. Class: 09
Intf. Subclass: 00
Intf. Protocol: 00
Intf.string: 00

Endpoint descriptor:
Endpoint address: 81
Attr.: 03
Max.pkt size: 0001
Polling interval: FF

09
--
String Descriptors:
Manufacturer: Generic
Product: USB Storage

Device descriptor:
Descriptor Length: 12
Descriptor type: 01
USB version: 0200
Device class: 00

Device Subclass: 00
Device Protocol: 00
Max.packet size: 40
Vendor ID: 05E3
Product ID: 0752
Revision ID: 0233
Mfg.string index: 03
Prod.string index: 04
Serial number index: 00
Number of conf.: 01

Configuration descriptor:
Total length: 0020
Num.intf: 01
Conf.value: 01
Conf.string: 00
Attr.: 80
Max.pwr: 31

Interface descriptor:
Intf.number: 00
Alt.: 00
Endpoints: 02
Intf. Class: 08
Intf. Subclass: 06

Intf. Protocol: 50
Intf.string: 00

Endpoint descriptor:
Endpoint address: 81
Attr.: 02
Max.pkt size: 0040
Polling interval: 00

Endpoint descriptor:
Endpoint address: 02
Attr.: 02
Max.pkt size: 0040
Polling interval: 00

Addr:41(1.0.1)
Addr:9(0.1.1)

これを見て、もしかしてSDカードリーダはデータ保存に使えるのでは、と考えたのですが、Arduino Uno/nano(ATmega328)では内蔵メモリ容量の制約からマスストレージは使用不可のようです。残念。Arduino Mega(ATmega1280/2560)やSTM32ボードなど内蔵メモリが多い環境であれば可能かと思います。

 

USB-HUBの分解

さて、製品そのものはきちんと動いてくれそうで一安心です。ここで個人的に中身も気になるので分解してみました。製品のケースはプラスチックのぽっちが嵌っているだけなのでマイナスドライバーでこじってやれば簡単に分解出来ます。

USB-HUB 分解
USB-HUBの基板(表)

USB-HUB 分解
USB-HUBの基板(裏)

USBケーブルのVBUS配線は相変わらず細いですね。そこそこ電流が流れるようなUSB機器を繋ぐと電圧降下して不安定になるかも。

基板に載っていたのは"GL857L"というチップで台湾のGenesysというメーカのICのようです。データシートは見つけることが出来ませんでしたが、機能概要らしきものが以下サイトに記載されています(USB2.0-HUB+SD/MMCカードリーダ機能搭載、SDXCも対応?)。ちなみにUSBコネクタは青色ですがUSB2.0対応です。

GL857L
USB-HUB基板に使われていたIC(GL857L)

 

所感

300円という価格ですがしっかりと動いてくれました。この製品から出ているUSBケーブルは短いので持ち運びするノートパソコンに繋ぐような用途では邪魔にならず便利です。USB-HUBとSDカードリーダが欲しいという方は購入するのもありでしょう。

個人的には外部電源から5V供給出来るように改造して、USB給電対応のArduinoを鈴なりに繋ぐような使い方を考えています(電源+通信がUSBケーブル一本で出来る)。AmazonでUSB-HUBを探しているともう少しお値段がするものばかりでどうしようかなぁと悩んでいましたが、これなら気軽に組み込み機器に繋いで遊べそうです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください