Плата разработчика MiniF4 на STM32F411 с USB Type-C

Основные параметры

Частота: до 100 МГц
Количество выводов: 36 (без VSS, VDD)
ПЗУ: 512 кБ
ОЗУ: 128 кБ
Таймеры: 11 таймеров + RTC
Возможность подключения:
USART (3x до 12.5 Мб/с)
SPI (5x до 50 Мб/с)
I²C (3x до 1 Мб/с)
SDIO (3x до 1 Мб/с)
USB 2.0 OTG (1x)
I²S (2x до 32 бит/192 кГц дуплексный)
I²S (3x до 32 бит/192 кГц односторонний)
АЦП: 12-бит 2.4 MSPS
Техпроцесс: 90 нм
Тип разъема: USB Type-C
Размеры платы: 52.81 x 20.78 x 1.6 мм
Масса: 6.8 г
Цена: от 4$

Купить на Aliexpress


🛒 STM32F401 Module ($2.97)


Камень (STM32F411CE6 VS STM32F401CC)

На такой платке может быть установлен STM32F401 или STM32F411 с ядром Cortex-M4, главное отличие в объёмах памяти и наличии у старшего интерфейса SDIO для подключения карт памяти. Оба в корпусе UFQFPN48 (7x7x0.5 мм).

При покупке поштучно цена 2.2$/шт.

STM32F411CE6 
STM32F401CС
Тактовая частота до 100 МГц до 84 МГц
ПЗУ/ОЗУ 512 кБ/128 кБ 256 кБ/64 кБ
SPI 5 3
I2S 2 5
SDIO 1 -
UART 3 3
TIM 8 8

Дефицит электронных компонентов 

Ввиду значительного не только подорожания, но и вообще невозможности в крупных партиях достать микроконтроллеры платка STM32F401 (84MHz, 64k RAM, 256k ROM, 3*SPI, 3*UART, 8*TIM...) стала, пожалуй, самой доступной для самопальных (и не только) устройств, поэтому советую брать именно её, т.к. цена 3$ сейчас кажется очень адекватной .


?️ STM32F401 Module (3.50?): https://ali.ski/T9_RBe
?️ STM32F401 Black Pill USB C(3.88?): https://ali.ski/wvygW

?️ STM32F401 DevBoard Type-C (3.46?): https://ali.ski/SvrJ8d


Разъем USB Type-C

Ну наконец-то.

Пока даже у официальных плат Nucleo древний mini-USB или в лучшем случае micro-USB, здесь установили самый универсальный разъем USB-C, распространенность которого будет только расти.

Место под память W25QXX

Сзади заботливо сделана площадка под память SPI-Flash W25QXX с конденсатором по питанию. Это крайне полезно, ведь с таким заряженным МК захочется подключить экранчик, а графика много весит.

Рабочий пример виртуального COM-порта

На гитхабе есть пример с открытым исходным ходом виртуального последовательного порта с использованием библиотеки  HAL вместе с проектом STM32CubeMX.

Это позволит с легкостью применить такую полезную возможность как подключение к другим устройствам через USB без дополнительного преобразователя.

Это программа зашита по умолчанию. Подключив платку к ПК и открыв терминал будет отправляться время и дата, а при нажатии кнопки - текст (единичное нажатие/двойное нажатие/длинное нажатие).

Принципиальная схема (вер. 2.1)

Назначение выводов

Файл посадочного места (footprint)

footprint_stm32f401_stm32f411_dev_board.PcbDoc
*Пока что не проверено.

Файл посадочного места микросхемы (footprint)

В настоящих устройствах будет использоваться именно микросхема:

Поэтому ловите проверенное посадочное место под STM32F401/STM32F411 в корпусе UFQFPN-48 (7x7mm, P0.5mm) для KiCad:

Скачать можно в телеграмме-канале CXEMKAhttps://t.me/cxemka_com/20

UFQFPN-48_7x7mm_P0.5mm.kicad_mod
UFQFPN-48_7x7mm_P0.5mm.step

Объемная трехмерная модель платы

Некоторые любительские устройства делают полностью модульными, то есть на плату вставляются/припаиваются готовые китайские модули. В некоторых случаях это удобно и намного проще, поэтому ловите упрощенную, но красивую модельку платы, ну а посадочное место есть выше.

minif4_stm32f401_stm32f411_board.step

Прошивка через USB

DFU - Device Firmware Update

Режим DFU: подключите через USB-кабель плату к ПК.

Когда питание включено, нажмите кнопки BOOT0 и NRST, затем отпустите NRST и через 0.5 с отпустите BOOT0. Повторите несколько раз, может сработать не с первого раза.

Далее открываете STM32CubeProgrammer и выбираете USB.

Прошивка через UART

Когда питание включено, нажмите кнопки BOOT0 и NRST, затем отпустите NRST и через 0.5 с отпустите BOOT0.

ОБНОВЛЕНИЕ от 09.09.2023: питать именно от 5В, если на USB-COM преобразователе нет отдельного линейного стабилизатор питания (встроенный может не тянуть)

Закинуть прошивку можно через STM32CubeProgrammer (можно взять в ТГ-канале).

Режим последовательного порта:

MiniF4 USB-COM
PA9 (TX)
<-> RX
PA10 (RX) <-> TX

*схемы и инструкция с гитхаба: https://github.com/WeActTC/MiniF4-STM32F4x1

Пример создания проекта в STM32CubeMX

Здесь:https://cxemka.com/145-generator-koda-proektov-stm...

Сравнение с синей пилюлей

Плата спроектирована по размерам точно такой же, как и синяя пилюля, но полной совместимости нет (выводы совпадают не все). Все переработано:

  • новый разъем;
  • все компоненты меньше по размерам (особенно выделяются кварцевые резонаторы и стабилизатор напряжения);
  • выбор режима загрузки с помощью кнопок, а не перемычек
  • есть дополнительная пользовательская кнопка;
  • по умолчанию зашита проверочная прошивка (программный ШИМ, действия по нажатию на кнопки и виртуальный COM-порт);

Микросхема отдельно

Для тех кто в дальнейшем планирует после макетирования делать свою плату, оцените размеры микросхемы:

Выпаять её с помощью одного только паяльника не получится, нужен либо термофен, либо утюг:

Массивная подложка снизу:

Качество пайки

Все на уровне.

Видеобзор

Итого

Однозначно лучшая из доступных отладочных плат разработчика STM32, которая позволит осуществить серьезные проекты  без экономии каждого байта.

Делаются мелкие исправления и последняя на сегодняшний день существующая версия 3.0 от 10.03.2020 (у меня же 2.1).

42554
RSS
Александр
11:13

День добрый! У меня версия V3.0, при подключении определяется с идентификатором 0483:572A (на видео идентификатор 0483:5740) и драйвера последовательного порта не подключаются… паленый чип или напортачили в тестовой прошивке?

12:44

копия ответа с ютуба

Вряд ли.

Идентификатор можно вручную поменять, файл usbd_desc.c
(строка 69: #define USBD_PID_FS 22336 // 0x5740)

Я у себя поменял на ваш и также все прекрасно установилось.

Можете попробовать поставить те, что у меня: https://yadi.sk/d/As92-hfZ9sl6tQ

Проверьте наличие: C:\Windows\System32\drivers\usbser.sys
Если есть, то вручную поставить: Обновить драйвер -> Вы. поиск… -> Выбрать… -> Устройство с последо...

Винда то хоть десятая?

Александр
13:10

Винда7х64, файл драйвера присутствует в системе, но его не предлагает для ручной установки для нового устройства, ни в разделе "(Стандартные)", ни в разделе «Microsoft»… Я бы его с удовольствием подключил, но система его не дает выбрать.

Студию разработки пока не поставил, плату только вчера получил, как поставлю попробую загрузить ваш проект, но пока хотелось бы разобраться, что именно сломано в системе и как решить такую проблему на будущее.

Спасибо за советы, буду пробовать!

13:55

Ничего не сломано, вот: https://stackoverflow.com/questions/41541655/custom-usb-vid-pid-make-windows-7-8-automatically-choose-usbser-sys-driver

Скорее всего, если поставить те, которые должны быть по умолчанию, то заработает и на семерке сразу.

У вас есть ST-LINK? Программу можно зашить с помощью ПО:

STM32CubeProgramer

STM32 ST-LINK Utility

Сделать это можно еще и через UART.

Александр
15:28

ST-LINK будет только в понедельник.

По-умолчанию система определяет устройство как «USB-устройство ввода», а не как последовательный порт. При попытке выбрать драйвер вручную система не предлагает мне нужный вариант, его просто нет в списке. Фирменные драйвера от ST не поддерживают нужный идентификатор, соответственно тоже не подхватываются. Попытка вручную написать inf файл для usbser выводит сообщение об ошибке работы устройства с кодом 10.

Пока получилось перевести в DFU, подскажите каким софтом можно попробовать залить прошивку этим методом?

Александр
16:34

Спасибо, справился с платой и подключением! Подробности отдельным постом ниже!

00:53

вот и отлично)

