Arduino STM32F103C
тел. +7(499)347-04-82
Описание Arduino STM32F103C
Отличный выбор! STM32F103C — это семейство мощных 32-битных микроконтроллеров от STMicroelectronics, которое стало популярной и доступной альтернативой классическим 8-битным AVR (например, ATmega328P) в мире Arduino.
Общее описание
Arduino на STM32F103C — это проект, который переносит среду разработки Arduino IDE и ее простой API на высокопроизводительные ARM Cortex-M3 микроконтроллеры STM32. Эти платы часто называют "Blue Pill" (из-за синего цвета и небольшого размера) или "STM32duino".
Ключевая идея — совместить простоту программирования Arduino с мощью STM32: высокой тактовой частотой, большим объемом памяти, множеством периферийных интерфейсов (UART, SPI, I2C, USB, ADC, PWM) и продвинутыми функциями, такими как аппаратная поддержка шины CAN.
Технические характеристики ядра STM32F103C (на примере F103C8T6)
- Ядро: ARM 32-бит Cortex-M3
- Тактовая частота: 72 МГц (стандартная для Arduino-среды, хотя ядро может работать и быстрее).
- Флэш-память (Flash): 64 КБ (для F103C8T6) или 128 КБ (для F103CBT6).
- Оперативная память (SRAM): 20 КБ.
- EEPROM: Отсутствует на кристалле, но эмулируется во флэш-памяти с помощью специальных библиотек.
- Периферия:
- Цифровые ввод/вывод (GPIO): До 37 линий (в зависимости от корпуса и модели).
- Аналоговые входы (ADC): 2 x 12-битных АЦП, до 10 каналов.
- ШИМ (PWM): До 15 каналов (на разных таймерах).
- Таймеры: 3 основных таймера (16-бит), 1 продвинутый таймер (16-бит), SysTick таймер.
- Последовательные интерфейсы:
- UART/USART: До 3 штук.
- SPI: До 2 штук.
- I2C: До 2 штук.
- USB 2.0 Full-Speed: 1 порт (может работать как CDC/COM-порт, HID, DFU).
- CAN: 1 интерфейс (аппаратная поддержка шины CAN 2.0B).
- Дебаккинг: Интерфейсы SWD (2 провода) и JTAG.
Сравнение с Arduino Uno (ATmega328P):
- Частота: 72 МГц vs 16 МГц (в 4.5 раза быстрее).
- Флэш-память: 64/128 КБ vs 32 КБ.
- ОЗУ: 20 КБ vs 2 КБ (в 10 раз больше).
- АЦП: 12-бит vs 10-бит (выше точность).
- Дополнительно: Наличие USB и CAN "на борту".
Парт-номера и совместимые модели
Семейство STM32F103C включает несколько моделей, отличающихся объемом памяти и типом корпуса. Наиболее популярные для плат типа "Blue Pill":
Основные модели (LQFP48 корпус):
- STM32F103C8T6 – Самый популярный вариант. 64 КБ флэш, 20 КБ ОЗУ.
- STM32F103CBT6 – 128 КБ флэш, 20 КБ ОЗУ.
- STM32F103C6T6 – 32 КБ флэш, 10 КБ ОЗУ (менее распространен).
Совместимые модели (аналоги от других производителей):
Внимание! Из-за высокого спроса на рынке появилось много клонов и аналогов. Они могут иметь отличия в качестве или периферии.
- GD32F103C8T6 (от GigaDevice) – Прямой аналог, часто используется, иногда имеет немного другие характеристики таймеров/АЦП.
- APM32F103C8T6 (от Geehy) – Еще один аналог.
- HK32F103C8T6 (от Huaxing) – Аналог.
Важно: При использовании аналогов (GD32, APM32 и т.д.) может потребоваться установка дополнительных ядер (Cores) в Arduino IDE или коррекция настроек, так как они не на 100% идентичны оригинальным STM32.
Популярные платы разработки (Development Boards)
- "Blue Pill" (Самая известная): Минимальная плата с микроконтроллером, кварцем, стабилизатором и разъемами.
- "Black Pill" (на базе F401/F411): Более современный вариант (Cortex-M4), но существуют и Black Pill на F103. Часто имеют лучшую разводку и встроенный стабилизатор USB.
- Maple Mini: Еще один классический формат, аналог Blue Pill.
- Платы от RobotDyn, WeAct, STM official (Nucleo-64): Последние часто требуют использования оригинальной среды STM32CubeIDE.
Как начать работу в Arduino IDE
- Установка ядра: Через менеджер плат (
Файл -> Настройки -> Дополнительные URL-адреса) добавить адрес ядра (например, от STM32duino или Roger Clark). - Выбор платы: В меню
Инструментывыбрать:- Плата: "Generic STM32F1 series"
- Variant: "STM32F103C8" (или "STM32F103CB" для 128КБ версии)
- Upload method: "STM32CubeProgrammer (DFU)", "Serial" или "ST-Link" в зависимости от способа прошивки.
- Программатор: Для загрузки скетча часто нужен внешний программатор:
- USB-TTL (UART): Самый простой способ, требует перевода платы в режим загрузки (перемычка BOOT0).
- ST-Link (V2 или V3): Официальный отладчик/программатор, позволяет также отлаживать код.
- USB-порт (DFU): Некоторые платы можно прошивать напрямую через USB, если предварительно прошит соответствующий загрузчик.
Преимущества и недостатки
Преимущества:
- Высокая производительность при низкой цене.
- Большой объем памяти.
- Обилие периферийных интерфейсов.
- Активное сообщество и множество библиотек.
- Совместимость с языком Arduino C++.
Недостатки/Особенности:
- Не такая "заточенная" под начинающих экосистема, как у оригинального Arduino.
- Может требоваться дополнительный программатор (ST-Link).
- Возможны сложности с настройкой таймеров и прерываний "низкого уровня" из-за абстракции Arduino.
- На рынке много клонов с переменным качеством.
Итог: STM32F103C в оболочке Arduino — это идеальный мост для перехода с классических 8-битных AVR на современные 32-битные ARM-микроконтроллеры, сохраняя при этом привычную простоту разработки.