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

Не могу запрограммировать после установки низкого SysClock

Здравствуйте.

Играюсь с низким потреблением (stm32l-discovery). Запрограммировал sysclock stm32l на тактирование от MSI в режиме 65.536 КГц. МК работает, но теперь программатор ругается, что не может достучаться до процессора.

Пробовал понижать клок у jtag/swd (st-link) - не помогает.

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


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

Здравствуйте.

Играюсь с низким потреблением (stm32l-discovery). Запрограммировал sysclock stm32l на тактирование от MSI в режиме 65.536 КГц. МК работает, но теперь программатор ругается, что не может достучаться до процессора.

Пробовал понижать клок у jtag/swd (st-link) - не помогает.

 

В свое время тоже попадал на это, года полтора назад. Писал в саппорт ST, мне пришел ответ что в той версии ST-Link не реализована функция работы отладчика на низких частотах, как то так, точно не помню уже - функция автоподстройки частоты. На тот момент такое поддерживал только 1 программатор, j-Link или u-Link, тоже уже не помню, мне и посоветовали его использовать. Притом сообщили что в новых версиях ST-Link данная фича будет исправлена. Это видимо новый ST-link, который появился в прошлом году, во всяком случае дизайн там новый :)

Зачем вам отладка в low power режимах?

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


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

Универсальное решение в таком случае: сменить boot mode для загрузки не из flash а с usarta... тогда ваша прога стартовать не будет и соответственно частота sysclk не станет маленькой...ноги BOOT0 = 1 и BOOT1 = 0 жмем RESET и можем стереть flash контроллера, а потом уже шить нормальную программу в контроллер.

 

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


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

В свое время тоже попадал на это, года полтора назад. Писал в саппорт ST, мне пришел ответ что в той версии ST-Link не реализована функция работы отладчика на низких частотах, как то так, точно не помню уже - функция автоподстройки частоты. На тот момент такое поддерживал только 1 программатор, j-Link или u-Link, тоже уже не помню, мне и посоветовали его использовать. Притом сообщили что в новых версиях ST-Link данная фича будет исправлена. Это видимо новый ST-link, который появился в прошлом году, во всяком случае дизайн там новый :)

Зачем вам отладка в low power режимах?

По-моему, в stm32l-discovery стоит st-link/v2. Мне отладка не нужна - теперь я не могу даже запрограммировать МК.

 

Универсальное решение в таком случае: сменить boot mode для загрузки не из flash а с usarta... тогда ваша прога стартовать не будет и соответственно частота sysclk не станет маленькой...ноги BOOT0 = 1 и BOOT1 = 0 жмем RESET и можем стереть flash контроллера, а потом уже шить нормальную программу в контроллер.

Спасибо. Попробую.

 

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


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

По-моему, в stm32l-discovery стоит st-link/v2. Мне отладка не нужна - теперь я не могу даже запрограммировать МК.

 

 

Спасибо. Попробую.

 

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

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


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

Помог способ, описанный drum1987.

Быстрый howto для stm32l-discovery (для других discovery, думаю, подойдёт - нужно проверить номинал резистора между BOOT0 и землёй):

- соединяем пин BOOT0 (выведен на правый ряд пинов) с +3В;

- жмём резет;

- отсоединяем +3В;

- программируем;

- reset;

- ...;

- PROFIT!

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

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


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

- жмём резет;

- программируем;

А не пробовали при нажатом Сбросе запустить программирование?

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


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

А не пробовали при нажатом Сбросе запустить программирование?

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

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


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

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

Недавно подобная проблема на форуме обсуждалась, помогло BOOT0:BOOT1 сконфигурировать на загрузку с SRAM - там кода не будет, зато flash будет доступна и ядро тактироваться будет на дефолтной частоте

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


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

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

 

Не раз уже случалось подобное... Держим сброс, нажимаем в st-link utility, например, Target-Connect и как только прога начинает "стучаться" в микроконтроллер - отпускаем сброс.

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


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

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

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

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

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

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

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

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

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

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