В картинах Ван Гога разбираются в основном те, кто купить их не может...

Меню навигации для мобильных

Светодиодные матрицы

Автор zenon, 12 Апр., 2024, 11:36

« предыдущая - следующая »

zenon

На пробу взял P10 монохром.
Тут (https://ozon.ru/t/nbwZgqW).
↓ спойлер ↓
1712849633160.jpg
[свернуть]
↓ спойлер ↓
1712849633174.jpg
[свернуть]
На микросхемах надписи
DP5125 12H1203
4953  V2G0703
Разобрал с трудом, они под лаком.
Для пробы подключил к Blue Pill.
Библиотека эта (https://github.com/board707/DMD_STM32).
Обсуждение ее тут (https://forum.arduino.ru/t/dmd-stm32-biblioteka-dmd-matricz-dlya-stm32-i-rp2040/8573/1).
Почему-то получил паразитную засветку (https://youtu.be/TXDDk6pXCEg).
Может быть из-за земель/проводов, подключал пинами.
Ну и преобразователь уровней какой-нибудь надо попробовать, питание у нас 5 вольт, а стм-ка 3,3.
На самой плате земли коннекторов P10 и питания звонятся.
На хабре статейка (https://habr.com/ru/articles/372215/).
Схема оттуда:
↓ спойлер ↓
P10_scheme.gif
[свернуть]
Ещё не решил на каком контроллере делать, хотя уже полюбившийся F0 вполне подходит.
К этому же МК хочу подключить 1602 и расположить за панелью, для дублирования и смены выводимого текста.
Вот ещё картинка объясняющая интерфейс передачи данных:
↓ спойлер ↓
p4.gif
[свернуть]


ы. Нашёл у себя 74LVC1G17, надо пробовать.
https://github.com/minamonra/

Slabovik

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

zenon

Можно и его, но тут двунаправленный не нужен.
На всякий случай надо бы иметь в загажнике уже такой.
Даже 4050 нету, сделаю на SN74, жаль они одноканальные у меня, а тут аж 6 штук наверное надо.
... нужен SN74LVC4245.
https://github.com/minamonra/

zenon

Решил что будет F103.
Взял HEF4050.
Пока для совместимости с DMD библиотекой оствил дефолтные пины, к железному SPI привязаны только Clock (PA5) и Data (PA7), остальные можно перекинуть на любые другие.
Продумать надо на какой таймер кинуть энкодер, дисплей 1602, возиожно IR датчик (ещё один таймер).
Ну и кнопки.
Начал понемногу.
Тут вопрос, на верхнем слое, под контроллером что лучше соединять землю или VDD?
ы. 20-ти пиновый разъём бутербродом хочу соединять с панелью, он в IDC как раз входит, крайние 4 пина не использую, для "прочности".
https://github.com/minamonra/

Slabovik

Что-то я не понимаю, что сподвигло на 4050? Это же не преобразователь уровней... Это типовая 40xx логика.
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

#5
Ничего больше в наличии не было, это временно...
ы. Какие ещё распространённые есть?
4504 вроде можно.
https://github.com/minamonra/

Slabovik

Вообще, 40-я серия, она "экономиная, но медленная КМОП". И у неё напряжение питания типовое 9 вольт. Насколько я знаю, у 4504 минимальное напряжение 5 вольт. Так что 4245 наверное лучший вариант, ну либо ту, что я нарисовал выше. То, что она двунаправленная, её не портит и двунаправленность не мешает (я вообще удивляюсь, как они её такую сделать смогли).

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

zenon

Не, не выяснял ещё. Где-то картинка была как физически расположены светодиоды и последовательность их включения.
Какие-то зигзаги... :)
Свою процедурку писать будем?

ы. ... ни 4504 ни 4245 нету... всё в заказ...
Вроде есть возможность по двум SPI гонять, те, например 6 матриц по три в цепочке.
А вот тут (https://www.tindie.com/products/lightwell/dmd-stm32-shield-for-p10-led-matrix-panel/) есть шилд, не понял ка, но вижу четыре P10 коннектора.

https://github.com/minamonra/

Slabovik

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

Гонять надо много, когда экран становится побольше, а когда изображение динамическое, его обновление надо делать не реже, чем те же 50 Гц. (ради интереса, экран 1920x1200 с обновлением 60 Гц гоняет по интерфейсу 1920*1200*3*60= ~400 мегабайт ежесекундно. Это... много :) )

Но, в принципе, повозиться с этой штукой всяко полезно  :) Написать свою процедуру - а почему бы и нет?
Мне вот не совсем понятно, почему только 4 строки?
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

https://github.com/minamonra/

Slabovik

На дешифраторе D18 я вижу использование только четырёх ROW. Хотя транзисторов по факту 8 - это потому что по два транзистора вместе работают, а значит, что хотя и два транзистора - это фактически одна строка - во всю длину D1~D16 (почему 16?)
Или я чего-то не рассмотрел?

Также не понял, зачем D17 поставили двунаправленный буфер, когда смена направления в нём не используется. Есть регистры попроще в это место...
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

#11
16 байт, 4х8 светодиодов на каждном регистре, 16х4х8 = 32*16.
Почему двунаправленный буфер - не понимаю.
D18 только A0 и A1, тк монохром, надо RGB глянуть, там должно больше использоваться.
ы. nOE вообще-то шимить можно.
Те, на катоды данные по SPI Data (цепочки по 128 светодиодов), аноды - 4 варианта линий A и B.
ыы. Вот ещё (https://sotvorimvmeste.ru/viewtopic.php?f=37&t=198):
ЦитатаПри работе с одним модулем информация на вход R разъёма HUB1.2 с устройства управления уходит четырьмя 128-ми битными посылками, каждый раз выставляя на линиях A и B очередной адрес. Сдвиг данных в регистрах тактируется положительным фронтом сигнала CKL, а на выходы регистров данные переносятся по положительному фронту сигнала SCLK.
https://github.com/minamonra/

Slabovik

Там картинка есть - подтверждает.
В принципе, 1:4 выглядит лучше, чем 1:8, тем более чем 1:16, но расчёт изображения, если биты байта располагать "столбиком" довольно затратен. Выгоднее биты располагать строчкой - тогда они выводятся целиком.

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

Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.

zenon

Сварганил макетку, жёстко к ногам привязан только выход на матрицу, SN74LVC4245 ещё не пришли, а они оказываются в две стороны могут, мне надо всё-таки даташиты смотреть! :)
Четыре кнопки, энкодер и дисплей.
↓ спойлер ↓
1713974459379.jpg
[свернуть]
https://github.com/minamonra/

Slabovik

Жизнерадостная надпись :)
А у 4245 направление переключается сразу для всего массива. В принципе, не мешает, если надо только в одну сторону биты гонять.
Общением на форуме подпитываю свою эгоистичную, склонную к самолюбованию сущность.