Search by Tags

USB 2.0 High Speed (480Mbps)

 

Article updated at 11 Aug 2020
Compare with Revision




The USB 2.0 standard supports 3 speed levels:

  • 1,5Mbit/s (Low Speed)
  • 12Mbit/s (Full Speed)
  • 480Mbit/s (High Speed)

Colibri PXA

USB 2.0 compatibility doesn't guarantee support of High Speed (480MBit/s) operation. In order to use High Speed with a Colibri module, an external controller (e.g. ISP1761) is needed.

Toradex provides schematics and a driver to add a ISP1761 or ISP1762 to the Colibri.

There is also the possibility to add a UTMI transceiver if you need only the USB 2.0 High Speed device function for the Colibri PXA300 or Colibri PXA320. (Toradex has not tested this function, yet)

The PXA310 has a USB 2.0 480MBit (High Speed) device. But only device, not Host.

Colibri T20 / T30

The Colibri Tegra modules support USB 2.0 High Speed host and device.
Starting with WinCE 1.1 and Linux 2.0 images, USB speed is configured to run up to high speed by default. Older images by default were configured to run at full speed only.

WinCE

Registry

The following registry keys need to be present in order to enable high speed USB:

[HKLM\Drivers\Builtin\USBEHCI1]
HighSpeed = dword:1         ;default=1 -> High Speed (BSP V1.1 and higher)
 
[HKLM\Drivers\Builtin\USBEHCI3]
HighSpeed = dword:1         ;default=1 -> High Speed (BSP V1.1 and higher)
 
[HKLM\Drivers\Builtin\USBFN]
HighSpeed = dword:1         ;default=1 -> High Speed (BSP V1.1 and higher)

Bootloader

In the bootloader V1.1b2 and newer the RNDIS download is by default set to high speed. To set it to full speed you need to change the configblock setting:

 boot.usbhs=0

Linux (Tegra)

'usb_high_speed=1' must be present in the kernel command line. This can be achieved by changing the u-boot environment as follows:

U-Boot 2011.06 (Mar 22 2012 - 18:53:07)
 
TEGRA2
DRAM:  512 MiB
NAND:  1024 MiB
MMC:   Tegra2 SD/MMC: 0
Board: Toradex Colibri T20
Net:   Net Initialization Skipped
No ethernet found.
Hit any key to stop autoboot:  0
Tegra2 #
Tegra2 # printenv defargs
defargs=video=tegrafb vmalloc=248M
Tegra2 # setenv defargs 'video=tegrafb vmalloc=248M usb_high_speed=1'
Tegra2 # save
Saving Environment to NAND...
Erasing Nand...
Erasing at 0xe00000 -- 100% complete.
Writing to Nand... done
Tegra2 # boot

Apalis IMX6 / Colibri iMX6 / Colibri iMX7 / Colibri iMX8X / Colibri VFxx

The Apalis/Colibri iMX6, Colibri iMX7, Colibri iMX8X and Colibri Vybrid modules support USB 2.0 High Speed host and device.

USB speed is configured to run up to high speed by default. It is possible to force USB host and device to behave as full-speed only to avoid issues with carrier boards designed to support only 12MB/s transfers.

Colibri iMX8X and USB 3.0

The i.MX 8X SoC used in the Colibri iMX8X does have support for USB 3.0. However, as stated in the Colibri iMX8X datasheet the Colibri Standard does not feature pins for the extra SuperSpeed signals. Therefore, the interface speed is limited to USB 2.0 High-Speed.

WinCE (except Colibri iMX8X)

Registry

The following registry keys can be set to 0 to disable high-speed support.

[HKLM\Drivers\Builtin\HCD_HSH1]
HighSpeed = dword:1         ;default=1 -> High Speed (Vybrid BSP V1.1beta2 and higher/IMX6 1.1beta1 or higher)
 
[HKLM\Drivers\Builtin\HCD_HSH2]
HighSpeed = dword:1         ;default=1 -> High Speed (Vybrid BSP V1.1beta2 and higher/IMX6 1.1beta1 or higher)
 
[HKLM\Drivers\Builtin\USBFN]
HighSpeed = dword:1         ;default=1 -> High Speed (Vybrid BSP V1.1beta2 and higher/IMX6 1.1beta1 or higher)
 
[HKLM\Drivers\Builtin\UsbOt\Hcd]
HighSpeed = dword:1         ;default=1 -> High Speed (Vybrid BSP V1.1beta2 and higher/IMX6 1.1beta1 or higher)
 
[HKLM\Drivers\Builtin\UsbOt\USBFN]
HighSpeed = dword:1         ;default=1 -> High Speed (Vybrid BSP V1.1beta2 and higher/IMX6 1.1beta1 or higher)

Linux (NXP)

USB speed can be selected using the maximum-speed property (see Documentation/devicetree/bindings/usb/generic.txt). Please refer to the Device Tree Customization article on how to alter the device tree. In practice you should set that property in your Carrier Board level device tree with something like this:

&usbh1 {
    maximum-speed = "full-speed";
}

Colibri Carrier Boards

Newer Carrier Boards like the Colibri Evaluation Board V3.1 or the Iris carrier board support USB 2.0 high speed.

The Colibri Evaluation Board V2.1, Orchid, and Protea carrier board are not designed for USB 2.0 high speed.

However, for test purposes, it is possible to modify the boards to support USB 2.0 High Speed. Please note that this modification voids the warranty. You will also remove the ESD protection from the USB port.

Colibri Evaluation Board V2.1 USB 2.0 Patch


  • Remove 4 capacitors(C's).
  • Replace 6 resistors with 0 Ohm resistors or with a solder bridge (R's).
  • You do NOT need to remove D10 and D11 (ESD protection), however, make sure that you only connect pins 1 and 2 (USB Host) or 3 and 4 (USB Client) of the jumpers JP8 and JP9. You can not use the board in detection mode with this setup any longer (all three pins connected).

Orchid Carrier Board USB 2.0 Patch


  • Remove 4 capacitors(C's).
  • Replace 6 resistors with 0 Ohm resistors or with a solder bridge (R's).
  • Remove D6 and D7 (ESD protection). Be very careful to not remove the pads!!