Comments 45
Кроме того, управление даже небольшой LED панелью съедает практически все ресурсы микроконтроллера. У меня была задача — сделать отдельную платку, в которую послал данные и забыл про обслуживание экрана.
Вы просто не понимаете саму задачу — сделать использование LED панелей не сложной задачей с использованием F4 или F7 процессоров, сложной настройкой FSMC и т.д., а типичной ардуино-задачей — подоткнуть десяток интерфейсных проводов к плате класса ардуины, скачать готовую библиотеку и использовать как угодно не заморачиваясь.
максимальная скорость выдачи данных из STM32F103 по DMA, которую мне удалось получить — всего 5 МБ/сек— но ведь для решения поставленной задачи BAM-методом этого вполне достаточно. Если мы хотим получить 5-битный цвет(RGB555) с частотой обновления 50Гц без потери яркости — для бита с минимальным весом нам нужно защёлкнуть 6-битные данные цвета 64 раза за 1/50/32/32 секунды (625 мкс), то есть передавать данные в матрицу со скоростью до 3276800 байт/секунду. Если же мы хотим получить 8-битный цвет — этого можно добиться с почти той же скоростью передачи данных и небольшим снижением яркости, если допустить чтобы при передаче данных для битов цвета 0..2, время передачи данных было таким же как для бита 3, а время свечения — пропорционально весу бита. Тогда получим скорость передачи данных 50(Гц)*32(фазы)*64(пикселя по горизонтали)*35(периодов свечения бита 3) = 3584000 байт/секунду, и снижение яркости на 1/64 (1,5%).
А мой контроллер на 100Гц тянет панель 128х128 в полном RGB888.
Когда я делал эту железяку, то мне очень не хотелось делать bit shuffling, который обязательно надо делать для режима «для бита с минимальным весом нам нужно защёлкнуть 6-битные данные цвета».
В таком режиме данные, относящиеся к одному пикселю, разбросаны побитно в 8 разных байтах экранного буфера. Поэтому, чтобы поставить одну точку надо считать из экранного буфера 8 байт, изменить в них по 3 бита и положить обратно в память. У меня данные одного пикселя лежат в трёх последовательных байтах, поэтому для защёлкивания 6-ти битных данных цвета надо забрать из памяти 6 байт. Поэтому при 50МГц выборке из памяти мы получаем частоту защелкивания данных в строку всего 50/6 = 8,3 МГц, что всего в два раза больше, чем может отдавать STM32.
Зато имеем очень простую, быструю и прозрачную работу с экранным буфером.
В общем-то, сделать версию, которая будет отдавать данные именно в таком видео и повысить скорость задвигания данных в буфер до полных 50МГц — как два пальца. Тогда размер обслуживаемой панели можно будет увеличить еще в 6 раз. То есть на 100Гц будет уже не 128х128, а 384х256, например.
Если вдруг кому-то будет сильно надо — сделаю — это можно сделать на том же железе легко :)
В общем-то — всё.
Ожидал в конце фото «DIY проекта матричных светодиодных часов»
А где можно купить за такие деньги? 5M40 стоит в farnell 1,98евро поштучно. И это 40 ячеек. Надо больше. 5M80 — 3.38евро.
Я делал плату, компоненты для которой любой желающий сможет купить на ali за 5$ в сумме.
Я делал плату, компоненты для которой любой желающий сможет купить на ali за 5$ в сумме.
Вот спасибо за это. Хоть кто-то понимает что в DIY важно не качество компонентов, а их доступность.
Но у меня проблема, что всякие маузеры и дигикеи не заточены для работы с обычными людьми, им предприятия подавай. Пару раз заказывал, доставка и налоги увеличили цену покупки в два раза где-то. И я не в России нахожусь, если что.
Все хорошо с DigiKey в Минске, кроме доставки в 50$ и 30% за превышение 22 евро.
Притянул одну посылку через решипперов в России, да дешевле и быстрее. Но +12-15$. И напиши росийской таможне объяснительную, приложи копию и скришоты всего чего можно. Не понравилось.
Cyclone IV это FPGA
FPGA знатно дороже и сложнее.
Я когда то делал на основе этого
github.com/Frans-Willem/LEDMatrixHUB75
хотя сейчас наверное и более продвинутые есть.
Можно и так, конечно, хотя мне мой вариант нравится заметно больше — у меня выдал данные с процессора в контроллер и вообще забыл про панель до изменения картинки :)
Ну и по расчётам мой вариант должен вытянуть при частоте обновления 100 Гц панель примерно 128х128
Зачем так усложнять:
- http://lightportal.info/publ/videoehkrany_2d/rgb_32x16_ili_kak_podkovat_kitajskogo_drakona/8-1-0-111
- Когда есть вообще ws2812.
2. WS2812 в несколько раз дороже и минимальный шаг 10 мм.
- Ща есть мелкий типоразмер 3535 (не 5050). Да и всё зависит от руки разводки.
Ну если руки из Ж и делать ничего не хотите (терпение), то нет.
На счет габаритов это неправда, все ваши панели под HUB гигантских размеров, причем стоят не копейки, а мытаринья с ними по обмену — куча.
Для FPGA нужен ещё программатор (не бесплатный) и опыт не малый для их применения (пока разберешься в этих финшуйских убеждениях (производитель/язык) — туча времени нужна (проходили).
На счет дорого — это всё голословно и относительно. Один ходит по помойкам побирается, другой топовое железо имеет (причем на халяву). В общем эту тему можно вообще не обсуждать, каждый делает как ему доступно. А обсуждать с стороны линии сборки — там всё дешевле выходит, от количества. :D Вот если бы всё было сделано на одной FPGA — может имело смысл.
Если разговор о телодвижениях, то проще на WS делать, причем там же из-за протокола/времени будет ограничение на количестве, можно многоканальный вывод делать одновременно… и панели круче смотрятся. Один недостаток — потребление, но чтобы его решить, проще самому делать с нуля матрицу.
Что-то я стал сомневаться, что Вы с ними дело хоть когда-нибудь имели.
У меня на столе сейчас панель 64х32 с шагом 3 мм, это 192х96мм. Это огромная панель? Её цена с доставкой — 21$. Светодиоды там — 2121, кстати.
Теперь смотрим. WS2812B в версии 3535 стоят около 60$ за 1000 штук. Чтобы собрать аналогичную панель надо 2048 светодиодов, то есть где-то 130 баксов только на светодиоды. Если же берём самые маленькие на сегодняшний день APA102 2020, то 1000 штук их стоят каких-то 200$. То есть на 64х32 уйдёт всего-то каких-то 400$
Ну и мне очень хочется посмотреть — во сколько обойдётся соответствующая плата, шаблон для термопасты для неё, термопрофильная печь и всё прочее развлечение. Что-то подозреваю, что самодельная единичная панель 64x32 на APA102 2020 в итоге обойдётся примерно баксов так в 600-700.
И альтернатива — готовая панель с шагом 3мм за 22$ + платы (2$ за десяток при первом заказе на jlcpcb) + 5$ на детали + USB blaster за 3$. Итого 32$. Ну да, ну да, однозначно проще и дешевле на WS2812B делать, ну кто бы спорил :)
Моя плата сделана так, что на неё можно напаять разъем HUB75E мамой и воткнуть её прямо в плату панели. Тогда получается очень компактный бутерброд — плата оказывается внутри.
Точный размер рамки сейчас не скажу — панель лежит на работе сейчас.
Это исходя из первого предположения (о том, что там биполярные транзисторы в режиме насыщения).
PRE_DELAY и POST_DELAY — это интервалы гашения до и после output enable (OE) для того, чтобы мультиплексоры успели переключить выходы и ключи открыться/закрыться. Без них будут «тянучки» от горящих пикселей на соседние строки. Значения подбираются экспериментально для конкретной панели.
Герберы для самостоятельного заказа
Разводка в шестом sprint layout
Там еще добавлены выходные буферы 74HCT245PW — две штуки на плату. Платы заказаны, но еще не пришли, поэтому на практике не проверены.
Как придут — спаяю, проверю, выложу фотки и результаты проверки.
DIY-контроллер LED панели на CPLD с использованием BAM модуляции