As you know, there are tree possible states of device, following USB specification:
1. Default state
2. Addressed state
3. Configured state
I have some problems with passing USB compliance tests, as proper device behavior for some Host requests depends on the device state (Default/Addressed/Configured).
So I need to identify each state. I can indentify Default state using CY_U3P_USB_EVENT_RESET. Also I can indentify Configured state by CY_U3P_USB_SC_SET_CONFIGURATION standard request or CY_U3P_USB_EVENT_SETCONF event.
But I can't catch CY_U3P_USB_SC_SET_ADDRESS standard request in setup callback to identify Addressed state!
I have registered my callback with parameter fastEnum = false, expecting to catch all requests.
CyU3PUsbRegisterSetupCallback (CyFxMscApplnUSBSetupCB, CyFalse);
Any way I can catch many requests, but never CY_U3P_USB_SC_SET_ADDRESS.
What am I doing or understand wrong? Are there any way to catch all standard setup requests or get device state?