Александр
16:32

Поставил STM32CubeIDE, собрал пример от WeAct, без всяких правок кода (там по умолчанию правильный идентификатор). Скачал и освоил DfuSeDemo по статье с хабра. Залил в плату (напомню на ней версия 3.0 написана), предварительно перевел ее в режим DFU кнопками и все заработало! Стали фирменные драйвера, открылся последовательный порт, пример работает как часы. По всей видимости с завода залили странный пример, отличавшийся от примера из библиотеки с гитхаба, возможно кроме идентификатора там еще какие-то несовместимые настройки были.

Автору спасибо за наводящий намек про загрузку без программатора!

07:15

Внесу свою лепту, уже давно развлекаюсь с этими платами.

Написал «адаптер» для доступа к Flash из под ST-Link. https://github.com/Spider84/st-link_MX25L25645G/ Нигде такого нет :)

Димон
18:03

Всем привет!

Тоже есть такая плата, работал с ней через ST-Link без проблем, но как-то в процессе переключения проводов рубанулась и перестала реагировать:
— при включении теперь только непрерывно горит красный индикатор, на кнопки не реагирует;

— CubeIDE перепрошивать (через DBG) теперь тоже отказывается, пишет «Failed erase memory», и следом что отладчик отключился.


Вопрос — она окончательно умерла или как-то можно восстановить и как? 

Буду благодарен за ответы! Хорошая была платка, а новую ждать долго....

20:39

Здравствуйте.

Красный СИД это же просто питание, он и должен светиться.

Вообщем-то убить её довольно сложно, так что попробуйте подключить платку через USB в режиме ISP (выше инструкция как жать кнопки). В диспетчере устройств должно отобразиться (Win + R -> devmgmt.msc).

Или через UART с использование преобразователя USB-COM.

Используйте ПО: STM32CubeProgrammer
На андроиде можно использовать STM32Utils

Anatolii
18:51

А вы напряжение 3,3В проверьте при подключенном ЮСБ.

Постоянно под кубовские проекты покупал WeACT STM32F411, даже не задумывался про микропитон. Сейчас это даже дешевле STM32F103...

Но вот случайно обнаружил, что в одной из закупок (10 плат) у всех закрочен стаб из 5 в 3.3В (где-то 1 ом вход-выход). И оно даже работает, с 4,8В на GPIO! Не знаю как долго могло работать, но точно не умерло, выпаял стаб возле ЮСБ разъема, поставил внешний.

RusikOk
16:40

по моему эту плату можно по usb через dfu шить тоже

21:33
RusikOk
21:37

просто идеально

Юрий
22:38

У меня эта плата не завелась по USB через переходник TypeC и MicroUSB. Может быть проблема в них? Я два купил и оба не работают (( Так не бывает. Хотя, если подключиться к плате по ЮСБ через пины — работает плата.

10:14

Питание вообще не поступает?

В наличии нет устройства micro-USB, проверить не могу. Только так

RusikOk
00:01

кто нибудь разгонял этот проц? интересно на какой максимальной частоте он может работать

Евгений
21:52

Добрый день.

У меня плата 3.0

Спалил элемент, много нагрузил, хочу попробовать перепаять может оживлю.

Если расположить плату usb к себе то, элемент ровно над левым краем usb, это толи диод толи стабилитрон, помогите опознать элемент если не трудно. Спасибо. Всех благ.

12:58

Здравствуйте. Там же на схеме все есть. Скорее всего это диод, также мог вылететь и стабилизатор, прозвоните между GND и 3V3:

Александр
23:58

Прекрасная статья! Просто и понятно.

Есть проблема работы с STM32.  Не понятно:

*какие файлы создает CUBE MX

*для чего эти файлы

*Какие файлы нужны для работы в System Workbench

*Какие файлы создает System Workbench for STM32

*Как создать файлы bin для прошивки в STM32CubeProgrammer

Речь идет не о программировании на С или С++, а именно о файловой системе

Кирилл
01:32

Добрый день! 

Отличная статья для начинающих)

Окирпичил свою stm32f411ceu6, Есть ли у вас возможность отправить родную прошивку для  данной платки?

Загрузка...