Π Π°Π±ΠΎΡ‚Π° с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ STM32 Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹Ρ… инструмСнтов для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ. STM32CubeProgrammer β€” ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ПО ΠΎΡ‚ STMicroelectronics, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ программирования, стирания памяти, Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Ρ‡ΠΈΠΏΠ° ΠΈ Π΄Π°ΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· SWD ΠΈΠ»ΠΈ JTAG. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ всС соврСмСнныС сСмСйства STM32 β€” ΠΎΡ‚ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π½Ρ‹Ρ… STM32F0 Π΄ΠΎ флагманских STM32H7 ΠΈ STM32U5, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π½ΠΎΠ²Ρ‹Π΅ Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ с ядрами Cortex-M33 ΠΈ Cortex-M55.

НСсмотря Π½Π° ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятный интСрфСйс, Ρƒ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ вопросы: ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π½Π΅ опрСдСляСтся устройство, ΠΊΠ°ΠΊ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ "ΠΊΠΈΡ€ΠΏΠΈΡ‡" послС Π½Π΅ΡƒΠ΄Π°Ρ‡Π½ΠΎΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΈΠ»ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ чтСния. Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ всС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ сцСнарии использования STM32CubeProgrammer β€” ΠΎΡ‚ установки Π΄ΠΎ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π²Ρ€ΠΎΠ΄Π΅ массового программирования ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с внСшнСй ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ QSPI. ΠœΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Error: No STM32 target found!), ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ настройки для Ρ€Π°Π·Π½Ρ‹Ρ… сСмСйств Ρ‡ΠΈΠΏΠΎΠ² ΠΈ способы ускорСния ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Установка STM32CubeProgrammer: систСмныС трСбования ΠΈ Π½ΡŽΠ°Π½ΡΡ‹

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ STM32CubeProgrammer ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Windows 7/10/11 (32/64-bit), Linux (Ubuntu, Debian) ΠΈ macOS. Однако для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° Windows рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π΅Ρ€ΡΠΈΡŽ Π½Π΅ Π½ΠΈΠΆΠ΅ 10 (1809) β€” Π² Π±ΠΎΠ»Π΅Π΅ старых ОБ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ ST-Link. Π‘ΠΊΠ°Ρ‡Π°Ρ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ с ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ сайта ST (Ρ€Π°Π·Π΄Π΅Π» Get Software). ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: для Linux/macOS доступна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ командная вСрсия (STM32_Programmer_CLI).

ΠŸΡ€ΠΎΡ†Π΅ΡΡ установки стандартный, Π½ΠΎ Π΅ΡΡ‚ΡŒ критичСскиС ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹:

  • πŸ”Ή Π”Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ST-Link: Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ‹ (Nucleo, Discovery, Eval), Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ для встроСнного ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° устанавливаСтся автоматичСски. Для Π²Π½Π΅ΡˆΠ½ΠΈΡ… ST-Link/V2 ΠΈΠ»ΠΈ J-Link ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ручная установка Ρ‡Π΅Ρ€Π΅Π· STSW-LINK009.
  • πŸ”Ή ΠŸΡ€Π°Π²Π° администратора: На Windows установщик Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π² admin для рСгистрации Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ². Π‘Π΅Π· Π½ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Π½Π΅ смоТСт Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ с USB-устройствами.
  • πŸ”Ή ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ IDE: Если Ρƒ вас установлСны Keil, IAR ΠΈΠ»ΠΈ STM32CubeIDE, ΠΈΡ… встроСнныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚. Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ всС IDE ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ.

ПослС установки ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ² ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ ΠΈ запустив STM32CubeProgrammer. Π’ ΠΏΡ€Π°Π²ΠΎΠΌ Π½ΠΈΠΆΠ½Π΅ΠΌ ΡƒΠ³Π»Ρƒ интСрфСйса Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ зСлёная надпись Connected с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½ΠΎΠ³ΠΎ устройства (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ST-Link (V2J32M26)). Если вмСсто этого Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ No target connected, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ "РСшСниС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ".

πŸ“Š ΠšΠ°ΠΊΡƒΡŽ ОБ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с STM32?
  • Windows 10/11
  • Linux (Ubuntu/Debian)
  • macOS
  • Другая ОБ

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹: основныС Π²ΠΊΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΈΡ… Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ STM32CubeProgrammer Ρ€Π°Π·Π΄Π΅Π»Ρ‘Π½ Π½Π° 5 ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π²ΠΊΠ»Π°Π΄ΠΎΠΊ, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π». Рассмотрим ΠΈΡ… ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ:

