SWD распиновка: подключение и программирование микроконтроллеров STM32

Как подключить STM32 по SWD интерфейсу. Какая распиновка у SWD разъема. Как прошить STM32 через SWD с помощью ST-Link. Какие программаторы поддерживают SWD. Как настроить OpenOCD для работы с SWD.

Содержание

Что такое SWD интерфейс и зачем он нужен

SWD (Serial Wire Debug) — это отладочный интерфейс, разработанный ARM для программирования и отладки микроконтроллеров. Он пришел на смену более старому интерфейсу JTAG и имеет ряд преимуществ:

  • Использует всего 2 сигнальные линии вместо 5 у JTAG
  • Более высокая скорость обмена данными
  • Поддерживает горячее подключение (hot-plug)
  • Совместим с большинством современных микроконтроллеров ARM

SWD активно применяется для программирования и отладки микроконтроллеров STM32 и других ARM-микроконтроллеров. Он позволяет загружать прошивку, устанавливать точки останова, просматривать память и регистры процессора.

Распиновка SWD разъема

Стандартный 10-контактный разъем SWD имеет следующую распиновку:


  1. VCC (питание 3.3В)
  2. SWCLK (тактовый сигнал)
  3. GND (земля)
  4. SWDIO (двунаправленная линия данных)
  5. NRST (сброс микроконтроллера)
  6. SWO (трассировочный выход)
  7. Ключ (пропущенный контакт)
  8. NC (не подключен)
  9. GND (земля)
  10. NC (не подключен)

Минимальное подключение требует всего 4 линии: SWDIO, SWCLK, GND и питание VCC. Линии NRST и SWO опциональны.

Как подключить STM32 по SWD

Для подключения микроконтроллера STM32 по интерфейсу SWD необходимо:

  1. Подать питание на STM32 (обычно 3.3В)
  2. Соединить линию SWDIO программатора с пином PA13 микроконтроллера
  3. Соединить линию SWCLK программатора с пином PA14 микроконтроллера
  4. Соединить общий провод GND
  5. Опционально подключить NRST к выводу сброса микроконтроллера

Важно использовать подтягивающие резисторы 10 кОм на линиях SWDIO и SWCLK. Это обеспечит стабильность работы интерфейса.

Программаторы с поддержкой SWD

Наиболее популярные программаторы/отладчики с поддержкой SWD интерфейса:

  • ST-Link V2/V3 — официальный программатор от STMicroelectronics
  • J-Link от SEGGER — профессиональный отладчик с широкими возможностями
  • Black Magic Probe — открытый программатор на базе STM32F103
  • CMSIS-DAP — стандартный ARM отладчик, реализуемый на различных платформах
  • DAPLink — открытая реализация CMSIS-DAP от ARM

Также многие платы разработчика имеют встроенный программатор с поддержкой SWD, например STM32 Nucleo и Discovery.


Программирование STM32 через SWD с помощью ST-Link

ST-Link — это официальный программатор/отладчик от STMicroelectronics для работы с микроконтроллерами STM32. Он отлично поддерживает интерфейс SWD и позволяет легко программировать STM32. Процесс программирования выглядит следующим образом:

  1. Подключите ST-Link к компьютеру по USB
  2. Соедините выводы SWDIO, SWCLK и GND ST-Link с соответствующими пинами на STM32
  3. Запустите программу STM32CubeProgrammer
  4. Выберите интерфейс SWD и нажмите «Connect»
  5. Загрузите нужный hex или bin файл прошивки
  6. Нажмите «Start Programming» для записи прошивки в память STM32

ST-Link позволяет не только программировать, но и производить отладку кода, устанавливать точки останова, просматривать память и регистры процессора.

Настройка OpenOCD для работы с SWD

OpenOCD — это open-source инструмент для отладки, который поддерживает множество адаптеров и микроконтроллеров, включая STM32 по интерфейсу SWD. Для настройки OpenOCD необходимо создать конфигурационный файл, например:



# Выбор адаптера (например, ST-Link V2)
source [find interface/stlink-v2.cfg]

# Выбор транспорта SWD
transport select swd

# Настройка целевого устройства
source [find target/stm32f4x.cfg]

# Инициализация
init

# Сброс и остановка целевого устройства
reset halt

Затем запустите OpenOCD с этим конфигурационным файлом:

openocd -f stm32f4_swd.cfg

После этого можно подключиться к OpenOCD через telnet или GDB для программирования и отладки STM32 по SWD интерфейсу.

Преимущества использования SWD для STM32

