Клон дисплея 7inch от Waveshare

b18-0

Для экспериментирования и наглядного управления самописным ПО на Raspberry Pi 2 я решил приобрести дисплей с тачскрином. Выбирал довольно быстро, исходя из цены и разрешения дисплея. Что из этого вышло…

Начнём с начала. Я посмотрел вообще возможные варианты дисплеев, в итоге вышла примерно такая картина (приведу ссылки на известные аналоги от Adafruit, не рекламы ради, а по причине того, что на Ali часто продавцы или лоты пропадают):

  • Дешевые, маленькие и с SPI интерфейсом 320×240 2.8″ или 480×320 3.5″ — но они занимают всю колодку GPIO и для них надо иди специальный драйвер или из программы полностью отрисовывать интерфейс (что не очень удобно, когда можно делать его в визуальной среде);
  • Средней ценовой категории, 800х480, с тач-скрином и HDMI входом — неплохо, но разрешение маленькое.
  • Средней ценовой категории, 800х480, с тач-скрином и DSI входом — интересный вариант с гибким шлейфом, но разрешение маленькое и требуется 5В питание с GPIO гребёнки.
  • Средней ценовой категории, 1024х600, с тач-скрином и HDMI, VGA входом — разрешение уже получше, но присутствует громоздкая плата управления с ненужными видеовходами при применении с Raspberry Pi, а также не очень стандартное разрешение, есть некоторые проблемы с выставлением такого разрешения на Windows IoT.
  • Средней ценовой категории, 1024х600, с тач-скрином и HDMI — разрешение приемлемое (да, да, проблемы с Windows IoT опять), отсутствует дополнительная громоздкая плата, всё в сборе. Типичные китайские дисплеи, продаваемые на Ali или Ebay — по цене прям идеальный вариант.
  • Высокой цены, 1280х800, с тач-скрином и HDMI, VGA входом — нормальное разрешение, но опять же присутствует громоздкая плата управления с ненужными видеовходами при применении с Raspberry Pi. Есть аналоги, без лишних видеовходов и всё-в-одном (без внешней платы отдельной), минус только один — цена, дорого очень (цена уже приближается к бюджетному планшету на Android с аналогичным разрешением экрана!!).

В итоге, посмотрев на всё это разнообразие и прикинув, сколько я хочу потратить на это  (в пределах адекватной суммы на обычный дисплей по сути), в итоге решил купить дисплей от Waveshare, если точнее, то на тот момент я даже не знал, что есть фирменные и не фирменные китайские дисплеи — выбирал банально дисплей 1024х600, 7″, с емкостным тачскрином по цене и отзывам на AliExpress. Таки выбрал, пересмотрел еще раз описание — всё вроде верно, должно подойти, заказал. После месяца ожидания приходит дисплей, подключаю его к ПК и он без проблем определяется как второй монитор с разрешением 1024х600. Углы обзора хорошие, как и сама картинка добротная (ожидал значительно хуже) — вполне тянет на IPS матрицу. Ну отлично, осталось проверить тач… запускаю специализированную программу MS Paint для проверки тач скринов — тыкаю пальцем. Рисует! Тыкаю 2-мя, 3-мя, всей рукой… рисует всеми пальцами одновременно! Неплохо, хоть и не особо надо, но 5-касаний поддерживает и действительно не резистивный тач. Прям аж удивило… обычно у дешевой китайской вещи всегда есть косяки, это же китайцы… ну на этой мысли тыкаю пальцем закрыть окно MS Paint, кнопка как бы нажимается (меняет оттенок), но окно не закрывается. Хм. И так на всех кнопках…. в любой программе или проводнике. Вот он косяк, расплата за дешевизну. :)
Ну думаю мало ли, может драйвера надо обновить. Смотрю что у меня за дисплей:

Нахожу сайт якобы производителя — Waveshare 7inch HDMI LCD (C). Попутно нахожу на форуме MS такой топик — Waveshare 7 inch display doesn’t work on Windows 10 IoT Core, я таки не один такой, косяк, значит, известный! Смотрю на сайте производителя, последняя версия дисплея — Rev.2.1 … а внизу вижу замечательную картинку с громким подзаголовком Anti-Piracy и дисплеем явно моего типа в правой колонке (обвел красным):

