Металл2024 Реклама
Метобр2024 Реклама

Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.

X-Dron
Идет загрузка
Загрузка
07.09.2020
18548
23
Техничка

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

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

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

13

Способы подключения интерфейса пользователя к 3D-принтерам на основе Marlin 2.0.6.

1. RepRap Arduino Mega Pololu Shield (RAMPS)

Прямое подключение LED 12864-экранов.

Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.Самый древний из способов. Шина состоит из 16-ти управляемых непосредственно с Arduino Mega GPIO и питания. В настоящее время данный способ не используется. 

Интерфейс пользователя всем давно знаком

Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.

2. RepRap Full Graphic Smart Controller

(https://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller#Description)

Подключение LED 12864-экранов по SPI -интерфейсу к материнской плате 3D-принтера. Часто китайцы называют этот способ RAMPS, но это неправильно. В RAMPS см. выше.

Для работы необходимо, чтобы LED 12864 поддерживал работу по SPI, например, используя ST7920 контроллер.

Данные передаются по трем пинам SPI-интерфейса, высвободив 13 GPIO. Помимо LED-экрана на модуль выводятся так же энкодер управления, зуммер («пищалка») и SD-карта.

На плате выглядят как два 10-пиновых разъема типа DC10P.

Классический RepRap Full Graphic Smart Controller имеет след. разводку разъемов.

Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.

VCC, GND- питание

LCDE(SID), LCDRS(CS), LCD4(SCLK) – огрызок SPI-интерфейса для LED 12864.

LCD5, LCD6, LCD7, KILL – по-умолчанию, не используются. Разработчики могут задействовать для своего функционала, например NeoNeoPixel LED.

BTN_ENC, BTN_EN1, BTN_E2 – подключение энкодера.

Beeper – «пищалка».

MISO, SCK, MOSI, SD_CSEL, SD_DET – интерфейс работы с SD-картой по второму SPI.

RESET - кнопка сброса.

Подключение RepRap Full Graphic Smart Controller может быть реализовано на RAMPS с помощью переходника.

Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.

Интерфейс пользователя не кардинально не отличался от RAMPS.

3. UART

Все взаимодействие с пользователем вынесено на внешнее устройство. Процессор даже не знает, что у него есть графический интерфейс, SD-карта, Wifi, энкодер и «пищалка». Часто даже концевые выключатели переносятся на внешнее устройство. В качестве такого устройства может выступать RaspberryPi (OrangePi) или Smart TFT-дисплей. Примером такого Smart-дисплея является JZ-TSxx, BTT TFT35 V3.0 в графическом режиме.

Это основной способ подключения TFT-дисплеев к материнским платам на 8-битном процессоре. С него снимаются все функции обработки пользовательского интерфейса, но накладываются серьезные требования в работе UART, его скорости и устойчивости работы при постоянном потоке данных. Данный способ будет хорошо работать на скоростях UART 230400, 250000 с относительно небольшими размерами буферов команд и принимаемых по UART данных (MAX_CMD_SIZE, RX_BUFFER_SIZE). Однако, некоторые платы/CPU по непонятным причинам не могут устойчиво работать на таких скоростях, максимум 115200. Тогда для организации стабильного потока команд используется максимальное увеличение буферов, контроль переполнения буфера SERIAL_XON_XOFF и ADVANCED_OK. Последние должны поддерживаться со стороны Smart TFT-дисплея. В Octoprint для RaspberryPi (OrangePi) их поддержка реализована.

При большом количестве быстро отрабатываемых команд даже эти усилия не могут спасти от опустошения буферов. Как следствие такого увеличения появляется «тормознутость» (меньшая отзывчивость) интерфейса. Нажал кнопку, планировщик команд экрана поместил соответствующую команду в начало очередной порции данных для материнки, и отправил. Команда попадает в длиннющую очередь в буферах материнки. Особенно часто это наблюдается при печати крупных объектов с длинными перемещениями на низкой скорости (печать стенок).

Интерфейс пользователя может быть любым, зависит от фантазии разработчика.

4. FSMC_GRAPHICAL_TFT

У материнских плат для 3D-принтеров плат на основе STM32 для подключения дисплея предусмотрен специальный интерфейс и называется он FSMC, его также называют контроллером внешней памяти. Смысл работы FSMC заключается в следующем, при подключении по FSMC дисплея или внешней памяти, мы можем обращаться к регистрам подключённого устройства, как будто они находятся в памяти микроконтроллера. Нам не надо дёргать за ножки и отсчитывать временные интервалы, обо всём позаботиться интерфейс.

Отличительной особенностью интерфейса является шлейф с большим количеством жил, от 20 до 22 только информационных сигналов, без учета питания.

Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.Разъем интерфейса может выглядеть следующим образом. В шлейф так же могут включены линии для контроля Touch-панели (SPI).

Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.

Marlin и CPU материнской платы сами занимаются отрисовкой интерфейса пользователя.

Начиная с Marlin 2.0.6.1 на FSMC TFT-экране можно включить 3 разных интерфейса пользователя.

• #define FSMC_GRAPHICAL_TFT - Upscaled 128x64 Marlin UI

Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.Долгое время был основным интерфейсом пользователя для FSMC TFT-экранов. Кнопки на экране заменяют управление через энкодер. 

• #define TFT_LVGL_UI_FSMC – графический интерфейс от MKS.

Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.Интерфейс пользователя появился только Marlin 2.0.6. основан на библиотеке LVGL . Занимает много места в оперативной памяти, требует установки дополнительной SPI Flash-памяти для хранения графических элементов. MKS разрабатывала данный графический интерфейс  для плат Robin Nano 1.1, 1.2. 

• #define TFT_320x240 (#define TFT_480x320) - Цветной Marlin UI для сенсорных TFT-экранов со стандартной системой меню

Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.Интерфейс пользователя появился только Marlin 2.0.6.1.

Программисты считают FSMC_GRAPHICAL_TFT наименее глючным способом подключения экранов с графическим интерфейсом пользователя.

Единственным минусом считается использование большого количества GPIO процессора для организации шины.

5. SPI_GRAPHICAL_TFT

В Marlin появился начиная с версии 2.0.6.1. Основная идея та же что у RepRap Full Graphic Smart Controller – уход от параллельной шины, требующей большое количество GPIO, на шину SPI.

Физическое подключение – все те же два 10-ти пиновых разъема как у RepRap Full Graphic Smart Controller. Теоретически имеется полная совместимость, и на любую плату вместо LCD 12864 можно попробовать установить графический TFT экран с SPI-интерфейсом. Лишь бы памяти хватило.

В исполнении платы MKS Robin Nano 2.0 и экрана MKS TS35 v2.0 разъемы имеют следующую разводку.

Marlin 2.0.6.1. Эволюция подключения экранов и интерфейсов пользователя.

VCC,+3V3, GND- питание

LCD_EN(FSMC_LIGHT|DP13) – TFT_BACKLIGHT_PIN управление подсветкой экрана

LCD_RS(FSMC_RST|PC6) – TFT_RST_PIN -ресет экрана,

LCD_D4(SPI2_NSS|PE14) - TOUCH_CS_PIN – выбор сенсора,

LCD_D5(LCD_D5|PE15) – в режиме SPI_GRAPHICAL_TFT не используется,

LCD_D6(LCD_D6|PD11) - TFT_CS_PIN – выбор экрана,

LCD_D7(LCD_D7|PD10) - TFT_DC_PIN,

BTN_ENC(PE13), BTN_EN1(PE8), BTN_E2(PE11) – подключение энкодера,

Beeper – «пищалка»,

SPI1_MISO(PA6) - TOUCH_MISO_PIN, TFT_MISO_PIN,

SPI1_SCK1(PA5) - TOUCH_SCK_PIN, TFT_SCK_PIN, 

SPI1_MOSI(PA7) - TOUCH_MOSI_PIN, TFT_MOSI_PIN,

SPI1_CS(PE10) - в режиме SPI_GRAPHICAL_TFT не используется,

SPI1_RS(PE12)- не используется.

RESET - кнопка сброса.

На SPI_GRAPHICAL_TFT экране так же можно включить 3 разных интерфейса пользователя.

• #define SPI_GRAPHICAL_TFT - Upscaled 128x64 Marlin UI

• #define TFT_320x240_SPI (#define TFT_480x320_SPI) - Цветной Marlin UI со стандартной системой меню

• #define TFT_LVGL_UI_SPI - графический интерфейс от MKS.

Подключение SPI_GRAPHICAL_TFT самое молодое и наименее изученное. Но мне кажется, что его будут доводить до основного способа подключения TFT-экранов к платам управления 3D-принтеров и бюджетных ЧПУ.

PS.

Про MKS Robin Nano 2.0 и экрана MKS TS35 v2.0  есть предварительный обзор типа "диванной аналитики". плата с экраном недавно покинула таможню и находится в пути.

Предварительно: полностью совместимы по посадочным отверстиям с предыдущими RobinNano, но есть UART/SPI по всем осям, Sensorless одной перемычкой, гребенка с различными напряжениями питания для периферии, SPI-подключение TFT-экрана.   

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

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

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

13
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама