Найти в Дзене
За_тех_кто_в_коде();

Без документов?

Давно у меня валяются маленькие экранчики. Я почему то был уверен что они подключаются по I2C. Меня смутили надписи SCL,SDA, поэтому отложил в сторону, до лучших времен, когда решусь написать функции для соединения по I2C. И вот, время пришло, а оказалось что все они работают по SPI. Ну так даже проще. Прямоугольные завелись сразу, из коробки, что называется, единственное пришлось немного не стандартно развернуть экран, и что очень странно была проблема с адресацией памяти. Изображение оказалось сдвинутым на 2-3 px по обеим осям, а в одном из дисплеев даже на 26 px! Может в каких-то регистрах это подстраивается... но я сомневаюсь. Подстраивается это в коде библиотеки, и все. А вот с круглым экранчиком все оказалось гораздо интереснее. С ходу он не завелся. Ну что же, нужно открывать даташит, может быть какие-то не стандартные базовые регистры и требуется куча настроек перед запуском. С таким я сталкивался при подключении большого дисплея на контроллере SSD1963. Но открыв даташит на к
GC9A01
GC9A01

Давно у меня валяются маленькие экранчики. Я почему то был уверен что они подключаются по I2C. Меня смутили надписи SCL,SDA, поэтому отложил в сторону, до лучших времен, когда решусь написать функции для соединения по I2C. И вот, время пришло, а оказалось что все они работают по SPI. Ну так даже проще. Прямоугольные завелись сразу, из коробки, что называется, единственное пришлось немного не стандартно развернуть экран, и что очень странно была проблема с адресацией памяти. Изображение оказалось сдвинутым на 2-3 px по обеим осям, а в одном из дисплеев даже на 26 px! Может в каких-то регистрах это подстраивается... но я сомневаюсь. Подстраивается это в коде библиотеки, и все.

А вот с круглым экранчиком все оказалось гораздо интереснее. С ходу он не завелся. Ну что же, нужно открывать даташит, может быть какие-то не стандартные базовые регистры и требуется куча настроек перед запуском. С таким я сталкивался при подключении большого дисплея на контроллере SSD1963. Но открыв даташит на контроллер (GC9A01), я убедился, что все более чем стандартно, да и набор доступных регистров значительно меньше чем в других дисплеях. Стоит отметить, что это дисплей от фирмы Galaxy Core, которая как пишет интернет, занимается дисплеями для мобилок. Даташит без проблем находится на просторах инета. В самом начале, указано 240х240, никакого подвоха. Во всех магазинах на али, после запроса «круглый дисплей», появляется именно этот дисплей, и везде указано что он на контроллере GC9A01.

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

Решил поискать в инете примеры подключения данного дисплея к Ардуино. И такой вариант нашелся.

github.com

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

Начало инициализации тоже интересное. Первая команда, это регистр 0xEF. Регистр без параметров, это команда типа включения дисплея или вывода его из спящего режима. Далее следует запись в регистр 0xEB данных (0x14). Следующая команда, это снова тревожим регистр 0xEF и снова пишем 0x14 в 0xEB. И это не дичь, опечатка или ошибка. Если закомментить вторую пару, дисплей не стартует. Что это за регистры... Не понятно. Как и не понятно назначение многих других задействованных в инициализации.

Дисплей я конечно завел под своей библиотекой. Переписал блок инициализации на свой лад. У меня данные уходят в массиве. И все пошло и поехало. Экранчик имеет отличные углы обзора, яркость и до сих пор весьма привлекательную цену на али. А так же в нем есть формат передачи данных 4-4-4. Это как минимум на ¼ поднимет скорость передачи, в ущерб количеству цветов. 12 bit/pixel (4K цветов), но придется функции подправить.

GC9A01
GC9A01

Не понятно другое, что это такое, ошибка? И в действительности это другой дисплей и на него есть другой даташит?

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