DMD_STM32 - библиотека DMD матриц для СТМ32 и RP2040

А бренд Evosson как нормальный ?
В P10.ru Больше не хочу покупать отношение к клиентам никакое…

не могу сказать, нашел тупо поиском

Может кому пригодиться, вот что нарыл

Даташит на китайском [http://www.chinaasic.com/websiteManage/product/20230116105453318.pdf]
(http://www.chinaasic.com/websiteManage/product/20230116105453318.pdf)

Прогресс вроде есть для вывода массива использую следующий код

(rows == 10)  { rows = 0; }

		 	 GPIOA->BSRR = (1<<0);//OE

		 		     GPIOA->BSRR = (1<<5);// LAT HIGH
		 		     GPIOA->BRR = (1<<5);// LAT  LOW

		 		     // Цикл вывода светодиодов в строке
		 		     for(uint8_t i=0; i < 160; i++)
		 		     {// Выставляем биты включения светодиодов

		 		    	GPIOB->BSRR = (0b1111110000000000 << 16) | ( buffer_displ[rows][i] << 10 ) ;

		 		         // Отправляем выставленное значение
		 		        GPIOB->BRR = (1<<9);//CLK Low
		 		        GPIOB->BSRR = (1<<9);//CLK High
		 		     }
		 		     // Выставляем адрес строки для отображения
		 		     GPIOA->BRR = 0b0000000000011110;


		 		    GPIOA->BSRR = (1 << 2);//Oe PA2
		 		   for (int r = 7; r >= 0; r--) {
		 		        if (rows % 8 == r) {
		 		        	GPIOA->BSRR = (1 << 3);//SDI PA3
		 		        } else {
		 		        	GPIOA->BRR = (1 << 3);//SDI PA3
		 		        }

		 		      GPIOA->BSRR = (1 << 1);//DCLK PA1
		 		      GPIOA->BSRR = (1 << 1);//DCLK PA1
		 		      GPIOA->BRR =  (1 << 1);//DCLK PA1
		 		                                 }

		 		      GPIOA->BRR = (1 << 2);//Oe PA2

		 		    // GPIOA->BSRR = (rows << 1);

		    GPIOA->BRR = (1<<0);//OE
rows++;

При записи в массив


buffer_displ[0][0] = 0b100000;
buffer_displ[0][1] = 0b100000;
buffer_displ[0][2] = 0b100000;
buffer_displ[0][3] = 0b100000;
buffer_displ[0][4] = 0b100000;
buffer_displ[0][5] = 0b100000;

выводит красные точки четыре красные точки во 2-ю сверху
чытыре в 9 сверху
и две в 18.
ещё две красные где то потерялись…

Ураа
Не знаю как но кажется корявенько работает
Нужно только исправить

for (int r = 10; r >= 0; r--) {
		 		        if (rows % 10 == r)  GPIOA->BSRR = (1 << 3);//SDI PA3

буду тестировать…

Сайт пороизводителя SM5386 http://www.chinaasic.com
на китайском но где форма поиска понятно…

Вот в этом куске PA1 PA2 PA3 - это пины A B C ?

Похоже переключение строк все-таки через сдвиговый идет, я верно понял?

A - PA1 -DCLK
B - PA2 - OE
C - PA3 - SDI

Да похоже сдвигается, в даташите блок схема Нарисована.
Всё работает, один косячок
Строки как и на предыдущей матрицы (40х20) начинаются со второй сверху, то есть нулевая
это вторая сверху, затем по порядку , а последняя (9) она самая верхняя.
только у меня продолжение 9 которое должно быть 11 сверху строкой не выводится…

может поэтому:

Не пойму, почему тут такие цифры… строк-то у вас 10, а не восемь…

Хотя может и не угадал.

Правильно, но это я исправил(выше написал про это)

Тогда не знаю…
Может вот в этой логике какая ошибка.

Китайцы, конечно, затейники, но обычно логика у них “двоичная”. И в том, что строки у них идут подряд, но начинаются первой, а нулевая потом - мне видится что-то неправильное. Больше похоже что вы нулевую строчку просто “потеряли”.

А вообще шикарное исследование. У меня на подобное недели уходят.
Драйвер, я так понимаю, оказался обычный, без всяких “новых технологий” внутри.

Нет она есть первой строчкой сверху рисуется , а вниз через 9 строчек(11 сверху) не продолжается…

хм, при чем тут блок схема в даташите? Может я что не понял, но у вас выбор строки делается совсем не этим драйвером.

Сам в шоке , но работает, но никаких других дешиФраторов для выбора строк на плате нет…
В Даташите нарисовано что первый сигнал приходит на SDI первой микросжемы, а потом по цепочкам SDO- > SDI заполняет другие…

dp3216

А разве это не сдвиговыЕ регистры который заполняется цветами, по сигналам CLK

не знаю. У вас и там и там сдвиговый. Может быть по всякому.
Даташита на 3216 у меня нет

В нижней части экрана всё нормально, то есть одна строка не горит

Это больше похоже на неисправность. Если у вас есть другая подобная панель - попробуйте на ней.

Нет поторопился, видно ошибка в логике не горят 11, 22, 33 строка

От 10 до нуля включительно - это цикл на 11 шагов. Наверно надо с 9 начинать… Или ноль не включать.

Да попробовал это вариант, строки все горят но порядок строк сильно изменился…