Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flasher32G0

GUI-утилита для прошивки STM32 и настройки Option Bytes через STM32CubeProgrammer CLI

Current version: 1.0

License: MIT AutoHotkey v2 Platform

Программа предоставляет удобный графический интерфейс для программирования микроконтроллеров STM32 через утилиту STM32CubeProgrammer CLI. Позволяет не только прошивать flash-память, но и настраивать Option Bytes (BOR, IWDG, RDP, NRST MODE) без необходимости запоминать синтаксис командной строки.

📸 Скриншот

Flasher32G0

🚀 Возможности

  • 🔍 Автоматическое определение семейства чипа — поддержка STM32G0, G4, F4, F1
  • ⚙️ Настройка Option Bytes:
    • BOR (Brown-Out Reset) — сброс при падении питания
    • IWDG (Independent Watchdog) — аппаратный сторожевой таймер
    • RDP (Read Protection) — защита от чтения (Level 0/1, Level 2 запрещён)
    • NRST MODE — режим работы ноги сброса (G0/G4)
  • 📁 Программирование flash — запись файлов .bin / .hex по адресу 0x08000000
  • 🔧 Только Option Bytes — возможность записать только настройки без перезаписи flash
  • 🔓 Разблокировка чипа — снятие защиты RDP Level 1 (массовое стирание)
  • 📝 Предпросмотр изменений — окно подтверждения с показом параметров перед записью
  • 💾 Сохранение настроек — запоминает путь к CLI, папку с прошивками и геометрию окна
  • 📐 Адаптивный интерфейс — окно изменяет размер, элементы подстраиваются
  • 🧾 Логирование — подробный вывод всех операций в текстовое поле

📥 Требования

Для запуска .exe (рекомендуется)

Для запуска .ahk (исходный код)

💡 Примечание: .exe версия собрана для x32, но отлично работает и на x64 системах.

🚀 Установка и запуск

Вариант 1: Скомпилированный .exe (проще всего)

  1. Скачайте Flasher32G0.exe из репозитория
  2. Запустите двойным щелчком
  3. При первом запуске укажите путь к STM32_Programmer_CLI.exe

Вариант 2: Исходный скрипт (требуется AutoHotkey v2)

git clone https://github.com/IgerOK/Flasher32G0.git
cd Flasher32G0
.\Flasher32G0.ahk

🚀 Первый запуск

Шаг 1: Запуск программы

  • Дважды щёлкните по Flasher32G0.exe (или Flasher32G0.ahk, если используете AutoHotkey)
  • При необходимости подтвердите запрос прав администратора (требуется для доступа к ST-LINK)

Шаг 2: Указание пути к STM32CubeProgrammer

  • Если программатор не найден автоматически, поле "Путь к STM32_Programmer_CLI.exe" будет пустым

  • Нажмите кнопку Обзор... справа от поля

  • Найдите и выберите файл STM32_Programmer_CLI.exe (обычное расположение: C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin\STM32_Programmer_CLI.exe)

  • Путь сохранится автоматически и будет использоваться при следующих запусках

Шаг 3: Выбор папки с прошивками

  • Нажмите кнопку Обзор... под полем "Папка с прошивками (.bin, .hex)"
  • Выберите директорию, где лежат ваши скомпилированные файлы прошивки (.bin или .hex)
  • После выбора папки выпадающий список "Файл для программирования" автоматически заполнится найденными файлами

💡 Совет: Если вы используете Arduino IDE с настроенным build.path, укажите папку _build_hex_bin — в неё IDE автоматически складывает результаты компиляции.

Шаг 4: Подключение чипа

  • Подключите ST-LINK к компьютеру через USB
  • Соедините ST-LINK с платой STM32 по 4 проводам (GND, SWDIO, SWCLK, 3.3V)
  • Убедитесь, что плата получает питание (индикатор на плате горит)

Шаг 5: Чтение информации о чипе

  • Нажмите кнопку ОБНОВИТЬ
  • В поле статуса отобразится "СТАТУС: Чтение Option Bytes..."
  • Через несколько секунд программа определит семейство чипа (G0, G4, F4, F1)
  • В правой панели появятся текущие значения Option Bytes

📖 Руководство по использованию

1. Чтение Option Bytes

  • Нажмите кнопку ОБНОВИТЬ
  • Программа определит семейство чипа и отобразит текущие настройки
  • В правой панели появятся текущие значения параметров

2. Настройка Option Bytes

  • Выберите нужные значения в выпадающих списках и чекбоксах
  • Нажмите кнопку ОПЦИИ
  • Ознакомьтесь с предпросмотром изменений и подтвердите запись

3. Прошивка flash-памяти

  • Выберите файл прошивки (.bin или .hex) из выпадающего списка
  • Нажмите кнопку ПРОГРАММИРОВАТЬ ЧИП
  • Дождитесь завершения процесса (статус отображается в строке состояния)

4. Разблокировка чипа (снятие RDP Level 1)

  • Если чип заблокирован, нажмите кнопку РАЗБЛОКИРОВАТЬ ЧИП
  • Произойдёт массовое стирание flash-памяти и сброс защиты до Level 0

5. Получение справки

  • Нажмите кнопку СПРАВКА для отображения подробной информации
  • Текст в окне справки можно выделять и копировать

🛠️ Поддерживаемые семейства

Семейство BOR IWDG RDP NRST Примечание
STM32G0 ✔️ ✔️ ✔️ ✔️ Полная поддержка
STM32G4 ✔️ ✔️ ✔️ ✔️ Полная поддержка
STM32F4 ✔️ ✔️ ✔️ NRST Mode недоступен
STM32F1 ✔️ Только RDP

ℹ️ При подключении чипа других семейств программа попытается прочитать Option Bytes, но некоторые опции могут быть недоступны.

⚙️ Описание Option Bytes

BOR (Brown-Out Reset) — сброс при падении питания

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

Уровень Напряжение Применение
BOR OFF - Сброс отключён
Level 0 ~1.7V Очень низкий порог
Level 1 ~2.1V Низкий порог
Level 2 ~2.5V Рекомендуется для G031
Level 3 ~2.8V Высокий порог

IWDG (Independent Watchdog) — сторожевой таймер

  • Выключен (SW) — watchdog управляется программно
  • Активен (HW) — аппаратный watchdog, требует периодического сброса в коде, иначе чип перезагружается

⚠️ При включении HW watchdog убедитесь, что ваша прошивка содержит команды обновления таймера!

RDP (Read Protection) — защита от чтения

  • Level 0 — защиты нет, чтение/запись через SWD разрешены
  • Level 1 — чтение/запись через SWD заблокированы, снимается массовым стиранием (кнопка РАЗБЛОКИРОВАТЬ)
  • Level 2 — 🔴 НЕОБРАТИМО! Чип навсегда блокируется, программирование становится невозможным. НИКОГДА не устанавливайте!

NRST MODE (G0/G4) — режим работы ноги сброса

  • Input/Output (рекомендуется) — нога работает как обычный GPIO или вход сброса
  • Reset Input Only — нога работает только как вход сброса

⚠️ Важные предупреждения

Опция Риск Рекомендация
RDP Level 2 🔴 НЕОБРАТИМО! Чип навсегда превращается в "кирпич" НИКОГДА не устанавливайте
IWDG (HW) 🟡 Требует поддержки в прошивке Убедитесь, что код обновляет watchdog
RDP Level 1 🟡 Блокирует SWD Разблокируется массовым стиранием
BOR Level 3 🟡 Высокий порог (~2.8V) Может вызывать ложные сбросы

Для STM32G031F8P6 в Arduino IDE:

  • Если вы не используете USART, можно отключить USART Support в настройках платы
  • Это экономит память и освобождает пины PA9/PA10 для других целей

Перед программированием:

  • Всегда нажимайте ОБНОВИТЬ, чтобы убедиться, что чип не заблокирован RDP Level 1
  • Проверьте правильность подключения ST-LINK (4 провода: GND, SWDIO, SWCLK, 3.3V)

🔧 Устранение неполадок

"Не удалось связаться с чипом!"

  • Проверьте подключение ST-LINK к плате (4 провода)
  • Убедитесь, что плата получает питание (3.3V)
  • Попробуйте переподключить ST-LINK к USB

"STM32CubeProgrammer не найден"

  • Установите STM32CubeProgrammer с официального сайта STMicroelectronics
  • Укажите путь к STM32_Programmer_CLI.exe вручную через кнопку Обзор...

Option Bytes не записываются (предупреждение "unchanged")

  • Это не ошибка — программа просто сообщает, что параметры уже соответствуют желаемым
  • Измените какой-нибудь параметр (например, BOR) для проверки записи

Окно справки не открывается

  • Убедитесь, что скрипт запущен от имени администратора
  • Закройте программу и запустите снова

RDP Level 1 не снимается

  • Нажмите кнопку РАЗБЛОКИРОВАТЬ ЧИП — произойдёт массовое стирание
  • После разблокировки чип будет полностью стёрт (flash очищен)

🔗 Ссылки

📝 Лицензия

MIT © 2026 IgerOK

Подробности в файле LICENSE


⭐ Если этот проект оказался полезным, поставьте звёздочку на GitHub!

About

GUI-утилита для прошивки STM32 и настройки Option Bytes через STM32CubeProgrammer CLI

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages