問題タブ [usb-descriptor]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
usb - USBのデバイス記述子「BCDデバイスリリース番号」を割り当てる方法
USB記述子のコードは次のとおりです(例としてデバイス記述子)。BCD デバイスのリリース番号以外の設定は理解しています。いくつかの異なるプロジェクトの USB コードを読みました。デバイスのリリース番号はすべて異なります。デバイスのリリース番号は何によって決定されますか? リストはありますか?
usb - USB: 1 つのインターフェイスで複数の異なる HID ジョイスティックを定義できますか?
USB経由でさまざまなビデオゲームコントローラーをPCに接続するためのアダプターを作成しています。その心臓部は、Cortex-M4 プロセッサを使用する Teensy 3.1 マイクロコントローラです。
M4 は生の USB パケットを処理できるため、あらゆるタイプの USB デバイスをシミュレートできます。複合 USB デバイスを表示するようにプログラムすることに成功しました。
- インターフェイス 1、エンドポイント 1: USB シリアル ポート (デバッグ用) - ステータス インターフェイス
- インターフェイス 1、エンドポイント 2: USB シリアル TX/RX インターフェイス
- インターフェイス 2、エンドポイント 3: HID ジョイスティック
ここでの問題は、複数の異なるタイプのゲーム コントローラ (任天堂とスーパー ファミコンなど) を同時に接続できるようにしたいということです。私のアダプターには 15 個を超えるポートがあります。つまり、USB では合計 16 個のエンドポイントしか許可されないため、各ポートに 1 つのエンドポイントを割り当てることはできません。
HID レポート記述子の仕様を読むと、同じインターフェイスで複数の独立したデバイスを定義できるという印象を受けます。しかし、私の最善の努力にもかかわらず、私はこれをやってのけることができないようです. アプリケーション ( などjstest-gtk
) は、単一の巨大なジョイスティックしか認識しません。
現在、このレポート記述子を使用しています。
8 つのボタンを持つ 1 つのジョイスティックと 16 個のボタンを持つ 1 つのジョイスティックが表示されることを期待していましたが、アプリケーションでは 24 個のボタンを持つ 1 つのジョイスティックが表示されます。
この方法で複数の独立したジョイスティックを定義することは実際に可能ですか?
usb - USB ガジェットのエンドポイント タイプを変更するには?
USB エンドポイントにはいくつかのモード (コントロール、バルク、割り込み、アイソクロナス) があり、それぞれの目的に使用できることは知っていますが、ガジェットで USB エンドポイントをこれらのモードに変更する方法がわかりません。私はすでに USB2.0 仕様を読んでいるので、以下の設定で USB 転送記述子を取得できます。
しかし、USB 転送モードを変更するにはどうすればよいかわかりません。
usb - USB3.0 超高速デバイス記述子の障害
デバイスを USB3.0 超高速 (当社のプラットフォームは USB3.0 ハブをサポート) としてエミュレートしようとしています。以下は、デバイスの列挙に使用しているデバイス記述子です。
USB3HWAnalyzer ツールを実行して障害の問題を分析しました。以下はエラー トレースです。13094733443.428871: (UsbHub3/176) イベント メッセージ: DescriptorValidationErrorDeviceInvalidBMaxPacketSize PortPath: 0x1、0x0、0x0、0x0、0x0、0x0
-- 0x09, /* EP0 の最大パケット サイズ: 2^9 = 512 バイト */
なぜ得られないのですか?この問題の正当な理由はありますか?
Tnx!
stm32 - USB コネクタが 1 つしかない 2 つの VCP を入手するにはどうすればよいですか?
1 つの USB コネクタ (STM32F4 Discovery Board の CN5) だけで 2 つの仮想 COM ポートをエミュレートしようとしましたが、無駄でした。
仮想 COM ポート通信用の ACM 機能記述子 (抽象制御モデル) を使用して複数のインターフェイスを持つように複合 CDC クラスを構成する必要があることはわかっていますが、それらを 2 つの VCP にするにはどうすればよいですか?
私は 1 つの CCI (通信クラス インターフェイス) と 1 つの DCI (データ クラス インターフェイス) を実行したため、Device Managerで VCP を 1 つだけ持つことができました。
2 つの CCI と 2 つの DCI を実行しようとしましたが、うまくいきませんでした!
これは、インターフェイス関連付け記述子のデバイス記述子です。
そして、それぞれ CCI と DCI を 1 つずつ持つ 2 つの IAD を使用した CDC 構成:
2 つの VCP を持つように CDC クラスを構成するにはどうすればよいですか? これらの構成の何が問題になっていますか?
linux-kernel - Linux USB ガジェットのカスタム構成
Linux Kernel 3.14.18 を実行する i.Mx6 Sabre Lite ボードを使用しており、ボードは USB デバイス (USB ガジェット) として機能するはずです。1 つのベンダー固有のインターフェイスを CDC/NCM 構成に追加する必要があります。CDC/NCM 構成には、デフォルトで通信とデータの 2 つの標準インターフェイスがあります。CDC/NCM 構成に 3 番目のインターフェイス (ベンダー固有) を追加しました。このインターフェイスには、2 つのバルク (IN & OUT) エンドポイントがあります。「lsusb」を使用してボードを PC に接続すると、この新しく追加されたインターフェイスを確認できます。
問題:
新しく追加されたインターフェイスが i.Mx ボードまたは PC のユーザー空間に公開されているのを確認できません。標準の NCM インターフェイスは i.Mx ボードでも PC でも usb0 (イーサネット デバイス) として表示され、/ に PING できます。 usb0を使用してボードから。
この新しく追加されたインターフェイスを g_"driver" に接続する必要がある場合 (標準の NCM インターフェイスが g_ether に接続されているように); では、BULK I/O の最適な選択は何ですか?
この新しく追加されたベンダー固有のインターフェイスを i.MX6 ユーザー空間で利用できるようにして、Linux アプリケーションから読み取り/書き込みを行うにはどうすればよいですか? GadgetFS について知りました。しかし、どんな例でも
誰かが Linux-USB で同様のことを試して、ガイドできることを願っています。
usb - USB CDC は割り込み endp で一度だけ動作します
STM32F4 MCU に仮想 COM ポートを実装しています。
MCU には利用可能なエンドポイントがないため、interupt エンドポイント/通知要素を削除する必要があります。問題は、MCU が PC にメッセージを一度しか送信できないことです。
デバイスの USB 記述子: