STM32F103... вместо maple dfu Unknown Device

b612
Offline
Зарегистрирован: 12.03.2017

Добрый день, All !

Купил из китая платы STM32F103C8T6

В исходном состоянии мигали светодиодиком и определялись как Unknown Device.

Прошил через UART прошивку generic_boot20_pc13.bin

Прошивка и проверка проходит успешно, джампер переставлял и туда и обратно и ресет нажимал, но как было Unknown Device, так и осталось никакого maple dfu  (

Пробовал при рошивке выбирать и 64к и 128к

Подскажите, в каком направлении копать.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

поставить драйвера

nik182
Offline
Зарегистрирован: 04.05.2015

В десятке и без драйверов всё определяется сразу. Перетыкать ничего не надо если заливка через st-link. В любом случае после прошвки должен мигнуть 6 раз быстро а потом непрерывный блинк. В описании процесса написано что 10к на D+ нужно поменять на 1.5к, но у меня и так работает.

b707
Offline
Зарегистрирован: 26.05.2017

по примеру новичков влезу в чужую тему.

Имею похожую проблему, но обратную :) 

Когда втыкаю БлюПилл в USB- она определяется как MapleMini и если на компе в этот момент открыт VisualMicro - он автоматически перестраивает параметры текущего проекта с платы "Generic STM32F103" на эту самую Maple- что очень неудобно. Более того, из-за того, что ВижуалМикро автоматически определяет плату как Мапле - он ее отказывается прошивать как Generic STM32.

При этом в АрдуиноИДЕ плата прошивается без проблем - наверно потому что АрдуиноИДЕ не "умничает" и е пытается мне "подсказать" , какую плату мне использовать.

Вопрос - можно ли в ВижуалМикро выключить автоматическое определение типа прошиваемой платы?

b612
Offline
Зарегистрирован: 12.03.2017

ua6em пишет:
поставить драйвера
win 7

Драйвера поставлены

Но какие драйвера для устройства без VIDов и PIDов ?

Резистор стоял 10к , сейчас поставил 1к5 . ничего не изменилось.

 

b612
Offline
Зарегистрирован: 12.03.2017

nik182 пишет:
должен мигнуть 6 раз быстро а потом непрерывный блинк.
у меня после сброса быстро мигает несколько раз потом тишина.

Я так понимаю непрерывный блинк это если устройство опознано компом.

nik182
Offline
Зарегистрирован: 04.05.2015

Сейчас провел экспермент. Всё не понятно. У меня несколько плат. Есть blue pill, есть JM electron c диодом на PA1 и резистором на D+ 1k. Писал разные загрузчики. Blue pill с загрузчиком generic_boot20_pc13.bin моргает как надо и определяется как maple DFU. JM electron с любым загрузчиком моргает 6 раз и гаснет, при этом определяется как ком порт и записать из ардуино в неё ничего нельзя. В blue pill пишутся программы из ардуино и USB порт работает как сериал, но только со старым ядром, которое не поддерживает куб. JM electron я не смог заставить работать с загрузчиком ардуино. C новым ядром и st-link ардуино работает с кубом в полном объеме после добавления в файл platform.txt (c:\Users\1\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.4.0\platform.txt) к параметру compiler.extra_flags строки "-DUSE_FULL_LL_DRIVER" , но новое ядро не поднимает USB как сериал порт. Печаль.

 

b707
Offline
Зарегистрирован: 26.05.2017

nik182 пишет:

В blue pill пишутся программы из ардуино и USB порт работает как сериал, но только со старым ядром, которое не поддерживает куб.

спасибо за инфо, значит ядро обновлять не будем. Для меня Сериал важнее поддержки куба.

Я обновил некоторые библиотеки, входящие в пакет СТМ32дуино - вроде пока все работает :)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

у меня три платы, после установки драйверов раз шесть пришлось передёрнуть чтобы снача мапл а потом ком порт встал или наоборот ))) уже не помню
Устанавливается компортом

nik182
Offline
Зарегистрирован: 04.05.2015

В мапл они все на 2 секунды перекидываются при старте. Но загрузить программу за это время ардуино не успевает. А blue pill остается и в сериал не перекидывается. 

Ядра с разных ресурсов:

 
Они не пересекаются и не конфликтуют. Можно пользоваться обоими в зависимости от потребностей.
 
b707
Offline
Зарегистрирован: 26.05.2017

nik182 пишет:

В мапл они все на 2 секунды перекидываются при старте. Но загрузить программу за это время ардуино не успевает. А blue pill остается и в сериал не перекидывается. 

не совсем понял, что имеется в виду. У меня штук шесть БлюПилл - все они определяются как МаплМини, при этом Ардуино Иде грузит скетчи без проблем и Сериал работает. Резисторы на USB не перепаивал - работет и так.

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

Это создает небольшие сложности при отладке, так как нет никкой возможности увидеть в Сериале сообщения сразу после загрузки платы.

nik182
Offline
Зарегистрирован: 04.05.2015

Я про другие платы, не голубая таблетка. У меня их 4 разных на stm32F103. Только таблетка через stm32duino bootloader грузится. Остальные только через st-link. Но меня это не напрягает. Я stmку в других средах програмирую. 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nik182 пишет:

Я про другие платы, не голубая таблетка. У меня их 4 разных на stm32F103. Только таблетка через stm32duino bootloader грузится. Остальные только через st-link. Но меня это не напрягает. Я stmку в других средах програмирую. 

Я правильно понимаю - куб умеет зашивать голубые платы?

b707
Offline
Зарегистрирован: 26.05.2017

ua6em пишет:

Я правильно понимаю - куб умеет зашивать голубые платы?

конечно. Они же тоже СТМ32

nik182
Offline
Зарегистрирован: 04.05.2015

Нет. Ардуина может скушать кубовую программу, если прграмму и ардуину немного подправить. Потом запрограмировать таблетку. Куб только генерит программу инициализации оборудования. Зашивать не умеет. Запуск и прерывания надо дописывать руками. Програмировать чип можно готовой прошивкой программой st-link через програматор.

b707
Offline
Зарегистрирован: 26.05.2017

nik182 пишет:
Нет. Куб только генерит программу инициализации оборудования. Зашивать не умеет. Програмировать чип можно готовой прошивкой программой st-link через програматор.

не только так

Бинарник можно прошивать в плату как через St-Link, так и через TTL-USB переходник через пины PA9 PA10 - аналогично тому, как прошивается загрузчик для СТМ-дуино

А бинарник делаем так - Куб может генерить проект под маке, потом мэйком собираешь

nik182
Offline
Зарегистрирован: 04.05.2015

Ну так куб зашивать не умеет, а только генерить программу, которая без доработки никогда не заработает? Я не знаю как в кубе сгенерить програму блинька без дописывания руками. Про мэйк знаю. Он тоже не умеет зашивать.

b707
Offline
Зарегистрирован: 26.05.2017

nik182 пишет:
Ну так куб зашивать не умеет, а только генерить программу, которая без доработки никогда не заработает? Я не знаю как в кубе сгенерить програму блинька без дописывания руками. Про мэйк знаю. Он тоже не умеет зашивать.

да я не спорю - я просто дополняю

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

b707 пишет:

Это создает небольшие сложности при отладке, так как нет никкой возможности увидеть в Сериале сообщения сразу после загрузки платы.

Сразу после 

  Serial.begin();

вставьте 

  while (!Serial) { ; }  

 

a5021
Offline
Зарегистрирован: 07.07.2013

nik182 пишет:
Ну так куб зашивать не умеет, а только генерить программу

И правильно и неправильно одновременно. :-)

1) STM32CubeMX зашивать не умеет, а только генерит программу.

2) STM32CubeProgrammer генерить не умеет, а зашивает за милую душу.

И то и другое нынче входит в состав куба. :-)

b612
Offline
Зарегистрирован: 12.03.2017

Киньте мне, пожалуйста какую-нибудь демопрошивку, чтобы без лишней обвески просто было какое-нибудь ЮСБ-устройство у которого нет заморочек с секундами.

Просто убедиться, что микруха рабочая

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

nik182 пишет:
Про мэйк знаю. Он тоже не умеет зашивать.

Ну если прописано в makefile , то умеет:  Когда работал с библиотекой Lufa, то команда make atprogram компилила и сразу заливала скопилированную прошивку в мк.

nik182
Offline
Зарегистрирован: 04.05.2015

Согласен. Именно это я имел в виду. Сам не умеет. Умеет вывзывать сторонние программы, которые прошьют. Это с любой средой так. При прошивке вызывается прошивальщик. Вопрос в том насколько дружественно к пользователю. В ардуино через st-link этот процесс вполне прозрачен и не требует никаких телодвижений со стороны пользователя.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

nik182 пишет:
Нет. Ардуина может скушать кубовую программу, если программу и ардуину немного подправить. Потом запрограмировать таблетку.

А можно об этом поподробнее?

nik182
Offline
Зарегистрирован: 04.05.2015

#6, #9

nik182
Offline
Зарегистрирован: 04.05.2015

b612 пишет:

Киньте мне, пожалуйста какую-нибудь демопрошивку, чтобы без лишней обвески просто было какое-нибудь ЮСБ-устройство у которого нет заморочек с секундами.

Просто убедиться, что микруха рабочая

https://cloud.mail.ru/public/3ocV/PgYmeains

Прошивка голубой таблетки блинкает светодиодом С13 и выдает в сериал через USB циферки от 0 до 255 раз в секунду.

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Спрошу здесь*
У всех так - при заливке через IDE в самый последний момент приходится нажимать кнопку сброс на плате, тогда шьётся

b707
Offline
Зарегистрирован: 26.05.2017

ua6em пишет:

Спрошу здесь*
У всех так - при заливке через IDE в самый последний момент приходится нажимать кнопку сброс на плате, тогда шьётся

иногда так, иногда само сбрасывается. Закономерности не нашел, обычно 3-5 раз само шьется. потом столько же кнопку нажимаешь, потом снова само...

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

ua6em пишет:

У всех так - при заливке через IDE в самый последний момент приходится нажимать кнопку сброс на плате, тогда шьётся

Тут нужно принять во внимание тот факт, что заливка возможна только  когда в текущей загруженной программе корректно работает USB-CDC, т.е. не запрещены прерывания, не отключен сам USB CDC (который по дефолту включен) , не отключен таймер систик, и вообще всё работает и ничего не висит ) Если всё ок, то плата должна прошится без нажания на ресет. По крайней мере у меня 100% прошивается, при вышеперечисленных условиях.

b707
Offline
Зарегистрирован: 26.05.2017

dimax пишет:

По крайней мере у меня 100% прошивается, при вышеперечисленных условиях.

шью подряд один и тот же скетч - вроде как условия должны быть одинаковы. Но вполне может пару раз прошиться только с Ресетом, потом начать прошиваться само. Или наоборот