Arduino IDE и STM32F103CBT6

Тема в разделе "Arduino & Shields", создана пользователем kama, 18 окт 2016.

  1. Neilon

    Neilon Нерд

    К заводскому претензий нет, работает как часы))) но с Arduino IDE не работает через microUSB)
     
  2. ostrov

    ostrov Гуру

    У меня все работает. Я сделал специальную платку на которую устанавливаю STM и через нее заливаю. Использую стандартный usb-ttl адаптер от Про Мини.
     
  3. ostrov

    ostrov Гуру

    [​IMG]
    [​IMG]
     
    Neilon и sslobodyan нравится это.
  4. Neilon

    Neilon Нерд

    Здорово) получилось симпотично. Сейчас попробовал так работает норм:rolleyes:
    Но хотелось бы использовать имеющийся на плате micro USB разъём, это удобнее, особенно когда к UART уже что-то подключено, а плата впаяна в устройство, и ненужно дополнительные конверторы вешать, перемычки перекидывать, ресетать:) Собственно в этом и вся канитель...
     
  5. Neilon

    Neilon Нерд

    Бут прошился норм, переставляю в 0-0, подключаюсь к microUSB, светодиод стал весело мигать, видно в диспетчере MapleDFU, COM нет, ресетаю, ничего не меняется, пробую прошивать в ИДЕ не указывая COM порт, по логу ИДЕ пытается прошить скетч в порт, который использовался последний раз, естественно этого порта не находит и заканчивает процесс прошивки не успев начать, всё это происходит мнгновенно и ничего нажать я не успеваю.
    _____
    Поэтому и прошу, раз у вас получилось, скиньте мне дамп Flash памяти с вашей платки ПЛИИЗ. Это моя последняя надежда :confused:...
    (Верхняя перемычка на 1, подкл через UART, в FlashLoaderDemonstrator: выбрать Upload from device, создать файлик *.s19, выбрать все сектора Select all...)
     
  6. sslobodyan

    sslobodyan Гик

    Повторяю подробно.
    tmp.png
    Нажимаем Эскиз-Вгрузить, смотрим в окно лога. Как только откомпилируется - в логе появится
    Код (C++):
    Resetting to bootloader via DTR pulse
    Searching for DFU device [1EAF:0003]...
    В этот момент ресетим платку.
     
    Neilon нравится это.
  7. Neilon

    Neilon Нерд

    К сожалению у меня после успешной копиляции не появляется эта надпись:
    Код (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"
    И всё сразу заканчивается.:(
     
  8. sslobodyan

    sslobodyan Гик

    Так у вас проблемы с настройкой ИДЕ, к платке претензий нету :) Выбор платки, опции загрузчика такие же как у меня? У меня иногда проскакивают ошибки компиляции, когда я случайно дважды ее запускаю. Приходится подождать пока вылетит ошибка и повторить заново. Короче, добейтесь полной компиляции, потом найдите скомпилированную прошивку и прошейте через уарт сторонним программатором.
     
  9. Neilon

    Neilon Нерд

    Да, скорее всего проблема с настройками/версией/особенностями ИДЕ или окружения(ОС, дрова и тп), из-за этого я не могу нормально залить скетч, который должен инициализировать вирт COM порт на базе модуля usb, но где сдесь косяк пока непонятно. Пользовательские настройки в ИДЕ, такие же как на вашем скрине. Какая у вас версия ИДЕ?

    Это без проблем, работает, через UART шьётся и с ArduinoIDE, но чтобы появился COM нужно залить прошивку не затерев бутлодер, т.е. по определённым адресам вероятно, в принципе может и получится если выяснить адрес, щас буду пробовать.

    Именно поэтому я и прошу скинуть мне просто дамп флеш памяти в которой уже есть бутлодер и скетч. И всё.
     
  10. Neilon

    Neilon Нерд

    Спасибо за наводки, мозговой штурм даёт свои плоды!)
    Дело двигается. Через 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, вечером ещё попробую на другом компе с другой осью и версией среды.
     
    Последнее редактирование: 14 фев 2017
  11. Neilon

    Neilon Нерд

    Проблема решена. Даже несмотря на то, что я таки собрал в памяти stm-ки прошивку с инициализацией COM средствами USB контроллера и всё определилось, ардуино ИДЕ не могла работать с платформой Maple, т.к. работа просходит средствами Java и некоторые функции отсутствовали в либках на моей машине. После установки последней JDK 8 всё отлично заработало!
     
  12. sslobodyan

    sslobodyan Гик

    А самое главное - ни один жлоб не поделился скачанной из платки прошивкой ;) Дело было не в бобине :)
     
  13. Neilon

    Neilon Нерд

    Да, прошивочка бы помогла, ну зато разобрался с памятью и бутлодером пока её собирал.
    Если кому интересно. Я подытожил тему в своей группе Robotic в вк:
    https://vk.com/robotic_club?w=wall-95181094_957/all
    / Инструкция / Ссылки / Готовый дамп памяти / Какие особенности /
     
  14. sslobodyan

    sslobodyan Гик

    Я надеялся, что вы обратите внимание на то, что у меня выставлен чип 103СВ, а не С8. Реально в С8 128К флеша, как в СВ. Правда, намного круче меги328? ;)
     
  15. ostrov

    ostrov Гуру

    Какого размера, например, блинк для этого камня получается?
     
  16. sslobodyan

    sslobodyan Гик

    tmp.png
    Надо учесть, что у меня правленная библиотека Serial с большим буфером и то, что в этот объем входит USBCDC со старта.
     
  17. ostrov

    ostrov Гуру

    А он же у Меги328?
     
  18. sslobodyan

    sslobodyan Гик

    Любой каприз :)
    tmp.png
     
  19. sslobodyan

    sslobodyan Гик

    Разница в остатке флеша около 91кбайт, по ОЗУ около 15кбайт. Неплохо?
     
  20. ostrov

    ostrov Гуру

    Вот и я о том же. Памяти больше, но и прошивка больше намного. В данном случае в Меге она заняла даже меньше места.

    Кстати пока еще ни разу не было программ размером более 16Кб, кроме тех, которые используют шрифты.