Настройка поддержки чипа STM32F103C8T6 средой Arduino IDE
Теория
КОМПОНЕНТЫ
- Адресуемая светодиодная лента
- Геркон
- Диод
- Зуммер
- Кнопка
- Кварцевый резонатор
- Конденсатор
- Макетная плата
- Резистор
- Реле
- Светодиод
- Светодиодные индикаторы
- Сервопривод
- Симистор
- Транзистор
ARDUINO
- Что такое Arduino?
- Среда разработки Arduino IDE
- Сравнение плат Arduino. Какую выбрать?
- Как прошить плату Arduino с помощью другой Arduino (ArduinoISP)
- Онлайн-сервис TinkerCAD – эмулятор Arduino
- Визуальная среда разработки Mixly для Arduino
- Настройка поддержки чипа STM32F103C8T6 средой Arduino IDE
RASPBERRY
ИНТЕРФЕЙСЫ ПЕРЕДАЧИ ДАННЫХ
Дело в том, что в STM32 с завода прошит, в так называемую системную память (System Memory), специальный загрузчик, который позволяет прошивать плату через самый обычный USB to UART переходник, не прибегая к специфическим программаторам типа ST-Link V2.
Подключите плату к преобразователю следующим образом:
G ↔ GND;
5V ↔ 5V;
PA10 ↔ TXD;
PA9 ↔ RXD.
PA10/PA9 на плате подписаны просто как A10/A9 — эти порты являются первым аппаратным USART’ом, всего их на плате 3, так же тут 2 аппаратных I2C и 2 SPI.
Ради удобства плата запитана от 5 В, для питания от 3.3 В на плате есть пин «3.3». Внимание: 5 В может вывести микроконтроллер из строя, так что уделите должное внимание подключению.
Выбираем номер COM-порта нашего переходника, в этом случае это COM43, затем нажмите «Next»:
По умолчанию здесь стоит защита от чтения, программа предупреждает, что если нажать кнопку «Remove protection», Flash память будет очищена, т.е. если бы там была какая-то прошивка — она удалится. Нажмите на кнопку.
Подтверждаем.
Так как отладочная плата основана на микроконтроллере STM32F103C8 — здесь 64 Кбайт Flash памяти, есть ещё STM32F103CB микроконтроллер, где в два раза больше Flash. Нажмите «Next».
Снова «Next», появляется следующее окно:
Выбирайте «Download to device» и жмём на “generic_boot20_pc13.bin” (тоже присутствует в архиве выше):
Далее нажмите на кнопку «Next», после прошивки загрузчика появится соответствующее уведомление:
Затем необходимо поместить специальное STM32 ядро для среды разработки Arduino IDE, для этого разархивируйте содержимое по адресу Мои Документы\Arduino\hardware:
Разумеется, что система устройство определить не сможет, поэтому необходимо установить драйвера на плату. Заходите в папку «Мои Документы\Arduino\hardware\Arduino_STM32\drivers\win» (или «drivers\win», в случае архива к статье), и запускаете от имени администратора файл «install_drivers.bat»:
После этого верхний джампер («BOOT0»), переводите в положение «0» и подключаете плату к компьютеру через micro-USB кабель:
Она должна в диспетчере устройств определиться или как «Maple DFU», или «Maple Serial (COM*)»:
Запускаете среду разработки, дальше Инструменты -> Плата -> Boards Manager:
Здесь нужно установить ядро для платы Arduino Due. Выбираете последнюю версию и нажимаете «Install»:
Затем Инструменты -> Плата -> «Generic STM32F103C», дальше Variant: «STM32F103C8 (20k RAM. 64k Flash)», Upload Method: «STM32duino bootloader», Порт — номер COM-порта платы, как на скриншоте ниже:
Теперь плата готова к прошивке и программированию в среде разработки Arduino IDE. Можно прошить скетч из примеров, которые «вшиты» в ядро, заходим Файл -> Папка со скетчами -> hardware -> Arduino_STM32 -> STM32F1 -> libraries -> A_STM32_Examples -> Digital -> Blink:
Измените PB1 на PC13, так как светодиод, что на плате, подключен к этому порту. Загорается он по низкому уровню на ножке PC13.
Нажмите кнопку «Вгрузить» (порт выбирать не нужно), после прошивки среда разработки выдаст сообщение:
«Done!
Resetting USB to switch back to runtime mode
error resetting after download: usb_reset: could not reset device, win error: Не удается найти указанный файл.».
Однако прошивка загрузилась успешно, хотя не всегда так, иногда Arduino IDE выдаёт другие сообщения.
Когда видите, сообщение типа:
«dfu-util — © 2007-2008 by OpenMoko Inc.
Couldn’t find the DFU device: [1EAF:0003]
This program is Free Software and has ABSOLUTELY NO WARRANTY»
Это означает, что плату прошить не удалось.
Searching for DFU device [1EAF:0003]…
Когда среда разработки выдает:
«Searching for DFU device [1EAF:0003]…
Assuming the board is in perpetual bootloader mode and continuing to attempt dfu programming…»
И больше ничего не происходит, попробуйте в этот момент перезагрузить плату, нажав кнопку Reset. По аналогии с Arduino Pro Mini.
После подключения в «Upload method» нужно выбрать «STLink». Загружаете скетч.