В течение многих лет так называемая плата для разработки MCU STM32 «Blue Pill» была основным продуктом в сообществе любителей. Находя свое происхождение как явный клон Maple Mini, миниатюрная плата легко используется в макетных проектах благодаря двум рядам 0,1-дюймовых контактных разъемов. Лучше всего то, что он стоит всего несколько долларов, даже если вы действительно можете купить его только у продавцов на AliExpress и EBay.
Начиная с прошлого года, начали появляться платы с черной паяльной маской и микроконтроллеры серии STM32F4 Access (начального уровня), включая F401 и F411. Эти доски с никнеймом «Черная таблетка» или «Черная таблетка 2». Платы F103 также некоторое время существовали с черной паяльной маской, поэтому это сбивает с толку. F4xx Black Pills доступны через те же источники, что и Blue Pill на базе F103, по той же цене, но имеют значительно более новый и мощный MCU. В связи с этим возникает вопрос, имеет ли смысл на данном этапе переходить на эти новые доски.
Наш ответ - да, но он не совсем однозначен. Новое аппаратное обеспечение лучше подходит для большинства целей, ему действительно не хватает только двойных АЦП F103. Но аппаратное обеспечение - не единственное соображение; в зависимости от предпочитаемой среды поддержка может отсутствовать или быть неполной. Итак, давайте посмотрим, что нужно для переключения.
Оборудование
MCU F4 имеют значительно лучшие характеристики, чем F103, с более высокой тактовой частотой, большим объемом флэш-памяти и большим объемом SRAM. Всего у нас есть три MCU для сравнения на старой и новой платах:
- F103: 72 МГц, 64/128 КБ Flash, 20 КБ SRAM. (STM32F103C8T6)
- F401: 84 МГц, 256 КБ Flash, 64 КБ SRAM. (STM32F401CCU6)
- F411: 100 МГц, 512 КБ Flash, 128 КБ SRAM. (STM32F411CEU6)
Ядро Cortex-M в F103 - это M3, тогда как F4xx имеет ядро M4. Для процессорной стороны MCU это фактически означает, что в дополнение к более высоким тактовым частотам мы также получаем ARMv7E-M ISA вместо ARMv7-M M3. Это добавляет арифметические инструкции с полным насыщением, инструкции DSP и дополнительные инструкции с плавающей запятой одинарной точности. И F401, и F411 имеют одноточечный блок FP и, таким образом, гораздо больше подходят для арифметики с плавающей запятой, чем F103.
Более подробные различия можно найти, когда мы смотрим Application Note 4904 (AN4904) от ST: Migration of microcontroller application from STM32F1 Series to STM32F4 Access lines. Этот документ суммирует все различия между двумя семействами микроконтроллеров, заслуживающие внимания при переходе от одного к другому, будь то расположение физических контактов, периферийные устройства или загрузчик.
Здесь самые большие изменения, вероятно, касаются схемы памяти, а также количества определенных типов периферийных устройств. Не стесняйтесь сравнивать вместе с нами на блок-схемах.
Внутренняя блок-схема STM32F103.
внутренняя блок-схема stm32F411.
Существенным отличием F103 от F4xx является то, что периферийные устройства GPIO были перемещены с расширенной периферийной шины (APB) на AHB. AHB - это высокопроизводительная шина для операций с высокой пропускной способностью и малой задержкой. Он подключен непосредственно к ядру Cortex-M через матрицу шины AHB. С другой стороны, APB представляет собой более простую шину без пакетных операций. Для доступа к периферийным устройствам на APB из ядра Cortex-M требуется, чтобы инструкции передавались через мост AHB-APB в APB.
Это должно означать, что операции GPIO выполняются быстрее на микроконтроллерах F4xx, особенно при высокочастотных операциях. Кроме того, мультиплексирование контактов ввода-вывода на микроконтроллерах F4xx изменилось, чтобы разрешить определение только одной альтернативной функции (AF) для одного контакта GPIO. Это соответствует интеграции регистров AF в периферийное устройство GPIO.
Большие изменения также наблюдаются в периферийном устройстве RTC, которое в семействе STM32F1 представляет собой простой 32-разрядный счетчик с программируемым предделителем и аварийным регистром. На STM32F4xx периферийное устройство RTC реализует полный календарь с секундами, секундами, минутами, часами, днями, месяцами и годами. Он также имеет сигнал тревоги, который может быть активирован любым из этих полей календаря, а также функцию отметки времени события и схему цифровой калибровки.
Хотя DMA, интерфейс FLASH и Прерывания также претерпели некоторые изменения. довольно незначительный и имеет значение только при программировании на «голом железе». Единственная проблема с чипами F4xx заключается в том, что вместо двух 12-разрядных АЦП с 16 общими каналами F401 и F411 имеют один 12-разрядный АЦП. Для торговли АЦП немного быстрее на F4xx (2,4 Мвыб/с по сравнению с 2 Мвыб/с на F103) и имеет более низкие требования к минимальному напряжению питания 1,7 В -1,8 В.
Таблетки
Сравнение синих и черных таблетированных досок. Клонируйте STM32F103 вверху и STM32F411 внизу.
Различия между двумя платами весьма существенны, даже если не считать цвета паяльной маски. Плата, которую я здесь сравниваю, - это версия STM32F411, которая, кстати, оказалась самой популярной версией, когда я искал эти платы на немецком веб-сайте Amazon.
Разъем USB изменен с micro USB-B на USB-C, корпус MCU представляет собой 48-контактный UFQFPN вместо 48-контактного LQFP, мы получаем дополнительную пользовательскую кнопку, а генераторы HSE и LSE значительно меньше. Контакты режима загрузки исчезли, но вместо них появилась кнопка режима загрузки. Мы сохранили тот же управляемый пользователем светодиод на PC13, но разводка контактов на сторонах плат не совместима на 100%. Наконец, один контакт «Земля» был заменен контактом 5 В. (!)
Переворачивая платы, можно сказать, что плата F103 имеет кучу пассивных элементов и одну микросхему, в то время как плата F411 чистая, за исключением основания для SPI ROM, которое подходит, например, для W25Q32JVSSIQ 32 Мбит SPI Flash ROM. Это можно использовать для добавления конфигурационного ПЗУ или чего-то подобного.
Нижняя сторона плат F103 Blue Pill и F411 Black Pill.
Помимо этих различий, программирование и отладка платы остаются прежними. Можно использовать последовательное программирование с оригинальными микроконтроллерами STM32, отладку по одному проводу (SWD) через четырехконтактный разъем или порт USB, если установлен подходящий загрузчик. Также доступна схема платы, которая называется «MiniF4». Эта схема также показывает, что без извлечения цифрового мультиметра пользовательская кнопка подключена к PA0 без подтягивающего или подтягивающего резистора.
Программное обеспечение
Семейство микроконтроллеров STM32F4 полностью поддерживается файлами устройств ST CMSIS F4, а также его структурой уровня аппаратной абстракции (HAL). Некоторые могут предпочесть использовать программное обеспечение ST STM32CubeMX для автоматического создания конфигурации оборудования и кода установки.
STM32Duino также показывает, что поддерживаются платы F401 и F411. Те, кто более склонен возиться с крошечными неядовитыми змеями, должны с облегчением узнать, что существует несколько определений MicroPython для плат, для F401 и F411, а также это определение платы MicroPython для версии платы F411. Это означает, что, по крайней мере, для Arduino и MicroPython существующий код для плат F103 должен работать с минимальными изменениями на платах F401 и F411, учитывая возможные изменения контактов GPIO и AF.
В моем собственном проекте Nodate STM32 я также добавил определение платы для версии платы F411. Дело в том, что эти платы «Pill» являются такими базовыми платами для микроконтроллеров STM32, что требуется очень небольшая поддержка. Помимо MCU на плате есть только светодиод на PC13 и переключатель на PA0, если ваша инфраструктура относится к типу, который абстрагируется от таких деталей.
Вывод
Приходит время, когда нужно двигаться дальше. Учитывая, что STM32F103 является частью первого поколения микроконтроллеров ST на базе Arm Cortex-M, это уже должно намекать на то, что, возможно, пришло время для Cortex-M3. Как я отмечал в своей недавней статье о чипах-клонах STM32F103, поставки плат F103 «Blue Pill» в последнее время наводнены подделками, клонами и наглыми имитациями подлинного STM32F103. Это затрудняет даже получение такой доски. Если кто-то не готов проверить и принять некоторые из этих (по общему признанию, неплохих) микроконтроллеров-клонов F103.
Между тем эти платы «Black Pill» на базе F401/F411, похоже, пока не имеют проблем с клонами или подделками, стоят примерно столько же за единицу, как и более старая «Blue Pill» F103, и если вы абсолютно нужен второй блок АЦП, это лучшая сделка во всех отношениях. Поддержка программного обеспечения также не должна создавать препятствий, даже такие детали, как пользовательский светодиод, используют тот же самый контакт.
Просто убедитесь, что вы помните немного другую распиновку плат F4xx (т. е. новый контакт 5 В), и дважды проверьте справочное руководство F401 или F411, чтобы убедиться, что Использование в проекте остается на тех же выводах после перекомпиляции для новой платы. Для новых проектов использование этих новых досок кажется легкой задачей, поэтому я уверен, что буду запасаться ими.
Как будет выглядеть ваш запас дешевых плат для разработки STM32 в ближайшие годы? Перейдете ли вы на микроконтроллеры F4 или останетесь с платами F103, хотя бы потому, что однажды купили 75 из них на аукционе и до сих пор их не израсходовали? Есть ли у вас какие-либо особые варианты использования, которые делают F103 более подходящим для ваших проектов? Пожалуйста, сообщите нам об этом в комментариях.