Π’ΠΊΠ»Π°Π΄ΠΊΠ° НазначСниС ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
Erasing & Programming ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° ΠΈ стираниС памяти Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° .hex/.bin/.elf, Π²Ρ‹Π±ΠΎΡ€ области памяти (Flash, RAM, OTP), настройки скорости записи
Option Bytes ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΎΠΏΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚ΠΎΠ² Настройка Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ чтСния (RDP), ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ бСзопасности, Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² (Boot0/Boot1)
Advanced Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ МассовоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, Ρ€Π°Π±ΠΎΡ‚Π° с QSPI/OSPI, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм
OB (Option Bytes) ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΎΠΏΡ†ΠΈΠΉ Π§Ρ‚Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… настроСк OB, сравнСниС с заводскими значСниями
Log Π–ΡƒΡ€Π½Π°Π» ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ДСтализация ошибок, врСмя выполнСния ΠΊΠΎΠΌΠ°Π½Π΄, отладочная информация

НаиболСС вострСбованной являСтся Π²ΠΊΠ»Π°Π΄ΠΊΠ° Erasing & Programming. Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅:

  • πŸ“ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… .hex (рСкомСндуСтся для ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… сборок), .bin (для Ρ„ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… вСрсий) ΠΈΠ»ΠΈ .elf (с ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΌΠΈ символами).
  • πŸ”„ Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ стирания: Full chip erase (ΠΏΠΎΠ»Π½ΠΎΠ΅ стираниС, Π΄ΠΎΠ»Π³ΠΎΠ΅) ΠΈΠ»ΠΈ Page erase (быстроС, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ указания адрСсов).
  • ⚑ ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½Π°: для STM32H7 ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Π΄ΠΎ 60 MHz, Π½ΠΎ для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ 24 MHz.
πŸ’‘

Если Π²Ρ‹ ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π΅Ρ‚Π΅ Ρ‡ΠΈΠΏ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Full chip erase β€” это Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ очистит всС сСктора памяти, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ "мусорныС" Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ.

Для связи с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ STM32CubeProgrammer ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ нСсколько интСрфСйсов:

  • πŸ”Œ ST-Link (рСкомСндуСтся): ВстроСн Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚ (Nucleo, Discovery) ΠΈΠ»ΠΈ доступСн ΠΊΠ°ΠΊ внСшний Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ (ST-Link/V2, ST-Link/V3). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ SWD ΠΈ JTAG.
  • πŸ”— JTAG: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для слоТных ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… сцСнариСв (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π°Π±ΠΎΡ‚Π° с Cortex-M7 Π² STM32H7). Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 5 сигналов: TDI, TDO, TMS, TCK, GND.
  • πŸ”„ UART Bootloader: ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· USART, Ссли SWD/JTAG нСдоступны. Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π°ΠΊΡ‚ΠΈΠ²Π°Ρ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° (ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠ° Boot0=1).

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· ST-Link:

  1. ΠŸΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρƒ ΠΊ USB-ΠΏΠΎΡ€Ρ‚Ρƒ (для Nucleo ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π°Π·ΡŠΡ‘ΠΌ CN1).
  2. Π’ STM32CubeProgrammer Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Connect (ΠΊΠ½ΠΎΠΏΠΊΠ° Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ).
  3. Если ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅:
    • πŸ”‹ ΠŸΠΈΡ‚Π°Π΅Ρ‚ΡΡ Π»ΠΈ ΠΏΠ»Π°Ρ‚Π° (свСтодиод LD1 Π΄ΠΎΠ»ΠΆΠ΅Π½ Π³ΠΎΡ€Π΅Ρ‚ΡŒ Π·Π΅Π»Ρ‘Π½Ρ‹ΠΌ).
    • πŸ”Œ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π»ΠΈ ST-Link ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π² ДиспСтчСрС устройств Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ STMicroelectronics ST-Link).
    • πŸ”„ НС Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ Π»ΠΈ Ρ‡ΠΈΠΏ ΠΎΠΏΡ†ΠΈΠ΅ΠΉ RDP Level 2 (трСбуСтся ΠΏΠΎΠ»Π½ΠΎΠ΅ стираниС).
Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ST-Link Π½Π΅ опрСдСляСтся?

Если ST-Link Π½Π΅ распознаётся, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅:

1. ΠŸΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Ρ‡Π΅Ρ€Π΅Π· STSW-LINK009.

2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρƒ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ USB-ΠΏΠΎΡ€Ρ‚Ρƒ (ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ USB 2.0).

3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ кабСля (ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π·Π°ΠΌΠ΅Π½Π° Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ).

4. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ ST-Link Ρ‡Π΅Ρ€Π΅Π· ST-Link Upgrade.

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‡Π΅Ρ€Π΅Π· UART Bootloader:

  1. УстановитС ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΡƒ Boot0=1 (Π½Π° ΠΏΠ»Π°Ρ‚Π°Ρ… Nucleo это SB13 ON).
  2. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρƒ ΠΊ COM-ΠΏΠΎΡ€Ρ‚Ρƒ (ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ β€” 115200 Π±ΠΎΠ΄).
  3. Π’ STM32CubeProgrammer Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ UART Π² мСню ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ€Ρ‚.
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· UART Bootloader нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Full chip erase β€” это ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Page erase для Π½ΡƒΠΆΠ½Ρ‹Ρ… сСкторов.

ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°: пошаговая инструкция

ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π² STM32CubeProgrammer состоит ΠΈΠ· 4 основных шагов. Π‘Π»Π΅Π΄ΡƒΠΉΡ‚Π΅ этому Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибок:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ST-Link (Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅)|Π‘ΠΊΠ°Ρ‡Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ .hex ΠΈΠ»ΠΈ .bin|Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½ (RDP Level 0)|Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ всС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ ST-Link (Keil, STM32CubeIDE)-->

1. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ:

  • НаТмитС Browse Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Erasing & Programming ΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ».
  • Для .hex-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° автоматичСски ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ адрСс Π½Π°Ρ‡Π°Π»Π° (0x08000000 для Flash).
  • Если ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ .bin, ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ стартовый адрСс Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 0x08000000 для STM32F4).

2. Настройка стирания:

  • Для ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Full chip erase.
  • Для обновлСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ достаточно Erase sectors (ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ адрСсов).
  • Для STM32H7 с Π΄Π²ΡƒΡ…Π±Π°Π½ΠΊΠΎΠ²Ρ‹ΠΌ Flash Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Bank 1 ΠΈΠ»ΠΈ Bank 2 Π² зависимости ΠΎΡ‚ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ.

3. Запуск ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ:

  • НаТмитС Start Programming.
  • Π’ ΠΎΠΊΠ½Π΅ Π»ΠΎΠ³Π° отобразится прогрСсс: Erasing... β†’ Programming... β†’ Verifying....
  • Если появится ошибка Error: Flash Download failed, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½Π° (ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚Π΅ Π΄ΠΎ 4 MHz) ΠΈΠ»ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ кабСль.

4. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°:

  • ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π² Π»ΠΎΠ³Π΅ появится Verification OK.
  • ΠŸΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρƒ (ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅/ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ Reset).
  • Если ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ стартуСт, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅:
    • πŸ”˜ ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ Π²Π΅ΠΊΡ‚ΠΎΡ€Π° сброса (адрСс 0x08000004 Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Reset_Handler).
    • πŸ”˜ Настройки тактирования Π² ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ΅ (нСсоотвСтствиС HSI/HSE ΠΌΠΎΠΆΠ΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ старт).
πŸ’‘

ВсСгда провСряйтС Π»ΠΎΠ³ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΉ Π²Ρ€ΠΎΠ΄Π΅ Warning: Option Bytes not programmed. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠΏΡ†ΠΈΠΈ бСзопасности (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, RDP) Π½Π΅ Π±Ρ‹Π»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ‹, ΠΈ Ρ‡ΠΈΠΏ останСтся Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ.

Π Π°Π±ΠΎΡ‚Π° с ΠΎΠΏΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ Π±Π°ΠΉΡ‚Π°ΠΌΠΈ (Option Bytes) ΠΈ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ Ρ‡ΠΈΠΏΠ°

ΠžΠΏΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹ (Option Bytes) β€” это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π°Ρ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Π—Π΄Π΅ΡΡŒ хранятся настройки:

  • πŸ”’ Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ чтСния (RDP): Level 0 (Π½Π΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‚Ρ‹), Level 1 (Π·Π°ΠΏΡ€Π΅Ρ‚ чтСния памяти), Level 2 (полная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ JTAG).
  • πŸ”„ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°: Π²Ρ‹Π±ΠΎΡ€ источника тактирования (HSI/HSE), настройки Boot0/Boot1.
  • ⚑ НапряТСниС питания ядра (VDD): ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для STM32H7, Π³Π΄Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ настройки ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π±Π°ΠΉΡ‚Ρ‹:

  1. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Option Bytes.
  2. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ RDP (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Level 1 для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ копирования ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ).
  3. НастройтС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, User Configuration для IWDG ΠΈΠ»ΠΈ Stop Mode).
  4. НаТмитС Apply β€” это ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΡΡ‚ΠΈΡ€Π°Π½ΠΈΡŽ Ρ‡ΠΈΠΏΠ° ΠΈ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹Π΅ настройки.
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Установка RDP Level 2 Π½Π΅ΠΎΠ±Ρ€Π°Ρ‚ΠΈΠΌΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ доступ ΠΊ памяти Ρ‡Π΅Ρ€Π΅Π· JTAG/SWD. ЕдинствСнный способ Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ β€” ΠΏΠΎΠ»Π½ΠΎΠ΅ стираниС Ρ‡ΠΈΠΏΠ° Ρ‡Π΅Ρ€Π΅Π· Full chip erase, Ρ‡Ρ‚ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠΎΠ΄Π°Ρ‡ΠΈ NRST Π½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ частотС. Для STM32F1 это 1.8V Π½Π° NRST, для STM32F4/H7 β€” 3.3V.

Для массового программирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° производствС) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Advanced:

  • πŸ“‹ Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ CSV-Ρ„Π°ΠΉΠ» с адрСсами ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠΏΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚ΠΎΠ².
  • πŸ”„ Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ Batch Programming.
  • πŸ“Š НастройтС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Ρ… сумм (CRC) для Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: Ρ€Π°Π±ΠΎΡ‚Π° с QSPI, OSPI ΠΈ массовоС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

STM32CubeProgrammer ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с внСшнСй ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ QSPI/OSPI, Ρ‡Ρ‚ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ для Ρ‡ΠΈΠΏΠΎΠ² Π²Ρ€ΠΎΠ΄Π΅ STM32H743 ΠΈΠ»ΠΈ STM32U5, Π³Π΄Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ внСшний Flash для хранСния Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠ΄Π°. Для программирования QSPI:

  1. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Advanced β†’ QSPI Memory.
  2. Π£ΠΊΠ°ΠΆΠΈΡ‚Π΅ адрСс внСшнСй памяти (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 0x90000000 для STM32H7).
  3. Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΈ настройтС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ QSPI (Ρ€Π΅ΠΆΠΈΠΌ 1-1-1, 1-1-2, 1-2-2 ΠΈΠ»ΠΈ 4-4-4).
  4. НаТмитС Start QSPI Programming.

Для массового программирования (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠ°Ρ€Ρ‚ΠΈΠΈ устройств):

  • πŸ“‚ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΡŒΡ‚Π΅ ΠΏΠ°ΠΏΠΊΡƒ с ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°ΠΌΠΈ ΠΈ CSV-Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ.
  • πŸ”„ Π’ Advanced Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Batch Mode ΠΈ ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΏΡƒΡ‚ΡŒ ΠΊ ΠΏΠ°ΠΏΠΊΠ΅.
  • πŸ“Š НастройтС Π»ΠΎΠ³Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² (Ρ„Π°ΠΉΠ» report.txt Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ статус ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹).

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с OSPI (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² STM32H7A3):

  • πŸ”§ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌ Octo-SPI для максимальной скорости (Π΄ΠΎ 133 MHz).
  • πŸ”„ НастройтС Dummy Cycles Π² соотвСтствии с Π΄Π°Ρ‚Π°ΡˆΠΈΡ‚ΠΎΠΌ Π½Π° внСшнюю ΠΏΠ°ΠΌΡΡ‚ΡŒ.
  • ⚠️ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ напряТСниС питания (VCC) β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡ΠΈΠΏΡ‹ OSPI Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ 1.8V.
Как ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ ΠΊΡ€ΡƒΠΏΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²?

Для ускорСния ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, .bin Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 1 ΠœΠ‘+):

1. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ SWD вмСсто JTAG β€” ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ быстрСС.

2. Π£Π²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄ΠΎ 24 MHz (Π² настройках ST-Link).

3. ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ (Verify after programming) β€” это сэкономит Π΄ΠΎ 30% Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.

4. Для STM32H7 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Double Bank Mode, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π° Π±Π°Π½ΠΊΠ° ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ.

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ошибками ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с STM32CubeProgrammer. Рассмотрим Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ частыС ΠΈΠ· Π½ΠΈΡ… ΠΈ способы ΠΈΡ… устранСния:

Ошибка ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° РСшСниС
No STM32 target found! ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ соСдинСниС с Ρ‡ΠΈΠΏΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅Π²Π΅Ρ€Π½Ρ‹Π΅ настройки ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ST-Link (Π·Π΅Π»Ρ‘Π½Ρ‹ΠΉ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅).
  • Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΠΏ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ (3.3V ΠΈΠ»ΠΈ 5V Π² зависимости ΠΎΡ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ).
  • ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ кабСль ΠΈΠ»ΠΈ ΠΏΠΎΡ€Ρ‚ USB.
Error: Flash Download failed ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с записью Π²ΠΎ Flash (Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ адрСса, Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ записи).
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ стартовый адрСс ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ (для STM32F4 это 0x08000000).
  • Π£ΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚Π΅ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄ΠΎ 4 MHz.
  • Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Full chip erase ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΎΠΉ.
Error: Option Bytes programming failed ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ настройки Option Bytes ΠΈΠ»ΠΈ Ρ‡ΠΈΠΏ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ RDP (Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Level 0 ΠΈΠ»ΠΈ Level 1).
  • Для RDP Level 2 трСбуСтся ΠΏΠΎΠ»Π½ΠΎΠ΅ стираниС Ρ‡Π΅Ρ€Π΅Π· NRST.
  • Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ напряТСниС питания соотвСтствуСт Π΄Π°Ρ‚Π°ΡˆΠΈΡ‚Ρƒ.
Warning: Device ID not recognized ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ модСль Ρ‡ΠΈΠΏΠ°.
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ SWD (сигналы CLK, DIO, GND).
  • ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ ST-Link.
  • Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΠΏ Π½Π΅ Π² состоянии Low Power.

