[Решено] преобразование не очень хорошего значения STM32F103C8T6 плата в BMP

Flodejr
Солнце 24 сентября 2017 г. 10:31
Всем привет,

Я довольно новичок в STM32, и я присоска, который купил эту доску http: // stm32duino.com/viewtopic.PHP?F = 28&T = 1663 который должен был быть USB для доски UART/I2C/SPI, но из-за отсутствия документации, кроме того. Расширенные выводы ограничены и, следовательно, не подходят для общего совета по развитию. Поэтому я думаю о том, чтобы преобразовать его в зонд черной магии. Но у меня есть несколько вопросов, касающихся обращения.

Во -первых, действительно требуется DFU? Все руководства, которые я гугл, сначала поручил сжечь DFU, а затем загрузить прошивку через DFU. Не могу ли я сжигать прямое прошивку без DFU? Поскольку в конце концов, основная функциональность существует в основной прошивке. У платы нет выставленных контактов Boot0 и Boot1, и я постараюсь избежать пайки на SMD (неуклюжие пальцы). Будут ли проблемы, если я использую клон stlink v2 для непосредственного прошивки прошивки. (Хм, подумайте о себе: может быть, это адреса загрузки и прыжков, так что, возможно, я смогу мигать через SWD, чтобы адреса оставались одинаковыми).

Во -вторых, из -за количества разбитых выводов на этой плате STMF103C8T6, которые я могу определить, - это аппаратные штифты для i2C1 (PB6, PB7), SPI1 (PA5, PA6, PA7), UART2 (PA2, PA3), SWIO (PA13 , PA14), это не сопоставляется с расписками BMP SWD по умолчанию (PA5, PB14), Serial (PA2, PA3). PB14 для моей доски пропускает прорыв. Я видел код для BMP на аппаратном маппине:
/* Hardware definitions... */ #define TDI_PORT GPIOA #define TMS_PORT GPIOB #define TCK_PORT GPIOA #define TDO_PORT GPIOA #define TDI_PIN GPIO7 #define TMS_PIN GPIO14 #define TCK_PIN GPIO5 #define TDO_PIN GPIO6

Пито
Солнце 24 сентября 2017 г. 10:58
Будут ли проблемы, если я использую клон stlink v2 для непосредственного прошивки прошивки. Конечно, вы можете вспыхивать со stlink, если у вас есть выводы SWD на заголовке (Swio, Swclk).
Есть ли в наличии схемы этой доски BadValue (BV)??
Вы также можете вспыхивать загрузчик для Bluepill в него и использовать его.. (На печатной плате есть резистор 1K5, чтобы загрузчик мог работать).

Flodejr
Солнце 24 сентября 2017 г. 16:02
[Пито - Солнце 24 сентября 2017 г. 10:58] - Есть ли в наличии схемы этой доски BadValue (BV)??
Нет, для Правления нет ни схемы, ни схемы, ни схемы, однако, я могу подтвердить, что вырывы SPI1, I2C1, UART2, а также булавки Swio. Я также написал простую программу по сканированию всех контактов, и кажется, что 3 светодиода на борту, первым ближайшим к разъему Micro USB является непосредственно подключенным к VCC, тем, что рядом с ним является Actuall Portb Pin 11 и после этого Portb Pin 12, обе штифты вытянуты высоко. Из 20 разбитых булавок есть 2 +5V и 4 +3.3V и 3 соединения GND. Так что использование, я думаю, довольно ограничено.

Рик Кимбалл
Солнце 24 сентября 2017 г. 16:24
Я бы использовал булавки SCL SDA (PB6, PB7) для булавок SWD, таким образом, они физически выстраиваются в ряд (3V3, SCL, SDA, GND), что облегчает соединение провода. Изменение должно быть просто несколько определений в заголовке, на который вы указали выше. Я никогда не проводил времени, пытаясь получить функцию JTAG BMP Working. Если вы в основном планируете использовать его с платами Arm Cortex-M, SWD-это все, что вам нужно.

Я не могу сказать, есть ли у вашей платы USB_Disconnect Pin. Вы проверили печатную плату на транзистор, который подключает и отключает подтягивающий резистор к контакту PA12? Вы просили производителя схемы? Если выясняется, что нет схемы отключения USB, вы сможете использовать платформу BMP STLINK с некоторыми незначительными изменениями порта/вывода. Чтобы доставить вашу доску до USB перечислять, просто отключите USB -кабель и повторно подключите.

Flodejr
Пн, 25 сентября 2017 г. 2:19 утра
Я наметил булавки как таковые: /* Hardware definitions... */ #define TDI_PORT GPIOA // JTAG TEST DATA IN PORT #define TDI_PIN GPIO6 // JTAG TEST DATA IN PIN <-> SPI1 MISO #define TMS_PORT GPIOB // SWDIO_PORT #define TMS_PIN GPIO7 // SWDIO_PIN <-> I2C1 SDA #define TCK_PORT GPIOB // SWCLK_PORT #define TCK_PIN GPIO6 // SWCLK_PIN <-> I2C1 SCL #define TDO_PORT GPIOA // JTAG TEST DATA OUT PORT #define TDO_PIN GPIO7 // JTAG TEST DATA OUT PIN <-> SPI1 MOSI #define SWDIO_PORT TMS_PORT #define SWCLK_PORT TCK_PORT #define SWDIO_PIN TMS_PIN #define SWCLK_PIN TCK_PIN #define SRST_PORT GPIOA // JTAG TEST RESET PORT #define SRST_PIN_V1 GPIO9 // JTAG TEST RESET PIN1 #define SRST_PIN_V2 GPIO8 // JTAG TEST RESET PIN2 #define LED_PORT GPIOB /* Use PC14 for a "dummy" uart led. So we can observere at least with scope*/ #define LED_PORT_UART GPIOB #define LED_UART GPIO11

Rogerclark
Пн 25 сентября 2017 г. 2:58 утра
Я думаю, вы можете усложнить жизнь для себя

Если вы выберете плату «Generic STM32F103C» в Arduino IDE, выберите загрузку Stlink, она будет загружена через Stlink

Существует также возможность использовать Blackmagic Lesse, если у вас есть один из них.

Однако существует разница в том, как будет работать доска, в зависимости от того, какой метод загрузки вы выбираете.

Если вы выберете загрузку Stlink, USB Serial будет включен, так как у сил Stlink нет виртуального последовательного порта

Если вы выберете загрузку Blackmagic Desest (AKA BMP), USB Serial не включается, потому что BMP имеет свой виртуальный серийный порт.

Рик Кимбалл
Пн, 25 сентября 2017 г., 3:15 утра
Вы подключили Dio, CLK, GND? между каждой доской? Питание чертежа с USB?

Вы пробовали настройку Boot0 High на Blupill, нажмите сброс, а затем попытались подключиться?

«Контролировать помощь» работает?

Flodejr
Пн, 25 сентября 2017 г., 3:18 утра
Привет, Роджер,

Мои вопросы не связаны с тем, как прошить плату STM32, я знаю почти все методы мигающей прошивки. Что я пытаюсь сделать, так это сделать зонд черной магии из несуществующего USB -платы I2C/SPI/UART, который я купил, и из -за ограниченных разбитых булавок, я должен переназначить булавки.

Чего я достиг до сих пор, так это изменить прошивку BMP, чтобы оно отображалось на булавки, которые разбиты на плате и могли прошить его с помощью USB -устройств, обнаруженных на моем машине Linux, но я не получаю правильные ответы от BMP, который я делаю. Таким образом, вопросы, если есть и другие булавки, которые мне нужно принять к сведению.

Flodejr
Пн 25 сентября 2017 г. 3:32 утра
[Рик Кимбалл - Пн, 25 сентября 2017 г. 3:15] - Вы подключили Dio, CLK, GND? между каждой доской? Питание чертежа с USB?

Вы пробовали настройку Boot0 High на Blupill, нажмите сброс, а затем попытались подключиться?

«Контролировать помощь» работает?
Я подключил SWDIO к контакту B7, SWCLK к контакту B6 (согласно моей модификации в прошивке BMP), 3.3V и GND и Monitor также помогают работать. Я также определил светодиодный порт B11 как индикатор UART, и он мигает каждый раз, когда я выпускаю команду. Но «Монитор SWDP_SCAN» не удалось. Я также включил режим отладки, но «Monitor SWDP_SCAN» не выдает никаких сообщений отладки на UART, но если я выдаю «Monitor JTAG_SCAN», я вижу некоторые сообщения на терминале отладки, но мой JTAG не подключен к чему -либо.

Рик Кимбалл
Пн 25 сентября 2017 г. 3:36 утра
Есть ли на этих булавках подтягивающие резисторы, так как они были отмечены i2c? Если так, возможно, попробуйте другие булавки

Рик Кимбалл
Пн 25 сентября 2017 г., 3:42
У вас подключены 3V3 и USB? Это должно быть одно или другое, но не оба.

Flodejr
Пн, 25 сентября 2017 г., 3:57 утра
[Рик Кимбалл - Пн, 25 сентября 2017 г. 3:36] - Есть ли на этих булавках подтягивающие резисторы, так как они были отмечены i2c? Если так, возможно, попробуйте другие булавки

У вас подключены 3V3 и USB? Это должно быть одно или другое, но не оба.
Я протестировал, у двух контактов I2C не есть натягивающие резисторы, и я использую только мощность USB, нет внешнего источника питания. Я также пробовал картирование с булавками SPI, и я получаю те же результаты. Где -то в прошивке должны быть несколько жестких булавок, и я пытаюсь их искать. До сих пор я нашел как PC14, PC15 и PC13 для проверки версий, а также PA15 для некоторой функции сброса.

Рик Кимбалл
Пн, 25 сентября 2017 г., 4:00 утра
Если вы вспыхиваете чертеж с этим Blackmagic.корзин, который вы создали?

Rogerclark
Пн, 25 сентября 2017 г., 5:12
@flodejr

Извини. Я не читаю название.

Я думаю, тебе будет лучше перейти в чат BMP на gitter

https: // gitter.Im/Blacksphere/Blackmagic

Эти ребята знают намного больше о построении BMP и т. Д

Flodejr
Пн 25 сентября 2017 г. 5:51 утра
Привет, Рик,

Спасибо за вашу помощь. Очень ценится. Я получил это работа, это была цель в конце концов. Мне пришлось нажимать и удерживать сброс во время сканирования, а затем прикрепить и отпустить сброс вместе. Интересно, почему программное обеспечение OpenOCD на ПК может выполнять сброс через программное обеспечение, а не программное обеспечение OpenCD на BMP (я считаю, что это сервер OCD, работающий на правом BMP?)

Рик Кимбалл
Пн 25 сентября 2017 г. 12:46
BMP реализует сервер протоколов удаленного сервера GDB, как и OpenOCD и код Texanne ST-UTIL. Вот некоторые ссылки, которые объясняют, что такое GDB RSP:
http: // www.Embecosm.com/appnotes/ean4/e ... Сью-2.HTML
http: // neptune.Биллгатлифф.com/отладчик.HTML

OpenOCD и Texanne Code являются программами настольных компьютеров, которые обеспечивают прокси GDB между сетевым гнездом (Arm-None-Eabi-GDB подключается к сокету) и оборудованием STLINK, подключенное через USB. Обе программы разговаривают непосредственно с интерфейсом USB устройства STLINK, используя ST Propritary API. Они принимают команды GDB RSP и превращают их в USB -команды, которые обрабатываются устройством Stlink.

BMP предоставляет доступ через последовательный порт на устройстве «Не очень хорошее значение» STM32F103. В этом случае, арест-не один-eabi-gdb подключается к серийному порту вместо розетки. Прошивка BMP принимает команды GDB RSP и переключает контакты SWD_DIO/SWD_CLK на вашей плате «Не очень хорошее значение» для реализации Протокол SWD встроенный в ваш целевой чип.

Мне интересно, какая плата и варианты загрузки вы выбрали. Эти варианты влияют на то, как конфигурируются булавки SWD/JTAG в Libmaple. DEFINE CONFIG_MAPLE_MINI_NO_DISABLE_DEBUG - это то, что управляет этим и часто мешает плавной отладке. У меня, конечно, есть целевая доска в режиме, где я не мог отладить ее даже с помощью STLINK Dongle. Однако вы всегда можете получить доступ, даже если вы отключили контакты, установив высокий уровень PIN -кода Boot1 и нажав сброс. Это помещает его в режим загрузки системы, который позволяет использовать булавки SWD/JTAG.

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

Роль загрузчика?