Интерфейс SWD имеет ряд преимуществ при работе с микроконтроллерами STM32:

  • Занимает всего 2 вывода микроконтроллера вместо 5 у JTAG
  • Поддерживается всеми современными моделями STM32
  • Обеспечивает высокую скорость обмена данными до 4 МГц
  • Позволяет производить внутрисхемное программирование и отладку
  • Хорошо поддерживается официальными инструментами от STMicroelectronics
  • Совместим с большинством современных программаторов и отладчиков

Благодаря этим преимуществам SWD стал стандартом де-факто для работы с микроконтроллерами STM32 и активно используется разработчиками.


Возможные проблемы при работе с SWD

При использовании интерфейса SWD для программирования STM32 могут возникнуть некоторые сложности:

  • Неправильное подключение линий SWDIO и SWCLK
  • Отсутствие подтягивающих резисторов на линиях интерфейса
  • Несовпадение уровней напряжения программатора и микроконтроллера
  • Слишком длинные провода, вызывающие помехи на высоких частотах
  • Конфликты с другими интерфейсами, использующими те же выводы
  • Проблемы с драйверами программатора в операционной системе

Для устранения этих проблем следует внимательно проверить подключение, использовать качественные короткие провода и убедиться в корректности настроек программного обеспечения.


Swd распиновка

С этим вариантом все понятно и описывать его я не буду. Также нужна утилита ST-Link Utility, скачать ее можно с официального сайта st. При первом подключении неплохо было бы обновить firmware самого программатора. В окне состояния утилиты появится информация и вашем МК — это значит, что программатор подключен корректно и утилита может контактировать с МК.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам.

Содержание:

  • J-Link 19-pin Cortex-M Adapter
  • Supra SWD-403 Инструкция по эксплуатации онлайн [1/40]
  • Подключение отладчика ST-link v2 к STM32F100C8
  • Отладка по SWD STM32.
  • Вопросы по SWD и JTAG ColinkEx
  • ARM Cortex-M3 STM32F103C8T6 STM32 плата разработчика
  • ARM Cortex-M3 STM32F103C8T6 STM32 плата разработчика
  • Компактный внутрисхемный программатор/отладчик STLINK-V3 для МК STM32
  • Подключение отладчика ST-link v2 к STM32F100C8

ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: Как установить и подключить камеру заднего вида, подробная инструкция. Камера заднего хода.

J-Link 19-pin Cortex-M Adapter


Может полностью и более качественно заменить платформу Arduino, но требует больше начальных знаний. Отличный вариант для опытных разработчиков. Плата поставляется без прошивки, потому в первую очередь нужно записать её на микроконтроллер. Плата оснащена USB интерфейсом, но он используется только для связи с компьютером, и прошить через него контроллер нельзя. Далее нужно подать на плату напряжение питания или через microUSB разъем или на пины питания.

Режимы загрузки контроллера: В нашем случае нужно выбрать первую комбинацию и нажать кнопку RESET, чтобы ввести контроллер в режим прошивки. Работать с программой просто — достаточно следовать указаниям мастера загрузки. Нужно подключить программатор к контроллеру, порядок пинов может не совпадать. После этого нужно подать на плату напряжение питания или через microUSB разъем или на пины питания. Также можно подать питание от программатора. Для прошивки в этом случае нужно выбрать третью комбинацию положений джамперов и нажать кнопку RESET, чтобы ввести контроллер в режим прошивки.

После этого прошиваем микроконтроллер любой удобной для Вас программой. Если есть потребность в штыревом разъеме, его нужно соединить с платой посредством пайки. Если такой потребности нет, можно монтировать линии связи прямо к клеммам.

Питание платы может осуществляться или от USB порта компьютера, или от внешнего источника питания. Напряжение питания 2,7 — 3,6В, но на плате установлен стабилизатор напряжения, потому напряжение питания платы может быть 5В. Даташит на микроконтроллер. Подать частное объявление. Мобильное приложение. Каталог товаров.

Промышленные и оптовые товары. Оборудование и товары для предоставления услуг. Профессиональное аудио-, видео-, фото оборудование. Запчасти и комплектующие для профессионального аудио-видео оборудования.

Информация неактуальна? Все предложения продавца. В наличии. Оценка товара. Покупка без риска. Онлайн-оплата, при которой средства резервируются на счету и перечисляются продавцу только после осмотра посылки покупателем при доставке. Скидка еще 16 дней. Купить в кредит. Кредит от наших финансовых партнеров. Продавец из: г. График работы. Достижения продавца. Условия возврата. Регионы доставки.

Защищаем покупки на 3 грн. Характеристики: производитель: ST Microelectronics Ink. Отзывы о товаре. Добавить отзыв о товаре. Добавить отзыв о продавце. Павло Сделка подтверждена Prom. Цена актуальна Наличие актуально Заказ выполнен вовремя Описание актуально. Очень плохо. О нас. Другие страны. Скидка еще 16 дней Количество: Купить Купить в кредит Кредит от наших финансовых партнеров.

Детальнее Написать. Актуальность цены. Актуальность наличия. Актуальность описания. Выполнение заказа в срок.


Supra SWD-403 Инструкция по эксплуатации онлайн [1/40]

Ну например, чтобы при случайном перевернутом подключении этого разъема не повредить компоненты. Ставьте стандартный на 10 контактов — он с ключом. Здесь еще загляните. При неправильном включении ничего не горит, просто не работает.

Разъём SWD содержит 6 пинов, т.к. на STM32F4 discovery (которой я и пользуюсь) именно 6, хоть Распиновка stm32f выглядит так.

Подключение отладчика ST-link v2 к STM32F100C8

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Сегодня хочу рассказать про доработку паяльником китайского ST-Link v2. Возможно для многих это не открытие, но пусть будет информация для начинающих. Кому интересно, прошу под кат. Зачем оно надо? Используемый для отладки микроконтроллеров STM32 интерфейс SWD поддерживает передачу отладочной информации через вывод SWO в режиме реального времени, это весьма удобно. Ну а нога Reset нужна для того, чтобы можно было комфортней прошивать контроллер в случае, если интерфейс SWD отключен.

Отладка по SWD STM32.

Подключение d-link dsgMP и tp-link tl-sg по оптике Добрый день. Подскажите, для подключения вышеуказанных устройств по оптике используя SFP модули Возник такой вопрос, прошу помощи. Имеется не самый новый монитор со входами: VGA и

Сокращение расходов на оборудование , так как нет необходимости в подключении входов-выводов ПЛК; 3.

Вопросы по SWD и JTAG ColinkEx

Далее заклеил скотчем другую сторону Сперва люди вообще-то документацию на прибор раскуривают в первую очередь питалово , а потом уже паялом лезут Marketing proposal for customer feedback. Таким образом обновлять прошивку можно не прибегая к использованию внешнего программатора. Для начала прикладываем плату, как указанно ниже на фото и сверлим поверх существующих обведенные отверстия. Чтобы не повредить площадки, отверстия лучше надсверливать с одной стороны, а затем досверливать с другой.

ARM Cortex-M3 STM32F103C8T6 STM32 плата разработчика

Может полностью и более качественно заменить платформу Arduino, но требует больше начальных знаний. Отличный вариант для опытных разработчиков. Плата поставляется без прошивки, потому в первую очередь нужно записать её на микроконтроллер. Плата оснащена USB интерфейсом, но он используется только для связи с компьютером, и прошить через него контроллер нельзя. Далее нужно подать на плату напряжение питания или через microUSB разъем или на пины питания.

Разъём SWD содержит 6 пинов, т.к. на STM32F4 discovery (которой я и пользуюсь) именно 6, хоть Распиновка stm32f выглядит так.

ARM Cortex-M3 STM32F103C8T6 STM32 плата разработчика

При попытке записи программы из кейла или при попытке соединения через ст линк утилиту пишет нет соединения. Re: jtag to swd шлейф stm32, подскажите схему. Там на стр. Сейчас, возможно это исправили, не проверял.

Компактный внутрисхемный программатор/отладчик STLINK-V3 для МК STM32

ВИДЕО ПО ТЕМЕ: STM32F103C8T6+ST_LINK V2 SWD НЕ РАБОТАЕТ

Итак, сегодня распишу немного по тому, как программировать ваши микроконтроллеры, из которых вы сделали всевозможные устройства. Не будем же мы только отладочную плату мучать. Контроллеры STM32 можно прошить двумя путями. Из внешних программаторов на данный момент есть большой выбор.

Эмуляторы семейства Jetlink полной копией популярной серии J-Link с заметно меньшей стоимостью. Содержит все лицензии JFlash для программирования флеш памяти микроконтроллеров, RDI для удаленной отладки и прочие.

Подключение отладчика ST-link v2 к STM32F100C8

Доступность: Бесплатно как и все руководства на сайте. Без регистрации и SMS. Страница: 1 из Внимательно ознакомьтесь с данным руководством перед установкой и началом работы с аппаратом и сохраните его для обращения к нему в дальнейшем. Бережно обращайтесь с дисками и соблюдайте предложенные ниже инструкции, чтобы увеличить срок их службы. Запрещается подвергать переднюю панель ударам и падениям. Перед тем как снять переднюю панель, выключите питание прибора.

