Нужна помощь с прошивкой STM32

MPetrovich

Не попробовав, не узнаешь…
P.S. Не удивлюсь если модеры скоро прикроют эту тему. Кроме нас с Вами никто не участвует в обсуждении.

serenya

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

28 days later
murom

Может быть уже поздно, но выскажу свои соображения по данной проблеме.

  1. При прошивке контроллер (после определенных действий) остается в режиме бутлодера, который переписывает область основной программы контроллера.
  2. Родная утилита от FrSky передает файл .frk в приемник без изменений блоками по 400 байт + 2 байта контрольной суммы, которые она рассчитывает сама. Приемник на это отвечает, что блок принят и он верный. Затем передается следующий блок данных, а ползунок в программе передвигается на некоторый процент вперед. Вывод: при прошивке родной утилитой произошел некий программный или аппаратный сбой, после которого приемник не смог ответить утилите и прошивка зависла.
  3. Причин сбоя прошивки может быть очень много. Из аппаратных наиболее вероятны проблемы с цепями питания или выход из строя контроллера. Это в первую очередь и стоит проверить.
MPetrovich
murom:

Может быть уже поздно

Лучше поздно, чем никогда. Пока тема не закрыта можно (и нужно, на мой взгляд) высказываться. Тем более, что Ваша информация весьма полезна.
А Вы каким образом раскопали как работает

murom:

Родная утилита от FrSky

? Анализатором подключались?

murom

OllyDbg.
Для frsky_update_rev11.exe:
402D41 - считаем контрольную сумму,
402C10 - передаем данные в приемник.
Если не осилите, то можно использовать программы для слежения за COM портом

serenya
murom:

Это в первую очередь и стоит проверить

Это проверял - проц живой. Получилось это так

serenya:

Но как-то так неудачно получилось, я и сам толком не понял как, то ли палец 2 раза клацнул по мышке, то ли нечаянно нажал второй раз “прошить”, в общем процесс прошивки остановился на 17% и все, проценты не бегут, фтди не подмигивает.

murom:

402D41 - считаем контрольную сумму, 402C10 - передаем данные в приемник.

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

murom
  1. Контроллер живой, т.к. его удалось прошить через STM32 ST-LINK.
  2. Загрузчик с завода никуда не делся, для его изменения нужно входить в другой режим программирования. Следовательно должен работать Flash loader demonstrator.
    Подробнее www.radiohlam.ru/teory/stm32_3.htm.
  3. Скорее всего сдох стабилитрон на 3,3В, т.к. при подаче напряжения от программатора контроллер работает, а от батареи нет. Проверьте напряжение на 1 ноге контроллера (считать от метки на корпусе, метка должна быть в верхнем левом углу), должно быть 3,3В.
Vovets
serenya:

Со словами “все равно не работает” через SWD залил прошивку

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

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

На практике, думаю, кирпич.

serenya
murom:

Проверьте напряжение на 1 ноге контроллера

Сейчас не могу этого сделать, нет под рукой, может через недельку.

Vovets:

На практике, думаю, кирпич.

Боюсь что на практике 10 новых купить дешевле, по крайней мере с моими знаниями. Новый уже едет.