Популярная плата разработчика STM32F4DISCOVERY* - открытый проект [1], и каждый желающий может заказать себе такую печатную плату на JLCPCB и собрать её самостоятельно [2].
Примечание *: новое название для этой платы STM32F407G-DISC1.
Схема STM32F4DISCOVERY довольно сложная и в ней много дефицитных компонентов, но если необходим только работоспособный микроконтроллер STM32F407, то можно собрать только часть схемы.
RefDes
Ном.
Описание
R23
47
Подача напряжения питания на VREF+, выв. 21 STM32F407VGT6.
R24
220
Через этот резистор ножка выхода кварцевого генератора HSE (выв. 13 STM32F407VGT6) соединена с кварцевым резонатором X2 8 МГц.
Резистор для эмуляции питания VBAT (выв. 6 STM32F407VGT6), подает на эту ножку +3V от VDD. Если функция энергонезависимой памяти не используется, то этот резистор можно не устанавливать. Также этот резистор не устанавливается, если для VBAT используется батарейное питание.
Перемычка, соединяющая с землей ножку питания VSS (выв. 99 STM32F407VGT6).
R30
510
Резистор, через который можно подать лог. 0 на ножку BOOT0 (выв. 94 STM32F407VGT6), если замкнуть перемычку SB18. По умолчанию эта перемычка должна быть замкнута, что обеспечивает при сбросе загрузку программы из FLASH микроконтроллера.
R31
10k
Резистор, через который на ножку BOOT0 подается лог. 1 от VDD (+3V).
R32
510
Резистор, через который можно подать лог. 0 на ножку BOOT1/PB2 (выв. 37 STM32F407VGT6), если замкнуть перемычку SB19. По умолчанию эта перемычка не должна быть замкнута, что обеспечивает при сбросе загрузку программы из FLASH микроконтроллера.
Резистор, через который на ножку BOOT1/PB2 подается лог. 1 от VDD (+3V).
R35
330
Защитный резистор, соединяющий кнопку пользователя B1 User с ножкой порта PA0 через перемычку SB20.
R36
680
Токоограничительный резистор для оранжевого светодиода LD3 (зажигается при выводе лог. 1 на ножку порта PD13).
R38
100
Токоограничительный резистор, ограничивающий ток разряда конденсатора C38 100 nF, возникающий при нажатии кнопки пользователя B1 User. Если С38 не запаян, то R38 запаивать также необязательно.
R37
1.5k
Верхний подтягивающий резистор, подающий лог. 1 на сигнал NRST (если запаяна перемычка SB1). При нажатии на кнопку B2 RESET формируется сигнал сброса NRST.
R39
220k
Через этот резистор на ножку порта PA0 подается лог. 0 (если установлен R35 и запаяна перемычка SB20). Это нагрузочный резистор для кнопки B1 User, на котором появляется лог. 1 при нажатии кнопки.
R40
510
Токоограничительный резистор для зеленого светодиода LD4 (зажигается при выводе лог. 1 на ножку порта PD12).
R41
680
Токоограничительный резистор для красного светодиода LD5 (зажигается при выводе лог. 1 на ножку порта PD14).
R42
Токоограничительный резистор для синего светодиода LD6 (зажигается при выводе лог. 1 на ножку порта PD15).
C14
20pF
Балансировочный конденсатор для кварцевого генератора HSE. Если не нужно обеспечивать точные паспортные значения рабочей частоты кварца, то устанавливать не обязательно.
C15
C21
100nF
Конденсатор фильтра для VREF+ (выв. 21 STM32F407VGT6).
C22
1uF
Конденсатор фильтра для VDDA (выв. 22 STM32F407VGT6).
C23
Конденсатор фильтра для VREF+ (выв. 21 STM32F407VGT6).
C24
100nF
Конденсатор фильтра для VDD (+3V).
C25
Конденсатор фильтра для VDDA (выв. 22 STM32F407VGT6).
C26
Конденсатор фильтра для VDD (+3V).
C28
1uF
Конденсатор фильтра для VBAT (выв. 6 STM32F407VGT6).
C29, C30, C31, C32
100nF
Конденсатор фильтра для VDD (+3V).
C33
2.2uF
Подключается к ножке VCAP1 (выв. 49 STM32F407VGT6).
C34, C35
100nF
Конденсатор фильтра для VDD (+3V).
C36
2.2uF
Подключается к ножке VCAP2 (выв. 73 STM32F407VGT6).
C37
100nF
Фильтр сигнала NRST, подключен параллельно кнопке B2 Reset.
L1
cm1608-0603
Фильтр для VREF+ и VDDA.
SB1
Перемычка, через которую подается сигнал сброса NRST, генерируемый кнопкой B2 Reset. Нужно запаять.
SB18
Подает лог. 0 на BOOT0 (выв. 94 STM32F407VGT6). По умолчанию должна быть запаяна, чтобы при сбросе выполнялась программа из FLASH.
SB20
Перемычка, размыкание которой позволяет освободить ножку порта PA0 от сигнала кнопки B1 User.
LD3
Orange
Оранжевый светодиод в корпусе 0603 (зажигается при выводе лог. 1 на ножку порта PD13).
LD4
Green
Зеленый светодиод в корпусе 0603 (зажигается при выводе лог. 1 на ножку порта PD12).
LD5
Red
Красный светодиод в корпусе 0603 (зажигается при выводе лог. 1 на ножку порта PD14).
LD6
Blue
Оранжевый светодиод в корпусе 0603 (зажигается при выводе лог. 1 на ножку порта PD15).
B1
User
Кнопка, нажатие на которую подает лог. 1 на ножку порта PA0 (если запаяна перемычка SB20 и установлен резистор R35).
B2
Reset
Кнопка, нажатие на которую вызывает генерацию сигнала NRST и сброс STM32F407VGT6, если запаяна перемычка SB1.
X2
8 МГц
Кварцевый резонатор HSE.
U4
STM32F407VGT6(2)
Микроконтроллер в корпусе LQFP100, 1 мегабайт памяти Flash, 192 килобайт RAM.
Примечания:
(1) Эти резисторы нужно устанавливать только в том случае, если установлена микросхема аудиоинтерфейса U7 CS43L22. (2) Можно установить другой микроконтроллер в таком же корпусе. Например, STM32F407VET6 с 512 килобайт FLASH 192 килобайт RAM.
[Питание]
RefDes
Ном.
Описание
R14
1k
Токоограничительный резистор для светодиода LD2, который показывает наличие питания +3V на плате.
LD2
Red
Светодиод, который показывает наличие питания +3V на плате.
D1
BAT60JFILM
Диод Шоттки, соединяющий шины питания U5V (приходит с ножки 1 коннектора CN1 miniUSB встроенного отладчика ST-LINK) и 5V (вход LDO стабилизатора U1 LD3985M33R).
D3
Диод Шоттки, соединяющий выход LDO стабилизатора U1 LD3985M33R и шину питания 3V.
C1
1uF
Конденсатор фильтра шины питания 5V (вход LDO стабилизатора U1 LD3985M33R).
C2
100nF
C3
1uF
Конденсатор фильтра выхода LDO стабилизатора U1 LD3985M33R.
С4
100nF
С5
10nF
Конденсатор, подключенный между GND и выв. 4 стабилизатора U1 LD3985M33R.
U1
LD3985M33R
LDO стабилизатор +3.3V.
У меня не было LD3985M33R, и я заменил его на NCP1117ST33T3G в корпусе SOT-223, прорезав на фольге заливки GND дополнительные контактные площадки.
[Отладчик]
Внешний отладчик SWD. Чтобы иметь возможность отладки с помощью внешнего ST-LINK, необходимо запаять коннектор CN2 SWD, резисторы R12, R15, коннектор для перемычек CN3, перемычки SB3, SB5, SB7, SB9.
Обратите внимание, что для подключения к отладчику через интерфейс SWD нужно только 3 провода - GND, SWCLK (сигнал T_JCLK на схеме) и SWDIO (сигнал T_JTMS на схеме). Поэтому резисторы R13, R16, R17, перемычки SB11 и SB12 запаивать не обязательно.
RefDes
Ном.
Описание
R12
22
Защитный резистор, соединен последовательно с сигналом T_JTCK. Соединяется с сигналом TCK/SWCLK через перемычки SB3, SB5, 1-2 CN3 и в конечном итоге приходит на ножку порта PA14 (выв. 76 STM32F407VGT6).
R13*
10k
Не знаю, зачем этот резистор, устанавливать его не обязательно.
R15
22
Защитный резистор, соединен последовательно с сигналом T_JTMS. Соединяется с сигналом TMS/SWDIO через перемычки SB7, SB9, 3-4 CN3 и в конечном итоге приходит на ножку порта PA13 (выв. 72 STM32F407VGT6).
R16*
22
Защитный резистор, соединен последовательно с сигналом T_NRST. Соединяется с сигналом NRST через перемычку SB11 и в конечном итоге приходит на выв. 14 STM32F407VGT6.
R17*
22
Защитный резистор, соединен последовательно с сигналом T_SWO. Приходит на ножку порта PB3 через перемычку SB12 (выв. 89 STM32F407VGT6).
Примечание *: для отладки через интерфейс SWD эти компоненты не нужны.
Встроенный ST-LINK. На плате STM32F4DISCOVERY разведен свой отладчик, и если Вы захотите его собрать, то ничто не может помешать это сделать.
RefDes
Ном.
Описание
R1
0
Перемычка, соединяющая анод красного компонента двухцветного светодиода L1 с шиной питания 3V.
R3
100
Токоограничительный резистор для зеленого компонента двухцветного светодиода LD1.
R4
100
Токоограничительный резистор для красного компонента двухцветного светодиода LD1.
R6
10k
Board Ident: PC13=0. Назначение этого резистора мне непонятно. Подает лог. 0 на ножку порта PC13 микроконтроллера отладчика STM32F103CBT6.
R7
100k
Подает лог. 0 на ножку BOOT0 микроконтроллера отладчика STM32F103CBT6.
R8
Подает лог. 0 на ножку ID коннектора miniUSB отладчика, CN1 выв. 4.
R9
1.5k
Подает +3V на ножку D+ коннектора miniUSB отладчика, CN1 выв. 3. Это необходимо, чтобы хост PC определил встроенный отладчик как устройство USB High Speed.
Защитный резистор, соединен последовательно с сигналом T_JTCK. Соединяется с сигналом TCK/SWCLK через перемычки SB3, SB5, 1-2 CN3 и в конечном итоге приходит на ножку порта PA14 (выв. 76 STM32F407VGT6).
R15
22
Защитный резистор, соединен последовательно с сигналом T_JTMS. Соединяется с сигналом TMS/SWDIO через перемычки SB7, SB9, 3-4 CN3 и в конечном итоге приходит на ножку порта PA13 (выв. 72 STM32F407VGT6).
R18
100k
RC-цепочка сброса, подает лог. 1 на ножку NRST микроконтроллера отладчика (выв. 7 корпуса LQFP48 STM32F103CBT6).
R19
4.7k
Делителя напряжения R19R20, подает половину напряжения 3V на вход PA0 (AIN_1) микроконтроллера STM32F103CBT6.
R20
R68
100
Через этот резистор микроконтроллер отладчика STM32F103CBT6 может генерировать тактовый сигнал MCO (Microcontroller Clock Output) для микроконтроллера STM32F407VGT6. Если эта функция не нужна (для STM32F407VGT6 используете HSE на кварце 8 МГц или HSI), то этот резистор устанавливать не обязательно (он находится с обратной стороны платы).
R69
Назначение этого резистора мне неизвестно. Устанавливается с обратной стороны платы.
C7, C8, C10, C12
100nF
Фильтрация шины питания 3V микроконтроллера STM32F103CBT6.
C11
Часть RC-цепочки сброса, см. R18.
C6, C9
20pF
Конденсаторы на кварце X1 8 МГц. Эти конденсаторы устанавливать не обязательно.
Эти перемычки находятся на обратной стороне платы. Их необходимо запаять, они вместе с перемычкой на коннекторе CN3 отвечают за прохождение сигнала SWCLK отладчика.
SB7, SB9
Эти перемычки находятся на обратной стороне платы. Их необходимо запаять, они вместе с перемычкой на коннекторе CN3 отвечают за прохождение сигнала SWDIO отладчика.
D1
BAT60JFILM
Диод Шоттки, соединяет ножку VCC коннектора miniUSB (выв. 1 CN1) с шиной питания 5V. Подает напряжение на вход стабилизатора +3.3V U1 (см. выше описание сборки питания).
U2
STM32F103CBT6
Микроконтроллер встроенного отладчика ST-LINK.
После сборки прошейте микроконтроллер U2 через его встроенный загрузчик UART. Процедура прошивки и её обновления описана в статье [3].
Если выбрать прошивку STM32+MSD+VCP, то вместе с отладчиком ST-Link получается очень виртуальный COM-порт (комбинированное устройство USB), который очень удобно использовать как консоль терминала. Компьютер хоста отладки может посылать и принимать символьные сообщения через USART2 отлаживаемого микроконтроллера U4 STM32F407VGT6.
Замечание: вариант STM32+MSD+VCP подойдет в том случае, если у Вас STM32F103 с памятью программ 128 килобайт (STM32F103CBx или китайский чип STM32F103C8x). Если же размер памяти 64 килобайта (STM32F103C8x), то вместо варианта STM32+MSD+VCP выберите STM32+Audio, у него тоже реализован VCP. Подробно про обновление прошивки ST-Link см. статью [3].
Если Вы планируете использовать микроконтроллер STM32F407VGT6 в качестве хоста USB, либо как устройство с выбираемой ролью (OTG), то необходимо установить несколько дополнительных компонентов, перечисленных в таблице ниже.
RefDes
Ном.
Описание
R45
10k
Верхний подтягивающий резистор для сигнала ~EN микросхемы U6 STMPS2141STR (ключ питания USB OTG).
R46
0
Перемычка, соединяющая сигнал ~EN ключа питания U6 с ножкой порта PC0 микроконтроллера STM32F407VGT6. Если этот резистор не устанавливать, то на разъеме CN6 microUSB никогда не появится питание VBUS для подключаемых к хосту STM32F407VGT6 внешних устройств USB.
R50
Перемычка, соединяющая сигнал перегрузки по току ~FAULT ключа U6 с ножкой порта PD5 микроконтроллера STM32F407VGT6.
R51
47k
Верхний подтягивающий резистор для сигнала перегрузки по току ~FAULT ключа U6.
R56
Через этот резистор подается упраляющее напряжение на базу транзистора T1 от VBUS коннектора CN5 microUSB.
R58
22
Резистор, через который проходит сигнал D- USB. Служит в качестве фильтра и защиты вместе с микросхемой U8.
R59
0
Перемычкка, соединяющая синал ID коннектора CN5 microUSB и ножку порта PA10 микроконтроллера STM32F407VGT6. Если этот резистор не устанавливать, то микроконтроллер не сможет с помощью ID переключать свою роль устройство/хост (функция OTG), т. е. может работать либо только как хост, либо устройство USB.
R60
22
Резистор, через который проходит сигнал D+ USB. Служит в качестве фильтра и защиты вместе с микросхемой U8.
R66
330
Токоограничительный резистор для светодиода LD7.
R67
620
Токоограничительный резистор для светодиода LD8.
LD7
Green
Зеленый светодиод, показывающий наличия питания VBUS на коннекторе CN5 microUSB.
LD8
Red
Красный светодиод, показывающий перегрузку по току по шине питания VBUS коннектора CN5 microUSB.
T1
9013
Транзистор, который управляет свечением светодиода LD7.
U6
STMPS2141STR
Ключ питания шины VBUS коннектора CN5 microUSB, с функцией защиты от перегрузки по току.
U8
EMIF02-USB03F2
Фильтр помех и защита для сигналов интерфейса CN5 microUSB.
CN5
475900001
Коннектор microUSB интерфейса USB OTG(1).
Примечание (1): обратите внимание, что этот коннектор особый, "перевернутый". Обычные коннекторы microUSB не подойдут, потому что имеют обратную разводку ножек посадочного места. Не перепутайте!
Как вариант, можно взять обычный разъем microUSB, и припаять его наоборот, кверху ножками:
Интерфейс USB OTG использует ножки портов PA9, PA10, PA11, PA12, PC0, PD5.
Порт
Описание
PA9
Вход микроконтроллера STM32F407VGT6, показывает уровень на шине питания VBUS коннектора CN5 microUSB OTG.
PA10
Вход микроконтроллера STM32F407VGT6, сигнал идентификации OTG. Если на нем низкий уровень, то это означает роль хоста USB для микроконтроллера STM32F407VGT6, иначе это роль устройства USB.
PA11
Сигнал данных D- коннектора CN5 microUSB OTG.
PA12
Сигнал данных D+ коннектора CN5 microUSB OTG.
PC0
Выход микроконтроллера STM32F407VGT6, управляющий сигнал ~EN для ключа U6. Если на PC0 лог. 0, то на VBUS коннектора CN5 microUSB подается напряжение питания +5V.
PD5
Вход микроконтроллера STM32F407VGT6, показывает перегрузку по току шины питания VUSB коннектора CN5 microUSB.