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:
uVision V5.25 Pre2