Реклама ⓘ
Главная » Микроконтроллеры
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Реклама ⓘ

LGT8F328P Arduino совместимая плата. Программирование на чистом Си

Наверное многие давно заметили в продаже на aliexpress и в местных магазинах радиодеталей arduino-совместимые платы на базе микроконтроллера LGT8F328, в народе их даже уже успели прозвать "зелёнкой" за цвет паяльной маски на ранних версиях.

Одни из первых упоминаний на форумах об этой плате датируются аж 2014 годом. Но лично для меня эти платы стали актуальными только в последнее время, так как цена на микроконтроллеры atmega328 выросла до неадекватных значений (даже в китайских интернет магазинах). Раньше от покупки этих плат меня останавливало то, что они программируются в основном в среде Arduino IDE, которая мне не особо интересна (не буду перечислять достоинства и недостатки данной среды). А других IDE для данных микроконтроллеров с ходу "нагуглить" не так то и просто. Второе, что меня останавливало - это метод заливки прошивок: из среды arduino прошивка заливается через UART с помощью уже прошитого bootloader-a, а вот с программаторами есть проблема, так как данные МК программируются по интерфейсу SWD, как их более "взрослые" товарищи, но об этом - позже. Зато, подкупало то, что микроконтроллер LGT8 пин в пин совместимый с atmega328, включая альтернативные функции, но при этом является более навороченным (выше тактовая частота, больше таймеров, больше разрядность АЦП, есть ЦАП и др.), не буду подробно расписывать все преимущества, этой информации полно в сети.

И вот, в очередной раз, увидев цены на данные платы (2$ за полноценную плату с USB-UART с МК в корпусе TQFP32, 2.5$ за аналогичную плату в корпусе TQFP48 и 0,9$ за плату только с МК и LDO), я решил углубиться в изучение вопроса опять. За несколько минут "гугления" в яндексе я обнаружил datasheet на русском языке на микроконтроллеры LGT8F8/168/328, а также необходимый софт на сайте производителя.

При изучении даташита, первое, что мне бросилось в глаза - это уж очень подозрительное стопроцентное совпадение мнемоник ассемблерных команд с аналогичными у AVR. Также очень подозрительно совпадают названия регистров периферических модулей. Позже мои подозрения подтвердились, почему, объясню дальше при разборе среды программирования.

Производитель, кроме инструментов для Arduino IDE предлагает нам для работы на чистом Си некое подобие среды разработки под названием "LGTSDK Builder". По сути это не совсем среда разработки (так как не имеет собственных SDK и средств отладки), а просто генератор кода с наличием текстового редактора. Данный софт не требует установки, достаточно просто распаковать архив и запустить *.exe файл и нам откроется стартовая страница. 

Дальше я покажу, как создать проект на Си с помощью данного инструмента. Запускаем LGTSDK Builder:

Как видите, здесь всё минималистично, интуитивно понятно, и, что очень важно, на английском языке! На стартовом экране присутствуют всего три кнопки: "New", "Open" и "Help". Кнопка "Open" открывает уже существующий проект, кнопке "New" создаёт новый. Рассмотрим создание нового проекта, нажимаем кнопку "New".

Здесь у нас уже появляются первые настройки проекта. В чек-боксе "Device Type" выбираем модель микроконтроллера, в "Pakage Type" выбираем тип корпуса. Теперь, внимание! В чек-боксе "SDK Type" выбираем SDK (т.е. набор инструментов, под которые создаётся проект). И тут у нас WinAvr, AvrStudio 4 (что по сути одно и то же) и IAR. Вспоминаем мои подозрения по поводу подозрительно одинаковых мнемоник ассемблерных команд, о чём я писал выше, то есть это знакомый нам AVRGCC. В данном чек-боксе я предлагаю выбирать WinAVR как самый легковесный вариант (Atmel Studio версии выше четвёртой работать не будут, но, если он у Вас установлен, то сгенерируется файл проекта под студию). Далее в строчке, обведённой прямоугольничком необходимо указать название проекта и полный путь к нему (иначе проект создастся в папке с "LGTSDK Builder"), например, "D:\LGT_Projects\test1". Остальное оставляем по умолчанию. И жмём "Apply".

И тут нашему взору открывается самое классное, на мой взгляд - генератор кода, наподобие CubeIDE для STM32. Здесь, в принципе , всё очень понятно на уровне интуиции. Я остановлюсь только на важных моментах.

В первую очередь заходим во вкладку "System settings", здесь находятся настройки источника тактирования. Можно выбирать внешний кварц или генератор и два внутренних генератора (HSI и LSI). Также здесь настраивается делитель частоты источника тактирования, вывод частоты на пин микроконтроллера, отключение интерфейса SWD и ещё некоторые плюшки. Смотрите фото ниже:

Ещё для примера приведу вкладку настройки модуля USART:

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

Если пролистать вкладку ниже, то мы увидим, что также можно включить необходимые прерывания модуля (обработчики сгенерируются в отдельный файл, но их можно перенести в другое место, например, в main.c). А еще можно добавить функции работы с модулем (в данном случае - передача байта, строки по USART, получение байта), это доступно для всех модулей. Смотрите фото ниже:

Когда у нас настроены все периферические модули, переходим во вкладку "Demos", где выбираем пункт "EmptyProject" (если выбрать пункт "simpleUART", то сгенерируется демонстрационный проект). И переходим во вкладку "Settings".

Здесь есть варианты. Если Вы генерируете проект под AtmelStudio 4 или IAR, то можно ничего не трогать. Если же Вы решили не устанавливать данные довольно немолодые IDE, то необходимо немного отвлечься от настройки проекта, скачать и установить WinAVR (если Вы этого не сделали раньше), которая свободно распространяется на страничке разработчика (если у Вас Win10 или 64-битная версия более старых Windows, то необходимо также скачать и установить патч для WinAVR, иначе будут ошибки компиляции). После проделанных манипуляций возвращаемся на вкладку "Settings" и прописываем путь к корневой папке WinAVR в строке "WinAVR root path". Всё остальное оставляем без изменений.

На этом настройки проекта закончены, нажимаем кнопку "Build" на левой боковой панели. И у нас появится редактор кода и новая вкладка "SDK View" на верхнем меню.

Здесь как в любом редакторе кода есть дерево проекта со всеми сгенерированными файлами и окно текстового редактора.

В дереве проекта можно добавлять и убавлять существующие файлы, создавать свои как и в любой IDE. 

На данном этапе все файлы проекта (header и source) сгенерированы и можно полазить и посмотреть на их содержимое. Отмечу, что сгенерированный код (инициализации периферических модулей и функции работы сними) довольно лаконичный и не перегружен различными структурами, непонятными ссылками, указателями и макросами (в отличие, например, от индийско-китайских "произведений" CubeMX для STM32, которые отнимают приличное количество CODE сегмента). Всё, что Вы считаете лишним или неподходящим для Вашего проекта можно удалить или подредактировать.

Теперь осталось только скомпилировать проект. На этом этапе тоже есть варианты:

1) Если Вы решили использовать WinAVR, то сохраняем проект кнопкой "Save" на боковой панели и нажимаем кнопку "Build" там же. Если всё сделано правильно, проект должен собраться и Вы получите HEX файл в корневой папке проекта. У данного способа есть свои недостатки: редактор кода здесь не самый удобный (хотя, если сравнивать с Keil и IAR, то можно поспорить); нет подсветки ошибок в тексте; WinAVR на Win10 периодически выдаёт ошибку (описана в материале по ссылке для скачивания патча для WinAVR), которая лечится перезагрузкой компьютера.

2) Если у Вас установлена AtmelStudio 4, то сохраняете проект и нажимаете кнопку "AVRStudio", тогда сгенерируется файл проекта для студии и можно работать дальше там. Этот вариант я не пробовал, так как студия у меня очень более свежая. Вариант с проектом под IAR я также не проверял за ненадобностью.

При необходимости внести изменения в проекте, запускаем LGTSDK Builder, открываем свой проект (кнопкой "Open" на стартовой странице), переходим на вкладку "Device View" в верхнем меню, вносим изменения как при начальной настройке проекта и нажимаем кнопку "Build", в появившемся диалоговом окне нажимаем "Да". Проект пересобирётся. При внесении изменений могут изменяться некоторые файлы, например, если Вы переносили обработчик прерывания из файла "isr_auto.c" в другое место, то пустой обработчик там появится снова, так что нужно проверять содержимое пересобранных файлов.

Далее можно добавлять свой код как для обычного AVR микроконтроллера. Синтаксис ничем не отличается, даже название многих регистров периферии такие же (например, GPIO - один в один, USART, SPI, I2C - многие совпадают). И компилируем выбранным Вами способом. 

Со средой разработки всё более-менее понятно. Теперь поговорим о не менее важной проблеме - каким образом можно "прошить" сгенерированный HEX файл в память микроконтроллера?

"Погуглив" данный вопрос и поколупав файлы Arduino IDE для LGT8 я заметил, что через встроенный bootloader они программируются с помощью дуды (avrdude), причём в качестве целевого МК указывается atmega328, а в качестве программатора - stk500. Но это, что касается прошивки через встроенный bootloader. А что же с программаторами? Тут в отличие от AVR всё очень печально. Есть заводской USB программатор SWDICE MKII PRO, которого в продаже я не нашёл вообще, даже на aliexpress. Есть ещё программатор LarduinoISP на том же aliexpress по цене около 9$ с учётом доставки, который по сути является заводским исполнением открытого проекта LarduinoISP (метод прошивки bootloader-а в плату LGT8 с помощью другой платы arduino). Так вот данный заводской LarduinoISP, судя по фото в отзывах покупателей является ничем иным как упрощённой платой Arduino nano (сделан на USB-UART конвертере и atmega168), стоимость которой на том же Ali с Atmega168 на борту не превышает 2$. Про метод прошивки bootloader-а можно почитать в сети, например, вот. Основная проблема в том, что последними двумя методами прошиваются bootloader и HEX файлы, скомпилированные из среды Arduino IDE, но не сторонние HEX файлы. Но проблема решаема (как и для плат Arduino). Об этом далее.

Опишу проверенные мной варианты прошивки:

1) Первый и самый простой метод прошивки - это залить свой HEX файл через программу-загрузчики для плат Arduino типа XLoader или ArduinoUploader и им подобных, так как в Arduino IDE платы LGT8 прошиваются через avrdude как STK500, аналогично микроконтроллерам AVR (так как bootloader у них также - optiboot). В настройках выбираем плату arduino uno или nano и скорость UART 57600. Всё очень удобно шьётся через USB. Но! Прошить можно только один раз. Так как затирается bootloader. Увы. Такой вариант подходит только если в прошиваемый HEX добавлен optiboot. А это не так просто сделать.

2) Второй вариант - заливать HEX с помощью другой платы Arduino, методом, описанным по ссылке абзацем выше. Только вместо среды Arduino использовать программы загрузчики (лучше всего подходит ArduinoUploader, так как имеет более гибкие настройки). В программе выбираем плату Nano или Uno и скорость 19200. Всё шьётся отлично. Только не очень удобно цеплять кучу проводов к обеим платам, навешивать резистор с конденсатором на соплях.

3) Третий вариант наиболее удобный и достаточно бюджетный (к слову, мой вариант) сделать свой LarduinoISP программатор и заливать HEX файлы предыдущим способом, но в более удобном виде. Для сборки программатора понадобится микроконтроллер atmega8/168/328 (как вариант ещё atmega88), любой USB-UART конвертер (CH340, FT232, CP210x, PL2303 и т.д.), кварц на 16MHz несколько резисторов, конденсаторов, USB разъём, кнопка и прямые руки. Также нужен любой программатор для AVR (да хоть - "шесть проводков" или плата Arduino в качестве AS-ISP программатора). Схема достаточно проста:

Возможно, дополнительно надо будет подтянуть линию SWD к плюсу питания через резистор 4,7КОм, но автор проекта утверждает, что в последней версии прошивки можно и без подтяжки. На схеме я этот резистор не рисовал, но на плате место под него есть и я его установил на всякий случай.

Прошивку для атмеги можно скомпилировать в Arduino IDE (инструкция есть по ссылке выше про LarduinoISP). А чтобы получить HEX для прошивки программатором можно в среде Arduino в меню "скетч" нажать "экспорт бинарного файла". А для совсем ленивых я скомпилировал готовые хексы (прикреплю в конце статьи) для atmega8/168/328 как с bootloader-ом так и без.

Для себя я нарисовал достаточно компактную платку размерами 22х40 мм:

Работает отлично, очень удобно. Что мне очень понравилось, это - что не надо отключать провод "Reset" от программируемой платы после прошивки для запуска программы, в отличие от, например, NuLink при прошивке 1Т8051 МК или ST-Link при прошивке STM8.

Самые внимательные могли заметить, что в LGTSDK Builder в боковом меню есть кнопка "Program", она также запускает avrdude, но к сожалению там совсем другие настройки, скорее всего для заводского программатора SWDICE MKII (который, судя по всему, является AVR Dragon MKII, только с протоколом SWD вместо SPI, так как к нему даже драйвер идёт от AVR Dragon), так что увы, с этой кнопки процесс прошивки не запускается. Зато из среды AVRStudio 4 при выборе STK500, по идее, LarduinoISP должен работать при правильной настройке скорости (так как он и есть STK500 только с SWD на выходе).

Лично для себя я набросал небольшую утилиту для прошивки. Она аналогична прошивальщикам (XLoader, ArduinoUploader), просто собирает строку для avrdude и отправляет её в консоль. Только в моей утилите сразу прописаны настройки для прошивки LGT8 через программатор, через bootloader и настройки для плат arduino на atmega328.

Какой загрузчик хексов использовать - дело вкуса. Мне нравится мой, он удобный, да и "своим" всегда приятнее пользоваться.

В заключение хочу рассказать о скорости работы LGT8 в сравнении с его прототипом ATMEGA328. Возможно, кто-то читал мою статью, в конце которой я проводил сравнение скорости чтения 1-Мегабайтной SPI Flash на различных микроконтроллерах (AVR, STM8, STM32, 1T-8051). Я по своей традиции решил скомпилировать этот же проект и для LGT8. Из периферии там задействован USART с прерыванием по приёму и SPI. Напомню, что Atmega в этом проекте на своей максимальной частоте в 16 MHz смогла стабильно обрабатывать пакеты UART на скорости 57600 бод и чтение одного Мегабайта у неё заняло 3 минуты 4 секунды. LGT8 на своих 32MHz спокойно обрабатывает пакеты UART на стандартной скорости 115200 (больше не пробовал) и чтение одного Мегабайта у него заняло 1 минуту 59 секунд. Не совсем честно? Не равные условия (частота ядра, скорость UART)? Ну, кто как может. Микроконтроллеры одного класса и с одинаковым набором команд.

Какие можно сделать выводы из всего сказанного? У китайцев получился вполне достойный 8-битный микроконтроллер, способный конкурировать в своей нише с именитыми конкурентами даже без учёта более низкой стоимости. Я бы даже сказал, что он превзошёл свой прототип (ATMEGA328). Единственное, что омрачает такую радужную картину, это отсутствие нормальных инструментов для разработки и отладки, например, на базе того же Eclipse, как делают многие, в том числе и китайские производители (WCH, Artery и др). А использовать эти микроконтроллеры только в среде Arduino по моему мнению - просто расточительно.

На этом - всё. Надеюсь, данный материал будет полезен.

PS: выше по тексту я упоминал IDE Eclipse, так вот в нём также можно работать с данными микроконтроллерами. Нужна версия Eclipse for C/C++ developers. Здесь также есть варианты.

Первый - самый простой, собираем проект под winawr с помощью LGTSDK Builder и открываем полученный проект в Eclipse, как makefile проект. В этом случае проект без проблем будет компилироваться кнопкой "build" из Eclipse. Но у этого метода есть много недостатков: во первых не будет корректно работать проверка синтаксиса (будет очень много подчёркнутого правильного кода), во вторых - нельзя пользоваться встроенными инструментами загрузки файла в микроконтроллер.

Второй метод немного сложнее, есть некоторые костыли, но он лишён недостатков первого метода. Для этого в уже скачанный Eclipse необходимо установить плагин для работы с AVR и настроить его (в сети полно инструкций, например вот). Только настройка программатора (в отличии от описанной в инструкции) немного другая, вместо usb-asp выбираем stk500 v1, скорость выбираем 19200 и прописываем правильно COM порт, на который настроен программатор:

Далее собираем проект с помощью LGTSDK Builder под winavr, выкидываем из проекта все ненужные файлы (всё, кроме *.с, *.h и *.s файлов), открываем Eclipse и создаём новый проект для Atmega328p, название проекта указываем любое, а расположение проекта - указываем нашу папку с ранее собранным и почищенным проектом для LGT8, частоту кварца указываем соответственно настройкам в LGTSDK Builder. Жмём "Finish". Готово. Единственное, возможно потребуется в настройках проекта "C++/Path and Simbols/Include" прописать путь к *.h файлам, но это стандартная процедура для тех, кто работает в Eclipse. Далее можно работать как с AVR, включая стандартные библиотеки, а также прошивать микроконтроллер через программатор встроенной в Eclipse кнопкой "AVR" со стрелочкой.

Второй метод немного костыльный, но зато работать таким образом с проектом намного удобнее.

Также на досуге я переписал скетч программатора LarduinoISP на "человеческий" Си. Благодаря этому удалось поднять скорость UART до 57600. Если будет интересно, пишите в комментариях, поделюсь проектом. Его можно адаптировать под многие другие микроконтроллеры.

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
Плата программатора
U1 МикросхемаCH340E1 CH340G, CH340C, FT232 и дрПоиск в магазине ОтронВ блокнот
U2 МК AVR 8-бит
ATmega8
1 ATmega8/168/328Поиск в магазине ОтронВ блокнот
D1 Диод Шоттки
1N5819
1 Любой диод шотткиПоиск в магазине ОтронВ блокнот
R1 Резистор
560 Ом
1 Поиск в магазине ОтронВ блокнот
R2 Резистор
10 кОм
1 Поиск в магазине ОтронВ блокнот
R3-R5 Резистор
1 кОм
1 Поиск в магазине ОтронВ блокнот
C1, C4 Конденсатор0.1 мкФ1 Поиск в магазине ОтронВ блокнот
C2, C3 Конденсатор16 пФ1 Поиск в магазине ОтронВ блокнот
Led1-Led4 Светодиодлюбой1 Поиск в магазине ОтронВ блокнот
Кварцевый резонатор16MHz1 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 3
Я собрал 0 3
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 5 Проголосовало: 3 чел.

Комментарии (38) | Я собрал (0) | Подписаться

0
Публикатор #
На форуме автоматически создана тема для обсуждения статьи.
Ответить
+1
Сергей #
Даёшь серию статей ...
Ответить
+1

[Автор]
AndrejChoo #
Серии не надо от слова совсем. Данные чипы программируются в плане кода абсолютно идентично atmega328, которую всё изучили вдоль и поперек. Единственное, Я дополнил статью информацией, как работать с данным камнем в Eclipse. Надеюсь, что скоро перепубликуют.
Ответить
0
vavaav #
Любопытный камушек. Интересно в GCC поддержка есть?
Ответить
0

[Автор]
AndrejChoo #
Winavr - это и есть avrgcc. И при компиляции указывается устройство atmega328. Так что - да, поддерживается. См. третий комментарий.
Отредактирован 11.03.2023 07:43
Ответить
0
Иван #
Может есть у кого готовая плата этого программатора с чипом CH340?
Ответить
0

[Автор]
AndrejChoo #
Ответить
0
blackflash2007 #
Имел ввиду трассировка платы
Ответить
0

[Автор]
AndrejChoo #
Так плата ж нарисована в sprint-е, несложно перерисовать кусочек. Вы имеете в виду ch340g в 16 ногом корпусе?
Ответить
0
blackflash2007 #
Ну да ее. Есть адаптер хотел его распаять и собрать программатор. Надо уметь перерисовывать
Ответить
0

[Автор]
AndrejChoo #
Хорошо, нарисую в подарок
Ответить
0

[Автор]
AndrejChoo #
Разводка на CH340G/C. Для "G" необходим кварц на 12MHz, для "C" - не нужен.
Прикрепленный файл: LGT8_SWD_ISP.lay6
Ответить
0
blackflash2007 #
Спасибо огромное! Буду делать
Ответить
0
blackflash2007 #
Мк прошивать заранее или на плате можно ?
Ответить
0

[Автор]
AndrejChoo #
Для прошивки на плате выведен разъем 10 pin. Так что - как угодно, до или после. Если будете ставить атмегу из платы Ардуино с прошитым бутлоадером, то можно и через usb прошить.
Если будут ещё вопросы, пишите в личку.
Отредактирован 14.03.2023 20:18
Ответить
0
blackflash2007 #
Где то чего то не хватает в плате на CH340G. Плату собрал не заработала. Подпаял внешний свисток на CH340G (с него снимал эту микросхему) работает.
Ответить
0

[Автор]
AndrejChoo #
Для ch340G нужен обязательно кварц 12MHz. На моей схеме ch340e, ему кварц не нужен.
Ответить
0
blackflash2007 #
Стоит. Самое смешное что атмега отвечает через CH340G но прашивать мк не в какую не хочет. Выпаиваю CH340G с платы ставлю в переходник переходник подпаиваю в плате программатора все работает. Важно или нет не знаю но вовремя прошивке на программаторе светодиоды не моргают только на переходнике тх и рх моргает
Ответить
0

[Автор]
AndrejChoo #
А tx и rx на плате не перепутаны? У меня было такое из-за ошибки в даташите, в одном была правильная распиновка, в другом - нет. Попробуйте на плате махнуть местами rx-tx. Я мог перепутать при разводке, я её толком не проверял, так как у меня ch340e.
Отредактирован 16.08.2023 12:29
Ответить
0
Dust112 #
Можно использовать для написания Microchip Studio 7. Если импортировать пример проекта для AVRSTUDIO4 в 7 версию, а WinAVR сохранить на диске С, проект нормально компилируется. А вот сгенерированный в LGTSDK Builder проект для AVRSTUDIO4, у меня не импортируется.
Ответить
+1

[Автор]
AndrejChoo #
В седьмой студии должно работать описанным способом для Eclipse (см. конец статьи) с небольшими костылями. Просто надо сгенерировать проект под winavr, выкинуть из него всё лишнее кроме header, source и startup файлов, создать новый проект в седьмой студии под atmega328 и добавить в проект оставшиеся файлы. Тогда всё должно собираться.
Ответить
0
Влад #
Хех, вот народ на ардуину подсел! Нативной средой для микроконтроллеров Atmel была atmel studio. Крайняя была - Atmel studio 7. Затем Atmel поглотила Microchip. Соответственно теперь Atmega 328 поддерживается в том числе и MPLab ide.
Ответить
+2
Dust112 #
Не обязательно подседать на ардуину, я использую готовые модули ардуина, но не использую саму среду. Модули удобны для макетирования проектов.
Ответить
0
andro #
Здравствуйте, прикрепленный файл "LGT8_Loader.rar (379 Кб)" не открывается, пишет что вирус.
Отредактирован 16.03.2023 10:19
Прикрепленный файл: Untitled.png
Ответить
+1

[Автор]
AndrejChoo #
Здравствуйте. Не знаю, что там нашел ваш антивирус. Там обычная утилита, написанная в visual studio. Можете скачать Arduino Uploader, там тоже можно настраивать скорость. Выбирайте atmega328. Скорость прописывается в текстовом окошке (там по умолчанию 19200).
Ответить
0
Redfern89 #
а можно ли данный камень шить через usbasp? Если да - то как?
Ответить
0
kvn234 #
Прошиваю по USB
Прикрепленный файл: ArduinoProg.zip
Ответить
0

[Автор]
AndrejChoo #
Нет. Из-за этого и статья. У этих МК прошивка только через swd.
Ответить
+1
mihalkovskii #
Спасибо большое! Оказывается всё это время у меня на полке валялся нормальный ЦАП. Проверил, работает. Datasheet на русском языке это вообще подарок судьбы
Ответить
0
Rdd #
Напомню, что Atmega в этом проекте на своей максимальной частоте в 16 MHz смогла стабильно обрабатывать пакеты UART на скорости 57600 бод и чтение одного Мегабайта у неё заняло 3 минуты 4 секунды. LGT8 на своих 32MHz спокойно обрабатывает пакеты UART на стандартной скорости 115200
Автор, а вам не приходило в голову, что и LGT8 при частоте 16Мгц не отработает на скорости 115200 ? А если оставить кварц чуть меньше, ну к примеру 14,7456 или даже 11.0592, то атмега будет просто летать на 115200 !
Откровенно не пойму, нафига в ардуино лепят эти 16Мгц, только всё портят
Ответить
0

[Автор]
AndrejChoo #
Дело совсем не в точности частоты UARTA, а в скорости обработки прерывания. В том проекте в прерывании собирается пакет переменной длины за то время, пока UART принимает очередной байт. И при 16 MHz атмега просто физически не успевает это сделать.
Вот если бы переписать обработчик прерывания на асм, то да, атмега летала бы и на 115200.
Ответить
0
Ксения #
"Сбой запроса дескриптора устройства" - Не определяется, светодиоды не светят. Прошив Атмегу8 (юсбаср) с бутом и без. Ели восстанавливаю старый хекс то всё норм
Ответить
0

[Автор]
AndrejChoo #
Так и не понял, про что Ваш вопрос? Если Вы пытаетесь сделать из usbasp-а программатор для lgt8, то ничего не выйдет.
Объясните подробнее, что, как и с чем Вы делали. Что прошивали и что хотели получить?
Пишите в личку, отвечу быстрее.
Отредактирован 26.02.2024 09:19
Ответить
0
coba57 #
Какие фьюзы программатора?
Спасибо.
Ответить
0

[Автор]
AndrejChoo #
Atmega8, atmega328: High-0xD9, Low-0xFF (внешний кварц максимальная частота)
Ответить
0
Vyacheslav #
Можно прошить lgt8,через usbasp. Тут почитайте. https://mysku.club/blog/aliexpress/97036.html
Ответить
0

[Автор]
AndrejChoo #
Не знал про эту модификацию. Даже не обращал внимание, что в avrdude есть lgt-хи.
Ответить
0

[Автор]
AndrejChoo #
Хотя я не уверен, что это именно так. В исходниках dioannidis для usbasp я не нашёл никаких функций для работы по шине swd. Скорее всего, автор обзора не знает, что avrdudes - это оболочка для avrdude, которая работает не только с аспом, но и с большинством других программеров. А swdice для lgt работает именно с avrdude как stk500v1 для atmega328.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Лазерный модуль 650нм 5мВт Солнечная панель 10Вт 12В поликристаллическая
вверх