Как проверить графический дисплей

Обновлено: 07.07.2024

Информация Неисправность Прошивки Схемы Справочники Маркировка Корпуса Сокращения и аббревиатуры Частые вопросы Полезные ссылки

Справочная информация

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

  • Диагностика
  • Определение неисправности
  • Выбор метода ремонта
  • Поиск запчастей
  • Устранение дефекта
  • Настройка

Неисправности

Все неисправности по их проявлению можно разделить на два вида - стабильные и периодические. Наиболее часто рассматриваются следующие:

  • не включается
  • не корректно работает какой-то узел (блок)
  • периодически (иногда) что-то происходит

О прошивках

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

На сайте существуют разделы с прошивками (дампами памяти) для микросхем, либо для обновления ПО через интерфейсы типа USB.

Схемы аппаратуры

Начинающие ремонтники часто ищут принципиальные схемы, схемы соединений, пользовательские и сервисные инструкции. Это могут быть как отдельные платы (блоки питания, основные платы, панели), так и полные Service Manual-ы. На сайте они размещены в специально отведенных разделах и доступны к скачиванию гостям, либо после создания аккаунта:

Справочники

На сайте Вы можете скачать справочную литературу по электронным компонентам (справочники, таблицу аналогов, SMD-кодировку элементов, и тд.).

Marking (маркировка) - обозначение на электронных компонентах

Современная элементная база стремится к миниатюрным размерам. Места на корпусе для нанесения маркировки не хватает. Поэтому, производители их маркируют СМД-кодами.

Package (корпус) - вид корпуса электронного компонента

При создании запросов в определении точного названия (партномера) компонента, необходимо указывать не только его маркировку, но и тип корпуса. Наиболее распостранены:

  • DIP (Dual In Package) – корпус с двухрядным расположением контактов для монтажа в отверстия
  • SOT-89 - пластковый корпус для поверхностного монтажа
  • SOT-23 - миниатюрный пластиковый корпус для поверхностного монтажа
  • TO-220 - тип корпуса для монтажа (пайки) в отверстия
  • SOP (SOIC, SO) - миниатюрные корпуса для поверхностного монтажа (SMD)
  • TSOP (Thin Small Outline Package) – тонкий корпус с уменьшенным расстоянием между выводами
  • BGA (Ball Grid Array) - корпус для монтажа выводов на шарики из припоя

Краткие сокращения

При подаче информации, на форуме принято использование сокращений и аббревиатур, например:

Сокращение Краткое описание
LEDLight Emitting Diode - Светодиод (Светоизлучающий диод)
MOSFETMetal Oxide Semiconductor Field Effect Transistor - Полевой транзистор с МОП структурой затвора
EEPROMElectrically Erasable Programmable Read-Only Memory - Электрически стираемая память
eMMCembedded Multimedia Memory Card - Встроенная мультимедийная карта памяти
LCDLiquid Crystal Display - Жидкокристаллический дисплей (экран)
SCLSerial Clock - Шина интерфейса I2C для передачи тактового сигнала
SDASerial Data - Шина интерфейса I2C для обмена данными
ICSPIn-Circuit Serial Programming – Протокол для внутрисхемного последовательного программирования
IIC, I2CInter-Integrated Circuit - Двухпроводный интерфейс обмена данными между микросхемами
PCBPrinted Circuit Board - Печатная плата
PWMPulse Width Modulation - Широтно-импульсная модуляция
SPISerial Peripheral Interface Protocol - Протокол последовательного периферийного интерфейса
USBUniversal Serial Bus - Универсальная последовательная шина
DMADirect Memory Access - Модуль для считывания и записи RAM без задействования процессора
ACAlternating Current - Переменный ток
DCDirect Current - Постоянный ток
FMFrequency Modulation - Частотная модуляция (ЧМ)
AFCAutomatic Frequency Control - Автоматическое управление частотой

Частые вопросы

Как мне дополнить свой вопрос по теме Проверка исправности ЖК дисплеев.?

После регистрации аккаунта на сайте Вы сможете опубликовать свой вопрос или отвечать в существующих темах. Участие абсолютно бесплатное.

Кто отвечает в форуме на вопросы ?

Ответ в тему Проверка исправности ЖК дисплеев. как и все другие советы публикуются всем сообществом. Большинство участников это профессиональные мастера по ремонту и специалисты в области электроники.

Как найти нужную информацию по форуму ?

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

По каким еще маркам можно спросить ?

По любым. Наиболее частые ответы по популярным брэндам - LG, Samsung, Philips, Toshiba, Sony, Panasonic, Xiaomi, Sharp, JVC, DEXP, TCL, Hisense, и многие другие в том числе китайские модели.

Какие еще файлы я смогу здесь скачать ?

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

Полезные ссылки

Здесь просто полезные ссылки для мастеров. Ссылки периодически обновляемые, в зависимости от востребованности тем.

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

Возникли проблемы? Используйте одну из утилит для настройки и калибровки экрана, проверки на наличие ошибок и повреждённых пикселей.

Ultra Mon


С помощью Ultra Mon вы получаете возможность раздельного вывода на мониторы визуальной информации в различных спектрах. Таких спектров три: XYZ, RGB, CMYK. Эта программа — настоящая находка для экспертов в области фотографии и дизайна. Встроенный плагин позволяет отрегулировать параметры вывода информации в одном из двух вариантов:

  • Упрощённая калибровка — следуйте рекомендациям «Мастера настройки».
  • Настройка вручную. Применяя этот способ, вы можете пошагово с большой точностью выставить необходимые параметры вывода.

Если вы хотите посмотреть, как снимки будут отображаться на остальных экранах, запустите эмуляцию уменьшенной цветовой гаммы. Есть лишь один недостаток — утилита платная, начиная с 11-го дня работы (до этого 10 дней действует пробная версия приложения).

PassMark Monitor Test


Это одно из лучших приложений для проверки качества работы экрана с множеством функций. Вы сможете проверить:

  • Быстродействие матрицы;
  • Разнообразие цветов на мониторе;
  • Системную поддержку цветовых спектров.

Работая с PassMark Monitor Test, начните с проверки изображения на разных уровнях цветности — от 8 до 32 бит. Таким образом определяют наличие дефектов благодаря фактору возникновения градиентных переходов в условиях понижения цветового спектра.

Dead Pixel Tester


Хотите выявить битые пиксели на большинстве типов матриц? Стоит использовать приложение Dead Pixel Tester, работающее даже с труднотестируемыми OLED- и VA-экранами. Нет необходимости установки приложения в систему.

После включения вы увидите, что автоматически запущен ряд тестов, определяющих наличие сбоев на матричном уровне. Софт совместим с дефолтными драйверами Windows — необязательно инсталлировать графические драйвера.

Если у вас не TFT, OLED или LCD монитор, то эта статья не для вас. Ведь проблема битых или застрявших пикселей актуальна только для этих моделей. А если вы «счастливчик», добро пожаловать под кат. All-In-One Person Константин Докучаев


Nokia Monitor Test

Данное приложение автоматически проверяет монитор и видеокарту. Кроме этого, можно выполнить настройку сравнения с эталонами в различных спектрах.

Из интерфейса вы не можете напрямую варьировать режим работы экрана, а конкретно — менять глубину цветовой гаммы и разрешение, задать, как часто будут обновляться данные. Вам надо будет настраивать эти опции с помощью панели графического адаптера.

Power Strip


Даёт возможность настройки монитора по множеству параметров (их более двухсот). Среди них есть и настройки, которые по умолчанию не поддерживаются. Например, Power Strip позволяет менять расположение изображения, когда вы работаете на ноутбуке с «родной» видеокартой Intel.

Дополнительные функции Power Strip:

  • Плавная настройка частоты мерцания;
  • Снижение количества потребляемой энергии при работе на OLED-мониторе. Это можно сделать путём полного отключения пикселей, таким образом вы вытесняете серый спектр в чёрный;
  • При одновременном использовании нескольких адаптеров графики есть возможность отдельно настраивать цветовую гамму, яркость или контрастность для каждого из подключённых дисплеев.
  • Платная лицензия.
  • Изображение надстраивают на программном уровне, так что Фоновое использование снижает производительность.

Actual Multiple Monitors


С её помощью можно улучшить работу с несколькими мониторами. Задайте для каждого дисплея личный файл настроек. Вы сможете переключаться между ними, когда понадобится. Программа оптимальна для работы на ноутах с возможным подключением внешних экранов. Вам не придётся настраивать их заново при повторном использовании, софт будет обращаться к сохранённым настройкам. Есть также ряд полезных дополнительных функций:

  • Свободное размещение панели управления — на двух мониторах из трёх;
  • При необходимости вывода изображения на все экраны, пропорции фиксируются синхронно на всех мониторах.
  • Свободное расположение меню «Пуск».

Время работы trial-версии — месяц, ПО бесплатное условно.

IsMyLsdOK


Необходимо проверить качество подсветки на LCD- и LED-мониторах? Используйте софт IsMyLsdOK. С помощью проги вы сможете найти засвеченные места и проблемные зоны, возникшие из-за неправильного распределения подсветки. Для TFT- и TN-мониторов есть даже автоматический режим поиска и устранения битых пикселей. Не панацея — помогает не всегда. ПО можно запустить с помощью файла exe.

TFT Монитор Тест


Бесплатное российское ПО. Содержит все тесты, которые необходимы для глобальной проверки самых важных характеристик дисплея. Среди них — цветность, уровни яркости и контрастности. Также, запустив ПО, можно получить сведения об устройствах данного компьютера, которые отвечают за изображение.

Подводя итоги, можно сказать, что нет ни одного ПО, которое можно считать универсальным в области диагностики и калибровки монитора. Одни программы оптимальны для поиска битых пикселей, другие — для настройки цветовой гаммы. Для того чтобы повысить качество «картинки» на любом дисплее, следует приложения использовать совокупно, но с умом.

Давно прошли те времена, когда наличие цветного дисплея в телефоне являлось показателем роскоши, а его размер казался нам достаточным, если занимал хотя бы половину всего гаджета. Вытесняя остальные элементы с лицевой части телефона, дисплей постепенно только увеличивался в размере и занимал все бо́льшую площадь, пока телефон не превратился в один сплошной дисплей. И такие понятия, как «смартфон» и «экран смартфона», сегодня, вообщем-то, стали неразрывны.

Что такое пиксели

Как известно, светочувствительная матрица дисплея любого смартфона состоит из мельчайших объектов, называемых пикселями, каждый из которых в свою очередь состоит из трех субпикселей: красного, синего и зеленого цветов. Именно их сочетание в различных вариациях дает широкий цветовой спектр картинки, которую мы видим на экране.

В зависимости от применяемой технологии при производстве дисплеев, пиксели могут иметь небольшие различия в конструкции и структуре. Например, в ЖК дисплеях, пиксели нуждаются в фоновой подсветке, пиксели в TFT матрицах снабжены встроенными светофильтрами, а в более современных Amoled дисплеях пиксели сами способны светиться благодаря транзисторам, управляющим проходящей через них величиной тока.

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

Также дефекты пикселей могут проявляться и в процессе эксплуатации из-за неправильного обращения: механического воздействия, перегрева и низких температур, а также после взаимодействия с источником электромагнитного поля.

Какие дефекты пикселей возникают чаще всего

Битые пиксели, в зависимости от источника поломки, бывают застрявшими, горячими или холодными.

  • Холодные пиксели проявляются вследствие дефектов управляющего TFT слоя матрицы и отображаются как черные потухшие точки.
  • Горячие пиксели — это белые точки на цветном изображении. Такие пиксели возникают вследствие неверной зависимости выходного сигнала от управляющего.
  • Застрявшие пиксели отображаются в виде цветной точки из-за нарушения в работе транзистора ЖК матрицы, который недополучает энергию и непрерывно пропускает ток к RGB слою матрицы. Как правило, этот дефект не проявляется на OLED дисплеях.

Как проверить дисплей на битые пиксели

Перед покупкой будет не лишним проверить дисплей телефона на наличие битых пикселей. Сделать это можно как с помощью стороннего приложения, так и с помощью встроенного программного обеспечения — инженерного меню смартфона.

После этого перед вами откроется инженерное меню для тестирования смартфона в различных режимах, которое, в зависимости от устройства, тоже может выглядеть по-разному.

Обычно для вывода информации сигнального дисплея на HD44780 более чем достаточно. Но иногда нужно нарисовать картинку, график или хочется сделать красиво, с модными менюшками. Тут на помощь приходят графические дисплеи. Одним из самых простых и доступных является дисплей на контроллере KS0107 или аналоге. Например, WG12864A от Winstar. Сам дисплей вполне свободно достается, имеет довольно большой размер (диагональ около 80мм) и разрешение 128х64 пикселя. Монохромный. Цена вопроса 400-500р.


Итак, если взять тот, что у меня WG12864A-TGH-VNW то у него следующая распиновка:



К контроллеру (ATMega16 на Pinboard) я подключил все следующим образом.

Данные полностью легли на PORTA, а управление на PORTB. В качестве резистора подстройки контраста я взял многооборотный переменник, что так кстати стоит рядом для подобных случаев. Питание подсветки взял с колодки от дисплеяя. Благо там все уже готово, даже управление от транзистора есть :) Правда я ее просто включил.


Двое из ларца, одинаковых с лица. Адресация
Контроллер CS0107 он может организовать матрицу только 64х64. А у нас в дисплее вдвое большая 128х64. Значит стоят два контроллера. Один отвечает за правую половину экрана, другой за левую.
Он представляет собой этакую микросхему памяти, где все введенные данные отображаются на дисплее. Каждый бит это точка. Кстати, для отладки удобно юзать, выгружая туда разные данные, а потом разглядывая этот дамп). Карта дисплея выглядит так:

Байты укладываются в два контроллера страницами по 64 байта. Всего 8 страниц на контроллер.

Протокол обмена
Тут все просто, без каких либо изысков. Выставляем на линиях RW, DI что мы хотим сделать, линиями CS1 и CS2 выставляем к кому обращаемся. На шину данных выдаем нужное число и поднимаем-опускаем линию строба. Опа! Впрочем, есть одна тонкость. Для чтения данных строб нужно дернуть дважды, т.к. предварительно данные должны попасть в регистр-защелку. Для чтения же флага состояния такой изврат не нужен. Вот примеры временных диаграм для разных режимов.

И запись. Причем запись, в отличии от чтения, можно делать сразу в оба контроллера. Конечно одновременно писать данные в контроллер смысла имеет мало, разве что захочишь двойную картику получить :) А вот команды обычно пишут срзау в оба.

Временные диаграммы, т.е. сдвиг фронтов между собой по времени может быть разным у разных контроллеров. Где то быстрей, где то медленней. Но в целом 1мкс обычно хватает. В реале обычно меньше. Лучше поглядеть в даташите на конкретный контроллер (не дисплей, в ДШ на дисплей обычно редко есть описание самого контроллера). Там обычно есть таблица вида:


Система команд.
Она тут простейшая.

Инициализация дисплея элементарная, в отличии от HD44780, где надо переключать режимы, включать-выключать разные курсоры и отображения.

Надо после сброса задать начальные координаты (адрес точки и страница), значение скролинга (обычно 0) и включить отображение. При включении на дисплее может быть мусор. Поэтому отображение обычно включают после очистки видеопамяти.

У меня ициализация, по командам, выглядит так:

Ну и потом еще заливка сразу в оба контроллера.

Код
Итак, приступим к коду. Чтобы было наглядней я все операции с ногами расписал в виде макросов. Заодно будет гораздо проще все перенести на другую архитектуру. Просто написав другие макросы, не правя сам код :)
Весь код можно поглядеть в нашей кодосвалке:
lcd_wg128.h
lcd_wg128.c

Покажу тут лишь характерные моменты работы с дисплеем.

Записью команд и данных занимаются следующие функции:

Чтение слова состояния делать не стал. Т.к. дисплей работает весьма шустро, что на круг ожидания можно не уходить, а просто подождать несколько тактов. Собственно этих трех функций уже достаточно для работы :) Остальное все свистоперделки и удобства.

Вроде заливки экрана:

Или установки пикселя. Причем можно загонять его в трех режимах. Просто установить, стереть или инвертировать. Координаты задаются глобальные, а вычисление адреса идет в функции:

// Процедура установки пикселя. Т.к. пиксель часть байта, то надо сначала вычислить // Контроллер, потом страницу и нужный байт. Считать этот байт. Изменить в нем только один, // нужный, бит и вернуть его на место. // На входе координаты и режим обработки пикселя (вкл, выкл, переключение) void PIXEL(u08 x,u08 y,u08 mode) < u08 CSS, row, col, byte; u08 res,read; if(y>63) // Проверяем в каком контроллере искомый пиксель < CSS = 1<<CS2; // Если У больше 63 значит во втором. Выставляем 2й col = y-64; // И отнимаем смещение, чтобы не мешалось. >else < CSS = 1<<CS1; // Иначе контроллер у нас первый. col = y; // А смещения нет. >row = x>>3; // Делим Х на 8, чтобы получить номер страницы. byte = 1<<x%8; // А остаток от деления даст нам искомый бит, который мы задвигаем // и получаем нужную нам битмаску для модификации байта. SET_ADDR(row,col,CSS); // выставляем адрес read = LCD_RD_DATA(CSS); // Читаем данные (адрес при этом ++ аппаратно). switch(mode) // В зависимости от режима < case 0: // Clear < res = read &

byte; // Накладываем сбрасывающую (NOT) маску break; > case 1: // Invert < res = read ^ byte; // Накладываем инвертирующую (ХОR) маску break; >default: // Set < res = read | byte; // Накладываем устанавливающую (OR) маску break; >> SET_ADDR(row,col,CSS); // Повторно выставляем адрес. Т.к. чтение его исказило. LCD_WR_DATA(res,CSS); // Вгоняем туда результат нашей модификации. >


