Team for GR-PEACH Producer Meeting

暫定版GR-PEACH用USBHostライブラリの公開

14 Jan 2015

暫定版GR-PEACH用USBHostライブラリを公開します。 正式版の登録は1月末を予定しています。

http://developer.mbed.org/teams/GR-PEACH_producer_meeting/code/GR-PEACH_USBHost/

本サンプルを使用する際、ボード上のJP3をショートしてください。

サンプルの説明

main.cの「#define USB_HOST_TEST 1」を書き換えることで5種類の動作を確認できます。

  • USB_HOST_TEST 1
    マウス動作のサンプルです。接続したマウスを操作すると、ボタン情報と位置情報をprintfにて表示します。

    【Handbookサンプルとの比較】
    USBHostMouseのサンプルをそのまま使用しています。
  • USB_HOST_TEST 2
    キーボードの動作サンプルです。接続したキーボードを操作すると、キー情報をprintfにて表示します。

    【Handbookサンプルとの比較】
    USBHostKeyboardのサンプルをそのまま使用しています。
  • USB_HOST_TEST 3
    ファイル書き込みの動作サンプルです。マスストレージデバイスを挿入すると、デバイスのルート直下に"test1.txt"という名前のファイルが作成されます。
    以下の動作を500ms間隔で実行します。
    1. "test1.txt"をオープン
    2. ファイル終端に"Hello fun USB World: %d!\r\n"(%dは0からカウントアップ)を追加
    3. "test1.txt"をクローズ
    #FATFileSystemライブラリ、および、USBHostMSDクラスドライバの仕様により、接続できないデバイスがある場合があります。
    #セクタサイズ512byte、FAT32のデバイスでは動作することを確認済みです。

    【Handbookサンプルとの比較】
    USBHostMSDのサンプルに対して以下の変更を行っています。
    1.ファイルに書き込む文字列を"Hello fun SD Card World: %d!\r\n"から"Hello fun USB World: %d!\r\n"に変更しています。
  • USB_HOST_TEST 4
    USBシリアル動作のサンプルです。USBSerialに設定したmbedボードを接続すると、受信したデータをprintfにて表示します。

    【Handbookサンプルとの比較】
    USBHostSerialのサンプルに対して以下の変更を行っています。
    1.serial.connected()の参照箇所を削除。(serial.connected()の処理に問題があり、戻り値がtrueにならない為。)
    2.serial.baud(9600)を追加。(Function(Device)側に接続するUSBSerialの仕様でボーレートなどの通信設定がされないと通信が開始されない為。)
    (USBHostSerialの問題についてはARMさんに報告しました。)
  • USB_HOST_TEST 5
    HUB接続の動作サンプルです。HUB先にマウスとキーボードを同時に接続できます。

    【Handbookサンプルとの比較】
    USBHostHubのサンプルをそのまま使用しています。

GR-PEACH用USBHostの仕様

  • USB Hi-Speedに対応。
  • 外部HUB1段の接続に対応。

クラスドライバ作成者向け情報

  • コントロール転送、バルク転送、インタラプト転送に対応しています。
  • 同時に通信できるインタラプト転送のエンドポイント数は4です。
  • SET_ADDRESSにて設定可能なデバイスアドレスは1~10です。
  • mbedのUSBHostはOHCIで実装されています。 GR-PEACH用USBHostはOHCI Wrapperを経由することで動作します。 OHCI Wrapperはmbedライブラリで利用するレジスタ機能を実装しています。
  • 本来OHCIはUSB Full Speedまでしかサポートしませんが、本サンプルではUSBポートに直接挿入されたデバイス、および、HUB先に接続されたデバイスの通信速度を自動判別し、Hi-Speed通信を行います。
    通信速度の自動判別機能をOFFする場合は下記の変更を行ってください。(この場合、クラスドライバが設定したエンドポイントの設定通りの通信速度(Full or Low)となります)

USBHost\USBHost\USBHALHost_RZ_A1.cpp"

void USBHALHost::init() {
    ohciwrapp_init(&_usbisr, 1);
    ↓
    ohciwrapp_init(&_usbisr, 0);
}
09 Jan 2015

「USB_HOST_TEST 4」にUSBシリアル動作のサンプルを追加しました。
サンプルを動作させる為には、接続対象としてUSBSerialに設定したmbedボードが必要です。

14 Jan 2015

「USB_HOST_TEST 5」にHUB接続の動作サンプルを追加しました。
各サンプルの説明に【Handbookサンプルとの比較】を追加しました。

20 Jan 2015

USBHostライブラリの正式版が公開されました。
HandbookからUSBHostの各サンプルをインポートすることでご利用になれます。
# インポート後にmbedライブラリをmbed-srcに差し替えていただく必要がります。
# USBHostご利用の際はGR-PEACHのJP3をショートしてください。

また、USBHostSerialについても修正されましたので、Handbookからインポートしたmain.cppのままご利用になれます。(「USB_HOST_TEST 4」の変更は必要ありません)