Меню Рубрики

Быстрый старт stm32f103c8t6 arduino ide

Содержание

Отладочная плата F103C8T6 на базе STM32 по параметрам значительно опережает аналогочные по размеру Arduino Nano или Leonardo, а по скорости близка к Arduino DUE. Есть интерес попробовать, но у новичка могут возникнуть трудности с первым запуском и программированием данной платы. Теперь есть возможность заливать скетчи через Arduino IDE. Подробности далее.

Содержание

  1. Отличия STM32F103C8T6 от Arduino Nano v3.0
  2. Подготовка железа
  3. Подготовка ПО
  4. Закачка скетча (blink) в плату

1. Отличия STM32F103C8T6 от Arduino Nano v3.0

STM32F103C8T6 Arduino
Nano v3.0
Частота ядра 72 МГц 16 МГц
Память для кода (Flash) 64 кбайта 32 кбайта
Память для переменных ОЗУ (SRAM) 20 кбайт 2 кбайта
Рабочее напряжение 3.3В
Память EEPROM отсутствует, но существуют
программные эмуляторы
1 кбайт

2. Подготовка железа

Для работы нам понадобится:

Для активации режима программирования на плате STM следует преставить перемычки: первая на 1, вторая на 0.

Конвертер FTDI переключить на питание 3.3 Вольта (перемычкой/джампером)

Соединить проводами плату (П) и конвертер (К):

3. Подготовка ПО

4. Закачка скетча (blink) в плату

В папке которую мы распаковали в п.3.б заходим по следующему пути: Arduino_STM32examplesDigitalBlink и через Arduino IDE открываем файл blink.ino либо можете взять текст отсюда:

Далее в Arduino IDE:

  • Выбрать плату Generic STM32F103C series
  • Выбрать Variant: (20k RAM. 64k Flash)
  • Выбрать Upload method: "Serial"
  • Выбрать Порт: (порт сооответствующий FTDI конвертеру)

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

Всё сделал по описанию,но при загрузке появляется ошибка
Arduino: 1.6.5 (Windows 7), Плата"Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STM32duino bootloader"

Изменена опция сборки, пересобираем все

Cannot run program "inarm-no ne-eabi-g++" (in directory "."): CreateProcess error=2, Не удается найти указанный файл

Читайте также:  Деревянные полочки для ванной комнаты

Это сообщение будет содержать больше информации чем
"Отображать вывод во время компиляции"
включено в Файл > Настройки

У меня все заработало с первой попытки по рекомендациям статьи. Светодиод мигает Arduino IDE 1.8.1, Установил в медежере плат http://dan.drown.org/stm32duino/package_STM32duino_index.json и после этого вид платы STM32F1

Вот так:
C:UsersSaddamkoAppDataLocalTemparduino_build_147792/sketch_jan14b.ino.bin
stm32flash 0.4

Using Parser : Raw BINARY
Interface serial_w32: 230400 8E1
Version : 0x22
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0410 (Medium-density)
– RAM : 20KiB (512b reserved by bootloader)
– Flash : 128KiB (sector size: 4×1024)
– Option RAM : 16b
– System RAM : 2KiB
Write to memory
Erasing memory

Wrote address 0x08000100 (3.15%)
.
Wrote address 0x08001fb8 (100.00%) Done.

Starting execution at address 0x08000000. done.

Заметки о Linux, системном администрировании, программировании, электронике и не только

Поиск по блогу

пятница, 10 ноября 2017 г.

Использование STM32F103C8T6 в Arduino >

Разобрался как использовать плату на базе контроллера STM32F103C8T6 в Arduino. Мой вариант платы выглядит вот так

В wiki сайта stm32duino.com такая плата называется Blue Pill. И эта плата имеет несколько недостатков, которые относительно просто устранить имея под рукой паяльник.

Крепление micro-usb разъема не внушает доверие – я пропаял его. USB D+ пин подтянут к питанию через резистор номиналом 10k, но чтобы устройство определилось на шине USB как Full Speed, нужно подтягивать USB D+ к питанию через резистор номиналом 1,5k. Гуру smd пайки могут заменить на плате резистор R10, но я выбрал вариант с подключением резистора номиналом 1,8k между пинами PA12 (на этот пин выведен USB D+) и 3.3v.

Прошивку можно заливать через USB-UART преобразователь. Для этого нужно переключить преобразователь в режим 3,3V и подключить выводы согласно таблице (в комментарии подсказали, что выводы PA9/PA10 толерантны к 5V)

В настройках Arduino IDE нужно добавить поддержку SMT32F103 (File / Preferences / Additional Boards Manager URL):

В Boards Manager (Tools / Board / Boards Manager) установить "SMT32F1xx/GD32F1xx boards by smt32duino" и активировать загрузку прошивки через Serial (Tools / Upload method / Serial). На плате нужно переключить перемычку BOOT0 в High, а BOOT1 в Low. После этого нужно сбросить плату и можно заливать скетчи. Для нормальной работы прошивки BOOT0 и BOOT1 должны быть в состоянии Low.

Но лично я рекомендую прошить STM32duino bootloader и пользоваться загрузкой скетча через USB. Для этого подключаем плату через USB-UART преобразователь, как описано выше. Затем в консоли выполняем команды

Мне еще потребовалось подправить правила UDEV, чтобы ModemManager, libmtp и UDisks не трогали плату:

В начале файла /lib/udev/rules.d/69-libmtp.rules добавить

После этого выполнить

Мне пришлось перезагрузить компьютер – в моем случае UDisks не отставал от платы без перезагрузки. После этого отключить USB-UART преобразователь, выставить перемычки BOOT0 и BOOT1 в Low и подключить плату к компьютеру через USB. Теперь выбираем в Arduino IDE тип загрузки "STM32duino bootloader" (Tools / Upload method / STM32duino bootloader).

Первую загрузку скетча нужно делать включив режим infinite в загрузчике. Для этого подключается резистор номиналом 10k между 3,3v и PC14. После сброса светодиод на плате начинает постоянно мигать, что означает что загрузчик будет ждать начала загрузки без ограничения по времени. После первой загрузки этот режим можно выключить и дальше пользоваться платой как обычно.

Последовательный порт платы опознается в Linux как /dev/ttyACM0 и его нужно выбрать в "Tools / Port" чтобы работал Serial Monitor.

Читайте также:  Доски из тополя применение

Отладочная плата STM32F103C8T6 по параметрам значительно опережает схожие по размеру Arduino Nano или Leonardo, а по скорости близка к Arduino DUE. Такие характеристики вызывают большой интерес к такой плате, но у новичков могут возникнуть трудности с первым запуском и программированием данной платы. Теперь есть возможность заливать скетчи через Arduino >

Основные отличия STM32F103C8T6 от Arduino Nano v3.0
STM32F103C8T6 Arduino
Nano v3.0
Частота ядра 72 МГц 16 МГц
Память для кода (Flash) 64 кбайта 32 кбайта
Память для переменных ОЗУ (SRAM) 20 кбайт 2 кбайта
Рабочее напряжение 3.3В
Память EEPROM отсутствует, но существуют
программные эмуляторы
1 кбайт
Подготовка аппаратной части

Для работы нам понадобится:

Для активации режима программирования на плате STM следует переставить перемычки: первая на 1, вторая на 0.

Конвертер FTDI переключить на питание 3.3 Вольта (перемычкой/джампером)

Соединить проводами плату (П) и конвертер (К):

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *