cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F756: CIDSTS does not reflect ID status of USB port

mf101
Associate II
Posted on March 02, 2018 at 11:49

For both USB OTG FS and HS controller the CIDSTS bit in the GOTGCTL register does not reflect the status of the USB port. When pulling the ID line low or leaving it in floating state the register value changes, but CIDSTST always remains set regardless of the ID state.

With floating ID line the register value is: 0x004C10000

When pulling ID low the value changes to: 0x03010000

If the ID port pin multiplexer is not set to alternate function USB FS / HS, the register value does not change at all. This makes sense, since the voltage level is not changing anymore. So obviously the ID line changes 'something' (undocumented reserved bits) but not the CIDSTS bit, as expected.

Is there any special configuration required to make use of the ID line detection feature ?

Hardware / software platform used:

STM32F756-EVAL

CMSIS v5.3.0

MDK-Middleware V7.6.0

uVision V5.25 Pre2
2 REPLIES 2
Posted on March 02, 2018 at 23:01

CIDSTST does not indicate directly the status of the ID pin; it is subject to 'forced state' when one of the OTG_GUSBCFG.FDMOD or .FHMOD are set.

JW

mf101
Associate II
Posted on March 05, 2018 at 08:50

Thanks for your response, since I am using the MDK Middleware with CMSIS drivers (host and device implementation are separated) this explains the behaviour. Is there any other possibility to determine the ID pin status than reading the GPIO value if FDMOD or FHMOD are set (by the CMSIS driver) ?