Как работать с загрузчиком USB DFU без использования VBUS и ID ilne для STM32F4xx?

Мне нужна ваша помощь, так как я работаю над MCU STM32f439ZI и IAR IDE 7.40, а также над загрузчиком USB OTG, загруженным по ссылке ниже.

"https://github.com/mechoid9/STM32F4/tree/master/STM32F4-Discovery_FW_V1.1.0/Project/FW_upgrade "

Я протестировал этот загрузчик с платой обнаружения STM32F407, которая работает отлично.

но этот же загрузчик не работает с моей кастомной платой,

Из схемы платы обнаружения можно увидеть, что вывод PA9 необходим для питания VBUS, которое запускается PC0 с использованием механизма переключения.

Теперь в моем случае контакт PA9 подключен к другому интерфейсу, и я занимаюсь внешним (5 В) источником питания (с использованием ПК и общего заземления с моей пользовательской платой), также контакт ID нигде не подключен.

Я также обратился к таблицам данных и попытался использовать бит «NOVBUSSENS» OTG_FS_GCCFG, но он не распознает подключение / отключение USB, даже если я пытался удалить эти функции (которые обнаруживают события подключаемого модуля USB), поскольку я обнаружил, что событие подключения / отключения может быть распознается статусом VBUS, но не функционирует.

Итак, теперь мои запросы соответствуют ниже,

1) Требуется ли мне в обязательном порядке переключатель, подключенный к питанию VBUS от PA0 / PB13 (согласно техническому паспорту)?

2) Работает ли NOVBUSSENS в этом сценарии или есть какой-либо другой способ работать с указанным выше загрузчиком без подключения PA9 и VBUS?

3) Если вышесказанное верно, то есть ли какие-либо рекомендации или документы?

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

С уважением и уважением, RUTVIJ


person user3405841    schedule 23.01.2016    source источник


Ответы (1)


Используйте встроенный DFU

Многие микросхемы ST ARM имеют встроенные утилиты DFU. Чтобы использовать их, вам нужно поднять BOOT0 и подключить. Полная документация доступна на ST. AN3156 В настоящее время код имеет вид здесь, хотя время от времени он может перемещаться поищите DFUSE на сайте СТ. На YouTube есть видео

Использование VBUS для обычного USB

1) USB компилируется для сигнализации VBUS или без нее, в зависимости от флага, установленного в Cube.

2) ST предоставляет всю необходимую документацию и программное обеспечение, касающееся DFU и USB, на своих страницах продуктов. Также они предоставляют рабочие DFU. Вам нужно поднять BOOT0 и, возможно, BOOT1 в зависимости от вашего устройства.

3) Вы можете написать свой собственный DFU, это не волшебство, все, что он делает, это ищет определенное имя файла на USB и записывает содержимое в энергонезависимую память.

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

Можно загрузить несколько копий прошивки во флеш-память, а затем выбрать, какую из них запустить, либо установив контакты, либо записав в адрес загрузки.

person ChrisR    schedule 28.01.2016
comment
Привет, спасибо за ответ. Я просмотрел ваш ответ и прочитал некоторые документы и обнаружил, что все MCU STM имеют внутренний загрузчик DFU в системном ПЗУ, который можно настроить с помощью оборудования, и создание булавки Boot0 для подтягивания позволит нам войти в этот загрузчик, здесь, в этом случае он обнаруживает USB в диспетчере устройств, и мы можем загружать наши двоичные файлы с помощью утилиты DFUse, предоставляемой самим ST после преобразования обычных двоичных файлов в формат .dfu. - person user3405841; 29.01.2016
comment
@ user3405841 - Думал, что-то в этом роде, но не проверял. Спасибо, что вернулись и лаконично объяснили. Я обновлю свой ответ по вашим выводам. Мне тоже приятно знать - надо попробовать. - person ChrisR; 29.01.2016