Привет, форумчане! Приобрел контроллеры STM32F302K8 для своих поделок. Одной из причин выбора было наличие встроенного USB DFU загрузчика - привлекала возможность работать с МК без программатора.
Схема подключения МК следующая:
Но вот незадача - МК напрочь отказывается обнаруживаться как STM Device in DFU Mode, да и вообще ПК никак не реагирует на подключение!
Попробовал подоткнуться ST-Link'ом - проц обнаруживается. Залил блинк с частотой 1с - работает. Затактировал от кварца - кварц работает. Подтягивающий резистор на D+ подключал как к 3.3, так и к 5 вольтам - разницы никакой. Нижний пад (корпус QFN) к земле припаян. Все контакты проверил неоднократно. BOOT0 естественно подтянут к "1".
В чем может быть проблема, куда еще копнуть?
Попробовал залить Custom HID USB Device... При BOOT0=0 находит в диспетчере устройств, показывает в HID-устройствах, корректно отображает VID и PID. Но стоит поставить BOOT0=1, как тишина... Никакой реакции, в диспетчере устройств тоже
Переставил подтяжку на 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.
Как я понял отсюда, частота кварца определяется автоматически, но так как внутренний источник может быть неточным, кварц будет определен неверно, и ничего не стартанет. Как вариант - поставить кварц на другую частоту (например, 12 МГц)
Схема подключения к USB задана следующая:
Грубо - смотрите конкретную спецификацию, нужен ли резистор для Вашего МК. Поправьте, если неправ, но ведь можно и напрямую резистор к 3.3В кинуть, совсем необязательно делать через транзистор?
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Поправьте, если неправ, но ведь можно и напрямую резистор к 3.3В кинуть, совсем необязательно делать через транзистор?
Можно. Поставь еще конденсатор 100nf на сброс и землю. И проверь работает ли бутлоадер по USART. VBAT тоже не мешало бы подключить, вряд ли в нем дело, но мало ли...
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
VBAT'a в QFN корпусе нет в принципе, так что едва ли Конденсатор поставил, ничего не изменилось
Попробую кварц другой использовать и UART.
Update: когда поменял кварц на 12 МГЦ, начал правильно обнаруживаться (STM Device in DFU Mode), но почему-то через раз Все-таки грешу на эту "систему автоопределения частоты кварца", из-за которой он и стартует через раз
Update2: дело оказалось в старых (на 12пФ) конденсаторах, которые ставил к кварцу на 8МГц Поменял на 18пФ - определяется без проблем.
Обидно, что срабатывание на пустой флеш (как у F042) работает либо в "маленьких" L (где маленькие частоты), либо в больших (где слишком много выводов). Не понимаю, почему ST не сделали такой паттерн на большем числе контроллеров
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.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения