none
In WIN CE 6.0, is it possible to force USB port to "full-speed" operation? RRS feed

  • Question

  • Hi,

    I'm working on a platform-design on wince 6.0 R3, for Intel Atom processor.

    The platform will contain several USB 2.0-devices for serial communication (RS232/422/485).

    These devices behave much better with USB 1.1 speed ("full-speed"/12 Mbit/s) than with USB 2.0 ("high-speed"/480 Mbit/s).

    With USB 1.1 speed the ports can send and receive at baudrate 921K error-free.

    With USB 2.0 speed the port cannot receive at more than baudrate 240 K.

    I have tried disabling ehci-driver by registry settings, but this was not successful.

    The only way I have found to force the USB-speed down, is by connecting the devices via a USB 1.1 hub.

    Is there any way to force USB 1.1 speed by some settings in registry, OS-build or by SW-change?

    Thanks,

    Jarle

    Wednesday, September 12, 2012 4:06 PM

All replies

  • Hi Jarle,

    When you say USB 2.0 devices I assume that the hardware is a USB Function Controller.

    If you have datasheet for the function controller then you can check it if it is possible to force the USB Controller to operate at Full Speed.

    I have seen some USB Function Controllers which will have this type of setting at Register Level.

    When you are transmitting or receiving may I know what is the other end device. Is it a PC?

    Thank You & Regards,

    GSR

    Friday, September 14, 2012 3:14 AM
  • Hi GSR,

    the HW contains a USB Function controller, yes.

    The datasheet says that it supports both USB 1.1 and USB 2.0. But it does not say anything about forcing "full speed"/USB 1.1.

    When testing this, I have tried lots of different configurations, including loop-back on single serial-port, two serial ports on the same device connecting with each other both transmitting and receiving, and transmitting/receiving from/to a PC at the other end.

    Transmitting to a PC works fine, receiving from a PC does not work (at high baudrates and high traffic, using USB 2.0 mode).

    So the problem is at the receiving side.

    Thanks,

    Jarle

    Friday, September 14, 2012 2:07 PM
  • Why are we talking about an USB function controller now? From your post I understand that your platform has an USB 2.0 EHCI host controller and you connect to the host controller ports several USB 2.0-devices for serial communication  and you want to 'degrade' your USB host controller to 1.1 since those device you connect 'behave better' at full speed than at high speed (by the way USB 2.0 does not always mean high speed).

    By design and in order to be backward compatible when EHCI USB host controllers boot the ports are routed to the USB 1.1 integrated host controller (OHCI or UHCI, in your case is the latter since you're running on Intel HW): most BIOS' -even if they support some USB device classes (storage, HID) do not handle the EHCI so but only the OHCI/UHCI; if you remove the EHCI support from the OS, your USB host controller should behave as UHCI, 1.1 compliant. You mentioned that you already attempted this whithout success: are you sure you removed completely the EHCI support? Can you make sure that EHCI driver is really not loaded? If your device is connected with Platform Builder, even if you do not include EHCI.DLL it may be loaded directly from your release directory on your PC: you should be able to find some information ooking at the debug output on the development PC


    Luca Calligaris lucaDOTcalligarisATeurotechDOTcom www.eurotech.com Check my blog: http://lcalligaris.wordpress.com

    Monday, September 17, 2012 12:53 PM