[Решена] еще одна проблема с USB -загрузчиком

Джарек.П
Чт 19 апреля 2018 г., 14:31
Привет,

Я пытаюсь начать с STM32 (у меня уже есть некоторый опыт работы с AVR/Arduino/ESP8266), но теперь я полностью застрял и должен попросить о помощи. Поверьте мне, прежде чем спросить, я попытался прочитать форум, и кажется, что у меня типичная проблема, но я не могу исправить его самостоятельно.

Так:
1. У меня есть STM32F103C8T6 "Синяя подушка", Arduino 1.8.4, через менеджер доски загружены "STM32F1XX/GD32F1XX Плата V. 1.0.10.
2. Используя адаптер USB/RS232 и UART, я могу загрузить свой STM, я попробовал любой «пример мига.
3. Я скачал generic_boot20_pc13.корзин и сжигал его в моей STM, используя программное обеспечение STM32Flash.
4. Когда я подключаю USB -кабель, я вижу новый COM -порт в диспетчере устройств (Windows 7, 64Bit) как хорошо работаю:
Device_manager_2018-04-19_16-25-15.jpg
Device_manager_2018-04-19_16-25-15.JPG (10.34 киб) просмотрено 959 раз

Кибермир
Чт 19 апреля 2018 г., 21:26
У меня были похожие проблемы на моем Mac.

Вы пробовали другой USB -кабель. Это исправило мою проблему. Не все USB -кабели строят то же самое, что кажется.

Эдогальдо
Чт 19 апреля 2018 г., 21:39
Вы также установили драйвер Maple DFU?

Джарек.П
Пт 20 апреля 2018 г., 5:07
@cyberheater - Да, я увидел также ваш пост, затем я попробовал с другим кабелем, таким же результатом.

@edogaldo - Это интересно: когда я в первый раз подключил STM к ПК, у меня было сообщение «Устройство USB не распознается», тогда я установил драйвер Maple, и теперь лучше, STM виден в диспетчере устройств, и оно выглядит хорошо. Но когда я подключаю его, звук подключения, сгенерированное окнами, не то же самое, что и с любым другим USB-устройством (характерное «Bom-bim»), но это звучит как «звук ошибки» (Bom Bom). Когда IDE сбрасывает STM (во время попытки загрузить код), звук является первым «отключение» (Bim -Bom) и следующая - снова ошибка «Bom Bom». Так что это странно: я вижу этот компонент как хороший работа, в свойствах он также показан как здоровый, а также я могу видеть сообщения »поздравления..."Отправлено STM Bootloader, так почему я слышу звук ошибки?
У меня нет других, не подключенных устройств на дереве моих устройств.

PS: Может быть, этот резистор для подтягивания D+ все еще слишком высок? У меня 1K8 параллельно с первоначально установленным 10K на печатной плате, он дает 1.5 кум. Стоит ли попытаться уменьшить его, e.глин. до 1K?

Эдогальдо
Пт 20 апреля 2018 г., 5:38 утра
Есть 2 драйвера клена для установки: VCP и DFU, вы установили оба?

Rogerclark
Пт 20 апреля 2018 г. 7:11
Установщик должна установить как DFU, так и серийные драйверы.

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

Это известная проблема на некоторых Mac, но Windows и Linux, кажется, нормальны могут быть достаточно быстро перечислять

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

Однако я думаю, что консенсус о том, что штифт Boot1 должен использоваться в качестве метода для блокировки в режиме DFU, так как вряд ли кто -то пытается использовать этот штифт на своей синей таблетке и т. Д

Я постараюсь изменить это через минуту, и есть еще одно изменение, которое я собираюсь сделать в ядре, чтобы ядро ​​мог сказать загрузчику, чтобы держать в DFU и ждать загрузки. (Эта функция уже находится в загрузчике, но никогда не была добавлена ​​в ядро)

Джарек.П
Пт 20 апреля 2018 г., 7:27 утра
Звучит интересно... Я скачал это (впервые найдено Google):

https: // github.com/aiframe/maple-window ... x64_driver

и установил «сериал» только путем обновления драйвера, этого недостаточно, как я вижу?
Теперь я удалил его и установил снова следующей инструкции:

https: // github.com/rogerclarkmelbourne/ ... занижаем

и... Проблема решена, большое спасибо за быстрое, большое пиво для этого парня, пожалуйста! :)

Джарек.П
Пт 20 апреля 2018 г. 9:35 утра
Хотя проблема решена, я должен спросить еще немного, потому что она немного выглядит странно.
Я могу загрузить код в свою подушку, но результаты, о которых сообщают консоли, результаты различаются, в зависимости от количества сбросов, этапов Луны, моего настроения, и я не знаю, что еще. Некоторые примеры:
maple_loader v0.1 Resetting to bootloader via DTR pulse Searching for DFU device [1EAF:0003]... Found it! Opening USB Device 0x1eaf:0x0003... Found Runtime: [0x1eaf:0x0003] devnum=1, cfg=0, intf=0, alt=2, name="STM32duino bootloader v1.0 Upload to Flash 0x8002000" Setting Configuration 1... Claiming USB DFU Interface... Setting Alternate Setting ... Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing Transfer Size = 0x0400 bytes_per_hash=248 Starting download: [##################################################] finished! error resetting after download: usb_reset: could not reset device, win error: The device is not connected. state(8) = dfuMANIFEST-WAIT-RESET, status(0) = No error condition is present Done! Resetting USB to switch back to runtime mode processing.app.SerialException: Błąd otwarcia portu szeregowego 'COM51'. at processing.app.Serial.(Serial.java:147) at processing.app.Serial.(Serial.java:82) at processing.app.SerialMonitor$4.(SerialMonitor.java:101) at processing.app.SerialMonitor.open(SerialMonitor.java:101) at processing.app.AbstractMonitor.resume(AbstractMonitor.java:104) at processing.app.Editor.resumeOrCloseSerialMonitor(Editor.java:2218) at processing.app.Editor.access$2200(Editor.java:79) at processing.app.Editor$DefaultExportHandler.run(Editor.java:2196) at java.lang.Thread.run(Thread.java:748) Caused by: jssc.SerialPortException: Port name - COM51; Method name - openPort(); Exception type - Port not found. at jssc.SerialPort.openPort(SerialPort.java:167) at processing.app.Serial.(Serial.java:136) ... 8 more Błąd otwarcia portu szeregowego 'COM51'.

Эдогальдо
Пт 20 апреля 2018 г. 9:40
Я думаю, что по крайней мере одна из ошибок зависит от того, загружаете ли вы с серийным монитором, открытым не.

Джарек.П
Пт 20 апреля 2018 г. 9:58 утра
Правильно, первый выпуск - когда открывается монитор порта. Но в обоих случаях в конце загрузки ошибка во время открытия порта. Просто игнорируйте, или это связано с чем -то не так и должно быть исправлено?

И что с этим сериалом.печать? Возможно ли, что ведьма это соединение через USB? Может быть, я должен определить первым (как?) какой порт будет использоваться для этого?

Rogerclark
Пт 20 апреля 2018 г. 10:59
Не уверен, какую ОС вы используете. Но Windows не нравится последовательное USB -устройство, когда в терминале открывается подключение, открытое в терминале.

Если у вас есть серийный монитор, открытый в IDE, когда вы нажимаете загрузку, я думаю, что он фактически закрывает последовательное соединение перед процессом загрузки, или, возможно, как только вы нажмете кнопку загрузки, и впоследствии откроет его

Однако иногда это кажется запутанным, и вы получаете эти ошибки

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

Из того, что я понимаю, Windows 10 обрабатывает это лучше, но W10 имеет так много других негативных моментов, я не буду обновлять, чтобы использовать его.

Ошибка сброса DFU - это что -то другое. Я не уверен, почему иногда у него есть эта ошибка.
Просто игнорируйте это, это не имеет значения.

Джарек.П
Пт 20 апреля 2018 г., 11:35
У меня есть W7/64, и я не планирую обновить до W10. Но хорошо, я могу закрыть монитор перед загрузкой, это не проблема, когда я знаю об этом.

Более интересно для меня, если есть способ использовать серийный интерфейс Maple в качестве последовательного порта для использования с командами последовательных.Печать и т. Д., E.глин. Для отладки кода?

Стивестронг
Пт 20 апреля 2018 г. 11:44
Конечно, это работает так же, как в Arduino.
По умолчанию сериал отображается на USB -сериал.
Вы что -то пробовали и не работали?
Обратите внимание, что выигрышные компьютеры нуждаются в 5 секунд, чтобы повторно размер USB COM-порт после загрузки или сброса.

Джарек.П
Пт 20 апреля 2018 г., 11:53
Хорошо, я попробовал, но я только что добавил сериал.начинать и серийно.Команды Println в разделе «Настройка кода». Теперь я добавил сериал.Println в цикле со второй задержкой, и здесь он работает, больше/меньше после 3S, спасибо.

Стивестронг
Пт 20 апреля 2018 12:04
Если вы хотите получить все серийные распечатки из настройки, вам нужно код: Serial.begin(115200); // optional for USB serial while ( !Serial ); // wait for host serial monitor Serial.println("This should be visible in serial monitor");

Джарек.П
Пт 20 апреля 2018 12:18
До момента я подумал о нескольких секундах «мудрых мигающих» светодиодов в качестве фазы запуска, что может дать необходимую задержку : D

Rogerclark
Пт 20 апреля 2018 г., 21:30
Кстати.

Для серийного USB вы, дон’T нужно назвать серийным.начать, потому что ядро ​​должно назвать это этим’S Self в противном случае серийный USB не работает, и IDE не может сказать ядро ​​перезагрузить перед загрузкой

Также..

Я нахожу добавление кода, чтобы ждать сериала в порядке, но означает, что вы отлаживаете, но код не будет работать без подключения к ПК, а терминал открыт.

Иногда я добавляю задержку на 1 секунду в начале Setup (), и USB -сериал на моем ПК всегда работает к тому времени

Мадиас
Пт 20 апреля 2018 г., 22:31
Роджер: Я использую оба метода во время отладки.
Что -то вроде этого: #define DEBUGTIME 2000 long waittime=millis(); while ( !Serial && millis()-waittime

Rogerclark
Пт 20 апреля 2018 г., 22:33
Привет, Матиас

+1

Это лучшее решение.