Как найти дисплей по номеру на шлейфе



КАТАЛОГ ТОВАРОВ
Запчасти для ТСД
Карты памяти и Bluetooth
Тачскрины для панелей Siemens
Аксессуары для мобильных и КПК
Аккумуляторные батареи
Дисплеи (LCD экраны)
Дисплеи Lenovo
Дисплеи Motorola
Дисплеи Philips
Дисплеи Prestigio
Дисплеи Samsung
Дисплеи Sony Ericsson
Дисплеи Sony Xperia
Дисплеи для BlackBerry
Дисплеи для GPS навигаторов
Дисплеи для LG
Дисплеи для Nokia
Дисплеи для китайских телефонов
Дисплеи по парт-номеру
Дисплеи разные
Дисплей для Acer
Дисплей для Asus
Дисплей для Dell
Дисплей для Dopod
Дисплей для Eten
Дисплей для Fujitsu-Siemens
Дисплей для Garmin-Asus
Дисплей для Gigabyte
Дисплей для HOLUX
Дисплей для HP iPAQ
Дисплей для HTC
Дисплей для i-Mate
Дисплей для Mitac Mio
Дисплей для O2
Дисплей для Orange
Дисплей для Palm
Дисплей для Qtek
Дисплей для RoverPC
Дисплей для T-Mobile
Дисплей для UTStarcomm
Тачскрины для КПК и телефонов
Корпуса для HTC
Шлейфы / платы / клавиатуры
Запчасти для ноутбуков
Запчасти для GPS навигаторов
Запчасти для электронных книг
Запчасти для планшетов Tablet PC
Запчасти для планшетов Samsung
Запчасти для КПК
Запчасти для iPhone
Запчасти для iPod
Запчасти для iPad
Запчасти для Apple Watch
Запчасти для Sony PSP
Запчасти для Nintendo
Запчасти для PlayStation и Xbox
Запчасти Zune Microsoft
Тачскрины для Автомагнитол
Шлейфы для автомагнитол
Оборудование и инструмент для ремонта
Насадки для гравера
Охранные системы
8-965-875-4784
ПН-ПТ 10.00-15.00
Суббота
Воскресенье
Выходной
ИНФОРМАЦИЯ
AKSmob.ru в Омске
Договор публичной оферты
Политика конфиденциальности
Разница между Оригинальной запчастью и копией
Рекламная информация
Советы по магазину
Совместимость дисплеев и тачскринов
Наши баннеры
О нас
Ремонт сотовых, gps, psp, iphone в вашем городе
Оформление заказа
Доставка и оплата
Гарантии и возврат
Контакты
Ремонт тачскрина коммуникатора
Прайс-лист (Excel)
Прайс-лист (HTML)
Свяжитесь с нами
телефон: 8-965-875-4784
e-mail: shop@aksmob.ru
адрес: г.Омск
Мы в интернете:








Новинки
Дисплей LCD Экран для Nokia 6630
Дисплей LCD Экран для Nokia 6630
600 руб.
Статьи
Новые статьи (0)
Все статьи (152)
Жёсткая перезагрузка (Hard Reset) (23)
Инструкции по разборке (1)
Полезные статьи (12)
Ремонт GPS навигаторов (11)
Ремонт автомагнитол (8)
Ремонт и обслуживание iPad (10)
Ремонт и обслуживание iPhone (9)
Ремонт и обслуживание iPod (3)
Ремонт игровых приставок PSP и PS Vita (12)
Ремонт коммуникаторов и КПК (2)
Ремонт ноутбуков
Ремонт планшетов (7)
Ремонт планшетов Asus (1)
Ремонт планшетов Samsung Galaxy (18)
Ремонт приставок Nintendo (1)
Ремонт телефонов Alcatel (2)
Ремонт телефонов Asus (4)
Ремонт телефонов HTC (4)
Ремонт телефонов Huawei (1)
Ремонт телефонов LG (3)
Ремонт телефонов Nokia (1)
Ремонт телефонов Samsung (7)
Ремонт телефонов Sony (2)
Ремонт телефонов Xiaomi (3)
Ремонт телефонов ZTE (1)
Эксплуатация аккумуляторной батареи (4)
Ремонт электронных книг (2)
Опросы
Откуда Вы узнали о нашем сайте (магазине)?
Google
Rambler
Реклама в Яндексе
Яндекс
Каталоги
Форумы
От знакомых
Случайно
В программе ДубльГИС 2Gis
Наклейка на упаковке
Объявление на Avito
Объявление на Юла
Результаты | Опросы
Голосов:277

Вход в личный кабинет для постоянных клиентов:

email:

пароль:

  • Главная
  • Каталог товаров
  • Доставка
  • Оформление заказа
  • О компании
  • Новинки

  • Новости

  • Статьи
  • Контакты



Каталог товаров


  • Дисплеи (LCD экраны)
  • Дисплеи по парт-номеру
  • Дисплеи по парт-номеру

    Любые дисплеи экраны LCD для кпк и коммуникаторов

    Все дисплеи только ОРИГИНАЛ и новые !!

    Совместимость проверяйте по парт-номеру дисплея.

    Дисплей – LCD экран почтой в любую точку России!

    Дисплей 60H00010-00 (LPH8710) с тачскрином Оригинал

    Дисплей 60H00010-00 (LPH8710) с тачскрином Оригинал

    Розн.: 1700 руб.
    Опт.: 1450 руб.

    В наличии

    Купить

    Дисплей 60H000162 (LS038Y7DX01) без тачскрина Оригинал

    Дисплей 60H000162 (LS038Y7DX01) без тачскрина Оригинал

    Розн.: 2500 руб.
    Опт.: 2100 руб.

    В наличии

    Купить

    Дисплей 60H00037-01M с тачскрином

    Дисплей 60H00037-01M с тачскрином

    Розн.: 1100 руб.
    Опт.: 950 руб.

    В наличии

    Купить

    Дисплей 60H00071-00M с тачскрином

    Дисплей 60H00071-00M с тачскрином

    Розн.: 1400 руб.
    Опт.: 1100 руб.

    В наличии

    Купить

    Дисплей 60H00080-00M с тачскрином

    Дисплей 60H00080-00M с тачскрином

    Розн.: 1400 руб.
    Опт.: 1100 руб.

    В наличии

    Купить

    Дисплей 60H00088 Оригинал

    Дисплей 60H00088 Оригинал

    Розн.: 700 руб.
    Опт.: 500 руб.

    В наличии

    Купить

    Дисплей 60H00108-00M без тачскрина

    Дисплей 60H00108-00M без тачскрина

    Розн.: 1650 руб.
    Опт.: 1350 руб.

    В наличии

    Купить

    Дисплей 60H00111-00M

    Дисплей 60H00111-00M

    Розн.: 1400 руб.
    Опт.: 1200 руб.

    В наличии

    Купить

    Дисплей 60H00166

    Дисплей 60H00166

    Розн.: 1500 руб.
    Опт.: 1300 руб.

    В наличии

    Купить

    Дисплей 60H00287-00P Оригинал

    Дисплей 60H00287-00P Оригинал

    Розн.: 1500 руб.
    Опт.: 1300 руб.

    В наличии

    Купить

    Дисплей 60H00288-00P Оригинал

    Дисплей 60H00288-00P Оригинал

    Розн.: 1500 руб.
    Опт.: 1300 руб.

    В наличии

    Купить

    Дисплей 60H00391-00P Оригинал

    Дисплей 60H00391-00P Оригинал

    Розн.: 1800 руб.
    Опт.: 1600 руб.

    Нет в наличии

    Купить

    Показано 112 (всего 46 позиций) Страницы:  1  2  3  4  Следующая 
    Показать на одной странице

    Как узнать парт номер тачскрина, сенсорного стекла, дисплея?

    Как разобрать планшет и узнать где находится парт номер тачскрина, сенсорного стекла?

    Как узнать модель тачскрина на планшете? Как выбрать тачскрин для планшета? Какой тачскрин подойдет для планшета аналог? Как узнать какой тачскрин подходит для китайского планшета? Как Разобрать планшет? Как узнать номер тачскрина? Парт номер на планшете?

    Разбираем планшет и узнаем номер тачскрина, сенсорного стекла, сенсорного тачскрина.

    Возьмем для примера планшет фирмы IconBit

    как узнать номер тачскрина на планшете?Как разобрать планшет?

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

    Разбираем планшетРазбираем планшет при помощи пластиковой карты

    Аккуратно вставляем пластикувую карту между задней крышкой и корпусом планшета и проводим по контору.

    Планшет, ремонт, разборка, запчасти.

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

    Где находится парт номер тачскринаНомер на шлейфе тачскрина

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

    планшет внутри

    Аккуратно открываем черную защелку вверх и отсоединяем шлейф.Какой тачскрин подойдет для планшета аналог?

    Как узнать какой тачскрин подходит для китайского планшета?

    Все готово!

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

    Что такое парт-номер и в чем его особенность

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

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

    Специфика поиска матрицы планшета по парт-номеру

    Самым простым вариантом, как можно подобрать экран для планшета, является поиск по его модели. Для этого необходимо в строке поиска Яндекс или Google набрать название планшета (оно указано на задней крышке гаджета или на коробке) и получить в результате множество ссылок на продавцов, у которых такой дисплей имеется или был (на момент поиска его может не быть в наличии).

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

    • Матрицу;
    • Шлейф матрицы;
    • Специальную наклейку.

    После разбора девайса возникает еще одна проблема – на матрице/шлейфе/наклейке можно встретить множество цифро-буквенных комбинаций, определить среди которых именно пар-номер не так просто. Для определения именно парт-номера, необходимо внимательно изучить все имеющиеся надписи в поисках трехзначного числа, обозначающего диагональ дисплея. Например семидюймовому дисплею соответствует маркировка 070, восьмидюймовому – 080, а десятидюймовому – 101. В парт-номере также зашифрован код изготовителя матрицы:

    Сокращения производителей матриц
    Acer L
    AU Optronics B
    ChiMei N
    Chunghwa CLAA
    HannStar HSD
    Hitachi TX
    IBM (IDTech) IT или IA
    LG Philips LP
    LG Display LP
    Matsushita ED
    Mitsubishi A
    NEC NL
    Quanta KT
    Samsung LT или LTN
    Sharp LQ или LM
    Sanyo – Torisan ТМ или LMJK
    Toshiba LTM или LTD
    Unipac UB

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

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

    Парт-номер матрицы планшета

    партт-номер дисплея планшета

    партномер матрицы

    партномер экрана планшета

    партномер дисплея где

    где номер дисплея планшета

    партномер дисплея

    где найти партномер тачскрина планшета

    партномер экрана планшета

    Парт-номер матрицы планшета

    Когда есть только дисплей и больше ничего

    Время на прочтение
    11 мин

    Количество просмотров 16K

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

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

    Что приходит в голову, когда в руках дисплей от мобильного телефона, модель которого известна? Во-первых, как и в любом случае, поискать, может кто-то его уже подключил. В данном случае дисплей от телефона ZTE R221. По крайней мере, так сообщил продавец с барахолки. После недолгих поисков я понял, что подключать, видимо, придётся самому. Не беда – поищем схему телефона. Обычно я ищу по ключевым словам “схема”, “schematic”, “sch”, “service manual”, “repair manual” или как-то ещё. Также иногда хорошо поискать на тематических сайтах, где выкладывают множество мануалов для разной техники. После всего можно попытать счастья на китайских сайтах. Благо есть переводчик гугл. С китайскими сайтами я пока не сильно освоился, но там бывает много интересного. А вы как ищете информацию? Поделитесь в комментариях.

    Может я не умею искать, но схему я так и не нашёл. Немного отвлекусь и скажу, что поиск информации – это ключ к успеху. А ещё это целое искусство. Пока пробовал разгадывать экраны (и не только) многому научился в смысле поиска, но также ещё лучше почувствовал, что я ещё очень многого не умею.

    Ладно, нет схемы, так нет. Соберём побольше информации. Что у нас есть? Известна модель телефона, посмотрим характеристики экрана телефона. Разрешение 160×128 (1.8″), TFT, 65536 цв. Также у нас в руках есть сам дисплей, а это очень много.

    Ещё фото экрана

    На шлейфе видим надпись BTL181216-358L. Пробуем забить в поиск, авось повезёт. Хотя часто это бесполезно. Среди прочих выдало сайт panelook. Правда экран тут не точно такой, как у нас а немного другой, BTL181216-353L. Код отличается лишь на одну цифру, кол-во контактов другое (здесь 35, а у нас 20). Самое интересное на этой странице – это фраза “Built-in ST7735R driver IC “. Одна цифра, да ещё в конце кода – это немного, поэтому имеет смысл предположить, что у нас такой же драйвер. Сразу же качаем даташит на ST7735R.

    Подозреваемый обнаружен, осталось определить распиновку. Как обычно, сперва ищем самое простое. Вы тоже любите земляной контакт? Земля – это наш друг. Она есть всегда и везде, и её просто найти (по крайней мере мне иное не попадалось). Далее ищем подсветку. Всё как в прошлой статье. Судя по количеству контактов у нас снова 8 битный интерфейс 8080. Далее по предварительной распиновке пробуем найти полную. Запросы приводят, в основном, на алиэкспрес, но имено такого экранчика как у нас нет. Зато есть похожие на ST7735R, но с другим количеством контактов.

    Тут мне не хотелось долго искать распиновку в интернете, и я решил посмотреть, что есть в даташите. А там у нас есть распиновка чипа на странице 5 (Chip Information). Там же приводятся его размеры. Иногда это помогает отсеять неподходящие драйверы, просто измеряя их длину и ширину. Теперь по расположению выводов микросхемы можно найти где какой контакт на шлейфе. Всё бы хорошо, только вот на шлейфе 79 контактов (около микросхемы, дорожки выведены не от всех), а у самой микросхемы 185 (со стороны шлейфа) На шлейфе даже есть надписи “1” и “79”. Очевидно, это номера контактов. Рассматривая дорожки, выходящие из микросхемы, под самодельным микроскопчиком, я никак не мог чётко понять, что куда идёт.

    Не зная что делать, я решил поискать распиновку в интернете ещё раз. Пересматривая похожие экраны на али (с драйвером ST7735R), я обратил внимание, что фото довольно качественные и на них чётко видны дорожки.

     Дисплей ST7735 14 pin SPI верх

    Дисплей ST7735 14 pin SPI верх

    И с обратной стороны:

     Дисплей ST7735 14 pin SPI низ

    Дисплей ST7735 14 pin SPI низ

    Картинки, приведенные выше уже обрезаны – выделена интересующая область. Добрый продавец привёл также распиновку. Совмещаем фото, подписываем контакты.

    Почему-то рисовал всё это я в paint, хотя удобнее было бы, пожалуй, в фотошопе. По тому, какие контакты используются в 14-выводной версии можно понять, что здесь 3-Line serial MCU Interface (стр 163 даташита). (Картинку лучше отрыть в новой вкладке и там увеличить.)

    Если у 14-выводного экрана внимательно посчитать количество дорожек, идущих от микросхемы на шлейф, то обнаружим, что их 24. А у 20-выводного экрана (т. е. у нашего) их 31. 31-24=7. А нам как раз и не хватает линий D1…D7. Тут поясню: на схеме соединений для интерфейса 3-Line serial (на картинке выше это есть) видим, что вывод D0 у нас уже есть (он же SDA), а выводы D1…D17 не используются, поэтому заземлены. А так как они расположены рядом, то от них идёт одна дорожка на земляной полигон, а не 17.

    Также обратим внимание на выводы выбора интерфейса IM0…IM2, SPI4W. Они тоже заземлены. Дорожки от них тоже должны идти на шлейф. Снова просматривая полную распиновку чипа, замечаем, что вывод IM2 (заземлён, т. к. 3-Line serial) находится рядом с выводом D0 (не заземлён, т. к. это вывод SDA). Так, так, а куда нужно подключать IM2, чтобы включился режим 8бит? Давайте-ка посмотрим. Находим в даташите такую картинку.

    Вот оно! По выводу IM2 мы теперь вычислим все остальные, но уже на нашем 20-выводном экране. Рисуем дальше, опираясь на 14-выводной экран и на расположение выводов микросхемы (картинку снова лучше открыть в новой вкладке и увеличить).

    Выглядит страшно, но рисовать это было не сложно и не долго. В принципе, в пэинте тоже можно работать. Картинки не редактировал, а выложил в том виде, как оно было.

    В даташите также находим, что у микросхемы 2 отдельных вывода питания – VDD, VDDIO. Определить где VDDIO просто – к нему в режиме 8 бит подключается IM2. Также сразу глянем, какое напряжение нужно подавать на выводы питания.

    Получилась такая распиновка

    Контроллер ST7735R
    1- GND
    2- /Reset
    3- DC
    4- WR
    5- RD
    6- D0
    7- D1
    8- D2
    9- D3
    10- D4
    11- D5
    12- D6
    13- D7
    14- CS
    15- VDDIO (+) (1.65V~3.7V (VDDI ≤ VDD))
    16- Конец резистора, подцепленного другим выводом к VDDIO. Видимо для идентификации модели экрана
    17- VDD (+) (2.3V~4.8V)
    18- A (LED+) (к +3.3В через резистор)
    19- K (LED-)
    20- GND

    Подключить экранчик можно и к Ардуино, т. к. библиотек для ST7735R хватает. К Ардуино нужно подключать через преобразователь логических уровней, т. к. 5 В для этого экрана много. Я использовал преобразователь, который нашёл как-то на этом сайте. Проект мне понравился и я решил его повторить, немного изменив под свои детальки. Между прочим, там много чего есть интересного по дисплеям, по обратной разработке и прочему.

    У меня получилась такая платка

    Не помню уже точно, какой я тогда использовал скетч. Это была какая-то демо программа для ST7735R по 8-битной шине. Пробовал запустить другой скетч – экран ожил, но показывал как-то криво. В итоге я решил просто переделать на stm32. Экран показал следующее:

    На всякий случай код для stm32f103c8t6

    /* USER CODE BEGIN Header */
    /**
      ******************************************************************************
      * @file           : main.c
      * @brief          : Main program body
      ******************************************************************************
      * @attention
      *
      * <h2><center>&copy; Copyright (c) 2022 STMicroelectronics.
      * All rights reserved.</center></h2>
      *
      * This software component is licensed by ST under BSD 3-Clause license,
      * the "License"; You may not use this file except in compliance with the
      * License. You may obtain a copy of the License at:
      *                        opensource.org/licenses/BSD-3-Clause
      *
      ******************************************************************************
      */
    /* USER CODE END Header */
    /* Includes ------------------------------------------------------------------*/
    #include "main.h"
    
    /* Private includes ----------------------------------------------------------*/
    /* USER CODE BEGIN Includes */
    #include "stm32f1xx_ll_gpio.h"
    /* USER CODE END Includes */
    
    /* Private typedef -----------------------------------------------------------*/
    /* USER CODE BEGIN PTD */
    
    /* USER CODE END PTD */
    
    /* Private define ------------------------------------------------------------*/
    /* USER CODE BEGIN PD */
    /* USER CODE END PD */
    
    /* Private macro -------------------------------------------------------------*/
    /* USER CODE BEGIN PM */
    
    /* USER CODE END PM */
    
    /* Private variables ---------------------------------------------------------*/
    
    /* USER CODE BEGIN PV */
    //  LCD_RST
    #define LCD_RST1  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0,GPIO_PIN_SET);
    #define LCD_RST0  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0,GPIO_PIN_RESET);
    //   LCD_DC
    #define LCD_DC1  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1,GPIO_PIN_SET);
    #define LCD_DC0  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1,GPIO_PIN_RESET);
    //   LCD_WR
    #define LCD_WR1  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2,GPIO_PIN_SET);
    #define LCD_WR0  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2,GPIO_PIN_RESET);
    //   LCD_RD
    #define LCD_RD1  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3,GPIO_PIN_SET);
    #define LCD_RD0  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3,GPIO_PIN_RESET);
    //  LCD_CS
    #define LCD_CS1   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4,GPIO_PIN_SET);
    #define LCD_CS0   HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4,GPIO_PIN_RESET);
    
    //Connect d0...d7  reset DC WR  RD  CS
    //     to b3...b10 A0    A1 A2  A3  A4
    /* USER CODE END PV */
    
    /* Private function prototypes -----------------------------------------------*/
    void SystemClock_Config(void);
    static void MX_GPIO_Init(void);
    /* USER CODE BEGIN PFP */
    
    /* USER CODE END PFP */
    
    /* Private user code ---------------------------------------------------------*/
    /* USER CODE BEGIN 0 */
    void lcd_sendbyte(uint8_t byte)//8080 8 bit protocol
    {
    	LCD_CS0;
    	LCD_WR0;
    	//lcd d0 connected to pin b3, d1 to d4, that is why byte shifted by 3	 ...
    	LL_GPIO_WriteOutputPort(GPIOB, byte<<3);
    	LCD_WR1;//The display writes D[17:0] lines when there is a rising edge of WRX
    	LCD_CS1;
    }
    void lcd_sendcmd(uint8_t cmd)
    {
    	LCD_DC0;
    	lcd_sendbyte(cmd);
    }
    void lcd_senddata(uint8_t data)
    {
    	LCD_DC1;
    	lcd_sendbyte(data);
    }
    void lcd_draw_pixel(uint8_t x, uint8_t y, uint16_t color)
    {
    	lcd_sendcmd(0x2A);//Column adress set
    	lcd_senddata(0x00);
    	lcd_senddata(x);
    	
    	lcd_sendcmd(0x2B);//Row Address Set
    	lcd_senddata(0x00);
    	lcd_senddata(y);
    	
    	lcd_sendcmd(0x2C);//Memory Write 
    	lcd_senddata((color & 0xFF00)>>8);//higher byte
    	lcd_senddata(color & 0x00FF);//lower byte
    }
    void lcd_at(uint8_t start_x, uint8_t start_y, uint8_t stop_x, uint8_t stop_y)
    {
    	lcd_sendcmd(0x2A);
    	lcd_senddata(0x00);
    	lcd_senddata(start_x);
    	lcd_senddata(0x00);
    	lcd_senddata(stop_x);
    	
    	lcd_sendcmd(0x2B);
    	lcd_senddata(0x00);
    	lcd_senddata(start_y);
    	lcd_senddata(0x00);
    	lcd_senddata(stop_y);
    }
    
    /* USER CODE END 0 */
    
    /**
      * @brief  The application entry point.
      * @retval int
      */
    int main(void)
    {
      /* USER CODE BEGIN 1 */
    
      /* USER CODE END 1 */
    
      /* MCU Configuration--------------------------------------------------------*/
    
      /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
      HAL_Init();
    
      /* USER CODE BEGIN Init */
    
      /* USER CODE END Init */
    
      /* Configure the system clock */
      SystemClock_Config();
    
      /* USER CODE BEGIN SysInit */
    
      /* USER CODE END SysInit */
    
      /* Initialize all configured peripherals */
      MX_GPIO_Init();
      /* USER CODE BEGIN 2 */
    	//here my functions
    	//inicializaciya
      LCD_RD1;
      LCD_CS0;            // CS=0   
      LCD_RST0;           // RST=0 
    
      HAL_Delay(120);      
    
      LCD_RST1;           // RST=1
      HAL_Delay(120);  
    
       
      lcd_sendcmd(0x11); // Sleep Out & Booster On 
    
      HAL_Delay(120);      // 
    
      lcd_sendcmd (0x3A); // Color mode (Interface Pixel Format)
      lcd_senddata(0x05); // 16-bit/pixel   
    	
    	//lcd_sendcmd (0x20); // Display inversion off
    	lcd_sendcmd (0x21); // Display inversion on
    	
      lcd_sendcmd (0x29); // Display On
    	
    	unsigned char y;
      unsigned char x;
       //  
      for (y=0;y<160;y++)
    	{
         for (x=0;x<128;x++)
    		 {
            uint16_t color=0x0;
            if (y<53) color=0xF800; //RED
            else if (y<106) color=0x07E0; //GREEN
    				else if (y<160) color=0x001F; //BLUE 				
            lcd_draw_pixel(x, y, color);
         }	
    	}
    	
    	
      /* USER CODE END 2 */
    
      /* Infinite loop */
      /* USER CODE BEGIN WHILE */
      while (1)
      {
    		
    	/*	for (y=0;y<160;y++)
    		{
    			for (x=0;x<128;x++)
    			{
    				uint16_t color=0x0;//don`t what is this color, but drawn white
    				lcd_draw_pixel(x, y, color);
    			}
    		}
    		
    		HAL_Delay(120);  
    		
    		lcd_at(0, 0, 128, 160);
    		lcd_sendcmd(0x2C);
    		for (y=0;y<160;y++)
    		{
         for (x=0;x<128;x++)
    		 {
            uint16_t color=0x0000;
            if (y<40) color=0xFF00; // 
            else  
    				{
              if (y<80) color=0x02E0; // Green 
    					else 
    					{ 
    						if (y<120) color=0x001F; 
    					} //  
    				}
            lcd_senddata((color & 0xFF00)>>8);//higher bits
    				lcd_senddata(color & 0x00FF);//lower bits
          }	
    	}
    		
    	HAL_Delay(120);  
    	
    	lcd_at(0, 0, 128, 160);
    	lcd_sendcmd(0x2C);	
    	for (y=0;y<160;y++)
    	{
        for (x=0;x<128;x++)
    		{
    			uint16_t color=0xFF00;
    			lcd_senddata((color & 0xFF00)>>8);//higher bits
    			lcd_senddata(color & 0x00FF);//lower bits
    		}
    	}
    	*/
    	
        /* USER CODE END WHILE */
    
        /* USER CODE BEGIN 3 */
      }
      /* USER CODE END 3 */
    }
    
    /**
      * @brief System Clock Configuration
      * @retval None
      */
    void SystemClock_Config(void)
    {
      RCC_OscInitTypeDef RCC_OscInitStruct = {0};
      RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
    
      /** Initializes the RCC Oscillators according to the specified parameters
      * in the RCC_OscInitTypeDef structure.
      */
      RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
      RCC_OscInitStruct.HSEState = RCC_HSE_ON;
      RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
      RCC_OscInitStruct.HSIState = RCC_HSI_ON;
      RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
      RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
      RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL9;
      if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
      {
        Error_Handler();
      }
      /** Initializes the CPU, AHB and APB buses clocks
      */
      RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
                                  |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
      RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
      RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
      RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
      RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
    
      if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK)
      {
        Error_Handler();
      }
    }
    
    /**
      * @brief GPIO Initialization Function
      * @param None
      * @retval None
      */
    static void MX_GPIO_Init(void)
    {
      GPIO_InitTypeDef GPIO_InitStruct = {0};
    
      /* GPIO Ports Clock Enable */
      __HAL_RCC_GPIOD_CLK_ENABLE();
      __HAL_RCC_GPIOA_CLK_ENABLE();
      __HAL_RCC_GPIOB_CLK_ENABLE();
    
      /*Configure GPIO pin Output Level */
      HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
                              |GPIO_PIN_4, GPIO_PIN_RESET);
    
      /*Configure GPIO pin Output Level */
      HAL_GPIO_WritePin(GPIOB, GPIO_PIN_10|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
                              |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9, GPIO_PIN_RESET);
    
      /*Configure GPIO pins : PA0 PA1 PA2 PA3
                               PA4 */
      GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3
                              |GPIO_PIN_4;
      GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
      HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    
      /*Configure GPIO pins : PB10 PB3 PB4 PB5
                               PB6 PB7 PB8 PB9 */
      GPIO_InitStruct.Pin = GPIO_PIN_10|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5
                              |GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
      GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
      GPIO_InitStruct.Pull = GPIO_NOPULL;
      GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
      HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
    
    }
    
    /* USER CODE BEGIN 4 */
    
    /* USER CODE END 4 */
    
    /**
      * @brief  Period elapsed callback in non blocking mode
      * @note   This function is called  when TIM2 interrupt took place, inside
      * HAL_TIM_IRQHandler(). It makes a direct call to HAL_IncTick() to increment
      * a global variable "uwTick" used as application time base.
      * @param  htim : TIM handle
      * @retval None
      */
    void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
    {
      /* USER CODE BEGIN Callback 0 */
    
      /* USER CODE END Callback 0 */
      if (htim->Instance == TIM2) {
        HAL_IncTick();
      }
      /* USER CODE BEGIN Callback 1 */
    
      /* USER CODE END Callback 1 */
    }
    
    /**
      * @brief  This function is executed in case of error occurrence.
      * @retval None
      */
    void Error_Handler(void)
    {
      /* USER CODE BEGIN Error_Handler_Debug */
      /* User can add his own implementation to report the HAL error return state */
    
      /* USER CODE END Error_Handler_Debug */
    }
    
    #ifdef  USE_FULL_ASSERT
    /**
      * @brief  Reports the name of the source file and the source line number
      *         where the assert_param error has occurred.
      * @param  file: pointer to the source file name
      * @param  line: assert_param error line source number
      * @retval None
      */
    void assert_failed(uint8_t *file, uint32_t line)
    {
      /* USER CODE BEGIN 6 */
      /* User can add his own implementation to report the file name and line number,
         tex: printf("Wrong parameters value: file %s on line %drn", file, line) */
      /* USER CODE END 6 */
    }
    #endif /* USE_FULL_ASSERT */
    
    /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
    

    Также попробовал замечальную библиотеку. Хотелось быстро подключить, особо не разбираясь с кодом (там много), поэтому быстренько повторил всё как здесь, только для своего случая, и всё опять заработало. Отличная библиотека.

    Можно ещё попробовать считать ID драйвера экрана но, сейчас это незачем, ведь экран уже ожил и показывает. Но если есть распиновка, а модель контроллера неизвестна, то это может здорово помочь. Правда, не все контроллеры такое умеют.

    А ещё целая живая ветка на форуме, где выкладывают множество материалов по экранам (большим в том числе) и даже описывают процесс обратной разработки. Там же есть “читалка”, которая считывает ID контроллера и запускает демо тест.

    Итог

    Сегодня я показал свой опыт обратной разработки экрана без использования логического анализатора и прочего. В какой-то момент казалось, что этот дисплей мне подключить не удастся. Но я решил попробовать снова и решение пришло самым неожиданным образом. Главное не унывать, но действовать. Не думать “у меня опять не получается, всё плохо”, а “что я могу сделать?” или “с чего бы начать?”. Действуйте с добрыми намерениями, и у вас тоже всё получится. И как же всё таки круто, когда удаётся решить эту довольно непростую задачу, и дисплей оживает! Всем удачных проектов!

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