В этом проекте мы кратко рассмотрим плату разработки STM32F103C8T6, основанную на микроконтроллере ARM Cortex-M3 от STMicroelectronics.
Введение.
В последнее десятилетие Arduino стала подходящей платой для быстрого прототипирования, хобби-проектов или в качестве платы для разработки новичков, позволяющей начать свою карьеру в области электроники. Но мы все знаем ограничения платы Arduino (давайте обсудим Arduino UNO, поскольку это самая популярная плата Arduino), то есть она медленная, работает только на частоте 16 МГц, имеет очень ограниченное внутреннее оборудование и не имеет достаточная вычислительная мощность или ОЗУ и флэш-память для запуска приложения на базе FreeRTOS (технически вы можете запускать FreeRTOS на Arduino, но это не идеально).
Альтернативой Arduino является плата разработки на базе микроконтроллера STM32F103C8T6, которую часто называют Blue Pill. Этот микроконтроллер основан на архитектуре ARM Cortex-M3 производства STMicroelectronics.
STM32F103C8T6 — очень мощный микроконтроллер, благодаря своему 32-битному процессору он может легко превзойти Arduino UNO по производительности. В качестве дополнительного бонуса вы можете легко запрограммировать эту плату с помощью Arduino IDE (хотя и с некоторыми настройками и дополнительным программатором, например, преобразователем USB в U(S)ART).
На следующем изображении показаны передняя и задняя стороны типичной платы STM32 Blue Pill. Как видите, компоновка платы очень проста, и некоторые могут даже спутать ее с Arduino Nano.
Важная особенность этих плат заключается в том, что они очень дешевы, дешевле, чем клонированная версия Arduino UNO. Итак, это, очевидно, клонированная версия (вероятно, поддельный микроконтроллер STM32), и на рынке доступно множество клонированных версий платы.
Что касается самой платы Blue Pill, вы получаете плату и две штекерные полоски, которые можно припаять к плате (жаль, что они не были предварительно припаяны).
Остальные особенности платы заключаются в следующем:
- Он содержит основной микроконтроллер — STM32F103C8T6 в четырехплоскостном корпусе.
- Переключатель сброса – для сброса микроконтроллера.
- Порт microUSB – для последовательной связи и питания.
- Перемычки BOOT Selector – перемычки BOOT0 и BOOT1 для выбора загрузочной памяти.
- Два светодиода — индикатор пользователя и индикатор питания.
- Кристалл 8 МГц – основная тактовая частота для MCU.
- Генератор 32,768 кГц — часы RTC.
- Интерфейс SWD – для программирования и отладки с использованием ST-Link.
- Регулятор 3,3 В (внизу) — преобразует 5 В в 3,3 В для питания микроконтроллера.
На обоих длинных краях платы имеются контакты для подключения различных аналоговых и цифровых устройств ввода-вывода и питания. На следующем изображении показана конфигурация контактов платы, а также различные функции, поддерживаемые каждым контактом.
Как видно из изображения выше, каждый вывод микроконтроллера STM32F103C8T6 может иметь несколько функций (но нужно выбрать только одну). Также обратите внимание, что некоторые контакты ввода-вывода устойчивы к напряжению 5 В, а это означает, что вы можете без проблем подключить к этим контактам совместимый с напряжением ввода-вывода 5 В.
Проблемы с платой STM32 Blue Pill
Если вы планируете купить более дешевую версию (что, вероятно, сделает большинство из нас), то есть некоторые известные проблемы с платами, о которых вам следует знать. Я взял эти вопросы с различных форумов и сам столкнулся с некоторыми проблемами (связанными с USB).
- Первая основная проблема — регулятор 3,3 В. Хотя на некоторых платах используются оригинальные стабилизаторы LM1117 3,3 В от TI, на большинстве дешевых макетных плат используются небольшие подделки стабилизаторов неизвестного производителя. Эти регуляторы не имеют тепловой защиты и легко повреждаются. Решение состоит в том, чтобы использовать внешний регулируемый источник питания, если у вас есть такая возможность.
- Следующие две проблемы связаны с USB. Во-первых, качество пайки порта microUSB очень плохое и если часто вынимать и вставлять кабель в этот порт, то велика вероятность, что разъем microUSB оторвется от платы. Вы можете использовать горячий клей, чтобы покрыть разъем.
- Другая проблема, связанная с USB, — это использование неправильного подтягивающего резистора. Согласно справочному руководству микроконтроллера, USB D+ (названный USBDP) должен быть подтянут до 3,3 В с помощью резистора сопротивлением 1,5 КОм. Но согласно схемам нескольких плат Blue Pill, все они используют резистор сопротивлением 10 кОм. Если вы планируете работать над передачей данных через USB, вы можете не получить точных результатов. Если вы отчаянно нуждаетесь в решении, вы можете припаять резистор сопротивлением 1,8 кОм параллельно существующему резистору сопротивлением 10 кОм. Для этого подключите резистор 1,8 КОм между контактами А12 и контактом 3,3 В.
- Другие известные проблемы: очень сложно нажать кнопку сброса, аналоговое питание подключено к цифровому, нет защиты диодом Шоттки для USB и т. д.
- Невозможность работы через STM32Cube из-за поддельного процессора
Основные характеристики микроконтроллера STM32F103C8T6
Теперь, когда мы немного узнали о плате Blue Pill, давайте теперь разберемся с некоторыми важными особенностями сердца платы, то есть микроконтроллера STM32F103C8T6. Как упоминалось ранее, этот MCU содержит 32-битное ядро процессора ARM Cortex-M3 с максимальной частотой 72 МГц.
Давайте теперь посмотрим на некоторые характеристики этого микроконтроллера, реализованного на плате Blue Pill.
- Память: содержит 64 Кбайт Flash и 20 Кбайт SRAM.
- Выводы GPIO — 32 с возможностью внешнего прерывания
- Таймеры — 3 16-битных таймера, 1 16-битный таймер ШИМ
- Контакты ШИМ – 15
- Аналоговый — 10 каналов 12-битного АЦП
- I2C – 2 периферийных устройства I2C
- USART – 3 периферийных устройства USART с аппаратным управлением
- SPI – 2 периферийных устройства SPI
- Другая периферия — полноскоростной USB 2.0, CAN 2.0B.