Но работа с пикселями медленная штука. Это же каждый надо считать, изменить, закинуть обратно. Куча мороки. На обновление всего экрана в попиксельном режиме уйдет прорва времени. Я подсчитывал, при полной загрузке проца только на это, на заливку попиксельно всего экрана уходит чуть ли не треть секунды.

Куда эффективней работать с дисплеем блоками. Т.е. берем и последовательно записываем сразу куски страниц, на глубину в несколько байт. Например, таким образом удобно рисовать текст. Правда при попиксельном выводе, когда текст попадает между страницами получается неудобно, приходится делать вдвое больше работы. Но все равно намного быстрей чем попиксельно. На порядок!

// Запись сразу блока. Удобно для вывода строк или картинок, постранично. // На входе страница Х и колонка У. А также длина блока и адрес откуда брать данные. u08 BLOCK(u08 x,u08 y, u08 len, u16 addr) < u08 CSS,i,col; if(y>63) // Сначала вычисляем нужные нам сегмент (чип) < CSS = 1<<CS2; col = y-64; >else < CSS = 1<<CS1; col = y; >SET_ADDR(x,col,CSS); // Ставим адрес // А дальше в цикле гоним байты. Не забывая увеличивать адрес, чтобы была выборка из // памяти. Счетчик, чтобы не сбиться со счета. И номер колонки, чтобы не вылезти за границы // И вообще понимать где мы находимся. for(i=0;i!=len;i++,addr++,col++) < if(64==col) // Попутно проверяем за границы выхода из сегмента < if(CSS == (1<<CS2)) // Если случилось, и у нас второй сегмент, т.е. конец < // страницы (уже второй в этой строке) return 128; // выходим с кодом ошибки (код больше разрешения экрана) >col=0; // Иначе же обнуляем счетчик колонок. И переключаем банку CSS = 1<<CS2; // Выбрав второй сегмент экрана SET_ADDR(x,col,CSS); // И выставив новый текущий адрес > LCD_WR_DATA(pgm_read_byte(addr),CSS); // Пишем туда данные прям из флеша (таблица символов). > return y+len; // Возвращаем координату увеличиную на размер блока. >

Блочный вывод легко превращается в текстовый вывод. Надо лишь совместить таблицу символов с печаталкой блоков. И гнать данные из флеша напрямую.

// Процедура вывода строки. На входе строка, и координаты. Х в страницах, а У в точках. void LCD_putc(u08 x,u08 y,u08 *string) < u08 sym; while (*string!='\0') // Пока первый байт строки не 0 (конец ASCIIZ строки) < if(127<y) // Проверяем за границу выхода за экран. Если вылезаем < // Вот тут, кстати, можно поиграть с числом, чтобы не рубило последний символ. y=0; // То обнуляем координату точки. x++; // Выставляем следующую строку if(x>7) break; // Если экран и вниз кончился - выход. >sym = *string-0x20; // Вычисляем из ASCII кода смещение в таблице символов. // Для русского языка и цифр надо условия добавить. Т.к. // таблица там не полная, не 255 байт. y = BLOCK(x,y+1,5,(u16)symboltable+sym*5); // Закатываем этот блок. string++; // Не забывая увеличивать указатель, > >

Для еще большего ускорения можно немного оптимизировать функции ввода вывода. Убрав из хвостов возврат сигналов в первоначальное положение. У меня они больше для красоты. Да чтобы на экране анализатора было лучше видно :)

Ну и чтение-модификацию-запись делать тоже большими блоками. Загоняя, скажем, страницу в буфер, правя его там и быстро выгружая обратно.

Ну и, традиционно, архив с примером. Сделано все на ATmega16 под WinAVR GCC на Pinboard

Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!

А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.

115 thoughts on “Работа с графическим дисплеем WG12864 на базе контроллера KS0107”

TFT так просто не обработаешь, под него нужен мощный контроллер, а лучше ПЛИС и видеопамять. Так что не все так просто.

Можно да, но его надо гдето в памяти держать. Тут получается килобайт только фреймбуфер.

Мощный то и не нужен, lpc2478 или lh79520 отлично справятся, только если хранить картинки нужно, то лучше прикрутить внешний nand мега на 4

Ди, нескромный вопросик, а с чем у тебя связана работа? :)

Я уже три года как безработный О_о

А последняя работа была какая?
Ди. Раз ты тут. Скажи своей жене чтобы она занялась моим заказом :) 701 вроде.

Последний раз я был наладчиком лабораторного оборудования. До этого наладчиком станков ЧПУ, а до этого я был студентом :)

Читайте также: