Александрос
Пт 26 января 2018 12:09
Привет, ребята, я и мой приятель строили доску с MCU STM32F1 64K, я делаю детские шаги, чтобы узнать больше о USB и загрузку прошивки из USB и тому подобное.
Наша общая плата - прототип, мы добавили напрямую
USB-PA11
USB+ PA12
НЕТ БОЛЬШЕ в порты данных USB, конечно, когда я подключаю его к ПК, я получаю сообщение «Не распознавать устройство» из Windows.
У меня нет кнопки Boot 0 или перемычки в плату, и даже не подтягивающий резистор около 1.5K до PA12
PC14 тоже не используется в моей плате PC12
У меня есть светодиод в PA2
Я читаю о загрузчиках от Роджера https: // github.com/rogerclarkmelbourne/ ... загрузчик
http: // wiki.STM32duino.com/index.PHP?тип ... загрузчик
И у меня есть несколько вопросов. Прежде всего, мне нужно загрузить загрузчик, второй вопрос - Wich Bootloader.
Моя основная цель - когда пользователь подключается к USB, я хочу, чтобы MCU распознавал, который подключен к ПК в первую очередь, и последовательные данные из него ,
и из программы Windows, чтобы установить доску в режим DFU и загрузить Firwmare.
Поэтому я ищу руководство или что -то в этом роде, ребята, для моего конкретного оборудования, любая помощь или комментарий будут намного апрецированными
Наша общая плата - прототип, мы добавили напрямую
USB-PA11
USB+ PA12
НЕТ БОЛЬШЕ в порты данных USB, конечно, когда я подключаю его к ПК, я получаю сообщение «Не распознавать устройство» из Windows.
У меня нет кнопки Boot 0 или перемычки в плату, и даже не подтягивающий резистор около 1.5K до PA12
PC14 тоже не используется в моей плате PC12
У меня есть светодиод в PA2
Я читаю о загрузчиках от Роджера https: // github.com/rogerclarkmelbourne/ ... загрузчик
http: // wiki.STM32duino.com/index.PHP?тип ... загрузчик
И у меня есть несколько вопросов. Прежде всего, мне нужно загрузить загрузчик, второй вопрос - Wich Bootloader.
Моя основная цель - когда пользователь подключается к USB, я хочу, чтобы MCU распознавал, который подключен к ПК в первую очередь, и последовательные данные из него ,
и из программы Windows, чтобы установить доску в режим DFU и загрузить Firwmare.
Поэтому я ищу руководство или что -то в этом роде, ребята, для моего конкретного оборудования, любая помощь или комментарий будут намного апрецированными
Mrburnette
Пт 26 января 2018 г. 13:29
Наша общая плата - прототип, мы добавили напрямую
USB-PA11
USB+ PA12
Нет в портах данных USB , Немного сложнее заставить ПК перечислять.
Я бы порекомендовал прочитать это о синей таблетке:
http: // wiki.STM32duino.com/index.PHP?title = blue_pill
Загрузчики хранятся здесь: https: // github.com/rogerclarkmelbourne/ ... загрузчик
Конкретно: Аппаратная установка
Bluepillusbresistor.JPG
Стандарт USB требует 1.5 кОм резистор подтягивания на D+, но эта плата, как известно, имеет неправильное значение (R10 на плате). Он поставляется с резистором 10 кОм или 4.7 кОм резистор, но его следует заменить на 1.5 кОм резистор или поместите соответствующее значение резистора (e.G 1.8 кОм) между PA12 и 3.3В. Также верно, что некоторые компьютеры терпимы к неправильному значению, поэтому, прежде чем изменить сопротивление, вы можете попробовать, если оно работает в вашем случае. Когда я играл с V-USB, я всегда использовал резисторы с небольшими значениями ... Как схема ниже:
В то время как некоторые платы STM32 не используют серии резисторов, они являются лишь приличной защитной сетью, чтобы избежать выпуска волшебного дыма, если что -то пойдет не так.
Луча
USB-PA11
USB+ PA12
Нет в портах данных USB , Немного сложнее заставить ПК перечислять.
Я бы порекомендовал прочитать это о синей таблетке:
http: // wiki.STM32duino.com/index.PHP?title = blue_pill
Загрузчики хранятся здесь: https: // github.com/rogerclarkmelbourne/ ... загрузчик
Конкретно: Аппаратная установка
Bluepillusbresistor.JPG
Стандарт USB требует 1.5 кОм резистор подтягивания на D+, но эта плата, как известно, имеет неправильное значение (R10 на плате). Он поставляется с резистором 10 кОм или 4.7 кОм резистор, но его следует заменить на 1.5 кОм резистор или поместите соответствующее значение резистора (e.G 1.8 кОм) между PA12 и 3.3В. Также верно, что некоторые компьютеры терпимы к неправильному значению, поэтому, прежде чем изменить сопротивление, вы можете попробовать, если оно работает в вашем случае. Когда я играл с V-USB, я всегда использовал резисторы с небольшими значениями ... Как схема ниже:
В то время как некоторые платы STM32 не используют серии резисторов, они являются лишь приличной защитной сетью, чтобы избежать выпуска волшебного дыма, если что -то пойдет не так.
Луча
Александрос
Пт 26 января 2018 г. 13:48
Большое спасибо за ваш ответ
Предположим, я добавил схему, и все хорошо и хорошо работает
Предлагаете ли вы добавить багажник 0?
Предположим, я добавил схему, и все хорошо и хорошо работает
Предлагаете ли вы добавить багажник 0?
Mrburnette
Пт 26 января 2018 13:59
[Александрос - Пт 26 января 2018 г. 13:48] - Большое спасибо за ваш ответАх, это вопрос хитрости, не так ли?
Предположим, я добавил схему, и все хорошо и хорошо работает
Предлагаете ли вы добавить багажник 0?
Серьезно, прочитайте это: https: // www.Eevblog.com/forum/microcont ... ботинок/
Все будет раскрыто ...
Подсказка для всех тех, кто не хочет вырубить детали длинного поста: boot0 и boot1 отображаются при сбросе, <...>"Значения на штифтах загружены на 4 -й подъемной край sysclk после сброса. Пользователь должен установить контакты Boot1 и Boot0 после сброса, чтобы выбрать требуемый режим загрузки."
Александрос
Сб 27 января 2018 г. 15:26
Мой плохой ,
Кажется, я сделал ошибку, есть 1.5K в USB, и все в порядке.
Дальнейшее копание ,
Я думаю, что заставил это работать....
Теперь я загружаю свой эскиз больше, этот мигающий набросок Загружено суссонее
Когда я попытался повторно загрузить свой проект, Arduino IDE застрял здесь
Maple_Loader v0.1
Сброс в загрузчик через DTR Pulse
Поиск устройства DFU [1EAF: 0003]...
Только если я отключаю и повторно выплескивается USB, эскиз будет загружен .. это как не могу перезагрузиться...
Только на более легких набросках процедура загрузки гладкая, как счета мигания ,
Мне нужно что -то добавить в свой проект ?
Кажется, я сделал ошибку, есть 1.5K в USB, и все в порядке.
Дальнейшее копание ,
Я думаю, что заставил это работать....
- Я загрузил generic_boot20_pb12.корзина со св ,
- Установите драйверы из Arduino \ Hardware \ arduino_stm32-master \ Drivers \ Win
- С прикрепленным USB и теперь узнаваемым с ПК, который я загружаю из Arduinio Ide The Blink Sketch..
Теперь я загружаю свой эскиз больше, этот мигающий набросок Загружено суссонее
Когда я попытался повторно загрузить свой проект, Arduino IDE застрял здесь
Maple_Loader v0.1
Сброс в загрузчик через DTR Pulse
Поиск устройства DFU [1EAF: 0003]...
Только если я отключаю и повторно выплескивается USB, эскиз будет загружен .. это как не могу перезагрузиться...
Только на более легких набросках процедура загрузки гладкая, как счета мигания ,
Мне нужно что -то добавить в свой проект ?
Mrburnette
Сб 27 января 2018 г., 17:37
Я часто слышу подобные жалобы, есть много предложений, но я не читал о 100% исправлении. Немного более дорогого клона Maple Mini, кажется, имеет сброс сброса остальных, но он не приближается к 100%. На Linux у меня, кажется, нет проблем с блюзом или MM. Может быть, что переход от DFU на USB -перечисление в Windows является проблемой времени.
Вот Google, если вы хотите изучить больше
Честно говоря, я думаю, что для большинства людей развитие на Maple Mini и Final Burn to Blue - это простое исправление... или на заказ в вашем случае. Я помню несколько сбросов, которые были предложены, так что, возможно, вы можете реализовать в своем собственном дизайне.
Луча
Вот Google, если вы хотите изучить больше
Честно говоря, я думаю, что для большинства людей развитие на Maple Mini и Final Burn to Blue - это простое исправление... или на заказ в вашем случае. Я помню несколько сбросов, которые были предложены, так что, возможно, вы можете реализовать в своем собственном дизайне.
Луча
Стивестронг
Сб 27 января 2018 г., 17:55
Чтобы сбросить плату STM32 и перейти в режим DFU, ПК Отправляйте магическую последовательность над USB Serial.
Таким образом, загрузка работает только в том случае, если вы используете Serial (USB Serial) в своем фактическом запущенном коде.
Если у вас нет сериала USB в вашем коде, сброс должен быть сделан вручную (или с помощью un-plug->Повторно проникать в USB-кабель или цикл питания).
Таким образом, загрузка работает только в том случае, если вы используете Serial (USB Serial) в своем фактическом запущенном коде.
Если у вас нет сериала USB в вашем коде, сброс должен быть сделан вручную (или с помощью un-plug->Повторно проникать в USB-кабель или цикл питания).
Александрос
Сб 27 января 2018 г., 19:37
[Стивестронг - Сб 27 января 2018 г., 17:55] - Чтобы сбросить плату STM32 и перейти в режим DFU, ПК Отправляйте магическую последовательность над USB Serial.Что ты имеешь в виду?
Таким образом, загрузка работает только в том случае, если вы используете Serial (USB Serial) в своем фактическом запущенном коде.
Если у вас нет сериала USB в вашем коде, сброс должен быть сделан вручную (или с помощью un-plug->Повторно проникать в USB-кабель или цикл питания).
как сериал.начинать(.... ? Я знаю, что сериал для USB.. Если да, я уже сделал сериал.Начните (115200), но Diidnt работает
Извините за мое невежество
Rogerclark
Сб 27 января 2018 г., 21:32
Если вы выберете какой -либо из вариантов сборки, которые загружают через USB в загрузчик, то USB Serial.begin () автоматически вызывается ядром еще до настройки ()
Ты не ДОН’t на самом деле нужно назвать серийным.Начни себя и свой призыв к серийному.Begin (xxx) игнорируется ядром, потому что USB Serial уже начат.
КСТАТИ. Установка скорости бодского уровня в сериале.Begin - это избыточно для USB -сериала, потому что передача на самом деле не выполняется так же, как аппаратный сериал . Фактическая скорость передачи данных намного выше. (Существуют различные сообщения на форуме, где люди исследовали серийную скорость передачи данных USB, так как он варьируется в зависимости от длины строки данных, которую вы отправляете в сериал.писать() )
Возвращение к последовательности загрузки...
Загрузчик обрабатывает загрузку, она’S отдельная программа, которая работает только после перезагрузки процессора.
После того, как загрузчик справился с загрузкой, он прекращает и освобождает все свои ресурсы (дает 3K оперативной памяти, которую он использовал)
Итак, чтобы начать загрузку, ядро должно перезагрузить процессор.
IDE нуждается в некотором смысле, чтобы сказать ядро, что он хочет загрузить новый эскиз (двоичный), и то, как это делается, представляет собой специальную последовательность изменяющихся линий управления, а магическое число (последовательность символов) отправляется IDE через USB -сериал до глубины души.
Ядро постоянно проверяет любой входящий USB -сериал для этой последовательности, и если оно получено, ядро перезагружает процессор
Ты не ДОН’t на самом деле нужно назвать серийным.Начни себя и свой призыв к серийному.Begin (xxx) игнорируется ядром, потому что USB Serial уже начат.
КСТАТИ. Установка скорости бодского уровня в сериале.Begin - это избыточно для USB -сериала, потому что передача на самом деле не выполняется так же, как аппаратный сериал . Фактическая скорость передачи данных намного выше. (Существуют различные сообщения на форуме, где люди исследовали серийную скорость передачи данных USB, так как он варьируется в зависимости от длины строки данных, которую вы отправляете в сериал.писать() )
Возвращение к последовательности загрузки...
Загрузчик обрабатывает загрузку, она’S отдельная программа, которая работает только после перезагрузки процессора.
После того, как загрузчик справился с загрузкой, он прекращает и освобождает все свои ресурсы (дает 3K оперативной памяти, которую он использовал)
Итак, чтобы начать загрузку, ядро должно перезагрузить процессор.
IDE нуждается в некотором смысле, чтобы сказать ядро, что он хочет загрузить новый эскиз (двоичный), и то, как это делается, представляет собой специальную последовательность изменяющихся линий управления, а магическое число (последовательность символов) отправляется IDE через USB -сериал до глубины души.
Ядро постоянно проверяет любой входящий USB -сериал для этой последовательности, и если оно получено, ядро перезагружает процессор
Александрос
Солнце 28 января 2018 11:50 утра
Очень много ответов, ребята, особенно Roger, спасибо, ребята.
Да, Роджер, Эйритинг понял ,
Теперь добраться до этой части IDE нуждается в некотором смысле, чтобы сказать ядро, что он хочет загрузить новый эскиз (двоичный), и то, как это делается, представляет собой специальную последовательность изменяющихся линий управления, а магическое число (последовательность символов) отправляется IDE через USB -сериал до глубины души.
Ядро постоянно проверяет любой входящий USB -сериал для этой последовательности, и если оно получено, ядро перезагружает процессор С простым эскизом, таким как проект Blink, ядро получает последовательность и перезагружает процессор, и программа загружает просто идеальную.
Теперь по какой-то причине мой проект не получит этого Sequense (должен быть не повторно), так как SOOS, как IDE отправляет команду стека проектов, и не перезагружаюсь, я должен продолжить расследование, может быть, библиотека или что-то в этом роде вызывает проблему.
Я должен что -то упомянуть, я не знаю, как я буду попробовать, чтобы IDE правильно отправила Seequensy, Skecth должен бежать внутри Vide Lop () сверху вниз, а не внутри ребенка петля или while () ? если вы понимаете, о чем я
РЕДАКТИРОВАТЬ: Нет, это не так, это также перезагрузите и загрузите просто отлично
Да, Роджер, Эйритинг понял ,
Теперь добраться до этой части IDE нуждается в некотором смысле, чтобы сказать ядро, что он хочет загрузить новый эскиз (двоичный), и то, как это делается, представляет собой специальную последовательность изменяющихся линий управления, а магическое число (последовательность символов) отправляется IDE через USB -сериал до глубины души.
Ядро постоянно проверяет любой входящий USB -сериал для этой последовательности, и если оно получено, ядро перезагружает процессор С простым эскизом, таким как проект Blink, ядро получает последовательность и перезагружает процессор, и программа загружает просто идеальную.
Теперь по какой-то причине мой проект не получит этого Sequense (должен быть не повторно), так как SOOS, как IDE отправляет команду стека проектов, и не перезагружаюсь, я должен продолжить расследование, может быть, библиотека или что-то в этом роде вызывает проблему.
Я должен что -то упомянуть, я не знаю, как я буду попробовать, чтобы IDE правильно отправила Seequensy, Skecth должен бежать внутри Vide Lop () сверху вниз, а не внутри ребенка петля или while () ? если вы понимаете, о чем я
РЕДАКТИРОВАТЬ: Нет, это не так, это также перезагрузите и загрузите просто отлично
void loop() {
digitalWrite(PB9, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(PB9, LOW); // turn the LED off by making the voltage LOW
delay(1000);
do { }while (1==1);
}
Александрос
Вторник 30 января 2018 г. 23:49
Есть ли другая программа, кроме Arduino IDE, которая может загрузить файл bin с помощью метода загрузки "STM32Duino Bootloader"?
Rogerclark
Ср 31 января 2018 г., 3:13
Он просто использует dfu-util
Посмотрите в папке Tools (для вашей операционной системы)
Также посмотрите на платформу.TXT и сценарии загрузки клена, чтобы увидеть, какие параметры необходимы
Посмотрите в папке Tools (для вашей операционной системы)
Также посмотрите на платформу.TXT и сценарии загрузки клена, чтобы увидеть, какие параметры необходимы
Mrburnette
Ср 31 января 2018 г. 13:12
[Александрос - Вторник 30 января 2018 г. 23:49] - Есть ли другая программа, кроме Arduino IDE, которая может загрузить файл bin с помощью метода загрузки "STM32Duino Bootloader"?Вообще говоря, многочисленные вопросы, проходящие через запрос.. Участники используют ценное время, чтобы ответить на сообщения и предоставить точные и целевые ответы. Когда отвечают на вопрос, отметьте поток [решен], и если один вопрос ведет к другому, попытайтесь разрешить второй самостоятельно, а не просто бросить другой вопрос. Вопросы в цепях заставляют найти ценные ответы в длинном посте очень сложным.
Поскольку на этот пост был ответ, я отмечаю его [решен].
Луча