У меня клон. Более того, у меня какая-то более продвинутая версия клона, т.к. установлено два Micro-USB (что. кстати, оказалось не зря — если подключить его в уже работающую Raspberry Pi 2, то всё нормально, а если попробовать запустить Raspberry Pi 2 с подключенным дисплеем в USB, то малина не стартует. Видимо, больно прожорливая подсветка у дисплея и запуск периферии с такой нагрузкой не выходит. Пробовал и короткие провода, и питание от разных добротных источников питания — не помогает. Видимо, для этого и сделали еще один Micro-USB, чтобы на него давать питание в обход малины, т. е. вместе с ней.):

Вот это прикол. Улучшенный клон клона на китайский же дисплей, слизанный, скорее всего, с другого усердно разработанный трудолюбивыми китайцами. :)

Ну что же, попробуем разобраться что же попало мне в руки. Если отогнуть шлейф, идущий на матрицу, то увидим запрятанный SWD и I2C для EEPROM, стоящий около HDMI разъема. Сам I2C идет непосредственно на HDMI разъём и больше никуда.

Мало ли чего — на всякий случай отпаяем МК с оригинальной прошивкой (а она залочена от чтения, можно только затереть память МК), заодно и посмотрим на дорожки под ним — что и куда подключено:

Это слайд-шоу требует JavaScript.

После нескольких минут с мультиметром узнаем на какие ножки куда подключены к GT811 (кликните на изображение для увеличения):

Теперь же смотрим на даташит МК, нас интересуют пины с 40 по 43:

И вот тут-то подкрадывается сомнение… что подключено всё правильно. Перезваниваем мультиметром еще раз. Смотрим на таблицу опять… третий раз проверяем… да… это китайская защита от разработки своей прошивки на клон китайского же дисплея! Вот так нагляднее что не так то:

STM32F103C8T6 GT811
40 PB4 NJTRST 22 nRSTB
41 PB5 I2C1_SMBA 19 I2C_SCL
42 PB6 I2C1_SCL 18 I2C_SDA
43 PB7 I2C1_SDA 15 INT

Ну чтож, китайцы постарались. Почти попали в нужные пины хардварного I2C. Придется чуть порезать дорожки и исправить на такое вот подключение:

STM32F103C8T6 GT811
40 PB4 NJTRST 22 nRSTB
41 PB5 I2C1_SMBA 15 INT
42 PB6 I2C1_SCL 19 I2C_SCL
43 PB7 I2C1_SDA 18 I2C_SDA

Также дополнительно на nRSTB повесил подтяжку к питанию — 4,7кОм, пин PC13 вывел как включение шины USB (здесь еще один косяк обнаружил! вместо рекомендованных 1,5кОм, на плате стояло 10кОм…), но это не обязательно, а также на свободный пин повесил кнопку для отладки. Вышло как то так:

Это слайд-шоу требует JavaScript.

Осталось дело за малым… написать прошивку. :) В этом должна очень помочь найденная статья по написанию прошивки на оригинальные дисплеи Open firmware for Waveshare’s 7 inch touch screen, которые собраны на китайском клоне STM32 по лицензии — GD32F103. Исходники прошивки также доступны.

Но об этом в следующей статье. Спасибо, что прочитали! ;)

Реклама

Рубрики: ARM, STM32

Tagged as: , , , , ,

2 Comments »

  1. Покупал по тому же принципу … и купил токое же чудо. Тач нормально работает толко на raspbian десктопе… В медия центре kodi тач отказывается нормално паботать — надо по несколько раз тыкать .. Так што жду продолжения !

    Нравится

    • Прошивка готова, проверял — работает 5 касаний (на windows iot и windows 10 проверял). Статью всё никак не допишу, уже второй месяц в черновиках… но скоро постараюсь завершить и выложить! ;)

      Нравится

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

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

Логотип WordPress.com

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

Фотография Twitter

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

Фотография Facebook

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

Google+ photo

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

Connecting to %s