STM32F302: проблема с DFU

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Аватара пользователя
gauss
Держит паяльник хвостом
Сообщения: 920
Зарегистрирован: Сб янв 16, 2010 15:34:57
Откуда: Sevsk/Moscow

STM32F302: проблема с DFU

Сообщение gauss »

Привет, форумчане!
Приобрел контроллеры STM32F302K8 для своих поделок. Одной из причин выбора было наличие встроенного
USB DFU загрузчика - привлекала возможность работать с МК без программатора.

Схема подключения МК следующая:

Изображение

Но вот незадача - МК напрочь отказывается обнаруживаться как STM Device in DFU Mode, да и вообще
ПК никак не реагирует на подключение!

Попробовал подоткнуться ST-Link'ом - проц обнаруживается. Залил блинк с частотой 1с - работает. Затактировал от кварца - кварц работает.
Подтягивающий резистор на D+ подключал как к 3.3, так и к 5 вольтам - разницы никакой. Нижний пад (корпус QFN) к земле припаян. Все
контакты проверил неоднократно. BOOT0 естественно подтянут к "1".

В чем может быть проблема, куда еще копнуть? :dont_know:

Попробовал залить Custom HID USB Device... При BOOT0=0 находит в диспетчере устройств, показывает в HID-устройствах,
корректно отображает VID и PID.
Но стоит поставить BOOT0=1, как тишина... Никакой реакции, в диспетчере устройств тоже
:idea:
Galizin
Мучитель микросхем
Сообщения: 477
Зарегистрирован: Ср окт 15, 2008 09:33:03
Откуда: Воронеж

Re: STM32F302: проблема с DFU

Сообщение Galizin »

Подтяжка должна быть к3.3
Попробуйте напрямую boot0 к 3.3
Последний раз редактировалось Galizin Чт окт 12, 2017 23:53:20, всего редактировалось 2 раза.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: STM32F302: проблема с DFU

Сообщение Reflector »

Проверь еще значение nBOOT1 в user option byte, если оно поменялось на 0, то будет пытаться стартовать из SRAM.
Аватара пользователя
gauss
Держит паяльник хвостом
Сообщения: 920
Зарегистрирован: Сб янв 16, 2010 15:34:57
Откуда: Sevsk/Moscow

Re: STM32F302: проблема с DFU

Сообщение gauss »

Переставил подтяжку на 3.3, BOOT0 тоже теперь подтягиваю напрямую.
nBOOT1 проверил, единица. А результат все тот же - его отсутствие...

Update: почитал даташит, нашел интересную вещь:
For STM32 devices embedding bootloader using the DFU/CAN interface in which the external clock source (HSE) is required for DFU/CAN operations, the detection of the HSE value is done dynamically by the bootloader firmware and is based on the internal oscillator clock (HSI, MSI).
Thus, when due to temperature or other conditions, the internal oscillator precision is altered above the tolerance band (1% around the theoretical value), the bootloader might calculate a wrong HSE frequency value.
In this case, the bootloader DFU/CAN interfaces might dysfunction or might not work at all.
Как я понял отсюда, частота кварца определяется автоматически, но так как внутренний источник может
быть неточным, кварц будет определен неверно, и ничего не стартанет. :o Как вариант - поставить кварц на другую частоту (например, 12 МГц)

Схема подключения к USB задана следующая:
Изображение

Грубо - смотрите конкретную спецификацию, нужен ли резистор для Вашего МК.
Поправьте, если неправ, но ведь можно и напрямую резистор к 3.3В кинуть, совсем необязательно делать через транзистор?
:idea:
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: STM32F302: проблема с DFU

Сообщение Reflector »

[uquote="gauss",url="/forum/viewtopic.php?p=3205399#p3205399"]Поправьте, если неправ, но ведь можно и напрямую резистор к 3.3В кинуть, совсем необязательно делать через транзистор?[/uquote]
Можно.
Поставь еще конденсатор 100nf на сброс и землю. И проверь работает ли бутлоадер по USART. VBAT тоже не мешало бы подключить, вряд ли в нем дело, но мало ли...
Аватара пользователя
gauss
Держит паяльник хвостом
Сообщения: 920
Зарегистрирован: Сб янв 16, 2010 15:34:57
Откуда: Sevsk/Moscow

Re: STM32F302: проблема с DFU

Сообщение gauss »

VBAT'a в QFN корпусе нет в принципе, так что едва ли
Конденсатор поставил, ничего не изменилось

Попробую кварц другой использовать и UART.

Update: когда поменял кварц на 12 МГЦ, начал правильно обнаруживаться (STM Device in DFU Mode), но почему-то через раз :o
Все-таки грешу на эту "систему автоопределения частоты кварца", из-за которой он и стартует через раз

Update2: дело оказалось в старых (на 12пФ) конденсаторах, которые ставил к кварцу на 8МГц :facepalm:
Поменял на 18пФ - определяется без проблем.

Обидно, что срабатывание на пустой флеш (как у F042) работает либо в "маленьких" L (где маленькие частоты),
либо в больших (где слишком много выводов). Не понимаю, почему ST не сделали такой паттерн на большем числе контроллеров
:idea:
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32F302: проблема с DFU

Сообщение dosikus »

О каком "срабатывании на пустой Флэш" речь?
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: STM32F302: проблема с DFU

Сообщение uk8amk »

dosikus писал(а):О каком "срабатывании
По всей видимости имелось в виду это
Empty check
On STM32F04x and STM32F09x devices only, internal empty check flag is implemented to
allow easy programming of the virgin devices by the boot loader. This flag is used when
BOOT0 pin is defining Main Flash memory as the target boot space. When the flag is set,
the device is considered as empty and System memory (boot loader) is selected instead of
the Main Flash as a boot space to allow user to program the Flash memory.
Аватара пользователя
gauss
Держит паяльник хвостом
Сообщения: 920
Зарегистрирован: Сб янв 16, 2010 15:34:57
Откуда: Sevsk/Moscow

Re: STM32F302: проблема с DFU

Сообщение gauss »

uk8amk, именно!
Согласитесь, фича классная. Заводской загрузчик - свой загрузчик - твори что угодно. А так либо программатор, либо перемычка :(
:idea:
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: STM32F302: проблема с DFU

Сообщение dosikus »

А перемычка это так трудно ...
Аватара пользователя
gauss
Держит паяльник хвостом
Сообщения: 920
Зарегистрирован: Сб янв 16, 2010 15:34:57
Откуда: Sevsk/Moscow

Re: STM32F302: проблема с DFU

Сообщение gauss »

Для серийного устройства да, нужно элегантное решение
:idea:
Ответить

Вернуться в «ARM»