Data loss with USB3 cameras

We use the nVidia Jetson Nano SOM (JetPack 4.4.1, not with gstreamer, but a GenTL producer for USB3Vision) on a custom carrier board with a USB hub from TI (TUSB8042a or TUSB8043a), with which we can connect three USB3 devices simultaneously.

We observe a sporadic data loss with USB3 cameras (even when only one camera and no other USB devices are connected) that have a peak data load close to the maximum of the 5 Gbit/s of USB 3.0. The data loss manifests itself as black chunks of 64 bytes in the image data stream. This means that in the pixel format Mono8 there are 64 contiguous pixels on one line, in Mono12 there are 32. The data loss occurs on every port of the USB-HUB, the same camera has no data loss on the PC (we have a test that works on the PC and on the Jetson Nano). With an nVidia Jetson Xavier NX we have not observed the data loss either.

One or more such chunks can occur per image, sometimes several times in a row.

It does not occur in every image, but let’s say 0.1% of the images.

We have already observed such an error pattern in two projects; it was always an AXI bus in the SOC on which a FIFO filled up during a DMA. The error was eliminated by an app note, presumably the priorisation on the AXI bus was changed.

We therefore wanted to ask whether there is a possibility for the nVidia Jetson Nano to optimise the prioritisation of USB3 DMAs on the SOC-internal AXI bus in order to prevent data loss?

Hi,
We suggest upgrade to Jetpack 4.6.4 and check if the issue is still present or not. The USB firmware is upgraded in later release and it may also cover this issue. Would be great if you can upgrade and give it a try.

Hi DaneLLL,
Thanks for your feedback, we will try JetPack 4.6.4 and report back.

Update:
Finally we have upgraded to Jetpack 4.6.4, but we still need some time for other tasks (related to the upgrade) before we can actually do the tests regarding this topic.