Программирование процессора

Инструкция по подключению программатора 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 от программатора, вынимаем контакты из программатора(Чтоб проверить сделанное).
если всё хорошо, можно отпаивать/снимать провода с устройства.