Перейти к содержанию
    

STM32F439ZI + USB OTG_HS в full-speed режиме

Коллеги, может быть кто-нибудь сталкивался: 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)

Изменено пользователем 0men

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...