Hi,
I'm facing an USB issue, wich does not appear systematically, but leads to no USB devices enumeration.
My plateform is based on P1010, using UTMI and on-chip PHY. I'm using EHCI controller.
P1010 is used in host mode, and is connected to a microchip USB2534 Hub.
My issue is a that the microchip hub is not enumerated at each boot of VxWorks 6.9.4.6.
My problem seems to come from missing SOF. They can be interpreted as a reset by the microchip hub, requested by the host controller. This reset leads to a false enumeration.
Following 3 files, with signal capture, and USB traces.
In good_start.jpg, we see the missing SOF. But is not reconised as reset by the hub. In this case, Hub is enumerated.
In bad_start.jpg, we also so see the missing SOF, but leading to my issue : hub goes to reset state, and then is not enumerated.
In traces.jpg, we see a SOF error packet #70
Could you please help me to solve this issue ? Do you know a workaround in order to have a good enumeration of USB devices at each boot ?
Thanks in advance for your reply,
Regards,
Fabrice DECROP
The P1010 USB stops SOF generation if RS or RST bits are set in the USB_USBCMD register.
See also the Section 17.7.4.1 of the P1010 Reference Manual.
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
The P1010 USB SOF generation can be tested using a timer and polling/interrupt from the USB_USBSTS[SRI] bit setting.
Te USB_USBSTS[FRI[ bit can be used for this task.
See the FRINDEX index.
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
I understand that I can check USB SOF generation by this way. But how do I control it, in case of SOF missing ?
Moreover, why are there missing SOF ? Do you confirm that P1010 can miss SOF during enumeration ?
Thanks in advance for your reply,
Regards,
Fabrice DECROP