Сборка STM32F4DISCOVERY Печать
Добавил(а) microsin   

Популярная плата разработчика STM32F4DISCOVERY* - открытый проект [1], и каждый желающий может заказать себе такую печатную плату на JLCPCB и собрать её самостоятельно [2].

Примечание *: новое название для этой платы STM32F407G-DISC1.

Схема STM32F4DISCOVERY довольно сложная и в ней много дефицитных компонентов, но если необходим только работоспособный микроконтроллер STM32F407, то можно собрать только часть схемы.

STM32F4DISCOVERY assembly main MCU

RefDes Ном. Описание
R23 47 Подача напряжения питания на VREF+, выв. 21 STM32F407VGT6.
R24 220 Через этот резистор ножка выхода кварцевого генератора HSE (выв. 13 STM32F407VGT6) соединена с кварцевым резонатором X2 8 МГц.
R25 0 Перемычка, соединяющая ножку входа кварцевого генератора HSE (выв. 12 STM32F407VGT6) с кварцевым резонатором X2 8 МГц.
R26 ? Резистор для эмуляции питания VBAT (выв. 6 STM32F407VGT6), подает на эту ножку +3V от VDD. Если функция энергонезависимой памяти не используется, то этот резистор можно не устанавливать. Также этот резистор не устанавливается, если для VBAT используется батарейное питание.
R27(1) 4.7k Подтяжка сигнала SDA (ножка порта PB9 STM32F407VGT6).
R28 0 Перемычка, соединяющая с землей ножку питания 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 микроконтроллера.
R33(1) 4.7k Подтяжка сигнала SCL (ножка порта PB6 STM32F407VGT6).
R34 10k Резистор, через который на ножку 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.

[Питание]

STM32F4DISCOVERY power

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 дополнительные контактные площадки.

STM32F4DISCOVERY power replace U1

[Отладчик]

Внешний отладчик 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 запаивать не обязательно.

STM32F4DISCOVERY external SWD debug top

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 разведен свой отладчик, и если Вы захотите его собрать, то ничто не может помешать это сделать.

STM32F4DISCOVERY internal SWD debug top

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.
R10 0 Перемычка, соединяет ножку D+ коннектора miniUSB отладчика, CN1 выв. 3, с сигналом USB_DP (ножка порта PA12, выв. 33 корпуса LQFP48 микроконтроллера отладчика STM32F103CBT6).
R11 Перемычка, соединяет ножку D- коннектора miniUSB отладчика, CN1 выв. 2, с сигналом USB_DM (ножка порта PA11, выв. 32 корпуса LQFP48 микроконтроллера отладчика STM32F103CBT6).
R12 22 Защитный резистор, соединен последовательно с сигналом 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 МГц. Эти конденсаторы устанавливать не обязательно.
X1 8 МГц Кварцевый резонатор HSE микроконтроллера отладчика STM32F103CBT6.
SB3, SB5   Эти перемычки находятся на обратной стороне платы. Их необходимо запаять, они вместе с перемычкой на коннекторе 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].

Схема соединений получается следущая:

[U2 STM32F103CBT6 ST-LINK]            [U4 STM32F407VGT6]
          PA2 TX ------------ > ----------- PA3 RX
          PA3 RX ------------ < ----------- PA2 TX

 

ST LINK STM32F4DISCOVERY connections to VCP

ST LINK STM32F4DISCOVERY connections to VCP

[Интерфейс USB OTG]

Если Вы планируете использовать микроконтроллер 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 не подойдут, потому что имеют обратную разводку ножек посадочного места. Не перепутайте!

STM32F4DISCOVERY microUSB top STM32F4DISCOVERY microUSB forward STM32F4DISCOVERY microUSB bottom

Как вариант, можно взять обычный разъем microUSB, и припаять его наоборот, кверху ножками:

microUSB solder vice versa

Интерфейс 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.

[Ссылки]

1. STM32F407G-DISC1 CAD Resources site:st.com.
2. en.mb997_manufacturing.zip - печатная плата и схема, Gerber-файлы STM32F4DISCOVERY.
3. Обновление прошивки ST-LINK на плате STM32 DISCOVERY.