0men (13.09.2018 18:35, просмотров: 905)
STM32F439ZI + USB OTG_HS в full-speed режиме, проблема при входе в SLEEP mode with regulator ON. Коллеги, может быть кто-нибудь сталкивался: STM32F439ZI + USB OTG_HS в full-speed режиме. Стандартная библиотека STM32 USB Device Library V2.4.2 + stm32f4xx_ll_usb.
Простейший код
1. инит клоков
2. инит юсб
3. бесконечный цикл
Если внутри цикла ничего нет, то все ок, енумерация проходит, драйвер встает, стмовский порт в списке устройств виден. Как только внутрь цикл делаешь так:
for(;;)
HAL_PWR_EnterSLEEPMode( PWR_MAINREGULATOR_ON, PWR_SLEEPENTRY_WFI );
енумерация не начинается, исследование показало, что не устанавливаются некоторые флаги
При этом, на другой плате с процом STM32F439VG юсб включен на OTG_FS и такой проблемы нет...
Пока выкрутился анализом прерывания Handle Connection event (по подключению Vbus) в котором устанавливаю флаг запрета входа в в слип режим, но хочется понять причину..
Дополнение: попробовал на STM32L4R7VI - все работает без костылей (OTG_FS)