Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Note
titleIt is necessary that a FW/HW routine reads USB FX2 microcontroller's EP8 buffer.

If the EP6's buffer is not is not properly written by the FPGA(reference design)/other(custom design) the EP6's buffer will become empty and the host computer will be no longer able to receive further packets. In this case the TE_USB_FX2_GetData() function could experience strange behaviors. For example, a very low throughput (9-10 Mbyte/s even if a 31-38 Mbyte/s are expected) could be measured or the function TE_USB_FX2_GetData() fails returning false.

During USB read transmission test (RX: host computer perspective) the EP6's buffer writing is carried out by MicroBlaze (inside the FPGA); this behavior is setted by MicroBlaze API command FX22MB_REG0_START_TX (TX: USB FX2 microcontroller perspective)

Code Block
languagecpp
SendFPGAcommand(USBDeviceList,ref TE_USB_FX2_USBDevice,MB_Commands.FX22MB_REG0_START_TX); TX, TIMEOUT_MS)

Expected Data Throughput 

...

Note

The use of Buffer.BlockCopy() function seems not to hinder throughput too much (in some case 2 Mbyte/s of difference with C++).

...

DataRead Size Shall Not Be Too Small

...