|
RXduino
1.20a
RXduinoマニュアル 最終更新日 平成26年6月29日
|
RXマイコンの内蔵USBを利用して、USBホスト機能を実現する [詳細]
構成 | |
| struct | DeviceDesc_t |
| デバイスディスクリプタ構造体 [詳細] | |
| struct | ConfigDesc_t |
| コンフィグディスクリプタ構造体 [詳細] | |
| struct | EndpointDesc_t |
| エンドポイントディスクリプタ構造体 [詳細] | |
| struct | InterfaceDesc_t |
| インタフェースディスクリプタ構造体 [詳細] | |
| struct | USBHostInfo_t |
| USBホストの情報が格納された構造体 [詳細] | |
型定義 | |
| typedef struct DeviceDesc_t | DeviceDesc_t |
| デバイスディスクリプタ構造体 | |
| typedef struct ConfigDesc_t | ConfigDesc_t |
| コンフィグディスクリプタ構造体 | |
| typedef struct EndpointDesc_t | EndpointDesc_t |
| エンドポイントディスクリプタ構造体 | |
| typedef struct InterfaceDesc_t | InterfaceDesc_t |
| インタフェースディスクリプタ構造体 | |
| typedef struct USBHostInfo_t | USBHostInfo_t |
| USBホストの情報が格納された構造体 | |
| typedef enum TKUSBH_RESULT | TKUSBH_RESULT |
| USBホスト関数が返すエラーコード | |
列挙型 | |
| enum | TKUSBH_RESULT { TKUSBH_OK = 0, TKUSBH_NOSUPPORT, TKUSBH_DISCONNECT, TKUSBH_NOINIT, TKUSBH_TIMEOUT, TKUSBH_STALL, TKUSBH_ERROR } |
| USBホスト関数が返すエラーコード [詳細] | |
| enum | INTTRANS_TYPE { INTERRUPT_IN, INTERRUPT_OUT } |
| インタラプト転送のタイプ [詳細] | |
関数 | |
| TKUSBH_RESULT | tkusbh_init (void) |
| USBホストモジュールを初期化する。 [詳細] | |
| TKUSBH_RESULT | tkusbh_is_connected () |
| ターゲットが接続されているかどうかを調べる [詳細] | |
| TKUSBH_RESULT | tkusbh_connect (int timeout_ms) |
| ターゲットに接続する [詳細] | |
| TKUSBH_RESULT | tkusbh_halfway_connect (int timeout_ms) |
| ターゲットに接続する。ただしenumerationはSET_ADDRESSまでしか実行しない。 [詳細] | |
| TKUSBH_RESULT | tkusbh_disconnect (int timeout_ms) |
| ターゲットを切断する。切断されるまで待つ。 [詳細] | |
| int | tkusbh_get_descriptor (unsigned char type, unsigned char index, void *buf, int size) |
| 接続されているターゲットのディスクリプタを取得する [詳細] | |
| int | tkusbh_get_string (unsigned short index, unsigned short langid, char *buf, int buflen) |
| 接続されているターゲットのストリングディスクリプタを取得する [詳細] | |
| int | tkusbh_control_msg (unsigned short req, unsigned short val, unsigned short index, unsigned short len, unsigned char *buf, int timeout) |
| コントロールトランザクションを発行する [詳細] | |
| TKUSBH_RESULT | tkusbh_set_configuration (int configuration) |
| SET CONFIGURATIONを実行する [詳細] | |
| int | tkusbh_bulk_write (int ep, unsigned char *bytes, int size, int timeout) |
| バルクOUT転送を実行する [詳細] | |
| int | tkusbh_bulk_read (int ep, unsigned char *bytes, int size, int timeout) |
| バルクIN転送を実行する [詳細] | |
| void | tkusbh_start_interrupt_trans (int ep, int time, INTTRANS_TYPE type, void *callback) |
| インタラプト転送を行う [詳細] | |
| int | tkusbh_interrupt_write (int ep, unsigned char *buf, int size) |
| インタラプトOUT転送で送信されるデータを登録する [詳細] | |
| int | tkusbh_interrupt_read (int ep, unsigned char *buf, int size) |
| インタラプトIN転送で受信したデータを取得する [詳細] | |
変数 | |
| int | gUsbHostGpioPulldown |
| GR-SAKURAのUSBホスト初期化時に、IO2(USB0_DRPD)とIO5(USB0_DPRPD)をどう扱うかを決める [詳細] | |
RXマイコンの内蔵USBを利用して、USBホスト機能を実現する
tkusbhost.h で定義されています。
| enum TKUSBH_RESULT |
USBホスト関数が返すエラーコード
| 列挙型の値 | |
|---|---|
| TKUSBH_OK |
エラーなし |
| TKUSBH_NOSUPPORT |
USBホストはサポートされていない |
| TKUSBH_DISCONNECT |
ターゲットが接続されていない |
| TKUSBH_NOINIT |
初期化されていない |
| TKUSBH_TIMEOUT |
タイムアウト(NAK) |
| TKUSBH_STALL |
STALLが返された |
| TKUSBH_ERROR |
その他のエラー |
tkusbhost.h の 110 行で定義されています。
| enum INTTRANS_TYPE |
| TKUSBH_RESULT tkusbh_init | ( | void | ) |
USBホストモジュールを初期化する。
| TKUSBH_RESULT tkusbh_is_connected | ( | ) |
ターゲットが接続されているかどうかを調べる
| TKUSBH_RESULT tkusbh_connect | ( | int | timeout_ms | ) |
ターゲットに接続する
| timeout_ms | 接続をタイムアウトまでの時間。ms単位で指定する。 -1を指定すると無限に待つ。 |
| TKUSBH_RESULT tkusbh_halfway_connect | ( | int | timeout_ms | ) |
ターゲットに接続する。ただしenumerationはSET_ADDRESSまでしか実行しない。
| timeout_ms | 接続をタイムアウトまでの時間。ms単位で指定する。 -1を指定すると無限に待つ。 |
| TKUSBH_RESULT tkusbh_disconnect | ( | int | timeout_ms | ) |
ターゲットを切断する。切断されるまで待つ。
| timeout_ms | タイムアウトはms単位で指定する。-1を指定すると無限に待つ。 |
| int tkusbh_get_descriptor | ( | unsigned char | type, |
| unsigned char | index, | ||
| void * | buf, | ||
| int | size | ||
| ) |
接続されているターゲットのディスクリプタを取得する
| type | ディスクリプタのタイプ (USB規格で定義されている値) |
| index | 取得したいディスクリプタのインデックス値 |
| buf | 取得したディスクリプタが格納されるバッファへのポインタ |
| size | バッファのサイズ |
| int tkusbh_get_string | ( | unsigned short | index, |
| unsigned short | langid, | ||
| char * | buf, | ||
| int | buflen | ||
| ) |
接続されているターゲットのストリングディスクリプタを取得する
| index | 取得したいストリングディスクリプタのインデックス |
| langid | 言語ID。 USBHostInfo.landId を指定すること。 |
| buf | 取得したディスクリプタが格納されるバッファへのポインタ |
| buflen | バッファのサイズ |
| int tkusbh_control_msg | ( | unsigned short | req, |
| unsigned short | val, | ||
| unsigned short | index, | ||
| unsigned short | len, | ||
| unsigned char * | buf, | ||
| int | timeout | ||
| ) |
コントロールトランザクションを発行する
| req | 送信するreqフィールド |
| val | 送信するvalフィールド |
| index | 送信するindexフィールド |
| len | 送信するlenフィールド |
| buf | 送受信するデータが格納されたバッファ |
| timeout | タイムアウトするまでの時間。ms単位で指定する。 -1を指定すると無限に待つ。 |
| TKUSBH_RESULT tkusbh_set_configuration | ( | int | configuration | ) |
SET CONFIGURATIONを実行する
| configuration | コンフィギュレーション番号 |
| int tkusbh_bulk_write | ( | int | ep, |
| unsigned char * | bytes, | ||
| int | size, | ||
| int | timeout | ||
| ) |
バルクOUT転送を実行する
| ep | エンドポイント番号 |
| bytes | 送信するデータが格納されたバッファ |
| size | 送信するデータの長さ |
| timeout | タイムアウトするまでの時間。ms単位で指定する。 -1を指定すると無限に待つ。 |
| int tkusbh_bulk_read | ( | int | ep, |
| unsigned char * | bytes, | ||
| int | size, | ||
| int | timeout | ||
| ) |
バルクIN転送を実行する
| ep | エンドポイント番号 |
| bytes | 受信したデータが格納されるバッファ |
| size | 受信したいデータの最大長さ |
| timeout | タイムアウトするまでの時間。ms単位で指定する。 -1を指定すると無限に待つ。 |
| void tkusbh_start_interrupt_trans | ( | int | ep, |
| int | time, | ||
| INTTRANS_TYPE | type, | ||
| void * | callback | ||
| ) |
インタラプト転送を行う
この関数を呼ぶと、インタラプト転送がシステムに登録され、自動的にINまたはOUTパケットが送出される。
ただし、受信バッファに空きがない場合や、送信バッファにデータがない場合には発行されないので、
tkusbh_interrupt_write() や tkusbh_interrupt_read() を使って適宜データを補充したり読み出さなければ
連続してインタラプト転送が行われない。
| ep | エンドポイント番号 |
| time | 転送間隔 (単位 ms) |
| type | インタラプト転送の種類 |
| callback | インタラプト転送が発行されたときに呼び出されるユーザ関数(この機能は未実装) |
| int tkusbh_interrupt_write | ( | int | ep, |
| unsigned char * | buf, | ||
| int | size | ||
| ) |
インタラプトOUT転送で送信されるデータを登録する
| ep | エンドポイント番号 |
| buf | 送信するデータが格納されたバッファ |
| size | 送信するデータの長さ |
| int tkusbh_interrupt_read | ( | int | ep, |
| unsigned char * | buf, | ||
| int | size | ||
| ) |
インタラプトIN転送で受信したデータを取得する
| ep | エンドポイント番号 |
| buf | 受信したデータが格納されるバッファ |
| size | 受信したいデータの最大長さ |
| int gUsbHostGpioPulldown |
GR-SAKURAのUSBホスト初期化時に、IO2(USB0_DRPD)とIO5(USB0_DPRPD)をどう扱うかを決める
- 0: GPIOのままであり、プログラムで自由に使用できる。(デフォルト)
この場合、基板裏面のJ13,J15をジャンパすること。
- 1: 周辺機器モードにし、CPU内部でプルダウンする(USBホストの規格としては正しい動作)
この場合、基板裏面のJ12,J14をジャンパすること。
1.8.5