汎用HIDインターフェイスを使用してPIC18F2550にUSBを実装しています。入力と出力の両方に単一の64バイトメッセージを持つようにHIDプロファイル構成を設定しました。
今では基本的に機能しています。デバイスはウィンドウにOKを登録します。PCのプログラムで見つけることができ、データを送受信できます。ただし、問題はこれです。PCからPICへのメッセージは、EP0エンドポイントバッファのサイズに切り捨てられます。
デバッグを続ける前に、ここでUSBプロトコルについての理解を明確にし、正しく理解できたことを確認したいと思います。
EP0入力バッファが8バイトであると想定します。PC側が8バイトの制御パケットを送信することは私の理解です。後に続くデータのバイト単位の長さがあります。次に、8バイトのデータパケットのシーケンスを送信し、PIC側はそれぞれを確認する必要があります。
PC側は、デバイス記述子の最大パケットサイズフィールドを調べることで各パケットの大きさを認識し、それに応じてメッセージを複数のデータパケットに分割することを理解しています。
コードをもっと探す前に、これが基本的に正しいことを誰かが確認できますか?EP0バッファサイズが8バイトの場合、前述の構成フィールドのためにPCはこれを認識し、複数のデータパケットを送信する必要がありますか?
PICで受信バッファを64バイトにすると、ニーズに十分な64バイトのメッセージが表示されますが、小さなバッファで機能しない理由がわからないので、いつかはとにかくおそらくそれらが必要です。
アドバイスや情報は大歓迎です。