AN65974をisochronousに変更すると、ISOC IN transferがZero-lengthになる問題

Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
noya_4525061
Level 1
Level 1
First question asked First like given

CYUSB3KIT-003とXilinxのSPARTAN 6でAN65974を使用してUSB3.0通信をしています。

bulk in endpoint(0x81)をisochronousに変更したところ、

USB Control Centerが

「Zero-length data transfer completed」

としか表示されず、データが受信できなくて困っております。

FPGAからは16Kbyteのデータを常に送信おり、

FLAGAとPKTENDが変化していることは、オシロスコープで確認済みです。

endpoint(0x81)のDMAバッファは8個から16個に変更しています。

bulk転送だと16Kbyte単位のパケットを受信できるのですが、

isochronous転送に変更するとデータが受信できなくなるのは、なぜでしょうか?

ソースコードで添付しますので、間違いを教えて頂けると助かります。

よろしくお願い致します。

0 件の賞賛
1 解決策
AikoO_51
Moderator
Moderator
Moderator
100 sign-ins First question asked 50 solutions authored

isochronous endpoints (size 16KB)のエニュメレートに修正されたAN65974のFirmwareを使用してください。もしそのFirmwareを使用してもFPGAから16KBのデータを送信するときに問題が生じる場合は再度お問い合わせください。

そのFirmwareを使用してもまだ問題が生じる場合、データがFX3で受信されているか確認のためUART debug printを使用してください。そして、デバイスがUSB 2.0、 または USB 3.0としてのエニュメレートである場合は、またお知らせください。

注意点として、Firmware上のCyFxSlFifoApplnStartのAPIは、CY_U3P_USB_EVENT_SETINTF(代わりの設定1においてコントローセンタからそのendpointが選択されている場合)の後に呼び出してください。つまり、FPGAからデータを送信する前に、コントロールセンタの0x83 (IN endpoint)を選択してください。

Aiko Ohtaka
Infineon Technologies

元の投稿で解決策を見る

0 件の賞賛
1 返信
AikoO_51
Moderator
Moderator
Moderator
100 sign-ins First question asked 50 solutions authored

isochronous endpoints (size 16KB)のエニュメレートに修正されたAN65974のFirmwareを使用してください。もしそのFirmwareを使用してもFPGAから16KBのデータを送信するときに問題が生じる場合は再度お問い合わせください。

そのFirmwareを使用してもまだ問題が生じる場合、データがFX3で受信されているか確認のためUART debug printを使用してください。そして、デバイスがUSB 2.0、 または USB 3.0としてのエニュメレートである場合は、またお知らせください。

注意点として、Firmware上のCyFxSlFifoApplnStartのAPIは、CY_U3P_USB_EVENT_SETINTF(代わりの設定1においてコントローセンタからそのendpointが選択されている場合)の後に呼び出してください。つまり、FPGAからデータを送信する前に、コントロールセンタの0x83 (IN endpoint)を選択してください。

Aiko Ohtaka
Infineon Technologies
0 件の賞賛