Инструкция по подключению программатора SWD и смене модели, прошивки.
Автор мануала не несет ответственности за те действия, которые Вы делаете из своим устройством. Все на Ваш страх и риск! Если у Вас ваше устройство вышло из строя, не говорите, что я виноват, иначе я буду тыкать в Вас пальцем и громко смеяться я вас предупреждал
Перед тем, как паять и во время работы с программатором ОБЯЗАТЕЛЬНО отключаем батарейку! и нажимаем кнопку питания, чтобы разрядить конденсаторы.
Потребуется программатор j-link v8 (Или любой другой, понимающий процессор STM32F103RC). Ну и паяльник с проводами.
Устанавливаем программу с драйвером. Если кому надо, можете скачать тут версию 4.20а, с ней удобнее работать.
Так же скачайте программу для работу с дампами тут, пишу её сам, и можете писать в лс на форумах (мой ник MRN76) о проблемах работы и возможных доработках.
Немного теории.
Даташит процессора:
Распиновка разъёма j-link:
Для работы нам нужно 5 точек подключения к контроллеру:
VCC (питание). В программаторе это 1й пин. На контроллере проще припаяться к конденсатору возле процессора или контрольную точку 3.3 (либо к ногам проца, 13,19,32,48,64).
SWDIO (ввод/вывод данных). В программаторе это 7й пин. На контроллере дальний от стрелки вывод для SWD (либо к 46 ноге, PA13).
SWCLK (тактовая частота SWD). В программаторе это 9й пин. На контроллере средний вывод для SWD (либо к 49 ноге, PA14).
GND (земля) В программаторе можно использовать любой с землёй, 4,6,8,10…). На контроллере помечен стрелкой вывод для SWD.
NRST (сброс). В программаторе это 15й пин. На контроллере проще припаяться к конденсатору, идущему к 7й ноге процессора.
Схемы подключения:
Всё готово и можно подключать USB провод к программатору.
Загорятся некоторые диоды, на разных прошивках контроллер может пищать.
Запускаем программу J-Flash ARM
Настраиваем её на наш процессор. Заходим Options->Project settings…
И настраиваем как на фото ниже:
Подключаемся к устройству. Target->Connect. Если успешно, то мы видим снизу в строке состояния что устройство подключено и скорость подключения.
Считываем ROM память. Target->Read back->Selected sectors
И видим процесс чтения. Достаточно быстро. После этого сохраняем считанные данные в формате Binary file *.bin
В запросе начального и конечного адреса просто нажимаем ОК
Закрываем в программе окно с данными (Которое появилось после чтения), чтобы не запутаться.
Далее открываем наш файл в моей программе по работе с дампами (выбираем нужный файл дампа и нажимаем считать).
Программа считывает некоторые данные, определяет какая установлена прошивка и модель устройства. (Пока программа понимает моноколёса ONE C/E/P и минисигвеи Mini/Pro, частично поддерживаются моноколёса ONE A1/S2)
Если мы хотим сменить модель, то выбираем какую мы хотим модель и нажимаем кнопку сменить модель, если хотим сменить прошивку — выбираем нужную прошивку и нажимаем кнопку сменить прошивку.
Далее открываем изменённый файл в программе программатора. File->Open data file
Проверяем, чтоб начальный адрес 8000000
И загружаем в процессор. Target->Program & verify.
Тут программа спросит, действительно ли мы хотим это сделать, и то что она сначала сотрёт все данные. Ну мы то знаем что хотим этого)
И идёт процесс прошивки.
По окончанию сообщает что всё успешно залито)
Отключаемся от устройства. Target ->Disconnect
Вынимаем USB от программатора, вынимаем контакты из программатора(Чтоб проверить сделанное).
если всё хорошо, можно отпаивать/снимать провода с устройства.