Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

USB superspeed peripherals

TaBa_2409941
Level 1
First solution authored
Level 1

Trying to use the FX3 to capture images from OnSemi image sensor and have few questions - could not find answer in the docs or forums.   I use the image sensor in trigger mode, so need to read only 1 image upon request.  The image size is known. For example: the buffer size of monochromatic image of 768X768 pixels is 768X768X2 = 1179648 bytes (16 bits per pixel)   I use a GPIF to USB bulk manual channel to capture the image.   Knowing this size:  What should be the buffer size associated with the channel? (i now use size of 16*1024)  What should be the number of buffers allocated to the channel (I use 4)  What should be the packet size (I use 1024)   When capturing images of 512X512 it works well.  But when capturing images of 768X768 and bigger, the received buffer is made of 15-20 last lines of the previous image, and the rest are lines of the currently captured image.  There is some sync problems between the captured and received buffers.Can anyone help with this?

0 Likes
1 Solution
TaBa_2409941
Level 1
First solution authored
Level 1

Found a work around.

Data flows from the device to the host continuously only when the multi channel buffer size is set to a number that is a multiply of 1024

although that  according o the docs, the buffer size should be a multiply of 16. The burst length is set to 16 (not sure if it is relevant) and the host is a Linux machine. The buffer size of the URB on the Linux size is set to the size of the complete image, and it returns full with the image data. For now, this is good enough for me, but not sure that this is the best way to go.

View solution in original post

0 Likes
12 Replies