—— Поделился с DWIN Froom
Используя чип DWIN T5L1 в качестве управляющего ядра всей машины, он получает и обрабатывает прикосновения, сбор данных с АЦП, управляющую информацию ШИМ и управляет 3,5-дюймовым ЖК-экраном для отображения текущего состояния в режиме реального времени.Поддержка удаленной сенсорной регулировки яркости светодиодного источника света через модуль Wi-Fi и поддержка голосового оповещения.
Возможности программы:
1. Принять чип T5L для работы на высокой частоте, аналоговая выборка AD стабильна, а ошибка мала;
2. Поддержка TYPE C, напрямую подключенная к ПК для отладки и записи программ;
3. Поддержка высокоскоростного интерфейса ядра ОС, 16-битный параллельный порт;ШИМ-порт ядра пользовательского интерфейса, вывод порта AD, недорогой дизайн приложения, нет необходимости добавлять дополнительный MCU;
4. Поддержка WiFi, пульт дистанционного управления Bluetooth;
5. Поддержка широкого напряжения 5 ~ 12 В постоянного тока и широкого диапазона входных сигналов.
1.1 Принципиальная схема
1.2 печатная плата
1.3 Пользовательский интерфейс
Позор введение:
(1)Аппаратная схема
1.4 Принципиальная схема T5L48320C035
1. Питание логики микроконтроллера 3,3 В: C18, C26, C27, C28, C29, C31, C32, C33;
2. Источник питания ядра микроконтроллера 1,25 В: C23, C24;
3. Аналоговый источник питания MCU 3,3 В: C35 — аналоговый источник питания для MCU.При наборе земля ядра 1,25 В и логическая земля могут быть объединены вместе, но аналоговая земля должна быть разделена.Аналоговая земля и цифровая земля должны быть собраны на отрицательном полюсе большого выходного конденсатора LDO, а аналоговый положительный полюс также должен быть собран на положительном полюсе большого конденсатора LDO, чтобы минимизировать шум дискретизации AD.
4. Цепь сбора аналогового сигнала AD: CP1 — конденсатор фильтра аналогового входа AD.Чтобы уменьшить ошибку выборки, аналоговая земля и цифровая земля MCU разделены независимо.Отрицательный полюс CP1 должен быть подключен к аналоговой земле MCU с минимальным импедансом, а два параллельных конденсатора кварцевого генератора подключены к аналоговой земле MCU.
5. Цепь зуммера: C25 — конденсатор питания для зуммера.Зуммер является индуктивным устройством, и во время его работы возникает пиковый ток.Чтобы уменьшить пик, необходимо уменьшить ток возбуждения МОП зуммера, чтобы трубка МОП работала в линейной области, и спроектировать схему, чтобы она работала в режиме переключения.Обратите внимание, что R18 должен быть подключен параллельно к обоим концам зуммера, чтобы отрегулировать качество звука зуммера и сделать звук зуммера четким и приятным.
6. Цепь WiFi: выборка чипа WiFi ESP32-C, с WiFi+Bluetooth+BLE.В проводке ВЧ-земля питания и сигнальная земля разделены.
1.5 Схема схемы Wi-Fi
На приведенном выше рисунке верхняя часть медного покрытия представляет собой силовой контур заземления.Контур заземления отражения антенны WiFi должен иметь большую площадь относительно заземления питания, а точка сбора заземления питания является отрицательным полюсом C6.Между заземлением питания и антенной WiFi должен быть обеспечен отраженный ток, поэтому под антенной WiFi должно быть медное покрытие.Длина медного покрытия превышает длину удлинителя WiFi-антенны, а удлинитель повысит чувствительность WiFi;точка на отрицательном полюсе C2.Большая площадь меди может экранировать шум, вызванный излучением антенны WiFi.Два медных заземления разделены на нижнем слое и собраны на средней площадке ESP32-C через переходные отверстия.Заземление питания ВЧ требует более низкого импеданса, чем контур заземления сигнала, поэтому имеется 6 переходных отверстий от заземления питания к контактной площадке для обеспечения достаточно низкого импеданса.Через контур заземления кварцевого генератора не может проходить радиочастотная мощность, в противном случае кварцевый генератор будет генерировать дрожание частоты, а смещение частоты Wi-Fi не сможет отправлять и получать данные.
7. Цепь питания светодиодов подсветки: выборка чипа драйвера SOT23-6LED.Источник питания постоянного/постоянного тока для светодиода независимо образует петлю, а заземление постоянного/постоянного тока подключается к заземлению 3,3 В LOD.Поскольку ядро порта PWM2 было специализированным, оно выводит сигнал ШИМ 600K, и добавлен RC для использования выхода ШИМ в качестве управления ВКЛ/ВЫКЛ.
8. Диапазон входного напряжения: разработаны два понижающих преобразователя постоянного/постоянного тока.Обратите внимание, что резисторы R13 и R17 в цепи DC/DC нельзя исключить.Две микросхемы DC/DC поддерживают входное напряжение до 18 В, что удобно для внешнего источника питания.
9. Порт отладки USB TYPE C: TYPE C можно подключать и отключать вперед и назад.Вставка вперед связывается с чипом WIFI ESP32-C для программирования чипа WIFI;обратная вставка связывается с XR21V1410IL16 для программирования T5L.TYPE C поддерживает питание 5 В.
10. Связь через параллельный порт: ядро ОС T5L имеет много свободных портов ввода-вывода, и может быть разработана связь через 16-битный параллельный порт.В сочетании с протоколом параллельного порта ST ARM FMC он поддерживает синхронное чтение и запись.
11. Дизайн высокоскоростного интерфейса LCM RGB: выход T5L RGB напрямую подключен к LCM RGB, а буферное сопротивление добавлено посередине, чтобы уменьшить помехи пульсации воды LCM.При подключении уменьшите длину соединения интерфейса RGB, особенно сигнала PCLK, и увеличьте контрольные точки интерфейса RGB PCLK, HS, VS, DE;порт SPI экрана подключен к портам P2.4~P2.7 T5L, что удобно для разработки драйвера экрана.Вывод контрольных точек RST, nCS, SDA, SCI для облегчения разработки базового программного обеспечения.
(2) интерфейс ДГУС
1.6 Управление отображением переменных данных
(3) ОС
//———————————Формат чтения и записи DGUS
структура typedef
{
u16 адрес;// 16-битный адрес переменной пользовательского интерфейса
u8 датЛен;//длина данных 8 бит
u8 *pBuf;//8-битный указатель данных
} UI_packTypeDef;//DGUS чтение и запись пакетов
//———————————управление отображением переменных данных
структура typedef
{
у16 ВП;
у16 Х;
у16 Д;
у16 Цвет;
u8 ID_библиотеки;
u8 Размер шрифта;
u8 Выравнивание;
u8 ЦелоеЧисло;
u8 DecNum;
у8 Тип;
u8 ЛенУинт;
u8 StringUинит[11];
} Number_spTypeDef;//структура описания переменной данных
структура typedef
{
Number_spTypeDef sp;// определяем указатель описания SP
UI_packTypeDef spPack;//определить переменную SP DGUS для чтения и записи пакета
UI_packTypeDef vpPack;//определить переменную vp DGUS для чтения и записи пакета
} Number_HandleTypeDef;//структура переменных данных
С предыдущим определением дескриптора переменной данных.Затем определите переменную для отображения выборки напряжения:
Number_HandleTypeDef Hsample;
U16 образец_напряжения;
Сначала выполните функцию инициализации
NumberSP_Init(&Hsample,voltage_sample,0×8000);//0×8000 здесь указатель описания
//——Переменная данных, показывающая инициализацию структуры указателя SP——
void NumberSP_Init (Number_HandleTypeDef * число, u8 * значение, u16 numberAddr)
{
номер->spPack.addr = номерАдрес;
число->spPack.datLen = sizeof(число->sp);
число->spPack.pBuf = (u8 *)&число->sp;
Read_Dgus(&number->spPack);
номер->vpPack.addr = номер->sp.VP;
switch(number->sp.Type) //Длина данных переменной vp выбирается автоматически в соответствии с типом переменной данных, разработанным в интерфейсе DGUS.
{
случай 0:
случай 5:
номер->vpPack.datLen = 2;
перерыв;
Дело 1:
случай 2:
случай 3:
случай 6:
номер->vpPack.datLen = 4;
случай 4:
номер->vpPack.datLen = 8;
перерыв;
}
номер->vpPack.pBuf = значение;
}
После инициализации Hsample.sp является указателем описания переменной данных выборки напряжения;Hsample.spPack — это указатель связи между ядром ОС и переменной данных выборки напряжения пользовательского интерфейса через интерфейсную функцию DGUS;Hsample.vpPack — это атрибут изменения переменной данных выборки напряжения, например цвета шрифта и т. д., которые также передаются ядру пользовательского интерфейса через функцию интерфейса DGUS.Hsample.vpPack.addr — это адрес переменной данных выборки напряжения, который был автоматически получен из функции инициализации.При изменении адреса переменной или типа данных переменной в интерфейсе DGUS нет необходимости синхронно обновлять адрес переменной в ядре ОС.После того, как ядро ОС вычислит переменную voltage_sample, ему нужно только выполнить функцию Write_Dgus(&Hsample.vpPack) для ее обновления.Нет необходимости упаковывать voltage_sample для передачи DGUS.
Время публикации: 15 июня 2022 г.