Можно ли программировать Maple Mini с серийным/FTDI?

343guiltyspark
Вт 24 июля 2018 г., 20:47
Я получил клон Maple Mini, чтобы запрограммировать эскиз от Arduino, используя порт Mini-USB после установки 2.0-версия загрузчика и установка драйверов, обозначенных вики-страницей «Установка» для STM32Duino. Тем не менее, моя реальная цель - запрограммировать его с использованием последовательного метода, будь то использование FTDI USB-в серийный конвертер в 3.Режим 3 В или Клон Stlink/v2 В 4-проводной конфигурации SWD.

Когда я попробую загрузить программу в Arduino в любом случае, я получаю это сообщение: uint32_t time; void loop() { if ( (millis()-time)<1000 ) { if (ss3.available()) { char c = ss3.read(); Serial.write(c); // monitor the data from GPS on PC --- this is optional, can be commented out gps.encode(c); } // this line was missing before } time = millis(); Serial.println("TEST"); Serial.println(gps.location.lat(),6); Serial.println("_____"); }

Стивестронг
Вт 24 июля 2018 г., 8:51 вечера
Читайте внимательно: Загрузите через сериал
Я думаю, вы забыли выбрать соответствующий метод загрузки в Arduino IDE.

343guiltyspark
Вт 24 июля 2018 г., 21:06
@Stevestrong, я видел эту заметку в загрузке с помощью последовательных инструкций, но не мог применить ее, поскольку я не видел такой вариант в Arduino Ide. Я подумал, что это старый вариант, что вариант программиста "Arduino как провайдер" просто позаботится о. См. ниже:

Изображение

Изображение

Рик Кимбалл
Вт 24 июля 2018 г., 21:32
Единственный способ загрузки на Maple Mini - это использовать загрузчик. Любой другой метод потребует, чтобы вы использовали утилиты командной строки. Кроме того, эти другие методы будут уничтожать загрузчик, эффективно зарисовывая его в отношении Arduino IDE.

У вас действительно есть Maple Mini ? Пожалуйста, предоставьте ссылку, где вы приобрели это. Тот факт, что вам пришлось загрузить загрузчик, указывает на то, что у вас, вероятно, есть чертежи / красная таблетка или / черная таблетка.

343guiltyspark
Ср. 25 июля 2018 г. 12:54
Это кленовый мини-клон, так что не является фирменным, но на самом деле это не синяя таблетка. Вот Amazon Link Для клонов Maple Mini, которые я получил. У меня также есть ассортимент Синие таблетки от Различные источники То, с чем я изначально начал работать, но после того, как я не повезло с ними, я намеренно выбрал Maple Mini, чтобы посмотреть, поможет ли это смягчить проблемы, с которыми я столкнулся, что это дошло до точки (я могу программировать через USB, но не Используя другие средства). В какой -то момент мне удалось загрузить код на синюю таблетку с помощью преобразователя FTDI, но соединение будет сокращаться чаще, чем нет, и я не смог постоянно загружать программы. Мой конечный целей-загружать программы на мою собственную плату STM32, и использование STM32Duino кажется самым удобным для меня решением решения, так как у меня есть многолетний опыт работы с Arduino IDE, поэтому, хотя я мог добавить свою собственную USB-доску и просто имитируйте Схема Maple, я бы предпочел понять, смогу ли я программировать, используя булавки RX/TX или SWDIO/SWCLK. Я знаю, что сам STM32 может быть запрограммирован таким образом, но мне недостаточно загрузчиков (особенно этого конкретного загрузчика), чтобы узнать, возможно ли это с загрузчиком STM32Duino.

Рик Кимбалл
Ср. 25 июля 2018 г. 13:17
Я бы посоветовал вам оставить Maple Mini, когда он продается, и использовать его с загрузчиком.

Maple Mini предназначен для использования с его предварительно установленным Leaflabs/Roger's Bootloader. Чтобы использовать Maple Mini с сериалом FTDI USB и загрузчиком ROM или программистом STLINK SWD требует от вас взломать свои доски.txt file чтобы работать. В качестве альтернативы вы могли бы полностью избежать использования Arduino IDE и переключаться на что -то вроде атолического Truestudio.

Я бы предложил вам сосредоточиться на использовании чертежа с сериалом SWD и FTDI и избежать использования загрузчика, если ваша цель - использовать Stlink.

Bluepills - гораздо лучший выбор, если вы хотите использовать серийный или SWD. Булавки и булавки SWD легко доступны. Самый большой камень преткновения для использования SWD с любой платой обычно вызывается при загрузке загрузчика. Компилирование загрузчика включает функцию «Kill SWD JTAG отладки», которая мешает вам использовать SWD после того, как вы использовали загрузчик. Вы можете обойти это, используя перемычку Boot0, у которого есть проблемы на Maple Mini (вам нужно убедиться, что PB2/Boot1 заземлен и не плавает.

Есть много сообщений о сбое SWD после загрузки загрузчика на этом сайте.

ViewTopic.PHP?t = 27
ViewTopic.PHP?F = 28&t = 3120
ViewTopic.PHP?T = 1620#P21450
ViewTopic.PHP?F = 37&t = 1221&начало = 10

343guiltyspark
Ср. 25 июля 2018 г. 13:50
Спасибо за объяснение! Это то, что я подозревал, но также надеялся.

Для ударов и хихиканье я попытался бросить код на свой второй (нетронутый) клон -клон Maple, не выполняя ни одного загрузчика Shenanigans (просто выберите упаковочную сумку, подключите через USB и загрузите из Arduino) и был удивлен, чтобы найти его для идеальной программы. Я прав, понимая, что это означает, что плата была отправлена ​​с уже установленным загрузчиком? Я не ожидал этого, так как это просто клон.

Для синих таблеток мне нужно убедиться, что у них нет загрузчика на них, чтобы программировать код, тогда? Я знаком с использованием контактов Boot0/Boot1, чтобы поместить устройство в режим загрузчика, но не имел успеха с этим при попытке программировать Arduino IDE. Я также знаком с проблемами Maple Mini (клон) с плавающими булавками, поэтому я позаботился о том, чтобы завязать потенциально плавучий Boot1 -штифт на землю с помощью перемычки проволоки, но это вообще не изменило мой сценарий. Arduino IDE по -прежнему продолжает искать «1EAF: 0003», и кажется, что единственный возможный случай, когда я могу получить STM32 для программы с Arduino IDE, - если я подключаю Maple Mini (клон) через USB -порт. Ранее у меня сложилось впечатление, что STM32Duino может справиться с гораздо большим количеством случаев, таких как синие таблетки и тому подобное, но еще не добился успеха с этим.

Мне удалось получить синюю таблетку для программы с использованием STM32Cubemx и Keil, но моя цель - Arduino IDE, поэтому, если я смогу привлечь STM32Duino обращаться с синими таблетками, то я буду экстатичнее!

Рик Кимбалл
Ср. 25 июля 2018 г. 14:17
[343guiltyspark - Ср. 25 июля 2018 г. 13:50] - Я прав, понимая, что это означает, что плата была отправлена ​​с уже установленным загрузчиком? Я не ожидал этого, так как это просто клон.
Да, это не было бы Maple Mini, если бы у него не было загрузчика.

Стивестронг
Ср. 25 июля 2018 г., 14:20
Быстро взглянуть на доски.текст Вы выясните, что единственный метод загрузки, разработанный для MM,-это DFU USB (USB-загрузчик, который да, предварительно сключен в устройствах).

Для синей таблетки доступны 4 различных метода загрузки, в том числе последовательные (используя USB->серийный адаптер).

Рик Кимбалл
Ср. 25 июля 2018 г. 14:31
[343guiltyspark - Ср. 25 июля 2018 г. 13:50] - Arduino IDE по -прежнему продолжает искать «1EAF: 0003», и кажется, что единственный возможный случай, когда я могу получить STM32 для программы с Arduino IDE, - если я подключаю Maple Mini (клон) через USB -порт. Ранее у меня сложилось впечатление, что STM32Duino может справиться с гораздо большим количеством случаев, таких как синие таблетки и тому подобное, но еще не добился успеха с этим.
При использовании BluePill вы выбираете правильную плату?

Изображение

AG123
Ср. 25 июля 2018 г. 15:58
Если ваш Maple Mini (клон?) имеет предварительно установленный Bootloader I.эн. что вы можете установить эскиз, и они запускаются

Я опубликовал эту ветку «USB -серийный ключ с Maple Mini или Bluepill - для прошивки загрузчика» в разделе фрагментов кода
ViewTopic.PHP?F = 18&t = 2752

Используя эскиз, я превращаю Maple Mini (клон) в USB-сериал и использовал его, чтобы пропустить недавний загрузчик STM32Duino в другой Maple Mini (клон)
Подробности в ветке

Мои мысли об использовании серийных/FTDI были бы очень похожи на это
https: // Средний.com/@paramaggarwal/progr ... 3CEC0DBC86
Это в основном через различные утилиты командной строки, чем в Arduino IDE для этого

загрузчик STM32Duino загрузчик или загрузчик Maple (MINI) предоставляет USB DFU в качестве значения установки эскиза
И Arduino IDE использует это (dfu) (на самом деле он использует утилиту командного строки DFU-UTIL во время установки эскиза на ПК)
Это уходит с необходимым отдельным серийным/FTDI или серийным устройством USB для установки эскиза. я.эн. Вам просто нужны USB -кабель и Maple Mini (клон) с установленным загрузчиком для установки нового эскиза

;)

Рик Кимбалл
Ср. 25 июля 2018 г. 16:49
Я воспользовался этим:
[Рик Кимбалл - Ср. 25 июля 2018 г. 14:31] - .. это уходит с необходимым отдельным серийным/FTDI ..
Есть толпа загрузчика, и есть толпа Stlink. Каждый думает, что у них есть ответ :)

Я определенно попадаю в толпу без загрузчика. Дайте мне серийный ключ, устройство Stlink или лучше всего. Я нахожу загрузчики постоянным источником просьбы о помощи на этом форуме. Также не помогает, что по умолчанию резистор по популярному чертежу неверно.

Все, что я знаю, это то, что вы не можете делать точки останова оборудования на уровне аппаратного уровня, используя загрузчик. Хотя, чтобы быть справедливым, вы не можете сделать аппаратную отладку с серийным ключом FTDI.

Вам будет трудно использовать любую другую терминальную программу, за исключением серийного монитора Arduino с платой, которая использует загрузчик для своего сериала. Каждый раз, когда плата с загрузчиком сбрасывается, она переворачивает USB-соединение. На Linux, если программа терминала имеет открытие /dev /ttyacm0, и вы сброшен, Linux автоматически назначит ему следующее число устройства /dev /ttyacm1. Вы должны выйти из замазки и подключиться к новому TTY. Кроме того, если вы не ждете, когда нативный сериал USB будет перечислять, вы часто пропустите начальный сериал.Print () Заявления. Если вы подождите, это означает, что вы должны добавить свой собственный код Time Out, чтобы устройство действительно работало без подключения к USB.

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

Если вы используете серийный ключ FTDI, пользователь должен будет связываться с PIN -код Boot0 и кнопкой сброса для загрузки. Тем не менее, вы можете легко выполнить загрузку в Arduino, если у вашего USB -ключа есть булавки DTR/RTS, и вы используете их для переключения и загрузки0. Используя этот метод, вы можете начать с обнаженного чипа и использовать последовательный метод для загрузки. Однако потребуется некоторый взлом на сценарии серийной загрузки. Бонус для толпы Bluepill с таким подходом заключается в том, что им не нужно исправлять резистор подтягивания. Хотя покупка доски Robotdyn с правильным резистором - лучший вариант. Вы даже можете получить его с загрузчиком Roger's Bootloader, если хотите..

Если вы решите использовать загрузчик, вам придется загрузить его там каким -то образом. Вы также теряете 8 тыс. Флэш -. Однако после загрузки вы можете использовать его с помощью Arduino IDE и Core без каких -либо изменений.

Если вы решите использовать 2 чипа STM32F103C8 на вашей плате. Можно загрузить программным обеспечением черной магии зонда. Это обеспечит виртуальный терминал в дополнение к аппаратному серверу GDB. Вы сможете как отлаживать, так и использовать сериал в стиле FTDI. Это также уже запекается в Ardunio Ide и Roger's Core.

Еще один вариант с 2 чипами STM32F103C8-это загрузка одного чипа с помощью прошивки CMIS-DAP, а на вашем хосте используйте OpenOCD в качестве прокси GDB. Это не поддерживается Arduino IDE, однако это подход, используемый многими поставщиками, Atmel имеет программист CMSIS-DAP, как и NXP, Texas Instruments. Вы можете найти кучу портов в STM32F103. Проверьте это обсуждение: https: // www.STM32duino.com/viewtopic.pH ... = 10#p13989

Сначала вам нужно понять, как все это работает, и это, кажется, ваша самая большая путаница не дает вам двигаться вперед.

AG123
Ср. 25 июля 2018 г., 17:18
Привет, Рик,

Спасибо, я думаю, у тебя есть момент там. Использование 3 -го устройства E.глин. ST-Link, серийный донг (E.глин. FTDI-Serial), CMSIS-DAP имеет много преимуществ.
В частности, использование правильной ссылки SWD позволило бы отлаживать, а не просто «мигать» прошивку (эскизы)

Я предполагаю, что многие люди, которые начали с Leaflabs Maple (и сегодня STM32Duino) просто начали с этого
Arduino IDE - DFU - Bootloader - STM32F1

В некотором смысле Leaflabs изобрел эту структуру, и он стал де-факто «стандартом»
Новички дураки с Maple Mini и т. Д. Остаются просто, многие люди натыкаются на него (и Maple Mini с различными уловками о нажатиях кнопок, чтобы поместить его в «режим вечной загрузки», не помогайте, так как многие начинающие борются с кнопками Также буквально. Затем для тех, кто начал с синей таблетки, они сталкиваются с проблемой «курицы и яйца», когда в первую очередь не установлен загрузчик
Частично это кривая обучения новичка, и частично заключается в том, что существует собственный набор «структуры» ST.глин. Bootloader UART и т. Д. И что Leaflabs изобрели «DFU Bootloader», а также в некоторой степени путают начинающих, пытаясь выучить веревки, попадающие в STM32
Некоторые из которых могут даже найти нуждающийся в USB-сериале (UART), чтобы установить прошивку довольно иностранной концепции для непосвященных.

Тем не менее Leaflabs изобретенные DFU - Bootloader Concepts имеет свои технические достоинства. С одной стороны, он отдает необходимость в отдельном устройстве для загрузки прошивки / установки эскиза. Это большая победа в 2 способах:
1) Он уходит с отдельного устройства «Установка прошивки» (E.глин. USB-UART Dongle)
2) Технически он делает Maple Mini, синие таблетки и т. Д. * Общее USB -устройство *, в котором можно буквально прошивать прошивку и изменить свою роль
Удобство загрузчика играет роль в этом выполнимо

Помимо зонда Black Magic, я также пытаюсь прошить CMSIS-DAP на BP/MM, казалось, что есть несколько реализаций «на GitHub. Преимущество в этом случае заключается в том, что OpenOCD работает с CMSIS-DAP в качестве отладчика JTAG/SWD. Это в некоторой степени играет такую ​​же роль с ключом St-Link.

С другой стороны, было бы довольно полезно взломать альтернативный USB-сериал (E.глин. Ftdi-uart) настройка для Arduino Ide e.глин. в платформе.TXT, доски.TXT, но, похоже, он может привести к значительным усилиям по переработке как различные адреса, LD-сценаристы, платформа.TXT, доски.TXT и т. д., возможно, потребуется исправить или переработать РЕДАКТИРОВАТЬ: Как предположил Рик один, можно было бы редактировать доски.TXT для альтернативных методов загрузки / устройств ViewTopic.PHP?f = 3&T = 3907#P47549

Рик Кимбалл
Ср. 25 июля 2018 г. 18:37
[AG123 - Ср. 25 июля 2018 г., 17:18] - Тем не менее Leaflabs изобретенные DFU - Bootloader Concepts имеет свои технические достоинства. С одной стороны, он выходит на работу с необходимостью отдельного устройства для загрузки
DFU - это USB Org с 2004 года
http: // www.USB.org/разработчики/Docs/devc ... Fu_1.1.PDF

У ST был реализован аппаратный DFU, по крайней мере, с 2009 года. К сожалению, не в STM32F103.
https: // www.ул.com/content/ccc/resource ... 264379.PDF
STM32F0 серия:
- STM32F04XXX, STM32F07XXX
STM32F1 серия:
- STM32F105XX, STM32F107XX
STM32F2 Series
STM32F3 серия:
- STM32F301XX, STM32F302XX, STM32F303XB, STM32F303XC,
STM32F303XD, STM32F303XE, STM32F373XX
STM32F4 серия:
- STM32F401XX, STM32F405XX, STM32F407XX, STM32F411XX, STM32F412XX,
STM32F415XX, STM32F417XX, STM32F427XX, STM32F429XX, STM32F437XX,
STM32F439XX, STM32F446XX, STM32F469XX, STM32F479XX
STM32F7 серия:
- STM32F722XX, STM32F723XX, STM32F732XX, STM32F733XX, STM32F745XX,
STM32F746XX, STM32F756XX, STM32F765XX, STM32F767XX, STM32F769XX,
STM32F777XX, STM32F779XX
STM32L0 серия:
- STM32L07XXX, STM32L08XXX
STM32L1 серия:
- STM32L1XXXC, STM32L1XXXD, STM32L1XXXE
STM32L4 Series:
- STM32L431XX, STM32L432XX, STM32L433XX, STM32L442XX, STM32L443XX,
STM32L471XX, STM32L475XX, STM32L476XX, STM32L486XX, STM32L496XX,
STM32L4A6

Рик Кимбалл
Ср. 25 июля 2018 г. 18:39
[AG123 - Ср. 25 июля 2018 г., 17:18] - С другой стороны, было бы довольно полезно взломать альтернативный USB-сериал (E.глин. Ftdi-uart) настройка для Arduino Ide e.глин. в платформе.TXT, доски.TXT, но, похоже, он может привести к значительным усилиям по переработке как различные адреса, LD-сценаристы, платформа.TXT, доски.TXT и т. д., возможно, потребуется исправить или переработать
Вы говорите о Maple Mini? Я предоставил ссылку ранее с моим взломом, чтобы использовать Maple Mini с серийным, а также Stlink и BMP.
http: // stm32duino.com/viewtopic.PHP?T = 1741

Если вы говорите о Bluepill (GenericStm32f103c), он уже имеет последовательный/Stlink/bmp/jlink

AG123
Чт 26 июля 2018 г., 6:54
[Рик Кимбалл - Ср. 25 июля 2018 г. 18:37] -
[AG123 - Ср. 25 июля 2018 г., 17:18] - Тем не менее Leaflabs изобретенные DFU - Bootloader Concepts имеет свои технические достоинства. С одной стороны, он выходит на работу с необходимостью отдельного устройства для загрузки
DFU - это USB Org с 2004 года
http: // www.USB.org/разработчики/Docs/devc ... Fu_1.1.PDF

У ST был реализован аппаратный DFU, по крайней мере, с 2009 года. К сожалению, не в STM32F103.
https: // www.ул.com/content/ccc/resource ... 264379.PDF
Спасибо, Рик, я должен был квалифицировать свое заявление, Leaflabs, вероятно, входит в число пионеров, которые разработали загрузки эскиза Arduino, используя DFU на Maple, Maple Mini. Тогда я вспомнил Arduinos с Atmega 328, и отдельный FT232R для загрузки эскизов и т. Д. - более распространенная настройка.

Я использовал внедренную DFU на ebware Adplaware's Adnuction на платах STM32F407, они хорошо работали с небольшими неудобствами в отношении необходимости установить штифты и изменить ее для загрузки прошивки. На самом деле использование штифтов, хотя и неудобно, делает вещи более детерминированными во время выполнения, возможно, давая меньше проблем, связанных с драйверами на стороне хоста/ПК, по сравнению с реализацией на Maple (MINI).

Это неудобства можно покончить, если кто -то использует ключ SWD (E.глин. ST-Link), который позволил бы быстро перепрограммировать и сбрасывать плату каждый раз без необходимости вмешиваться с бутанками.

Flyboy74
Чт 26 июля 2018 г. 9:23
С тех пор, как эта ветка была немного угнана из оригинального вопроса. Я задам связанный вопрос.

При использовании сериала Ardunio IDE.print () может вывести серийный монитор в Ardunio IDE через сериал в USB -преобразователь.

Если использование DFU через USB может печатать в консоли в Ardunio IDE через USB -соединение??

При использовании ST-Link в других IDE вы можете вывести printf () на IDE через штифт SWO/TD0 на ST-Link, можете ли вы вывести Print в Ardunio IDE через ST-Link??

Стивестронг
Чт 26 июля 2018 г. 9:58 утра
[Flyboy74 - Чт 26 июля 2018 г. 9:23 утра] - Если использование DFU через USB может печатать в консоли в Ardunio IDE через USB -соединение??
Конечно, используя ядро ​​Роджера (Libmaple), если вы определите сериал USB, серийный.Печать переходит в серийный монитор Arduino. Serial1 идет на USART1.

[Flyboy74 - Чт 26 июля 2018 г. 9:23 утра] - При использовании ST-Link в других IDE вы можете вывести printf () на IDE через штифт SWO/TD0 на ST-Link, можете ли вы вывести Print в Ardunio IDE через ST-Link??
Какой другой идеал вы имеете в виду? Я не вижу разницы между IDE, когда дело доходит до мониторинга последовательного порта.
Вы говорите о Stlink v2.1? Потому что Stlink v2.0 не поддерживает это.

Flyboy74
Чт 26 июля 2018 г. 10:27
Вы говорите о Stlink v2.1? Потому что Stlink v2.0 не поддерживает это. Я использовал только Stlink V2.1.

Дешевые алюминиевые ST-Links не подключены к SWO PIN. Более крупные белые пластиковые ST-Links, которые представляют собой клон из тех, кто сделан ST, есть SWO PIN. Он использует ITM http: // Infocenter.рука.com/help/index.младший ... CCDFD.HTML для вывода в SWO (вывод последовательного провода).

Насколько я знаю, это самый распространенный способ печати информации отладки в консоли с Keil, IAR и Eclipse Ides, так как большинство людей, использующих эти IDE, мигают через ST-Link.

AG123
Чт 26 июля 2018 12:33
сериал.print () реализован с помощью драйвера компонента USB-серии в ядре. Следовательно, сообщения возвращаются к хост-компьюте.
http: // www.USB.org/разработчики/docs/devClass_docs/
В настоящее время DFU работает только в загрузчике в начале, и реализованная функция в основном для установки эскиза
http: // www.USB.org/разработчики/Docs/devc ... Fu_1.1.PDF
Когда заработает эскиз, на самом деле только USB-сериал является основным каналом связи для хост-ПК, следовательно, в основном доступен USB-сериал.

Я сделал поиск в Google и наткнулся на эту ветку
Printf через SWO
ViewTopic.PHP?t = 1448

Я не слишком уверен, является ли это уже частью ядра (можно просматривать коды), но я предполагаю, что если добавить коды для обработки SWO, вы сможете использовать SWO для printf на хост.
Я думаю, что SWO является частью стандарта JTAG/SWD и таких вещей, как ST-Link, JTAG/SWD-ключи, на основе CMSIS-DAP JTAG/SWD с поддержкой SWO можно использовать с этим.
Но на стороне хозяина вам понадобится приложение, которое может поговорить с JTAG/SWD Dongle, E.глин. Openocd, и это обычно является отдельным, а не частью Arduino IDE.