Swdio. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ ST-Link ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ STM32

КакиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² STM32. Π§Π΅ΠΌ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ST-Link ΠΎΡ‚ китайских ΠΊΠ»ΠΎΠ½ΠΎΠ². Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ST-Link для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с STM32. КакиС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ вмСсто ST-Link.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠΈ разновидности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠ² ST-Link

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ST-Link — это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ устройство, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ΅ для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² сСмСйства STM32. Он ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Ρ†Π΅Π»Π΅Π²ΠΎΠΌΡƒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ ΠΏΠΎ интСрфСйсу SWD (Serial Wire Debug) ΠΈ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

  • Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°
  • Пошаговая ΠΎΡ‚Π»Π°Π΄ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с использованиСм Ρ‚ΠΎΡ‡Π΅ΠΊ останова
  • Π§Ρ‚Π΅Π½ΠΈΠ΅/запись памяти ΠΈ рСгистров ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (запуск, остановка, сброс)

БущСствуСт нСсколько разновидностСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠ² ST-Link:

  1. ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ST-Link ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ STMicroelectronics
  2. ВстроСнныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ Π² ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Π°Ρ… STM32
  3. ΠšΠΈΡ‚Π°ΠΉΡΠΊΠΈΠ΅ ΠΊΠ»ΠΎΠ½Ρ‹ ST-Link
  4. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ SWD/JTAG

Рассмотрим особСнности ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.


ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ ST-Link

Компания STMicroelectronics выпускаСт нСсколько ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Ρ„ΠΈΡ€ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠ² ST-Link:

  • ST-Link/V2 — базовая модСль Π±Π΅Π· Π³Π°Π»ΡŒΠ²Π°Π½ΠΈΡ‡Π΅ΡΠΊΠΎΠΉ развязки
  • ST-Link/V2-1 — ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ вСрсия с Π³Π°Π»ΡŒΠ²Π°Π½ΠΈΡ‡Π΅ΡΠΊΠΎΠΉ развязкой
  • ST-Link/V3 — новСйшая модСль с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠ²:

  • Высокая Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹
  • ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚ производитСля
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ
  • Π“Π°Π»ΡŒΠ²Π°Π½ΠΈΡ‡Π΅ΡΠΊΠ°Ρ развязка (Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… модСлях)

Основной нСдостаток — высокая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌΠΈ.

ВстроСнныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ Π² ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Π°Ρ… STM32

МногиС ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ‹ STM32 Discovery ΠΈ Nucleo содСрТат встроСнный ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ST-Link. Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ устройство ΠΈ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, ΠΈ для программирования.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ встроСнных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠ²:

  • Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ
  • ΠœΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для программирования Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ²
  • Π˜ΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·ΡŠΠ΅ΠΌ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ внСшним ΠΏΠ»Π°Ρ‚Π°ΠΌ
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ€Π΅ΠΆΠΈΠΌΡ‹ SWD ΠΈ JTAG

Π­Ρ‚ΠΎ экономичный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ Π² ΠΎΠ΄Π½ΠΎΠΌ устройствС.


ΠšΠΈΡ‚Π°ΠΉΡΠΊΠΈΠ΅ ΠΊΠ»ΠΎΠ½Ρ‹ ST-Link

На Ρ€Ρ‹Π½ΠΊΠ΅ прСдставлСно мноТСство Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΈΡ… китайских ΠΊΠ»ΠΎΠ½ΠΎΠ² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° ST-Link. Они Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌ-Ρ„Π°ΠΊΡ‚ΠΎΡ€Π°Ρ…:

  • Π’ Π²ΠΈΠ΄Π΅ USB-Ρ„Π»Π΅ΡˆΠΊΠΈ
  • Π’ алюминиСвом корпусС
  • Π’ пластиковом корпусС

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ отличия ΠΎΡ‚ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… ST-Link:

  • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ низкая Ρ†Π΅Π½Π° (ΠΎΡ‚ $2-3)
  • ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹Ρ… Ρ†Π΅ΠΏΠ΅ΠΉ ΠΈ Π³Π°Π»ΡŒΠ²Π°Π½ΠΈΡ‡Π΅ΡΠΊΠΎΠΉ развязки
  • МСньшая Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹
  • Риск поврСТдСния USB-ΠΏΠΎΡ€Ρ‚Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании

НСсмотря Π½Π° нСдостатки, китайскиС ΠΊΠ»ΠΎΠ½Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ популярны срСди Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ ΠΈ Π² ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… цСлях ΠΈΠ·-Π·Π° Π½ΠΈΠ·ΠΊΠΎΠΉ Ρ†Π΅Π½Ρ‹.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ST-Link ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ STM32

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° ST-Link ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ STM32 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ интСрфСйс SWD, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ всСго 2 ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΈ:

  • SWDIO — линия Π΄Π°Π½Π½Ρ‹Ρ…
  • SWCLK — тактовая линия

Π­Ρ‚ΠΈ сигналы ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° STM32:

  • SWDIO — PA13
  • SWCLK — PA14

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ (GND) ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.

ΠžΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ линию RESET ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ NRST ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° для возмоТности Π΅Π³ΠΎ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ сброса.


Настройка ST-Link для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с STM32

Для использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° ST-Link с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ STM32 Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  1. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ST-Link
  2. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ STM32 ST-LINK Utility
  3. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ
  4. ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ срСду Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ST-Link

Рассмотрим процСсс настройки Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ.

Установка Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ST-Link

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ST-Link Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΎΡ‚ STMicroelectronics. Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ с сайта производитСля. Для китайских ΠΊΠ»ΠΎΠ½ΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ стандартныС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы.

Установка STM32 ST-LINK Utility

STM32 ST-LINK Utility — это ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ST-Link. Она позволяСт:

  • ΠŸΡ€ΠΎΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€
  • Π‘Ρ‚ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ
  • Π’Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ
  • Π Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с опциями Π·Π°Ρ‰ΠΈΡ‚Ρ‹

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ бСсплатно с сайта STMicroelectronics.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ST-Link ΠΊ свободному USB-ΠΏΠΎΡ€Ρ‚Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ SWDIO, SWCLK ΠΈ GND ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π²Ρ‹Π²ΠΎΠ΄Π°ΠΌΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° STM32.


Настройка срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для STM32 ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ST-Link. НСобходимо Π² настройках ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ST-Link Π² качСствС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°/ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ для STM32

Помимо ST-Link ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ STM32:

J-Link

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ J-Link ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ SEGGER — это ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ STM32. ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ J-Link:

  • Высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ программирования ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SWD ΠΈ JTAG
  • Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности трассировки
  • Π‘ΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ срСд Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Основной нСдостаток J-Link — высокая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… устройств.

Black Magic Probe

Black Magic Probe (BMP) — это ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°-ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° для ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ARM Cortex-M. ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности:

  • ВстроСнный GDB-сСрвСр
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SWD ΠΈ JTAG
  • Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ UART для Π²Ρ‹Π²ΠΎΠ΄Π° ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ
  • ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ обСспСчСниС

BMP ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π° Π±Π°Π·Π΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ², Π²ΠΊΠ»ΡŽΡ‡Π°Ρ STM32F103.


FTDI-based ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹

Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ Π½Π° Π±Π°Π·Π΅ микросхСм FTDI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ JTAG. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Ρ‚Π°ΠΊΠΈΡ… устройств:

  • Altera USB Blaster
  • Xilinx Platform Cable USB

Для использования с STM32 ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ настройки ΠΈ Π½Π΅ всСгда ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠ² для STM32

Рассмотрим основныС характСристики Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠ² для STM32:

Π₯арактСристикаST-LinkJ-LinkBlack Magic ProbeFTDI-based
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° SWDДаДаДаНСт
ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° JTAGΠ”Π°Π”Π°Π”Π°Π”Π°
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ программированияБрСдняяВысокаяБрСдняяНизкая
ВозмоТности ΠΎΡ‚Π»Π°Π΄ΠΊΠΈΠ₯ΠΎΡ€ΠΎΡˆΠΈΠ΅ΠžΡ‚Π»ΠΈΡ‡Π½Ρ‹Π΅Π₯ΠΎΡ€ΠΎΡˆΠΈΠ΅Π‘Π°Π·ΠΎΠ²Ρ‹Π΅
ЦСнаБрСдняяВысокаяНизкаяНизкая

Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° зависит ΠΎΡ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π° ΠΈ Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°.

Π‘ΠΎΠ²Π΅Ρ‚Ρ‹ ΠΏΠΎ использованию ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠ² ST-Link

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ ST-Link ΠΈ ΠΈΡ… Π°Π½Π°Π»ΠΎΠ³Π°ΠΌΠΈ слСдуСт ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ нСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ²:

  1. ВсСгда провСряйтС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.
  2. ΠŸΡ€ΠΈ использовании китайских ΠΊΠ»ΠΎΠ½ΠΎΠ² ST-Link Π±ΡƒΠ΄ΡŒΡ‚Π΅ особСнно остороТны. Они Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹Ρ… Ρ†Π΅ΠΏΠ΅ΠΉ ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Ρ‹ ΠΏΡ€ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ использовании.
  3. РСгулярно обновляйтС ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° ST-Link для получСния Π½ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈ исправлСния ошибок.
  4. Если Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ интСрфСйса SWD Π² настройках.
  5. Для Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ качСствСнныС ΠΊΠ°Π±Π΅Π»ΠΈ ΠΈ соСдинСния. ΠŸΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ошибкам ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅.

БоблюдСниС этих Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ST-Link ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² STM32.



ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ST-Link β€” DiMoon Electronics

По-Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΌΡƒ, Π΄Π°Π½Π½ΡƒΡŽ Ρ‚Π΅ΠΌΡƒ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚ΡŒ Π΅Ρ‰Π΅ Π²ΠΎ 2-ΠΉ ΠΈΠ»ΠΈ 3-ΠΉ части Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° статСй. Но Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ·Π΄Π½ΠΎ, Ρ‡Π΅ΠΌ Π½ΠΈ ΠΊΠΎΠ³Π΄Π°, поэтому ΠΏΠΎΠ΅Ρ…Π°Π»ΠΈ! Π’ этой части ΠΌΡ‹ познакомимся с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠΌ ST-Link, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ STM32 ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.Β ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ ΡΡ‚Π°Ρ‚ΡŒΡΒ Π·Π΄Π΅ΡΡŒ, всС ΡΡ‚Π°Ρ‚ΡŒΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚ΡƒΡ‚:Β http://dimoon.ru/category/obuchalka/stm32f1.

Разновидности ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠ² ST-Link

Для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ STM32 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Β ST-Link, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌΡƒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ ΠΏΠΎ интСрфСйсу SWD. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅Β ST-Link-Π° ΠΈΒ SWD ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²ΡƒΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΈΠ· срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ‚ΠΎΡ‡Π΅ΠΊ останова (breakpoint). ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ установлСнных breakpoint-ΠΎΠ² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΎ нСсколькими ΡˆΡ‚ΡƒΠΊΠ°ΠΌΠΈ (Ρ‚ΠΎΡ‡Π½ΠΎ Π½Π΅ помню сколько, Π²Ρ€ΠΎΠ΄Π΅ 5 ΡˆΡ‚ΡƒΠΊ), Π½ΠΎ этого Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ достаточно для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ.

Π’ Ρ„ΠΈΡ€ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Π°Ρ… ΠΎΡ‚ ST Π½Π° Π±ΠΎΡ€Ρ‚Ρƒ имССтся ΠΈ сам Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Β ST-Link, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊ ΠΆΠ΅ сдСлан Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ STM32. К стати ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ встроСн Π² ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ внСшнСго ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° STM32. Для этих Ρ†Π΅Π»Π΅ΠΉ Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Π³Ρ€Π΅Π±Π΅Π½ΠΊΠ° Π½Π° ΠΏΠ»Π°Ρ‚Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ интСрфСйс SWD ΠΎΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, распаянного Π½Π° ΠΏΠ»Π°Ρ‚Π΅. Π’ ΠΌΠΎΠ΅ΠΌ распоряТСнии имССтся ΠΏΠ»Π°Ρ‚Π°Β stm32f4discovery, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ установлСн ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ STM32F407VG, ΠΈ эту ΠΏΠ»Π°Ρ‚Ρƒ я ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Β ST-Link:

ЕстСствСнно ΠΌΠΎΠΆΠ½ΠΎ приобрСсти ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Β ST-Link. Π’ΡƒΡ‚ Π΅ΡΡ‚ΡŒ нСсколько Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ β€” это Ρ„ΠΈΡ€ΠΌΠ΅Π½Π½Ρ‹ΠΉΒ ST-Link, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π²Π°Π΅Ρ‚ с Π³Π°Π»ΡŒΠ²Π°Π½ΠΈΡ‡Π°ΡΠΊΠΎΠΉ развязкой ΠΈ Π±Π΅Π· Π½Π΅Π΅. Выглядят эти ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Ρ‹ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” китайский ST-Link Π² Ρ„ΠΎΡ€ΠΌ-Ρ„Π°ΠΊΡ‚ΠΎΡ€Π΅ Ρ„Π»Π΅ΡˆΠΊΠΈ:

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ Π² ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅ Ρ‚ΠΎΠΆΠ΅ Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎΠΉ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π°Π΄ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρƒ Π½Π΅Π³ΠΎ Π½Π΅Ρ‚ Π½ΠΈ ΠΊΠ°ΠΊΠΈΡ… Π·Π°Ρ‰ΠΈΡ‚ интСрфСйса USB ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π΅Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹Ρ… зСмлях схСмы ΠΈ ПК, ΠšΠ— Π² ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ схСмС, ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅, Π΅ΡΡ‚ΡŒ большой шанс ΡΠΏΠ°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ вмСстС с USBΒ ΠΏΠΎΡ€Ρ‚ΠΎΠΌ Π² ΠΊΠΎΠΌΠΏΠ΅. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с этим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ΠΎΠΌ Π½Π°Π΄ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π΅Π»ΡŒΠ½ΠΎ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ!

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€Π° ST-Link ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ STM32

Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ SWD, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ ΠΈΠΌΠ΅Π΅Ρ‚ 2 Π»ΠΈΠ½ΠΈΠΈ:

  • SWDIO
  • SWCLK

Π­Ρ‚ΠΎ являСтся Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΠΎΠΌ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π² новСнький ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΈΠ»ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΈ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (ΠΈΠ· IAR-Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€). Π’ΠΎ всСх ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… STM32 Π²Ρ‹Π²ΠΎΠ΄Ρ‹ программирования совмСщСны со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠΎΡ€Ρ‚Π°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°:

  • SWDIO β€” PA13
  • SWCLK β€” PA14

Π’Ρ‹Π²ΠΎΠ΄Ρ‹ PA13 ΠΈ PA14 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΊΠ°ΠΊ самыС ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΏΠΎΡ€Ρ‚Ρ‹ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, ΠΎΠ΄Π½Π°ΠΊΠΎ, Π² этом случаС тСряСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΈΠ· срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ссли ΠΈΠ· ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΉ Π² МК, ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ настройки ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΈΠ½ΠΎΠ² PA13 ΠΈ PA14, процСсс Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ становится Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»Π΅Π½, придСтся Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ²ΠΎΠ΄, ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ ΠΈ МК: линию RESET. Π’ этом случаС, ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ,Β ST-Link

Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ сброс ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°, Ρ‚Π΅ΠΌ самым ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Ρ‚ ΠΏΠΈΠ½Ρ‹Β PA13 ΠΈ PA14 Π² состояниС ΠΏΠΎ-ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Π° ΡƒΠΆΠ΅ послС этого Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ Π² МК Π½ΠΎΠ²ΡƒΡŽ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ. Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сброса ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π² IAR-Π΅ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ настройки ST-Link-Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ Β«Reset PinΒ»:

На этом ΠΏΠΎΠΊΠ° всС, спасибо Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!!! ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅

АдаптСры JTAG с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ SWD | arm

ВСхнология JTAG ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСтся для тСстирования элСктронных устройств, Ρ‡Π°Ρ‰Π΅ всСго основанныС Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ…, CPU, CPLD ΠΈ/ΠΈΠ»ΠΈ FPGA. JTAG Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΡƒΡŽ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, Ρ‡Ρ‚Π΅Π½ΠΈΠ΅/запись памяти, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠΆΠΊΠ°ΠΌΠΈ I/O, Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ΄Π° (здСсь ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ [1]).

ВСхнология SWD (Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Serial Wire Debug) это Π±ΠΎΠ»Π΅Π΅ соврСмСнная вСрсия JTAG, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π°Ρ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² вмСсто ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ 4 Ρƒ стандартного JTAG (ΠΈΠ½ΠΎΠ³Π΄Π° добавляСтся Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ сигнал, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ количСство ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² Π΄ΠΎ 5).

SWJ это комбинация SWD ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ JTAG. Однако Π½Π° Π²Ρ‹ΡΡˆΠ΅ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΠ±Π° этих интСрфСйса ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ вариациями, зависящими ΠΎΡ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ ПО ΠΈ ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ обСспСчСния.

Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны эта Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ†Π΅Π»Π΅Π²ΠΎΠΌ устройствС (target device). ΠŸΠΎΡ€Ρ‚ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ (Debug Port) часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ JTAG-DP для JTAG ΠΈ SW-DP для SWD. Устройство с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ SWJ часто ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Π² сСбС ΠΎΠ±Π° этих стандарта, ΠΏΡ€ΠΈ этом SWD-сигналы SWDIO ΠΈ SWCLK ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ JTAG-сигналы JTMS ΠΈ JTCK (Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, SWJ обСспСчиваСт ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ JTAG). Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ 32-Π±ΠΈΡ‚Ρ‹Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² ΠΈ Ρ‡ΠΈΠΏΠΎΠ² SoC ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π° Π±ΠΎΡ€Ρ‚Ρƒ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… интСрфСйсов (ΠΈΠ»ΠΈ ΠΎΠ±Π°).

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны Π’Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ SWJ-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с устройством ΠΏΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Ρƒ JTAG ΠΈ/ΠΈΠ»ΠΈ SWD. SWJ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡ‚ΠΎΠΈΡ‚ΡŒ Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΎ (< 5$) ΠΈ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΎ (> 1000$), Π² зависимости ΠΎΡ‚ качСства Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ ПО (ΠΈ ΠΎΡ‚ Π±Ρ€Π΅Π½Π΄Π° производитСля). НиТС пСрСчислСны нСсколько описаний SWJ-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ².

[ST-Link v2]

ST-LINK/V2 это Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ ΠΎΡ‚ STMicroelectronics, ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² STM8 ΠΈ STM32 этой ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ сСрия STM32 F1. АдаптСр ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ интСрфСйсы JTAG, SWD ΠΈ SWIM (послСдний примСняСтся для STM8).

Π­Ρ‚ΠΈ SWJ-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹ основаны Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°Ρ… STM32F1xx ARM Cortex M3. Π›ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ Π½Π° основС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° STM32F1xx примСняСтся для программирования ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… ΠΆΠ΅ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² STM32F1xx.

ИспользованиС ST-LINK/V2 Π½Π° Linux. Для Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ использования сначала Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ этому устройству (ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ udev, основанноС Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Ρ… VID ΠΈ PID Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… lsusb). Π­Ρ‚ΠΎ дСлаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ для нСпосрСдствСнного использования:

echo -n 'ST-Link V2 SWJ adapter' | sudo tee -a /etc/udev/rules. d/60-st-linkv2.rules
echo -n 'ATTR{idVendor}=="0483", ATTR{idProduct}=="3748", MODE="0666"' | sudo tee
 -a /etc/udev/rules.d/60-st-linkv2.rules
sudo udevadm control --reload-rules

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌ STM32F1xx ARM Cortex M3 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ OpenOCD [9]:

openocd --file interface/stlink-v2.cfg --file target/stm32f1x.cfg
 
Open On-Chip Debugger 0.10.0-dev-00189-g554313b (2016-01-12-10:52)
Licensed under GNU GPL v2
For bug reports, read
   http://openocd.org/doc/doxygen/bugs.html
Info : auto-selecting first available session transport "hla_swd". To override
 use 'transport select < transport >'.
Info : The selected transport took over low-level target control. The results
 might differ compared to plain JTAG/SWD
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
none separate
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : Unable to match requested speed 1000 kHz, using 950 kHz
Info : clock speed 950 kHz
Info : STLINK v2 JTAG v17 API v2 SWIM v4 VID 0x0483 PID 0x3748
Info : using stlink api v2
Info : Target voltage: 3. 534945
Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints

[Клон ST-LINK/V2]

Π­Ρ‚ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ содранный с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π° ST-LINK/V2. Он поставляСтся Π² Ρ‚Π°ΠΊΠΎΠΌ ΠΆΠ΅ корпусС, с Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅ кабСлями, выглядит Ρ‚Π°ΠΊ ΠΆΠ΅, сохранСно Π΄Π°ΠΆΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ‹ (MB936). Но сама ΠΏΠ»Π°Ρ‚Π° Π½Π΅ такая ΠΆΠ΅, список Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ (BOM) Π½Π΅ совпадаСт с ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ.

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ снабТСн Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚ΠΎΠΉ ΠΎΡ‚ статичСского элСктричСства, Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹ΠΌΠΈ рСзисторами ΠΈ трансивСром, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с уровнями сигнала ΠΎΡ‚ 1.65V Π΄ΠΎ 5.5V. Π’ ΠΊΠ»ΠΎΠ½Π΅ это ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отсутствуСт, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ сигналы интСрфСйса Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ€ΠΎΠ²Π½ΠΈ сигналов 3.3V Π½Π° ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ/ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ систСмС, ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° 5V, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΏΠΎ Π²Ρ…ΠΎΠ΄Ρƒ ΡƒΡ€ΠΎΠ²Π½ΠΈ 5V (5V tolerant).

Π­Ρ‚ΠΎΡ‚ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ стоит $9, Ρ‡Ρ‚ΠΎ довольно ΠΌΠ½ΠΎΠ³ΠΎ. Если Π½Π΅ Π½ΡƒΠΆΠ΅Π½ JTAG, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, описанный Π½ΠΈΠΆΠ΅.

[ST-LINK V2 aluminium]

Π­Ρ‚ΠΈ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρ‹ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² малСньком алюминиСвом корпусС, стоит порядка $2. 5. Они ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ SWD ΠΈ SWIM (для STM8), Π½ΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ JTAG. Π­Ρ‚ΠΎ вСроятно самый Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ ΠΊΠ»ΠΎΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ. ВСроятно, такая низкая Ρ†Π΅Π½Π° обусловлСна Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ STM32F101. Π’ сравнСнии с STM32F103 возмоТности Ρƒ STM32F101 мСньшС, Π½ΠΎ всС-Ρ‚Π°ΠΊΠΈ это Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ USB! ВСроятно, Ρ‡Ρ‚ΠΎ Ρƒ STM32F101 Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый кристалл, Ρ‡Ρ‚ΠΎ ΠΈ STM32F103, ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый корпус, просто STM32F101 ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΡ‚Π±Ρ€Π°ΠΊΠΎΠ²ΠΊΠΈ STM32F103. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ дСкларируСтся, Ρ‡Ρ‚ΠΎ Ρƒ STM32F103C8 Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 64 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π° памяти flash, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»Π½Ρ‹ΠΉ тСст ΠΎΠ½ΠΈ Π½Π΅ ΠΏΡ€ΠΎΡˆΠ»ΠΈ, Π² сравнСнии с 128 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°ΠΌΠΈ STM32F103CB, Π½ΠΎ Π½Π° Π±ΠΎΡ€Ρ‚Ρƒ STM32F103C8 часто Π΅ΡΡ‚ΡŒ большС памяти (Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ эту ΠΏΠ°ΠΌΡΡ‚ΡŒ Π½Π° ошибки ΠΏΡƒΡ‚Π΅ΠΌ чтСния/записи).

