Easyelectronics.ru

Электроника для всех
Текущее время: 29 ноя 2021, 08:35

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: HUB75-based RGB LED panel and STM32F103C8T6
СообщениеДобавлено: 20 апр 2021, 16:10 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 5281
Откуда: КЧР, поселок Нижний Архыз
Запустил панельку под "синей таблеткой"!
Намаялся, конечно: поначалу постоянно были какие-то "духи" и изображение сдвигалось. Сначала грешил на шумящий БП, потом все же спаял буфер на CD4050 и оказалось, что всему виной были уровни 3.3В! С пятивольтовыми все проблемы прошли (вот уж странно: впервые в наше время встречаю железо, которое не понимает CMOS уровней и ему жесткий TTL подавай).
Сам экран 64×32 пикселя разбит на два блока по 16 рядов. Запись ведется параллельно в две N'е строки каждого блока (через выводы Rx,Gx и Bx). Выхлоп формирую при помощи DMA, пинает его таймер TIM3, а канал TIM3_CH1 в режиме ШИМ с 50% заполнением выдает строб после установки значений цвета. Низкоскоростные операции (установка номера строки при помощи входов A-D, управление входом nOE и помещение данных из сдвиговых регистров в буферы светодиодов ногой LAT) выполняются ногодрыгом в прерывании по завершении DMA. Правда, когда экспериментировал на малых скоростях, последний строб не успевал отработать до активации "защелки", пришлось добавить в прерывание ожидания: while(!(TIM3->SR & TIM_SR_UIF)); Вот такой я рукожоп. Проблема точного генерирования таймером N импульсов постоянно заставляет выдумывать какие-то черезжопные решения, если нет желания использовать еще один таймер как мастер (который будет отсчтитывать эти N импульсов).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HUB75-based RGB LED panel and STM32F103C8T6
СообщениеДобавлено: 20 апр 2021, 19:44 
Старожил
Аватара пользователя

Зарегистрирован: 11 фев 2021, 21:02
Сообщения: 914
Года два назад делал такую штуку. LED-матрица Q10C2V5 от уличного светодиодного экрана, 32х16 пикс. Да, 595-е регистры версии HCT не работают с трехвольтовой логикой, пришлось делать подтяжку к 5 В и OD-выходы, из-за чего, вкупе с монтажом на макетке, скорость передачи сильно ограничилась.
Организация панели по порядку следования светодиодов конечно вообще атас - зигзагами, да еще и двумя полями с чересстрочной разверткой. Чтобы подготовить картинку, нужно сильно всё преобразовывать. Плюс гадость в том, что яркость отдельного светодиода (и смешение цветов в RGB-компонентах) управляется через программный ШИМ, а это снова программные преобразования и увеличение частоты интерфейса пропорционально глубине цвета (количеству отображаемых цветов).
Поскольку собирал на макетке проводами, и преобразователь уровней 3->5 был на резисторах, то из-за ограничения по частоте интерфейса получилось 16 градаций яркости для каждой компоненты (4096 цветов, 12-битный цвет) при 64 fps. Это 264 кГц интерфейса. 520 кГц еще более-менее переваривает, а выше уже проблемы - долгие фронты приводят к засветке соседних пикселей и плохому переключению A/B полей.

Надо сказать, что у этой панели импульсный ток потребления очень большой и БП нужен мощный. 50 Вт средняя мощность, а пиковая в импульсе приближается к 100 Вт. БП поставил на 120 Вт.
Яркость панели тоже немалая - при прямом солнечном свете видна. А в комнате так вообще всю комнату освещает, почти как 50-ваттный светодиод.

В то время хотел докупить еще три-пять панелек, сделать нормальную плату с преобразователем уровней. Но то не было времени, то потом вся эта коронабесия помешала, а потом и интерес пропал. В общем, до сих пор так и лежит панелька и собранная на макетке Блю-пилльька.

Сделано на трех таймерах, никакие прерывания и ногодрыги не требуются.
Show кот

В оригинале это всё делает комп-одноплатник или ПЛИС. Поскольку частота интерфейса на больших экранах может доходить до нескольких десятков мегагерц.


Вложения:
DSC_1687.jpg
DSC_1687.jpg [ 246.69 Кб | Просмотров: 1937 ]
DSC_2545.JPG
DSC_2545.JPG [ 247.29 Кб | Просмотров: 1937 ]

_________________
Факинтош, ё


Последний раз редактировалось Lambo 20 апр 2021, 21:40, всего редактировалось 1 раз.
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HUB75-based RGB LED panel and STM32F103C8T6
СообщениеДобавлено: 20 апр 2021, 21:40 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 5281
Откуда: КЧР, поселок Нижний Архыз
Поменял алгоритм отображения. Уж очень экран мерцает, если цвет изображать последовательностью из семи кадров. Сделал построчный "ШИМ": каждая строка отображается 7 раз, а уж пиксели в ней — в зависимости от уровня цвета.
Цвет глубже 8 градаций нет смысла делать: будет видно мерцание.
Сначала я сделал на конечных автоматах запуск следующего преобразования, но при приличной нагрузке на МК возникало мерцание из-за неравномерности вызова процедур отрисовки, пришлось эту процедуру вызывать прямо из прерывания по окончанию передачи DMA.
Оптимально вышло пинать таймер на 7.2МГц, а ARR установить в 7 (т.е. получается 900 тысяч пикселей в секунду). В итоге у меня около 75-78fps получается вне зависимости от загрузки ядра МК. А вот если снизить частоту обновления до 50fps, уже боковым зрением заметно неприятное мерцание.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HUB75-based RGB LED panel and STM32F103C8T6
СообщениеДобавлено: 20 апр 2021, 21:57 
Старожил
Аватара пользователя

Зарегистрирован: 11 фев 2021, 21:02
Сообщения: 914
У меня получалось 16 градаций яркости (4096 цветов) и 64 fps, то есть никаких мерцаний. При частоте МК 24 МГц. Выше задрать частоту интерфейса не получилось из-за затягивания фронтов на резисторном преобразователе уровней и сборке на макетке. Проблем с загрузкой ЦП нет, поскольку буфер вывода уже просчитан, а интерфейс в работе не требует пересчета.
Как я писал ранее, в оригинале контроллер панелей сделан на Altera Cyclone IV.


Вложения:
DSC_2546.JPG
DSC_2546.JPG [ 233.79 Кб | Просмотров: 1900 ]

_________________
Факинтош, ё
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HUB75-based RGB LED panel and STM32F103C8T6
СообщениеДобавлено: 20 апр 2021, 22:06 
Старожил
Аватара пользователя

Зарегистрирован: 20 май 2013, 22:29
Сообщения: 742
У меня на синей таблетке давно запущены панельки 64x64 в режиме 32768 цветов (5 бит на каждый цветовой канал). Ничего не мерцает. Правда, почти 80% времени cpu загружен обсчётом данных, которые надо гнать в панель. Либа для работы с панелями (с почти любым разрешением и количеством последовательно и параллельно, с разной глубиной цвета) написана для плюсах и выглядит довольно дико ))

https://github.com/art-den/co2meter/tre ... matrix_lib


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HUB75-based RGB LED panel and STM32F103C8T6
СообщениеДобавлено: 20 апр 2021, 22:14 
Старожил

Зарегистрирован: 26 ноя 2012, 10:28
Сообщения: 5281
Откуда: КЧР, поселок Нижний Архыз
Lambo, я подумал, что делать двойную буферизацию (т.е. помимо экранного буфера еще и держать полный буфер для DMA) будет не очень: оперативки придется порядочно сожрать. Хотя, это все-таки не STM8, возможно, хватит и на прочие нужды.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: HUB75-based RGB LED panel and STM32F103C8T6
СообщениеДобавлено: 20 апр 2021, 22:41 
Старожил
Аватара пользователя

Зарегистрирован: 11 фев 2021, 21:02
Сообщения: 914
Можно затюнинговать Блю-Пильку, заменив МК на F303CC, они пин-ту-пин совместимы, а ОЗУ 40 кБ.
Хотя, как я уже третий раз повторяю, для более-менее осмысленного экрана маломощный МК не следовало бы ставить. Помимо поддержания вывода, нужно же еще что-то осмысленное выводить.

_________________
Факинтош, ё


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB