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

Процессор STM32F405 внезапно перестал прошиваться

Процессор STM32F405 внезапно перестала прошиваться

Jlink (клон) по SWD

IAR, Утилита jflash от segger все ругаются что не могут загрузить bootloader в RAM

 

что может быть?

Connecting ...

- Connecting via USB to J-Link device 0

- Target interface speed: 2000 kHz (Auto)

- VTarget = 3.293V

- Initializing CPU core (Init sequence) ...

- Initialized successfully

- Target interface speed: 2000 kHz (Auto)

- Connected successfully

Blank checking target ...

- Blank checking (12 of 12 sectors selected, 1 range(s), 0x8000000 - 0x80FFFFF) ...

- ERROR: RAM check failed @ address 0x20000000.

- ERROR: Write: 0x03020100 07060504

- ERROR: Read: 0x24003010 03020100

- ERROR: (0 bytes of RAM have been checked successfully)

- ERROR: Failed to check blank target

 

 

update:

 

SWD на 100Кгц работает :wacko:

 

что могло сломаться ?

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


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

Процессор STM32F405 внезапно перестала прошиваться

Jlink (клон) по SWD

IAR, Утилита jflash от segger все ругаются что не могут загрузить bootloader в RAM

 

что может быть?

что могло сломаться ?

- передернуть USB.

- контакты заглючили: потому на малой скорости еще тянет.

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


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

SWD на 100Кгц работает

 

У меня на 407 так было, поставил кондер на одну из линий, на стороне МК, около 47пик и заработало :rolleyes:

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


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

что могло сломаться ?

А он случаем не залочен?

В папке c:\Program Files (x86)\SEGGER\JLink_Vxxx\ есть файлик JLinkSTM32.exe он позволяет стирать залоченные процы.

Потом надо передернуть питание проца и он должен снова шиться.

Второй вариант - в зашитой во флэш проге работает DMA, который кидает в озу что-то даже при подключенном отладчике, что не удается туда ниче залить.

Я с таким сталкивался на старых STM32F103

 

Короче, я бы сначала просто разлочил проц, это заодно стирает всю флэш

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


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

Blank checking target ...

- Blank checking (12 of 12 sectors selected, 1 range(s), 0x8000000 - 0x80FFFFF) ...

- ERROR: RAM check failed @ address 0x20000000.

- ERROR: Write: 0x03020100 07060504

- ERROR: Read: 0x24003010 03020100

- ERROR: (0 bytes of RAM have been checked successfully)

- ERROR: Failed to check blank target

Насколько я понимаю подключение к МК происходит нормально, Flash исправна все 12 секторов. Ошибки начинаются при попытке обращения к RAM.

В этом МК два банка RAM: 0x20000000 размером 20000 и 0x10000000 размером 10000. Но ещё мне непонятно куда происходит запись в последующих строчках и откуда считывание - такие адреса в этом МК не существуют!

Мне кажется, надо вручную прощупать с помощью ST-Link все области памяти, чтобы решить кто виноват - МК, программатор или ещё кто.

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


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

А он случаем не залочен?

В папке c:\Program Files (x86)\SEGGER\JLink_Vxxx\ есть файлик JLinkSTM32.exe он позволяет стирать залоченные процы.

Потом надо передернуть питание проца и он должен снова шиться.

это первое что было сделано

 

Второй вариант - в зашитой во флэш проге работает DMA, который кидает в озу что-то даже при подключенном отладчике, что не удается туда ниче залить.

Я с таким сталкивался на старых STM32F103

хм, ДМа есть конечно, но кидает куда надо,да и на меньшей скорости все работает

 

 

Насколько я понимаю подключение к МК происходит нормально, Flash исправна все 12 секторов. Ошибки начинаются при попытке обращения к RAM.

В этом МК два банка RAM: 0x20000000 размером 20000 и 0x10000000 размером 10000. Но ещё мне непонятно куда происходит запись в последующих строчках и откуда считывание - такие адреса в этом МК не существуют!

Мне кажется, надо вручную прощупать с помощью ST-Link все области памяти, чтобы решить кто виноват - МК, программатор или ещё кто.

 

адрес там тольео один, 0x20000000, остальное значения

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


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

адрес там тольео один, 0x20000000, остальное значения

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

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


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

Интересная концепция:

 

Виноват файл линкера.

 

А вот с этого момента по подробней пожалуйста! Не аргументированные высказывания практически не имеют никакой ценности!

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


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

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

Я присоединюсь к предположению, что могут быть проблемы с питанием. Я уже выше высказал идею по части плохих контактов. которые еще позволяют подключиться на малой скорости, но лажают на большой. Операция стирания/записи флэша требует значительной энергии. Если плохие контакты или земля плохо подведена, происходит провал напряжения, после чего операция завершается с ошибкой. Ведь реально адаптер загружает исполняемый код в ОЗУ и обменивается с ним, а не пишет сам каким-либо образом во флэш. digital не поделился, откуда все запитывается. Может только от USB, а я как-то наблюдал у себя, что USB переключился на 100mA, несмотря на дескриптор подключенного устройства (кстати JLINK), и отваливался, когда с него тянули больше. Мне, если не ошибаюсь, пришлось с помощью usbdeview от nirsoft полностью поубивать распознаные устройства и понатыкать их опять, чтобы винда все понаходила снова, и глюк "100mA" ушел.

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

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


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

Я присоединюсь к предположению, что могут быть проблемы с питанием. Я уже выше высказал идею по части плохих контактов. которые еще позволяют подключиться на малой скорости, но лажают на большой. Операция стирания/записи флэша требует значительной энергии. Если плохие контакты или земля плохо подведена, происходит провал напряжения, после чего операция завершается с ошибкой. Ведь реально адаптер загружает исполняемый код в ОЗУ и обменивается с ним, а не пишет сам каким-либо образом во флэш. digital не поделился, откуда все запитывается. Может только от USB, а я как-то наблюдал у себя, что USB переключился на 100mA, несмотря на дескриптор подключенного устройства (кстати JLINK), и отваливался, когда с него тянули больше. Мне, если не ошибаюсь, пришлось с помощью usbdeview от nirsoft полностью поубивать распознаные устройства и понатыкать их опять, чтобы винда все понаходила снова, и глюк "100mA" ушел.

 

 

запитывается от внешнего источника мощного, проблемы еще на стадии записи в ОЗУ, но за направление поиска спасибо

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


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

запитывается от внешнего источника мощного, проблемы еще на стадии записи в ОЗУ, но за направление поиска спасибо

Слушайте, а еще такая идея. Может что-то со встроенным генератором у процессора? Может HSI как-то заблокирован или отвалился, а процессор переходит на генератор LSI, почему на скорости и не работает? Идея, может, и бредовая, но если с питанием и землями все в порядке (что там, вообще, осциллограф показывает?), то симптом работы только на 100kHz SWD может быть связан с генератором. И еще одна тема: есть три различных режима сброса процессора при работе с JTAG/SWD адаптером: Hardware, SYSREQ и VECTOR. Честно говоря, я глубоко не копал разницу, но наблюдал поведение, когда с Hardware не работало, переключал на SYSREQ, и только тогда программа грузилась. И дальнейшая тема: JLINK, как и другие правильно построенные адаптеры, измеряет напряжение целевой системы, чтобы подстроить уровни. Может там что поломалось, а Вам кажется, что это связано с процессором? Когда раскопаете, что же именно глючит, не поленитесь тиснуть сюда решение: уж больно мистически себя все ведет, сгораю от любопытства.

 

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


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

А вот с этого момента по подробней пожалуйста!

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

http://mcustep.ru/2-stm32-zagruzka-i-vypol...oj-pamyati.html

Способ позволяет экономить ресурс флеша, особенно при творческом кризисе.

Дык вот, физический доступ к флешу через программатор будет доступно лишь при верном указании нужного файла линкера. Их всего два: для работы из флеша и для работы из рама.

Прикол в том что иар ну уж шибко умный, и норовит заюзать файл со свежей датой, даже если он лежит не в папке файла проекта.

Сколько не смотрел проектов собранных под иаром - почти всегда отсутствовали файлы модели и линкера, и не спроста.

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


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

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

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

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

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

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

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

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

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

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