Установленный загрузчик, но USB-устройства не отображается

Оли
Ср 27 апреля 2016 г. 12:51
Привет,

Я купил Olimexino, и теперь я пытаюсь использовать его с вашим загрузчиком, но USB -устройства не отображается. Это моя установка:

Mac OSX 10.9 Маверикс
Arduino Ide 1.6.5
Olimexino с STM32F103RBT6 на борту
FTDI-Device

Сначала я попытался загрузить набросок, используя мой FTDI, но получил только некоторые сообщения об ошибках, такие как: dyld: Library not loaded: /usr/local/lib/libusb-1.0.0.dylib

Rogerclark
Ср 27 апреля 2016 г. 1:46
Такая проблема появляется не реже одного раза в неделю на сайте

Во-первых. Serial USB предоставляется эскизом, а не загрузчиком.

Вам нужно загрузить эскиз, содержащий сериал.Начните использовать правильную настройку загрузки из меню (все платы, в которых есть опция меню загрузки загрузчика, включить серийный USB в эскизе)

Вам также необходимо проверить, что ваша плата Olimex совместима с загруженным загрузчиком, я.E Тот, который вы выбрали, имеет светодиод на PA1, и он попытается сбросить плату, изменив USB -линии на GPIO и обратно в USB, чтобы принудительно сбросить USB.
Этот метод был разработан для плат, на которых нет никакой сброса USB -сброса.

Ваша плата Olimex может иметь сброс USB -сброса (обычно 1 или 2 транзисторы), которую необходимо запустить с помощью конкретного штифта GPIO.

Вам нужно будет получить схему для доски и посмотреть, как обрабатывается сброс USB.

Если нет выделенной схемы сброса USB, плате нужно около 1.5K подтягивание на одной из линий USB (я не могу вспомнить, какой из них, но вы можете посмотреть его в коде загрузчика)

Оли
Ср 27 апреля 2016 г. 2:47
Большое спасибо, Rogerclark за ваш действительно быстрый ответ!

Я посмотрел в схему доски https: // www.Олимекс.com/products/duino/s ... последний.PDF
И, похоже, эта схема сброса USB прикреплена к PC12.
Можете ли вы сказать мне, какой загрузчик я должен использовать или если нет, дайте мне намек на то, что я должен изменить в коде?

ОБНОВЛЯТЬ:
Если я понимаю инструкции в https: // github.com/rogerclarkmelbourne/ ... загрузчик Правильно, конфигурация должна выглядеть примерно так:
#if defined TARGET_OLIMEXINO #define HAS_MAPLE_HARDWARE 1 #define LED_BANK GPIOA #define LED_PIN 1 #define LED_ON_STATE 1 /* USB Disc Pin Setup. USB DISC is PC12 */ #define USB_DISC_BANK GPIOC #define USB_DISC_PIN 12

Rogerclark
Ср 27 апреля 2016 г. 3:18 утра
Я проверил, и нет готового загрузчика с USB «Диск» (Disconnect) на PC12

Если вы посмотрите https: // github.com/rogerclarkmelbourne/ ... 1/config.час

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

Вам нужно добавить новую «цель», копировав Maple Mini Code
#define HAS_MAPLE_HARDWARE 1 #define LED_BANK GPIOB #define LED_PIN 1 #define LED_ON_STATE 1 /* On the Mini, BUT is PB8 */ #define BUTTON_BANK GPIOB #define BUTTON_PIN 8 #define BUTTON_PRESSED_STATE 1 /* USB Disc Pin Setup. USB DISC is PB9 */ #define USB_DISC_BANK GPIOB #define USB_DISC_PIN 9

Оли
Ср 27 апреля 2016 г., 4:38 утра
Спасибо за информацию! Я изменил цель Maple-Mini, чтобы соответствовать схемам досок следующим образом: (если она наконец-то работает, я создам собственную цель и сделаю запрос на тягу)
#if defined TARGET_MAPLE_MINI #define HAS_MAPLE_HARDWARE 1 #define LED_BANK GPIOA #define LED_PIN 5 #define LED_ON_STATE 1 /* On the Mini, BUT is PB8 */ #define BUTTON_BANK GPIOC #define BUTTON_PIN 9 #define BUTTON_PRESSED_STATE 1 /* USB Disc Pin Setup. USB DISC is PB9 */ #define USB_DISC_BANK GPIOC #define USB_DISC_PIN 12

Rogerclark
Ср 27 апреля 2016 г. 6:16
Загрузчик остается в режиме загрузки DFU примерно через 1 секунду после сброса платы.

За это время он мигает светодиод

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

Я думаю, что это сложно на Mac, так как DFU UTIL придирчиво относится к времени, но, как правило, приспосабливается к загрузке в IDE, а затем в тот момент, когда он закончен и собирается загрузить, вам нужно вручную сбросить вручную доска.

Ах.

Я также только что понял, что вам нужно будет изменить ядро ​​и добавить новую плату, потому что код не будет иметь действительного кода для сброса USB, когда он переключается обратно на загрузчик.
я.e Что происходит, так это то, что USB -серийный проверяет магическую последовательность линии Chars и DTR, и если IDE отправляет это через двоичный файл maple_upload, ядро ​​переключает штифт USB, а затем перезагружает процессор, так что загрузчик работает.


Если вы посмотрите на доску.H для Maple Mini,

https: // github.com/rogerclarkmelbourne/ ... rd/poard.час

это определяет
#define BOARD_USB_DISC_DEV GPIOB #define BOARD_USB_DISC_BIT 9

Оли
Ср 27 апреля 2016 г., 22:37
Хорошо, спасибо, что указали на это, но моя проблема в том, что без новых загрузчиков создается последовательное устройство.
Я только что узнал, что Olimexino основан на Maple Rev 3, и, действительно, схемы очень похожи.

Maple Rev 3: https: // github.com/leaflabs/maple/blob/ ... эматический.PDF
Olimexino: https: // www.Олимекс.com/products/duino/s ... последний.PDF

Используя загрузчик из сайта Olimex: https: // www.Олимекс.com/products/duino/s ... Нарис.молния Плата отображается с последовательным портом, и я могу загрузить наброски, если я выберу Maple Rev 3 в качестве платы в IDE. Это на самом деле довольно приятно, но, конечно, я хотел бы использовать ваш оптимизированный загрузчик. Итак, я прошил Maple_Rev3_boot20.корзин, но с этим загрузчиком не создается последовательный порт, даже в системном профилировке нет информации.
Это странно, так как оба имеют сброс USB, подключенный к PC12, но в PC9 и LED на PA5. Но изучение конфигурации.H Настройка не подходит для схемы, я довольно запутался:
#elif defined TARGET_MAPLE_REV3 #warning "Target MAPLE_REV3" // Flag that this type of board has the custom maple disconnect hardware #define HAS_MAPLE_HARDWARE 1 #define LED_BANK GPIOB #define LED_PIN 1 #define LED_ON_STATE 1 #define BUTTON_BANK GPIOB #define BUTTON_PIN 8 #define BUTTON_PRESSED_STATE 1 /* USB Disc Pin Setup. USB DISC is PB9 */ #define USB_DISC_BANK GPIOB #define USB_DISC_PIN 9

Rogerclark
Ср 27 апреля 2016 г. 11:28
Последовательное устройство не является частью загрузчика, оно встроено в эскиз

Bootloader чисто предоставляет DFU для загрузки, а затем загрузчик сбрасывает USB и прыгает по адресу начала эскиза.

Затем эскиз работает как последовательное устройство (при условии, что последовательный код USB был составлен в эскиз - это зависит главным образом от выбранного метода загрузки)

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

Оли
Чт 28 апреля 2016 г. 12:03
Ах, хорошо, спасибо за разъяснения, теперь я понимаю.
Но как получить эскиз на устройстве без последовательной связи? Теперь мой обходной путь состоял в том, чтобы запустить виртуальные окна, установить драйверы клена и загрузить эскиз с Maple IDE. Но это довольно сложно. Что вы думаете о включении демонстрационного наброска в загрузчик? Разве это не решило бы проблему?

Rogerclark
Чт 28 апреля 2016 г. 12:22
Хитрость заключается в том, чтобы перезагрузить доску вручную в нужное время и загрузить в то время.

Это сложно на Mac.

Что я делаю, это нажимает и удерживаю кнопку сброса на плате

Нажмите загрузку в IDE

Затем, как раз перед тем, как он выглядит так, как готово, отпустите кнопку сброса.

Затем, надеюсь, загрузчик будет запущен в качестве устройства DFU в тот момент, когда IDE хочет загрузить.

Если у вас есть еще одна кнопка на вашей плате, у загрузчика есть функция «Режим вечной загрузки»
В основном он удерживает его в режиме DFU.

Так что вы обычно делаете с пустой Maple Mini Board, нажимает сброс нажмите и удерживайте кнопку пользователя. Затем загрузчик переходит в режим вечного загрузчика, и вы можете загрузить на досуге

Если у вас нет кнопки на доске, вы можете смоделировать кнопку, вытягивая любую линию GPIO, является кнопкой Maple Mini для VCC

(Я не могу вспомнить, на какую штифт включен кнопка, вы можете посмотреть в конфигурации загрузчика)

Оли
Чт 28 апреля 2016 г. 12:33
HM OK, я не уверен, что понял ли я это правильно. Что вы устанавливаете в инструментах -> Порт в Arduino IDE для этого?

Rogerclark
Чт 28 апреля 2016 г. 12:54
Да

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

IDE посылает магическую последовательность на доску через сериал, чтобы сделать это

Однако, поскольку у вас нет установленного эскиза, у вас не будет последовательного устройства для выбора

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

Просто Google для "Maple Mini Perpetual Bootloader" есть видео, показывающие, как это сделать.

Оли
Чт 28 апреля 2016 г. 1:05
Большое спасибо за всю подробную информацию.
У платы есть вторая кнопка, и она действительно работала, как вы описали, и я мог бы загрузить эскиз даже без выбора последовательного устройства.

К сожалению, после загрузки у меня все еще нет последовательного устройства :(
Действительно странно, продолжит расследование завтра.

Rogerclark
Чт 28 апреля 2016 г. 1:35 утра
Добавьте немного кода в эскиз, чтобы отправить сериал

Я думаю, это то, что мы называем "мигай & Считать" ;-)