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をジャンパすること。