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

Перестал шиться stm32 (SWD)

Сразу к делу, пару часов назад случайно в проекте допустил ошибку, изменил состояние регистра MODER порта A 13-той ноги на OUTPUT, а это одна из линий(SWDIO) интерфейса SWD !!!!!

	RCC->AHB1ENR	|= RCC_AHB1ENR_GPIOAEN;
GPIOA->MODER	|= GPIO_MODER_MODER13_0;

 

Собственно теперь никак не могу ни стереть не прошить МК(STM32f405) (((((((

Я уже и через CooCox,Keil и даже STM32 ST-LINK Utility пробовал, не помогают((Контроллер живет своей жизнью!!!

Неужели из-за такой ерунды выбрасывать проц:-?

что делать?

 

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


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

попробуй перед началом прошивки кварц закоротить. По идее из-за этого программа должна зависнуть на этапе инициализации тактовой частоты HSE и не успеет инициализировать порты.

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


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

Что за распайка SWD разъёма, NRST присутствует?

 

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


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

При завешенном NRST стирание ERASE CHIP через SEGGER J-FLASH ARM по SWD не происходит. Проверил на STM32F101.

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


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

А ели он не завешен, а управляется программатором?

 

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


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

Не могу проверить. Вы думаете, программатор успеет снять ресет и перешить?

Изменено пользователем Genadi Zawidowski

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


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

Не могу проверить. Вы думаете, программатор успеет снять ресет и перешить?

SWD позволяет подцепиться когда проц находится в ресете и задать остановку на ресет векторе. После снятия ресета проц встанет до исполнения первой команды!

 

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


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

Надо сделать так :

1)Подтягиваете ногу NRST к земле, и пытаетесь шить по JTAG или SWD. Вылезает ошибка.

2)После этого отсоединяете NRST от земли, и снова шьёте. Должно начать шится.

 

 

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


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

Используйте пин boot0 чтобы при включении питания проц пытался загрузится не с флеш а с usart... Потом цепляйте SWD и стирайте память контроллера. Мне помогло.

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


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

Огромное спасибо всем откликнувшимся)Вообщем помог танец с бубном))))Закоротил NRST на землю и пытался прошить, он долго не прошивался, в итоге после смены проекта- прошился, что на мой взгляд немного странно, т.к строки :

RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;

GPIOA->MODER |= GPIO_MODER_MODER13_0;

я давно убрал!Ну и после очистки памяти изначальный проект заработал))))

Кстати в интернете нашел еще один 100 пудовый вариант: Просто подтянуть линию BOOT1 к единичке и подать питание. Контроллер войдет в bootloader, но при этом будет прекрасно прошиваться)

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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