USB Help Needed - Page 1
Forum section: electronics / projects

author: rfdes
author_rank: Regular Contributor
timestamp: July 21, 2019, 03:58:08 pm
content: I have a question regarding whether it is possible to do the following:PC (Win 10) >>> USB 2.0 Hub >>> USB 2.0 device (operating at Full Speed - 12MHz)The device connected is set to run at Full speed but I want to 'FORCE' the PC host to communicate with the device at Low speed (1.5 MHz) only. Is there a configuration method (driver, etc.) to make this happen? I've heard some suggest to install a USB 1.x hub between the host and device but that wouldn't guarantee a low speed connection as 1.x also supports Full Speed.I went to the USB.org website thinking there was a true 'forum' to post this question but couldn't seem to find it.Any help offered would be appreciated.JimLargo Florida USA

author: oPossum
author_rank: Super Contributor
timestamp: July 21, 2019, 04:02:54 pm
content: The device configures it's USB SIE (serial inteface engine) to run at full or low speed. You would have to change the firmware in the device.

author: magic
author_rank: Super Contributor
timestamp: July 21, 2019, 04:23:32 pm
content: ... and once configured, the device signals its speed to the host which can either accept it or disregard the device altogether. There really is no other way, no means of negotiation, no undocumented tricks.

author: oPossum
author_rank: Super Contributor
timestamp: July 21, 2019, 04:31:51 pm
content: Even if you can change the firmware there could also be issues of class compliance and packet size. The CDC class for example requires full speed for class compliance. Low speed is limited to 8 byte packets, while full speed is 64 bytes.

author: SiliconWizard
author_rank: Super Contributor
timestamp: July 21, 2019, 04:36:44 pm
content: Why would you want to do that in the first place?Yeah, the only way would be for the device to enumerate as a low-speed device only. I dont' think any hub can somehow "translate" speeds on the fly (thus making a connected device working at FS seen as a LS one by the host). I don't think any hub can otherwise make a connected device appear as a LS one only and make it function in LS mode only.A USB device can declare itself as a LS device only to the host, but if it supports both FS and LS, I don't think there is a means for the host to require LS only. The host usually selects the highest speed both the host and the device support AFAIK.But again, what you want to achieve is intriguing.

author: rfdes
author_rank: Regular Contributor
timestamp: July 21, 2019, 05:08:29 pm
content: Quote from: SiliconWizard on July 21, 2019, 04:36:44 pmYes, it is unusual. My reasoning is that I have an embedded project where I wish to parallel a USB port with a PS/2 port. I am using a third party part where the same USB pins also are used for the PS/2 port. However, the only way to configure the part in production is using USB. Due to the requirement of EMI protection needed for the PS/2 port, the impedance of the EMI components limits the bandwidth when using the port with USB. The end user will only use the PS/2 capabilities of the device. My hope was to eliminate the need to use jumpers at production for configuring the device. Configuration speed is irrelevant, so low speed USB is totally OK in this application. I could get fancy with the electronics and do some semiconductor switching to accomplish this but the effort isn't really worth it.thanks to all for their input.Jim

author: SiliconWizard
author_rank: Super Contributor
timestamp: July 21, 2019, 05:27:43 pm
content: I see. What is this "third party" part? Do you have any means of modifying its firmware? Do you know which USB class it natively enumerates as?

author: rfdes
author_rank: Regular Contributor
timestamp: July 21, 2019, 06:36:27 pm
content: Quote from: SiliconWizard on July 21, 2019, 05:27:43 pmA company named 'Sprintek' sells a line of USB/PS/2 keyboard encoder parts, so the class of USB would be HID. We are using this part to support a legacy PS/2 keyboard design for the US military. There is a way to update the firmware, however, the firmware is proprietary. I have yet to reach out to the company to see if the firmware exists to support low speed only. Again, I don't really believe there is justification to re-uploading the firmware just to save a 'jumper'.

author: NorthGuy
author_rank: Super Contributor
timestamp: July 21, 2019, 07:15:05 pm
content: It is all up to the device. The device signals with pullups whether it is FS or LS. FS device has a pull-up on D+. LS device has a pull-up on D-. Host has no means to offer a different speed.

author: rfdes
author_rank: Regular Contributor
timestamp: July 21, 2019, 07:42:07 pm
content: Quote from: NorthGuy on July 21, 2019, 07:15:05 pmYes, the pull-ups are necessary to signal the host as to the speed capabilities, however, the device still has to be programmed to use low speed as opposed to full speed. Not being that familiar with the details of USB enumeration, I was hoping that the host could mandate that the device communicate at low speed but as I have now learned, it doesn't work that way.Take care - Jim