Авторизация
Регистрация

Напомнить пароль

Программаторы для микроконтроллеров ST-LINK V2 и переходники к нему

  1. Цена: 9.65$ с пересылкой
  2. Перейти в магазин
Раньше программаторы для микроконтроллеров делал для себя сам. Но все мы становимся со временем хуже, и на этот раз я поленился и решил купить готовый. Речь идет про микроконтроллеры STM32.



Вообще говоря, им вообще не требуется программатор. Если подать единицу на вывод BOOT0 (при нуле на BOOT1), то программа стартует с встроенного загрузчика, который позволяет программировать контроллер по UART (как один из вариантов, можно и через другие интерфейсы). Обычно при этом применяют переходник USB – UART. Но это не очень удобно, лучше использовать для программирования и отладки интерфейс SWD. У меня есть плата Discovery со встроенным отладчиком и штырьками SWD, которую вначале и использовал. Но хотелось иметь отдельный программатор, и тут на Aliexpress увидел по вполне доступной цене клон ST-LINK V2 в красивом корпусе. Этот корпус и склонил меня к покупке.

Качество исполнения корпуса и логотип – прямо как у фирменной вещи. Снизу – большая наклейка, где часть надписей на китайском.



В комплекте идет провод USB (довольно тонкий), шлейф с разъемами IDC на 20 контактов, провод интерфейса SWIM для программирования STM8 (с ними пока дела не имел) и провод, которым можно подключиться к SWD.


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

Внутри все красиво, качество литья пластика вопросов не вызывает. Плата тоже спаяна аккуратно.


На плате установлен микроконтроллер Geehy APM32F103CBT6. Судя по обозначению, это клон STM32F103CBT6, но раньше я такого клона не встречал. Сайт производителя нашелся без проблем. При подключении программатора к компьютеру в окне утилиты STM32 ST-LINK Utility можно увидеть версию прошивки: «ST-LINK Firmware version: V2J28S7».


Рядом с разъемом USB виден стабилизатор напряжения на 3.3 В с маркировкой 422P (LN1154B332MR-G). Максимальный выходной ток – 300 мА. Элементов защиты линий USB не замечено.


Фото платы с двух сторон в более высоком разрешении:



Дополнение: плата и схема оригинального ST-LINK V2 имеет отличия. Сам я такую плату никогда не видел, все данные из Интернета. Вот эта плата и схема:



На линиях интерфейса SWD установлена ESD-защита (ESDA5V3L, маркировка EL53). Еще есть буфер (SN74LVC8T245, маркировка NH245), который позволяет работать с V_TARGET (напряжение питания отлаживаемого устройства) не равным 3.3 В. У меня такой необходимости пока не возникало, STM32 всегда питаю от 3.3 В. Что касается защиты, то при желании ее можно добавить и на плату клона. Снизу полигон земли находится рядом со всеми выводами разъема, можно добавить, скажем, стабилитроны на 5.1 В в корпусе SOT-23.

Основной разъем здесь – 20-контактный, который обычно используют для JTAG. Но я не понимаю, что должно случиться, чтобы поставить такой разъем в свое устройство. JTAG для ПЛИС и то использует намного более компактный 10-пиновый разъем. К тому же, у STM32 есть удобный интерфейс SWD, который требует в минимальной конфигурации подключения всего 4-х проводов. Но тут делать это крайне неудобно – надо по одному подключать провода к штырькам 20-контактного разъема, можно легко ошибиться. Такое терпеть невозможно, и я сделал переходник – в разъем IDC-20 завел отдельные провода, а на другом конце установил 4-контактный разъем.


Очень удобно, когда отлаживаемое устройство может питаться от программатора. Здесь как раз есть выход напряжения питания +3.3 В (контакт 19). Для включения питания это напряжение надо подать на вывод V_TARGET. Но делать такое соединение постоянным неправильно. Когда устройство питается от собственного источника, он окажется подключенным к выходу питания программатора, что плохо. Поэтому лучше предусмотреть выключатель питания, что у меня в этом переходнике и сделано.

Готовые переходники с 20-контактного разъема JTAG на 4-контактный SWD существуют (ссылка, ссылка), но выполнены они не самым лучшим образом. И у них нет возможности подключения питания. И они торчат вверх, что очень неудобно.



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


Возможно, я бы и дальше жил со своим переходником, но однажды пришлось сделать устройство на STM32 с режимом сна. Когда устройство находится во сне с выключенным тактовым генератором, то подключиться к нему по SWD нельзя. Аналогичная ситуация возникает и в случае, когда интерфейс SWD программно отключен. Мне приходили с Aliexpress контроллеры в таком состоянии. В этих случаях требуется подключение программатора с использованием сигнала сброса (Connect Under Reset). Подача сигнала сброса не требует большой скорости, это можно сделать даже вручную: закоротить вход сброса на землю, запустить утилиту программирования, быстро раскоротить. Но удобнее, когда сброс будет подаваться автоматически. Для этого потребуется 5-проводное подключение (добавляется сигнал NRST). Поэтому я решил сделать новый переходник. Схема переходника получилась следующая:


Отдельно надо сказать о распиновке разъема SWD. Я привык к схеме, которая реализована на плате Discovery.



Такое расположение контактов выглядит очень логичным: между сигналами SWCLK и SWDIO в шлейфе проходит земля, что снижает взаимные наводки. Именно такую разводку разъема я использую во всех своих устройствах. Но с большим удивлением я обнаружил, что на популярных платах Blue Pill (и некоторых других) разводка SWD другая.


Такая разводка мне кажется менее логичной, поэтому в переходнике я сделаю как в Discovery. А для подобных плат сделаю отдельный провод, где просто переставлю контакты разъема.

Чтобы переходник выглядел приличней, решил спрятать весь монтаж снизу, сделав его полностью SMD, включая разъем. Светодиод смонтирую так, чтобы излучение было направлено к плате, где будет отверстие. Выключатель нашелся для обычного монтажа в отверстия, но сделать из него SMD не проблема. Его тоже буду паять снизу, а для корпуса сделаю в плате прямоугольное окно. Заодно оно сделает крепление выключателя более надежным. Плата развелась так:


Ну а дальше – изготовление. Вырезаю заготовку из одностороннего стеклотекстолита толщиной 1.5 мм с размерами чуть больше будущей платы. Теперь – мой любимый ЛУТ. Несколько минут, и рисунок перенесен на текстолит.


Дальше – травление. Такая маленькая плата проходит через горло в бутылку с хлорным железом, поэтому пачкать ванночку нет смысла. Просто подвешиваю плату на тоненькой проволочке внутри бутылки. Можно заниматься своими делами, пока плата травится. Лишь изредка надо вынимать ее за проволочку и смотреть результат.


Плата вытравлена, следующий этап – обработка контура. Это можно сделать ножовкой и напильником, но я делаю это на фрезерном станке.


Отверстий в этой плате почти нет, только одно для светодиода, плюс окно для выключателя. Для светодиода сверлю отверстие сначала диаметром 2 мм, затем сверху с помощью зенкера с углом 90 градусов делаю его коническим. Для выключателя фрезерую паз (но можно просто просверлить пару отверстий), затем довожу надфилем до прямоугольной формы.



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



Вместе с ST-LINK переходник выглядит так:


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

Теперь очередь за проводами. Сначала делаю простейший провод с 4-контактными разъемами для подключения SWD с разводкой как у Discovery. Первый контакт обозначен красной полоской на шлейфе.

Второй провод – с разводкой контактов как у Blue Pill. Делаю разъем белым, ну типа белая ворона.


И теперь то, ради чего все это затевалось – 5-контакный переходник с контактом NRST. Он мне понадобился для конкретных плат, где штырьки для SWD вообще запаиваться не будут. Отверстия для этих штырьков остаются свободными. Контактировать с такими отверстиями можно с помощью подпружиненных контактов, которые продаются на Aliexpress (ссылка). Такие контакты были куплены.


Вот чертеж контакта с сайта продавца, размеры на нем более-менее соответствуют действительности:


Смонтировать эти контакты можно прямо в вилке разъема, они нормально входят в контакты разъема, если удалить пружинящие язычки. Вставляются довольно плотно, потом пропаиваются. Дальше обычным образом разделывается провод.



В корпусе разъема отверстия надо немного увеличить (сверлом примерно 1.4 мм), чтобы прошли конические части контактов.


Провод готов.



Проверка показала, что контактировать к плате с отверстиями им вполне удобно.


Раньше я для этих целей использовал гребенку со слегка изогнутыми контактами. Тоже вполне годный вариант, как плюс – держится сама. Но все зависит от задачи. Если надо быстро зашить много плат, удобней подпружиненные контакты.


Для программирования использую bat-файл такого содержания:

C:\Progra~1\STMicr~1\STM32S~1\ST-LIN~1\ST-LINK_CLI.exe -c SWD UR -P %1 -V -Rst -Run
pause

В командной строке ему передается имя hex-файла. Иногда вписываю имя прямо в этот файл, когда надо прошивать много одинаковых плат. При вызове утилиты командной строки ST-LINK_CLI.exe используется параметр UR, который означает Connect Under Reset. Если сигнал сброса не используется, этот параметр не нужен. Описание параметров командной строки есть в документе UM0892 «STM32 ST-LINK utility software description».

Программирую в среде IAR, для удобства прошивки после компиляции назначил кнопку F8 для запуска утилиты ST-LINK. Настройки следующие:


В полях введены следующие строки:

C:\Program Files\STMicroelectronics\STM32 ST-LINK Utility\ST-LINK Utility\ST-LINK_CLI.exe

-c SWD -P $TARGET_BPATH$.hex -V -Rst –Run

Вывод отладочной информации через SWO не проверял, на своих платах я никогда SWO не вывожу на разъем. Но в самом программаторе сигнал SWO выведен на контакт 13 разъема. По протоколу JTAG также работать не пробовал за ненадобностью. Есть проекты самодельных программаторов, которые имеют более широкие возможности, например, вот этот. Но при такой цене за готовый программатор делать что-то свое не имеет особого смысла.


Дополнение: ST-LINK и пустота. Пустое место на плате переходника не дает нормально работать. С этим надо что-то делать. Перенес контур платы в Corel Draw (из PCAD напечатал в файл post script, затем этот файл открыл в Corel) и нарисовал этикетку.


Для печати взял пленку из металлизированного полиэстера Apli. Это прекрасная пленка для всяких наклеек, но безумно дорогая. У меня остались лишь обрезки от одного листа А4, который я выпросил на старом месте работы. Продается она пачками, от цены за пачку мутнеет в глазах и разгорается любовь к пустоте и свободному от этикеток пространству.


Напечатал наклейку на лазерном принтере и приклеил ее к плате переходника. Теперь всё, работать можно. Единственное, пока размышляю, может добавить защиту на линии SWD.


Можно подвести итог:

Плюсы:

+ работает;
+ красивый корпус;
+ можно программировать STM32 и STM8;
+ поддержка JTAG и SWD;
+ в комплекте USB кабель и все необходимые провода.

Минусы:

– не лучшее решение штатного переходника для SWD.
Планирую купить +21 Добавить в избранное
+139 +196
свернутьразвернуть
Комментарии (246)
RSS
+
avatar
+2
  • darek
  • 20 ноября 2024, 02:44
«Но все мы становимся со временем хуже» — ошибочное утверждение.
Я вот, со временем стал только лучше. )
А программатор где-то такой валяется, брал давно, и ценник в раза 3-4 был выше.
+
avatar
+17
  • Leoniv
  • 20 ноября 2024, 11:47
Характер к старости точно портится. И много чего еще. Логичным финалом этого ухудшения является смерть.
+
avatar
+13
Первую половину жизни челевек пытается стать человеком, а вторую им остаться.
+
avatar
+8
  • Leoniv
  • 20 ноября 2024, 13:08
