STM32F04 в режиме DFU распознается только при питании от батареи (Win10) - PullRequest
0 голосов
/ 25 сентября 2018

Я сделал STM32F042k6, устройство с батарейным питанием, чтобы прошивать протокол vi DFU.

Для этого я отсоединяю батарею, вытащив BOOT0 к VCC, а затем подключаю устройство к USB3-порту ПК (USB2 не доступен).Устройство не распознается и показывает VID: 0000 PID: 0002 (случай I)

Однако, когда я впервые подключаю батарею, а затем подключаю устройство к ПК, оно распознается без суеты (случай II).

Проблема, с которой я сталкиваюсь, заключается в том, что я хотел бы инициировать переход к программе загрузчика по команде в программном обеспечении, но затем я достигаю точно такого же условия, как и в случае I.

Не могли бы вы помочь мне определитькакие условия для правильной загрузки я нарушаю?

РЕДАКТИРОВАТЬ: Способ, которым я обнаружил проблему, был, когда я реализовал программный переход к загрузчику.Казалось, что он вообще не работает (устройство VCP исчезло, и устройство с ошибкой <> появляется в системном PID: 0002 VID: 0000).Я хотел войти в загрузчик, потянув за булавку BOOT0, но я видел, что у меня все получается только при циклическом питании от батареи.Выключение питания USB приводило к тому же устройству с ошибкой дескриптора.

Я подозреваю, что при включении через USB у загрузчика возникают проблемы с электронной связью, и он не может установить надлежащие PID и VID.При питании от батареи - этой проблемы не существует.

1 Ответ

0 голосов
/ 26 сентября 2018

У вас есть плата обнаружения?

Я прочитал в Справочном руководстве STM32F042x4 / x6 (DocID025832 Rev 5):

STM32F042x4 / x6 встраивает полный-скоростное периферийное устройство USB, соответствующее спецификации USB версии 2.0.

(часть 3.19, стр. 27).

В AN2606 (Rev 33) в таблице показан USBКонфигурация, которая используется загрузчиком DFU в USB FS (Full-speed):

enter image description here

Я предполагаю, что USB в загрузчике 2.0,но USB 3.0 должен быть совместимым с USB 2.0.Таким образом, можно использовать порт USB 3.0.

Я предлагаю вам использовать DfUSe Demo от ST.Его интерфейс состоит из вкладки, где отображаются доступные устройства DFU при обнаружении.Я пробую его на другом STM32x, выполнив следующие действия:

  • Откройте демонстрационное программное обеспечение DfuSe.
  • Подключите BOOT0 к Vdd, чтобы перевести микро в режим DFU.
  • ПодключитеПОЛЬЗОВАТЕЛЬ USB к порту вашего компьютера.
  • Имя вашего устройства должно появиться в поле «Доступные устройства DFU».

Вы также можете попробовать использовать напрямую PA11 и PA12 (в соответствии с Таблица 12 ) вместо порта USB на вашей плате.

РЕДАКТИРОВАТЬ:
Другое решение для обновления прошивки без запуска boot0 - это прямой переходв загрузчик DFU ST внутри вашей прошивки.В противном случае вы можете создать свой собственный загрузчик IAP (программирование в приложении).

Надеюсь, это поможет.

...