Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Процессор STM32F405 внезапно перестал прошиваться
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
digital
Процессор 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

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

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

- передернуть USB.
- контакты заглючили: потому на малой скорости еще тянет.
mantech
Цитата(digital @ Oct 30 2015, 13:58) *
SWD на 100Кгц работает


У меня на 407 так было, поставил кондер на одну из линий, на стороне МК, около 47пик и заработало rolleyes.gif
Forger
Цитата(digital @ Oct 30 2015, 13:58) *
что могло сломаться ?

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

Короче, я бы сначала просто разлочил проц, это заодно стирает всю флэш
Corvus
Цитата(Forger @ Oct 30 2015, 22:51) *
А он случаем не залочен?


ТС же пишет, что на 100 кГц работает.
ШСА
Цитата(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 все области памяти, чтобы решить кто виноват - МК, программатор или ещё кто.
AVI-crak
Виноват файл линкера.
ViKo
STM32 STLink Utility надо использовать.
digital
Цитата(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, остальное значения
ШСА
Цитата(digital @ Nov 2 2015, 12:52) *
адрес там тольео один, 0x20000000, остальное значения

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

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


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

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



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

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

Не указанна явным образом потребность записи в рам память непосредсвенно самим программатором. Есть догадка, что выполняется отладка кода в рам памяти, которой у четвёртой серии достаточно для такого фокуса.
http://mcustep.ru/2-stm32-zagruzka-i-vypol...oj-pamyati.html
Способ позволяет экономить ресурс флеша, особенно при творческом кризисе.
Дык вот, физический доступ к флешу через программатор будет доступно лишь при верном указании нужного файла линкера. Их всего два: для работы из флеша и для работы из рама.
Прикол в том что иар ну уж шибко умный, и норовит заюзать файл со свежей датой, даже если он лежит не в папке файла проекта.
Сколько не смотрел проектов собранных под иаром - почти всегда отсутствовали файлы модели и линкера, и не спроста.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.