Введение
Большинство любителей микропроцессорной техники знакомы с широко распространённой средой разработки Arduino [1], предназначенной для быстрого освоения микропроцессорной техники. Эта среда разработки отличается простотой и удобством программирования. Кроме того, она является кросс-платформенной и имеет расширяемое программное обеспечение с открытым исходным кодом.
Данная среда изначально базировалась на микроконтроллерах AVR компании Atmel, но постепенно стала дополняться другими типами микроконтроллеров. Пришло время, когда к Arduino примкнули 32-разрядные микроконтроллеры. Одним из них стал микроконтроллер STM32F103C8T6 от компании STMicroelectronics [2], размещённый на отладочной плате F103C8T6.
Рассмотрим преимущества данного микроконтроллера и способ его интеграции в среду разработки Arduino.
Отладочная плата F103C8T6
Отладочная плата F103C8T6 по своим параметрам значительно превосходит аналогичные по размеру отладочные платы типа Arduino Nano.
Основой F103C8T6 является микроконтроллер STM32F103C8T6.


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

Соответствие выводов платы F103C8T6 функциональному назначению представлено на рисунке 4.

Приобрести такую плату можно за 117 руб. на торговой интернет-площадке aliexpress.com.
Благодаря микроконтроллеру STM32F103C8T6 со встроенным интерфейсом USB, для подключения к компьютеру не требуется дополнительного моста USB-UART.
В таблице 1 приведены для сравнения основные характеристики отладочных плат F103C8T6 и Arduino Nano v3.0.

Микроконтроллер отладочной платы имеет в своём составе:
- 10 аналоговых входов АЦП (ADC) с разрешением 12 бит;
- 2 АЦП 12-разрядных со временем преобразования 1 мкс;
- 37 выводов GPIO;
- 2 интерфейса SPI;
- 2 интерфейса I2C;
- 3 интерфейса USART;
- 1 интерфейс USB 2.0;
- 1 интерфейс CAN;
- 4 таймера 16-разрядных;
- DMA-контролер;
- 2 сторожевых таймера;
- встроенные часы реального времени RTC.
Подобный состав микроконтроллера является весомым аргументом в пользу его применения в различных проектах с программной поддержкой среды разработки Arduino.
Подготовка отладочной платы
Для того чтобы отладочная плата поддерживалась средой разработки Arduino, необходимо проделать следующие операции:
- Записать в микроконтроллер готовый загрузчик, который позволит прошивать плату через имеющийся на ней интерфейс USB;
- Установить программное дополнение в среду разработки Arduino для поддержки отладочной платы F103C8T6.
Загрузчик для отладочной платы в виде файла generic_boot20_pc13.bin находится в свободном доступе на сайте [3]. Записать этот файл в микроконтроллер можно через интерфейс UART с помощью свободно распространяемой программы Flash Loader Demonstrator [4] и конвертера USB-TTL, например, на базе FTDI FT232BL или CH340G.
Для активации режима программирования на отладочной плате F103C8T6 необходимо установить имеющиеся перемычки выбора режима загрузки BOOT следующим образом: первая на 1, вторая на 0. Конвертер USB-TTL требуется переключить на питание 3,3 В с помощью соответствующей перемычки. Далее нужно соединить проводниками отладочную плату F103C8T6 и конвертер USB-TTL в соответствии с таблицей 2.

На компьютере, с помощью которого будет записываться файл загрузчика в отладочную плату F103C8T6, необходимо установить драйвер для используемого конвертера USB-TTL, подключив конвертер USB-TTL к USB-интерфейсу компьютера. После чего можно начать запись файла загрузчика с помощью предварительно установленной на компьютер программы Flash Loader Demonstrator.
Интеграция платы в среду разработки
Для того чтобы среда разработки Arduino поддерживала отладочную плату F103C8T6, необходимо скачать дополнение для Arduino IDE и установить его на компьютер.
Это дополнение можно загрузить бесплатно с сайта [5] в виде архивного файла Arduino_STM32-master.zip. Этот файл следует распаковать в папку HARDWARE среды разработки Arduino и затем перезапустить среду разработки. После чего необходимо удостовериться, что в списке поддерживаемых средой разработки плат появился раздел STM32 Boards. Поддержка новых плат реализована в среде разработки Arduino начиная с версии 1.0.5.
Пример использования отладочной платы
Рассмотрим пример программы, осуществляющей на плате F103C8T6 мигание светодиода. Для этого создадим в среде разработки Arduino новый скетч, приведённый в листинге .

Далее в среде разработки Arduino необходимо выбрать плату Generic STM32F103C series с параметрами Variant: (20k RAM. 64k Flash). В качестве метода загрузки выбрать Upload method: «Serial». При выборе порта нужно указать порт, соответствующий конвертеру USB-TTL. После чего следует нажать программную кнопку загрузки в среде разработки. В результате программа должна загрузиться в отладочную плату, и начнётся мигание светодиода.
Подобным образом можно проверить работу других скетчей, содержащихся в библиотеке среды разработки Arduino. Установленный архивный файл Arduino_STM32-master.zip содержит в себе множество готовых примеров в виде скетч-файлов, которые позволяют быстро осваивать микроконтроллер STM32.
Литература
- www.arduino.ru.
- www.st.com.
- https://github.com/rogerclarkmelbourne/STM32duino-bootloader/tree/master/STM32F1/binaries.
- http://www.st.com/en/development-tools/flasher-stm32.html.
- https://github.com/rogerclarkmelbourne/Arduino_STM32/archive/master.zip.
Если вам понравился материал, кликните значок — вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал —не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!

