микроконтроллеры от ведущих мировых производителей

Летом 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