Ремонт китайского программатора ST LINK V2 и как прошить контроллер без программатора.
Ссылка на видео в YouTube Наверное многие STMчики столкнулись с такой проблемой как выход из строя вот таких китайских программаторов ST LINK V2.
Основная причина этого не защищённость их выводов от превышение напряжения следствие чего при не грамотном использование они выходят из строя, так же и у меня. При разработки очередного частотного преобразователя вышли из строя два таких программатора причина была банальна, при испытания очередной прошивки частотника я их не отключал от устройства следствие из за выбросов напряжения у них просто выгорели порты так что советую по личному опыту отключать программатор от устройства где используется высокое напряжение или индуктивная нагрузка при его работе.
Но не будем уходить от темы ремонта, покопавшись в интернете я обнаружил что прошивка данных программаторов находится в свободном доступе даже есть какие то обновления и конечно плюс наличие в закромах несколько контроллеров STM32F103C8 подтолкнуло меня на идею их отремонтировать а не заказывать новые.
Что потребуется для этого:
а) STM32F103C8;
б) рабочий программатор;
в) фен паяльный и паяльник;
г) стабилизатор напряжения если не исправен;
д) и конечно прямые руки.
Приступим, первым делом отпаиваем феном не рабочую микросхему, потом проверяем наличие 3,3в на выходе стабилизатора( смотрим ниже где) если нет значит выпаиваем его тоже и взамен них устанавливаем рабочие компоненты.
Да кстати в некоторых программаторах стоят контроллеры STM32F101CBT6 их тоже можно заменить на STM32F103C8T6 и что за стабилизатор в корпусе SOT-23-5 я так не смог определить лишь по выводам нашёл аналоги: LP2981AIM5-3.3 или RT9193-33. Если не сможете достать замену сгоревшему стабилизатору то придётся импровизировать( смотрите фото выше) как я приспособить AMS1117-3.3 или что то другое подходящее.
Для загрузки прошивки в новый контроллер можно использовать один из двух подходящих вариантов:
a) с использованием другого программатора, где мы заменили в неисправном программаторе неисправные компоненты а потом просто прошили;
б) с помощью USB to UART конвертера, для этого метода вам придётся впаять для прошивки контроллер в любую отладочную плату где есть вывод BOOT0, USART1_TX и USART1_RX.
Оба варианта прошивки описаны ниже.
Вариант №1 загрузка прошивки с помощью другого программатора.
Тут мы подключаем прошиваемый программатор к рабочему, +5V к +5V, GND к GND, SWCLK и SWDIO к отверстия как на рисунке ниже.
Если прошиваемый программатор отличается то выводы SWCLK и SWDIO для прошивки можно найти с помощью прозвонки мультиметром.
Перед тем как начать качаем архив с нужным софтом STM32 ST-LINK Utility v4.3.0 setup.exe и Protected-2-1-Bootloader.bin, разархивируем, устанавливаем программу для прошивки STM32 ST-LINK Utility v4.3.0 setup.exe и запускаем её. Подключаем наш прошиваемый программатор к рабочему и далее по инструкции ниже, если контроллер не заблокирован от чтения то начинаем с пятого пункта, файл для прошивки Protected-2-1-Bootloader.bin который тоже находится в архиве.
Если не понятно на картинках, делаем так:
1) жмём Connect;
2) если выскакивает табличка память заблокирована, выполняем следующие пункты инструкции если нет то переходим к пункту 6;
3) жмём Target->Option Bytes...;
4) в Read Out Protection выбираем Disabled и жмём внизу на Apply, память контроллера сбросится и снимется защита;
5) жмём Connect;
6) жмём File->Open file...;
7) находим файл Protected-2-1-Bootloader.bin;
8) жмём Target->Program & Verify...;
9) в открывшемся окне где указан прошиваемый файл жмём Start;
10) контроллер должен начать прошиваться;
Надеюсь всё получилось теперь осталось настроить прошивку, переходим к <<Окончательная настройка прошивки для программирования контроллеров семейства STM8 и STM32.>> и там заканчиваем весь процесс.
Вариант №2 загрузка прошивки с помощью USB-UART конвертера.
В контроллерах STM при производстве вшивается специальный программный загрузчик который может использовать выводы USART1 или USART2( зависит от контроллера) для загрузки в него прошивки, кому интересно качаем в интернете документ AN2606 и изучаем.
Схема подключения стандартная, вывод BOOT0 должен быть подключён к VCC( 3.3V) так контроллер будет знать что будет прошит через USART1.
Для прошивки вам потребуется специальная программа и сам файл прошивки flash_loader_demo_v2.8.0.exe и Protected-2-1-Bootloader.bin качаем, устанавливаем.
А также повторюсь необходима отладочная плата куда должен быть впаян прошиваемый контроллер или если делаете собственный программатор то должны позаботиться о наличие выводов BOOT0 и USART TX-RX. Я для примера буду использовать отладочную плату STM32_Smart v2.0, к которой подключен USB-UART переходник и установлена перемычка на 3V и BOOT0, смотрите ниже.
Запускаем программу flash_loader_demo_v2.8.0.exe и далее по инструкции.
Описание:
1) запустили программу, она автоматически выбирает COM порт если не тот выберите вручную, жмём Next;
2) суда попадаем если память в контроллере заблокирована для чтения, жмём Remove protection, если нет защиты то переходим к пункту №4;
3) защита снята, OK;
4) Next;
5) Next;
6) выбираем Downloads to device, жмём выбрать файл на компьютере( квадратик с точками);
7) заходим в папку с файлом Protected-2-1-Bootloader.bin, меняем название файла на Bin files (*bin);
8) выбираем Protected-2-1-Bootloader.bin, жмём Открыть;
9) жмём Next;
10) идёт прошивка;
11) прошивка закончена удачно.
Для окончания процесса вы должны впаять контроллер в плату будущего программатора( если не делается на готовом устройстве) и продолжить настройки, читаем ниже.
Окончательная настройка прошивки для программирования контроллеров семейства STM8 и STM32.
Прошили контроллер осталось его настроить или обновить как программатор для STM8 и STM32, для этого у вас должна быть установлена программа STM32 ST-LINK Utility v4.3.0 и будущий ST LINK воткнут в USB компьютера, и далее по инструкции ниже.
Описание:
1) жмём ST -LINK->Firmware update;
2) откроется окно, жмём Device Connect;
3) откроется другое окно, выбираем STM32+STM8, жмём Yes>>>>;
4) программатор должен настроится для прошивки STM32 и STM8 контроллеров;
5) выскочит окошко что всё отлично, после этого программатор готов к использованию.
Для тех кто думал что можно прошивать только программаторам, перевёл часть текста из документа an2606.
Загрузчик хранится во внутренней памяти загрузочного диска (системной памяти) STM32 устройства. Он запрограммирован ST во время продукции. Его основная задача-загрузить прикладную программу к внутренней флэш-памяти через один из доступных последовательных периферийные устройства (USART, CAN, USB, I2C, SPI и др.). Протокол связи определяется для каждый последовательный интерфейс, с совместимым набором команд и последовательностями.