SEGGER emPower USB-Host+の紹介

これは何?

SEGGER社が開発したembOSというRTOSの上で動くemUSB-Hostという組み込み用のUSBプロトコルスタックを含むフレームワーク?の評価ボードみたいです。
簡単に言うとArduinoみたいな感じですね(全然違う)

開発元のSEGGERの日本国内代理店がEmbiTeKみたいです。私はEmbiTeKから2023年2月に¥4,290で購入しました。

このボードは呼び名がいっぱいあって正直よく分からないんですが、emPowerという評価ボードシリーズの廉価版がこれっぽいので、"emPower USB-Host+"というのが正式名称だと思っています。

開発はSEGGER Embedded Studioという専用のIDEで行い、書き込みとデバッグまでできます。

FWの更新はUSBメモリを使っても出来るらしいのですが、いまいちよく分からなかったので毎回IDEからコンパイルして書き込んでます。

電源&J-Link専用のMicroUSBポートと別で、USB 2.0のfull speed(12Mbps)とhigh speed(480Mbps)の2つのType-Aポートを備えています。ここにはUSBハブも繋げるようです。

LEDインジケータ

LED0~4の5つのLEDがユーザーからの任意操作が可能です。

(画像は公式ページより引用。LEDの配置を青枠で追記)

PWRのGreenLEDは電源投入中は常時点灯なので、ユーザー側からの操作は不可能です。

また、J-LinkのLEDもステータスインジケータになっているため、ユーザー側からの任意操作は不可能です。
J-Link LEDによるステータスの詳細はこちら。Bi-colorの方ですね → https://wiki.segger.com/UM08001_J-Link_/_J-Trace_User_Guide#Main_indicator

LED0&2 または 1&3 または(PWR Greenは常時点灯のため)4 を点灯させ、隣り合うGreen&Redを点灯させた状態にすると、Red LEDの影響でGreen LEDがOrangeに見えるので、実際はOrange&Redに見えます。

その他有用なリンク

よく公式のリンクが壊れてるので備忘録としてまとめておきます。

何ができるの?なんで買ったの?

USBホスト機能が使えます。

それだけならラズピコとかM5Stackとか色々選択肢はあるんですが、特筆すべき点としてAudio(USB Audio Class 1.0)を始めとした様々なデバイスクラスをデフォルトでサポートしています。
サポートしてるクラスドライバの詳細はこちら → emUSB-Host 対応クラスドライバ
また、こちらのリンク先にはサンプルが置いてあります → emUSB-Host Samples

USBホスト機能サポートと謳っててもデフォルトでサポートしてるのはキーボードやマウス等のHID程度なものが多く、特にオーディオサポートは探した限りこれしか見つかりませんでした。
さすがにオーディオのためだけに(raspi含めた)Linuxは使いたくないので、ワンボードなやつを探していました。

やりたかったのは、3.5mmでやり取りしてるアナログオーディオ信号をCreative BT-W3からBluetooth(aptX LL)で飛ばすことです。
スピーカーから出力してる音を、スピーカーとBTの両方で使えるようにしたかったんですよね。

一応調べたらそういう用途にピッタリなデバイスがプリンストンから出てるんですが、元々BT-W3はスマホに挿して使ってて、BTイヤホンの接続先切り替えって結構面倒だし、買うにも結構いい値段するし、BT-W3一個でどうにかなれ〜!というのが今回の主なモチベです。

なおCreative BT-W3は、ホストにUSBオーディオバイスとして接続され、ホストからUSBで受け取った音声信号をaptX LLやその他コーデックで圧縮してBluetoothで飛ばします。
なので、BT-W3経由で音声を飛ばしたいなら、まずはUSBホストとして音声データをUSBで渡せる必要があります。

実際に↑のやりたかったことは成功したので、その話はまた次回書きたいと思います。

今回はボードの紹介だけなのでこの辺で!

(この記事は、↑を3月に完成させたにも関わらず全然まとめ記事書く気が起きないまま半年以上経過したので、とりあえずボードだけでも紹介しておいて、本編を書くモチベを上げるための記事です。)