Windows IoT и 1024×600 LCD

B23-0Получив от китайцев дисплей-клон китайского же дисплея от Waveshare, я проверил его работу на свежескачанном дистрибутиве Windows IoT без обновлений. В целом всё устраивало, кроме небольшого косяка с разрешением (баг с тачскрином — отдельная история) — нельзя выставить было в настройках разрешение 1024×600. В итоге проверил на 1024×768, внизу немного обрезалось конечно, но всё было читаемо. Решил, что это после обновления ОС исправится, закрыл заказ китайцу с чистой душой, мол, попозже разберусь, работает же!

Собственно вот и наступило «попозже» — поставил все обновления и … нет такого разрешения. :)

Поставил Insider сборку, обновил — интерфейс стал лучше, много чего доработали, добавили, стало удобно, но… такого китайского разрешения нет. Вот скриншоты с выбором всех доступных разрешений + частоты обновления (нажмите для увеличения):

Печально, но выход есть! Выключаем малину, вынимаем microSD флешку и подключаем к ПК. Нам будет доступен boot раздел. Выглядит это так:

B23-5

Здесь нас интересует только один файл — config.txt, в котором настраиваются первичные параметры запуска. Внутри него будет нечто подобное (все комментарии удалены):

init_uart_clock=16000000
kernel_old=1
safe_mode_gpio=8
max_usb_current=1
gpu_mem=32
hdmi_force_hotplug=1
core_freq=250
framebuffer_ignore_alpha=1
framebuffer_swap=1
disable_overscan=1
hdmi_group=2
display_rotate=0
hdmi_mode=16

Здесь не видно обозначения конкретного разрешения или частоты обновления экрана, только выбор пресетов этих настроек посредством магического номера в параметре hdmi_mode. Не густо, но исправимо. Необходимо добавить параметр hdmi_cvt, через который и задать свой режим работы дисплея, отличный от стандартных (hdmi_mode при этом закомментировать). Более подробное описание настройки свойств этого параметра и их порядок:

hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb>

  • width — ширина дисплея в пикселях;
  • height — высота дисплея в пикселях;
  • framerate — частота обновления дисплея в Гц;
  • aspect — соотношение сторон дисплея, может иметь значения 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9;
  • margins — поля, может иметь значения 0=отключены, 1=включены;
  • interlace — чередование, может иметь значения 0=построчное, 1=чересстрочное;
  • rb — reduced blanking, может иметь значения 0=выключено, 1=включено.

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

init_uart_clock=16000000
kernel_old=1
safe_mode_gpio=8
max_usb_current=1
gpu_mem=32
hdmi_force_hotplug=1
core_freq=250
framebuffer_ignore_alpha=1
framebuffer_swap=1
disable_overscan=1
hdmi_group=2
display_rotate=0

hdmi_cvt=1024 600 60 6 0 0 0
# hdmi_mode=16

Из минусов данного решения стоит отметить, что теперь НЕ показывается текущие параметры в Device Settings, и более того, становится нельзя выбрать другие разрешения для экрана оттуда. Если восстановить параметр hdmi_mode, то всё работает как ранее. Выглядит это так:

Открытый выпадающий список Display Resolution просто пустой. :)

На этом всё, удачи в освоении китайских дисплеев!

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s