To the kind attention of Nordic support team,
We have a problem that may very well be linked to this thread
We got a custom PCB that is powered through USB (high voltage mode, like your nRF52840 usb dongle, without any other external voltage regulator).
We are using a freertos example that is taken from your sdk16. When doing removing/inserting usb cable for hundreds of times enumeration works really well.
Then, all of a sudden (apparently for now), when inserting the usb cable the enumeration doesn't start anymore as we don't get APP_USBD_EVT_POWER_READY event.
The strange thing is that when this happen, USB enumeration continues to fail for like 4/5 times in a row (removing/inserting USB cable), before working again for other hundreds times.
Unfortunately I couldn't already check if the interrupt from USB voltage regulator is fired, so at this point I'm not sure if this interrupt is missing or somehow something
strange happens when processing the USB queue. But we are sure at this stage that APP_USBD_EVT_POWER_READY is not executed and app_usbd_start is not.
I'll keep here updated if we can make some finding. Unfortunately it is really hard bug to reproduce in our particular case.
I'll keep monitoring these 2 things, is there anything else you could suggest? We experienced this bug running this firmware in a Raytac module (based on nRF52833) as well.
So this would just make think to a firmware error, but it is very strange that this kind of problem (when happening) is always happening in a row for multiple 4/5 power on cycles.
Please share any theoretical comment you feel like could help. Also a workaround you imagine could make sense in a scenario like this. For example, could think to just bypass the USB
queue in this case, and use a flag to decide whether it is time to call app_usbd_start. But what if the interrupt might not be triggered? Is it even possible in the first place?
Thank you for your time,
Best regards