Ключевое слово здесь — «пытается».
+
avatar
+14
  • Suhoff
  • 20 ноября 2024, 13:56
«Мудрость приходит с возрастом, но иногда возраст приходит один» ))
+
avatar
+13
  • viktorX
  • 20 ноября 2024, 15:10
Если бы один, иногда с друзьями, Альцгеймером и Паркинсоном.
+
avatar
+2
  • Suhoff
  • 20 ноября 2024, 15:27
Как в старом анекдоте — лучше уж Паркинсон.
+
avatar
+1
  • resana
  • 24 ноября 2024, 13:32
Нееет. Лучше Альцгеймер. С паркинсоном до рта не донесете, расплескаете. А с альцгеймером забыл, выпьешь еще раз. :))
+
avatar
+1
  • Suhoff
  • 24 ноября 2024, 16:55
Выпьешь, если вспомнишь куда спрятал бутылку. Так что лучше разлить половину по пути чем забыть где спрятал бутылку.
+
avatar
+5
понравилось, плюсанул. Но это смутило — 'можно сделать ножовкой и напильником, но я делаю это на фрезерном станке'. Стеклотекстолит дома на фрезере и этим потом дышать, ну такое…
+
avatar
+6
  • Leoniv
  • 20 ноября 2024, 03:14
Да, крайне неприятная работа. Но от напильника пыли будет не меньше.
+
avatar
0
С напильником можно уйти в ванную комнату и там под водичкой это делать. У меня даже есть специальные брусочки с наклеенной на них наждачкой для всяких правок и пазов. А вот пилить по контуру приходится на микроциркулярке и сверлить на микросверлильном станке, а для этого нужен хороший свет и прочие условия, типа упора для локтей, а такое возможно только на столе в комнате.
З.Ы. Спасибо за статью, как всегда!
+
avatar
0
а инструмент какой, а то судя по картинке там шарошка
+
avatar
+3
  • Leoniv
  • 20 ноября 2024, 13:44
Это твердосплавная фреза специально для стеклотекстолита, ее еще называют «кукуруза».
+
avatar
0
  • xNIXx
  • 20 ноября 2024, 11:30
На фрезере как-раз минимум проблем, можно или пылесосом высосать всё, или жидкостью залить.
+
avatar
0
так оно все-равно летит по комнате
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 15:42
Одна надежда — платы приходится делать не так часто.
+
avatar
0
я себе резак для плат сделал — в 99% случаев требуется прямоугольная плата, оно отрезает без пыли. А если какие-то уголки срезать надо, есть еще ножницы по металлу. Но если по фигурам вырезать, то тут этого мало, да
+
avatar
+2
  • Leoniv
  • 20 ноября 2024, 16:21
Меня эстетика торца не устроит.
+
avatar
0
там же две плоские поверхности на резаке. Вроде неплохо. Не так идеально как на станке, но вполне норм
+
avatar
0
  • xNIXx
  • 28 ноября 2024, 17:55
Куда оно летит и как?
У меня пылесос с фильтрами через которые асбест не летит…
Будучи смазанной маслицом стружка лежит на поверхности…
+
avatar
+7
Хмм…
а чем не угодили «народные» стлинки по полтора-два бакса?
я про такие и подобные — тысячи их на Алишечке, можно спокойно выбрать для своего региона с наименьшим ценником
https://aliexpress.com/item/1005003575620794.html
+
avatar
+1
  • Leoniv
  • 20 ноября 2024, 11:27
Эстетикой. Купил в основном из-за корпуса.
+
avatar
0
лотерея, совершенно непредсказуемо ведут себя в зависимости где и главное когда куплены, впрочем и не оригинальные мыльницы тоже не без греха, но их хоть можно одним движением заменить на оригинальную.
+
avatar
0
но их хоть можно одним движением заменить на оригинальную.
Прошивку обновить? Я так и в «народных» делал.
+
avatar
0
нет, просто взять из шкафа и заменить, тот-же кабель тот-же шлейф, пока не придет очередная подделка с али.
+
avatar
+1
Ну, пополнить шкаф свистками по 1.5 бакса всяко проще, чем мыльницами по 10 :)
+
avatar
0
Это не так работает.
В шкафу подотчетный оригинальный референс, за него платил не я но его рано или поздно придется возвращать или оплачивать из своего кармана.
Используется референс крайне редко, как правило в ситуациях когда что-то идет не так и последняя надежда на то, что виновата «поддельность».
Так вот если бы у свистка был референс то использовал бы свистки, а так как референса нет то использую мыльницы.
+
avatar
+1
  • aliex
  • 20 ноября 2024, 18:22
Кроме лотерейности у них нет debug wire и мультиплексирования с UART
+
avatar
+1
  • Leoniv
  • 20 ноября 2024, 18:30
Это как раз чаще всего не надо.
+
avatar
0
Что за мультиплексирование и почему его нет? Я в таких прошивку обновлял оригинальной утилитой STLINK, а больше там особых отличий нет.
+
avatar
0
  • aliex
  • 21 ноября 2024, 20:54
Там две фичи, и я в них чуток запутался.
1) Debug Wire — его таки нет, а жаль, приятная штука.
2) Virtual COM Port — вроде как в 2.1 он есть, но на «свистках» какие-то сильно разные отзывы о том, завёлся или нет. То есть с дебаггера подключаемся ещё на tx/rx на отлаживаемом контроллере, и дебаггер работает как usb-serial заодно.
+
avatar
0
1) Debug Wire — его таки нет, а жаль, приятная штука.
Не буду утверждать, т.к. давно не отлаживал код на СТМ32, но, как мне кажется, последний раз я это делал без debug wire через обычный st-link в IAR. Но, думаю, если очень захотеть, можно его вывести.
То есть с дебаггера подключаемся ещё на tx/rx на отлаживаемом контроллере, и дебаггер работает как usb-serial заодно.
И физически этих пинов тоже на 10-контактном разъеме свистка нет?
+
avatar
0
  • aliex
  • 24 ноября 2024, 22:02
DebugWire я вообще больше на nrf использовал, он на всём ARM-based есть.

Может, и можно что-то наколхозить, мне хабровская статья попадалась — там что-то получалось, что-то нет, но деталей не помню.

Я искренне не понимаю смысла ковыряния в этих свистках, которые для начала надо расковырять, отмыть и заизолировать, если в в любую «таблетку» можно зашить совершенно понятный дебаггер, к которому есть исходники, документация и люди, готовые помочь в случае чего.
+
avatar
+1
  • Zelenyj
  • 25 ноября 2024, 00:28
На свистках комбинированный программатор: на разъем выведены SWIM И SWD. Есть примеры доработки, чтобы вывести TDO (SWV) взамен одного из сигналов SWIM: SWV есть на контроллере, нужно только резануть нужную дорожку и бросить перемычку. Т.к. там прошивка от ST, то может и serial есть на пинах контроллера есть и данную задачу можно аналогично решить.
+
avatar
0
  • pesp
  • 21 ноября 2024, 21:33
Лотерея — у меня один сдох почти сразу, а второй трудится уже лет 5.
+
avatar
+1
  • aliex
  • 22 ноября 2024, 15:22
Насколько я помню, лотерея в основном лечится вскрытием сразу после покупки, смывкой флюса, проверкой на закоротки и дальнейшей изоляцией. Как по мне — проще сразу на блу пилл или ещё что корпус сделать.
+
avatar
+3
  • sswa
  • 20 ноября 2024, 03:41
А как у этого программатора с обновлением прошивки? (в обзоре не увидел)
+
avatar
+2
  • Leoniv
  • 20 ноября 2024, 11:43
Так всё работает. Зачем обновление?
+
avatar
+2
  • xDriver
  • 20 ноября 2024, 13:12
да?
ну это пока вы его в CubeIDE не использовали.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 13:37
У меня нет Cube, и, надеюсь, не будет.
+
avatar
0
  • selin
  • 20 ноября 2024, 23:21
А чем кубик так непонравился?
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 23:27
Да я вообще его не пробовал. Не хочу распыляться. Всяких программ много, а мозгов — мало.
+
avatar
+1
  • selin
  • 20 ноября 2024, 23:38
Насчёт распыляться — тоже верно…
Но, иногда, новый инструмент бывает намного удобнее (после его освоения), чем старый, пусть и привычный.

Однако согласен — если творческий зуд не беспокоит и все насущные задачи успешно решаются теми инструментами, к которым уже привык — то нет смысла тратить время на изучение чего-то нового… Хотя это, как по мне, верный признак старости и закостенелости )))
Сужу по себе )
+
avatar
+2
  • Leoniv
  • 20 ноября 2024, 23:44
Да, это признак старости. И с этим ничего не поделать — неизбежность.
+
avatar
0
Но, иногда, новый инструмент бывает намного удобнее (после его освоения), чем старый, пусть и привычный.
Как в кубе дописать CRC32 в конец файла прошивки?
+
avatar
0
это пока вы его в CubeIDE не использовали.
А зачем он? Автор использует IAR — это намного более сильная вещь.
+
avatar
0
  • pesp
  • 21 ноября 2024, 21:35
Спорное утверждение.
+
avatar
-1
Не скажу прямо на сегодняшний день, но три года назад компилятор IAR был чуть ли не лучшим, сильно уделывая остальные (в том числе и компилятор x86 от Microsoft). И пару раз читал в описании всяких бутлоадеров — «компилируйте IAR, иначе не влезет в отведенный объем».
+
avatar
+1
Думать что IAR лучший это эффект Манделы.
На самом деле самый покупаемый компилятор это GreenHills, он занимает половину корпоративного рынка, IAR только второй.
+
avatar
+1
  • pesp
  • 22 ноября 2024, 21:15
лет 5 назад сравнивал IAR и GCC. Второй оказался чуточку эффективней. И он многоплатформенный. И быстрее (но тут неравная ситуация — под GCC я собирал на Linux, а в IAR под виндой.
+
avatar
+1
Сравнение компиляторов является задачей не подъемной для одного человека. Давным давно я работал в компании, которая для выбора между GHS и IAR задействовала достаточно много девелоперов и тестеров, в конце концов выиграл GHS, уж я не знаю какой критерии был ключевым, думаю все таки более стабильный результат для одного и того-же кода при разных настройках оптимизации, у IAR действительно с этим бывают проблемы.
+
avatar
0
Выиграл тот, что на момент тестирования предложил больше денег откатов ))))
+
avatar
0
Все может быть, но сомневаюсь, цена вопроса примерно миллион баксов, решал человек с зарплатой на тот момент примерно 150тыс баксов в год- очень опасно, не тот уровень, таких называют «ни украсть ни покараулить».
+
avatar
0
Второй оказался чуточку эффективней.
У меня ровно противоположный опыт. На GCC сейчас собираю проект под АВР, он там такие перлы выдает, что удивишься. Например, умножение двух 8-разрядных чисел с 16-разрядным результатом конвертирует в три команды умножения. IAR такого не делал.
+
avatar
0
о том и речь, у одного один результат, у другого другой- очень тяжело сделать комплексную проверку чтоб покрыть все варианты, особенно если код привыкли писать в геймкодинг стиле без оглядки на MISRA или еще какой ограничивающий всевозможные программные трюки свод правил.
+
avatar
0
чтоб покрыть все варианты
Все варианты вряд ли возможно покрыть вообще. По идее, надо смотреть по конкретной задаче, выбирать наиболее нагруженные места, компилировать и сравнивать. Но по GCC уже сейчас скажу, что то, что он делает на AVR — не нравится.
писать в геймкодинг стиле без оглядки на MISRA
Secure Development — достаточно давняя тема в С++, многие моменты сейчас подсвечиваются даже самим компилятором. Какая-то часть уже отрабатывается «автоматически» (типа C++ cast only). Но осознанные нарушение (типа арифметики указателей), конечно же, применяются.
+
avatar
+6
  • redcap
  • 20 ноября 2024, 14:40
Так всё работает. Зачем обновление?
Часто для того и обновляются, чтобы заработало что-то ненужное, а нужное поломалось :)
+
avatar
+2
Захочется Вам завтра использовать не F103, а какой-нибудь новомодный 32WBчто-то-там, а ваш древний ST-LINK такого не умеет.
Оригинал можно обновить, и он снова в деле, а с этим клоном придётся доставать бубен и разбираться, как пользоваться OpenOCD (в принципе, ничего сложного).
+
avatar
+5
  • Leoniv
  • 21 ноября 2024, 11:26
С таким же успехом завтра понадобится вообще не STM, и нужен будет другой программатор. Оставим завтрашние проблемы на завтра, сегодняшние он прекрасно решает.
+
avatar
+2
Дешевый свисток я прекрасно обновлял из родной утилиты ST-LINK. Не думаю, что с этим должны быть какие-то проблемы.
+
avatar
+18
Леонид Иванович, спасибо большое за идею с pogo-pin в разъём Dupont — не приходило в голову, обычно кусочек макетки использовал.
Кстати, на Али продаются «прищепки» с такими пинами, которые идеально подойдут в Вашей ситуации — можно будет не держать разъём, а подключить прищепку и убрать руки. Вот пример:прищепка для программирования
К сожалению, Вы приобрели явную подделку оригинального программатора — в оригинале множество дополнительных деталей, например, защитный буфер на линиях данных.
Согласен, что с большинстве ситуаций достаточно и такой версии без защит, но тогда экономически более целесообразно купить «свисток» ST-Link на том же Али — стоит 2-3 доллара, начинка абсолютно такая же, как у Вашего программатора. Единственный недостаток — разведены только линии SWD, полноценный JTAG использовать не получится. Но не думаю, что это существенно — у микроконтроллеров STM32 SWD отлично работает. Вот пример: St-Link V2
Если ориентироваться на будущее, можно поискать ST-Link V3, но они выпускаются в абсолютно убогих исполнениях, стоят дороже, а дополнительного функционала не дают.
Кстати, множество выходов из строя китайских программаторов ST-Link V2 связаны с некачественными кварцами на 8 МГц. Если программатор перестал подавать признаки жизни, стоит попробовать перепаять кварц — зачастую помогает.
+
avatar
+2
  • Leoniv
  • 20 ноября 2024, 11:42
на Али продаются «прищепки» с такими пинами
Спасибо за ссылку! Да, действительно, мне они подойдут идеально. Хотя в моем конкретном случае прошивка микроскопическая, идет так быстро, что дольше будет прищепку цеплять. Но если надо будет там что-то новое отлаживать — прищепка будет к месту.

К сожалению, Вы приобрели явную подделку
Знаю. Только не «к сожалению», а «к радости», ибо не подделка стоила бы других денег. А сгорит — так сгорит, процессор поменять не проблема, прошивки доступны. Главное — корпус останется.

экономически более целесообразно купить «свисток»
Решительно не нравится эстетика. У того, что в обзоре, очень красивый корпус, это и стало решающим в выборе. Еще плюс — разъем mini-USB, который у меня всегда на рабочем столе, а так надо будет еще удлинитель USB заводить.

полноценный JTAG использовать не получится
Я вообще не знаю, зачем это нужно.

Если программатор перестал подавать признаки жизни, стоит попробовать перепаять кварц
Спасибо! В своих конструкциях я тоже с таким столкнулся. Купил на Aliexpress кварцы, так было уже довольно много случаев, когда они уходили в обрыв.
+
avatar
+2
  • ABATAPA
  • 21 ноября 2024, 09:35
пример
Дорогой пример. Можно найти значительно дешевле:
и «ручные»:
+
avatar
0
  • Leoniv
  • 21 ноября 2024, 11:24
Да, я тоже нашел дешевле. Нашел даже красивую красненькую прищепку.
+
avatar
0
  • ABATAPA
  • 21 ноября 2024, 16:14
Красненькие дорогие. :)
+
avatar
0
  • Leoniv
  • 21 ноября 2024, 19:58
3.35$ с доставкой. Терпимо.
+
avatar
0
  • ABATAPA
  • 22 ноября 2024, 00:35
Это где ж такое?! Ссылку!
+
avatar
+1
  • Leoniv
  • 22 ноября 2024, 00:42
+
avatar
0
  • ABATAPA
  • 23 ноября 2024, 11:28
Спасибо!
Всё равно, конечно, дороже наборов для сборки, но прикуплю.
+
avatar
+1
Кстати, множество выходов из строя китайских программаторов ST-Link V2 связаны с некачественными кварцами на 8 МГц. Если программатор перестал подавать признаки жизни, стоит попробовать перепаять кварц — зачастую помогает.
О, вот за это спасибо — у меня как раз старый программатор перестал работать. Я уж думал, что его кот статикой выбил, попробую кварц заменить (если есть на 8 МГц, конечно).
+
avatar
+5
  • RW9UAO
  • 20 ноября 2024, 06:08
плюсану за st-link двухдолларовый, у нас и в металл корпусе и без нифига — работают, апдейт прошивки проходят. и с «стм32» на борту и шлифованные.
даже если монтажники спалят — не жалко за их цену.
про пого-пины — спасибо.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 11:44
Как можно сравнивать их эстетику?
+
avatar
0
  • alex323
  • 20 ноября 2024, 21:41
Есть в пластиковых корпусах. Весьма симпатичные. У меня и пластиковый и металлический есть.
+
avatar
0
Эстетика у такого устройства не важна. Это, по сути, переходник, как он выглядит — дело десятое. Но вот иметь в наличии желательно таких несколько, чтобы если вдруг сгорит/потеряется/сломается, было не жалко и тут же было чем заменить.
+
avatar
+1
  • Leoniv
  • 21 ноября 2024, 20:05
Нет, не могу без эстетики, слёзы наворачиваются, кода не вижу.
+
avatar
+4
а фирменная утилита STM32CubeProg прошивку, в вашем клоне ST-LINK V2, обновляет без проблем и ошибок?
+
avatar
+1
  • Helg100
  • 20 ноября 2024, 09:30
Я сейчас обновил. Встала версия V2J39S7
+
avatar
+1
  • Leoniv
  • 20 ноября 2024, 11:44
Без понятия. А зачем вообще прошивку обновлять, когда и так работает?
+
avatar
+2
Все мы люди и все делаем ошибки. Поэтому и придумали обновления.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 19:09
В данном случае уже все заработало, обновления позади.
+
avatar
+3
Такой большой разъем это золотой стандарт прототипирования, почти все покупные и кастомные девборды делаются именно с таким большим разъемом, до серийного образца естественно такой разъем доходит крайне редко.
Связано это вероятно с наличием большого количества земель, делающих возможным использовать простые плоские кабеля с изоляцией сигнальных проводов друг от друга земляным проводом, это крайне важно для быстрых дебагеров, коим ST-Link не является но очень хочет казаться.
+
avatar
+2
  • Leoniv
  • 20 ноября 2024, 11:53
Какой-то нелепый этот «золотой стандарт». Допустим, у ПЛИС тоже есть быстрая отладка через JTAG, но там разъем всего на 10 контактов. Тоже большой, конечно, но вполне терпимо. Отладку ведь в 99% случаев приходится делать на своей плате (а не девборде), так как для отладки нужна обвязка, которую проводочками подключить не всегда возможно.
+
avatar
+1
Золотой стандарт диктуют большие компании, в которых достаточно хорошие бюджеты и все устроено совсем не так, как принято у малых компании или независимых разработчиков.
Железячники и девы работают параллельно, и примерно 75% кода готово до выхода первого сэмпла от железячников, и как раз таки на девбордах. Очень часто и дальше продолжают дебажить на девбордах лишь изредка проверяя ключевые релизы на сэмпле. Уже ближе к финалу переходят на дебаг на сэмпле, если это возможно, что встречается не часто.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 14:52
Не представляю, как можно дебажить на девбоарде что-то с развитой периферией, тем более, скоростной.
+
avatar
+3
Атомизация задач, абстракция, разделение по уровням, использование стандартизованных отраслевых библиотек — вот ключ к дебагу без сэмпла.
Имея большой опыт самостоятельной работы это по началу очень тяжело понять, особенно когда впервые заходишь в компанию делающую скажем роботов и ждешь что на каждом рабочем месте как минимум десептиконы а там ни одного реального образца а куча вот таких вот плат и коробок с лампочками и переключателями к этим платам подключенными, а до самого робота еще как до луны пешком.
+
avatar
+1
Кстати про роботов. Почему сервы и шаговики в них на какие-то адские напряжения под 400в..600в? Чтобы требуемую мощность и момент получить? Или для лучшего контроля при дробленни шага?
+
avatar
+1
все банально, выше напряжение-> ниже ток-> ниже потери
фотку кстати не правильную вставил, вот эта должна была быть
ссылка
+
avatar
+1
  • Leoniv
  • 20 ноября 2024, 21:35
Люди, которые программируют такие сложные вещи, являются сверхумными. В моем понятии это какие-то инопланетяне, чужеродные существа.
+
avatar
+2
На самом деле людей самостоятельно программирующих такие сложные вещи практически не существует, потому что это коллективная работа, в которой четко разделены роли, и даже внутри одной роли есть сильная атомизация.
+
avatar
+1
  • Leoniv
  • 21 ноября 2024, 11:29
Попытался представить — каково это. Почувствовал, что это жутко неинтересно. Когда программируешь неизвестно что и неизвестно для чего, руками не прикасаешься к будущему продукту. Понимаю, что по-другому нельзя, но сочувствую таким программистам. Надеюсь, что хоть зарплата у них нормальная, чтобы компенсировать плохую работу.
+
avatar
+1
  • aliex
  • 21 ноября 2024, 12:25
Лично для меня вполне интересная работа. Вероятно, так не для всех, конечно. Ну и насчёт «не прикасаешься» — это перегиб. Прикасаешься, нас даже в командировки для этого таскали.
+
avatar
0
  • Leoniv
  • 21 ноября 2024, 12:55
Так Вы писали, что отладка на железе практикуется, значит все хорошо и интересно. Это dirtycat говорит про какое-то использование программистов в темную. Думаю, что он просто нагоняет солидности, показывая, что имеет отношение к нереально крутой компании.
+
avatar
+1
  • aliex
  • 21 ноября 2024, 13:55
отладка на железе практикуется, но удалённая в основном. Я вообще связи не вижу, работать с чистым софтом тоже вполне интересно. Есть железо, нет железа…

В любом серьёзном проекте ты целое толком не увидишь, так как делаешь маленький кусочек. когда-то меня это тревожило, пото попустило. То, что удалось пару раз за железку подержаться ничего особо не меняет. А там, где делаешь целиком — это какая-то мелочёвка, банально в силу ограниченности человеческих возможностей.
+
avatar
0
  • Leoniv
  • 21 ноября 2024, 14:04
Если целое толком не увидишь — то это совсем не интересно. Ради чего тогда заниматься серьезными проектами? Алчность, деньги? Как по мне, работа в первую очередь должна быть интересной, и только во вторую — денежной. Хотя, конечно, понимаю, могут быть разные жизненные обстоятельства, когда готов на любую работу — ну там жить негде, или болезни какие.
+
avatar
+1
  • aliex
  • 21 ноября 2024, 14:39