Допустим, копая просторы Интернета, нашли мы очень интересное электронное устройство на микроконтроллере STM32 , причем и все схемы, и прошивка прилагается. Не беда! В этой статье мы разберемся в этом вопросе, ведь загружать готовую прошивку в STM32 не сложнее, чем в старые добрые AVR -ки, а может даже и проще!


Запуск SWD отладчика на основе OpenOCD и FT2232H | arm

В этой статье описывается, как прошивать микроконтроллеры (MCU) на ядре ARM с использованием отладчика OpenOCD и адаптера на микросхеме FT2232H (перевод [1]).

Широко распространенные, давно появившиеся на рынке MCU наподобие PIC16F и ATmega от таких производителей, как ATMEL и MICROCHIP, снабжены специальным интерфейсом для программирования внутренней энергонезависимой памяти программ и данных (flash, eeprom). Например, ATmega используют выводы SPI (MISO, MOSI, SCK), иногда JTAG, иногда специальный однопроводный интерфейс debugWire. PIC используют 2 вывода (PGC, PGD) — один для тактов, и другой как двунаправленную линию данных.

Новые MCU, особенно на основе ядра ARM, используют JTAG/SWD в качестве интерфейса для программирования и отладки.

В чем разница между интерфейсами Joint Test Action Group (JTAG) и Serial Wire Debug (SWD)? Ответ: SWD был создан как альтернатива JTAG для экономии выводов корпуса MCU: SWD заменяет 5-сигнальный JTAG на интерфейс, который требует только 2 сигнала.

Чтобы осуществить обмен данными с целевым MCU, нам нужна программа на хосте (например, хостом может быть компьютер PC с операционной системой Windows) и некий аппаратный адаптер, служащий мостом между хостом и MCU. В этом руководстве описывается, как использовать OpenOCD в качестве программы на хосте, применяемой для отправки команд и обмена данными через SWD. В качестве моста будет использоваться FT2232H, чтобы транслировать сигналы порта USB в интерфейс SWD.

AP означает порт доступа (Access Port).

AHB-AP здесь AHB означает продвинутую высокоскоростную шину (Advanced High-performance Bus), это внутренняя шина ядра Cortex.

SWCLK сигнал тактов SWD.

SWDIO сигнал данных SWD.

SW-DP Serial Wire Debug Port.

[Обзор OpenOCD]

ПО Open On-Chip Debugger (OpenOCD [3]) является бесплатным, открытым (open-source) проектом, который предназначен для отладки, внутрисхемного программирования и технологии пограничного сканирования (boundary scan, проверка целостности электрических соединений в сложных электронных схемах) с помощью адаптера отладки. Адаптер это аппаратный модуль, который предоставляет правильные логические сигналы, чтобы их понимало целевое устройство (MCU).

Отладчик OpenOCD «из коробки» поддерживает несколько видов адаптеров отладки, список которых можно найти на сайте OpenOCD [2] (также см. [3]).

Чтобы OpenOCD заработал, нужно его сконфигурировать командами или с помощью конфигурационных файлов. Когда конфигурация завершена, и установлено соединение с целевым MCU, программное обеспечение OpenOCD запустится как сервис (daemon). Это фоновый процесс, который обслуживает запросы для управления целевым MCU. После этого OpenOCD будет ждать соединений со стороны GDB, Telnet, или по другому каналу, и будет обрабатывать поступающие команды.

Conf это конфигурационные файлы, которые описывают адаптер, целевой процессор и особенности отладочной платы, на которой процессор установлен.

Log вывод для пользователя диагностической информации.

[Обзор FT2232H]

Микросхема FT2232H это высокоскоростной двухканальный преобразователь интерфейсов [6]. Каждый из каналов оборудован аппаратурой Multi-Protocol Synchronous Serial Engine (MPSSE). MPSSE может преобразовать трафик USB в передачу данных по различным интерфейсам UART/FIFO (в зависимости от того, как FT2232H сконфигурирован и как используется). Таким образом, одно подключение USB может быть преобразовано в 2 интерфейсных порта.

[Что следует иметь в виду при выборе OpenOCD]

Выбор OpenOCD в качестве инструментария отладки с адаптером FT2232H — очень хорошее решение, когда у Вас ограниченный бюджет. В дополнение к тому, что пакет OpenOCD бесплатен и имеет открытый исходный код, у него есть хорошая поддержка комьюнити пользователей.

Однако, как это часто бывает с бесплатным и открытым ПО, с OpenOCD Вы можете столкнуться с некоторыми багами, и будьте готовы к тому, что их потребуется исправить самостоятельно. Автору статьи [1] потребовалось некоторое время, чтобы запустить OpenOCD и научиться прошивать свой MCU, и он надеется, что это руководство послужит Вам хорошим и полным руководством.

