Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: "Залочил" STM32F051K8
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
ivainc1789
Изучал low power режимы STM32F0 и нечаянно запустил такую вот main():

Код
int main(void){
  // мигнуть светодиодом
  PINSET(LED);Delay(100*ms);PINCLR(LED);Delay(100*ms);

  // вход в режим STOP
  PWR_EnterSTOPMode(PWR_Regulator_ON,PWR_STOPEntry_WFE);

  // дальнейшая программа

}


Никаких событий на пробуждение не запрограммировано.
IAR IDE, J-link.

Теперь приконнектиться к данному процу невозможно. Он быстро мигает 1 раз светодиодом и отключает тактирование.
Пробовал "вклиниться" процедурой коннекта в паузу 100ms но безуспешно.
Есть ли возможность стереть кристалл?
swisst
Цитата(ivainc1789 @ Oct 12 2013, 17:12) *
Есть ли возможность стереть кристалл?


на LPC мне помог хи встроенный бутлоадер - пин подтянул куда-надо (в "0" в моем случае) и дальше отладчик чип подцепил.

с стм не работал, но можете попробовать копнуть в этом направлении - ножками BOOT0, BOOT1 поиграйтесь - попробуйте загрузиться в ОЗУ...
ivainc1789
Цитата(swisst @ Oct 12 2013, 18:25) *
ножками BOOT0, BOOT1 поиграйтесь - попробуйте загрузиться в ОЗУ...


Дело в том, что ноги эти у мну распаяны, а кристалл в корпусе qfn. Загрузка тока из flash.
Подумалось: нужно приконнектить дебаггер по SWD во время сброса - в IAR есть такая опция.
Далее пришла такая шальная мысль - просто удерживать RST пин в низком уровне и при этом запустить дебаггер.
Тока это как-то не сработало сразу, С-SPY не запустился. Однако с третьей попытки получилось, но впечатление что случайно.
Пока эту ситуацию не пойму, боюсь эксперементировать дальше.
Тем временем прога уже написана, осталось обернуть ее в сторожевик и stop mode...
smk
Держать ресет, думаю мысль дельная. В крайнем случае BOOT0 отрезать можно чтоб на плюс питания переключать?
ivainc1789
Цитата(smk @ Oct 12 2013, 19:16) *
Держать ресет, думаю мысль дельная. В крайнем случае BOOT0 отрезать можно чтоб на плюс питания переключать?

BOOT0 под брюхом кристалла соединен с землей. Перепаивать не хотелось бы.
Способ, приведенный мной выше сработал и удалось стереть кристалл, но почему то с третьей попытки. Странно.
haker_fox
QUOTE (ivainc1789 @ Oct 13 2013, 04:11) *
BOOT0 под брюхом кристалла соединен с землей. Перепаивать не хотелось бы.
Способ, приведенный мной выше сработал и удалось стереть кристалл, но почему то с третьей попытки. Странно.

У меня есть стойкое мнение, что этот кристалл - сырой. В нём строенный бут запускается с n-ой попытки, и то, нужно ещё кучку условий соблюсти. По SWD работл в QFN, а в TQFP - не в какую. Тем не менее, я к нему приловчился. Даже программирую с первой попытки.
Falkon_99
Плохой контакт был при первых 2-х попытках)
При удержании Reset в низком состоянии, и одновременном коннекте прогой "STM32 ST-LINK Utility" все получается с первого раза, проверено на STM32F100. Подключаемся спокойно, стираем кристал, и правим прошивку...
Сам разок залочил его, случайно отключил SWD от соответстующих пинов))))
Помог только этот способ, теперь не боюсь. Правда в начале программы int main() делаю обязательную задержку 100ms, тогда 200% работает
yanvasiij
Выпаять кварц и стереть. Разумеется, если по умолчанию настроен на работу от внешнего кварца. Ну как вариант, возможно не такой простой как удерживание reset, но тоже работает.
uriy
Я тоже лочил SWD и JTAG на STMF100 но по ресету подключиться никак не смог. Перепаивал вывод BOOT. Я их всегда через перемычки на топологии цепляю.
mstumbra
На будущее в stm32 utility в настройках можно выбрать опцию connect during reset, тогда она сама программатором reset бросит в ноль и подключится
В IAR эта опция также присутствует

Тогда никакие задержки в начала main не нужны rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.