Π Π°Π±ΠΎΡΠ° Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°ΠΌΠΈ 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, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΠ΅ ΠΊ ΡΠ°Π·Π΄Π΅Π»Ρ "Π Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ".
- 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 β ΡΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎ ΠΎΡΠΈΡΡΠΈΡ Π²ΡΠ΅ ΡΠ΅ΠΊΡΠΎΡΠ° ΠΏΠ°ΠΌΡΡΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ "ΠΌΡΡΠΎΡΠ½ΡΠ΅" Π΄Π°Π½Π½ΡΠ΅ ΠΎΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΡ
ΠΏΡΠΎΡΠΈΠ²ΠΎΠΊ.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°: ST-Link, JTAG ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡΡ
ΠΠ»Ρ ΡΠ²ΡΠ·ΠΈ Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ 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:
- ΠΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅ ΠΏΠ»Π°ΡΡ ΠΊ USB-ΠΏΠΎΡΡΡ (Π΄Π»Ρ Nucleo ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°Π·ΡΡΠΌ
CN1). - Π STM32CubeProgrammer Π²ΡΠ±Π΅ΡΠΈΡΠ΅
Connect(ΠΊΠ½ΠΎΠΏΠΊΠ° Π² ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ). - ΠΡΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅:
- π ΠΠΈΡΠ°Π΅ΡΡΡ Π»ΠΈ ΠΏΠ»Π°ΡΠ° (ΡΠ²Π΅ΡΠΎΠ΄ΠΈΠΎΠ΄
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:
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΡΡΠΊΡ
Boot0=1(Π½Π° ΠΏΠ»Π°ΡΠ°Ρ Nucleo ΡΡΠΎSB13 ON). - ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠ»Π°ΡΡ ΠΊ COM-ΠΏΠΎΡΡΡ (ΡΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ β
115200 Π±ΠΎΠ΄). - Π 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, Π³Π΄Π΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅.
Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΎΠΏΡΠΈΠΎΠ½Π½ΡΠ΅ Π±Π°ΠΉΡΡ:
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡ
Option Bytes. - ΠΡΠ±Π΅ΡΠΈΡΠ΅ Π½ΡΠΆΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ
RDP(Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,Level 1Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ). - ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
User ConfigurationΠ΄Π»ΡIWDGΠΈΠ»ΠΈStop Mode). - ΠΠ°ΠΆΠΌΠΈΡΠ΅
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:
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΡ
AdvancedβQSPI Memory. - Π£ΠΊΠ°ΠΆΠΈΡΠ΅ Π°Π΄ΡΠ΅Ρ Π²Π½Π΅ΡΠ½Π΅ΠΉ ΠΏΠ°ΠΌΡΡΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
0x90000000Π΄Π»Ρ STM32H7). - ΠΠ°Π³ΡΡΠ·ΠΈΡΠ΅ ΡΠ°ΠΉΠ» ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΠΈ Π½Π°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ
QSPI(ΡΠ΅ΠΆΠΈΠΌ1-1-1,1-1-2,1-2-2ΠΈΠ»ΠΈ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! |
ΠΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Ρ ΡΠΈΠΏΠΎΠΌ ΠΈΠ»ΠΈ Π½Π΅Π²Π΅ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. |
|
Error: Flash Download failed |
ΠΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π·Π°ΠΏΠΈΡΡΡ Π²ΠΎ Flash (Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ°, Π·Π°ΡΠΈΡΠ° ΠΎΡ Π·Π°ΠΏΠΈΡΠΈ). |
|
Error: Option Bytes programming failed |
ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Option Bytes ΠΈΠ»ΠΈ ΡΠΈΠΏ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½. |
|
Warning: Device ID not recognized |
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠΈΠΏΠ°. |
|
ΠΡΠ»ΠΈ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π» ΠΎΡΠ²Π΅ΡΠ°ΡΡ ("ΠΊΠΈΡΠΏΠΈΡ"), ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
- ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Π½ΠΈΡ β Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ STM32 (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, STM32L4) ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½Ρ ΠΊ ΠΏΡΠΎΡΠ°Π΄ΠΊΠ°ΠΌ Π½ΠΈΠΆΠ΅
3.0V. - ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
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?
ΠΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²:
- UART Bootloader: Π’ΡΠ΅Π±ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΡΡΠΊΡ
Boot0=1ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΡΠΎΠ΄Π΅STM32FlashLoader. - J-Link: ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² STM32CubeProgrammer (Π²ΡΠ±Π΅ΡΠΈΡΠ΅
J-LinkΠ² ΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ). - OpenOCD: ΠΡΠΊΡΡΡΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠ΅ΡΠ΅Π·
SWD/JTAG. - 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 ΡΡΠ΅Π±ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΡΠΈΡΠ°Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ:
- ΠΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅
ST-LinkΠΊ ΠΏΠ»Π°ΡΠ΅. - ΠΠΎΠ΄Π°ΠΉΡΠ΅
3.3VΠ½Π°NRST(Π΄Π»Ρ STM32F1 β1.8V). - Π STM32CubeProgrammer Π²ΡΠ±Π΅ΡΠΈΡΠ΅
Connect under reset. - ΠΡΠΏΠΎΠ»Π½ΠΈΡΠ΅
Full chip erase. - Π‘Π½ΠΈΠΌΠΈΡΠ΅ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠ΅ Ρ
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).