Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌ Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠ² STMicroelectronics Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Π±Π΅Π· ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΠΏΠΎΠ². ΠΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π·Π΄Π΅ΡΡ Π²ΡΡΡΡΠΏΠ°Π΅Ρ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΠΈ Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΠ΅ Ρ Π»ΠΈΠ½Π΅ΠΉΠΊΠΎΠΉ STM32, ΡΠΎ Π°Π±Π±ΡΠ΅Π²ΠΈΠ°ΡΡΡΡ SWDIO ΠΈ SWCLK ΡΡΠ°Π½ΡΡ Π²Π°ΡΠΈΠΌΠΈ ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΠΌΠΈ ΡΠΏΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ. ΠΡΠΈ Π΄Π²Π° ΡΠΈΠ³Π½Π°Π»Π° ΠΎΠ±ΡΠ°Π·ΡΡΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠ½ΠΎΠ²Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Serial Wire Debug, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈΡΠ΅Π» Π½Π° ΡΠΌΠ΅Π½Ρ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΎΠΌΡ JTAG Π² ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΡ ΠΊΠΎΡΠΏΡΡΠ°Ρ .
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ JTAG, ΡΡΠ΅Π±ΡΡΡΠ΅Π³ΠΎ ΠΏΡΡΠΈ ΡΠΈΠ³Π½Π°Π»ΡΠ½ΡΡ
Π»ΠΈΠ½ΠΈΠΉ, ΠΏΡΠΎΡΠΎΠΊΠΎΠ» SWD ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΎΠΉ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° ΠΏΡΠΎΠ²ΠΎΠ΄Π°. ΠΡΠΎ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΡΡΡΠΎΠΉΡΡΠ² Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ Π²ΡΠ²ΠΎΠ΄ΠΎΠ². ΠΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ SWDIO ΠΈ SWCLK Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ST-Link ΠΈΠ»ΠΈ J-Link) ΠΈ ΡΠ΅Π»Π΅Π²ΡΠΌ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ.
ΠΡΠΈΠ±ΠΊΠΈ Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ°ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ IDE Π½Π΅ Π²ΠΈΠ΄ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΠΈ ΡΡΡΠ²Π°Π΅ΡΡΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΡ ΠΏΡΠΎΡΠ΅Π½ΡΠ°Ρ . Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ»Π΅ΠΊΡΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π»ΠΈΠ½ΠΈΠΉ, ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ°ΠΉΠΌΠΈΠ½Π³Π°ΠΌ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ Π±Π΅ΡΡΠΎΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ STM32
ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° STM32 ΠΏΠΎΡΡΡΠΎΠ΅Π½Ρ Π½Π° ΡΠ΄ΡΠ°Ρ ARM Cortex, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠΌΠ΅ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. ΠΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Debug Access Port (DAP), ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ ΡΠΈΠΏΠ°, Π²ΠΊΠ»ΡΡΠ°Ρ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΠΈ ΠΏΠ°ΠΌΡΡΡ. ΠΠ»Ρ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΌΠΈΡΠ° ΡΡΠΎΡ Π΄ΠΎΡΡΡΠΏ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, Π³Π΄Π΅ Π»ΠΈΠ½ΠΈΠΈ SWDIO ΠΈ SWCLK ΠΈΠ³ΡΠ°ΡΡ ΡΠ΅Π½ΡΡΠ°Π»ΡΠ½ΡΡ ΡΠΎΠ»Ρ.
ΠΠΈΠ½ΠΈΡ SWCLK (Serial Wire Clock) ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΡΠΈΡΡΡΡΠΈΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ. ΠΠ½Π° Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ ΠΈ Π·Π°Π΄Π°Π΅Ρ ΡΠΈΡΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ. ΠΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Ρ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ Π΅Π³ΠΎ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½Ρ. Π§Π°ΡΡΠΎΡΠ° ΡΡΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° ΠΌΠΎΠΆΠ΅Ρ Π²Π°ΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ, Π½ΠΎ ΠΎΠ½Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ ΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ Π² Π΄Π°ΡΠ°ΡΠΈΡΠ΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ»ΠΈΠ½Π° ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠ², ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡΡΠΈΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΠΈ ΠΏΠ»Π°ΡΡ, Π½Π°ΠΏΡΡΠΌΡΡ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΡΠΈΠ³Π½Π°Π»Π° SWCLK. ΠΡΠΈ Π΄Π»ΠΈΠ½Π΅ Π±ΠΎΠ»Π΅Π΅ 10-15 ΡΠΌ Π±Π΅Π· ΡΠΊΡΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π²ΡΠ±ΡΠΎΡΡ ΠΈ Π·Π²ΠΎΠ½, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ².
ΠΠΈΠ½ΠΈΡ SWDIO (Serial Wire Data Input/Output) ΡΠ²Π»ΡΠ΅ΡΡΡ Π΄Π²ΡΠ½Π°ΠΏΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ. ΠΠΎ Π½Π΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π΄Π°Π½Π½ΡΠ΅ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π²ΠΎ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΡ ΠΈ ΠΎΡΠ²Π΅ΡΡ ΠΎΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΡΠΎΡΠΎΠΊΠΎΠ» ΡΡΡΠΎΠ³ΠΎ ΡΠ΅Π³Π»Π°ΠΌΠ΅Π½ΡΠΈΡΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π±ΠΈΡ, ΠΈ Π»ΡΠ±ΠΎΠ΅ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠΈΠ½Π³ΠΎΠ² ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ°ΠΆΠ½ΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΈ ΠΏΠΈΠ½Ρ ΡΠ°ΡΡΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΠ΅Π½Ρ Ρ ΠΏΠΎΡΡΠ°ΠΌΠΈ ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (GPIO). ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΠ»Π°ΡΠ°Ρ STM32F103 ΡΡΠΎ ΠΏΠΈΠ½Ρ PA13 ΠΈ PA14. ΠΠΎΡΠ»Π΅ ΡΠ±ΡΠΎΡΠ° ΠΈΠ»ΠΈ ΠΏΡΠΈ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΎΠ½ΠΈ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠΈΡΡ, ΡΡΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠΈΠΏΡ, Π΅ΡΠ»ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
Π€ΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ°ΡΠΏΠΈΠ½ΠΎΠ²ΠΊΠ°
ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ Π°Π΄Π°ΠΏΡΠ΅Ρ ΠΈ ΡΠ΅Π»Π΅Π²ΡΡ ΠΏΠ»Π°ΡΡ. Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΡΠ°Π·ΡΠ΅ΠΌ ST-Link V2 ΠΈΠ»ΠΈ V3 ΠΈΠΌΠ΅Π΅Ρ ΡΠ΅ΡΠΊΡΡ ΠΌΠ°ΡΠΊΠΈΡΠΎΠ²ΠΊΡ Π²ΡΠ²ΠΎΠ΄ΠΎΠ². ΠΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΡΡΡΠ΅ ΠΊΠΎΠ½ΡΠ°ΠΊΡΠ°: VCC, GND, SWDIO ΠΈ SWCLK. ΠΠ½ΠΎΠ³Π΄Π° Π²ΡΡΡΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΡΡΡΠΉ ΠΊΠΎΠ½ΡΠ°ΠΊΡ β NRST (ΡΠ±ΡΠΎΡ), ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ "Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΡΡ " ΡΠΈΠΏΠΎΠ².
Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ°ΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΎΠ²-"ΠΊΡΠΎΠΊΠΎΠ΄ΠΈΠ»ΠΎΠ²" ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ»Π΅ΠΉΡΠΎΠ² ΠΈΠ· Π²ΠΈΡΠΎΠΉ ΠΏΠ°ΡΡ Π±Π΅Π· ΡΠΊΡΠ°Π½Π° ΡΠ°ΡΡΠΎ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ Π½Π΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ. Π‘ΠΈΠ³Π½Π°Π» SWCLK ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»Π΅Π½ ΠΊ Π½Π°Π²ΠΎΠ΄ΠΊΠ°ΠΌ.
- π VCC β ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°ΡΡ (ΠΎΠ±ΡΡΠ½ΠΎ 3.3Π). Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Π°Ρ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π²ΡΠ΄Π°ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ ΡΠΎΠΊ, ΠΈΠ½Π°ΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΠ΅ Π²Π½Π΅ΡΠ½Π΅Π΅ ΠΏΠΈΡΠ°Π½ΠΈΠ΅.
- β‘ GND β ΠΎΠ±ΡΠ°Ρ Π·Π΅ΠΌΠ»Ρ. ΠΠ΅Π· ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π·Π΅ΠΌΠ΅Π»Ρ ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π°ΠΌΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½.
- π‘ SWDIO β Π»ΠΈΠ½ΠΈΡ Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΏΠΈΠ½Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° (ΡΠ°ΡΡΠΎ PA13).
- β±οΈ SWCLK β Π»ΠΈΠ½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΏΠΈΠ½Ρ (ΡΠ°ΡΡΠΎ PA14).
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΏΡΡΠ°ΡΡ ΠΏΠΈΠ½Ρ Π½Π° ΡΠ°Π·ΡΠ΅ΠΌΠ΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°ΡΡ. ΠΡΠ΅Π³Π΄Π° ΡΠ²Π΅ΡΡΠΉΡΠ΅ΡΡ Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅ΠΉ ΠΊ Π²Π°ΡΠ΅ΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΠΏΠ»Π°ΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ ΡΡ Π΅ΠΌΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΠΎΡΠΎΡΠΊΠΎΠΌΡ Π·Π°ΠΌΡΠΊΠ°Π½ΠΈΡ ΠΈ Π²ΡΡ ΠΎΠ΄Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ· ΡΡΡΠΎΡ.
ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΡΠ°ΠΌΠΎΠ΄Π΅Π»ΡΠ½ΡΠΉ Π°Π΄Π°ΠΏΡΠ΅Ρ Π½Π° Π±Π°Π·Π΅ STM32 (ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Black Magic Probe ΠΈΠ»ΠΈ ΠΊΠ»ΠΎΠ½Ρ ST-Link), ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΡΡΠΎΠ²Π½ΠΈ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠΉ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡ. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ STM32 ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΎΡ 3.3Π, Π½ΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ°ΡΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΠΈΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π°.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°ΡΡΠΎΡΡ ΠΈ ΡΠ°ΠΉΠΌΠΈΠ½Π³ΠΎΠ²
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ
ΡΠ°ΡΡΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅Π²Π΅ΡΠ½ΠΎ Π²ΡΠ±ΡΠ°Π½Π½Π°Ρ ΡΠ°ΡΡΠΎΡΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° SWD. ΠΡΠ»Π°Π΄ΡΠΈΠΊ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠΈΠ³Π½Π°Π» SWCLK, ΠΈ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡΠΏΠ΅Π²Π°ΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π½Π΅Π³ΠΎ. ΠΡΠ»ΠΈ ΡΠ°ΡΡΠΎΡΠ° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²ΡΡΠΎΠΊΠ°, ΡΠ΅Π»Π΅Π²ΠΎΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΈ ΡΠ²ΡΠ·Ρ ΠΏΡΠ΅ΡΠ²Π΅ΡΡΡ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π½Π°ΡΠΈΠ½Π°ΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 100 ΠΊΠΡ ΠΈΠ»ΠΈ 500 ΠΊΠΡ. Π’ΠΎΠ»ΡΠΊΠΎ ΡΠ±Π΅Π΄ΠΈΠ²ΡΠΈΡΡ Π² ΡΡΠ°Π±Π½ΠΎΡΡΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ, ΡΠ°ΡΡΠΎΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠ°ΡΡ Π΄ΠΎ 2 ΠΠΡ, 4 ΠΠΡ ΠΈΠ»ΠΈ Π²ΡΡΠ΅, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ ΡΠΈΠΏΠ° ΠΈ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΌΠΎΠ½ΡΠ°ΠΆΠ°.
- 100 ΠΊΠΡ
- 1 ΠΠΡ
- 4 ΠΠΡ
- 8 ΠΠΡ ΠΈ Π²ΡΡΠ΅
Π ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°Ρ Π²ΡΠΎΠ΄Π΅ OpenOCD ΠΈΠ»ΠΈ STM32CubeProgrammer ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΡΠ°ΡΡΠΎΡΡ Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠ²Π½ΠΎ. ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ OpenOCD, ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
adapter_khz 1000
ΠΠ΄Π΅ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΡΠ°ΡΡΠΎΡΠ° Π² ΠΊΠΈΠ»ΠΎΠ³Π΅ΡΡΠ°Ρ
. ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ 1000 ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ 1 ΠΠΡ. ΠΠ»Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΡ
ΠΏΠ»Π°Ρ ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ Ρ Π΄Π»ΠΈΠ½Π½ΡΠΌΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄Π°ΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΈΡ ΡΠ½ΠΈΠ·ΠΈΡΡ Π΄ΠΎ 100 (100 ΠΊΠΡ).
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΡΠ»ΠΈ ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠ° (HSI), Π΅Π³ΠΎ ΡΠ°ΡΡΠΎΡΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Π½ΠΎΠΌΠΈΠ½Π°Π»ΡΠ½ΠΎΠΉ, ΡΡΠΎ Π²Π»ΠΈΡΠ΅Ρ Π½Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ°ΠΉΠΌΠ°ΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ SWD ΡΠΈΠ½Ρ ΡΠΎΠ½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ, ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠΉ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ (ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΎΠΌ), ΡΠ°ΡΡΠΎΡΠ° ΡΠ΄ΡΠ° ΠΠ Π²Π»ΠΈΡΠ΅Ρ Π½Π° ΡΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ, Π½ΠΎ Π½Π΅ Π½Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π±ΠΈΡ ΠΏΠΎ Π»ΠΈΠ½ΠΈΡΠΌ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ OpenOCD ΠΈ GDB
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΎΠΌ SWD Π² ΡΡΠ΅Π΄Π΅ OpenOCD Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠΈΠΏ. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Transport Layer (SWD ΠΈΠ»ΠΈ JTAG) ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π΄Π»Ρ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° STM32.
ΠΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ OpenOCD ΡΡΠΈΡΡΠ²Π°Π΅Ρ IDCODE ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° ΡΠ΅ΡΠ΅Π· Π»ΠΈΠ½ΠΈΠΈ SWDIO ΠΈ SWCLK. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΡΡΠ°ΠΏ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ, ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠΌ ΡΠ΄ΡΠ΅ Cortex-M. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΡΠΈΠ»ΠΈΡΠ° Π±ΡΠ΄Π΅Ρ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΏΡΡΠ°ΡΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΡΠ·Ρ ΠΈΠ»ΠΈ Π²ΡΠ΄Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΡΠΊΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ STM32F103:
source [find interface/stlink.cfg]
transport select swd
source [find target/stm32f1x.cfg]
ΠΠΈΡΠ΅ΠΊΡΠΈΠ²Π° transport select swd ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π² ΡΠ΅ΠΆΠΈΠΌ Serial Wire Debug. ΠΠ΅Π· ΡΡΠΎΠΉ ΡΡΡΠΎΠΊΠΈ OpenOCD ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ JTAG ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ, ΡΡΠΎ Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΡΠΈΠ³Π½Π°Π»Π°.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ OpenOCD Π½Π΅ Π²ΠΈΠ΄ΠΈΡ ΡΠΈΠΏ?
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ reset_config srst_only ΠΈΠ»ΠΈ srst_nogate. Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅, Π½Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½ Π»ΠΈ ΡΠΈΠΏ Π·Π°ΡΠΈΡΠΎΠΉ ΡΡΠ΅Π½ΠΈΡ (RDP Level 1). Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎΡΡ Π΄ΠΎ 50 ΠΊΠΡ.!
Π ΡΡΠ΅Π΄Π΅ GDB ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ OpenOCD ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π½ΠΈΠ·ΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ:
(gdb) monitor stm32f1x mass_erase 0
ΠΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»Π½ΡΡ ΡΡΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ, ΡΡΠΎ ΡΠ°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΡΠΈΠ²ΠΊΠΎΠΉ "ΠΊΠΈΡΠΏΠΈΡΠ΅ΠΉ". ΠΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠΉ ΠΏΠΎΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°Π½Π΅Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Π»ΠΈΠ½ΠΈΠΈ ΡΠ²ΡΠ·ΠΈ.
ΠΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° ΠΈ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠ΅ΠΉ
ΠΠ°ΠΆΠ΅ ΠΏΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΈ ΡΡ Π΅ΠΌΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ. Π§Π°ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ Ρ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΡΠΎΠ²Π½Π΅ΠΌ ΡΠΈΠ³Π½Π°Π»Π° ΠΈΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ΠΌ ΡΠ°ΠΌΠΎΠ³ΠΎ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ°. ΠΠ΅ΡΠ²ΡΠΌ ΡΠ°Π³ΠΎΠΌ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΠΈ Π·Π°ΠΌΠ΅Ρ Π½Π°ΠΏΡΡΠΆΠ΅Π½ΠΈΠΉ ΠΌΡΠ»ΡΡΠΈΠΌΠ΅ΡΡΠΎΠΌ.
ΠΡΠ»ΠΈ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ "No target connected", ΠΏΡΠΎΠ²Π΅ΡΡΡΠ΅ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠΈΠ³Π½Π°Π»Π° Π½Π° Π»ΠΈΠ½ΠΈΠΈ SWCLK Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°ΡΠ°. ΠΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΠΈΠ΄Π΅ΡΡ ΠΌΠ΅Π°Π½Π΄Ρ Ρ ΡΠ°ΡΡΠΎΡΠΎΠΉ, Π·Π°Π΄Π°Π½Π½ΠΎΠΉ Π² ΠΊΠΎΠ½ΡΠΈΠ³Π΅. ΠΡΠ»ΠΈ ΡΠΈΠ³Π½Π°Π»Π° Π½Π΅Ρ, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ΅ ΠΈΠ»ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ°Ρ
. ΠΡΠ»ΠΈ ΡΠΈΠ³Π½Π°Π» Π΅ΡΡΡ, Π½ΠΎ Π½Π΅Ρ ΠΎΡΠ²Π΅ΡΠ°, ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π² ΡΠ΅Π»Π΅Π²ΠΎΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅.
| Π‘ΠΈΠΌΠΏΡΠΎΠΌ | ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° | ΠΠ΅ΡΠΎΠ΄ ΡΠ΅ΡΠ΅Π½ΠΈΡ |
|---|---|---|
| ΠΡΠΈΠ±ΠΊΠ° ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΠΏΠΎΡΠΊΠΈ | ΠΠ΅Π²Π΅ΡΠ½Π°Ρ ΡΠ°ΡΡΠΎΡΠ° SWCLK | Π‘Π½ΠΈΠ·ΠΈΡΡ ΡΠ°ΡΡΠΎΡΡ Π΄ΠΎ 100 ΠΊΠΡ |
| Π‘ΡΡΠ² ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ»ΡΡΠ° | ΠΠ»ΠΎΡ ΠΎΠΉ ΠΊΠΎΠ½ΡΠ°ΠΊΡ GND | ΠΡΠΎΠ²Π΅ΡΠΈΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π·Π΅ΠΌΠ»ΠΈ |
| Π§ΠΈΠΏ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ | Π Π΅ΠΆΠΈΠΌ Sleep/Stop | ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΆΠΈΠΌ Connect Under Reset |
| ΠΠ΅ΡΡΠ°Π±ΠΈΠ»ΡΠ½Π°Ρ ΠΎΡΠ»Π°Π΄ΠΊΠ° | ΠΠ°Π²ΠΎΠ΄ΠΊΠΈ Π½Π° ΠΏΡΠΎΠ²ΠΎΠ΄Π°Ρ | Π£ΠΊΠΎΡΠΎΡΠΈΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄Π°, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ΅ΡΡΠΈΡ |
ΠΡΠΎΠ±ΡΠΉ ΡΠ»ΡΡΠ°ΠΉ β ΠΊΠΎΠ³Π΄Π° ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΠ΅ΠΆΠΈΠΌ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΡΠ½Π° ΠΈ ΠΎΡΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π΄Π»Ρ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΠΈ ΡΠ½Π΅ΡΠ³ΠΈΠΈ. Π ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ SWD Π½Π΅ ΡΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΄ΡΠΎ Π½Π΅ ΠΎΡΠ²Π΅ΡΠΈΡ Π½Π° Π·Π°ΠΏΡΠΎΡΡ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊ ΡΠΏΡΡΠ΅ΠΌΡ ΡΠΈΠΏΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ "Connect Under Reset". ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΈΠ½ NRST ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΡΠ±ΡΠΎΡΠ° Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΡΠ°Π»Π° ΡΠ΅Π°Π½ΡΠ° ΠΎΡΠ»Π°Π΄ΠΊΠΈ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, Π½Π΅ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½Ρ Π»ΠΈ ΠΏΠΈΠ½Ρ SWDIO/SWCLK ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎ Π² ΠΊΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΡΡΠ°ΡΡΠ°. ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΡΠΈΠ²ΠΊΠ΅ Π΅ΡΡΡ ΡΡΡΠΎΠΊΠΈ, ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΡΡΠΈΠ΅ PA13/PA14 Π² ΡΠ΅ΠΆΠΈΠΌ GPIO, Π΄ΠΎΡΡΡΠΏ ΠΏΠΎ SWD Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ΅ΡΡΠ½ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΡΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅ΠΌ Reset.
ΠΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΡΠΈΠΏΡ
Π§Π°ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ ΠΈΠ·-Π·Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π·Π°ΡΠΈΡΡ ΡΡΠ΅Π½ΠΈΡ (Readout Protection). Π£ΡΠΎΠ²Π΅Π½Ρ RDP Level 1 Π΄Π΅Π»Π°Π΅Ρ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΡΠ΅Π· SWD, Ρ ΠΎΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠ° ΡΠ΄Π΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΉ Π² ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Π£ΡΠΎΠ²Π΅Π½Ρ RDP Level 2 Π±Π»ΠΎΠΊΠΈΡΡΠ΅Ρ ΡΠΈΠΏ Π½Π°Π²ΡΠ΅Π³Π΄Π°.
Π§ΡΠΎΠ±Ρ ΡΠ½ΡΡΡ Π·Π°ΡΠΈΡΡ Level 1, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΌΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠΈΡΠ°Π½ΠΈΡ. ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΡΠΈΡΡΠΈΡ ΠΏΠ°ΠΌΡΡΡ ΠΈ ΡΠ±ΡΠΎΡΠΈΡ Π±ΠΈΡΡ Π·Π°ΡΠΈΡΡ, Π²Π΅ΡΠ½ΡΠ² ΡΠΈΠΏ Π² Π·Π°Π²ΠΎΠ΄ΡΠΊΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅. ΠΡΠ΄ΡΡΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½Ρ: Π²ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ ΡΠ½ΠΈΡΡΠΎΠΆΠ΅Π½Π°.
βοΈ Π§Π΅ΠΊ-Π»ΠΈΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ STM32
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° ΡΠ½ΡΡΠΈΡ Π·Π°ΡΠΈΡΡ ΡΠ΅ΡΠ΅Π· OpenOCD Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "stm32f1x lock 0" -c "reset"
ΠΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΈΠΏ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΈΡΡΡ. Π’Π΅ΠΏΠ΅ΡΡ Π»ΠΈΠ½ΠΈΠΈ SWDIO ΠΈ SWCLK ΡΠ½ΠΎΠ²Π° Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π² ΡΡΠ°ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π½ΠΎΠ²ΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΊΡ. ΠΡΠ»ΠΈ ΡΠΈΠΏ Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΡΡΡΠ°Π½Π½ΠΎ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ, ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ ΡΠ΅ΠΊΡΠΎΡΠΎΠ² ΡΠ»ΡΡ-ΠΏΠ°ΠΌΡΡΠΈ.
ΠΠ½ΠΎΠ³Π΄Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΠΊΡΠΎΠ΅ΡΡΡ Π½Π΅ Π² Π·Π°ΡΠΈΡΠ΅, Π° Π² ΠΎΡΠΈΠ±ΠΎΡΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π·Ρ ΠΏΠΎΡΠ»Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΈΡ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π² ΡΠ΅ΠΆΠΈΠΌ, Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΉ ΡΠ°Π±ΠΎΡΡ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈζΆι ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΏΠΈΠ½ΠΎΠ²). Π ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ "Under Reset" ΡΠ²Π»ΡΠ΅ΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌ ΡΠΏΠ°ΡΠ΅Π½ΠΈΠ΅ΠΌ.
FAQ: Π§Π°ΡΡΠΎ Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΈΠ½Ρ SWDIO ΠΈ SWCLK ΠΊΠ°ΠΊ ΠΎΠ±ΡΡΠ½ΡΠ΅ GPIO ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ?
ΠΠ°, ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΡΠ±ΡΠΎΡΠ° ΠΎΠ½ΠΈ Π½Π°ΡΡΡΠΎΠ΅Π½Ρ ΠΊΠ°ΠΊ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, Π΅ΡΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈζΆι ΠΈ ΠΏΠΎΡΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΡΠ½ΠΊΡΠΈΠΈ SystemInit ΠΈΠ»ΠΈ main) ΡΠ²Π½ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°Π½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡ
ΠΏΠΈΠ½ΠΎΠ² Π½Π° ΡΡΠ½ΠΊΡΠΈΠΈ GPIO, ΠΎΠ½ΠΈ ΡΡΠ°Π½ΡΡ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ Π²ΡΠ²ΠΎΠ΄Π°ΠΌΠΈ. Π§ΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
ΠΊΠ°ΠΊ GPIO, Π½ΡΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΎΡΠ»Π°Π΄ΠΊΡ Π² ΠΎΠΏΡΠΈΡΡ
ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° (SWJ Disable), Π»ΠΈΠ±ΠΎ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ AFIO.
ΠΠ°ΠΊΠΎΠ²Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΠΊΠ°Π±Π΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ SWD?
ΠΠ»Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Π½Π° Π²ΡΡΠΎΠΊΠΈΡ ΡΠ°ΡΡΠΎΡΠ°Ρ (2-4 ΠΠΡ) Π΄Π»ΠΈΠ½Π° ΠΊΠ°Π±Π΅Π»Ρ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡΠ΅Π²ΡΡΠ°ΡΡ 10-15 ΡΠΌ. ΠΡΠ»ΠΈ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠ°ΡΡΠΎΡΡ Π΄ΠΎ 100 ΠΊΠΡ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ Π΄Π»ΠΈΠ½Ρ Π΄ΠΎ 30-50 ΡΠΌ, Π½ΠΎ ΡΠΈΡΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΏΠΎΠΌΠ΅Ρ ΠΎΡΡΠ°Π΅ΡΡΡ Π²ΡΡΠΎΠΊΠΈΠΌ. ΠΠ»Ρ Π΄Π»ΠΈΠ½Π½ΡΡ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π±ΡΡΠ΅ΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ Π°Π΄Π°ΠΏΡΠ΅ΡΡ ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠΈ Ρ ΡΡΠΈΠ»Π΅Π½Π½ΡΠΌ ΡΠΈΠ³Π½Π°Π»ΠΎΠΌ.
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ SWD ΠΈ JTAG Π΄Π»Ρ STM32?
JTAG ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ 5 ΡΠΈΠ³Π½Π°Π»ΡΠ½ΡΡ Π»ΠΈΠ½ΠΈΠΉ (TCK, TMS, TDI, TDO, TRST) ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠ»Π°Π΄ΠΊΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ² Π² ΡΠ΅ΠΏΠΎΡΠΊΠ΅. SWD ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 2 Π»ΠΈΠ½ΠΈΠΈ (SWCLK, SWDIO) ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. SWD ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ ΠΏΠΈΠ½Ρ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° ΠΈ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΡΠ°Π·Π²ΠΎΠ΄ΠΊΡ ΠΏΠ»Π°ΡΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π΅-ΡΠ°ΠΊΡΠΎ Π΄Π»Ρ STM32.
ΠΠΎΡΠ΅ΠΌΡ OpenOCD ΠΏΠΈΡΠ΅Ρ "Error: JTAG scan chain interrogation failed" ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΌ SWD?
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ, Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ Π½Π΅ Π²ΡΠ±ΡΠ°Π½Π° ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½Π°Ρ ΡΡΠ΅Π΄Π° SWD. ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΡ transport select swd ΠΏΠ΅ΡΠ΅Π΄ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ°ΡΠ³Π΅ΡΠ°. Π’Π°ΠΊΠΆΠ΅ ΡΠ±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΠΈ, ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°Π²ΡΠ·Π°Π½Π½ΡΠ΅ Π½Π° JTAG, Π±Π΅Π· ΠΈΡ
ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Π°Π±ΠΎΡΠ° Ρ Π»ΠΈΠ½ΠΈΡΠΌΠΈ SWDIO ΠΈ SWCLK ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° STM32. ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΈΡ
ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΡΠ°ΡΡΠΎΡ ΠΈ ΡΠΌΠ΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π½Π° Π½ΠΈΠ·ΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ ΡΠ°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΡΠ»Π°Π΄ΠΊΠ΅. ΠΠ΅ ΠΏΡΠ΅Π½Π΅Π±ΡΠ΅Π³Π°ΠΉΡΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ ΠΌΠΎΠ½ΡΠ°ΠΆΠ° ΠΈ Π²ΡΠ΅Π³Π΄Π° ΠΈΠΌΠ΅ΠΉΡΠ΅ ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠΉ ΠΎΡΡΠΈΠ»Π»ΠΎΠ³ΡΠ°Ρ ΠΈΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠΉ Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΡΠΌΡ ΡΠΈΠ³Π½Π°Π»Π°.
Π‘ΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΎΡΠ»Π°Π΄ΠΊΠΈ STM32 Π½Π° 90% Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΏΠΈΠ½ΠΎΠ² SWDIO/SWCLK ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ°Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΎΡΡ ΡΠ°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠ²ΠΎΠΈΠ² ΡΠΎΠ½ΠΊΠΎΡΡΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° SWD, Π²Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΠΌΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π±ΡΡΡΡΠΎ ΠΏΡΠΎΡΠΈΠ²Π°ΡΡ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅. ΠΡΠΎ Π½Π°Π²ΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΠ»ΠΈΡΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΠΆΠ΅Π½Π΅ΡΠ° Π²ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΎΡ Π»ΡΠ±ΠΈΡΠ΅Π»Ρ.