Если Ρ‡ΠΈΠΏ пСрСстал ΠΎΡ‚Π²Π΅Ρ‡Π°Ρ‚ΡŒ ("ΠΊΠΈΡ€ΠΏΠΈΡ‡"), ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ напряТСниС питания β€” Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ STM32 (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, STM32L4) Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ ΠΊ просадкам Π½ΠΈΠΆΠ΅ 3.0V.
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ UART Bootloader:
    • УстановитС Boot0=1.
    • ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Ρ‡Π΅Ρ€Π΅Π· USART Π½Π° скорости 115200.
    • Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Erase β†’ Program.
  • Для Ρ‡ΠΈΠΏΠΎΠ² с RDP Level 2 Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ стираниС Ρ‡Π΅Ρ€Π΅Π· NRST:
    1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ NRST ΠΊ 3.3V Ρ‡Π΅Ρ€Π΅Π· рСзистор 10k.
    

    2. ΠŸΠΎΠ΄Π°ΠΉΡ‚Π΅ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π° Ρ‡ΠΈΠΏ.

    3. ЗапуститС Full chip erase Π² STM32CubeProgrammer.

    4. ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ NRST ΠΎΡ‚ 3.3V ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ.

  • ⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ восстановлСнии "ΠΊΠΈΡ€ΠΏΠΈΡ‡Π°" Ρ‡Π΅Ρ€Π΅Π· NRST Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠ΄Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° сброс напряТСниС Π²Ρ‹ΡˆΠ΅ 3.6V β€” это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ Ρ‡ΠΈΠΏ. Для STM32F1 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ 1.8V.

    FAQ: ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π½Π° частыС вопросы

    МоТно Π»ΠΈ ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ STM32 Ρ‡Π΅Ρ€Π΅Π· Arduino IDE?

    Π”Π°, Π½ΠΎ с ограничСниями. Arduino IDE ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ stm32flash ΠΈΠ»ΠΈ dfu-util для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· USART (Bootloader) ΠΈΠ»ΠΈ DFU. Однако этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚:

    • πŸ”§ Настройку Option Bytes.
    • πŸ”’ Π Π°Π±ΠΎΡ‚Ρƒ с Π·Π°Ρ‰ΠΈΡ‰Ρ‘Π½Π½Ρ‹ΠΌΠΈ Ρ‡ΠΈΠΏΠ°ΠΌΠΈ (RDP Level 1/2).
    • ⚑ ΠŸΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ внСшнСй памяти QSPI.

    Для ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ STM32CubeProgrammer.

    Как ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ STM32 Π±Π΅Π· ST-Link?

    Π•ΡΡ‚ΡŒ нСсколько Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²:

    1. UART Bootloader: Π’Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΡƒ Boot0=1 ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π²Ρ€ΠΎΠ΄Π΅ STM32FlashLoader.
    2. J-Link: ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ΡΡ Π² STM32CubeProgrammer (Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ J-Link Π² мСню ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ).
    3. OpenOCD: ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ инструмСнт для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‡Π΅Ρ€Π΅Π· SWD/JTAG.
    4. DFU: Для Ρ‡ΠΈΠΏΠΎΠ² с USB (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, STM32F103 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ DFU).

    Π‘Π°ΠΌΡ‹ΠΉ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” UART Bootloader, Π½ΠΎ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ST-Link.

    ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ?

    ВрСмя ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ зависит ΠΎΡ‚:

    • πŸ“‘ Бкорости ΠΎΠ±ΠΌΠ΅Π½Π°: Π£Π²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ Π΄ΠΎ 24 MHz Π² настройках ST-Link.
    • πŸ—ƒοΈ Π Π°Π·ΠΌΠ΅Ρ€Π° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ: Для .bin Ρ„Π°ΠΉΠ»ΠΎΠ² >1 ΠœΠ‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ сТатиС ΠΈΠ»ΠΈ Ρ€Π°Π·Π±Π΅ΠΉΡ‚Π΅ Π½Π° части.
    • πŸ”„ Π Π΅ΠΆΠΈΠΌΠ° стирания: Full chip erase Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Ρ‡Π΅ΠΌ Page erase.
    • πŸ”Œ Π’ΠΈΠΏΠ° памяти: Π’Π½Π΅ΡˆΠ½ΠΈΠΉ QSPI ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Flash.

    Для ускорСния ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ (Verify after programming) ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ SWD вмСсто JTAG.

    Как ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ RDP Level 2 Π½Π° STM32?

    Π§ΠΈΠΏΡ‹ с RDP Level 2 Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ стирания Ρ‡Π΅Ρ€Π΅Π· ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ:

    1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ST-Link ΠΊ ΠΏΠ»Π°Ρ‚Π΅.
    2. ΠŸΠΎΠ΄Π°ΠΉΡ‚Π΅ 3.3V Π½Π° NRST (для STM32F1 β€” 1.8V).
    3. Π’ STM32CubeProgrammer Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Connect under reset.
    4. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ Full chip erase.
    5. Π‘Π½ΠΈΠΌΠΈΡ‚Π΅ напряТСниС с NRST ΠΈ ΠΏΡ€ΠΎΡˆΠ΅ΠΉΡ‚Π΅ Ρ‡ΠΈΠΏ Π·Π°Π½ΠΎΠ²ΠΎ.

    Если ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π½Π΅ сработала, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅:

    • πŸ”Œ ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ NRST (Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ пСрСнапряТСния).
    • πŸ”‹ Π‘Ρ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ питания (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½Ρ‹ΠΉ Π‘ΠŸ вмСсто USB).
    ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈ STM32CubeProgrammer Ρ‡ΠΈΠΏΡ‹ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ?

    НСт, STM32CubeProgrammer Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ STM32. Для Ρ‡ΠΈΠΏΠΎΠ² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±Ρ€Π΅Π½Π΄ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅:

    • πŸ”Ή NXP: MCUXpresso ΠΈΠ»ΠΈ J-Flash.
    • πŸ”Ή Microchip: MPLAB IPE.
    • πŸ”Ή Nordic: nRF Connect.
    • πŸ”Ή Espressif: esptool (для ESP32).

    Для ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· SWD/JTAG ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ OpenOCD ΠΈΠ»ΠΈ J-Flash (ΠΎΡ‚ Segger).