cancel
Showing results for 
Search instead for 
Did you mean: 

USB Hosts Hubs Transceivers

New Contributor

We are using a CY7C65620 under Linux. If we connect a device which draws to much current nothing gets reported in dmesg.  If I connect the device to a different hub a "over-current condition" appears in dmesg.

With "lsusb -v" we can see the status of the ports under "Hub Descriptor: Hub Port Status". With over-current the status changes from "power" (0000.0100) to "C_OC" (0008.0000) on the CY7C65620. On the other hub lsusb shows a "oc" (0000.0008).

What can we do to get a correct over-curent reporting under Linux?

0 Likes
Reply
1 Solution
Moderator
Moderator

Hi,

Thanks for the details. The toggling would usually occur if the connected power switch would keep asserting the OVR# pin and then the hub would keep PWR# de-asserted till its enabled again by the host. Could you please let us know if this happens in all your boards?

You could check USBlyzer, which is a USB software analyzer and would allow us to check the hub status bits.

Best Regards,

Sananya

View solution in original post

0 Likes
Reply
10 Replies
Moderator
Moderator

Hello,

-Could you please let us know if you are configuring the EEPROM for hub descriptors? Please also let us know the required power mentioned in the downstream device configuration descriptor?

-Please also attach the USB traces on the upstream port of the hub using a hardware analyzer if possible.

Best Regards,

Sananya

0 Likes
Reply
New Contributor

Yes, we are using the EEPROm for the configuration. You will find it as output of "lsusb -v" and as a screenshot from our production tool.

The downstream ports are allowed to use the maximum current of 500mA.

I've tested the over-current situation with a simple resistor instead of the defective device to simplify the test. The over-current indicator of the hub turned red and the port status change to C_OC. Do you need traces of the USB signals in this case?

0 Likes
Reply
New Contributor

Any news on this?

0 Likes
Reply
Moderator
Moderator

Hello,

Sorry for the delay in response. Yes, it would be helpful to check on the traces since if the over-current indicator on the hub reports the over-current event, we should see it in both OC and C_OC bits till it gets cleared and the host turns off power on the device. The Linux host must be using the OC bit to report the condition in dmesg as seen with the other hub.

Best Regards,

Sananya

0 Likes
Reply
New Contributor

I've tested it again with the resistor. The led indicator on the hub shows an overcurrent. But the OC bit seen via lsusb gets never set. Only the C_OC is set.

You asked for traces. Which do you need? Power? USB signals? And when captured?

0 Likes
Reply
Moderator
Moderator

Hello,

Could you please capture the USB traces (using a hardware analyzer such as LeCroy or any software analyzer) on the upstream port of the hub from the time of enumeration to when the overcurrent is indicated?

Best Regards,

Sananya

0 Likes
Reply
New Contributor

We don't have any USB analyzer. We only have an oscilloscope.

I've also read back the status under windows. The OC bit is also not set there.

0 Likes
Reply
Moderator
Moderator

Hello,

Under Windows, does the popup appear on the host saying "insufficient power" when the overcurrent event occurs? I think it wont since you mentioned that OC bit is not being set there too. Could you also check if the OVR# and PWR# pins corresponding to that port is at correct levels?

Since HX2LP is a fixed firmware part, and we dont have the DVK currently to test on our end, the USB traces would have been helpful in understanding the issue.

Best Regards,

Sananya

0 Likes
Reply
New Contributor

Hi

Under Windows the popup appears. The OVR# and PWR# pins toggles all 250ms for a short period. I think the hub (or Linux) is probing for overcurrent. The voltage levels are 3.3 or 0V.

The following trace shows the 5V on the USB connector at the beginning of the overcurrent.

SCRN0088.PNG

I measured also the usb signal lanes, but theres nothing on it. But that's clear as I only connect a resistor. I also tested the behaviour on a port with a connected device. The OC bit is also missing there.

What can I do now?

Do you know of a good tool to show the status bits under windows? The tool I used is not really good.

0 Likes
Reply
Moderator
Moderator

Hi,

Thanks for the details. The toggling would usually occur if the connected power switch would keep asserting the OVR# pin and then the hub would keep PWR# de-asserted till its enabled again by the host. Could you please let us know if this happens in all your boards?

You could check USBlyzer, which is a USB software analyzer and would allow us to check the hub status bits.

Best Regards,

Sananya

View solution in original post

0 Likes
Reply