EugeNNe 0 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба Имеем stm32f030k6, программатор st-link v2/iso ( от ST ). Всё прекрасно работало пока не случилось следующее: по ошибке вместо порта PA7 ( 13 pin ) проинициализировал в программе порт PA13 (pin 23), на котором "висит" SWDIO, как Push-Pull выход, Low Speed без PD и PU резисторов. При загрузке в режиме отладки (Keil) поначалу всё шло хорошо, до того места ( это мои предположения )пока не произвелась эта ошибочная инициализация PA13. Тут Keil вывалил несколько каких то окон с предупреждениями, прочитать не успел, т.к. они быстро пропали, только уловил что DEBUG aborted. В общем программа в чипе работает в штатном режиме, за исключением линии управления на порту PA7, но теперь 030-й ни в какую не хочет ни программироваться, ни отлаживаться. Пробовал и так и сяк, и частоту SWD понижал и RESET подключал. Ни через ST-Link Utility, ни через Keil чип не обнаруживается. Я так понимаю, что ошибочная инициализация порта линии SWDIO привела к "поломке" SWD... (((. JTAG в этом чипе отсутствует. Кто виноват понятно ), но вот ЧТО ДЕЛАТЬ? Как затереть flash? Был бы под рукой ещё один чип, то не заморачивался бы - выдрал бы старый и впаял новый, но другого нет (купить не проблема, но пока доедет...), а работу надо делать. Насколько всё безнадёжно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба Соедините RESET от STLink к своему Установите Connect under reset и будет счастье Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 15 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба Во-первых, должен помочь флажок "connect under reset" в St-link utility. Во-вторых, как запасной вариант, можно переключить контроллер в режим загрузчика, и стереть программу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба 4 minutes ago, EugeNNe said: но вот ЧТО ДЕЛАТЬ? Как вариант, к предложенному уважаемым @x893, вы можете использовать программирование по последовательному порту (USART). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Eddy_Em 1 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба А как вообще мог отвалиться SWDIO, если SWD не был отключен? // я когда-то уже натыкался на эти грабли: забывал выполнить AFIO->MAPR = AFIO_MAPR_SWJ_CFG_DISABLE и пытался дрыгать соответствующими ногами — фигвам! Ну, а насчет подключения "under reset": при должной сноровке это и вручную можно успеть сделать (в консоли пишем st-flash erase, жамкаем и удерживаем reset, а потом, жамкая enter, отпускаем reset). Но удобней, конечно, если линия reset выведена и ее можно к st-link подключить. Ну и, как уже дважды говорили выше, всегда остается возможность прошивки через USART1. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EugeNNe 0 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба 40 минут назад, x893 сказал: Соедините RESET от STLink к своему Установите Connect under reset и будет счастье Нет, счастья не случилось. Пробовал, не получается. 19 минут назад, Eddy_Em сказал: А как вообще мог отвалиться SWDIO, если SWD не был отключен? Не знаю, имею только факт того, что в ходе программы пин SWDIO конфигурируется на выход. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба 14 minutes ago, EugeNNe said: Пробовал, не получается. У вас остался ещё один вариант. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба 48 минут назад, EugeNNe сказал: Нет, счастья не случилось. Пробовал, не получается. Не знаю, имею только факт того, что в ходе программы пин SWDIO конфигурируется на выход. Если на RST висит конденсатор большой емкости, то могут быть проблемы. Можно зажать RST на землю, запустить прошивку и отпустить RST - должно сработать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EugeNNe 0 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба 6 минут назад, adnega сказал: Если на RST висит конденсатор большой емкости, то могут быть проблемы. Можно зажать RST на землю, запустить прошивку и отпустить RST - должно сработать. Конденсатора нет, только подтяжку оставил. Попробую ручками подёргать RESET и вариант с USART тоже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба Только что, EugeNNe сказал: Конденсатора нет, только подтяжку оставил. Попробую ручками подёргать RESET и вариант с USART тоже. Еще ножка BOOT играет рояли. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EugeNNe 0 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба USART и бутлоадер спас. Затёр память с помощью Flash Loader Demonstrator. После этого всё заработало как должно. Для выявления истинных причин возникшего безобразия, на досуге ещё раз попробую по ходу работы программы переконфигурировать SWCLK и SWDIO. Интересно что получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mysteo 0 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба Да что то у вас с RESET было не так, потому что если бы микроконтроллер в режиме сброса бы находился, ему все равно бы было на конфиги SWCLK и SWDIO Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
EugeNNe 0 7 февраля, 2020 Опубликовано 7 февраля, 2020 · Жалоба 4 часа назад, Mysteo сказал: Да что то у вас с RESET было не так, потому что если бы микроконтроллер в режиме сброса бы находился, ему все равно бы было на конфиги SWCLK и SWDIO Reset был подключен с 15 контакта разъёма ST-Link на 4 pin MK. И подтяжку прицеплял внешнюю и без неё пробовал. Не получалось подключится к МК. Цеплял осцилограф к RESET. И вообще говоря, я не увидел импульса сброса даже когда выставлял режимы аппаратного сброса. Пробовал и через ST-Link Utility и через Keil. Что там не так не знаю. Как нибудь на досуге повторю ситуацию и покопаюсь поосновательнее с этой непоняткой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
misyachniy 0 10 марта, 2020 Опубликовано 10 марта, 2020 · Жалоба On 2/7/2020 at 3:47 PM, Mysteo said: Да что то у вас с RESET было не так, потому что если бы микроконтроллер в режиме сброса бы находился, ему все равно бы было на конфиги SWCLK и SWDIO Такие случаи встречаются. Если в "начале" программы стоит отключение SWD, то не всегда аппаратный RESET помогает. У меня J-Flash по reset конектился к чипу, но не стирал. Я перевел в режим bootloader и в таком режиме и J-link и J-Flash отлично соединяются и программируют чип. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 10 марта, 2020 Опубликовано 10 марта, 2020 · Жалоба On 2/7/2020 at 9:57 AM, adnega said: Еще ножка BOOT играет рояли. 3 hours ago, misyachniy said: Такие случаи встречаются. Если в "начале" программы стоит отключение SWD, то не всегда аппаратный RESET помогает. У меня J-Flash по reset конектился к чипу, но не стирал. Я перевел в режим bootloader и в таком режиме и J-link и J-Flash отлично соединяются и программируют чип. Тоже танцевал с таким бубном. 1. Проверить инициализацию периферии, что ноги SWDIO SWCLK настроены на эти ф-ии. 2. Проверить значение емкости и подтяжки для Reset (смотреть для каждого процессора в док-ии) 3. "Вытянуть" линию RESET из отладчика на отлаживаемую плату. 4. Проверить линии BOOT1 BOOT2 - процессоро-зависимые, см. документацию. В ситуации как у ТС на STM32F103 пришлось изменить уровень на BOOT /adnega/, после чего процессор без проблем стерся в ноль STM Util. Для дальнейшей отладки на Keil, - BOOT вернуть в исходное состояние (значения не помню). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться