TFTGLCD панель. Фактически финал.
Здравствуйте.
Со времени публикации второй статьи по теме моей панели прошло уже больше года. За это время произошло хорошее событие – официальная поддержка панели была добавлена в Марлин-2, сначала в bugfix ветку, а с сентября прошлого года и в основную.
Первая версия панели была рассчитана на возможность изготовления «на коленке» из минимального набора готовых компонентов – платки BluePill, экрана и энкодера. SD карточки в этой версии штатно не было, но она могла быть добавлена.
После этого появилась вторая версия панели со штатной SD карточкой и работой с экраном по 16-битной шине. Для этого понадобилось немного изменить подключение периферии к контроллеру, так как BluePill напрямую использовать не получается. Поэтому данная версия уже требует изготовления своей печатной платы. С появлением второй версии я добавил возможность выбирать вариант ориентации экрана при помощи джампера, что позволяет изменять расположение энкодера относительно экрана (слева/справа) без изменения прошивки контроллера.
Не так давно я наводил порядок у себя в тумбочке и нашёл в закромах старый китайский недоклон миниайфона с резистивным тачскрином. Использовать такое убожество по прямому назначению рука не поднималась, а в качестве донора для третьей версии панели он вполне подошёл. Ну не пропадать же ему. Получилось так
Тачскрин подключается к контроллеру панели непосредственно, без специализированного контроллера, что упрощает и удешевляет конструкцию. Алгоритм обработки тачскрина эмулирует работу энкодера, так что прошивка основной платы остаётся без изменений. Внешний вид рабочих экранов остался классическим текстовым, но в местах, требующих редактирования параметров, добавились «кнопки». Причём для редактирования обычных параметров добавились по две кнопки – для изменения параметра с одинарным и десятикратным шагом. Калибровка тачскрина запускается после подачи питания на панель нажатием на экран во время заставки и производится только по вертикали. Калибровка по горизонтали не нужна, так как в имеющемся текстовом интерфейсе значение имеет сторона экрана, а не конкретное положение по горизонтали. Это упрощает работу. После прохождения калибровки автоматически запускается тест тачскрина. На данный момент алгоритм калибровки максимально простой и не определяет правильность подключения тачскрина к контроллеру. В дальнейшем я может быть доработаю его для большей универсальности. После завершения калибровки панель нужно перезагрузить. Сам я продолжаю пользоваться панелью с энкодером, а эту сделал для просто для добавления такой возможности и для утилизации ненужного железа.
За всё это время исправлялись мелкие баги, проводились оптимизации и добавлялся некоторый функционал. В частности добавилась поддержка нескольких новых экранов.
Панель может подключаться по интерфейсам SPI и I2C для работы с Марлином и только по SPI для Смузи. В Марлине вариант используемого интерфейса выбирается в файле Configuration.h, а параметры самой панели - в файле Conditionals_LCD.h – ищите строчки с TFTGLCD. В Смузи официальной поддержки панели пока нет, но я этим в очередной раз займусь, может всё-таки добавят. Для работы с Марлином я внёс соответствующие изменения в некоторые файлы для наиболее распространённых материнских плат. Естественно, не во все и проверить соответственно в работе их тоже не мог из за их отсутствия. Так что смотрите внимательно на назначаемые пины. Работоспособность панели проверялась когда-то давно на MEGA2560, которой у меня уже нет, а сейчас постоянно проверяется на LPC1768, STM32F103 и STM32F411. Для LPC1768 была принята моя правка в библиотеку I2C, которая устраняла проблему чтения, так что теперь с этим проблем быть не должно. Работа на остальных архитектурах в драйвере панели тоже заложена, но не проверялась, проверялась только успешность сборки прошивки под соответствующую архитектуру. Кстати, из за отсутствия маленького кварца на 8МГц в третьей версии панели я использовал кварц на 10МГц и панель прекрасно работает в таком разогнанном на 25% виде.
Все актуальные фотографии можно посмотреть у меня на Гитхабе на страничке проекта, а здесь приведу только отличия от старой версии. Слева старый вариант, справа новый.
Экран редактирования параметра. Такое изменение связано с изменением алгоритма вывода меню на этапе добавления поддержки в Марлин. На энкодерной версии просто отсутствуют кнопки. Для Смузи строка редактирования тоже теперь отображается в центре экрана – переносится ниже на стороне панели.
В принципе пока всё, каких-то глобальных изменений в проекте не будет. Он полностью соответствует той концепции, которую я закладывал – классический текстовый интерфейс с качественными шрифтами и цветными иконками за минимальные деньги. Небольшие изменения и правки возможных багов естественно будут. Как вариант – автоопределение используемого экрана.
Обсуждение проекта продолжается всё там же – на Радиокоте. Поиски багов при повторении конструкции приветствуются.
Еще больше интересных статей
Qidi Q2 — Ремонт и «даунгрейд» во благо: замена тензодатчика на концевик
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
QIDI Box: RFID-метки для филаментов — полный гайд
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...



Комментарии и вопросы
Не переживайте, ребенок не был...
Только силиконовый герметик, н...
Анкера все равно нужны, хоть с...
привет.помогите разобраться по...
Здравствуйте! Подскажите, пожа...
Здравствуйте, я у вас новеньки...
Здравствуйте. Подскажите, пожа...