USB 2.0 bandwidth question

Hi guys,

currently, our team works on a project based on Jetson Orin Nano. Our goal is to do some video processing from two 640 * 480 60Hz cameras with 2 bytes per pixel. The nuance is that we use USB 2.0 to connect cameras, and we face with the bandwidth issues.

Our idea is to use USB type-A slot and USB type-C slot, for cameras 1 and 2 correspondingly, such that we can have allocated 480 mbps bandwidth per each camera, which is enough for us.

According to the board block diagram and lsusb output, they are attached to USB0 and USB1 ports on Jetson Orin Nano.

/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 10000M

|\_\_ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 10000M

/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=tegra-xusb/4p, 480M

|\_\_ Port 1: Dev 28, If 3, Class=CDC Data, Driver=cdc_acm, 480M

|\_\_ Port 1: Dev 28, If 1, Class=Video, Driver=, 480M

|\_\_ Port 1: Dev 28, If 2, Class=Communications, Driver=cdc_acm, 480M

|\_\_ Port 1: Dev 28, If 0, Class=Video, Driver=, 480M

|\_\_ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M

    |\_\_ Port 3: Dev 27, If 2, Class=Communications, Driver=cdc_acm, 480M

    |\_\_ Port 3: Dev 27, If 0, Class=Video, Driver=, 480M

    |\_\_ Port 3: Dev 27, If 3, Class=CDC Data, Driver=cdc_acm, 480M

    |\_\_ Port 3: Dev 27, If 1, Class=Video, Driver=, 480M

|\_\_ Port 3: Dev 3, If 0, Class=Wireless, Driver=rtk_btusb, 12M

|\_\_ Port 3: Dev 3, If 1, Class=Wireless, Driver=rtk_btusb, 12M

And according to page 24 in this technical reference we should have 480 Mbps per each port:

Each USB 2.0 port (3x) operates in USB 2.0 high-speed mode when connecting directly to a USB 2.0 peripheral and operates in USB 1.1 full- and low-speed modes when connecting directly to a USB 1.1 peripheral. When operating in High-Speed mode, each USB 2.0 port is allocated with one High-Speed unit bandwidth. Approximately a 480 Mb/s bandwidth is allocated to each USB 2.0 port. All USB 2.0 ports operating in full- or low-speed modes share one full- and low-speed bus instance, which means 12 Mb/s theoretical bandwidth is distributed across these ports.

But in fact we don’t observe such numbers.

Do you have any ideas what is wrong here? Do we use a wrong document as a reference, or our understanding is wrong?

What kind of number do you observe there?

Have you compare your number when same USB camera running on other platform like x86 host PC?

Which Jetpack version are you testing there?

Hi WayneWWW,

  1. Can you please advice what is the best way to measure performance of usb connection? With our device, we are unable to do such measurements, because, due to bandwidth limitation, our1 camera constantly overflows and goes to recovery. I tried with usb flash drives, but results looks inadequate.
  2. I’ve got the same problem when I connected two our cameras to the same root hub on x86 PC, if they are connected to different root hubs, the issue is not being observed.
  3. Currently we use the following version:
    cat /etc/nv_tegra_release

    R35 (release), REVISION: 5.0, GCID: 35550185, BOARD: t186ref, EABI: aarch64, DATE: Tue Feb 20 04:46:31 UTC 2024

Hi,
Please refer to
What is total USB bandwith of the 4 USB ports?

On Orin Nano developer kit, if a USB2 device is connected to either type-A port, total bandwidth is 480Mbps for the 4 ports.

Hi Dane,

this is not an our case, we connect the first USB2 device to type-A port, and the second one is connected to type-C port

Hi,
Do you use Orin Nano developer kit? If you use custom board ,please ensure you follow product design guide to design the board.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.