Последние комментарии
-
09.03.2023 10:51
Спасибо!Драйвер установил,и все заработало.
-
25.01.2023 16:05
Спасибо. Хорошая статья. Хотелось бы увидеть как ...
-
21.01.2023 22:58
Доброго дня! Як можна замовити? І чи є схема або ...
-
05.05.2022 19:14
Спасибо автору, понял почему блинк не работал
-
21.04.2022 13:18
В моём случае он используется совместно с AGP ...
Самое читаемое
- Многофункциональный программатор на CH341A
- Переходник USB to TTL (RS232) YP-01 на чипе PL2303HX
- Знакомство с Arduino Pro mini на примере китайского аналога
- Подключаем мощную нагрузку к Arduino, через реле модуль
- Твердотельное реле из симистора для коммутации мощной нагрузки через Ардуино
- Знакомство с Arduino Micro (ATmega32U4) на примере китайского аналога Pro Micro
- Знакомство с Arduino Nano на примере китайского аналога
- Знакомство с Arduino UNO на примере китайского аналога
- Обход блокировки Одноклассников, Вконтакте, Яндекс и Маил.ру с помощью OpenVPN
- Управляем Arduino через Bluetooth HC-06, с компьютера или смартфона
Знакомство с WEMOS XI на LGT8F328D - китайский аналог ATmega328
До недавнего времени китайские производители предлагали разнообразные аналоги плат Arduino, которые при меньшей стоимости, ни чуть не уступали по качеству оригиналам. Инженеры китайской компании LogicGreen пошли дальше и выпустили более продвинутый аналог микроконтроллера ATmega328 - LGT8F328. Применяя микроконтроллеры на ядре LGT8F, в китайских аналогах ардуино были реализованы новые функции, которые отсутствуют в стандартной реализации. Несмотря на то что по микроконтроллерам LogicGreen очень мало информации в Интернете, я решил попробовать разобраться в них и заказал китайский аналог Arduino - WEMOS XI на китайском микроконтроллере LGT8F328D.
В 2015 году компания LogicGreen представила микроконтроллеры LGT8F48D, LGT8F88D, LGT8F168D и LGT8F328D. Разница в них заключается в объёмах флеш-памяти и ОЗУ. Последняя является продвинутым аналогом ATmega328.
В своё время, на базе LGT8F328D, китайской компанией Wemos выпускался аналог Arduino Pro Mini, под названием WEMOS XI. На данный момент чип считается устаревшим и вместо него предлагают решения на усовершенствованном микроконтроллере LGT8F328P.
Тем не менее на Алиэкспресс ещё можно купить платы на данном чипе в пределах $1.9. Основная трудность возникает в том, что информация про LGT8F328D удалена с сайта Wemos в поддержку LGT8F328P, поэтому информацию пришлось искать по всему Интернету.
Внешний вид платы WEMOS XI с лицевой и обратной стороны. Размер платы 17 х 38 мм.
Справка: Wemos - китайская компания, специализирующая на производстве ардуиносовместимых плат и шилдов к ним.
WEMOS XI построена на LGT8F328D, который является продвинутым аналогом ATmega328. На микроконтроллере отсутствует какая-либо маркировка, возможно потому что данное решение рассчитано на свой внутренний рынок. Микроконтроллер имеет на борту 32 Кбайт флэш-памяти и 2Кбайт ОЗУ.
Плата позиционируется как аналог Pro Mini. Визуальное сравнение WEMOS XI с китайским аналогом Pro Mini и Nano.
Отличия микроконтроллера LGT8F328 от ATmega328
1. Дешевле стоит. Плата обошлась в $1.73 с доставкой в Украину, аналог Pro Mini Atmega328 на данный момент стоит в районе $2.91.
2. Расширенный диапазон частот, на которых работает микроконтроллер. При использовании внутреннего резонатора, микроконтроллер работает на 16 Мгц, в то время как чип от Atmega работает на 8 мГц. Микроконтроллер может работать на более высоких частотах, при использовании внешнего кварца, для этого на плате предусмотрено место для установки. Максимальная рабочая частота для LGT8FX8D - 20 МГц, LGT8F328P может работать на частоте до 32 МГц. ATmega328 в отличии от аналога может работать на частоте 16 МГц.
3. Расширенный диапазон питающих напряжений. Напряжение питания платы от 1.8 до 5.5В и это всё в одном устройстве, к тому же от напряжения не зависит тактовая частота, как в случае с ATmega328.
4. Наличие 8-битного ЦАП. В LGT8FX8D их два, в LGT8F328P - один.
5. 12-битный аналого-цифровой преобразователь, в Atmega он 10-битный.
6. Наличие GUID для шифрования программ, в ATmega328 отсутствует.
7. Отсутствие фьюзов. Та базовая конфигурация микроконтроллера, которая устанавливается фьюзами на ATmega328, в LGT8F328 устанавливается непосредственно в программе.
Входы и выходы WEMOS XI
14 цифровых пинов, могут быть как входами, так и выходами (0 - 13).
6 цифровых пинов могут использоваться как ШИМ (3, 5, 6, 9, 10, 11).
8 аналоговых входов (А0 - А7). Все аналоговые входы можно так же использовать как цифровые пины (14 - 21). В ATmega328 таким образом можно использовать только 6 аналоговых входов.
SPI интерфейс: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK).
UART интерфейс: 0(RX), 1(TX).
I2C интерфейс: A4(SDA), A5(SCL).
Два 8-битных ЦАП: DAC0, DAC1.
Reset - аналогично кнопке "Сброса".
На плате так же имеется светодиод SCK, который подключен к 13 пину и светодиод PWR - сигнализирующий о наличии напряжения на плате.
DTR пин - применяется для автоматического сброса платы при прошивке.
VCC - подаётся питание на плату, микроконтроллер LGT8F328 можно питать в диапазоне от 1,8 до 5,5 вольт.
SWD интерфейс: пины SWC и SWD используются для отладки микроконтроллера, через этот интерфейс заливается загрузчик.
Подключение к компьютеру для программирования
Программирование производится через USB - TTL переходник, например на PL2303 или CP2102. Для переходника устанавливается соответствующий драйвер.
Схема подключения следующая:
WEMOS XI | USB - TTL |
GND | GND |
VCC | 5V или 3,3V |
TX | RX |
RX | TX |
Не имеет значения каким напряжением будите питать плату 5 или 3,3V.
Обычно WEMOS XI поставляется с загруженным загрузчиком Arduino и при подаче напряжения, светодиод на 13 пине будет мигать двумя быстрыми вспышками, которые будут повторятся. Если этого не наблюдается, скорее всего загрузчик придётся загружать самому, об этом в конце статьи.
При программировании через CH340G, выскакивают ошибки.
Настройка Arduino IDE для программирования LGT8F328D
Поскольку платы на LGT8F328D не являются стандартными, по-умолчанию отсутствует их поддержка в Arduino IDE. Для поддержки нужно применить патч. Обычно везде в Интернете, где я находил информацию про подключения WEMOS XI к Arduino IDE, советовали использовать патч из репозитория Wemos.
Скачать с репозитория Wemos
Скачать с моего хранилища MEGA
Данный патч нужно применять с Arduino IDE от версии 1.8.0, если применять с более старой версией, во время компиляции появится "Ошибка компиляции".
В примере пробовал применить патч от Wemos для Arduino IDE 1.6.5
Как правильно установить патч от Wemos я подробно описал здесь.
В итоге среди стандартных плат Arduino появится Wemos - "WEMOS XI (Retired)".
Если вы используете версию Arduino IDE ниже чем 1.8.0, в таком случае нужно применить патч от LogicGreen, который распространяется в виде zip архива "Larduino_hsp_v3.5".
Данный патч поддерживает Arduino IDE версий 1.0.x/1.5.x/1.6.x и может применяться для работы с решениями на микроконтроллерах LGT8F88A, LGT8F328E, LGT8FX8P и LGT8FX8D. Поддерживает загрузчик от Optiboot.
Скачать с моего хранилища MEGA
Архив нужно распаковать и из имеющегося набора папок, папку "hardware" и "libraries" необходимо поместить в папку "Arduino" от вашей Arduino IDE. На вопрос переписать файлы, соглашаемся.
После запуска Arduino IDE в разделе "Инструменты" - "Плата:" будут доступны новые платы, для нашей задачи выбираем "Larduino w/LGT8F328D".
У LogicGreen так же имеется патч для использования Arduino IDE версии 1.8.х в виде архива Larduino_HSP_v3.6c. Хотя в описании сказано что данный патч так же поддерживает микропроцессор LGT8FX8D, но при компиляции скетча у меня выдавалась ошибка.
Загружаем скетч в WEMOS XI
Загрузка скетча в WEMOS XI мало чем отличается от загрузки в Arduino Pro Mini:
1. Открываем скетч, в примере "Blink".
2. В "Инструменты" - "Плата:" выбираем "WEMOS XI (Retired)" или Larduino w/LGT8F328D, в зависимости от применяемого патча.
3. В "Порт:" выбираем номер порта, на котором висит USB - TTL переходник, в примере COM1.
4. Нажимаем кнопку для загрузки скетча в плату.
5. Когда появится надпись "Загрузка..." или "Вгружаем..." (в зависимости от версии Arduino IDE), кратковременно нажимаем кнопку "Reset" на плате.
6. Надпись "Загрузка завершена" или "Взрузили" будет сообщать об удачной прошивке скетча.
Прошивка загрузчика для LGT8F328D
Если по каким то причинам плата придёт без загрузчика, придётся его самому прошивать, для этого нужно воспользоваться пакетом LarduinoISP
Скачать с репозитория LGTMCU
Скачать с моего хранилища MEGA
Прошивать загрузчик будет с помощью Uno.
Распаковываем архив, открывает в Arduino IDE скетч LarduinoISP.ino
Прошиваем им плату UNO, которая после этого превращается в программатор для LGT8F328D.
Соединяем плату Uno с Wemos XI согласно рисунку.
В пункте "Инструменты" - "Программатор:" выбираем "Arduino as ISP[WEMOS XI]" и нажимаем "Записать Загрузчик".
Комментарии
Для LGT8FX8D с внешним кварцем можно работать на частоте до 20 МГц, для LGT8F328P - до 32 МГц.
На платах от Wemos есть места для внешнего кварца. На LGT8FX8D это плата WEMOS XI (красная, та что в данной статье), на LGT8F328P - это плата LGT Nano (зелёного цвета).
Эти платы от Wemos позволяют по максимуму использовать потенциал микроконтроллер а. На борту нет UART микросхемы - подключается к ПК как Arduino Pro Mini.
Так же продают на этих МК кучу плат от других производителей, например такие как WAVGAT, у которых нет места под кварц. Или например плата TTGO XI, на которой может быть надпись Wemos, но на их сайте я не находил информации про эту плату. Она может стоить дешевле чем вышеперечисленн ые платы от Wemos, на борту даже имеется UART микросхема (HT42B534) и USB разъём, но при этом нет места под внешний кварц. К подобным платам относятся: LQFP32 MiniEVB, Octobot 8F328P-U, пр. В этих платах тактирование МК задаётся через встроенный РC-генератор.
Настройки тактирования задаются прямо в скетче, фьюзы не нужно прошивать.
Себе ещё заказал зелёную плату на LGT8F328P, где то в пути. Когда приедет,напишу обзор.
Есть продвижение, подключил плату через CH340G и у меня тоже появилась похожая проблема.
Затем вновь прошил через PL2303HX - всё ОК!
C CH340G получается какая то несовместимость.
Я постоянно через PL2303HX всё прошиваю, CH340G как бы для коллекции и до этого момента на практике не проверял.
Проблема появилась сразу, было заказано сразу 3 платы вемоса и все три так себя ведут, может что с моим USB TTL CH340G хотя Arduino Pro Mini как и все остальное прошивает без проблем.
Подключил плату к ПК через PL2303HX. Vcc платы подключил к +5V usb-ttl переходника.
Выбрал Blink, порт и плату "WEMOS XI (Retired)". Нажал кнопку "Загрузка". После того как надпись "Компиляция скетча" сменилась на "Загрузка", быстро нажимаю Reset на плате.
Скетч заливается, вместо "Загрузка" пишется "Загрузка завершена", плата мигает светодиодом.
Подключил пин Vcc платы к 3,3V - скетч тоже успешно заливается.
У вас эта проблема после покупки сразу или в процессе экспериментов?
Сегодня проверю
все сделал как у вас, при прошивке блинком выдает
Скетч использует 1348 байт (4%) памяти устройства. Всего доступно 29696 байт.
Глобальные переменные используют 9 байт динамической памяти.
Произошла ошибка при загрузке скетча
avrdude: stk500_getparm( ): (a) protocol error, expect=0x14, resp=0x90
avrdude: arduino_read_si g_bytes(): (a) protocol error, expect=0x10, resp=0xfc
avrdude: error reading signature data for part "ATmega328P", rc=-3
avrdude: error reading signature data, rc=-3
... перепрошивал загрузчик, все четко шьестся
RSS лента комментариев этой записи