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

Имеем 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? Был бы под рукой ещё один чип, то не заморачивался бы - выдрал бы старый и впаял новый, но другого нет (купить не проблема, но пока доедет...), а работу надо делать.  Насколько всё безнадёжно?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Соедините RESET от STLink к своему

Установите

Connect under reset

и будет счастье

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Во-первых, должен помочь флажок "connect under reset" в St-link utility.

Во-вторых, как запасной вариант, можно переключить контроллер в режим загрузчика, и стереть программу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, EugeNNe said:

но вот ЧТО ДЕЛАТЬ?

Как вариант, к предложенному уважаемым @x893, вы можете использовать программирование по последовательному порту (USART).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как вообще мог отвалиться SWDIO, если SWD не был отключен?

// я когда-то уже натыкался на эти грабли: забывал выполнить AFIO->MAPR = AFIO_MAPR_SWJ_CFG_DISABLE и пытался дрыгать соответствующими ногами — фигвам!

Ну, а насчет подключения "under reset": при должной сноровке это и вручную можно успеть сделать (в консоли пишем st-flash erase, жамкаем и удерживаем reset, а потом, жамкая enter, отпускаем reset). Но удобней, конечно, если линия reset выведена и ее можно к st-link подключить. Ну и, как уже дважды говорили выше, всегда остается возможность прошивки через USART1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 минут назад, x893 сказал:

Соедините RESET от STLink к своему

Установите

Connect under reset

и будет счастье

Нет, счастья не случилось. Пробовал, не получается.

19 минут назад, Eddy_Em сказал:

А как вообще мог отвалиться SWDIO, если SWD не был отключен?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 minutes ago, EugeNNe said:

Пробовал, не получается.

У вас остался ещё один вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

48 минут назад, EugeNNe сказал:

Нет, счастья не случилось. Пробовал, не получается.

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

Если на RST висит конденсатор большой емкости, то могут быть проблемы.

Можно зажать RST на землю, запустить прошивку и отпустить RST - должно сработать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

6 минут назад, adnega сказал:

Если на RST висит конденсатор большой емкости, то могут быть проблемы.

Можно зажать RST на землю, запустить прошивку и отпустить RST - должно сработать.

Конденсатора нет, только подтяжку оставил. Попробую ручками подёргать RESET и вариант с USART тоже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только что, EugeNNe сказал:

Конденсатора нет, только подтяжку оставил. Попробую ручками подёргать RESET и вариант с USART тоже.

Еще ножка BOOT играет рояли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

USART и бутлоадер спас. Затёр память с помощью Flash Loader Demonstrator. После этого всё заработало как должно. Для выявления истинных причин возникшего безобразия, на досуге ещё раз попробую по ходу работы программы переконфигурировать SWCLK и SWDIO. Интересно что получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да что то у вас с RESET было не так, потому что если бы микроконтроллер в режиме сброса бы находился, ему все равно бы было на конфиги SWCLK и SWDIO

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 часа назад, Mysteo сказал:

Да что то у вас с RESET было не так, потому что если бы микроконтроллер в режиме сброса бы находился, ему все равно бы было на конфиги SWCLK и SWDIO

Reset был подключен с 15 контакта разъёма ST-Link на 4 pin MK. И подтяжку прицеплял внешнюю и без неё пробовал.  Не получалось подключится к МК. Цеплял осцилограф к RESET. И вообще говоря, я не увидел импульса сброса даже когда выставлял режимы аппаратного сброса. Пробовал и через ST-Link Utility и через Keil. Что там не так не знаю. Как нибудь на досуге повторю ситуацию и покопаюсь поосновательнее с этой непоняткой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 2/7/2020 at 3:47 PM, Mysteo said:

Да что то у вас с RESET было не так, потому что если бы микроконтроллер в режиме сброса бы находился, ему все равно бы было на конфиги SWCLK и SWDIO

Такие случаи встречаются. Если в "начале" программы стоит отключение SWD, то не всегда аппаратный RESET помогает. У меня J-Flash по reset конектился к чипу, но не стирал. Я перевел в режим bootloader и в таком режиме и J-link и  J-Flash отлично соединяются и программируют чип.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 вернуть в исходное состояние (значения не помню).

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...