Уже когда-то обсуждали, не имею желания продолжать. Лично для меня интересно решение сложной задачи на грани возможностей.
+
avatar
0
современный программист не может чувствовать сопричастность к продукту по тому что не он его придумал, он только перевел чужие мысли на язык программирования используя чужие библиотеки.
Времена когда программист действительно участвовал в разработке у крупных компаний давно уже прошли, у средних на исходе, а у мелких эти времена закончатся скорее всего вместе с мелкими компаниями.
+
avatar
0
  • aliex
  • 21 ноября 2024, 15:01
Да ладно, от уровня зависит. Понятно, что никто не разрабывает весь продукт целиком, но обычно ты можешь сказать «я сделал такие-то фичи». И насчёт «только перевел чужие мысли на язык программирования» — это идеализация. На практике это «прилетела идея фичи, покидали её туда-сюда с продакт овнером и командой, остановились на то, что реализуемо, получили аппрув, сделали». Или даже «сделал» — в одиночку. А если ты толком не понимаешь, как работает библиотека — то масса граблей обеспечена (тут криптография и TLS всякие — отличный пример), «просто использовать» не выйдет.
+
avatar
0
ой ё…
сколько человек в команде?
+
avatar
0
  • aliex
  • 21 ноября 2024, 15:21
Да стандартные скрам-команды, 6-12 человек. Другое дело, что их куча. А если всего на проекте — по софту 300+, железячников — не знаю. Больше, наверное.
+
avatar
0
имея 300 рыл у вас в наличии махновщина потипу дев еще и девопсит? Соболезную, на моей памяти этим переставали заниматься в компаниях когда количество девов переваливало за 50.
+
avatar
0
  • aliex
  • 21 ноября 2024, 16:14
Кому соболезнуете? Если мне — то не стоит, меня очень даже устраивает, что нет лишнего геморроя. Если конторе — тоже незачем, у неё всё хорошо, из лидеров рынка, продукт продаётся, а мы следующие версии делаем, и т.д.

Ещё раз говорю — раньше и было «все занимаются своим» — подход исчерпал себя, слишком много накладных расходов и потерь времени на согласования. Сейчас, грубо говоря, девопсы занимаются тем, где нужно знать глубокую девопсовскую специфику, а если мне тупо в моём билд плане дефолтное значение переменной поменять или к скрипту параметр добавить — я могу это сделать сам, максимум получив аппрув. А было так, что мне дольше объяснять, что нужно, чем сделать, потому что я своё поле наизусть знаю, а у девопсов таких планов пара сотен.
+
avatar
0
Мне чтоб поменять дефолтное значение надо пройти все круги ада, начиная от риск аналитика и заканчивая клоунами девопсами, на это все, с момента появления желания до момента релиза с новым дефолтным значением уйдет минимум 20 человекочасов.
И кого-то обязательно за это трахнут, а именно того кто отвечает за дефолтные значения, конкретно системного инженера или рек инженера, потому что они дали св архитекту значения а он их дал мне. Еще раз возникнет у меня желание менять дефолт кого-то из них опять трахнут, но жестче. И так до тех пор, пока он не поймет что надо включать мозги когда выбираешь дефолт. И после этого у меня не возникнет желания менять дефолт- в этом и смысл, каждый делает свое дело правильно и другим не нужно напрягаться.
А у вас просто махновщина, кто-то другой накосячил с дефолтом или забыл добавить параметр в архитектуру которую ты уже реализовал и тут ты такой добрый устремился фиксить, ага, а потом еще раз и еще раз, а ему пофигу, зачем если есть ты.
+
avatar
0
  • aliex
  • 21 ноября 2024, 17:56
Мы абсолютно о разном.

Я (точнее, команда) отвечаю за подсистему, в том числе за то, чтобы относящиеся к ней билд планы ранились как нужно и демонстрировали, что всё работает соответственно рекам. Сиайщики детали наших билд планов, по большому счёту, не знают — их банально много, и разных, заточенных под потребности той или иной команды.

И если при рефакторинге мы решили, что какой-то параметр удобно иметь конфигурируемым и добавили дополнительную перменную в билд план, чтобы для отладки можно было как-то изменить поведение — это наше внутреннее дело, снаружи никому не интересное. Или там — в плане смены дефолта — решили, что всё отладили и логи в 200 мегабайт по дефолту нам ни к чему, и понизили дефолтный уровень логирования. В общем, это не те вещи, где надо бегать и согласовывать.

И тут два варианта — либо я иду к команде CI, завожу им тикет, они его куда-то там планируют и в конце концов делают Либо правлю сам (благо, там одна строка), даю им на ревью, и готово.
+
avatar
+2
  • Leoniv
  • 21 ноября 2024, 19:53
Давно предрекают конец мелким компаниям. А они всё не заканчиваются, и не закончатся никогда. У меня например, как правило, бывает так: ознакамливаюсь с задачей, предлагаю решение. Если заказчик дает добро, то придумываю конструкцию устройства, потом принципиальные схемы, развожу платы, пишу прошивки для контроллеров и ПЛИС, иногда пишу софт для PC (бывает, привлекаю программистов), все это паяю и отлаживаю, иногда изготавливаю механические детали (бывает, привлекаю конструктора-механика и стороннее производство) и собираю их, разрабатываю дизайн панелей, пишу руководство пользователя, закручиваю последний винт и отдаю заказчику. Это приносит удовольствие. Считаю, что это намного круче, чем быть 45-м программистом с левого края во втором ряду в крупной компании.
+
avatar
0
не закончатся никогда.
Не факт. Раньше на каждом углу стояли мелкие палаточки, продавали продукты, пиво, сигареты. Где они теперь? Везде только магазины крупных сетей.
Считаю, что это намного круче, чем быть 45-м программистом с левого края во втором ряду в крупной компании.
Это называется «специалист широкого профиля». Раньше такие ценились, т.к. «могли всё». Сейчас «всё» стало настолько обширным, что уже невозможно его объять одним человеком. Поэтому на первый план выходят знания в одной конкретной области, но глубокие.

Я тоже когда-то работал в небольших компаниях, знал «всё» по нашему продукту и мог заменить любого другого работника на любом этапе. Переход в более крупную компанию был болезненным — месяца два меня не покидало ощущение неполноценности, что я не понимаю, что происходит там, там и там. Но потом я понял, насколько это хорошо — я сосредотачиваюсь на свой области, а если мне нужна информация о других частях продукта — я всегда могу по любому вопросу обратиться и получить консультацию, ведь я окружен такими же профессионалами в своих областях, которым я вполне могу доверять.
+
avatar
+1
  • Leoniv
  • 21 ноября 2024, 21:16
Где они теперь?
Ну кто-то исчез, но не все. И все никогда не исчезнут, речь об этом.

на первый план выходят знания в одной конкретной области, но глубокие
Вот это и плохо. У меня бывали случаи, когда связывался с какой-то тематикой, которая длилась годы. От скуки помереть можно. Нравится постоянно менять проекты и области приложения своих сил. Вот сейчас приходится с лазерной оптикой дело иметь, вчера делал для коровника счетчик молока при доильном аппарате, позавчера — электронику для DLTS-спектрометра, который делался по программе CERN для БАК, а завтра вообще не знаю, что буду делать. Когда большая компания годами делает один продукт, и заниматься еще малой его частью — да зачем это надо? Лучше неглубоко, но шире и разнообразней.
+
avatar
0
Проблема в том, что задач все меньше и меньше.
Люди уже привыкли покупать готовые решения в Китае, вот я помню 20 лет назад взял 1000 баксов за контроллер для гостиничной стиральной машины, оригинальная плата стоила штук около 5ти. Там работы то было на 2 недели, экран кнопки да релюшки.
А теперь на алиэкспрессе универсальный контроллер стиральной машины с экраном и датчиком стоит 40 баксов, сорок мать его баксов. И так почти во всех темах, с которых мы кушали хлеб с маслом и иногда икрой в конце 90тых начале 2000, куда не ткнись уже есть готовое решение за очень не дорого.
+
avatar
+2
  • Leoniv
  • 22 ноября 2024, 00:36
Это так, задач становится меньше, но это не повод кричать «все пропало» и сдаваться, идя в большую компанию. Можно еще побарахтаться, на наш век задач хватит.
+
avatar
0
Раньше на каждом углу стояли мелкие палаточки, продавали продукты, пиво, сигареты. Где они теперь? Везде только магазины крупных сетей.
Ну вообще то они все на месте, работают, продают пиво, фастфуд, сигареты. То, что у нас выжгли все живое, не значит что во всем мире так.
+
avatar
0
А ларчик просто окрывался. Спасибо.
+
avatar
0
  • aliex
  • 20 ноября 2024, 23:48
Нуу… есть основания подозревать, что где-то таки стоит стая этих роботов разной степени собранности и там основное тестирование и отладка и проводится — с шансами удалённо. Потому что на каждое рабочее место их, конечно, не поставить, но отладка без живого железа хотя бы до полуготовности — фэнтези. Скажем так — на протяжении большей части цикла разработки нужна железка, хотя, понятно, что заменять её хотя бы частично какими-то отладочными платами или вообще виртуалками надо обязательно. Хотя бы потому что оно движется и может при неудачном стечении обстоятельств и долбануть что-нибудь, или себя же сломать.
+
avatar
+1
Нет такого понятия как отладка на живом железе.
На живом железе есть только тесты, к которым программист не имеет никакого отношения, куча специально обученных людей на разных уровнях делают свою работу и до программиста дело доходит только в форме отчета о ошибке уже воспроизведенной на эмуляторах. Программист фиксит, загружает в репозиторий и забывает как страшный сон.
Чем круче компания тем меньше шансов у программиста даже поговорить напрямую с тем, кто видел робота, потому что роли очень четко распределены по уровням.
В маленьких компаниях с маленькими бюджетами да, программист и швец и жнец и на дуде игрец, и он будет заниматься отладкой на живом железе, потому что некому было отловить его косяки на всех предыдущих этапах.
+
avatar
0
  • aliex
  • 21 ноября 2024, 12:00
Есть такое понятие, ещё как есть.

NDA, так что деталей не будет, но вполне большая контора и серьёзная железка. Понятно, что отладка в виде степов и брякпоинтов не работает, но влезть на живое железо и, скажем, процесс перезапустить или какие-то сообщения поправить — в порядке вещей, как и нужную версию софта накатить.

А вот описанный вами процесс — «до программиста дело доходит только в форме отчета о ошибке уже воспроизведенной на эмуляторах» — вообще не слишком понимаю, потому что для того, чтобы что-то сложное воспроизвести на эмуляторе и получить достаточные для фикса данные нужна та же квалификация и то же понимание работы, что и для самого фикса, соответственно, получится просто лишняя бюрократия, проще этим одному человеку заниматься. Да и полноценный эмулятор, со всеми системами, эмуляцией движков, корректными задежками, потерями сигнала и прочим — может, сделать и можно, но стоимость будет такая, что дешевле лишний десяток реальных железок поставить, и результаты на них надёжнее и быстрее получать.

Вообще из моего опыта работы со сложным железом — чем оно сложнее, тем менее выгодна возня с более-менее полноценными эмуляторами. Какие-то куски замокать — да, дать среду, в которой можно начерно что-то разработать и проверить — тоже да, но с полным пониманием, что все нюансы не поймаешь, и просто сократишь конкуренцию за железки (что тоже важно, конечно).
+
avatar
+1
Эмулятор это не ардуинка или еще какая залипуха самостоятельно спаянная, это шкаф размером с пол стола, а иногда и пары стоек серверных, который называется Hardware-In-the-Loop и вокруг него бегают специально обученные HIL инженеры в обязанности которых и входит сконфигурировать HIL так, чтоб он полностью смог эмулировать любой движок, любые датчики, любые актуаторы. Это золотой стандарт для всех в индустрии, и если что-то не получается эмулировать на HIL то дают пинка под зад тому системному инженеру, который выбрал периферию которую невозможно эмулировать на HIL, или датасайнсу чья матмодель не поддается загрузке в эмулятор.
Вся эта система типа EC15504 и прочих V-model сделана именно для того, чтоб избежать «одного человека», заменить его на толпу середнячков каждый из которых делает свою узкую работу. И это оказывается в конечном счете выгоднее и стабильнее чем один гении который делает все сам и который завтра может попасть под трамвай и обрушить бизнес кучи зависимых компаний.
+
avatar
0
  • aliex
  • 21 ноября 2024, 14:02
Я, как бы, в курсе, какими бывают эмуляторы. И что такое HIL, и что такое индустриальная разработка.

Про гениев никто и не говорил. Вполне себе толпа обычных разработчиков, не вижу, как это связано с наличием/отсутствием эмулятора. Делать полноценный эмулятор — долго/дорого, проще готовую систему использовать. А эмулятор имеет смысл простой, трудозатраты которого на два порядка меньше и который позволяет раза в четыре разгрузить тестовые машины.

В общем, давайте сойдёмся, что бывает и так и так, всё равно детали толком дать ни вы не можете, ни я.

Кстати, у нас в итоге вышло, что «каждый из которых делает свою узкую работу» не прокатывает, в итоге всё перетрясли и заставили народ освоить смежную функциональность, а то слишком много пинания задач на коллег получалось.
+
avatar
0
не понимаю, что значит «освоить смежную функциональность»? Заставить девелопера делать юнит тесты? Заставить архитекта писать код?
+
avatar
0
  • aliex
  • 21 ноября 2024, 14:47
Заставить девелопера вылезти из своей подсистемы и освоить ещё парочку, а заодно — забрать себе кусок работы девопсов и CI (тот самый деплоймент на тестовых роботов, к примеру). Заставить qa-мануальщиков осваивать автоматические тесты. Перестать делить на разработчикво тестов и разработчиков продукта (там HIL/SIL тесты размером с продукт и на том же языке, если что). Научить девелоперов делать документацию по тестированию. Архитекты и так код местами пишут.

Общая идея — улучшить понимание смежников и дать возможность, как минимум, тривиальные пятиминутные задачи не пинать к кому-то, а сделать самому, плюс повысить гибкость, чтобы не выходило, что одни стоят и ждут других. Подход вообще здравый, но, понятно, есть те, кто из своей канавы вылезать не хочет ни в какую.
+
avatar
0
Жесть…
Главное не сболтнуть это кому-то из коллег, точно настучат ашэрам что я в неадеквате.
+
avatar
+1
  • aliex
  • 21 ноября 2024, 15:11
Вообще не жесть, вполне рабочая схема пока что получается.

1) Избавляет от ожидания от коллег, пока они сделают банальные вещи, которые ты вообще-то можешь сделать сам за пять минут.
2) Ломает менталитет «это не моя проблема».
3) Позволяет лучше понять боль коллег и, соответсвенно, стимулирует делать так, чтобы этой боли было поменьше. когда разработчик при реализации думает о том, как это верифицировать или деплоить — это хорошо.
4) Заставляет профессионально расти.
+
avatar
0
1. График работ с тасками делается лидом или еще каким скрам простигосподи мастером, ситуация когда в одном спринте появились две зависимые друг от друга задачи требующие готовности одной до окончания спринта являются маркером частичной профнепригодности скрама, а если же он не смог разрулить задачи уже внутри спринта то это маркер уже полной профнепригодности.
2. Это действительно не моя проблема. У моего лида зарплата на 20% выше моей, почему я должен заниматься тем что не досмотрел он?
3. Боль коллег устраняется четким следованием документу, который описывает принципы написания кода, если там написано что нельзя в if закидывать функцию то ты не должен ее туда закидывать, если написано что нельзя из for вываливаться по брейку то ты не должен так делать, не по тому что тебе жалко тестера а потому что просто нельзя.
4. Никакого роста внутри проекта нет, никто не даст в угоду тщеславию ломать KPI. Все что связанно с ростом это тренинги, которые делают в те периоды проекта, когда нагрузка минимальна.
+
avatar
0
  • aliex
  • 21 ноября 2024, 16:06
1. Так зависимости ж между командами, а не внутри, причём по мелочи часто. Ну и минимум 20% всех задач — как водится, added scope. К примеру, изменил я что-то в коде, оказалось, что это требует по мелочи изменений в CI скриптах или в коде соседней подсистемы. Никто до таких блох ничего не планирует, но если я не могу это сделать сам — то подождать, пока коллега освободится и найдёт время — это потерянный день-другой. А если я могу это сделать а другой команде просто код на ревью дам — то решается тут же.
2. Ну, как бы, зарплата — даже не её размер, а наличие — зависит от выполнения задач более-менее в срок. То есть в этом все заинтересованы. Предлагаете, чтобы только тим лид следил за тем, чтобы, скажем, написанное было удобно деплоить на железо? А «удобно» — это такая штука, которая формализуется плохо.
3. Это банальности. А вот устранить боль коллег, которые не могут выдернуть достаточные данные для теста, потому что вы к ним банально не даёте доступ можно только зная, что этот тест есть. А для этого с ними поговорить надо и уточнить, как вы будете верифицировать вот это конкретно требование. Или у вас тест предполагает два деплоя, а потом к вам приходит сиайщик и говорит — ну хорошо, но деплой — это два часа. Ты не можешь что-то с этим сделать? А оказывается, ты вообще можешь ничего не деплоить, а просто закинуть пару файлов на железку, но дедеплой было инициировать проще.
4. Вообще-то профессиональный рост и даёт рост KPI. Вы лучше понимаете систему, больше знаете — ваша продуктивность растёт. Уж не знаю, при чём тут тщеславие. И лучший способ для этого — не тренинги, а как раз реальная не сильно сложная задача плюс кто-то из коллег, кто может в случае чего подсказать, что к чему. Плюс фирме это даёт большую гибкость в аллокации ресурсов, в и тоге — все в выгоде.
+
avatar
0
2. Вот теперь мне все понятно. Вот с этого нужно было и начинать. Все остальное вторично, а первично лишь то, что на вас переложили ответственность, причем сделали ее коллективной, типа не сдадите проект в срок то все не получите зарплату, независимо от того кто накосячил вы виноваты все потому что посмели не выполнить работу за накосячившего.
У нас такого нет, если я не получу зарплату и при этом мой KPI в норме то на следующий день после расчетного я пишу в таймшите вынужденный простой и не прихожу на работу, пока на карту не упадут денежки. И за простой я тоже получу полную зарплату. И это знает мой работодатель, по этому он и не занимается такими манипуляциями с перекладыванием ответственности и очень жестко пресекает все попытки отойти от принятого жесткого рабочего цикла с четким разделением ролей, в котором все медленно но надежно, как на кладбище.
+
avatar
0
  • aliex
  • 21 ноября 2024, 18:07
Забавно вы поняли, но нет. Такого я вообще нигде и никогда не видел, собственно. Логика проще — если проект долго не даёт выхлоп, с ним что-то делают, и любой вменяемый человек это понимает. И с людьми с этого проекта тоже.что-то делают — там уже индивидуально. Как минимум — это нервотрёпка. Так что глобально все, разумеется, заинтересованы, чтобы всё было хорошо, железки продавались а мы и дальше занимались своей интересной и денежной работой. И это лучше получается, когда разделение ролей минимально достаточно для того, чтобы не возникало бардака, но при этом был минимум всяких бюрократических препон. Собственно, весь скрам (и аджайл в целом) примерно об этом.

Кстати, если что — в норме график работ не делается скрам мастером.
+
avatar
0
буду краток.
15 лет проработал компаниях до 50 чел, начинал со студента-практиканта закончил продакт оунером. Какраз слово в слово говорил все то, что говоришь ты, верил в это и хотел чтоб это продолжалось всю жизнь.
В результате случайного знакомства перешел в очень крупную компанию, убеждая себя в том что это только изза денег, вот заработаю и обязательно вернусь в махновщину. Но очень быстро понял что в махновщине будущего нет, и вот уже 15 лет работаю только в крупных компаниях, и считаю что то, во что верил прошлые 15 лет, является простым инфантилизмом и не желанием принимать свое место в пищевой цепочке.
+
avatar
+1
  • Leoniv
  • 22 ноября 2024, 00:32
А что значит «будущего нет»? Вот работал я вчера в одиночку, сегодня работаю, и завтра буду. И место в пищевой цепочке занимаю. Что не так? По-моему, только алчность может заставить стать винтиком в системе.
+
avatar
0
Если снизить уровень потребления то можно и вовсе не работать.
Но человеку свойственно хотеть, мне вот хочется Теслу купить, смогу ли я на нее заработать делая счетчик надоя- сомневаюсь, а работая в крупной компании- да легко.
+
avatar
+1
  • Leoniv
  • 22 ноября 2024, 02:15
Печально, что все свелось к «хочется купить».
+
avatar
0
  • aliex
  • 22 ноября 2024, 15:19
Я, конечно, надеюсь, что вы и правда нашли себе работу по вкусу, но вообще-то это больше на выгорание тянет.

То, что вы описали, как раз особо будущего не имеет из-за явных проблем с гибкостью. А тенденция обратная — не зря все на тот или иной вариант Agile поуходили.
+
avatar
+1
  • Leoniv
  • 22 ноября 2024, 16:46
Открою Вам секрет, что ни один человек особого будущего не имеет. Не успеем оглянуться, как уже пора.
+
avatar
0
В правильно построенном процессе гибкость не нужна от слова совсем, потому что гибкость это латание дыр образованных косяками тех, кто занимался проектом на начальном его этапе- системные инженеры, датасайнсы и прочая рндшная нечисть.
Да, бывают непредвиденные вещи, например недавнее наводнение на заводе в Тайване, но это форсмажор, на такие случаи всегда есть шаг за шагом описанный план B которому надо следовать а не проявлять гибкость.
+
avatar
+1
  • aliex
  • 22 ноября 2024, 19:35
«Рндшная нечисть», «махновщина» и так далее. ну, подход примерно понятен, но ни хрена не работает :-)

Во-первых, потому что рыночная ситуация имеет свойство меняться — как со стороны клиентов, так и конкурентов. А у вас, образно говоря, получается, что когда Эппл выкатила айфон Нокия продолжает кнопочники клепать — там, собственно, что-то близкое и произошло, наглядный пример, так сказать.
Во-вторых потому что сложную систему вообще, совсем, в принципе нельзя безошибочно спроектировать с начала до конца. Всегда будут изменения и дополнительные итерации. От «поставщик обанкротился и компоненты надо менять» до «не вывозим, нужен более мощный FPGA, который вдвое дороже, давайте резать фичи». Мелочи наподобие того, что у стороннего компонента, как оказалось, одна из фич, считай, не работает, я и не упоминаю, когда этих компонент тысячи — это неизбежно. А в водопаде пока пройдёт цикл изменений — впору новый запускать, потому что ещё что-то поменялось.
В-третьих, для хоть какой-то предсказуемости приходится оставлять немереный запас по затратам ресурсов и времени — вон, как у вас выше — «медленно но надежно, как на кладбище». Вот на кладбище оно и попадёт, потому что конкурентам не лень шевелиться быстрее и реагировать активнее.

А уж после начала продаж что начинается, когда приезжает реальный фидбек от клиентов и от сейлзов — это отдельное веселье.

В общем, не зря этот подход практически вымер.
+
avatar
0
Проще будет если я просто перечислю компании в которых используется такой рабочий процесс который я описал, а ты сам решишь вымер этот подход или нет. Я в этих компаниях работал как обычный девелопер, работал в компаниях-субподрядчиках как девелопер или third-party validation and certification инженер.
Siemens/Varian
Siemens/Dade
DaVinci
+
avatar
0
  • aliex
  • 22 ноября 2024, 23:12
Ну Сименс — это понятно, европейский динозавр, кто б сомневался. Сименс, уж извини, не показатель — в силу своего размера и инерционности он будет умирать лет тридцать, чтобы ни делал. Хотя они в IoT залезли — тут будет видно относительно быстро, что могут, что нет. Пока у меня сложилось впечатление, что они от всего «шустрого» тупо избавляются — список проданного очень ярко это демонстрирует — от Siemens Mobile (а ведь в лидерах был когда-то!) до Infineon.

DaVinci — не понял, который, много их, сходу три выгуглилось.
+
avatar
0
Сименс избавляется от шлака, который могут делать и китайцы на коленке, а что касается медицинского оборудования они были есть и будут в лидерах, китайцам там ловить нечего.
ДаВинчи это хирургические роботы- это уж точно никак нельзя назвать вымирающим.
Далее после переезда работал уже в Liebherr, сначала для скоростных железных дорог, потом краны для монтажа ветрогенераторов- тоже совсем не вымирающие виды.
То где работаю сейчас уже озвучить не могу.
И везде одинаковые требования к процессу разработки ПО, отличия только в стандартах и объеме бюрократии, чем выше риски тем выше процент бюрократии, в Сименсе примерно 80% времени уходило на бюрократию, в Либхере 60%, сейчас примерно 90%. И никакой «гибкости», никакой «махновщины».
+
avatar
0
Ой а вы тут чем мериетесь, можно с вами тоже?
Только я не могу похвастаться работой в Сименса подобных конторах но однажды работать в компании, которая производила железо миллионными партиями. Это считается?
Там вот дебажили всё именно на реальных железках. Да были и девборды, но на самом начальном уровне
+
avatar
0
Тираж 1М может быть и у стартапа на ардуинке с одним разработчиком который даже не слышал про SPICE и FuSa, пишет себе и пишет, и дебажит на реальной железке. А поробуй подебажь магниторезонансный томограф, ага.
+
avatar
0
Ладно понял вы тут супер профессионалы, мне не помериться с вами, пошёл рыдать
+
avatar
+1
да нет же, я обычный середнячок, и если допустим сделать конкурс с каким-то типовом тестовым заданием, типа считать температуру с 1W пересчитать ее в Фаренгейт и вывести на семисегментный экран то я буду это задание выполнять дольше всех, код будет самый громоздкий, памяти будет кушать больше всех и работать он будет медленнее всех- для всех работающих самостоятельно либо в «гибких» фирмах мой код будет эталонным примером говнокода.
Но если загрузить мой говнокод в какой-то статический анализатор сконфигурированный скажем на самый тяжелый стандарт из медицины, авто или авиации то я уделаю всех «гибких» как котят, потому что я пишу такой код каждый день и знаю на что должен быть похож продукт желающий получить сертификацию Боинга или претендовать на использование в ADAS уровня 5.
И это при том, что я уже 15 лет не отлаживал софт на полностью живом железе, в редких случаях на живой голове когда ее можно поставить на стол, а все остальное только эмуляция, как и везде, во всех фирмах занимающихся техникой главным требованием к которой является «не навреди человеку».
+
avatar
+1
  • Leoniv
  • 22 ноября 2024, 23:44
У меня мобильник Siemens. Надежный, работает уже больше 20-ти лет.
+
avatar
0
Сименс это огромная корпорация, она постоянно покупает и продает отделения, продали мобильное отделение купили Вариан и Даде, теперь лидеры в оборудовании для диагностики и лечения онкологии.
Так ведут себя многие, тотже Лебхер в котором я работал, с одной стороны бытовые холодильники, а с другой системы охлаждения для истребителей.
+
avatar
0
Вот такой подход разделения специалистов точечно объясняет почему, к примеру, на MacBook Pro из версии в версию качует одна и та же проблем наличия линии 50 Вольт подсветки дисплея и 3.3В низковольтного питания на разъёме шагом 0,5мм или типа того. Между ними даже нет земли чтобы хоть как-то разделить. И вот пока через все эти цепи взаимодействия дойдёт до разработчика команда переделать сервис центры сражаются с этой проблемой из года в год.
+
avatar
0
Да, именно так, распределение ролей всегда ведет к замедлению процессов.
Но этот подход показывает результат- ведь МакБук есть, а продуктов чьи разработчики не придерживались такого-же подхода или не существует или они сильно позади МакБука.
+
avatar
0
  • aliex
  • 21 ноября 2024, 14:54
Ну да, с ростом масштаба процент накладных расходов неизбежен, иначе никак не работает. Другое дело, что надо палку не перегибать, иначе получается очередная блестящая идея замены нормальной команды на кривоиндусов с надеждой всё разрулить процессами. Через год менеджмент осознаёт, что не вышло и возвращает всё взад, ещё через пару лет пытается повторить :-) Я уже раз пять такое видел, результат один и тот же.
+
avatar
+2
  • Leoniv
  • 21 ноября 2024, 20:09
Ну вы и дали, имею в виду aliex и dirtycat. Разыграли здесь клоунаду на каком-то странном языке из непонятных слов. Это вас работа так плющит?
+
avatar
+1
  • aliex
  • 21 ноября 2024, 20:56
Да уж, прошу прощения, нафлудили чуток.

У меня сейчас больше пересборок, чем чего-то ещё, так что избыток свободного времени днём… что заметно :-)
+
avatar
0
  • Leoniv
  • 21 ноября 2024, 21:18
:)
+
avatar
0
  • blishem
  • 20 ноября 2024, 23:56
Я, например, использую JTAG Corelis у которого 4 ТАР канала и все на 20 пинов. Плата, через самодельный переходник на PCI-E версия 5. Само изделие — сетевая плата на базе Broadcom один порт на 400G или два на по 200G. Достаточно сложно? Хотя есть комплектный кабель с 20 на 10 пинов, из которых реально 5 — земля. SWD тот же JTAG из которого, за ненадобностью, выкинули TDI, TDO оставив TMS, TCK.
+
avatar
0
  • Leoniv
  • 21 ноября 2024, 11:31
Вы разрабатываете сетевую плату? Инопланетянин…
+
avatar
0
  • blishem
  • 26 ноября 2024, 21:04
И не одну, а целыми сериями. Что вас удивляет?
+
avatar
0
  • Leoniv
  • 27 ноября 2024, 01:11
Удивляет сложность решаемой задачи. Даже представить себе не могу такую работу.
+
avatar
+2
  • x893
  • 20 ноября 2024, 10:01
«Когда устройство находится во сне с выключенным тактовым генератором, то подключиться к нему по SWD нельзя.»
Биты надо поставить в DBGMCU для отладки в Sleep и Standby режимах
+
avatar
+1
  • Leoniv
  • 20 ноября 2024, 12:33
Нельзя, при этом будет работать внутренний RC-генератор, увеличится потребление. У меня же прооблема не с отладкой, а с обновлением прошивки.
+
avatar
+5
  • Helg100
  • 20 ноября 2024, 10:12
Респект за обзор и ссылки! У меня уже кровь из глаз от моего «поделия»:)
+
avatar
+1
  • Leoniv
  • 20 ноября 2024, 11:49
Вам надо было вместо пайки провода защелкнуть в 20-контактном разъеме. А зачем на втором конце 10-контактный разъем? Много раз видел, что люди применяют большие разъемы, но не понял, почему.
+
avatar
+1
  • Helg100
  • 20 ноября 2024, 14:39
Программируемый девайс собственной разработки, и у него 10-pin коннектор под джамперы частично используется
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 15:16
Понятно.
+
avatar
+7
  • DVANru
  • 20 ноября 2024, 10:27
Раньше программаторы для микроконтроллеров делал для себя сам. Но все мы становимся со временем хуже, и на этот раз я поленился и решил купить готовый.
Не поспоришь:
+
avatar
+9
  • Leoniv
  • 20 ноября 2024, 11:54
Пока не всё потеряно — на краю кровати еще не сижу. Но полон оптимизма — все еще будет.
+
avatar
+1
Я сижу, как глубокий старец, узривший вечное
И любуюсь осенним закатом на берегу
В сокровенном блаженстве устремлен в бесконечное
Наслаждаясь прекрасным осенним закатом сижу.
+
avatar
+3
  • Latte
  • 20 ноября 2024, 11:06
Главный минус что обозреваемого китайца, что двухкопеечных люминек — в них нет защиты от статики (гальваноразвязки). А в оригиналах она есть (ошибся: не во всех, а только ST-LINK/V2-ISOL). Еще у люминек разводка неполная, емнип reset нужно выводить вручную.
Еще отмечу, если память не изменяет, полноценный стлинк можно сделать из блю пилки — неудобство только в том, что распиновка хаотичная.
+
avatar
0
в оригинальных тоже нет развязки, она есть только в серии ISOL, которая стоит у официалов 80 баксов и клонов пока не видно
+
avatar
+1
  • ivan-BG
  • 20 ноября 2024, 11:38
Еще отмечу, если память не изменяет, полноценный стлинк можно сделать из блю пилки
V2 Можно (STM32f103C8T6), у V3 процессор уже другой
+
avatar
+2
  • Leoniv
  • 20 ноября 2024, 12:19
Да, в оргигинале есть защита на линиях SWD (ESDA5V3L), еще есть буфер этих сигналов (SN74LVC8T245), который позволяет работать с V_TARGET отличным от 3.3 В. Но у меня такой потребности не возника. Что касается защиты — посмотрим. В принципе, можно напаять снизу на плату хотя бы стабилитроны на 5.1 В (как в Discovery), там вокруг разъема всюду земля, место найдется.
+
avatar
+1
  • Zlny
  • 21 ноября 2024, 12:02
Защита от статики и развязка — это разное. В оригинале есть защита от статики в виде резисторов, диодов, буфера и еще твс на юсб.
+
avatar
0
  • Leoniv
  • 21 ноября 2024, 12:51
На USB в оригинале никаких TVS не вижу, есть только резисторы в линиях данных. Буфер тоже для других целей нужен — у него разное питание с двух сторон, что позволяет работать с V_TARGET отличным от 3.3 В. А какая с него защита? Сгореть самому и не дать сгореть процессору? Так это не защита. На линиях SWD — да, есть резисторы 22 Ома и TVS диоды. Гальзваническая развязка — это другое, но частично работает и как защита от ESD. Если общий провод программатора не будет сидеть через компьютер на земле, то нет пути тока для ESD-разряда, что снижает вероятность пробоя входов.
+
avatar
0
  • Zelenyj
  • 22 ноября 2024, 02:44
Сперва не разглядел на этой слепой схеме, думал там USB. Увеличил, вижу: RST, SWM — они подключены к U4. USBLC6-2. ESD. Ну пусть так называется, суть та же.
+
avatar
+1
  • ivan-BG
  • 20 ноября 2024, 11:35
Сам я пользуюсь такой Цена практически та же (нужно ловить момент когда у ST free shipping). За то ето оригинальной продукт — инсталируеш STM32CubeIDE (бесплатная для хоббистов) и все работает из коробки (не надо патчить IAR, конфигурировать что то и т.д.). Да и ето уже V3 ST-Link :-). Мою конкретно покупал с Aliexpress(линк давно умерший за то и не делюсь, да и китаец вряд ли понимал что он продает — стырил с завода, выложил на Али)
+
avatar
+5
Я использую вот такой вариант под свои задачи. Для программирования и отладки по SWD.
Программатор тоже копия как и у вас, но рассматриваю вариант покупки оригинального с гальванической развязкой. Не за свои конечно средства.
+
avatar
+1
  • Leoniv
  • 20 ноября 2024, 13:07
Крайне некрасиво плата торчит вверх. Я бы такое не использовал. Как вариант, положил бы плату на стол, а с программатором соединил бы ее коротким 20-жильным шлейфом.

Вижу, выводите на край плату кучу сигналов — и SWO, и RXD с TXD. Реально используете?

Почему захотелось купить с гальванической развязкой? Были какие-то инциденты? Я вижу только одно применение развязанному — дебажить какие-то аудиоустройства. А то с подключенной к компьютеру землей образуется петля с землей аудиокарты и уровень помех заметно повышается.
+
avatar
+1
Красота, согласен, глаз не радует. Пока это тестовый макет устройства приходиться обходиться таким вариантом. Когда пойдет в серию сделаю красивый переходник для быстрого и безотказного программирования. SWO используется постоянно для отладки программистом. RX и TX вывел для задела на будущее. После программирования через SWD, он будет программно отключаться в коде и отладочную информацию буду получать по UART.
Были случаи выхода МК из строя при подключении платы. Возможно статика или разность потенциалов земли. Использую одновременное подключение двумя интерфейсами, SWO и USB.
+
avatar
+1
  • Leoniv
  • 20 ноября 2024, 13:39
Выходил из строя МК на отлаживаемой плате, или в программаторе?
+
avatar
0
На отлаживаемой плате.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 13:46
Чисто в теории, шансы сгореть у процессоров одинаковые, так как у клона никакой защиты нет. Наверное, надо будет добавить на плату программатора снизу стабилитроны на 5.1 В. На Discovery такие есть.
+
avatar
0
Китайцы вообще не заморачиваются с защитой. Максимальная простота и минимальная стоимость.
У меня были мысли собрать программатор по руководству автора ютуб канала Vladimir Medintsev. Но пока в этом не увидел крайней нужды.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 17:56
А что за руководство? Может ссылка есть?
+
avatar
0
www.youtube.com/watch?v=Z9I51qEpZbQ&list=PLiu4O2eIDAdX5E4IBET7qi0clyXQHLGuE&index=20
вот посмотрите.
и продублировал в лс
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 20:36
Спасибо! Лучше ссылки оставлять здесь, они могут быть многим полезны. Посмотрел видео. В последней версии программатора там есть гальваническая развязка. Штука хорошая, хотя можно и без нее. Остальное спорное. Напряжения 1.8 В, 2.5 В как по мне, так не нужны. И зачем надо было ставить 3 стабилизатора? Можно было поставить 1 регулируемый и коммутировать резисторы.
+
avatar
+1
Можно было поставить 1 регулируемый и коммутировать резисторы.
Ненадежно.
+
avatar
0
  • Leoniv
  • 21 ноября 2024, 21:03
Можно пояснить, почему?
+
avatar
+1
Коммутируемый контакт может отойти, на устройство пойдет неверное напряжение питания. Хорошо, если меньше, а если больше? При коммутации готовых стабилизаторов такое полностью исключено.
+
avatar
+1
  • Leoniv
  • 22 ноября 2024, 11:43
Так резисторную цепочку надо проектировать так, чтобы при разрыве было меньше. Тоже перена пряжение будет полностью исключено. Интересно, а может ли что-то сгореть возле STM32, если вместо 1.8 В подать 3.3 В?
+
avatar
0
Её так и нужно проектировать :) К сожалению, даже производители БП не все это знают и еще попадаются БП, где при отвале контакта переменного резистора на выход пойдет более высокое напряжение.

Но, вообще, касательно питания давно понял — если есть возможность получать требуемое напряжение без внешних деталей — надо её использовать и ставить специализированные чипы. Что угодно может случиться с верхним резистором и приехали.
+
avatar
+7
  • xDriver
  • 20 ноября 2024, 13:25
для себя открыл программатор от WeactStudio все остальное более не использую)
https://aliexpress.ru/item/1005005303809188.html
чип оригинальный, никаких проблем с обновами и программирование где бы не было.
+
avatar
-3
  • Leoniv
  • 20 ноября 2024, 13:41
Плата, обтянутая термоусадкой — так себе эстетика.
+
avatar
0
кроме USB-C чем оно лучше мыльницы или народного свистка?
+
avatar
0
  • Chemmax
  • 20 ноября 2024, 13:32
MiniUSB — это плюс или минус?

За подробный разбор спасибо, многое из этого будет полезно для меня как новичку.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 13:42
Для меня это плюс, потому что такой кабель всегда на столе (использую для скачивания фотографий с фотоаппарата).
+
avatar
+1
  • Zlny
  • 21 ноября 2024, 12:13
Он прочнее и лучше удерживается в разьеме, чем микро.
+
avatar
0
  • Smitis
  • 20 ноября 2024, 15:56
Подумал, может и мне улучшить «переходник» для SWD…
Схему для P-CAD не выложите?
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 16:22
А как сюда выложить схему PCAD?
+
avatar
0
ну так не сюда а на диск и ссылку в текст
+
avatar
+6
  • Leoniv
  • 20 ноября 2024, 17:39
Ссылка на файлы sch, pcb, cdr.
+
avatar
0
  • Smitis
  • 20 ноября 2024, 22:17
Премного блогадарен
+
avatar
+2
Как то громоздко все получилось… Вот тоже самое по функционалу с переходниками на bluepill, blackpill и платы на RCT6:
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 17:42
Нормально. Но не хватает переходника на собственную плату, где обычно запаяно 4 штырька. И тут нет NRST, как я вижу. А как решен вопрос с питанием? Его можно брать от программатора?
+
avatar
0
В программаторе мелкая фигня заменена на 1117 3.3, можно смело брать сколько надо в разумных пределах. Ресет как то ни разу не был нужен, все программно ресетится.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 20:08
Мне тоже NRST много лет не был нужен. Но вот нарвался на такую потребность. Стабилизатор — да, штатный слабоват. Хотя обычно 300 мА хватает. Если что-то сильно потребляющее надо шить, тогда включаю отдельный источник.
+
avatar
+1
Вообще, питать прошиваемое устройство от программатора — практика плохая, т.к. не известно, как именно реализована схема питания и что с ней будет, если подать 3.3 В на её выход.

Питать свое устройство, про которое известно всё — да, допустимо. Но зачем привыкать к плохой практике? Завтра может и свое устройство оказаться таким, что его питать будет нельзя, а тогда надо помнить, какое питать можно, а какое — нельзя.
+
avatar
+1
  • Leoniv
  • 21 ноября 2024, 21:07
Надо взвешивать «цена последствий» против «удобство».

Первую половину жизни казалось крутым учиться всяким правилам, ставить защиты и прочее. Но в жизни так мало всего сгорало, что стало понятно — с перестаховкой случился явный перебор.
+
avatar
0
К сожалению, здесь может быть достаточно лишь одного фейла. Я вот недавно поленился защиту на цепи подключения энкодера поставить, замкнул случайно при отладке на выход, на МК пошло 20 В, он сгорел. Да, вроде бы atmega328, вроде еще такие есть в запасе, но обидно же. А поставил бы хотя бы килоомные резисторы, ничего не случилось бы.
+
avatar
+1
  • Leoniv
  • 22 ноября 2024, 11:40
Нашлось бы другое место, где нет резисторов :) На сгоревшие компоненты должен быть свой бюджет, и его надо выполнять для баланса добра и зла.
+
avatar
+1
  • aliex
  • 22 ноября 2024, 15:28
А чего жалко-то? Ну сгорел — и пёс с ним, убытки копеечные. Небось, стоимость времени, которое вы бы потратили на защиты, была бы больше.
+
avatar
0
Время ушло на перепайку, так что нет, резисторы запланировать и установить было бы быстрее) А что касается стоимости — не в ней дело, а в самом факте, что надо было подумать заранее. Ну, и хорошо, что запасные есть, а если бы не было, пришлось бы в три раза дороже брать где-то у нас, не простаивать же.
+
avatar
+4
  • aliex
  • 20 ноября 2024, 18:31
Доработки — респект, без вопросов. А вот сама железка…

Существует, как минимум, два программатора, о которых есть масса хороших отзывов, есть активная разработка/поддержка и открытый код: Black Magic Probe и Pico DebugProbe. Первый идёт на куче платок с STM32 (в т.ч. blue pill/black pill), второй — на копеечной raspberry pi pico.

А тут, получается, натурально купили корпус с непонятной микросхемой, и в ней — непонятной прошивкой. То, что в клонах ST-Link буферов нет, в общем-то, давно известно.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 18:44
Давайте оперировать фактами. А факты таковы: этот программатор работает. Чего еще можно желать?
+
avatar
+2
  • aliex
  • 20 ноября 2024, 19:40
Например, чтобы он работал завтра (а STM вполне замечен в блокировке клонов), чтобы было возможно обратиться за помощью к разработчику, если что-то не то. Чтобы в прошивку можно было влезть (хоть ноги местами поменять, допустим).
+
avatar
0
  • penzet
  • 20 ноября 2024, 20:13
в прошивку можно было влезть
Неужели? Вы много программаторов знаете в которых можно влезть в прошивку?
+
avatar
0
  • aliex
  • 20 ноября 2024, 20:28
Те, что я привёл в пример — с открытым кодом.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 20:15
Не слышал про блокировку клонов. Но если что, ведь можно будет залить сюда любую другую прошивку, для тех же плат pill. Про помощь разработчика и перестановку ног — это шутка была, наверное. В собственной прошивке ноги переставлять незачем. Это если чужую прошивку хотим адаптировать, тогда да. Но чужую берем всегда с открытым исходником. В общем, проблемы больше фантазийные. Black Magic Probe может и хороший, но он на голой плате, без корпуса, нет эстетики, а это в жизни главное.
+
avatar
+1
  • aliex
  • 20 ноября 2024, 20:35
Ну я и говорю — корпус купили.

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

Насчёт блокировки клонов — вот первое, что попалось: community.st.com/t5/stm32-mcus-boards-and-hardware/stlink-v2-clones-blocked-by-st-with-latest-fw-stmcubeide-1-10-1/td-p/134962
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 20:44
Спасибо! Там пробемы с Cube, я им не пользуюсь.

Да, покупку выбирал по корпусу, но нельзя сказать, что купил только корпус. Купил программатор, который прекрасно работает. Единственная реальная претензия к нему — это по поводу отсутствия защиты. Может сгореть процессор. Поэтому, наверное, соберусь с духом и защиту добавлю. К слову, в программаторах на основе pill тоже никакой защиты нет.

Про перестановку ног — ну бросьте прикалываться. Если у части плат SWD разведен по-другому, так что, прошивку программатора каждый раз менять? :)
+
avatar
+1
  • aliex
  • 20 ноября 2024, 21:00
Не думаю, что ST-LINK_CLI.exe чем-то в этом плане отличается, но в любом случае это было не более, чем аргументом «почему клон может оказаться проблемой».

Только корпус — потому что pi стоит 2 бакса, а не 10, а функциональных возможностей больше. Так что в основном деньги отданы за корпус.

Про перестановку ног — просто пример возможной кастомизации, который скорее был бы полезен, если бы использоваля какой-то готовый переходник. А так — но тут уже правда прикол — добавить команду, чтобы можно было в openocd конфигурировать.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 21:31
А что такое «в openocd конфигурировать»?
+
avatar
+3
  • aliex
  • 20 ноября 2024, 23:36
OpenOCD — openocd.org/doc-release/README

Промежуточный софт, который умеет работать с кучей разных железок-отладчиков и прошивальщиков, начиная с FT232 в режиме битбенга, и заканчивая всякими JLink, а софту предоставляет GDB-сервер. Ну, или можно просто его разово запускать для прошивки. Pico Probe подразумевает работу через OpenOCD.

Понятно, для каждой железки у него есть своя конфигурация, которую при желании можно и расширить.
+
avatar
0
  • Leoniv
  • 20 ноября 2024, 23:46
Почитал, ничего не понял. Ну и ладно, очередная лишняя сущность. Этот мир погубят лишние вещи!
+
avatar
+7
Пожалуй добавлю информация о том что STM32 и STM8 можно прошивать с андроид телефона с помошью программного обеспечения FZlasher STM32. Взять можно как в магазине приложений, так и на 4 pda.

+
avatar
+4
Давайте уж и свою поделку добавлю!
Переразведённый как мне удобро ST-Link от платы Nucleo
+
avatar
0
  • Leoniv
  • 21 ноября 2024, 13:36
О, круто! А расскажите про него. Что за SOIC-8 в углу, похожий на полевой ключ? Защита SWD — только резисторы 22 Ома? Что есть на выходном разъеме?
+
avatar
0
SOIC-8 это P-канальный полевик который подаёт на схему (в оригинале плату Nucleo) питание когда что-то там определилось в процессоре и отладчик начал работать. Тут используется просто как выход 5 Вольт USB для питания подключаемых устройст.
Защита только резисторы, в общем как всё по схеме оригинала.
И тут есть UART ещё и вот этот факт лично мне максимально удобен оказался. Одна USB дырка занята и там тебе и JTAG и UART сразу
На разъёме UART, SWD, NRST и чёт там ещё чем никогда не пользовался )
+
avatar
0
  • Leoniv
  • 21 ноября 2024, 14:00
Да, UART при отладке часто использую, на компьютере обычно пишу специальное приложение под каждый проект, где вывожу графики величин, распологаю поля ввода параметров и т.д. Но я использую отдельную дырку USB. Например, вот пример отладочного софта для контроллера синхронного двигателя:

+
avatar
0
Серьёзный подход! Тоже приходится писать софт тестовый, но если это есть в ТЗ, сам по своей воле не заставить писать что-то подобное )
+
avatar
0
  • Leoniv
  • 22 ноября 2024, 11:46
А без этого не написать прошивку. Впрочем, пока не получается и с этим :)
+
avatar
0
Может взять исходники VESC да и пусть пашет? ))
+
avatar
0
  • Leoniv
  • 22 ноября 2024, 18:18
Шутить изволите. Это ведущий двигатель для катушечного магнитофона. Допустимая неравномерность вращения исчисляется сотыми долями процента.
+
avatar
0
Не ну тут уже как говориться мои полномочия всё ©
В прецизионность лезть моих умстенных способностей не хватает, я так попроще чего поделать а в последнее время всё больше и больше в продажи ухожу от всего этого разработчиского и этот факт меня безмерно радует )
+
avatar
0
  • penzet
  • 22 ноября 2024, 17:58
Внешний вид клона не сильно то и отличается от оригинала
+
avatar
0
  • Leoniv
  • 22 ноября 2024, 18:08
Что меня и обрадовало — совсем не отличается. И качество пластика хорошее.
+
avatar
0
  • penzet
  • 22 ноября 2024, 18:31
Тогда почему Вы уверенны что купили клон а не оригинал? Нет ведь возможности сравнить их внутренности.
+
avatar
0
  • Leoniv
  • 22 ноября 2024, 18:34
Думаете, фирма STM стала бы делать свой программатор на процессоре китайской фирмы Geehy, который та скопировала с STM32F103?
+
avatar
0
  • penzet
  • 22 ноября 2024, 18:41
Это врядли…
+
avatar
0
  • iamjdoe
  • 26 ноября 2024, 18:39
А есть у кого-нибудь совет по проектированию ПО встраиваемых систем? Потому как когда проект переступает определённый порог сложности, голова перестаёт умещать все взаимосвязи: какая ф-ция меняет ту или иную переменную, как организован тот или иной процесс и так далее.
Пишу сейчас управление 8-ю частотниками, с управлением как в автоматическом (командами от ПЛК), так и в ручном (кнопки на плате) режимах, всё это дело общается по Modbus-RTU. Приходится рисовать блок-схемы, а они становятся всё сложнее и запутаннее при добавлении обработчиков всевозможных ошибок и отслеживании таймаутов.
Вот и думаю, наверняка я не первый этим путём иду, так зачем изобретать велосипед?
Однако ничего дельного найти я не смог.
+
avatar
0
  • Leoniv
  • 26 ноября 2024, 18:54
По мере усложнения проекта он становится все более глючный, а скорость разработки падает. Потом разработка вообще останавливается, проект приходится бросить и заняться чем-то более простым. Сейчас набегут с советами улучшить структуру, разбить на части и т.д. Они не понимают, что у любого человека есть предел умственных способностей. Если для одного проект кажется простым, то для другого он может оказаться совершенно неподъемным, как его ни переделывай.
+
avatar
+1
  • iamjdoe
  • 27 ноября 2024, 07:32
Бросить это не подход. Кто-то же пишет код для имеющихся в продаже приборов, не с неба же он сваливается. Значит, это в принципе возможно.
Свой код написал и я. У меня там ещё индикация на ws1812, благо её на DMA + ШИМ удалось запустить и оно само вертится. Плюс ко всему, второй уарт на g030 не умеет RTO отслеживать, приходится выкручиваться таймером, а их тоже не так много на борту. Да, блок-схема получается громадной. Но всё решаемо, если постараться. «Терпение и труд всё перетрут» гласит пословица.
Вы так красочно расписывали свои проекты, что я решил спросить совета по проектированию. По мере накопления опыта и я прихожу к мысли, что написание кода это 10-15% общего времени, а остальное — схемы-диаграмы, документация и много-много раздумий.
Зато по опыту понял, что, когда нарисуешь блок-схему, то сам код пишется легко, отслеживать прогресс и вносить изменеия просто, а вся логика прослеживается без особых трудностей. Ведь даже собственный код становится малопонятен через какое-то время, как его не коментируй, что уж говорить о чужом.
+
avatar
+1
  • Leoniv
  • 27 ноября 2024, 11:33
Бросить это не подход.
Это как раз лучшее, что можно сделать в такой ситуации.

Кто-то же пишет код для имеющихся в продаже приборов, не с неба же он сваливается.
Поймите, что все люди разные. Огромной ошибкой будет считать, что если кто-то сделал, то и я смогу. Нет, не сможете. Путем нечеловеческих усилий можно закончить сложный проект, но такая работа не будет приносить никакого удовольствия, и качество ее выполнения будет желать лучшего. Какой смысл страдать и выдавать сомнительные результаты? Выбирать работу всегда надо по способностям. Я никогда не берусь за работы, которые видятся для меня сложными. Хотя для кого-то это раз плюнуть.
+
avatar
0
  • iamjdoe
  • 27 ноября 2024, 18:02
Не боги горшки обжигают.
И более того, я всё написал, всё работает. Мой вопрос был об используемых Вами инструментах проектирования, а Вы стали меня убеждать в том, что я что-то там не осилю. Какой-то Вася сможет, а я — нет.
Ничего не понимаю. Так хотелось найти единомышленников, инженеров, которым интересно решать непростые задачи, а наткнулся на стену непонимания и неверие в собственные силы.
+
avatar
0
  • Leoniv
  • 27 ноября 2024, 18:34
Почему непонимание, как раз понимание полное, сам бывал в подобных ситуациях.

Не «какой-то Вася». Надо понимать, что разработчики — это уникальные люди с очень высоким интеллектом. Мне до них, например, очень далеко. Всегда с восхищением изучаю чужие решения. Если чувствете себя гением — тогда продолжайте. Но раз возникли такие проблемы, то это звоночек, что взялись не за свое дело.

Если вопрос жизни и смерти, тогда с мучениями можно как-то доделать. Но если это обычная задача на работе — бросить и забыть. И браться впредь только за те работы, которые способны сделать хорошо.
+
avatar
+1
  • iamjdoe
  • 27 ноября 2024, 23:00
У страха глаза велики. Ещё в марте я эти стм32 в глаза не видел, только с аврками работал. Но пришёл на нове место и пришлось осваивать. Поначалу тоже страшно было, я ни дма, ни таймеров таких жирных никогда не встречал, ни всего остального. Однако вот, уже второй проект заканчиваю.
И это всё не потому, что я такой гениальный. Было бы желание, а освоить можно всё. Главное — не бояться. Даже Кейл этот конченый и тот удалось победить, хотя после Атмел Студио писать в нём код это сплошное мучение. Можно, конечно ВСкод с надстройками использовать, но отладка в Кейле вне конкуренции. По крайней мере, я не смог найти достойной альтернативы. Или не смог разобраться, как настроить всё точно так же без затрат огромного количества времени и сил.

Но изначально я хотел с вами всеми обсудить подходы к раработке, помогающие воплощать в коде сложные проекты. А всё скатилось куда-то не туда.
+
avatar
+1
  • Leoniv
  • 28 ноября 2024, 00:45
Было бы желание, а освоить можно всё.
Нет.

хотел с вами всеми обсудить подходы к раработке, помогающие воплощать в коде сложные проекты
Проблема знакомая. Решение — не брать сложные проекты.
+
avatar
0
  • iamjdoe
  • 28 ноября 2024, 07:58
Ладно, бессмысленная вышла дискуссия.
+
avatar
0
Что делать, что делать…
Обратится за помощью к специалистам или компании разработчику. Нет денег на это — не нужно и начинать разработку. Сложные вещи одним человеком не делаются.
Как вариант можно попробовать нанять консультатна. Делать core review с другими разработчиками.
Дааа щас возразят: «Но постой, ведь я же ну вот же вжууух и сделал» — да, бывает такое, но в большинстве случаев серьёзные разработки командой в полтора землекопа не решаются.
+
avatar
0
  • iamjdoe
  • 27 ноября 2024, 18:06
А консультант этот Ваш, он сразу с кучей знаний родился? Или он всё же тоже начинал с основ и постепенно рос как специалист?
Какие-то вы тут все… слюнтяи, более адекватного эпитета и не подобрать, пожалуй.
+
avatar
+1
  • Leoniv
  • 27 ноября 2024, 18:37
Он родился с другим мозгом. Все люди разные. Что одному под силу, то для другого совершенно невыполнимо, даже после целой жизни профессионального роста.
+
avatar
0
Тут мы видим типичное мышление инженера, и это неплохо, но есть нюанс как всегда. Этой особенностью инженеров к раз активно пользуются руководители и менеджеры чтобы платить им мало.
Инженеру надо всем и самому себе доказать что «я порвусь но смогу» а это как раз никому не нужно.
Решение проблемы должно быть оптимально с точки зрения затрат времени и сил. Упёрся в проблему — заплати людям за помощь. Как уж там они дошли до этой кучи знаний — вопрос индивидуальный.
инженеров, которым интересно решать непростые задачи
Такое увы никому не интересно, решать задачи, которые можно решить небольшой суммой денег заниматься нет смысла

В общем менять надо подход к делам и жить станет намного проще и дела будут делаться быстрее
+
avatar
+1
  • iamjdoe
  • 27 ноября 2024, 22:06
Вы всё сводите к деньгам. Мне такой подход не нравится.
+
avatar
0
Конечно! Потому что результат всегда на банковском счёте.
И все попытки доказать обратное разбиваются о потребительскую действительность.
Есть деньги — делаем, находим специалистов с нужным мозгом. Нет денег — значит это никому не нужно и нет никакого смысла делать.
Но инженерам это понять ой как непросто.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.