реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Процессор STM32F405 внезапно перестал прошиваться, Почему?
digital
сообщение Oct 30 2015, 10:58
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 229
Регистрация: 3-02-06
Из: Санкт-Петербург
Пользователь №: 13 974



Процессор 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.gif

что могло сломаться ?
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Oct 30 2015, 10:59
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(digital @ Oct 30 2015, 11:58) *
Процессор STM32F405 внезапно перестала прошиваться
Jlink (клон) по SWD
IAR, Утилита jflash от segger все ругаются что не могут загрузить bootloader в RAM

что может быть?
что могло сломаться ?

- передернуть USB.
- контакты заглючили: потому на малой скорости еще тянет.
Go to the top of the page
 
+Quote Post
mantech
сообщение Oct 30 2015, 14:48
Сообщение #3


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(digital @ Oct 30 2015, 13:58) *
SWD на 100Кгц работает


У меня на 407 так было, поставил кондер на одну из линий, на стороне МК, около 47пик и заработало rolleyes.gif
Go to the top of the page
 
+Quote Post
Forger
сообщение Oct 30 2015, 19:51
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(digital @ Oct 30 2015, 13:58) *
что могло сломаться ?

А он случаем не залочен?
В папке c:\Program Files (x86)\SEGGER\JLink_Vxxx\ есть файлик JLinkSTM32.exe он позволяет стирать залоченные процы.
Потом надо передернуть питание проца и он должен снова шиться.
Второй вариант - в зашитой во флэш проге работает DMA, который кидает в озу что-то даже при подключенном отладчике, что не удается туда ниче залить.
Я с таким сталкивался на старых STM32F103

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


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
Corvus
сообщение Oct 30 2015, 20:10
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 24-04-08
Из: Зеленоград
Пользователь №: 37 056



Цитата(Forger @ Oct 30 2015, 22:51) *
А он случаем не залочен?


ТС же пишет, что на 100 кГц работает.
Go to the top of the page
 
+Quote Post
ШСА
сообщение Oct 31 2015, 17:11
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 291
Регистрация: 11-04-14
Из: Саратов
Пользователь №: 81 335



Цитата(digital @ Oct 30 2015, 13:58) *
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 все области памяти, чтобы решить кто виноват - МК, программатор или ещё кто.
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение Nov 1 2015, 17:32
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894



Виноват файл линкера.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Nov 1 2015, 21:05
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



STM32 STLink Utility надо использовать.
Go to the top of the page
 
+Quote Post
digital
сообщение Nov 2 2015, 09:52
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 229
Регистрация: 3-02-06
Из: Санкт-Петербург
Пользователь №: 13 974



Цитата(Forger @ Oct 30 2015, 22:51) *
А он случаем не залочен?
В папке c:\Program Files (x86)\SEGGER\JLink_Vxxx\ есть файлик JLinkSTM32.exe он позволяет стирать залоченные процы.
Потом надо передернуть питание проца и он должен снова шиться.

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

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

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


Цитата(ШСА @ Oct 31 2015, 20:11) *
Насколько я понимаю подключение к МК происходит нормально, Flash исправна все 12 секторов. Ошибки начинаются при попытке обращения к RAM.
В этом МК два банка RAM: 0x20000000 размером 20000 и 0x10000000 размером 10000. Но ещё мне непонятно куда происходит запись в последующих строчках и откуда считывание - такие адреса в этом МК не существуют!
Мне кажется, надо вручную прощупать с помощью ST-Link все области памяти, чтобы решить кто виноват - МК, программатор или ещё кто.


адрес там тольео один, 0x20000000, остальное значения
Go to the top of the page
 
+Quote Post
ШСА
сообщение Nov 2 2015, 10:57
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 291
Регистрация: 11-04-14
Из: Саратов
Пользователь №: 81 335



Цитата(digital @ Nov 2 2015, 12:52) *
адрес там тольео один, 0x20000000, остальное значения

Может быть, я скажу глупость, но - этот МК запитывается с нескольких ног. Проверьте на всякий случай, все ли питающие и земляные ноги подключены.
Go to the top of the page
 
+Quote Post
BVU
сообщение Nov 2 2015, 12:34
Сообщение #11


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



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

Цитата(AVI-crak @ Nov 1 2015, 20:32) *
Виноват файл линкера.


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


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Nov 2 2015, 13:14
Сообщение #12


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(ШСА @ Nov 2 2015, 11:57) *
Может быть, я скажу глупость, но - этот МК запитывается с нескольких ног. Проверьте на всякий случай, все ли питающие и земляные ноги подключены.

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

Сообщение отредактировал KnightIgor - Nov 2 2015, 16:13
Go to the top of the page
 
+Quote Post
digital
сообщение Nov 3 2015, 06:11
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 229
Регистрация: 3-02-06
Из: Санкт-Петербург
Пользователь №: 13 974



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



запитывается от внешнего источника мощного, проблемы еще на стадии записи в ОЗУ, но за направление поиска спасибо
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Nov 3 2015, 09:40
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(digital @ Nov 3 2015, 07:11) *
запитывается от внешнего источника мощного, проблемы еще на стадии записи в ОЗУ, но за направление поиска спасибо

Слушайте, а еще такая идея. Может что-то со встроенным генератором у процессора? Может HSI как-то заблокирован или отвалился, а процессор переходит на генератор LSI, почему на скорости и не работает? Идея, может, и бредовая, но если с питанием и землями все в порядке (что там, вообще, осциллограф показывает?), то симптом работы только на 100kHz SWD может быть связан с генератором. И еще одна тема: есть три различных режима сброса процессора при работе с JTAG/SWD адаптером: Hardware, SYSREQ и VECTOR. Честно говоря, я глубоко не копал разницу, но наблюдал поведение, когда с Hardware не работало, переключал на SYSREQ, и только тогда программа грузилась. И дальнейшая тема: JLINK, как и другие правильно построенные адаптеры, измеряет напряжение целевой системы, чтобы подстроить уровни. Может там что поломалось, а Вам кажется, что это связано с процессором? Когда раскопаете, что же именно глючит, не поленитесь тиснуть сюда решение: уж больно мистически себя все ведет, сгораю от любопытства.
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение Nov 3 2015, 16:48
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894



Цитата(BVU @ Nov 2 2015, 19:34) *
А вот с этого момента по подробней пожалуйста!

Не указанна явным образом потребность записи в рам память непосредсвенно самим программатором. Есть догадка, что выполняется отладка кода в рам памяти, которой у четвёртой серии достаточно для такого фокуса.
http://mcustep.ru/2-stm32-zagruzka-i-vypol...oj-pamyati.html
Способ позволяет экономить ресурс флеша, особенно при творческом кризисе.
Дык вот, физический доступ к флешу через программатор будет доступно лишь при верном указании нужного файла линкера. Их всего два: для работы из флеша и для работы из рама.
Прикол в том что иар ну уж шибко умный, и норовит заюзать файл со свежей датой, даже если он лежит не в папке файла проекта.
Сколько не смотрел проектов собранных под иаром - почти всегда отсутствовали файлы модели и линкера, и не спроста.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01491 секунд с 7
ELECTRONIX ©2004-2016