Отладочная плата 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

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

 

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

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

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

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

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

П(A9) -> K(RX)

П(А10) -> К(TX)

П(GND) -> K(GND)

П(3.3) -> K(VCC)

stm32 pins

 

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

  1. Скачать дополнение для Arduino IDE, которое будет поддерживать платы STM32
  2. Распаковать архив в папаку HARDWARE, которую можно найти в папке вашей Arduino IDE
  3. Запустить Arduino IDE (или перезапустить если была открыта) и проверить появился ли раздел STM32 Boards в списке Плат

 

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

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

void setup() {
  // initialize digital pin PB1 as an output.
  pinMode(PC13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(PC13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(PC13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}

Далее в Arduino IDE:

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

stm32 ide

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

Комментарии   

0 # sunapex 12.03.2016 08:45
На скачанное дополнение для Arduino IDE ругается антивирус!
Ответить | Ответить с цитатой | Цитировать
0 # Администратор 17.03.2016 10:14
Проверил архив антивирусом от Касперского (базы от 17.03.2016) - ничего не обнаружил.
Ответить | Ответить с цитатой | Цитировать
0 # Alexander 30.03.2016 12:44
Всё сделал по описанию,но при загрузке появляется ошибка
Arduino: 1.6.5 (Windows 7), Плата"Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), STM32duino bootloader"

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

Cannot run program "{runtime.tools.arm-none-eabi-gcc.path}\bin\arm-no ne-eabi-g++" (in directory "."): CreateProcess error=2, Не удается найти указанный файл

Это сообщение будет содержать больше информации чем
"Отображать вывод во время компиляции"
включено в Файл > Настройки
Ответить | Ответить с цитатой | Цитировать
0 # V3 10.06.2016 11:14
Та же проблема. Сначала думал, что мешает установленная Java - нет. На абсолютно чистой системе, с Arduino 1.6.4, Arduino STM32 master, и установленным драйвером виртуального COM порта, тоже ничего не работает. Ошибка та же самая.
Ответить | Ответить с цитатой | Цитировать
0 # V3 10.06.2016 12:06
Проверено на версиях Arduino 1.6.0, 1.6.4, 1.6.5, 1.6.6, 1.6.8. (именно 1.6.5 видно на одном из скриншотов). Ни на одной не работает.
Ответить | Ответить с цитатой | Цитировать
+2 # V3 10.06.2016 13:00
Предлагаю Автору, если у него ещё осталась работающая версия данного программного решения, поделится абсолютными путями указанных в статье файлов, в т.ч. exe-шника Ардуино и файла blink.ino, а также написать содержимое папки hardware, и находящейся в ней папки Arduino_STM32-master.
Ответить | Ответить с цитатой | Цитировать
+2 # Konstantin 02.07.2016 23:49
Описанное дополнение для Arduino IDE идет без тулчейна для компиляции (о чем собственно и ошибка: не найден GCC компилятор для arm'ов). Что бы заработало как у автора, нужно инсталлировать в "Менеджере плат" поддержку "Arduino SAM Board (32-bitd ARM Cortex-M3)". Вместе с поддержкой этой платы установится и нужный компилятор.
---
И еще, обратите внимание на строчки в скетче
pinMode(PC13, OUTPUT);
digitalWrite(PC13, HIGH);
digitalWrite(PC13, LOW);
в оригинальном примере идущим с IDE
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
digitalWrite(13, LOW);
- так тоже откомпилится без ошибок, но работать не будет должно стоять PC13
---
И еще, перед каждой заливкой скетча плату надо ресетить, для запуска UART загрузчика.
Ответить | Ответить с цитатой | Цитировать
0 # seawar 28.06.2016 15:59
Надо поставить правильный компилятор: https://launchpad.net/gcc-arm-embedded/
Файл Arduino/hardware/Arduino_STM32/STM32F*/platform.tx t модифицировать, как пишут здесь: http://www.stm32duino.com/viewtopic.php?f=21&t=1200&p=15192&hilit=arm+none#p15192
Ошибка с arm-none-eabi-gcc.path ушла. Но посыпало много других ошибок. В основном, о несоответствии типов данных. Какая-то нестыковка с версиями библиотек. Вобщем, сыровато это пока..
Ответить | Ответить с цитатой | Цитировать
0 # sura 29.09.2016 17:17
Мне помогла замена строки в файле Arduino/hardware/Arduino_STM32/STM32F*/platform.txt
Было так:
runtime.tools.arm-none-eabi-gcc.path={runtime.ide.path}/hardware/tools/gcc-arm-none-eabi-4.8.3-2014q1
Стало так:
compiler.path=d:/EmBitz/share/em_armgcc/bin/
Естественно предварительно установил EmBitz
Ответить | Ответить с цитатой | Цитировать
+1 # revector 30.09.2016 16:42
Всё заработало как в тексте.
Подгрузил только библиотеку "Arduino SAM Board (32-bitd ARM Cortex-M3)".
Не забывайте про перемычку на плате перед прошивкой!
Ответить | Ответить с цитатой | Цитировать
0 # Gallade785 01.12.2016 00:13
А на этой плате пойдет скетч с nano? Просто если поменять пины выходов, то скетч который у меня заработал на nano выдь должен пойти и на этой платке?
Ответить | Ответить с цитатой | Цитировать
0 # Saddamko 14.01.2017 23:20
У меня все заработало с первой попытки по рекомендациям статьи. Светодиод мигает Arduino IDE 1.8.1, Установил в медежере плат http://dan.drown.org/stm32duino/package_STM32duino_index.json и после этого вид платы STM32F1

Вот так:
C:\Users\Saddamko\AppData\Local\Temp\arduino_build_147792/sketch_jan14b.ino.bin
stm32flash 0.4

http://stm32flash.googlecode.com/

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: 4x1024)
- 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.
Ответить | Ответить с цитатой | Цитировать
0 # Игорь 30.01.2017 11:46
Подскажите что делать, если нет FTDI конвертера? Вместо него подойдет ISP программатор или аналог ардуино TE-MINI328? Или вообще начисто к компу можно подключить STM32F103C8T6 без посредников?
Ответить | Ответить с цитатой | Цитировать
0 # Николай 30.01.2017 12:02
Подойдет любой USB TTL конвертер, главное обеспечить 3.3В на сигнальных проводках. Можно и ардуинкой обычной 5вольтовой в режиме UART моста, тогда придется делитель напряжения делать для TX/RX.
Ответить | Ответить с цитатой | Цитировать
0 # yucan 09.03.2017 14:31
Подскажите пожалуйста по моей ошибке.
Arduino: 1.6.5 (Windows XP), Плата"Generic STM32F103C series, STM32F103C8 (20k RAM. 64k Flash), Serial, 72Mhz (Normal)"
arm-none-eabi-g++: error: C:\Temp\build1270749402357376224.tmp/core.a: No such file or directory
Файл или папку core.a: не может найти
Ответить | Ответить с цитатой | Цитировать

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


Защитный код
Обновить