Летом 2016 года компания Winstar анонсировала несколько моделей цветных TFT-дисплеев с нестандартными разрешениями. Одним из них является дисплей WF39ATIASDNN0# с разрешением 480х128 точек. В настоящем обзоре покажем не сложный пример управления данным дисплеем с помощью популярного графического контроллера FT800 компании FTDI. В последнее время цветные дисплеи набирают популярность. Но одной из проблем при смене монохромных графических ЖК на цветной TFT являются ограниченный выбор по разрешению последних. TFT-дисплеи с диагоналями видимой области до 3.5” обычно имеют разрешение 320х240 точек, дисплеи 4.3”– 480х272, 5” и 7” - 800х480. Замена монохромного ЖК-дисплея на цветной TFT потребует внесения изменений в управление дисплеем, а также изменений в конструкции корпуса. Новая линейка дисплеев Winstar WF39A, WF46A и WF52 – это попытка расширить стандартный ряд TFT-дисплеев моделями, размеры которых будут наиболее близки к размерам монохромных дисплеев. Например, дисплей WF39ATIASDNN0# имеет разрешение 480 х 128 точек, размер видимой области - 95,04 мм х 25,34 мм, размеры модуля (без шлейфа) – 105,5 мм х 40,64 мм х 2,95 мм:
Это позволяет рассматривать его в качестве альтернативы монохромному WO24064C с разрешением 240 х 64 точки, размером видимой области - 106,20 мм х 31,20 мм, размером модуля (без шлейфа) – 111,4 мм х 45,5 мм (высота зависит от конкретной модели):
Кроме физических размеров, ограничением при замене монохромного дисплея на цветной являются большие требования к ресурсам управляющего МК. В случаях, когда требуется замена монохромного дисплея на цветной без замены МК, могут помочь графические контроллеры FTDI серии FT8xx. Эти контроллеры полностью реализуют управление TFT-дисплеями с RGB-интерфейсом с минимальной нагрузкой на МК. Далее опишем не сложный пример, в котором на экран дисплея WF39ATIASDNN0# будем выводить цифры разного цвета. В примере будем использовать отладочную плату FTDI VM800C43A-N на базе графического контроллера FT800, который поддерживает работу с дисплеями с разрешениями до 512 х 512 точек. Управление контроллером будет осуществляться с ПК, программа будет реализована в Visual Studio. Обмен между ПК и платой VM800C43A будет происходить с помощью кабеля С232HM-DDHSL-0, с помощью которого будет реализовано преобразование USB-SPI. Подключение кабеля С232HM-DDHSL-0 к плате контроллера VM800C43A следующее:
Наименование контакта на плате VM800C |
SCK |
MOSI |
MISO |
CS# |
INT# |
PD# |
GND |
Цвет провода кабеля C232HM |
Оранжевый |
Желтый |
Зеленый |
Коричневый |
Фиолетовый |
Синий |
Черный |
Питание модуля можно осуществлять от внешнего источника или по USB, для чего на плате предусмотрены дополнительные разъемы.
Из программных средств, кроме Visual Studio, нам потребуется утилита FTDI – Screen Editor. C ее помощью мы осуществим конвертирование шрифта и создадим шаблон программы для Visual Studio. Сам процесс работы с данной утилитой можно посмотреть в статьях, опубликованных ранее, например, здесь.
Для работы с дисплеем будут использоваться следующие настройки:
ft_int16_t FT_DispWidth = 480;
ft_int16_t FT_DispHeight = 272;
ft_int16_t FT_DispHCycle = 548;
ft_int16_t FT_DispHOffset = 43;
ft_int16_t FT_DispHSync0 = 0;
ft_int16_t FT_DispHSync1 = 41;
ft_int16_t FT_DispVCycle = 292;
ft_int16_t FT_DispVOffset = 6;
ft_int16_t FT_DispVSync0 = 0;
ft_int16_t FT_DispVSync1 = 10;
ft_uint8_t FT_DispPCLK = 5;
ft_char8_t FT_DispSwizzle = 0;
ft_char8_t FT_DispPCLKPol = 1;
ft_char8_t FT_DispCSpread = 0;
Обратите внимание, что разрешение дисплея должно быть указано 480 х 272 точки тогда, как реальное его разрешение 480 х 128 точек. Изображение для данного дисплея формируется, также как и для дисплея с разрешением 480 х 272 точки. Видимая область экрана начинается со строки 143, т.е координата верхнего левого угла - 0,143. Это единственное отличие в работе с дисплеем WF39ATIASDNN0# с разрешением 480 х 128 точек от дисплеев с разрешением 480 х 272 точки.
Код для вывода символов на экран следующий:
Ft_Gpu_CoCmd_Dlstart(phost);
Ft_App_WrCoCmd_Buffer(phost, CLEAR(1, 1, 1));
Ft_App_WrCoCmd_Buffer(phost, COLOR_RGB(255, 255, 127));
Ft_Gpu_CoCmd_Text(phost, 16, 193, 0, 0, "0");
Ft_App_WrCoCmd_Buffer(phost, COLOR_RGB(8, 32, 255));
Ft_Gpu_CoCmd_Text(phost, 47, 193, 0, 0, "1");
Ft_App_WrCoCmd_Buffer(phost, COLOR_RGB(255, 0, 4));
Ft_Gpu_CoCmd_Text(phost, 103, 193, 0, 0, "2");
Ft_App_WrCoCmd_Buffer(phost, COLOR_RGB(45, 195, 0));
Ft_Gpu_CoCmd_Text(phost, 152, 193, 0, 0, "3");
Ft_App_WrCoCmd_Buffer(phost, COLOR_RGB(255, 252, 252));
Ft_Gpu_CoCmd_Text(phost, 206, 193, 0, 0, "4");
Ft_App_WrCoCmd_Buffer(phost, COLOR_RGB(179, 117, 255));
Ft_Gpu_CoCmd_Text(phost, 260, 193, 0, 0, "5");
Ft_App_WrCoCmd_Buffer(phost, COLOR_RGB(171, 255, 161));
Ft_Gpu_CoCmd_Text(phost, 316, 193, 0, 0, "6");
Ft_App_WrCoCmd_Buffer(phost, COLOR_RGB(255, 202, 94));
Ft_Gpu_CoCmd_Text(phost, 363, 193, 0, 0, "7");
Ft_App_WrCoCmd_Buffer(phost, COLOR_RGB(255, 190, 215));
Ft_Gpu_CoCmd_Text(phost, 419, 192, 0, 0, "8");
Ft_App_WrCoCmd_Buffer(phost, DISPLAY());
Ft_Gpu_CoCmd_Swap(phost);
Ft_App_Flush_Co_Buffer(phost);
В результате выполенения на экране будет следующее изображение:
Дополнительные материалы:
1. Исходный проект для Visual Studio (архив)
2. Техническое описание дисплея WF39A