Если же Вам нужен простой инструмент, то скорее всего OpenOCD не подойдет. Есть и другие альтернативы:

• Segger J-Link [4]
• ULINK [4]
• Отладчики, часто по умолчанию встраиваемые в оценочные платы разработчика (evaluation boards) разными поставщиками MCU (наподобие STM32, EFM32 и т. д.).

[Что потребуется для OpenOCD]

Вам понадобятся:

• FT2232H breakout board (любая отладочная плата, на которой установлен чип FT2232H).
• Windows или Linux с установленной рабочей копией OpenOCD.
• Целевой MCU с памятью flash, которую Вы собираетесь программировать.

Давайте теперь разберемся с каждым из этих компонентов по отдельности.

FT2232H breakout board. Такую платку можно без проблем купить на китайских сайтах наподобие Taobao, Alibaba, AliExpress или dx. com по цене порядка $14. Также очень хорошо подойдет плата FT2232H Board [7].

Также можно купить официальную плату компании FTDI, FT2232H Mini-Module [8], но скорее всего она обойдется дороже.

Windows. Можно получить исполняемую версию OpenOCD из неофициальных сборок [9].

Linux. OpenOCD можно загрузить из пула пакетов Вашего дистрибутива Linux, наподобие пакета для debian [10]. Также можно собрать OpenOCD из исходного кода, но этот метод подойдет скорее всего только для знатоков. Как выполнить сборку, в Интернете есть несколько руководств. Например, на сайте Dangerous Prototypes (для Windows) [11] или eLinux (для Linux) [12]. Также можно прочитать инструкции по компиляции в распространяемом пакете исходного кода OpenOCD (файлы README.Windows и README).

Замечание: с некоторых пор команда разработчиков OpenOCD решила больше не предоставлять официальные сборки двоичного исполняемого кода. Они предоставляют только исходный код, подразумевая при этом, что поставщики оборудования JTAG выполнят сборку самостоятельно и адаптируют эту сборку под свои адаптеры JTAG. Убедитесь, что Ваша сборка поддерживает используемый адаптер JTAG.

[Запуск OpenOCD на примере EFM32G200F32]

Автор использовал плату с микроконтроллером EFM32G200F32, это микроконтроллер ARM на ядре Cortex-M3, однако будет работать и любой другой поддерживаемый MCU.

Ножка Мнемоника Сигнал
25 PF0 LETIM0_OUT0#2 / DBG_SWCLK#0/1
26 PF1 LETIM0_OUT1#2 / DBG_SWDIO#0/1
27 PF2 ACMP1_0#0 / DBG_SWO#0

Как организована OpenOCD. Чтобы запустить OpenOCD, Вам просто нужен правильный конфигурационный файл (.cfg), один из тех, которые поставляются вместе с OpenOCD. Этот конфигурационный файл содержит набор команд, которые являются расширениями команд языка Jim-Tcl. Это язык программирования, который предоставляет простой и расширяемый интерпретатор команд.

Каталог инсталляции OpenOCD имеет папку scripts. В этой папке можно увидеть дочерние папки interface, board и target. Скорее всего Вам понадобятся для рассмотрения только эти папки.

interface: здесь содержатся файлы конфигурации для аппаратных адаптеров, например minimodule.cfg.

board: конфигурационные файлы для широко известных плат разработчика (т. е. плат, на которых установлен программируемый целевой MCU), например atmel_sam4s_xplained_pro.cfg, olimex_stm32_h207.cfg,  stm32f4discovery.cfg и т. д. Вы можете увидеть, что эти файлы используют конфигурационные файлы из папок interface и target.

target: конфигурационные файлы, учитывающие специфику чипов MCU.

Однако Вы можете написать свои собственные файлы конфигурации, как мы будем делать в этом руководстве.

Когда мы запускаем OpenOCD, то можем указать для неё столько конфигурационных файлов, сколько нужно:

openocd -f config1.cfg -f config2.cfg -f config3.cfg

Базовая конфигурация адаптера. Сначала нам нужно указать OpenOCD тип адаптера, с которым будем работать, используя команду interface. Чтобы посмотреть полный список интерфейсов, которые поддерживает Ваша OpenOCD, используйте команду:

openocd -c interface_list

В этом руководстве мы используем адаптер на основе микросхемы FT2232H, поэтому укажем драйвер интерфейса FTDI:

interface ftdi

Также Вы должны предоставить для OpenOCD дополнительную информацию об адаптере (интерфейсе). Например, Вам нужно указать VID/PID, serial number или номер канала, который будете использовать в микросхеме FT2232H, поскольку у неё 2 канала.