БущСствуСт нСсколько вСрсий ΠΏΠ»Π°Ρ‚ этого Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°, ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Ρ†ΠΎΠΊΠΎΠ»Π΅Π²ΠΊΠ°.

2014-06-22 ST-LINK V2. НиТС ΠΏΠΎΠΊΠ°Π·Π°Π½Π° схСма ΠΈ внСшний Π²ΠΈΠ΄ этих Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠ².

Π’ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ интСрСсный Ρ‚Ρ€ΡŽΠΊ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π²ΡƒΡ… свСтодиодов (LED) Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π½ΠΎΠΆΠΊΠ΅ ΠΏΠΎΡ€Ρ‚Π° (PA9):

β€’ Когда Π½ΠΎΠΆΠΊΠ° Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΏΠΎΡ€Ρ‚Π° установлСна Π² Π»ΠΎΠ³. 1, заТигаСтся ΠΎΠ΄ΠΈΠ½ свСтодиод
β€’ Когда эта ΠΆΠ΅ Π½ΠΎΠΆΠΊΠ° пСрСводится Π² Π»ΠΎΠ³. 0, заТигаСтся Π΄Ρ€ΡƒΠ³ΠΎΠΉ свСтодиод
β€’ Когда Π½ΠΎΠΆΠΊΠ° пСрСводится Π² состояниС висящСго Π²Ρ…ΠΎΠ΄Π°, ΠΎΠ±Π° свСтодиода Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ
β€’ Когда Π²Ρ‹Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ШИМ (PWM), Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ эти 2 Ρ†Π²Π΅Ρ‚Π° свСтодиодов (красный ΠΈ синий). Π­Ρ‚ΠΎ происходит ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π³Π»Π°Π· Π½Π΅ Π·Π°ΠΌΠ΅Ρ‡Π°Π΅Ρ‚ быстрых ΠΌΠ΅Ρ€Ρ†Π°Π½ΠΈΠΉ, свСтодиоды находятся рядом ΠΈ свСтят Π² ΠΌΠ°Π»Π΅Π½ΡŒΠΊΡƒΡŽ Π΄Ρ‹Ρ€ΠΊΡƒ ΠΏΠΎ Ρ†Π΅Π½Ρ‚Ρ€Ρƒ.

Π’ΠΎΡ‚ ΠΆΠ΅ самый Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, Π½ΠΎ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ†ΠΎΠΊΠΎΠ»Π΅Π²ΠΊΠΎΠΉ. Выглядит ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, Π½ΠΎ Ρ†ΠΎΠΊΠΎΠ»Π΅Π²ΠΊΠ° сигналов Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° сильно отличаСтся (ΠΊΡ€ΠΎΠΌΠ΅ питания), ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ свСтодиод. На ΠΏΠ»Π°Ρ‚Π΅ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ сигналов.

2016-01-18 MX-LINK V2. Π£ этого Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏ «M» вмСсто Π»ΠΎΠ³ΠΎΡ‚ΠΈΠΏΠ° ST, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ соотвСтствуСт ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ «MX-LINK V2» Π½Π° ΠΏΠ»Π°Ρ‚Π΅.

[Baite]

Π­Ρ‚ΠΎ Π°Π½Π°Π»ΠΎΠ³ ST-Link V2 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ JTAG, SWD ΠΈ SWIM (для STM8) [2].

Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ [1] сдСлал для этого Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° стикСр с Ρ†ΠΎΠΊΠΎΠ»Π΅Π²ΠΊΠΎΠΉ сигналов.

Автор Ρ‚Π°ΠΊΠΆΠ΅ пСрСрисовал ΠΏΠΎ ΠΏΠ»Π°Ρ‚Π΅ схСму. ВсС Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€Π° Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹ рСзисторами 220 ΠΎΠΌ.

Baite-V2A. Π‘ΠΎΠ»Π΅Π΅ новая вСрсия ΠΏΡ€ΠΎΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²Π°Π½Π° «V2A» (ΠΏΠΎΠ΄ ΠΊΠ²Π°Ρ€Ρ†Π΅ΠΌ), Π½ΠΎ схСма ΠΏΠΎΡ‡Ρ‚ΠΈ такая ΠΆΠ΅, со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ измСнСниями:

β€’ ΠŸΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ всС Π½ΠΎΠΆΠΊΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° (Π΅ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ маска ΠΏΠ°ΠΉΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ).
β€’ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠΎΡ€Ρ‚ SWD.
β€’ STM32F103C8 Π·Π°ΠΌΠ΅Π½Π΅Π½ Π½Π° STM32F101CB, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ STM32F103 (Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… Π΄Π΅ΡˆΠ΅Π²Ρ‹Ρ… Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π°Ρ…).
β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ пассивныС элСмСнты мСньшСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.
β€’ НСкачСствСнная Ρ€Π°Π·Π²ΠΎΠ΄ΠΊΠ° ΠΏΠ»Π°Ρ‚Ρ‹.

[Black Magic Probe]

АдаптСр Black Magic Probe [3] (извСстный ΠΊΠ°ΠΊ BMP) ΠΎΡ‡Π΅Π½ΡŒ интСрСсный SWJ-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Π½Π΅Π³ΠΎ встроСн сСрвСр GDB. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ сСрвСр OpenOCD, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ SWJ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ GDB ΠΊ этому Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Ρƒ (Ρ‡Π΅Ρ€Π΅Π· Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ USB CDC ACM).

Π’ этом Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π΅ Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚ UART (Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΊΠ°Π½Π°Π» USB CDC ACM). Π­Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π±Π΅Π· Ρ‚ΠΎΡ‡Π΅ΠΊ останова (для ΠΎΠ±ΠΌΠ΅Π½Π° сообщСниями printf).

ΠŸΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΠ°Ρ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ нСдостатки:

β€’ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€ ARM Cortex SWJ с малСньким шагом.
β€’ ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ UART ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ всСгда (UART Ρ‚Π°ΠΊΠΆΠ΅ доступСн Π½Π° ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€Π΅ SWJ).
β€’ Π”ΠΎΡ€ΠΎΠ³ΠΎΠΉ (> $50), Π½ΠΎ эта Ρ†Π΅Π½Π° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ разумная, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

Из-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ firmware этого Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ (open source), Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Ρƒ, ΠΈ Π½Π°Ρ€ΠΎΠ΄ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ этим ΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ [4]. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ [5] Π½Π° blue pill [6]. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ½ Π±Ρ‹Π» ΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ ΠΈ Π½Π° ΠΊΠ»ΠΎΠ½ ST-Link V2 [7], Π½ΠΎ Π½Π° Π½Π΅ΠΌ большС Π½Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ UART. Автор Ρ€Π΅ΡˆΠΈΠ» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚ Π½Π° baite [2]. На ΠΊΠΎΠ½Π½Π΅ΠΊΡ‚ΠΎΡ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ мСньшС Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² питания, Π½ΠΎ Π·Π°Ρ‚ΠΎ получаСтся достаточно Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² для добавлСния UART (ΠΈ SRST).

Π‘Π±ΠΎΡ€ΠΊΠ° firmware (оТидаСтся ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ°Ρ‚Ρ‡Π°):

git clone https://github.com/tsaitgaist/blackmagic.git
cd blackmagic
git submodule init
git submodule update
git checkout baite-platform
# if you are usgin GCC >= 7
git cherry-pick 2ebcffa2a4911090b43c36594dae6b58d4bb2f27
make
cd src
make clean
make PROBE_HOST=baite

ПослС получСния Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ ΠΈΠΌ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ Baite. Как Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎ схСмС, Π²Ρ‹Π²ΠΎΠ΄Ρ‹ JTAG ΠΈ SWD ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ (Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Π½Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹Ρ… ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΎΠΊ, ΠΊΡƒΠ΄Π° эти Π²Ρ‹Π²ΠΎΠ΄Ρ‹ припаяны). Но Π½Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ сторонС ΠΏΠ»Π°Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Ρ‡Π΅Ρ€Π΅Π· serial bootloader:

Π’Ρ‹Π²ΠΎΠ΄ Π‘ΠΈΠ³Π½Π°Π»
1 (ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ) RX
2 TX
3 BOOT0
4 +5V
5 GND

Для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ любой ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ USB — TTL UART, ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ ΠΊ этому ΠΏΠΎΡ€Ρ‚Ρƒ. НС ΠΏΠΎΠ΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π° Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ Baite Ρ‡Π΅Ρ€Π΅Π· USB, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Π΅Π³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ Π² Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ (Π½Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ serial bootloader). ВмСсто этого ΠΏΠΎΠ΄Π°ΠΉΡ‚Π΅ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€ USB — UART. Для запуска serial bootloader Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠΎΠ΄Π°Ρ‡ΠΈ питания Π½Π° Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ Π½ΡƒΠΆΠ½ΠΎ пСрСвСсти сигнал BOOT0 Π² Π»ΠΎΠ³. 1 ΠΏΡƒΡ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΅Π³ΠΎ ΠΊ +3.3V ΠΈΠ»ΠΈ ΠΊ DTR (ΠΈΠ»ΠΈ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ сигналу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π² Π»ΠΎΠ³. 1 Π½Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π΅Ρ€Π΅ USB — UART).

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ Black Magic firmware Π°Π²Ρ‚ΠΎΡ€ использовал stm32flash. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ flash Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π° ΠΎΡ‚ чтСния/записи, сначала Π½ΡƒΠΆΠ½ΠΎ ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ эти Π±ΠΈΡ‚Ρ‹ ΠΎΠΏΡ†ΠΈΠΉ.

# disable flash read protection
stm32flash -k /dev/ttyUSB0
# disable flash write protection
stm32flash -u /dev/ttyUSB0
# erase flash
stm32flash -o /dev/ttyUSB0
# flash the DFU bootloader
stm32flash -w src/blackmagic_dfu.bin -v /dev/ttyUSB0
# flash the main firmware
stm32flash -w src/blackmagic.bin -v -S 0x08002000 /dev/ttyUSB0

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ этот Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ основан Π½Π° ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ STM32F103C8 с 64 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°ΠΌΠΈ flash, DFU bootloader Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 56 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ памяти flash для основного прилоТСния. Blackmagic firmware ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ этот Ρ€Π°Π·ΠΌΠ΅Ρ€, поэтому Π΅Π³ΠΎ нСльзя ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ, Ссли ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС DFU Π½Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅. Π£ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° STM32F103C8 часто Π΅ΡΡ‚ΡŒ 128 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚ flash, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ всС Π΅Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ blackmagic firmware, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ serial bootloader (ΠΏΠΎ адрСсу 0x08002000). ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π²ΠΎ врСмя ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ (verification) Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ вСсь ΠΊΠΎΠ΄ firmware Π±Ρ‹Π» ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ записан.

ΠžΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Baite, ΠΈ снова ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· USB. Π’ Π½Π΅ΠΌ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒΡΡ основноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΈ опСрационная систСма хоста Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΡ‚ΡŒ Π΄Π²Π° ΠΏΠΎΡ€Ρ‚Π° USB CDC ACM.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ устройство ΠΈΠ· основного прилоТСния, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ dfu-util (Ссли Π’Ρ‹ смоТСтС пСрСвСсти dfu-util Π² состояниС игнорирования ограничСния ΠΏΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ памяти):

dfu-util -d 1d50:6018 -s 0x08002000:leave -D blackmagic.bin

Π¦ΠΎΠΊΠΎΠ»Π΅Π²ΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ «BMP Baite»:

Π‘ΠΈΠ³Π½Π°Π» Π’Ρ‹Π²ΠΎΠ΄ Π’Ρ‹Π²ΠΎΠ΄Β  Π‘ΠΈΠ³Π½Π°Π»
Β  Β  Β  Β  Β  Β  Β  Β SRTST 1 2 +3. 3V
+5V 3 4 JTCK/SWCLK
RX 5 (ΠΊΠ»ΡŽΡ‡) 6 JTMS/SWDIO
GND 7 8 JTDO/TRACESWO
TX 9 10 JTDI

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π²Ρ‹Π²ΠΎΠ΄ RX подтягиваСтся ΠΊ Π»ΠΎΠ³. 1 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСзистора 620 ΠΎΠΌ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ TX, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊ BMP Baite, Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΡƒΡŽ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Ρ‚ΡΠ½ΡƒΡ‚ΡŒ сигнал ΠΊ Π»ΠΎΠ³. 0 (скорСС всСго, USB — UART Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Ch440 это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ смоТСт).

Если Π’Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ SRST ΠΊ сигналу NRST Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ систСмы, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄Π°Π²Π°Ρ‚ΡŒ Π½Π° Π½Π΅Ρ‘ сброс Π±Π΅Π· наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ сброса Π½Π° ΠΏΠ»Π°Ρ‚Π΅ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ систСмы (Ссли ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ такая ΠΊΠ½ΠΎΠΏΠΊΠ° Π΅ΡΡ‚ΡŒ). Π‘ΠΈΠ³Π½Π°Π» сброса гСнСрируСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

gdb --eval-command="target extended-remote /dev/ttyACM0"
 --eval-command="monitor hard_srst" --eval-command="quit"

[Altera USB-Blaster]

USB-Blaster это Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Altera. Он часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ FPGA, Π½ΠΎ ΠΏΠΎ сути это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ JTAG.

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅:Β  Π²Ρ‹Π²ΠΎΠ΄ VCC{TARGET} ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΎΠΏΠΎΡ€Π½ΠΎΠΌΡƒ Π½Π°ΠΏΡ€ΡΠΆΠ΅Π½ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΌΡƒ для ΠΎΠ±ΠΌΠ΅Π½Π° JTAG, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ прСдоставляСмому ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚ΠΎΠΉ Ρ†Π΅Π»Π΅Π²ΠΎΠ³ΠΎ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ устройства (часто это напряТСниС 3.3V ΠΈΠ»ΠΈ 1.8V). Π˜Π½Π°Ρ‡Π΅ сигналы Π½Π΅ смогут ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ΠΎΠΌ JTAG.

Π‘Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° для ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΌΠΎΠ³ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ устройству (ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ udev Π½Π° основС ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² VID ΠΈ PID, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… lsusb). Π­Ρ‚ΠΎ дСлаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΏΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ ΠΊΠ°ΠΊ устройство ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ для нСпосрСдствСнного использования:

echo -n 'Altera USB-Blaster JTAG adatper' | sudo tee
 -a /etc/udev/rules.d/60-altera-usb-blaster.rules
echo -n 'ATTR{idVendor}=="09fb", ATTR{idProduct}=="6001", MODE="666"'
 | sudo tee -a /etc/udev/rules.d/60-altera-usb-blaster.rules
sudo udevadm control --reload-rules

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ OpenOCD для USB-Blaster, Ρ‡Ρ‚ΠΎΠ±Ρ‹ использовалась Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libftdi (Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅ ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это ΠΊΠ»ΠΎΠ½).

git clone http://git.code.sf.net/p/openocd/code openocd-code
cd openocd-code
./bootstrap
./configure --enable-usb_blaster_libftdi
make
sudo make install
cd ..

Π˜Π½Π°Ρ‡Π΅ OpenOCD зависаСт, загруТая Π½Π° 100% CPU, ΠΈ Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ±ΠΈΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ -KILL.

openocd --file interface/altera-usb-blaster.cfg
 
Open On-Chip Debugger 0.10.0-dev-00189-g554313b (2016-01-12-11:26)
Licensed under GNU GPL v2
For bug reports, read
   http://openocd.org/doc/doxygen/bugs.html
Warn : Adapter driver 'usb_blaster' did not declare which transports it allows;
 assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
none separate
cortex_m reset_config sysresetreq
Info : No lowlevel driver configured, will try them all
Info : Altera USB-Blaster II found (Firm. rev. = 6??)
Info : This adapter doesn't support configurable speed
openocd --debug 3 --file interface/altera-usb-blaster. cfg
 
...
Debug: 385 845 tcl.c:497 handle_nand_init_command(): Initializing NAND devices...
Debug: 386 845 command.c:145 script_debug(): command - ocd_command ocd_command type ocd_pld init
Debug: 387 845 command.c:145 script_debug(): command - ocd_pld ocd_pld init
Debug: 389 846 pld.c:207 handle_pld_init_command(): Initializing PLDs...

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, ΠΏΡ€ΠΈΠΌΠ΅Ρ€ с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ STM32F1:

openocd --file interface/altera-usb-blaster.cfg --file target/stm32f1x.cfg
 
Open On-Chip Debugger 0.10.0-dev-00189-g554313b (2016-01-12-16:26)
Licensed under GNU GPL v2
For bug reports, read
   http://openocd.org/doc/doxygen/bugs.html
Warn : Adapter driver 'usb_blaster' did not declare which transports it allows;
 assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
jtag_ntrst_delay: 100
none separate
cortex_m reset_config sysresetreq
Info : No lowlevel driver configured, will try them all
Info : usb blaster interface using libftdi
Error: unable to get latency timer
Info : This adapter doesn't support configurable speed
Info : JTAG tap: stm32f1x. cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG tap: stm32f1x.bs tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Info : stm32f1x.cpu: hardware has 6 breakpoints, 4 watchpoints

ΠžΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ Altera USB-Blaster ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‡ΠΈΠΏΡ‹ FTDI FT245 ΠΈ MAX CPLD. Π˜ΠΌΠ΅Π΅Ρ‚ΡΡ мноТСство Π΅Π³ΠΎ ΠΊΠ»ΠΎΠ½ΠΎΠ² Ρ€Π°Π·Π½ΠΎΠ³ΠΎ качСства ΠΈ Ρ€Π°Π·Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ² напряТСния.

[SiLabs USB-Blaster]

Π—Π΄Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ C8051F321 ΠΎΡ‚ Silicon Labs ΠΈ 4-ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€ 74LVC125 (для прСобразования ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ сигналов Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΡ‚ 1.65V Π΄ΠΎ 3.6V).

[PIC USB-Blaster]

Π­Ρ‚ΠΎΡ‚ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ PIC18F14 ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microchip, Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² (ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сигналы с уровнями 5V).

[ARMJISHU USB-Blaster]

Π—Π΄Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ STM32F101 ΠΎΡ‚ ST (ΠΊΠ°ΠΊ STM32F103 с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ USB) ΠΈ 8-ΠΊΠ°Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±ΡƒΡ„Π΅Ρ€ 74HC244 (для прСобразования ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΎΡ‚ 2. 0V Π΄ΠΎ 6.0V).

На схСмС Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сигналами (Π½Π° 3.3V) Π² случаС, ΠΊΠΎΠ³Π΄Π° Vcc_target Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½, ΠΈ Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ слот ΠΊΠ°Ρ€Ρ‚ uSD ΠΈΠ»ΠΈ ΠΏΠ°ΠΌΡΡ‚ΡŒ SPI flash. НС извСстно, поддСрТиваСтся Π»ΠΈ этот Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии.

[SEGGER J-Link]

O-Link-ARM V8 [8], ΠΊΠ»ΠΎΠ½ SEGGER J-Link.

ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ JTAG, SWD, SWO, RTCK ΠΈ ΠΎΠΏΠΎΡ€Π½ΠΎΠ΅ напряТСниС для Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ этот JTAG-Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½Ρ‹ΠΌ.

[Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° сканирования JTAG]

ΠœΠΈΠΊΡ€ΠΎΡΡ…Π΅ΠΌΡ‹ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ JTAG ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΡ‡ΠΊΠΈ тСстирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Test Access Points (TAP). Один ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ нСсколько TAP, соСдиняСмых Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ (scan chain). НСсколько микросхСм с TAP-ΠΌΠΈ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ соСдинСны (сигналами Π½Π° ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅) Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, это позволяСт ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ всС устройства Π½Π° ΠΏΠ»Π°Ρ‚Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ JTAG. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ TAP ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (IDCODE) ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ.

Иногда ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ всС доступныС TAP-Ρ‹ Π½Π° Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡ‚ΡŒ устройства Π² систСмС. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ просто ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ПО urJTAG [10]. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с USB Blaster:

jtag
 
UrJTAG 0.10 #2007
Copyright (C) 2002, 2003 ETC s.r.o.
Copyright (C) 2007, 2008, 2009 Kolja Waschk and the respective authors
 
UrJTAG is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
There is absolutely no warranty for UrJTAG.
 
warning: UrJTAG may damage your hardware!
Type "quit" to exit, "help" for help.
 
jtag> cable UsbBlaster
Connected to libftdi driver.
jtag> detect
IR length: 9
Chain length: 2
Device Id: 00111011101000000000010001110111 (0x3BA00477)
  Unknown manufacturer! (01000111011) (/usr/share/urjtag/MANUFACTURERS)
Device Id: 00010110010000010000000001000001 (0x16410041)
  Unknown manufacturer! (00000100000) (/usr/share/urjtag/MANUFACTURERS)

OpenOCD Ρ‚Π°ΠΊΠΆΠ΅ сканируСт Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ, Ссли Π½Π΅Ρ‚ прСдоставлСнных target (ΠΊΠ°ΠΊΠΎΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, всС-Ρ‚Π°ΠΊΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½ΠΎ):

openocd --file interface/altera-usb-blaster. cfg
 
Open On-Chip Debugger 0.10.0-dev-00189-g554313b (2016-01-12-16:26)
Licensed under GNU GPL v2
For bug reports, read
   http://openocd.org/doc/doxygen/bugs.html
Warn : Adapter driver 'usb_blaster' did not declare which transports it allows;
 assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
Info : No lowlevel driver configured, will try them all
Info : usb blaster interface using libftdi
Error: unable to get latency timer
Info : This adapter doesn't support configurable speed
Warn : There are no enabled taps.  AUTO PROBING MIGHT NOT WORK!!
Info : JTAG tap: auto0.tap tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3)
Info : JTAG tap: auto1.tap tap/device found: 0x16410041 (mfg: 0x020, part: 0x6410, ver: 0x1)
Warn : AUTO auto0.tap - use "jtag newtap auto0 tap -irlen 4 -expected-id 0x3ba00477"
Warn : AUTO auto1.tap - use "jtag newtap auto1 tap -irlen 5 -expected-id 0x16410041"
Warn : gdb services need one or more targets defined

0x3ba00477 соотвСтствуСт Cortex-M3 TAP, ΠΈ 0x16410041 boundary scan TAP, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° STM32F1xx.

Π₯отя ST-Link v2 с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°ΠΌΠΈ ST Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ SWD, ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ JTAG. Оба этих ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ High Level Adapter (HLA). Но всС выглядит Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π±ΡƒΠ΄Ρ‚ΠΎ scan chain Π½Π΅ поддСрТиваСтся Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ HLA.

