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

Сенсорный экран для большого дерева.

jmz
Идет загрузка
Загрузка
28.12.2022
4667
12
Техничка

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

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

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

9

Сенсорный экран для большого дерева.Подключение сенсорного экрана MKS TS35 к платам BigTreeTech SKR.

При всей широте ассортимента электроники для 3D печати, выпускаемой компанией BIQU, в части экранов предложение ограничено Smart Screen различного размера. Такой экран представляет собой автономный принт сервер, ничего не знающий о внутреннем устройстве принтера, поэтому его возможности по настройке параметров принтера весьма и весьма ограничемы.Три предлагаемых модели умеют работать в режиме эмуляции экрана 12864 с полноценным доступом к меню принтера, но использование экрана 3,5 дюймового экрана для отображения такой картинки выглядит несколько расточительно.

Альтернативой выступает экран MKS TS35, ни разу не умный, но со подключением к стандарным EXP1/EXP2 разъёмам.Собственного микроконтроллера у этого экрана нет и отрисовкой картинки занимается прошивка основной платы.Поддержка TFT экранов в Marlin есть для STM32F1/F4 и для LPC176x, подключать экран я буду, соответственно, к SKR Mini v1.1 и SKR v1.3.Изначально MKS TS35 сделан для использования с MKS Robin Nano v2.x и v3.x, но благодаря удачной распиновке прекрасно дружит и с другими платами.

Первое, о чём нужно помнить - это альтернативный взгляд MKS на разъемы EXP1/EXP2.Проблема не новая и тянется со времен экранов 2004 и 12864. По сравнению RepRap электроникой, MKS использует перевернутые разъемы EXP1/EXP2.Три стандартных варианта решения:

  • снять пластиковую часть разъемов и поставить её ключем в другую сторону
  • спилить ключ на разъёмах кабеля (с одной стороны) и воткнуть их обратной стороной
  • взять кабель для подключения RepRap контроллеров к платам MKS

Пины для подключения MKS TS35 к SKR Mini v1.1 и SKR v1.3 уже прописаны в соответствующих pins.h файлах.Для других плат может потребоваться добавить следующие строчки

  #define BEEPER_PIN                 EXP1_01_PIN  #define BTN_ENC                    EXP1_02_PIN  #define BTN_EN1                    EXP2_03_PIN  #define BTN_EN2                    EXP2_05_PIN  #define TFT_CS_PIN                 EXP1_07_PIN  #define TFT_SCK_PIN                EXP2_02_PIN  #define TFT_MISO_PIN               EXP2_01_PIN  #define TFT_MOSI_PIN               EXP2_06_PIN  #define TFT_DC_PIN                 EXP1_08_PIN  #define TFT_A0_PIN                  TFT_DC_PIN  #define TFT_RESET_PIN              EXP1_04_PIN  #define LCD_BACKLIGHT_PIN          EXP1_03_PIN  #define TFT_BACKLIGHT_PIN    LCD_BACKLIGHT_PIN  #define TOUCH_BUTTONS_HW_SPI  #define TOUCH_BUTTONS_HW_SPI_DEVICE          1  #define TOUCH_CS_PIN               EXP1_05_PIN  #define TOUCH_SCK_PIN              EXP2_02_PIN  #define TOUCH_MISO_PIN             EXP2_01_PIN  #define TOUCH_MOSI_PIN             EXP2_06_PIN  #define LCD_READ_ID                       0xD3  #define LCD_USE_DMA_SPI  #define TFT_BUFFER_SIZE                   2400

Параметр TOUCH_BUTTONS_HW_SPI_DEVICE нужно сконфигурировать в соответствии с используемым аппаратным SPI.Для снижения нагрузки на микроконтроллер, вывод данных из буфера на экран осуществляется с использованием DMA, поэтому размер буфера не может превышать максимальное значение счётчика DMA контроллера.В этом месте заботливо прикопаны грабли для LPC176x. Возможности DMA контроллера в этих MCU ограничены передачей 4095 (0xFFF) 8-ми или 16-ти битных значений.Для сравнения - DMA контроллер в STM32 может передавать до 65535 (0xFFFF) таких значений.Из-за ограничений DMA контроллера вывод на экран у LPC176x осуществляется маленькими порциями и визуально медленнее, чем у STM32.

Осталось настроить соответствующие параметры в Configuration.h:У меня энкодер имеет склонность к перескакиванию через строчку, поэтому излишняя его ретивость ограничивается параметром

#define ENCODER_PULSES_PER_STEP 5

Задаем тип используемого экрана

#define MKS_TS35_V2_0

Указываем, какой графический интерфейс использовать

#define TFT_COLOR_UI

Включаем поддержку сенсорного экрана

#define TOUCH_SCREEN

Компилируем, прошиваем и радуемся результату.Сенсорный экран для большого дерева.Сенсорный экран для большого дерева.

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

Сенсорный экран для большого дерева.

Если выбраный язык не использует иероглифы (т.е. не Корейский, не Китайский и не Японский), то в Configuration_adv.h:Включить поддержку юникода в именах файлов (имена в кодировке CP1251, CP866 и прочие KOI8-как по-прежнему не поддерживаются)

#define UTF_FILENAME_SUPPORT

(По желанию) включить поддержку длинных имен файлов при работе через COM порт.

#define LONG_FILENAME_HOST_SUPPORT#define LONG_FILENAME_WRITE_SUPPORT
Поддержка юникода и дополнительних наборов символов на момент написания статьи ещё ожидает включения в основной репозиторий.https://github.com/MarlinFirmware/Marlin/pull/25073

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

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

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

9
Комментарии к статье
Металлообработка 2025 Реклама
Металлообработка 2025 Реклама