У меня все работает. Я сделал специальную платку на которую устанавливаю STM и через нее заливаю. Использую стандартный usb-ttl адаптер от Про Мини.
Здорово) получилось симпотично. Сейчас попробовал так работает норм Но хотелось бы использовать имеющийся на плате micro USB разъём, это удобнее, особенно когда к UART уже что-то подключено, а плата впаяна в устройство, и ненужно дополнительные конверторы вешать, перемычки перекидывать, ресетать Собственно в этом и вся канитель...
Бут прошился норм, переставляю в 0-0, подключаюсь к microUSB, светодиод стал весело мигать, видно в диспетчере MapleDFU, COM нет, ресетаю, ничего не меняется, пробую прошивать в ИДЕ не указывая COM порт, по логу ИДЕ пытается прошить скетч в порт, который использовался последний раз, естественно этого порта не находит и заканчивает процесс прошивки не успев начать, всё это происходит мнгновенно и ничего нажать я не успеваю. _____ Поэтому и прошу, раз у вас получилось, скиньте мне дамп Flash памяти с вашей платки ПЛИИЗ. Это моя последняя надежда ... (Верхняя перемычка на 1, подкл через UART, в FlashLoaderDemonstrator: выбрать Upload from device, создать файлик *.s19, выбрать все сектора Select all...)
Повторяю подробно. Нажимаем Эскиз-Вгрузить, смотрим в окно лога. Как только откомпилируется - в логе появится Код (C++): Resetting to bootloader via DTR pulse Searching for DFU device [1EAF:0003]... В этот момент ресетим платку.
К сожалению у меня после успешной копиляции не появляется эта надпись: Код (C++): Изменены опции сборки, пересобираем все Скетч использует 12 412 байт (18%) памяти устройства. Всего доступно 65 536 байт. Глобальные переменные используют 2 560 байт динамической памяти. java.lang.UnsupportedClassVersionError: CliTemplate/CliMain (Unsupported major.minor version 51.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source) at java.security.SecureClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$1(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) выбранный последовательный порт at java.lang.ClassLoader.loadClass(Unknown Source) не существует или плата не подключена к нему Exception in thread "main" И всё сразу заканчивается.
Так у вас проблемы с настройкой ИДЕ, к платке претензий нету Выбор платки, опции загрузчика такие же как у меня? У меня иногда проскакивают ошибки компиляции, когда я случайно дважды ее запускаю. Приходится подождать пока вылетит ошибка и повторить заново. Короче, добейтесь полной компиляции, потом найдите скомпилированную прошивку и прошейте через уарт сторонним программатором.
Да, скорее всего проблема с настройками/версией/особенностями ИДЕ или окружения(ОС, дрова и тп), из-за этого я не могу нормально залить скетч, который должен инициализировать вирт COM порт на базе модуля usb, но где сдесь косяк пока непонятно. Пользовательские настройки в ИДЕ, такие же как на вашем скрине. Какая у вас версия ИДЕ? Это без проблем, работает, через UART шьётся и с ArduinoIDE, но чтобы появился COM нужно залить прошивку не затерев бутлодер, т.е. по определённым адресам вероятно, в принципе может и получится если выяснить адрес, щас буду пробовать. Именно поэтому я и прошу скинуть мне просто дамп флеш памяти в которой уже есть бутлодер и скетч. И всё.
Спасибо за наводки, мозговой штурм даёт свои плоды!) Дело двигается. Через UART прошил бутлодер (с пред очисткой всего флэша) в начало памяти (0x8000000), потом без затирания памяти залил бинарник с прошивкой программы Blink, который оставила ИДЕ в своих временных файлах, со сдвигом 0x2000 (по адресу 0x8002000), и БИНГО, определился виртуальный COM порт "Maple Serial (COM7)" !!! Адрес нашел в описании к бутлодеру README.md : Код (C++): Additional DFU AltID upload type was added, which allows the sketch to be loaded at 0x8002000 instead of 0x8005000 (due to reduce size of the bootloader is self), Note. upload to 0x8005000 was retained for backwards compatibility. Но ДуняИДЕ всёравно выдаёт те же ошибки при загрузке))) Теперь проблема похоже осталась только в Arduino IDE, вечером ещё попробую на другом компе с другой осью и версией среды.
Проблема решена. Даже несмотря на то, что я таки собрал в памяти stm-ки прошивку с инициализацией COM средствами USB контроллера и всё определилось, ардуино ИДЕ не могла работать с платформой Maple, т.к. работа просходит средствами Java и некоторые функции отсутствовали в либках на моей машине. После установки последней JDK 8 всё отлично заработало!
Да, прошивочка бы помогла, ну зато разобрался с памятью и бутлодером пока её собирал. Если кому интересно. Я подытожил тему в своей группе Robotic в вк: https://vk.com/robotic_club?w=wall-95181094_957/all / Инструкция / Ссылки / Готовый дамп памяти / Какие особенности /
Я надеялся, что вы обратите внимание на то, что у меня выставлен чип 103СВ, а не С8. Реально в С8 128К флеша, как в СВ. Правда, намного круче меги328?
Надо учесть, что у меня правленная библиотека Serial с большим буфером и то, что в этот объем входит USBCDC со старта.
Вот и я о том же. Памяти больше, но и прошивка больше намного. В данном случае в Меге она заняла даже меньше места. Кстати пока еще ни разу не было программ размером более 16Кб, кроме тех, которые используют шрифты.