Программатор lgt8prog для прошивки микроконтроллера LGT8F328P

lgt8prog

LGT8prog это бюджетное и простое в сборке решение для прошивки чипов LGT8F328P и записи загрузчика по родной двухпроводной шине SWD (LogicGreen SWD). Устройство спроектировано на базе микроконтроллера CH552G со встроенным USB-контроллером. Программатор эмулирует протокол STK500v1, работает с утилитой AVRDUDE.

Для питания от 3.3 В встроенный стабилизатор у CH552 слабый, поэтому лучше сразу поставить внешний AMS1117-3.3. Чистые 3.3 В с выхода стабилизатора нужно подать одновременно и на VCC (ножка 15), и на V33 (ножка 16). В таком режиме вся нагрузка ляжет на внешний AMS1117, встроенный стабилизатор контроллера разгрузится и перестанет греть кристалл, а ch552 будет работать максимально стабильно.


Сборка и прошивка lgt8prog

Исходный код проекта компилируется с использованием тулчейна SDCC. Для сборки бинарного файла выполните команды:

make clean
make

В результате компиляции будет создан готовый файл lgt8prog.bin. Чтобы залить прошивку в сам программатор, переведите чип CH552G в режим заводского загрузчика (удерживая кнопку BOOT, подключите плату к USB-порту) и с помощью программы WCHISPStudio залейте прошивку. В проекте лежит собранный файл прошивки, вы можете сразу загрузить его в контроллер.


Работа с программатором через AVRDUDE

После успешной прошивки устройство определяется системой как виртуальный последовательный COM-порт. Для работы с целевым чипом LGT8F328P используется стандартная утилита AVRDUDE (версии 7.x и выше) с флагом запрета стирания перед записью (-D).

Команда для прошивки рабочего hex-файла:
avrdude -c stk500v1 -p lgt8f328p -P COM3 -b 19200 -D -U flash:w:main.hex:i
(Замените COM3 на актуальный номер порта в диспетчере устройств).

Вы можете прошивать контроллер с помощью утилиты ChipBasic IDE AVRprog в составе среды разработки ChipBasic IDE.
Выберите микроконтроллер LGT8F328P, программатор STK500v1, COM‑порт, скорость 19200, установите опцию -D (без стирания), выберите файл и нажмите кнопку «Прошить».

Схема соединений компонентов:
+---------------------+-----------+-------------------+
| CH552G              | Резистор  | Сигнал LGT8F328P  |
+---------------------+-----------+-------------------+
| P1.5                |  220 Ом   | SWD (Данные)      |
| P1.7                |  220 Ом   | SWC (Такты)       |
| P1.4                |  220 Ом   | RST (Сброс)       |
| VCC (3.3В или 5В)   |    --     | VCC (Питание)     |
| GND (Общая земля)   |    --     | GND (Земля)       |
+---------------------+-----------+-------------------+

 

Для сборки программатора на голом чипе CH552G или на готовой отладочной плате требуется минимальное количество компонентов. Порты CH552G настроены в квази-двунаправленный режим (Quasi-bidirectional). В этом режиме вывод работает как открытый сток со слабой внутренней подтяжкой, что позволяет безопасно переключать линию SWD на чтение. Для защиты ножек микроконтроллеров от случайных коротких замыканий в разрыв линий устанавливаются стандартные ограничительные резисторы номиналом 220 Ом.Поскольку внутренние подтяжки CH552G имеют высокое сопротивление, при использовании длинных соединительных проводов для стабилизации фронтов сигналов, рекомендуется установить внешние подтягивающие резисторы номиналом 4.7-10 кОм от линий SWD и SWC на шину VCC.