ST-LINK переделка. Вывод SWO для отладки STM32

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ก.ย. 2024
  • Рассказано о переделке программатора ST-LINK для того, чтобы добавить контакт SWO позволяющий упростить отладку кода на STM32.
    ------------------------------------------
    Поддержать автора канала можно перейдя по ссылке:
    yoomoney.ru/to...
    Или просто отправив перевод на Yandex.кошелек:
    4100116547550395
    А также переводом по номеру карты Сбер:
    4279-3000-1033-0561
    ------------------------------------------

ความคิดเห็น • 102

  • @iaroslavsisenco4072
    @iaroslavsisenco4072 4 ปีที่แล้ว +5

    Пойду, один из своих двух китайских девайсов переделаю :-). Спасибо!

  • @qa337
    @qa337 3 หลายเดือนก่อน +1

    *Легендарный дядька!*

  • @karlkomarblch106
    @karlkomarblch106 4 ปีที่แล้ว +2

    Оригинально. Спасибо за полезный совет.

  • @busurman2469
    @busurman2469 5 ปีที่แล้ว +1

    Большое спасибо за видео.

  • @AleksandrMalinov666
    @AleksandrMalinov666 5 ปีที่แล้ว +1

    хорошее полезное кино,тоже десяток таких свистков куплено,так как они более чем отрабатываю свою цену,да и чтоб проще искать куда положил:))

  • @bOogImOon
    @bOogImOon 2 ปีที่แล้ว +3

    Опишите полный процесс! Для чайника! нужно ли потом после аппаратной переделки ещо перепрошивать сам программатор, чтобы появилась поддержка swo и res???????

  • @user-oi1zl6de8i
    @user-oi1zl6de8i 4 ปีที่แล้ว +1

    Спасибо!

  • @alekseywolf5405
    @alekseywolf5405 4 ปีที่แล้ว +7

    Здравствуйте, Владимир. Большое спасибо за столь познавательное видео!
    Сейчас как раз переделываю свой такой же "свисток" на F103T8C6. Но вот какой вопрос возник: Вы в своём видео как-то обошли момент - куда именно нам, на наших проектах, надо подключать контакт SWO? Т.е. вы показываете свою плату и не упоминаете куда и как в вашем проекте заведен этот провод. Не затруднит Вас раскрыть этот момент чуть подробнее? К примеру, как этот SWO завести на ту же приснопамятную платку BluePill? (F103C8T6).
    И еще: зачем и куда нужно подключать на плату NRST? С немодифицированного "свитска", без этого дополнительного провода вроде бы всё прошивается нормально.
    Спасибо за ваше желание поделиться своими знаниями!

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      На канале есть несколько видео в которых я рассказываю о модернизации программаторов и о создании собственных клонов. В описаниях ко всем этим роликам есть схемы.

    • @alekseywolf5405
      @alekseywolf5405 4 ปีที่แล้ว +2

      @@VladimirMedintsev, я посмотрел и ролик про ваш собственный программатор, и про перенаправление возможностей SWD... посмотрел других авторов, но вопросы остались, поэтому я их и задал.
      Я пока только осваиваю микроконтроллеры, опыта очень мало, грузом знаний похвастаться не могу. Но как электронщик со стажем понимаю, что раз в программаторе мы завели два новых провода - их надо как-то в проект подключить.
      Полазил по рефернс-мануалу на STM32F103xx (RM0008) - там чёткого описания, куда именно и как выводится SWO не нашёл (даже поиск по документу не находит такую аббревиатуру). В документе an4989, на который Вы ссылаетесь в видео про перенаправление SWO, рассказано про текущую реализацию этого порта на девелоперских бордах... А как его заводить на других девелоперских бордах (не от STM) и на собственных проектах?
      Может, я спрашиваю какую-то уж очень элементарную и простую вещь - уж извините! Хочется понять принцип: как такой вывод развести в собственном проекте?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว +2

      @@alekseywolf5405 А, так вы делаете не программатор.... Вы тут ссылаетесь на RM0008. Откройте его на странице 1080 и внимательно изучите таблицу 219 в центре страницы и особое внимание уделите крайней правой колонке, там указаны выводы. В частности именно из этой таблицы я узнал, что SWO - > PB3.
      Т.е. к вашему вопросу а как это заводить на "левых бордах". Да вот открываете раздел SWJ debug port pins любого Reference Manual и читаете к каким выводам конкретного микроконтроллера вам необходимо подключиться.
      Вы задаете нормальные вопросы. Просто вы задаете это под роликом с программатором и часто невозможно понять и переключиться с темы на тему.
      На самом деле все крайне просто.

    • @alekseywolf5405
      @alekseywolf5405 4 ปีที่แล้ว

      @@VladimirMedintsev, спасибо за уделённое время и ваши ответы! С SWO вроде бы разобрался. Буду использовать.
      А что с NRST? Я так и не понял, зачем он нужен? Ведь на разъем ST-Link вроде бы выведен RST... Когда и для чего нужен NRST с PB0?
      Еще раз спасибо за ваше время!

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว +1

      reset нужен чтобы сбросить контроллер в момент подключения. используется если вы используете ножки интерфейса SWD для чего-то еще и переопределяете в прошивке, а также для работы с чипом у которого вы отключили отладку. Ну и для отладки контроллеров в режимах с низким энергопотреблением.

  • @VAscetic
    @VAscetic 3 ปีที่แล้ว +1

    Спасибо

  • @Magic_kinder_surprise.
    @Magic_kinder_surprise. 3 หลายเดือนก่อน

    Всем привет.Надеюсь это видео ещё актуально, подскажите пожалуйста чем прошить STC152kf16s2 и можно ли с другого слить прошивку и залить на новый stc?

  • @marsm6619
    @marsm6619 4 ปีที่แล้ว +1

    Спасибо.
    На stm32f103c8t6 освободил пины РА 13 и РА14.
    Хотя, если пользоваться кнопкой RESET и так можно не подключать Serial Wire.
    Почему у меня ругается на volatitle и unsisned

  • @Solderingironspb
    @Solderingironspb 4 ปีที่แล้ว +2

    Владимир, добрый день!)
    Возможно Вы посчитаете это лишним, но Вы пробовали выводить русский текст через SWO? Я кодировку менял, не помогает.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Нет не пробовал.

    • @olegp.3012
      @olegp.3012 4 ปีที่แล้ว +3

      А какая IDE? В STMCubeIDE нужно вручную вписать "CP1251" в настройках (Windows -> Preferences -> General -> Workspace). Тогда текст адекватно читается при передаче по UART, а также по SWO в приложении "STM32 ST-LINK Utility". Но во внутренней "SWV ITM Data Console" почему-то упорно применяется кодировка 8859-1, на текущий момент не нашел, где изменить кодировку в этой консоле.

  • @olegp.3012
    @olegp.3012 4 ปีที่แล้ว +2

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

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Спасибо, улыбнуло.

    • @Ironium_555
      @Ironium_555 ปีที่แล้ว

      Нужно отдать для переделки мастеру, у которого руки растут не из жопы! Или купить оригинальны ST Link V3

    • @olegp.3012
      @olegp.3012 ปีที่แล้ว +1

      хорошо! В следующий раз так и сделаю - отнесу двухдолларовое устройство мастеру.

    • @Ironium_555
      @Ironium_555 ปีที่แล้ว

      @@olegp.3012 у меня несколько штук STLINK, оригинальный STLINK-V3, дороговат, но когда много работаешь в отладке, приятно что шина SWD работает на частоте 24 МГц вместо 4 МГц на STLINK-V2. Китайский клон STLINK-V2, не двухдолларовый, а полная копия оригинального STLINK-V2, переделан в STLINK-V2.1, добавлен аппаратный USB_RENUM, перепрошит на STLINK-V2.1 "V2J40A1 STM32 Debugger+Audio".
      На основе плат Blue Pill STM32F103C8 два самодельных STLINK-V2.1, один с прошивкой "V2M27S7 STM8 Debug+Mass Storage+VCP", второй прошит "V2J40A1 STM32 Debugger+Audio". Разъемы микро USB на этих плат отвратительные, поэтому шнурок USB припаян прямо на плате, очень удобно и надежно. С другой стороны выведен 10 пиновый разъем под плоский жгут IDC, то есть с девайсом я подключаюсь жгутом с разъёмами. Выведены SWDIO SWCLK SWO RST TX RX 5V, отладочная плата может запитываться от программатора (+5V), прошиваться, отлаживаться, обмен через СОМ порт, SWO. Все очень компактно, на одном шнурке USB.

  • @user-tx6pn1sx1k
    @user-tx6pn1sx1k 4 ปีที่แล้ว +2

    Доброго времени! Владимир, а подскажите, пожалуйста, почему при активации PE3 или PE4 в качестве входов возникает конфликт с SWO? Это в CubeIDE процессор STM32F407VET6, просто на китайской плате на этих пинах кнопочки... Заранее прошу очень больно не пинать.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Честно говоря из меня плохая гадалка. Я даже понятия не имею как у вас может выглядеть этот конфликт и как вы его диагностируете, видите и прочее. Вот я этот контроллер сейчас запустил в кубе и у меня все работает.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว +1

      @@user-tx6pn1sx1k На ваших скриншотах нет проблемы. Желтая метка предупреждает что выбор ограничен, если вы откроете список, то обнаружите, что у вас стал недоступен JTAG, но никакого конфликта с SWD у вас нету.
      yadi.sk/i/dS6Gh4EYMKiJSQ

    • @user-tx6pn1sx1k
      @user-tx6pn1sx1k 4 ปีที่แล้ว

      @@VladimirMedintsev Спасибо, видимо я не до конца разобрался - буду разбираться.

  • @iqubik
    @iqubik 4 ปีที่แล้ว

    F103c8t6 стоит чип внутри stlink. Все stшные проги ругаются на неоригинальность программатора. Подсоединил 2 проводка (reset, swo). Reset работает, swo никак не работает.
    Возникла сложность с пустым проектов в cubemx в приложении в видео нет никаких референсов.

  • @retro55i
    @retro55i 5 ปีที่แล้ว

    Непонятно как подключить ножку процессора SWO к тому регистру в который заносится символ, ведь эта ножка может работать как обычный ввод или вывод или аналоговый. В моем процессоре stm32f205 это ножка pb3. Так получилось, что у меня на этой ножке светодиод, но я могу кинуть провод с этой ноги на программатор, а светодиодом пока не пользоваться.

  • @dmytromykhailiuta9268
    @dmytromykhailiuta9268 2 ปีที่แล้ว

    Какой формат данных на SWO, это не UART байты ? Я не могу это вывести в терминал ? Спасибо.

  • @bOogImOon
    @bOogImOon 2 ปีที่แล้ว

    А сам программатор на 101 стан как прошить чтоб получить swo или там уже оно есть програмно по умолчанию??

  • @logicfacts9964
    @logicfacts9964 5 ปีที่แล้ว +1

    Я не вижу смысла делать этот мод, так как программатор работает и без его. Это для Ардуино надо серийный выход потому что там нет отладчика, а все среды программирования для STM32 включают в себе отладчика и там каждую переменную можно следит внутри отладчика не выводя ее по серийному каналу. А если очен надо то тогда можно сделать это на одним из встроенным UART-ов

    • @Booruvcheek
      @Booruvcheek 5 ปีที่แล้ว +3

      Это и так и не так.Возможность отладки по шагам - великая вещь, но иногда нужен вывод данных без остановки процесса, для наблюдения его в динамике, так сказать.Тогда логирование (в консоль) незаменимо.

  • @iqubik
    @iqubik 4 ปีที่แล้ว

    Всё куда сложнее оказалось чем казалось. Вот неоригинальный он и всё. Зашил на 2.1 по статье на Хабре и стало ещё хуже, теперь обновить его невозможно а в keil evaluation mode как был так и остался и swo не работает. Не рекомендую для f103c8t6

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว +1

      скорее всего микроконтроллер не оригинальный. Такое уже бывало. Подделывают сэр.

    • @iqubik
      @iqubik 4 ปีที่แล้ว

      @@VladimirMedintsev уже ночью определил что чип стоит не stm32 а какой то другой с той же почти маркировкой. Да, увы подделка :( а вот что keil на evaluation ругается так это оказывается лечится рубордом

  • @MrCrossRaccoon
    @MrCrossRaccoon 4 ปีที่แล้ว

    /UPD разобрался, извиняюсь за беспокойство/ Вообще никак :( Всё припаяно, звонится от ноги и до ноги. Код вставлен в мейн, настройки вроде все проставлены, частоту гонял всякую. Дебаг идёт нормально, только лампочки тухнут, но в окне итм дата консоли пусто :( КубИДЕ, Мак. Попробую под виндой...

  • @bbrylov
    @bbrylov 5 ปีที่แล้ว

    Владимир, здравствуйте столкнулся с интересной проблемой: SWO проходит через переделанный программатор только при определенном HCLK (8 мгц) при остальных тишина.
    1. Откуда тактируется SWO?
    2. Сталкивались ли вы с такой проблемой?

    • @VladimirMedintsev
      @VladimirMedintsev  5 ปีที่แล้ว +7

      1. Абсолютно нет необходимости писать сотни одинаковых комментариев.
      2. С аналогичной проблемой сталкиваются все, кто не правильно настроил тактирование во вкладке отладчика. Укажите там правильную частоту на которой работает ваша шина и все будет работать. А именно пункт меню Project -> Option for target. Далее вкладка Debug нажимаем на кнопку Settings в открывшемся окне Target driver setup переходим на вкладку Trace и там есть Core clock так вот это значение должно соответствовать тому на котором у вас работает SYSCLK.

  • @trytrytrytrytrytryt
    @trytrytrytrytrytryt 5 ปีที่แล้ว

    Здравствуйте! А какой компаунд вы используете?

  • @user-xv3zh4km1n
    @user-xv3zh4km1n 3 ปีที่แล้ว +1

    может ли этот программатор работать через swd c nrf52832?

  • @user-er7xq1oj5m
    @user-er7xq1oj5m 4 ปีที่แล้ว

    Поясните пожалуйста, куда должен быть подключен сигнал SWO, который выходит из "свистка" ST Link20 и приходит на основную отладочную плату? К какому пину на процессоре?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว +2

      Ну это зависит от того какой микроконтроллер вы используете. Назовете полностью микроконтроллер я вам скажу пин.

    • @user-er7xq1oj5m
      @user-er7xq1oj5m 4 ปีที่แล้ว

      Stm32f103c8t6 хочу использовать

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว +4

      @@user-er7xq1oj5m Для этого микроконтроллера отладочный интерфейс подключается SWDIO - PA13 (34), SWCLK - PA14 (37) и SWO - PB3 (39)

  • @Dzigirnaut
    @Dzigirnaut ปีที่แล้ว

    Привет народ, купил себе st-link v2 китай. Он оказался на чипе APM32F103 это вроде бы клон STM32F103 знает кто можно ли его так же апгрейдить?

  • @DipTrace87
    @DipTrace87 4 ปีที่แล้ว

    Данные через SWO поступают, но не смотря на то, что SysCLK настроил верно - полная билеберда. Подскажите, пожалуйста, в чем проблема?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      В том, что вы не правильно настроили частоту на которой идет тактирование. Нет других причин.

    • @DipTrace87
      @DipTrace87 4 ปีที่แล้ว

      @@VladimirMedintsev простите дилетанта, конечно, но если можно чуточку подробнее, пожалуйста. Может на почту office@atpp.su как удобно.

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว +3

      Вот тут есть специально подробно рассказано th-cam.com/video/pTJbO6RkfSI/w-d-xo.html

    • @DipTrace87
      @DipTrace87 4 ปีที่แล้ว

      @@VladimirMedintsev премного благодарен

  • @devel-man
    @devel-man 5 ปีที่แล้ว

    У самого 5-6 таких свистков, но если уже дошло до такого, то лучше купить недорогую отладочную плату Nucleo и юзать програматор с нее, там он гарантированно работает. Более того останется еще и нормальная плата для разработки. Кстати с недавних пор Clion поддерживает STM32.

    • @VladimirMedintsev
      @VladimirMedintsev  5 ปีที่แล้ว

      Да и к той же нуклео чтобы swo получить тоже паяться придется. В чем же тогда выгода?

    • @devel-man
      @devel-man 5 ปีที่แล้ว

      @@VladimirMedintsev А есть готовые отлпдочные решения?

    • @VladimirMedintsev
      @VladimirMedintsev  5 ปีที่แล้ว

      Ну как бы полно... Например ST-Link (не китайский, а фирменный), J-Link от Segger, ладно с манией величия, мой вариант (клон) ST-Link о котором я рассказывал на канале. У них у всех есть J-Tag интерфейс + SWD и дополнительный SWO вывод.

    • @devel-man
      @devel-man 5 ปีที่แล้ว

      @@VladimirMedintsev Jlink и оригинальный Stlink стоят как крыло от самолета. Интересует что-то подешевле

    • @VladimirMedintsev
      @VladimirMedintsev  5 ปีที่แล้ว +1

      Ну тогда собирайте моего клона по нему на этом канале есть куча видео и ссылки на заказ плат. Как бы другого ничего я предложить не могу.

  • @user-jq6je5ol3n
    @user-jq6je5ol3n ปีที่แล้ว

    Всем доброго времени суток. Возможно ли этим программатором прошить ST72F324K6T3 ?

    • @VladimirMedintsev
      @VladimirMedintsev  ปีที่แล้ว

      Нет.

    • @user-jq6je5ol3n
      @user-jq6je5ol3n ปีที่แล้ว

      @@VladimirMedintsev Не подскажете каким программатором можно его прошить?

    • @VladimirMedintsev
      @VladimirMedintsev  ปีที่แล้ว

      @@user-jq6je5ol3n inDART ну или внутрисхемный программатор подходящий для ST7. Там не сильно сложно. Вы просто интернет на английском почитайте, информации много, достаточно вбить запрос типа "ST7 ICC"

    • @user-jq6je5ol3n
      @user-jq6je5ol3n ปีที่แล้ว

      @@VladimirMedintsev Спасибо!

    • @Magic_kinder_surprise.
      @Magic_kinder_surprise. 3 หลายเดือนก่อน

      Всем привет.Надеюсь это видео ещё актуально, подскажите пожалуйста чем прошить STC152kf16s2 и можно ли с другого слить прошивку и залить на новый stc?

  • @maskon78
    @maskon78 6 ปีที่แล้ว

    А можно то, что нужно для отладки в текстовом виде? А то смотрю с телефона - не видно... И ноут с разрешением 720 показывает с искажениями...

    • @VladimirMedintsev
      @VladimirMedintsev  6 ปีที่แล้ว

      Я вообще ничего не понял...

    • @maskon78
      @maskon78 6 ปีที่แล้ว

      Vladimir Medintsev Сумбурно написал, извиняюсь. Я про то, что нужно сделать в Keil'e. Адрес регистра и прочее. Мартышка к старости слаба глазами стала..

    • @Booruvcheek
      @Booruvcheek 5 ปีที่แล้ว +2

      Вот этот код с небольшими изменениями (для читабельности, ни на что не влияют) -
      #define ITM_Port8(n) (*((volatile unsigned char *)(0xE0000000+4*n))
      #define ITM_Port16(n) (*((volatile unsigned short*)(0xE0000000+4*n))
      #define ITM_Port32(n) (*((volatile unsigned long *)(0xE0000000+4*n))
      #define DEMCR (*((volatile unsigned long *)(0xE000EDFC)))
      #define TRCENA 0x01000000
      struct __FILE { int handle; /* Add whatever you need here */ }
      FILE __stdout;
      FILE __stdin;
      int fputc(int ch, FILE* f)
      {
      if(DEMCR & TRCENA)
      {
      while(ITM_Port32(0) == 0) ; // Do nothing while ITM_Port32(0) is not 0
      ITM_Port8(0) = ch;
      }
      return ch;
      }

    • @videoCxema
      @videoCxema 5 ปีที่แล้ว

      @@Booruvcheek не работает код

    • @VladimirMedintsev
      @VladimirMedintsev  5 ปีที่แล้ว +2

      @@videoCxema Я специально снимал ролик где рассказывал что этот код вообще можно руками не писать вот тут посмотрите и все вопросы отпадут - th-cam.com/video/pTJbO6RkfSI/w-d-xo.html

  • @aliensvik9925
    @aliensvik9925 5 หลายเดือนก่อน +1

    Вы сумасшедшие ?
    Третий ролик смотрю. Куда подключается swo ?

    • @G_W_B
      @G_W_B 5 หลายเดือนก่อน

      от РА10 к PB3 например платы BluePill

  • @BECHA1977
    @BECHA1977 ปีที่แล้ว

    а пошаговая отладка с точками останова возможна?

    • @VladimirMedintsev
      @VladimirMedintsev  ปีที่แล้ว

      Да, возможна

    • @BECHA1977
      @BECHA1977 ปีที่แล้ว

      @@VladimirMedintsev для этого какие-то дополнительные провода нужны ?

    • @VladimirMedintsev
      @VladimirMedintsev  ปีที่แล้ว

      Нет, не нужны. Там есть SWD это два провода. Их достаточно для отладки

  • @user-dg3ut2mc6i
    @user-dg3ut2mc6i 5 ปีที่แล้ว

    ресет стлинка, садишь на ресет прошиваемого процессора а в кубе ставишь сериал вире в графе дебаг. воттаны по нулям и все работает. у меня так.

    • @user-ld2xi8sn6l
      @user-ld2xi8sn6l 5 ปีที่แล้ว

      А что это воттаны ?

    • @VladimirMedintsev
      @VladimirMedintsev  5 ปีที่แล้ว

      @@user-ld2xi8sn6l Вас только это заинтересовало? Мне вообще не понятно что комментатор хотел сказать своим сообщением...

    • @payravsoliev6533
      @payravsoliev6533 4 ปีที่แล้ว

      @@user-ld2xi8sn6l речь идет о ножках boot или jumper-ы, вроде бы как,

  • @sledleo
    @sledleo 3 ปีที่แล้ว

    Владимир, можно ли взломать прошивку stlink, чтобы портировать на любой чип?

    • @VladimirMedintsev
      @VladimirMedintsev  3 ปีที่แล้ว +3

      Нет смысла ее ломать. Не стоит она того, вариантов программаторов много. Можете даже свой написать или модифицировать имеющиеся в исходных кодах.

  • @trytrytrytrytrytryt
    @trytrytrytrytrytryt 4 ปีที่แล้ว

    Здравствуйте! А какой компаунд вы используете?

    • @VladimirMedintsev
      @VladimirMedintsev  4 ปีที่แล้ว

      Это уже после карантина смогу ответить. Не помню я его название, надо на тюбике смотреть.

    • @trytrytrytrytrytryt
      @trytrytrytrytrytryt 4 ปีที่แล้ว +1

      @@VladimirMedintsev о, а я уже спросил, оказывается, а вы ответили! Слава ютубу, который поднимает твои комменты наверх. И позор ютубу, что не все ответы показывает в уведомлениях, я ваш ответ про китайский TM-7 пропустил. Спасибо вам?

    • @SerjPC
      @SerjPC 3 ปีที่แล้ว

      @@trytrytrytrytrytryt не нашёл его у китайцев. Есть фото, или ссылка?

    • @trytrytrytrytrytryt
      @trytrytrytrytrytryt 3 ปีที่แล้ว

      @@SerjPC нету. Надо спрашивать у автора.

    • @VladimirMedintsev
      @VladimirMedintsev  3 ปีที่แล้ว

      Да уже раз 20 давал ссылку
      a.aliexpress.com/_9hTwpk