24 #define TIMEOUT 1000 //1000ms
25 #define TIMEOUT_INFINITE -1
27 #define DEVICE_DESCRIPTOR_TYPE 0x01
28 #define CONFIG_DESCRIPTOR_TYPE 0x02
29 #define STRING_DESCRIPTOR_TYPE 0x03
30 #define INTERFACE_DESCRIPTOR_TYPE 0x04
31 #define ENDPOINT_DESCRIPTOR_TYPE 0x05
40 unsigned char bLength;
41 unsigned char bDescriptorType;
42 unsigned short bcdUSB;
43 unsigned char bDeviceClass;
44 unsigned char bDeviceSubClass;
45 unsigned char bDeviceProtocol;
46 unsigned char bMaxPacketSize0;
47 unsigned short idVendor;
48 unsigned short idProduct;
49 unsigned short bcdDevice;
50 unsigned char iManufacture;
51 unsigned char iProduct;
52 unsigned char iSerialNumber;
53 unsigned char bNumConfigurations;
59 unsigned char bLength;
60 unsigned char bDescriptorType;
61 unsigned short wTotalLength;
62 unsigned char bNumInterfaces;
63 unsigned char bConfigurationValue;
64 unsigned char iConfiguraion;
65 unsigned char bmAttributes;
66 unsigned char bMaxPower;
72 unsigned char bLength;
73 unsigned char bDescriptorType;
74 unsigned char bEndpointAddress;
75 unsigned char bmAttributes;
76 unsigned short wMaxPacketSize;
77 unsigned char bInterval;
78 unsigned char bRefresh;
79 unsigned char bSynchAddress;
85 unsigned char bLength;
86 unsigned char bDescriptorType;
87 unsigned char bInterfaceNumber;
88 unsigned char bAlternateSetting;
89 unsigned char bNumEndpoints;
90 unsigned char bInterfaceClass;
91 unsigned char bInterfaceSubClass;
92 unsigned char bInterfaceProtocol;
93 unsigned char iInterface;
105 unsigned char FlagAttach;
206 int tkusbh_get_string(
unsigned short index,
unsigned short langid,
char *buf,
int buflen);
220 unsigned short index,
unsigned short len,
221 unsigned char *buf,
int timeout);
struct USBHostInfo_t USBHostInfo_t
USBホストの情報が格納された構造体
TKUSBH_RESULT tkusbh_init(void)
USBホストモジュールを初期化する。
struct EndpointDesc_t EndpointDesc_t
エンドポイントディスクリプタ構造体
unsigned short LangId
ターゲットデバイスの言語ID
TKUSBH_RESULT tkusbh_set_configuration(int configuration)
SET CONFIGURATIONを実行する
int tkusbh_get_descriptor(unsigned char type, unsigned char index, void *buf, int size)
接続されているターゲットのディスクリプタを取得する
struct ConfigDesc_t ConfigDesc_t
コンフィグディスクリプタ構造体
ConfigDesc_t ConfigDesc
ターゲットデバイスのコンフィグディスクリプタ
struct InterfaceDesc_t InterfaceDesc_t
インタフェースディスクリプタ構造体
EndpointDesc_t EndpointDesc
ターゲットデバイスのエンドポイントディスクリプタ
int gUsbHostGpioPulldown
GR-SAKURAのUSBホスト初期化時に、IO2(USB0_DRPD)とIO5(USB0_DPRPD)をどう扱うかを決める
TKUSBH_RESULT tkusbh_halfway_connect(int timeout_ms)
ターゲットに接続する。ただしenumerationはSET_ADDRESSまでしか実行しない。
InterfaceDesc_t InterfaceDesc
ターゲットデバイスのインタフェースディスクリプタ
TKUSBH_RESULT tkusbh_is_connected()
ターゲットが接続されているかどうかを調べる
DeviceDesc_t DeviceDesc
ターゲットデバイスのデバイスディスクリプタ
int tkusbh_interrupt_read(int ep, unsigned char *buf, int size)
インタラプトIN転送で受信したデータを取得する
int tkusbh_get_string(unsigned short index, unsigned short langid, char *buf, int buflen)
接続されているターゲットのストリングディスクリプタを取得する
void tkusbh_start_interrupt_trans(int ep, int time, INTTRANS_TYPE type, void *callback)
インタラプト転送を行う
struct DeviceDesc_t DeviceDesc_t
デバイスディスクリプタ構造体
TKUSBH_RESULT tkusbh_connect(int timeout_ms)
ターゲットに接続する
unsigned char DCPMaxSize
デフォルトコントロールパイプの最大サイズ
INTTRANS_TYPE
インタラプト転送のタイプ
TKUSBH_RESULT tkusbh_disconnect(int timeout_ms)
ターゲットを切断する。切断されるまで待つ。
int tkusbh_interrupt_write(int ep, unsigned char *buf, int size)
インタラプトOUT転送で送信されるデータを登録する
int tkusbh_bulk_read(int ep, unsigned char *bytes, int size, int timeout)
バルクIN転送を実行する
TKUSBH_RESULT
USBホスト関数が返すエラーコード
int tkusbh_control_msg(unsigned short req, unsigned short val, unsigned short index, unsigned short len, unsigned char *buf, int timeout)
コントロールトランザクションを発行する
unsigned char FullSpeed
1:Fullspeed, 0:Lowspeed
int tkusbh_bulk_write(int ep, unsigned char *bytes, int size, int timeout)
バルクOUT転送を実行する