ftdi_vid_pid 0x0403 0x6010
ftdi_channel 1
ftdi_serial "FTZ7O8O0"

Адаптер может поддерживать несколько транспортных протоколов, поэтому OpenOCD позволяет Вам выбрать такой протокол:

transport select swd

Также Вы должны указать OpenOCD начальные значения для регистров направления ножек портов общего назначения и данных FT2232H (регистры FTDI GPIO data и FTDI GPIO direction, подробнее см. [6]) с помощью команды ftdi_layout_init. Сначала нужно указать начальные значения 16 выводов канала, и затем указать направление работы этих выводов. Здесь «1» выбирает конфигурацию выхода для вывода, и «0» конфигурацию входа, и у каждого канала FT2232H имеется 16 выводов GPIO.

ftdi_layout_init 0x0018 0x05fb

Эта команда означает, что в качестве данных для GPIO будет значение 0x0018 (0000 0000 0001 1000), и в качестве конфигурации направления будет значение 0x05fb (0000 0101 1111 1011).

Для получения дополнительной информации о том, как конфигурировать адаптер, см. руководство OpenOCD [3].

Подключение MCU к адаптеру. На рисунке ниже приведена схема соединений для согласования интерфейса JTAG и SWD (так называемый резисторный хак SWD, файл swd-resistor-hack.cfg). Сигналы, показанные пунктиром, подключать необязательно.

В этом файле содержится следующее замечание: «Соедините TDI с сигналом SWDIO через последовательно подключенный резистор (сопротивлением 220 .. 470 Ом, с учетом нагрузочной способности целевого MCU и адаптера). Сигнал TDO соедините напрямую с сигналом SWDIO».

Без такой схемы подключения с резистором соединение с MCU не работает.

Таблица подключения FT2232H к EFM32G200F32:

FT2232H EFM32G200F32
Ножка Мнемоника JTAG Ножка Мнемоника SWD
16 ADBUS0 TCK 25 PF0 SWCLK
18 ADBUS2 TDO 26 PF1 SWDIO
17 ADBUS1 TDI (через резистор)

Пример подключения к плате FT2232H Board [7]:

Запуск OpenOCD. Сначала подготовьте специальный конфигурационный файл для Вашего адаптера. Для этого создайте новый текстовый файл и дайте ему подходящее имя (MyFT2232H-adapter.cfg). Вот пример этого файла, который можете взять за образец (отредактируйте в нем VID/PID и serial, чтобы они соответствовали Вашему адаптеру FT2232H, когда он подключен к порту USB компьютера):

# Этот конфигурационный файл был написан как приложение к руководству
# "Getting Started with OPENOCD Using FT2232H Adapter for SWD Debugging" [1],
# автор Yahya Tawil (yahya.tawil_at_gmail.com).
# Версия OpenOCD 0.9.0
interface ftdi
transport select swd
ftdi_vid_pid 0x0403 0x6010
#ftdi_device_desc "USB Serial Converter A"
#ftdi_device_desc "Мой адаптер на основе FT2232H Board"
ftdi_serial "FTZ7O8O0"
#adapter_khz 8
ftdi_layout_init 0x0018 0x05fb
ftdi_layout_signal SWD_EN -data 0
ftdi_layout_signal nSRST -data 0x0010

Замечание: определение сигнала SWD_EN важно для работы OpenOCD, даже если этот сигнал физически никуда не подключен. Если мы этого не сделаем, то произойдет ошибка:

Error: SWD mode is active but SWD_EN signal is not defined

Действия в Windows

После того, как Вы загрузили копию OpenOCD [9], запустите консоль интерпретатора команд CMD, и затем перейдите в каталог, где находится OpenOCD. Например (кавычки » используются, когда путь до каталога содержит пробелы):

cd "c:\Program Files (x86)\openocd-0.9.0\bin"

Предположим, что у нас есть файл конфигурации SWD_FT.cfg и целевой MCU, один из семейства чипов EFM32. Введите команду:

openocd -f interface/ftdi/SWD_FT.cfg -f target/efm32.cfg

Действия в Linux

В окне терминала введите команду:

sudo openocd -f interface/ftdi/SWD_FT.cfg -f target/efm32.cfg

В ответ будет выдано примерно такое сообщение:

Info : FTDI SWD mode enabled
adapter speed: 1000 kHz
cortex_m reset_config sysresetreq
Info : clock speed 1000 kHz
Info : SWD IDCODE 0x2ba01477
Info : efm32. cpu: hardware has 6 breakpoints, 4 watchpoints

Если Вы встретились с проблемами, то см. ниже врезку «Устранение ошибок». Чаще всего бывает неправильное подключение адаптера к MCU или проблема с драйвером у пользователей Windows.

Открытие подключения telnet. Работающая система OpenOCD для приема команд запускает сервер telnet на TCP-порту 4444. Для подключения к нему откройте еще одно окно CMD, и запустите следующую команду:

telnet localhost 4444

Обмен с целевым MCU. Перед тем, как начать выполнение операций отладки, нужно остановить (halt) целевой MCU:

reset halt

В ответ будет выдано примерно такое сообщение:

target state: halted
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000bbc msp: 0x20002000

Чтобы прочитать регистры Вашего MCU, выполните команду:

Чтобы прошить образ flash во внутреннюю память flash, нам нужно определить внутренние банки flash. Это может быть один банк, как в нашем случае с efm32.cfg. Чтобы убедиться, выполните команду:

flash info 0

Или:

flash list
flash banks

В результате будет выведено следующее:

#0 : efm32.flash (efm32) at 0x00000000, size 0x00008000, buswidth 0, chipwidth 0

Теперь, чтобы прошить Вашу программу в память flash, используйте команду write_image. Эта команда принимает файл в форматах, определяемых по расширению файла: двоичный bin (binary), ihex (Intel HEX), elf (исполняемый файл ELF), s19 (Motorola s19), mem или builder-форматы.

flash write_image erase "Desktop/FirstApp.hex"

В ответ будет выведено примерно такое сообщение:

auto erase enabled
wrote 1536 bytes from file Desktop/FirstApp.hex in 0.124740s (12.025 KiB/s)

После этого запустите записанную программу на выполнение командой:

reset run

Чтобы выйти из соединения Telnet, введите команду:

Для получения дополнительной информации по прошивке памяти см. руководство OpenOCD [3].

Устранение ошибок

Пример 1, ошибка:

Error: unable to open ftdi device: usb_open() failed

Эта ошибка вызвана драйвером libusb в Windows, поскольку новые версии OpenOCD используют другой драйвер, WinUSB.

Сначала убедитесь, что Вы дали указание Windows не устанавливать драйвер автоматически:

Затем удалите драйвер FTDI по умолчанию. Вы можете использовать утилиту от FTDI, которая называется CDM Uninstaller x.x — Windows Device Driver Uninstaller [13]. Для его использования нужно просто ввести VID и PID вашего адаптера с чипом FT2232H.

По умолчанию FTDI Vendor ID (VID) равен 0x0403. По умолчанию значения идентификаторов Product ID (PID) следующие:

Одноканальные устройства (чипы с буквой R): 0x6001
Двухканальные устройства (чипы FT2232C, FT2232D, FT2232H): 0x6010
Четырехканальные устройства (чипы FT4232H): 0x6011

Подробнее про CDM Uninstaller см. [14].

После удаления используйте Zadig Tool [15] для установки драйвера WinUSB.

Пример 2, ошибка:

Info : clock speed 1000 kHz
in procedure 'init'
in procedure 'ocd_bouncer'

Причина этой ошибки в неправильно подсоединенном или отсутствующем резисторе между сигналами TDI и TDO (см. схему подключения выше). Об этом резисторе упомянуто в комментариях файла swd-resistor-hack.cfg.

Также эта ошибка может быть вызвана неправильной конфигурацией, например при отсутствии команды ftdi_layout_init в файле конфигурации:

ftdi_layout_init 0x0018 0x05fb

Пример 3, ошибка:

Error: libusb_open() failed with LIBUSB_ERROR_ACCESS
Error: no device found
Error: unable to open ftdi device with vid 0403, pid 6010, description '*' and serial 'FTZ7O8O0'

Подобное сообщение об ошибке появляется, когда Вы запускаете OpenOCD в Linux без привилегии root. Для запуска OpenOCD с правами администратора используйте команду sudo (sudo opeocd).

[Ссылки]

1. Getting Started with OPENOCD Using FT2232H Adapter for SWD Debugging site:allaboutcircuits.com.
2. OpenOCD Debug Adapter Hardware site:openocd.org.
3. OpenOCD: руководство пользователя, начало.
4. Segger J-Link site:segger.com.
5. ULINK Debug and Trace Adapters site:keil.com.
6. FT2232H: двухканальная высокоскоростная USB микросхема для I/O.
7. FT2232H Board — макетная плата на высокоскоростном чипе моста USB фирмы FTDI.
8. FT2232H Mini-Module site:ftdichip.com.
9. Getting OpenOCD site:openocd.org.
10. OpenOCD Intel x86 site:packages.debian.org.
11. Compile OpenOCD for Windows site:dangerousprototypes.com.
12. Compiling OpenOCD v0.7.0 on Ubuntu 13.04 site:elinux.org.
13. CDM Uninstaller Windows Device Driver Uninstaller site:ftdichip.com.
14. Readme Future Technology Devices International Ltd CDM Uninstaller site:ftdichip.com.
15. Zadig Tool site:zadig.akeo.ie.
16. Using OpenOCD as a Standalone FLASH Programmer (a simple tutorial) site:olimex.com.
17. Getting Started with the ARM GCC Compiler on Windows, Part 5: Debugging with OpenOCD site:thehackerworkshop.com.
18. Настройка OpenOCD для AT91SAM7SE.
19. 170918SWD-OpenOCD-FT2232H.zip — документация, утилиты по тематике статьи.

Описание интерфейса J-Link

Перейти к основному содержанию

  • &nbsp Вакансии
  • Видео
  • Блог
  • Устойчивость

J-Link и J-Trace имеют разъем JTAG, совместимый с ARM Multi-ICE. Разъем JTAG представляет собой 20-контактный разъем с прорезью изоляции (IDC) с ключом (штекер 2,54 мм), который соединяется с разъемами IDC, установленными на ленточном кабеле.

В следующей таблице перечислены выводы J-Link/J-Trace JTAG:

* В более поздних продуктах J-Link, таких как J-Link ULTRA+, эти контакты зарезервированы для расширения прошивки. Их можно оставить открытыми или подключить к GND в обычной среде отладки. Они не являются существенными для JTAG/SWD в целом.

Разъем J-Link и J-Trace JTAG также совместим с отладкой ARM Serial Wire Debug (SWD).

В следующей таблице перечислены выводы J-Link / J-Trace SWD.

* В более поздних продуктах J-Link, таких как J-Link ULTRA+, эти контакты зарезервированы для расширения прошивки. Их можно оставить открытыми или подключить к GND в обычной среде отладки. Они не являются существенными для JTAG/SWD в целом.

Подробную информацию о SWO/SWV см. в следующих документах:

 

Компоненты CoreSight — Техническое справочное руководство

Cortex™-M3 — Техническое справочное руководство

cJTAG.

В следующей таблице перечислены выводы J-Link / J-Trace cJTAG.

Штифт Сигнал Тип Описание
1 VTref Вход Это целевое опорное напряжение. Он используется для проверки наличия питания у цели, для создания опорного логического уровня для входных компараторов и для управления выходными логическими уровнями цели. Обычно он питается от Vdd целевой платы и не должен иметь последовательного резистора.
2 Vsupply NC Этот контакт не подключен в J-Link. Он зарезервирован для совместимости с другим оборудованием. Подключитесь к Vdd или оставьте открытым в целевой системе.
3 Не используется NC Этот контакт не используется J-Link при работе в режиме cJTAG.
5 Не используется NC Этот контакт не используется J-Link при работе в режиме cJTAG.
7 TMSC Ввод/вывод Двунаправленный контакт данных. Используется для передачи сериализованных данных TDI, TMS и TDO
9 TCKC Выход Тактовый сигнал для целевого ЦП. Рекомендуется, чтобы этот вывод был вытянут до определенного состояния целевой платы. Обычно подключается к TCK целевого процессора.
11 Не используется NC Этот вывод не используется J-Link при работе в режиме cJTAG.
13 Не используется NC Этот контакт не используется J-Link при работе в режиме cJTAG.
15 nСБРОС Ввод/вывод Сигнал сброса целевого ЦП. Обычно подключается к выводу RESET целевого ЦП, который обычно называется «nRST», «nRESET» или «RESET». Этот сигнал является активным низким сигналом.
17 Не используется НЗ Этот контакт не подключен в J-Link.
19 Питание 5 В Выход Этот контакт может использоваться для питания некоторых плат eval.

Контакты 4, 6, 8, 10, 12, 14, 16, 18, 20 — это контакты GND, подключенные к GND в J-Link. Они также должны быть подключены к GND в целевой системе.

* В более поздних продуктах J-Link, таких как J-Link ULTRA+, эти контакты зарезервированы для расширения прошивки. Их можно оставить открытыми или подключить к GND в обычной среде отладки. Они не являются существенными для cJTAG в целом.

Руководство: Подключение отладчика | Проект 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 В, если вы питаете плату от внешнего источника, так как большинство китайских макетных плат не имеют защиты на контактах питания. Это может привести к повреждению платы, отладчика или ПК.

В таблице ниже представлен обзор контактов для подключения:

Функция контакта Штифт отладчика Целевой штифт
Штифт заземления Земля Любой GND контактный
Контакт +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 на целевой плате.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *