Adafruit и разные RGB-матрицы

Sib-Energy
Offline
Зарегистрирован: 23.08.2022

Есть RGB матрица 20х40, на ней 6х5=30 16-разрядных управляемых регистров SM16259. Физически получается 3х5=15 - для каждой половины матрицы, 16х5=80 - на каждый из цветов, т.е. две строки по 40. Таким образом в один момент времени (при включении сигнала разрешения OE) горят две строки по 40 диодов в одной половине матрицы (1-я и 6-я) и две в другой (11-я и 16-я), итого 4 из 20, получается сканирование 1/5 (если я правильно понимаю значение параметра "scan mode" для любой матрицы).

Не знаю, под какие регистры "заточена" библиотека Adafuit "RGBmatrix", но, может быть, не нашел как задавать этот режим сканирования - в общем, примеры рисуют не то что надо.

Хотелось бы понять протокол этих регистров (а подключение-то то же самое что и у матриц с "простыми" регистрами - через HUB75), но с даташитами на микросхему-регистр SM16259 напряг. У производителя на сайте только первая страница с цоколевкой и все. Сам протокол, где задается глубина цвета, коррекция тока пиклесей по цветам и пр. - никак не найду. одно упоминание есть, что это SМ-PWM - но по поиску выходят только разные датчики.

Что нашел по похожему регистру - так это то, что при сигнале LAT="1" количество сигналов "CLK" определяет параметр (адрес внутреннего регистра), в который следом передается значение.

Сами данные 12-битного цвета для каждого выхода передаются после одного клока при LAT="1" и защелкиваются, как обычно, импульсом "LAT".

Может, у кого-нибудь есть соображения все-таки для конкретного регистра понять что ему надо, если нет даташита.... Или может добрый дилер китайского chinaasic поделится таковым )))

FoxJone
Offline
Зарегистрирован: 19.04.2019

Кастую Дмитрия в этот топ!

ЗЫ. RGBmatrix не лучший выбор для вашей цели.

b707
Offline
Зарегистрирован: 26.05.2017

Sib-Energy пишет:

Есть RGB матрица 20х40...  получается сканирование 1/5

Добрый день

Я увлекаюсь запуском подобных матриц на платах СТМ32 и RP2040

Обычно эти матрицы обозначают ширина х высота, то есть ваша будет 40х20 скан 1/5. Если это "обычная" матрица, то проблема только в нестандартном размере и сканировании. Ее, думаю, без проблем можно запустить с помощью кода из моей библиотеки.

Но если ...

Цитата:
это SМ-PWM

то это сильно сложнее. Документации, как вы уже поняли - почти нет, примеров кода в инете тоже единицы. Одну S-PWM матрицу мне удалось запустить, подключив ее к китайскому контроллеру RGB-матриц HD15 и сняв лог обмена с помощью логик анализатора. Но полностью разобраться с командами так и не вышло, например как менять яркость я так и не нашел.

Ссылка на "мою" ветку на форуме, посвященную диодным матрицам: https://arduino.ru/forum/proekty/dmdstm32-versiya-biblioteki-dmd-dlya-st...

 

Sib-Energy
Offline
Зарегистрирован: 23.08.2022

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

b707
Offline
Зарегистрирован: 26.05.2017

Sib-Energy пишет:

У них совершенно разные команды инициализации, но внутренняя структура практически одинаковая.

Если под внутренней структурой вы понимаете общую логику работы - то да. Хотя тоже нет :) Нюансов там выше крыши. И видов регистров много. Среди S-PWM матриц мне известно две большие группы - это матрицы с встроенной памятью и без нее. И логика работы у них разная...

Но я бы начал с того, что проверил, является ли ваша матрица вообще S-PWM или нет. Может она "обычная". За это говорит то, что у вас библиотека RGBMatrix что-то рисует на панели (если я вас правильно понял). Матрицы с S-PWM требуют обязательной инициализации при старте, в RGBMatrix ничего подобного нет - если у вас S_PWM - экран был бы просто черным.

И еще я пока не встречал S-PWM матриц с нелинейным сканом (то есть когда разрядность сканирования не равна половине высоты). Линейная матрица высоты 20 должна быть с 1/10 сканом. А у вас 1/5

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

Sib-Energy
Offline
Зарегистрирован: 23.08.2022

RGBMatrix зажег простую матрицу 32х32, а эта 20х40 черная стоит, вообще не реагирует. Я-то по-началу думал, что RGBMatrix и "умными" матрицами рулит, и никак не мог найти где указать хотя-бы нужный скан. Зажег я ее с помощью некоей последовательности команд, найденной на просторах интернета для какой-то другой "умной" матрицы. Но зажечь - одно, а понять какая команда за что отвечает...

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

b707
Offline
Зарегистрирован: 26.05.2017

Sib-Energy пишет:

Зажег я ее с помощью некоей последовательности команд, найденной на просторах интернета для какой-то другой "умной" матрицы.

было бы интересно посмотреть на ссылку.

Что касается запуска вашей матрицы -то тут только изучать даташиты, обкладываться логик-анализаторами и контроллерами и использовать дедукцию аля Шерлок Холмс :) Я достаточно давно в этой теме, но пока не видел ни одной открытой библиотеки на гитхабе, поддерживающей такие матрицы.

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

Sib-Energy
Offline
Зарегистрирован: 23.08.2022

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

b707
Offline
Зарегистрирован: 26.05.2017

Sib-Energy пишет:

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

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

Sib-Energy
Offline
Зарегистрирован: 23.08.2022

Попробую найти. Сохранил только таблицу. Наверное, на ютубе под роликом с разбором именно подобной матрицы

b707
Offline
Зарегистрирован: 26.05.2017

Sib-Energy пишет:
Попробую найти. Сохранил только таблицу. Наверное, на ютубе под роликом с разбором именно подобной матрицы

автор скорее всего что-то типа "Электроника в обьективе" или аналог на английском

Если так, то у него матрица была без встроенной памяти.

Интересно, а вы эти команды в какой код вставляли? Если не хотите это обсуждать в форуме - можем перейти в почту

 

 

 

Sib-Energy
Offline
Зарегистрирован: 23.08.2022

Да, действительно ролики от "Электроника в объективе". Но про таблицу пока не могу найти - откуда она у меня.

Код никуда не вставлял, для Mega2560 написал "ногодрыг". Вывод байта из подготовленного массива в порт А (6 бит для двух каналов RGB), остальные сигналы командой digitalWrite. И мне не стыдно))). Для изучения работы сойдет, потом сяду на STM32, задействую DMA. А EEPROM у этих регистров я так понял нужна только для коррекции цвета изменением величины тока - это может быть нужно для подстройки палитры под "температуру" или просто под разные матрицы, поскольку свечение светодиодов разных производителей отличается.

 

b707
Offline
Зарегистрирован: 26.05.2017

Sib-Energy пишет:

Код никуда не вставлял, для Mega2560 написал "ногодрыг". Вывод байта из подготовленного массива в порт А (6 бит для двух каналов RGB), остальные сигналы командой digitalWrite. И мне не стыдно))).

да какое там "стыдно", это здорово. Я наоборот удивился, куда это вы код вставляете :)

В общем, желаю успеха, будут вопросы обращайтесь.

Sib-Energy
Offline
Зарегистрирован: 23.08.2022

Спасибо. Вам тоже успехов.