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% виде.
Все актуальные фотографии можно посмотреть у меня на Гитхабе на страничке проекта, а здесь приведу только отличия от старой версии. Слева старый вариант, справа новый.
Экран редактирования параметра. Такое изменение связано с изменением алгоритма вывода меню на этапе добавления поддержки в Марлин. На энкодерной версии просто отсутствуют кнопки. Для Смузи строка редактирования тоже теперь отображается в центре экрана – переносится ниже на стороне панели.
В принципе пока всё, каких-то глобальных изменений в проекте не будет. Он полностью соответствует той концепции, которую я закладывал – классический текстовый интерфейс с качественными шрифтами и цветными иконками за минимальные деньги. Небольшие изменения и правки возможных багов естественно будут. Как вариант – автоопределение используемого экрана.
Обсуждение проекта продолжается всё там же – на Радиокоте. Поиски багов при повторении конструкции приветствуются.
Еще больше интересных статей
petpull, или станок для протяжки бутылок
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Санкции, SMD и 3D печать: как мы заменили колесо подачи Mydata Feeder Wheel
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...



Комментарии и вопросы
Пардон, ответ увидел в статье,...
А лазер зачем? Что и куда он п...
Это еще и плохая реклама ) Как...
Всем привет, подскажите, можно...
Вводные: есть ТРИ принтера, Ма...
Как законектить бамбу лаб а1 м...
Подскажите пожалуйста, как реш...