USB как серийный с загрузчиком 2.0

Концзакп
Вторник 16 августа 2016 г. 11:11
Я прочитал много тем о проблемах с USB/сериалом, но у меня все еще трудно получить трудности, чтобы его запустить. Может быть, я пропустил какую -то важную информацию или я делаю что -то не так, поэтому, пожалуйста. Прежде всего я использую Ubuntu 14.04 с GCC 4.8.4 и Maple Mini как доска

GCC -V Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~14.04.3' --with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)

Пито
Вторник 16 августа 2016 г. 11:52
Загрузка вашего загрузчика заканчивается на 1B8C, а я видел других на 1B7C..
1b7c - это размер Maple_mini_boot20.корзин здесь..

Кстати - почему этот переключатель во время мигания загрузчика в: -g 0x0 ?

Сумасшедшая идея: при настройке начала выполнения на главной флэш -начале (вышеуказанный переключатель g 0x0), после прошивки загрузчика в основной вспышке также стирается - и здесь, в пустой вспышке, выполнение начинается затем..
Сначала запустите после прошивки загрузчика - он прыгает на опустошенную главную вспышку, проходит через него (NOPS) и оборачивается, пока не найдет загрузчик где -то и начинает загрузку нормально. После первой загрузки эскиза - он переходит к недавно загруженному запуску эскиза (загружено в основную вспышку) и не найдет загрузчику..
Когда вы получите загрузчик снова вспыхнут, основная вспышка также будет стерта, и, работая над всей пустой вспышкой, она каким -то образом обнаруживает загрузчик.. Это напоминает мне о подобных проблемах, которые я справляюсь со многими десятилетиями назад :)
Странная идея, действительно.. : Twisted:

Концзакп
Вторник 16 августа 2016 г. 18:30
Я сделал еще несколько тестов. Я переехал в Windows :( и загрузил оригинальный загрузчик из Leaflabs. Это начало работать отлично, поэтому я сделал глобальную стирание и загрузку загрузчика 2.0, и это перестало работать, к сожалению. На оригинальном загрузчике DFU и Serial работали отлично, поэтому я смог загрузить новые эскизы, а также увидеть данные о сериале. На этот раз я использовал демонстратор Flash Loader от ST, чтобы устранить проблему STM32Flash. Возможно ли, что есть проблема с загрузчиком 2.0? Может ли кто -нибудь скачать его с https: // github.com/rogerclarkmelbourne/ ... Boot20.бин и попытаться загрузить на Maple Mini?

Rogerclark
Вторник 16 августа 2016 г. 11:58
Некоторые люди сообщают о проблемах с загрузчиком 2.0, но не у всех есть проблемы

Попробуйте использовать меню Commits в GitHub, чтобы загрузить старую версию бинарного E.глин. Возможно, 6 месяцев назад и посмотрите, лучше ли это

Пса. Было бы неплохо узнать, в чем проблема, потому что я не смог воспроизвести проблему, поэтому я не могу исследовать и исправить ее.

Концзакп
Чт 18 августа 2016 г., 19:28
Я загрузил пожилой загрузчик (17 июля 2015 г.), и он работает. Иногда нужен дополнительный сброс для загрузки, но не каждый раз. Я использовал эту версию https: // github.com/rogerclarkmelbourne/ ... Boot20.бин Я надеюсь, что это поможет каким -то образом, потому что все еще оригинальный Maple Mini Bootloader, кажется, работает более надежным.

Концзакп
Пт 19 августа 2016 г., 21:53
Кстати, есть ли шанс изменить то, как Maple Mini вводит в систему? Я имею в виду имя, которое сейчас - Maple Mini, и я хотел бы изменить на new_name.

Rogerclark
Пт 19 августа 2016 г., 22:07
Есть еще одна постоянная ветка об этом.

Проблема, по -видимому, заключается в том, что файл Mini Maple Bin на сервере поврежден, так как файл make не очищал объектные файлы с другого типа платы.

Я снова перекомпилирую все двоичные файлы сегодня

Rogerclark
Сб 20 августа 2016 г. 2:52
Я перекомпилировал Maple Mini Binary, и, надеюсь, он исправил эту проблему

Концзакп
Солнце 21 августа 2016 г., 8:51 вечера
Сейчас работает отлично! Большое спасибо!. Но все же вопрос сохраняется:

Есть ли шанс изменить то, как Maple Mini вводит в систему? Я имею в виду название, которое сейчас - Maple Mini, продавец Leaflabs, и я хотел бы перейти на какое -то новое имя и нового поставщика. Вы можете сказать мне, как это сделать?

Rogerclark
Солнце 21 августа 2016 г. 8:59 вечера
Имя, сообщаемое Windows, установлено установщиком драйвера.

В ядре и загрузчике также есть строки описания, которые вы можете изменить, но в Windows вы видите эти имена только в том случае, если вы перейдете прямо в диалоговое окно «Свойства устройства», хотя различные элементы данных в этом диалоге

Вы также можете изменить идентификаторы VID и PID в ядре и загрузчике, но если YIU сделают это, вам обязательно нужно изменить установщик, чтобы соответствовать этим новым значениям

Концзакп
Пт 26 августа 2016 г., 21:02
К сожалению, я сталкиваюсь с некоторыми новыми проблемами. При использовании USB на Maple Mini в качестве последовательного порта с кодом ниже, тогда сериал останавливается на работу. Он исчезает от диспетчера устройств, и я не могу ничего сделать. Я должен перезагрузить устройство и загрузить что -то еще в режиме загрузчика перед загрузкой сериала.
#include #include #include #include "Adafruit_ILI9341_8bit_STM.h" Adafruit_ILI9341_8bit_STM tft = Adafruit_ILI9341_8bit_STM(); void setup() { Serial.begin(115200); SPI.begin(); SPI.setDataMode(SPI_MODE0); // CPHA = 0 SPI.setBitOrder(MSBFIRST); tft.begin(); tft.setRotation(2); tft.fillScreen(ILI9341_BLACK); tft.setCursor(30 , 30); tft.setTextColor(ILI9341_WHITE); tft.setTextSize(3); tft.println("test"); tft.setTextSize(1); tft.setCursor(55 , 20); tft.println("test"); Serial.println("test"); } void loop() { // put your main code here, to run repeatedly: }

Rogerclark
Пт 26 августа 2016 г., 21:07
Сериал не находится в загрузчике, он составлен в эскиз

Если серийный USB прекращает работу, это потому, что ваш эскиз разбился или каким -то образом испортил USB -подсистему.

Я ничего не вижу в вашем коде, который бы сказал вам, что он все еще работает вообще.

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

Концзакп
Пт 26 августа 2016 г., 21:18
Когда мне это нравится
#include #include #include #include "Adafruit_ILI9341_8bit_STM.h" Adafruit_ILI9341_8bit_STM tft = Adafruit_ILI9341_8bit_STM(); void setup() { pinMode(PC13, OUTPUT); Serial.begin(115200); SPI.begin(); SPI.setDataMode(SPI_MODE0); SPI.setBitOrder(MSBFIRST); tft.begin(); tft.setRotation(2); tft.fillScreen(ILI9341_BLACK); tft.setCursor(30 , 30); tft.setTextColor(ILI9341_WHITE); tft.setTextSize(3); tft.println("test"); tft.setTextSize(1); tft.setCursor(55 , 20); tft.println("test"); } void loop() { digitalWrite(PC13, HIGH); delay(1000); digitalWrite(PC13, LOW); delay(1000); }

Концзакп
Вторник 30 августа 2016 г., 7:24 утра
Любая идея ?

Концзакп
Ср 31 августа 2016 г. 18:56
Есть еще одна проблема. На этот раз еще более важно для меня. Я надеюсь, что кто -то здесь также сделает программирование в QT. У меня есть готовая программа, работающая в рамках Linux, написанного в C ++ под QT, но в Windows у меня есть проблема с последовательным - снова:/ Я использую QSerialPort из примера терминала, и под Linux я могу отправлять и получать данные (от/ до Maple Mini) Но под Windows я могу отправлять только данные. И теперь самое забавное: если я открою последовательное соединение под Arduino IDE и закрою его, не делая ничего другого, а теперь я смогу читать/записать данные по QSerialPort в своей программе, пока не отключу и не подключу кленовый Mini к USB -порт. Я также сделал еще несколько тестов, и хотя я использую Arduino Uno, а не Maple Mini, я могу читать/писать через QSerialPort без использования Arduino IDE - все работает так, как должно. Я предполагаю, что есть какая -то проблема с драйвером CDC ? Способ открыть порт и т. Д. У кого -нибудь есть идея, как заставить это работать. Мне нужна моя программа для запуска многоплатформенных и не только Linux:/

Концзакп
Ср 31 августа 2016 г., 8:29 вечера
Я решил это! Если у кого -то будет такая же проблема, просто положи
setDataTerminalReady(true)

Стивестронг
Чт, 01 сентября 2016 г. 8:37 утра
@konczakp
Я не думаю, что есть серийная проблема.
Согласно вашему эскизу, основной цикл только переключает светодиод, но ничто не будет отправлено в сериал.
Чего вы ожидаете?

РЕДАКТИРОВАТЬ
Кроме того, вы пытаетесь использовать 8 -битную параллельную либера? Это не сработает.

Концзакп
Чт, 01 сентября 2016 г., 9:20 утра
@stevestrong
Как вы так думаете ? После вызова TFT, упомянутой выше последовательных сбоев, но все остальное работает нормально (именно поэтому я поместил пример Blink в цикл), поэтому, откуда ваш вывод из? Теперь, когда я подключаю Maple Mini к USB, у меня есть сериал (через CDC), и после вызова TFT он исчезает. Та же проблема, что и здесь: http: // www.STM32duino.com/viewtopic.PHP?P = 17432#P17410 Поэтому я ожидаю, что когда я начну сериал в настройке, он будет доступен в любое время в эскизе. Петля со светодиодом была только тестом, чтобы проверить, работает ли Maple. И нет, я не пытаюсь использовать TFT 8 -битный параллельный либера. Только SD, который я использую над SPI, но это не по теме.

Пито
Чт, 01 сентября 2016 г., 10:02
Попробуйте отключить модуль TFT и снова запустить эскиз. Что происходит?

Концзакп
Чт, 01 сентября 2016 г., 15:06
Нет изменений. Я попробовал это раньше, потому что думал, что есть некоторые аппаратные проблемы, но нет. Это вообще ничего не меняет.Я также использовал внешний шрифт, специально созданный для размера 1, но также не изменяется.

Стивестронг
Пт, сентябрь 02, 2016 8:00 утра
@konczakp
Я вижу на эскизе инициализацию SPI и подумал, что это для дисплея, но имеет смысл, что это подготовка к доступу SD.
Итак, я бы предложил вам, как в другом потоке, удалить последние функции TFT один за другим, с последнего до Settextize (1), и проверить, какая функция вызывает неприятности. Потому что SetTextSize (1) не может быть основной причиной.

Стивестронг
Сб 03 сентября 2016 г. 10:15 утра
@konczakp
Я попробовал ваш код, и он работает на моем доске, с небольшими изменениями, подробным описанием в другом нить.