при включении питания моего устройства после выключения питания на ДОЛГОЕ ВРЕМЯ (минуты 3 хотя бы или даже больше, а лучше вобще включать устройство с утра или после обеда

Далее я либо выключаю-включаю Pull-up резистор, либо откючаю-включаю устройство с помощью кабеля, процесс enumeration уже представляет собой другую последовательность транзакций (адрес уже не устанавливается, иногда не возникают прерывания по EPOINT0. И с течением времени обмен совсем ломается: при обнаружении устройства в Windows моему устройству приходит только набор прерываний ENDBUSRESET и RXRSM и ни одного EPOINT0 (то есть никаких запросов и никаких установок).
Я бы думала, что это все связано с глюками моей программы, НО
если затем я сбрасываю питание устройства (в выключенном состоянии устройство находится НЕДОЛГО), то нормальный обмен (как после долгого выключения устройства) не восстанавливается.
А если я выключу устройство снова надолго, то начало процесса enumeration происходит нормально (как в первом случае).
Но самая странная ситуация такая:
если оставить питание устройства выключенным надолго (чтобы обмен был полным, как в первом случае),
затем включить устройство, но программу не загружать в контроллер какое-то время,
а потом загрузить и сразу подключить девайс к хосту, то нормального первоначального обмена нет.
То есть процесс enumeration происходит нормально только после длительного ресета и при подключении устройста к хосту сразу же после подачи питания на устройство.
Через какое-то время обмен ломается независимо от программы.
Спасибо всем, кто дочитал до конца!
Подскажите, пожалуйста, в чем может быть дело? Схемотехник говорит, что "схемотехнически все правильно и ничего там не может быть".
И я тоже не знаю, что делать
