А бренд 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 начинать… Или ноль не включать.
Да попробовал это вариант, строки все горят но порядок строк сильно изменился…