|
|
  |
Процессор STM32F405 внезапно перестал прошиваться, Почему? |
|
|
|
Oct 30 2015, 10:58
|
Местный
  
Группа: Свой
Сообщений: 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Кгц работает что могло сломаться ?
|
|
|
|
|
Oct 30 2015, 10:59
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(digital @ Oct 30 2015, 11:58)  Процессор STM32F405 внезапно перестала прошиваться Jlink (клон) по SWD IAR, Утилита jflash от segger все ругаются что не могут загрузить bootloader в RAM
что может быть? что могло сломаться ? - передернуть USB. - контакты заглючили: потому на малой скорости еще тянет.
|
|
|
|
|
Oct 30 2015, 19:51
|

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

|
Цитата(digital @ Oct 30 2015, 13:58)  что могло сломаться ? А он случаем не залочен? В папке c:\Program Files (x86)\SEGGER\JLink_Vxxx\ есть файлик JLinkSTM32.exe он позволяет стирать залоченные процы. Потом надо передернуть питание проца и он должен снова шиться. Второй вариант - в зашитой во флэш проге работает DMA, который кидает в озу что-то даже при подключенном отладчике, что не удается туда ниче залить. Я с таким сталкивался на старых STM32F103 Короче, я бы сначала просто разлочил проц, это заодно стирает всю флэш
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
Oct 31 2015, 17:11
|
Местный
  
Группа: Участник
Сообщений: 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 все области памяти, чтобы решить кто виноват - МК, программатор или ещё кто.
|
|
|
|
|
Nov 2 2015, 09:52
|
Местный
  
Группа: Свой
Сообщений: 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, остальное значения
|
|
|
|
|
Nov 2 2015, 10:57
|
Местный
  
Группа: Участник
Сообщений: 291
Регистрация: 11-04-14
Из: Саратов
Пользователь №: 81 335

|
Цитата(digital @ Nov 2 2015, 12:52)  адрес там тольео один, 0x20000000, остальное значения Может быть, я скажу глупость, но - этот МК запитывается с нескольких ног. Проверьте на всякий случай, все ли питающие и земляные ноги подключены.
|
|
|
|
|
Nov 2 2015, 13:14
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
|
Nov 3 2015, 06:11
|
Местный
  
Группа: Свой
Сообщений: 229
Регистрация: 3-02-06
Из: Санкт-Петербург
Пользователь №: 13 974

|
Цитата(KnightIgor @ Nov 2 2015, 16:14)  Я присоединюсь к предположению, что могут быть проблемы с питанием. Я уже выше высказал идею по части плохих контактов. которые еще позволяют подключиться на малой скорости, но лажают на большой. Операция стирания/записи флэша требует значительной энергии. Если плохие контакты или земля плохо подведена, происходит провал напряжения, после чего операция завершается с ошибкой. Ведь реально адаптер загружает исполняемый код в ОЗУ и обменивается с ним, а не пишет сам каким-либо образом во флэш. digital не поделился, откуда все запитывается. Может только от USB, а я как-то наблюдал у себя, что USB переключился на 100mA, несмотря на дескриптор подключенного устройства (кстати JLINK), и отваливался, когда с него тянули больше. Мне, если не ошибаюсь, пришлось с помощью usbdeview от nirsoft полностью поубивать распознаные устройства и понатыкать их опять, чтобы винда все понаходила снова, и глюк "100mA" ушел. запитывается от внешнего источника мощного, проблемы еще на стадии записи в ОЗУ, но за направление поиска спасибо
|
|
|
|
|
Nov 3 2015, 09:40
|
Знающий
   
Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725

|
Цитата(digital @ Nov 3 2015, 07:11)  запитывается от внешнего источника мощного, проблемы еще на стадии записи в ОЗУ, но за направление поиска спасибо Слушайте, а еще такая идея. Может что-то со встроенным генератором у процессора? Может HSI как-то заблокирован или отвалился, а процессор переходит на генератор LSI, почему на скорости и не работает? Идея, может, и бредовая, но если с питанием и землями все в порядке (что там, вообще, осциллограф показывает?), то симптом работы только на 100kHz SWD может быть связан с генератором. И еще одна тема: есть три различных режима сброса процессора при работе с JTAG/SWD адаптером: Hardware, SYSREQ и VECTOR. Честно говоря, я глубоко не копал разницу, но наблюдал поведение, когда с Hardware не работало, переключал на SYSREQ, и только тогда программа грузилась. И дальнейшая тема: JLINK, как и другие правильно построенные адаптеры, измеряет напряжение целевой системы, чтобы подстроить уровни. Может там что поломалось, а Вам кажется, что это связано с процессором? Когда раскопаете, что же именно глючит, не поленитесь тиснуть сюда решение: уж больно мистически себя все ведет, сгораю от любопытства.
|
|
|
|
|
Nov 3 2015, 16:48
|
Частый гость
 
Группа: Участник
Сообщений: 182
Регистрация: 16-10-15
Пользователь №: 88 894

|
Цитата(BVU @ Nov 2 2015, 19:34)  А вот с этого момента по подробней пожалуйста! Не указанна явным образом потребность записи в рам память непосредсвенно самим программатором. Есть догадка, что выполняется отладка кода в рам памяти, которой у четвёртой серии достаточно для такого фокуса. http://mcustep.ru/2-stm32-zagruzka-i-vypol...oj-pamyati.htmlСпособ позволяет экономить ресурс флеша, особенно при творческом кризисе. Дык вот, физический доступ к флешу через программатор будет доступно лишь при верном указании нужного файла линкера. Их всего два: для работы из флеша и для работы из рама. Прикол в том что иар ну уж шибко умный, и норовит заюзать файл со свежей датой, даже если он лежит не в папке файла проекта. Сколько не смотрел проектов собранных под иаром - почти всегда отсутствовали файлы модели и линкера, и не спроста.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|