openocd --file interface/stlink-v2.cfg -c "transport select hla_jtag" -c "adapter_khz 100"
 
Open On-Chip Debugger 0.10.0-dev-00189-g554313b (2016-01-12-16:26)
Licensed under GNU GPL v2
For bug reports, read
   http://openocd.org/doc/doxygen/bugs.html
hla_jtag
adapter speed: 100 kHz
Info : clock speed 100 kHz
Error: BUG: current_target out of bounds

[Бсылки]

1. SWJ adapters site:wiki.cuvoodoo.info.
2.Β Best Quality~ST-Link stlink V2 for STM8S STM8L STM32 Cortex-M0 Cortex-M3 SWIM JTAG SWD interface Programmer site:aliexpress.com.
3.Β blacksphere/blackmagic site:github. com.
4. blacksphere/blackmagic Supported Hardware site:github.com.
5.Β Converting an STM32F103 board to a Black Magic Probe site:medium.com.
6. blue pill site:wiki.cuvoodoo.info.
7. Cheap Chinese ST-Link v.2 Programmer converted to Black Magic Probe Debugger site:blog.linuxbits.io.
8. FREE SHIPPING V8 ARM Emulator,supports ARM7,ARM9,ARM11,Cortex-M3 core,ADS,IAR,STM32 Emulator + Adapter converter site:aliexpress.com.
9.Β OpenOCD: руководство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½Π°Ρ‡Π°Π»ΠΎ.
10. UrJTAG: бСсплатный инструмСнтарий JTAG.
11. Π¦ΠΎΠΊΠΎΠ»Π΅Π²ΠΊΠ° интСрфСйсов JTAG.

Руководство: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° | ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ STM32-base

Π’ этом нСбольшом руководствС ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊ ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅. Π•ΡΡ‚ΡŒ Π΄Π²Π° ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Ρ€Π°Π·ΡŠΠ΅ΠΌΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ интСрфСйс SWD (Serial Wire Debug) ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ интСрфСйс JTAG.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠ»Π°Ρ‚ ST Nucleo ΠΈ Discovery

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚ ST Nucleo ΠΈΠ»ΠΈ Discovery, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ внСшний ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. Π­Ρ‚ΠΈ ΠΏΠ»Π°Ρ‚Ρ‹ ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ со встроСнным ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ ST-LINK/V2. ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρƒ Ρ‡Π΅Ρ€Π΅Π· USB ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ, ΠΈ Π²Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅!

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ китайских ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΌΠ½ΠΎΠ³ΠΈΡ… китайских ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚, Π²Π°ΠΌ, скорСС всСго, потрСбуСтся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ внСшний ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ устройства Π½Π° ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ эти ΠΏΠ»Π°Ρ‚Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ встроСнного Π‘Π’-Π›Π˜ΠΠš/V2.

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠ°ΠΊΠ΅Ρ‚Π½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ ΠΊ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΡƒ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ 4-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΠ΅ΠΌ SWD, Ссли ΠΎΠ½ имССтся. Π­Ρ‚ΠΎΡ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ являСтся муТским Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ dupont, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ ТСнскиС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ. Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ прСдоставляСт ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ зазСмлСния, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ +3,3 Π’, ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ синхронизации ΠΈ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π΄Π°Π½Π½Ρ‹Ρ….

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ порядка располоТСния этих ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² Π½Π΅Ρ‚.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: НС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ +3,3 Π’, Ссли Π²Ρ‹ ΠΏΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΏΠ»Π°Ρ‚Ρƒ ΠΎΡ‚ внСшнСго источника, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ китайских ΠΌΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°Ρ… питания. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ‹, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ΠΈΠ»ΠΈ ПК.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ прСдставлСн ΠΎΠ±Π·ΠΎΡ€ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

НазначСниС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡˆΡ‚ΠΈΡ„Ρ‚
Π¨Ρ‚ΠΈΡ„Ρ‚ зазСмлСния ЗСмля ЗСмля
ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ +3,3 Π’ Π’ΠšΠš / Π’Π”Π” / 3,3 Π’ Π’ΠšΠš / Π’Π”Π” / 3,3 Π’
Часовой ΡˆΡ‚ΠΈΡ„Ρ‚ SWCLK / SWCK CLK / SWCLK
ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π’Π”Π˜Πž DIO / SWDIO

Если ваша макСтная ΠΏΠ»Π°Ρ‚Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ 4-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° SWD, скорСС всСго, ΠΈΠΌΠ΅Π΅Ρ‚ 20-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΠ΅ΠΌ JTAG. Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·ΡŠΠ΅ΠΌ прСдоставляСт всС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ JTAG. Бюда входят ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ SWD. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π½ΠΈΠΆΠ΅ для ΠΎΠ±Π·ΠΎΡ€Π° Ρ‚ΠΈΠΏΠΈΡ‡Π½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ARM JTAG.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: НС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ +3,3 Π’, Ссли Π²Ρ‹ ΠΏΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΏΠ»Π°Ρ‚Ρƒ ΠΎΡ‚ внСшнСго источника, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ китайских ΠΌΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°Ρ… питания. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ‹, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ΠΈΠ»ΠΈ ПК.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ прСдставлСн ΠΎΠ±Π·ΠΎΡ€ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

НазначСниС ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡˆΡ‚ΠΈΡ„Ρ‚
Π¨Ρ‚ΠΈΡ„Ρ‚ зазСмлСния ЗСмля ЗСмля
ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ +3,3 Π’ Π’ΠšΠš / Π’Π”Π” / 3,3 Π’ Π’ΠšΠ¦
Часовой ΡˆΡ‚ΠΈΡ„Ρ‚ SWCLK / SWCK Π‘Π’ΠšΠ›Πš
ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π’Π”Π˜Πž Π‘Π’Π”Π˜Πž

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌ GPIO

Если Ρƒ вас Π΅ΡΡ‚ΡŒ макСтная ΠΏΠ»Π°Ρ‚Π° Π±Π΅Π· Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° SWD ΠΈΠ»ΠΈ JTAG, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΠΎΡ€Ρ‚Π°ΠΌ GPIO. По сути, это Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‡Ρ‚ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ вашСго ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Ρ‡Π΅Ρ€Π΅Π· SWD ΠΈΠ»ΠΈ JTAG-Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, хотя ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΎΠ»Π΅Π΅ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΎ.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅: НС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ +3,3 Π’, Ссли Π²Ρ‹ ΠΏΠΈΡ‚Π°Π΅Ρ‚Π΅ ΠΏΠ»Π°Ρ‚Ρƒ ΠΎΡ‚ внСшнСго источника, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ китайских ΠΌΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π½Π° ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°Ρ… питания. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ ΠΏΠ»Π°Ρ‚Ρ‹, ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° ΠΈΠ»ΠΈ ПК.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ прСдставлСн ΠΎΠ±Π·ΠΎΡ€ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ:

Ѐункция ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π° ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡˆΡ‚ΠΈΡ„Ρ‚
Π¨Ρ‚ΠΈΡ„Ρ‚ зазСмлСния ЗСмля Π›ΡŽΠ±ΠΎΠΉ ЗСмля ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚
ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ +3,3 Π’ Π’ΠšΠš / Π’Π”Π” / 3,3 Π’ Π›ΡŽΠ±ΠΎΠΉ +3,3 Π’ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚
Часовой ΡˆΡ‚ΠΈΡ„Ρ‚ SWCLK / SWCK ПА14
ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… Π‘Π’Π”Π˜Πž ПА13

ΠžΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΈ

МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠ².

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ST-LINK/V2

ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ ST-LINK/V2 β€” это ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ производства ST Microelectronics, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ приобрСсти Ρƒ любого ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ³ΠΎ Π΄ΠΈΡΡ‚Ρ€ΠΈΠ±ΡŒΡŽΡ‚ΠΎΡ€Π° элСктроники. Π’ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ стандартному ST-LINK/V2, ST ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ST-LINK/V2-ISOL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ обСспСчиваСт Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΡƒΡŽ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ ΠΌΠ΅ΠΆΠ΄Ρƒ ПК ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚ΠΎΠΉ. Π­Ρ‚Π° изоляция Π²Ρ‹Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ напряТСниС Π΄ΠΎ 1000Π’ срСднСквадратичноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ .

Π­Ρ‚ΠΎΡ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ 20-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΠ΅ΠΌ IDC для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Ρ†Π΅Π»Π΅Π²Ρ‹ΠΌ ΠΏΠ»Π°Ρ‚Π°ΠΌ. Распиновку этого Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈΠΆΠ΅.

Nucleo ST-LINK/V2

ST-LINK/V2, встроСнный Π² ΠΏΠ»Π°Ρ‚Ρ‹ Nucleo-64 ΠΈ Nucleo-144, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°. Для использования встроСнного ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ½ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΡ‹Ρ‡ΠΊΠΈ с CN2 (Nucleo-64) ΠΈΠ»ΠΈ CN4 (Nucleo-144). Π’ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ CN4 (Nucleo-64) ΠΈΠ»ΠΈ CN6 (Nucleo-144) для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ вашСй Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅.

Π­Ρ‚ΠΎΡ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ 6-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΠ΅ΠΌ dupont для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Ρ€Π°Π·ΡŠΠ΅ΠΌΡƒ SWD Π½Π° Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Π΅. Распиновку этого Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈΠΆΠ΅.

Клон ST-LINK/V2

Бамая дСшСвая Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π° ΠΎΠ±ΠΎΠΈΠΌ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°ΠΌ ST β€” китайский ΠΊΠ»ΠΎΠ½ ST-LINK/V2. Π­Ρ‚ΠΎΡ‚ ΠΊΠ»ΠΎΠ½ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ΅ ΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ SWD. Он Π½Π΅ прСдоставляСт ΠΏΠΎΠ»Π½Ρ‹ΠΉ интСрфСйс JTAG. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ½ ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ² питания, ΠΊΠ°ΠΊ +5 Π’, Ρ‚Π°ΠΊ ΠΈ +3,3 Π’.

Π­Ρ‚ΠΎΡ‚ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ 10-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΠ΅ΠΌ IDC. Распиновку этого Ρ€Π°Π·ΡŠΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΈΠΆΠ΅.

swd — STM32 + Black Magic Probe: ΠΏΠΎΠ΄Ρ‚ΡΠ½ΡƒΡ‚ΡŒ SWDIO ΠΈ SWO?

\$\Π½Π°Ρ‡Π°Π»ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹\$

Π― Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽ схСму STM32F103 ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΅Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Black Magic.

Π― ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ» SWDIO, SWCLK ΠΈ SWO ΠΊ стандартному 10-ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π½ΠΎΠΌΡƒ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΌΡƒ Ρ€Π°Π·ΡŠΠ΅ΠΌΡƒ ARM Cortex M. Насколько я понимаю, ΠΏΡ€ΠΎΠ±Π½ΠΈΠΊ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ напряТСния Π½Π° этих линиях, ΠΈ я Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΡ… ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ, Ρ‚. Π΅. Π½ΠΈΠΊΠ°ΠΊΠΈΡ… подтягиваний ΠΈΠ»ΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ΠΈΠΉ Π½Π° этих линиях.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, оцСночная ΠΏΠ»Π°Ρ‚Π° Nucleo, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡŽ свой ΠΏΡ€ΠΎΠ΅ΠΊΡ‚, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π·ΡŠΠ΅ΠΌ JTAG, ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡŽΡ‚, β€” это слабоС подтягиваниС Π»ΠΈΠ½ΠΈΠΉ для TMS/SWDIO ΠΈ TDO/SWO с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ рСзистора 10 кОм Π΄ΠΎ 3,3 Π’:

Π”ΠΎΠ»ΠΆΠ΅Π½ Π»ΠΈ я Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ 10k pull up Π½Π° этих линиях?

АргумСнты ΠΏΡ€ΠΎΡ‚ΠΈΠ² добавлСния 10ΠΊ подтягиваний:

  • ΠŸΠ»Π°Ρ‚Π° Nucleo Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π·ΠΎΠ½Π΄ΠΎΠΌ Black Magic; ΠΎΠ½ Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π² Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΡŽΡŽ эпоху для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с устройством JTAG (вСроятно, ST-Link).

  • Если Black Magic Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ напряТСния Π½Π° этих линиях ΠΈ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹Ρ… Π΄ΠΈΠΎΠ΄ΠΎΠ² с ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌ смСщСниСм, Ρ‚ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π΅Ρ‡ΡŒ ΠΎΡ‚ ΠΏΠ»Π°Ρ‚Ρ‹-мишСни ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² Black Magic, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ±ΠΈΡ‚ΡŒ Π΅Π³ΠΎ с Ρ‚ΠΎΠ»ΠΊΡƒ ΠΈΠ»ΠΈ привСсти ΠΊ нСисправности.

  • Π― просмотрСл схСмы ΠΏΠ»Π°Ρ‚ для Ρ…ΠΎΠ±Π±ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅, ΠΏΠΎ словам людСй ΠΈΠ· Black Magic, совмСстимы с ΠΈΡ… Π·ΠΎΠ½Π΄ΠΎΠΌ, ΠΈ Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ… Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ SWDIO ΠΈΠ»ΠΈ SWO. Они просто ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΈΡ… ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ.

ЕдинствСнный Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ добавлСния 10k подтягиваний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я Π²ΠΈΠΆΡƒ, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ оцСночная ΠΏΠ»Π°Ρ‚Π° производитСля ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ являСтся самым Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΌ источником ΠΏΡ€Π°Π²Π΄Ρ‹, ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΅ΡΡ‚ΡŒ какая-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, нСизвСстная ΠΌΠ½Π΅, ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ эти строки ΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ — плохая идСя.

Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π» схСму, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ с Black Magic, ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΎΡ€ SWD, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ST-Link, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ½Π΅, подтянули Π»ΠΈ Π²Ρ‹ SWDIO ΠΈ SWO?

  • стм32
  • швд

\$\конСчная Π³Ρ€ΡƒΠΏΠΏΠ°\$

\$\Π½Π°Ρ‡Π°Π»ΠΎ Π³Ρ€ΡƒΠΏΠΏΡ‹\$

STM32 ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ рСзисторы Π½Π° Π²Ρ‹Π²ΠΎΠ΄Π°Ρ… SWD. Листы Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ STM32 Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΠ΅ ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… рСзисторах puii для ΡˆΡƒΠΌΠ½Ρ‹Ρ… срСд. Если ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ, скаТСм, с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ сопротивлСниСм 10 кОм ΠΊ VCC (ΠΈ/ΠΈΠ»ΠΈ GND), Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΎΠ± этой ΠΈΠ³Ρ€ΡƒΡˆΠΊΠ΅ ΠΈ ΠΊΡƒΠΏΠΈΡ‚Π΅ настоящий ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹ΠΉ Π°Π΄Π°ΠΏΡ‚Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ.

ПослС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² STM32 ΠΎΠ½ΠΈ ΡƒΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ стандарт IEEE JTAG прСдписываСт, Ρ‡Ρ‚ΠΎΠ±Ρ‹ сигналы ΠΈΠΌΠ΅Π»ΠΈ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ рСзисторы, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ ΠΏΠ»Π°Π²Π°Π»ΠΈ. Но Ρ‚Π°ΠΊΠΆΠ΅ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ… говорится, Ρ‡Ρ‚ΠΎ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρ‹ STM32 ΠΈΠΌΠ΅ΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ рСзисторы, поэтому внСшниС Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *