KREMEN Реклама
KREMEN Реклама

TFTGLCD панель. Фактически финал.

Ser_K
Идет загрузка
Загрузка
11.03.2021
2703
0
Техничка

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

11

Здравствуйте.

Со времени публикации второй статьи по теме моей панели прошло уже больше года. За это время произошло хорошее событие – официальная поддержка панели была добавлена в Марлин-2, сначала в bugfix ветку, а с сентября прошлого года и в основную.

Первая версия панели была рассчитана на возможность изготовления «на коленке» из минимального набора готовых компонентов – платки BluePill, экрана и энкодера. SD карточки в этой версии штатно не было, но она могла быть добавлена.

После этого появилась вторая версия панели со штатной SD карточкой и работой с экраном по 16-битной шине. Для этого понадобилось немного изменить подключение периферии к контроллеру, так как BluePill напрямую использовать не получается. Поэтому данная версия уже требует изготовления своей печатной платы. С появлением второй версии я добавил возможность выбирать вариант ориентации экрана при помощи джампера, что позволяет изменять расположение энкодера относительно экрана (слева/справа) без изменения прошивки контроллера.

Не так давно я наводил порядок у себя в тумбочке и нашёл в закромах старый китайский недоклон миниайфона с резистивным тачскрином. Использовать такое убожество по прямому назначению рука не поднималась, а в качестве донора для третьей версии панели он вполне подошёл. Ну не пропадать же ему. Получилось такTFTGLCD панель. Фактически финал.Тачскрин подключается к контроллеру панели непосредственно, без специализированного контроллера, что упрощает и удешевляет конструкцию. Алгоритм обработки тачскрина эмулирует работу энкодера, так что прошивка основной платы остаётся без изменений. Внешний вид рабочих экранов остался классическим текстовым, но в местах, требующих редактирования параметров, добавились «кнопки». Причём для редактирования обычных параметров добавились по две кнопки – для изменения параметра с одинарным и десятикратным шагом. Калибровка тачскрина запускается после подачи питания на панель нажатием на экран во время заставки и производится только по вертикали. Калибровка по горизонтали не нужна, так как в имеющемся текстовом интерфейсе значение имеет сторона экрана, а не конкретное положение по горизонтали. Это упрощает работу. После прохождения калибровки автоматически запускается тест тачскрина. На данный момент алгоритм калибровки максимально простой и не определяет правильность подключения тачскрина к контроллеру. В дальнейшем я может быть доработаю его для большей универсальности. После завершения калибровки панель нужно перезагрузить. Сам я продолжаю пользоваться панелью с энкодером, а эту сделал для просто для добавления такой возможности и для утилизации ненужного железа.

За всё это время исправлялись мелкие баги, проводились оптимизации и добавлялся некоторый функционал. В частности добавилась поддержка нескольких новых экранов.

Панель может подключаться по интерфейсам SPI и I2C для работы с Марлином и только по SPI для Смузи. В Марлине вариант используемого интерфейса выбирается в файле Configuration.h, а параметры самой панели - в файле Conditionals_LCD.h  – ищите строчки с TFTGLCD. В Смузи официальной поддержки панели пока нет, но я этим в очередной раз займусь, может всё-таки добавят. Для работы с Марлином я внёс соответствующие изменения в некоторые файлы для наиболее распространённых материнских плат. Естественно, не во все и проверить соответственно в работе их тоже не мог из за их отсутствия. Так что смотрите внимательно на назначаемые пины. Работоспособность панели проверялась когда-то давно на MEGA2560, которой у меня уже нет, а сейчас постоянно проверяется на LPC1768, STM32F103 и STM32F411. Для LPC1768 была принята моя правка в библиотеку I2C, которая устраняла проблему чтения, так что теперь с этим проблем быть не должно. Работа на остальных архитектурах в драйвере панели тоже заложена, но не проверялась, проверялась только успешность сборки прошивки под соответствующую архитектуру. Кстати, из за отсутствия маленького кварца на 8МГц в третьей версии панели я использовал кварц на 10МГц и панель прекрасно работает в таком разогнанном на 25% виде.

Все актуальные фотографии можно посмотреть у меня на Гитхабе на страничке проекта, а здесь приведу только отличия от старой версии. Слева старый вариант, справа новый.

Экран редактирования параметра. Такое изменение связано с изменением алгоритма вывода меню на этапе добавления поддержки в Марлин. На энкодерной версии просто отсутствуют кнопки. Для Смузи строка редактирования тоже теперь отображается в центре экрана – переносится ниже на стороне панели.

TFTGLCD панель. Фактически финал.Экран редактирования UBL.

TFTGLCD панель. Фактически финал.Он же для тачскрина

TFTGLCD панель. Фактически финал.В принципе пока всё, каких-то глобальных изменений в проекте не будет. Он полностью соответствует той концепции, которую я закладывал – классический текстовый интерфейс с качественными шрифтами и цветными иконками за минимальные деньги. Небольшие изменения и правки возможных багов естественно будут. Как вариант – автоопределение используемого экрана.

Обсуждение проекта продолжается всё там же – на Радиокоте. Поиски багов при повторении конструкции приветствуются.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

11
Комментарии к статье
Lider 3D Реклама
Lider 3D Реклама