Плата разработчика 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

Цена: 2.82$ + 0.63$ = 3.45$
Цена: 3.98$ + 0.63$ = 4.61$

Цена: от 4.09$

Камень (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

Разъем 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
*Пока что не проверено.

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

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

minif4_stm32f401_stm32f411_board.step

Выбор режима загрузки

Внутрисхемное программирование

ISP - In-System Programing

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

Обновление прошивки

DFU - Device  Firmware Update

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

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

ПО: STM32CubeProg

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

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

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

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

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

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

Видеобзор

Итого

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

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

1172
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/ Нигде такого нет :)

Загрузка...