Сегодня закончил последнее на этот год спортивное табло, 192*96 см.
От всех предыдущих отличается наличием связи по Ethernet. Первый связал Ethernet и STM, но теперь то будут отлетать, как пирожки - технологию отработал. Тем более, что последнюю партию контроллеров делал уже с посадочным местом под распайку стандартного шилда на enc28j60 (вот такого https://aliexpress.ru/item/1005001621773885.html?sku_id=12000016846771718), так что с интеграцией никаких проблем нету. СТМ прекрасно держит и Ethernet-сервер и DMD на одном чипе.
Вообще, общение по LAN мне очень понравилось, прямо даже захотелось сделать универсальную прошивку на контроллер под любые цели. Собственно, она уже частично есть, осталось только расписать настройки контроллера - смена IP-адреса и вообще сетевых настроек и смена параметров табло.
В связи с чем опять вопрос к Дмитрию: в старой (уже и не помню какой) версии ДМД мы делали, что можно было менять размер табло "на лету". В текущей версии это возможно?
В связи с чем опять вопрос к Дмитрию: в старой (уже и не помню какой) версии ДМД мы делали, что можно было менять размер табло "на лету". В текущей версии это возможно?
не могу сказать сразу, с тех пор я не отслеживал возможность создавать экземпляры классов ДМД динамически. Возможно, придется кое-что подправить.
Я сейчас не дома, вернусь через пару дней - посмотрю.
Если про само табло, то тут я позволю себе умолчать, типа коммерческая тайна :) На самом деле этим вопросом у меня занимается специально обученный мальчик, который в любом проекте старается получить максимальную прибыль - ибо к окладу имеет с каждого проекта бонус в размере 10% от прибыли, а деньги он очень любит :) Лично я бы не факт, что продал бы по такой цене, потому что у меня наглости не хватает... Но разброс цен на спортивные (весовые, дорожные, остановочные - короче любые специализированные) табло такого размера идет от 100 до 200 тысяч. Притом цена мало зависит от функционала (если там ничего исключительного), а только от возможностей заказчика. Как эти возможности определяются - понятия не имею. Я общаюсь с заказчиком только на предмет обсуждения ТЗ - и это мое добровольное отстранение, потому что тупо не умею продавать. Есть прайс на стандартные табло и экраны с китайскими контроллерами, вот в пределах его я всегда могу сказать цену. К примеру обычное рекламное табло такого размера по прайсу у нас стоит 65 тыр - вот прям сегодня заказывай, завтра к вечеру заберешь.
Если про обвес, то в данном проекте был мой контроллер (производство китай, заказываю под ключ в jlcpcb, себестоимость около 20$ + доставка) + Ethernet (что то около 350 рублей) + реле (рублей наверное 120-150) + сирена (1300 руб за пару) + БП питания сирены (1500 руб). Итого не более 5000 в сумме. Точных цен не скажу, потому что это все я покупал не сейчас, а давно, у меня всякого хлама в запасах есть обычно, на любой проект всегда что то найдется. Те же далласовские часы и термодатчики (любит народ часы-метеостанции) я покупаю десятками по мере истощения запасов.
Дополнительно была написана прошивка под контроллер и программа на ПК. Ну как написана... И то и то написано уже давно (мною же) и сейчас просто адаптировано под Lan. Потратил на это 3 дня, из которых 2 дня тупо изучал связь STM и enc28j60, крутил разные варианты передачи данных... Была мысль сделать связь по UDP, но откровенно не осилил за столь краткий срок (сроки традиционно горели).
Как оценивать работу программиста в этом случае, я понятия не имею, потому что я ему не плачу - сам пишу. А мне тоже никто не платит, потому что я сам себе с прибылей получаю... За декабрь это второй проект спец-табло. То есть выжить на это крайне сложно. Благо, за тот же декабрь я отгрузил обычных рекламных экранов на полсотни квадратов - что и является моим основным бизнесом. А это просто калым и хобби.
Имеется экран, собранный из шести панелей DMD P10 3х2. Родной контроллер для загрузки программ через флэшку изъял. Данные для отображения будут прилетать по радиомодулю RF24, подключенному к ардуино (Arduino Nano). Отображаться будет время прохождения трассы горнолыжником (для любительской команды). Читая описание DMD библиотеки увидел что подключать второй ряд панелей нужно развернув их кверху ногами, но (как тут обсуждалось) это неправильно из за козырьков над светодиодами.
Подскажите пожалуйста:
1) Поддерживает ли стандартная DMD (DMD2) соединение панелей без переворачивания ряда?
2) Стоит ли пробовать использовать имеющееся ардуино нано или перейти на STM и использовать обсуждаемую здесь библиотеку
Читая описание DMD библиотеки увидел что подключать второй ряд панелей нужно развернув их кверху ногами, но (как тут обсуждалось) это неправильно из за козырьков над светодиодами.
неверно поняли... Библиотека поддерживает как подключение зигзагом (с разворотом каждого второго ряда вверх ногами), так и стандартное подключение без разворота панелей. Можете подключать так, как вам удобнее.
- исправлено неправильное определение границ движущейся строки для национальных фонтов - баг, описанный Antsanv в #395
- исправлен баг с неверным определение высоты стандартного фонта (по наводке FoxJone)
- убраны артефакты при вертикальной прокрутке в режиме Parallel Monochome
Добавлена возможность выбирать используемые таймеры - пока можно выбрать из двух комбинаций :
Стандартная
Основной таймер - Timer4
OE таймер - Timer3 (соответственно возможные пины для OE - PA6 PA7 PB0 PB1)
Альтернативная
Основной таймер - Timer3
OE таймер - Timer4 (пины для OE - PB6 PB7 PB8 PB9)
В дальнейшем планирую добавить еще и Timer2, что позволит запускать библиотеку на младшем МК F103C6, у которого нет Timer4.
Жду откликов :) Огромное спасибо тем, кто сообщает об ошибках.
Ну, то что это хобби, не означает, что изделие не качественное. Вполне полноценное индустриальное изделие (у меня же цех по производству экранов), надежное и ремонтопригодное (блочный ремонт - замена блока делается за несколько минут). ПО тоже отработано. Та же программа на спортивные табло написана мною уже 4 года назад (писал ее где то 3 месяца, но с отрывами на другие проекты) и с тех пор регулярно дополняется и улучшается.
Кроме того, все что я делаю имеет отличительную способность - все сделано с расчетом, что будет пользоваться круглый ноль в IT (или 5-летний ребенок). То есть максимально простой интерфейс. Подавляющее большинство программистов грешат сложными интерфейсами и сами этого не замечают - потому что для них там все просто!
Так что хобби - это в смысле, что это не основной бизнес. Ну и мне действительно интересно этим заниматься :)
src вовсе не обязательно, такого правила нет, насколько я знаю.
Кейвордс и пропертис сделаю.... когда-нбдь :)
Хотя, конечно, в случае keywords это вопрос... это надо каждый метод и каждую константу там перечслить? - у меня их, наверно, сотни... И все только ради того, чтобы они расцвечивались в Ардуино ИДЕ?
Хотя не вопрос, если кто-то из пользователей попросит - сделаю...
Добрый вечер. Решил попробовать новую версию 0.6.11, подключаю схему по примеру DMD PARALEL, загораются только несколько пикселей. Пример запускается только если я подключаю SCKL к пинам PA12 или PA13, хотя на скетче указан PA15 и все пиксели рядом с текстом немного светятся. Пробовал другой контроллер Blue pill ,то жэ самое. И контроллер, и панели с предыдущей версией 0.4.2 работали отлично. Там есть какой то секрет или я что то делаю неправильно?
При включении появляется несколько вертикальных полос, движения нет, яркость меняется. Программа инициализирует SCLK как PA15, если переключиться на PA13 начинает работать бегущая строка, но с лишними пикселями и слабым фоном. Те же помехи при инициализации как PA13.
Да, это я сам невнимателен, перепутал с rgb матрицами.
Тогда сходу ничего посоветовать не могу.
Если у меня работает, а у вас нет - надо искать чем отличаются наши конфигурации.
Если не горит - давайте спишемся в понедельник, я сейчас на выезде.
Искал, какую бы картинку вывести на матрицу для примера. Оказалось очень сложно подобрать, потому что пиксельное разрешение низкое, цветовая глубина ограничена, картинки начинаешь конвертить - на светодиодной матрице полная фигня выходит. А тут жена мне подсказала - посмотри мол, узоры для вышивки. Глянул - и правда, в инете их сотни, там такие сюжеты, и монохром, и в цвете... и главное - они уже на пиксели расерчены :)
или вот, например, чем не готовый шрифт в старославянском стиле :)
Релиз является подготовкой к добавлению поддержки чипов STM32F4, поэтому код опять перепахан вдоль и поперек.
Новые возможности:
- добавляена поддержка уличных RGB матриц 1/2 1/4 скан, попутно изменен внутренний формат представления данных для режима RGB... впрочем, это уже детали...
Посколько типов сканирования уличных матриц у китайцев существует десятки видов, то очевидно что описанных в библиотеке 4х разновидностей не хватит. Будем добавлять по ходу. Положил в примерах специальный скрипт dmd_rgb_pattern_test.ino. Если у вас есть уличная матрица, которая не работает ни с одним шаблоном библиотеки - запускаете тест, снимаете результат на видео и присылаете мне.
- в Монохром Параллельном режиме добавлена возможность выбора ДАТА пинов не только в нижней, но теперь и в верхней половине GPIO порта (замедляет вывод, без необходимости не использовать)
- добавлен новый файл DMD_Config.h. в котором будут собираться различные настройки библиотеки, не требующие постоянного изменения, такие как выбор таймеров или частота ШИМ
- обновлены примеры, добавлен новый скетч с выводом картинки из битмап
Так же много мелких правок и исправлений, на 15% снижен расход RAM в режиме Монохром-СПИ, на 10% снизился размер кода в Параллельном режиме и тд и тп...
К голубой таблетке как в примере dmd_monochrome.ino:
nOE PB1
A PA1
B PA4
SCLK PA15
CLK PA5
R PA7
Код запустился, но появляется какая то паразитная засветка. Очень похоже на проблему в посте #419
То есть если я вывожу линию в 0-ю строку, то с небольшой яркостью горят строки 1,3,4,7,8,11,12,15
Если выдать прямоугольник, например 8x8 - засветка появляется во всех оставшихся пикселях
Менял интерфейсы SPI1, SPI2, PARA, разные платы STM32, провода. и LED-панели. Ничего не меняется
Заметил, что при отключении провода SCLK тоже ничего не меняется. Пробовал его на разные ноги сажать.
Похоже на наводки. Для начала убедитесь, что все контакты подключены надежно, особенно GND. Землю на разъеме HUB12 желательно подключать ко всем "земляным" пинам, а не только к одному.
Далее попробуйте выводить сигналы через преобразователь логических уровней
Похоже на наводки. Для начала убедитесь, что все контакты подключены надежно, особенно GND. Землю на разъеме HUB12 желательно подключать ко всем "земляным" пинам, а не только к одному.
Далее попробуйте выводить сигналы через преобразователь логических уровней
Напишите о результате
Добавил земляных проводов, проверил подключение остальных - результата нет
Пробовал полностью заменить кабель HUB12 - результата нет
Подключил через преобразователь уровней TXS0108E стало хуже, пикселы местами стали как-то периодически подергиваться. Похоже, преобразователь частоту SPI не держит. Или помех стало больше
Запитал МК и модули от другого источника питания - результатов нет
Уменьшил тактовую частоту SPI до 1Мгц - ситуация ухудшилась !!! Полоски стали ярче
Увеличил тактовую частоту SPI до 18МГц - ситуация улучшилась (правда увы не до конца)
я бы все-таки попробовал еще раз с каким-нибудь другим пробразователем уровня, не через TXS0108E.
С TXS0108E у меня тоже были большие проблемы, на форуме есть ветка об этом
И еще - вы не ответили, в каком вы городе. Я в МО, если вы недалеко - мог бы взять у вас одну панель и проверить.
ЗЫ кстати - а СТМ32 оригинал?
Из Перми я.
Сейчас поищу преобразователь. Если не найду, сам на фетах сделаю по быстрому. А нужен ли преобразователь? Там же все данные в одну сторону идут. Может просто делитель поставить на резисторах?
На одной пилюле стоит CKS32, на второй на вид оригинал (я ее давно покупал). Разницы в работе нету никакой. Шью через ST-Link китайский
sav13, не знаю, что предложить в вашем случае. На самом деле, мне очень интересно понять, откуда берутся эти полосы. С другой стороны - не знаю, как это можно выяснить, не имея в руках ваших панелей.
По поводу преобразователей. Я последнее время ставлю 74hc245. На коротких шлейфах и без них работает, но с ними стабильнее, особенно цветные матрицы.
Еще из любопытных наблюдений: на одиночные матрицы даже питание подавать не надо, не очень ярко, но показывает. Как-то даже землю на цветных отключил - все равно показывают. Видимо защитные диоды на входах м/с не такие уж и слабые.
Еще из любопытных наблюдений: на одиночные матрицы даже питание подавать не надо, не очень ярко, но показывает. Как-то даже землю на цветных отключил - все равно показывают. Видимо защитные диоды на входах м/с не такие уж и слабые.
Совсем не новость, но увлекаться этим не стоит. Я таким образом уже пару контроллеров спалил. То есть модуль питается через порты контроллера, а порты на это не рассчитаны.
Сейчас пробую Вашу первую библиотеку на stm32f103vet6 , который выбрал из за большого количества таймеров очень нужны для проекта,всё работает
но вот столкнулся с проблемой , у Вас используются таймеры 3,4 , но стоит запустить ещё таймер 2 или 1 и попытаться выполнять функции по времени и панель зависает хаотичными точками.
Дмитрий улучшает свою библиотеку уже много лет и столько же лет я под нее создаю контроллеры. Медленно, но верно улучшая их функционал, благо задачи для них всегда находятся и практическое применение позволяет постоянно тестировать и находить новые функции. В среднем выпускаю по 2-3 новых версий в год. В четверг получил новую партию и хочу похвастаться.
Минимальная версия - чип, выход Hub12, выход RS-485, питание 5 вольт. Разведены посадочные места под I2C (часы, датчики и прочее), 1-Wire, Ethernet модуль ENC28J60, выход UART2 (подключить ESP-01 и прочее), приемник 433 Мгц и USB. Ну и все свободные ноги МК тоже выводятся на посадочные места, так что всегда можно припаять хоть диод, хоть реле, хоть еще что.
И версия с встроенным сервером - собственно почти все тоже самое, но дополнительно на борту имеется достаточно мощный Ethernet-чип, на котором можно развернуть аж целых 2 независимых сервера (например один получает по TCP, а второй по UTP).
Так что если вдруг кому то надо готовых устройств, то их есть у меня...
И версия с встроенным сервером - собственно почти все тоже самое, но дополнительно на борту имеется достаточно мощный Ethernet-чип, на котором можно развернуть аж целых 2 независимых сервера (например один получает по TCP, а второй по UTP).
CH9121. На входе Lan, на выходе 2 канала UART, каждый из которых можно настроить на отдельный сервер. То есть чип получает посылку из сети, расшифровывает ее и выплевывает полученные данные в UART (только данные, без заголовков и прочей технической информации). Ну и наоборот - из UART в сеть. Очень удобно. Поддерживает 4 режима - клиент и сервер по TCP и UDP.
Сегодня закончил последнее на этот год спортивное табло, 192*96 см.
От всех предыдущих отличается наличием связи по Ethernet. Первый связал Ethernet и STM, но теперь то будут отлетать, как пирожки - технологию отработал. Тем более, что последнюю партию контроллеров делал уже с посадочным местом под распайку стандартного шилда на enc28j60 (вот такого https://aliexpress.ru/item/1005001621773885.html?sku_id=12000016846771718), так что с интеграцией никаких проблем нету. СТМ прекрасно держит и Ethernet-сервер и DMD на одном чипе.
Вообще, общение по LAN мне очень понравилось, прямо даже захотелось сделать универсальную прошивку на контроллер под любые цели. Собственно, она уже частично есть, осталось только расписать настройки контроллера - смена IP-адреса и вообще сетевых настроек и смена параметров табло.
В связи с чем опять вопрос к Дмитрию: в старой (уже и не помню какой) версии ДМД мы делали, что можно было менять размер табло "на лету". В текущей версии это возможно?
Сегодня закончил последнее на этот год спортивное табло, 192*96 см.
и какова цена вопроса?
В связи с чем опять вопрос к Дмитрию: в старой (уже и не помню какой) версии ДМД мы делали, что можно было менять размер табло "на лету". В текущей версии это возможно?
не могу сказать сразу, с тех пор я не отслеживал возможность создавать экземпляры классов ДМД динамически. Возможно, придется кое-что подправить.
Я сейчас не дома, вернусь через пару дней - посмотрю.
Если про само табло, то тут я позволю себе умолчать, типа коммерческая тайна :) На самом деле этим вопросом у меня занимается специально обученный мальчик, который в любом проекте старается получить максимальную прибыль - ибо к окладу имеет с каждого проекта бонус в размере 10% от прибыли, а деньги он очень любит :) Лично я бы не факт, что продал бы по такой цене, потому что у меня наглости не хватает... Но разброс цен на спортивные (весовые, дорожные, остановочные - короче любые специализированные) табло такого размера идет от 100 до 200 тысяч. Притом цена мало зависит от функционала (если там ничего исключительного), а только от возможностей заказчика. Как эти возможности определяются - понятия не имею. Я общаюсь с заказчиком только на предмет обсуждения ТЗ - и это мое добровольное отстранение, потому что тупо не умею продавать. Есть прайс на стандартные табло и экраны с китайскими контроллерами, вот в пределах его я всегда могу сказать цену. К примеру обычное рекламное табло такого размера по прайсу у нас стоит 65 тыр - вот прям сегодня заказывай, завтра к вечеру заберешь.
Если про обвес, то в данном проекте был мой контроллер (производство китай, заказываю под ключ в jlcpcb, себестоимость около 20$ + доставка) + Ethernet (что то около 350 рублей) + реле (рублей наверное 120-150) + сирена (1300 руб за пару) + БП питания сирены (1500 руб). Итого не более 5000 в сумме. Точных цен не скажу, потому что это все я покупал не сейчас, а давно, у меня всякого хлама в запасах есть обычно, на любой проект всегда что то найдется. Те же далласовские часы и термодатчики (любит народ часы-метеостанции) я покупаю десятками по мере истощения запасов.
Дополнительно была написана прошивка под контроллер и программа на ПК. Ну как написана... И то и то написано уже давно (мною же) и сейчас просто адаптировано под Lan. Потратил на это 3 дня, из которых 2 дня тупо изучал связь STM и enc28j60, крутил разные варианты передачи данных... Была мысль сделать связь по UDP, но откровенно не осилил за столь краткий срок (сроки традиционно горели).
Как оценивать работу программиста в этом случае, я понятия не имею, потому что я ему не плачу - сам пишу. А мне тоже никто не платит, потому что я сам себе с прибылей получаю... За декабрь это второй проект спец-табло. То есть выжить на это крайне сложно. Благо, за тот же декабрь я отгрузил обычных рекламных экранов на полсотни квадратов - что и является моим основным бизнесом. А это просто калым и хобби.
Добрый день, b707!
Имеется экран, собранный из шести панелей DMD P10 3х2. Родной контроллер для загрузки программ через флэшку изъял. Данные для отображения будут прилетать по радиомодулю RF24, подключенному к ардуино (Arduino Nano). Отображаться будет время прохождения трассы горнолыжником (для любительской команды). Читая описание DMD библиотеки увидел что подключать второй ряд панелей нужно развернув их кверху ногами, но (как тут обсуждалось) это неправильно из за козырьков над светодиодами.
Подскажите пожалуйста:
1) Поддерживает ли стандартная DMD (DMD2) соединение панелей без переворачивания ряда?
2) Стоит ли пробовать использовать имеющееся ардуино нано или перейти на STM и использовать обсуждаемую здесь библиотеку
Читая описание DMD библиотеки увидел что подключать второй ряд панелей нужно развернув их кверху ногами, но (как тут обсуждалось) это неправильно из за козырьков над светодиодами.
неверно поняли... Библиотека поддерживает как подключение зигзагом (с разворотом каждого второго ряда вверх ногами), так и стандартное подключение без разворота панелей. Можете подключать так, как вам удобнее.
подробнее тут, раздел "Подключение панелей: https://github.com/board707/DMD_STM32/wiki/Connecting-for-Monochrome-(rus)
1) Поддерживает ли стандартная DMD (DMD2) соединение панелей без переворачивания ряда?
- поддерживает
Не знаю, решать вам. Я давно не работаю с панелями на платах АВР, поэтому выступаю за СТМ
А это просто хобби.
ОК!
Обновление - версия v0.6.11
https://github.com/board707/DMD_STM32/tree/dev-V2
Изменения:
- исправлено неправильное определение границ движущейся строки для национальных фонтов - баг, описанный Antsanv в #395
- исправлен баг с неверным определение высоты стандартного фонта (по наводке FoxJone)
- убраны артефакты при вертикальной прокрутке в режиме Parallel Monochome
Добавлена возможность выбирать используемые таймеры - пока можно выбрать из двух комбинаций :
Стандартная
Основной таймер - Timer4
OE таймер - Timer3 (соответственно возможные пины для OE - PA6 PA7 PB0 PB1)
Альтернативная
Основной таймер - Timer3
OE таймер - Timer4 (пины для OE - PB6 PB7 PB8 PB9)
В дальнейшем планирую добавить еще и Timer2, что позволит запускать библиотеку на младшем МК F103C6, у которого нет Timer4.
Жду откликов :) Огромное спасибо тем, кто сообщает об ошибках.
Дима, а чего библиотеку по стандартам IDE не дооформишь? Для полного фэншуя так сказать...
ОК!
Ну, то что это хобби, не означает, что изделие не качественное. Вполне полноценное индустриальное изделие (у меня же цех по производству экранов), надежное и ремонтопригодное (блочный ремонт - замена блока делается за несколько минут). ПО тоже отработано. Та же программа на спортивные табло написана мною уже 4 года назад (писал ее где то 3 месяца, но с отрывами на другие проекты) и с тех пор регулярно дополняется и улучшается.
Кроме того, все что я делаю имеет отличительную способность - все сделано с расчетом, что будет пользоваться круглый ноль в IT (или 5-летний ребенок). То есть максимально простой интерфейс. Подавляющее большинство программистов грешат сложными интерфейсами и сами этого не замечают - потому что для них там все просто!
Так что хобби - это в смысле, что это не основной бизнес. Ну и мне действительно интересно этим заниматься :)
Дима, а чего библиотеку по стандартам IDE не дооформишь? Для полного фэншуя так сказать...
а что там не хватает?
Дима, а чего библиотеку по стандартам IDE не дооформишь? Для полного фэншуя так сказать...
а что там не хватает?
keywords.txt, library.properties и библиотеки в каталог SRC
библиотеки в каталог SRC
src вовсе не обязательно, такого правила нет, насколько я знаю.
Кейвордс и пропертис сделаю.... когда-нбдь :)
Хотя, конечно, в случае keywords это вопрос... это надо каждый метод и каждую константу там перечслить? - у меня их, наверно, сотни... И все только ради того, чтобы они расцвечивались в Ардуино ИДЕ?
Хотя не вопрос, если кто-то из пользователей попросит - сделаю...
Думаю сделать ветку dev-V2 (это та где RGB матрицы) дефолтной веткой на гитхабе . Есть возражения?
Добрый вечер. Решил попробовать новую версию 0.6.11, подключаю схему по примеру DMD PARALEL, загораются только несколько пикселей. Пример запускается только если я подключаю SCKL к пинам PA12 или PA13, хотя на скетче указан PA15 и все пиксели рядом с текстом немного светятся. Пробовал другой контроллер Blue pill ,то жэ самое. И контроллер, и панели с предыдущей версией 0.4.2 работали отлично. Там есть какой то секрет или я что то делаю неправильно?
ProTim, перечислите, к каким пинам что подключено.
какой именно пример запускаете?
=== дополнено позже ===
Только что попробовал версию 0.6.11 на режиме Монохром Параллельный
Пины и инициализация:
01
#define DMD_PIN_A PA1
02
#define DMD_PIN_B PA3
03
#define DMD_PIN_nOE PB1
04
#define DMD_PIN_SCLK PA15
05
06
// pins for SPI connect
07
// SPI specific pins as CLK and R_DATA has predefined values:
08
// for SPI(1) CLK = PA5 R_DATA = PA7
09
// for SPI(2) CLK = PB13 R_DATA = PB15
10
// --------------------------------------------------------
11
12
uint8_t pins[] = { PA5, PA7, PA6 };
// CLK , row1, row 2
13
14
//Fire up the DMD object as dmd
15
DMD_Monochrome_Parallel dmd(DMD_PIN_A, DMD_PIN_B, DMD_PIN_nOE, DMD_PIN_SCLK, pins, DISPLAYS_ACROSS, DISPLAYS_DOWN,ENABLE_DUAL_BUFFER);
Работает без проблем
Пини как на примере dmd-monochrome , сам пример без изменений
01
#define DMD_PIN_A PA1
02
#define DMD_PIN_B PA4
03
#define DMD_PIN_nOE PB1
04
#define DMD_PIN_SCLK PA15
05
06
// pins for SPI connect
07
// SPI specific pins as CLK and R_DATA has predefined values:
08
// for SPI(1) CLK = PA5 R_DATA = PA7
09
// for SPI(2) CLK = PB13 R_DATA = PB15
10
// --------------------------------------------------------
11
12
//=== Config for Parallel connect ====
13
#if defined(DMD_PARA)
14
//pins for rows at x axis
15
// example for two rows
16
// all those pins must be selected from same port!
17
uint8_t pins[] = { PA5, PA7, PA6 };
// CLK , row1, row 2
18
19
//Fire up the DMD object as dmd
20
DMD_Monochrome_Parallel dmd(DMD_PIN_A, DMD_PIN_B, DMD_PIN_nOE, DMD_PIN_SCLK, pins, DISPLAYS_ACROSS, DISPLAYS_DOWN,ENABLE_DUAL_BUFFER);
В чем выражается не работа?
При включении появляется несколько вертикальных полос, движения нет, яркость меняется. Программа инициализирует SCLK как PA15, если переключиться на PA13 начинает работать бегущая строка, но с лишними пикселями и слабым фоном. Те же помехи при инициализации как PA13.
Pa15 - это пин CLK, а не SCLK, будьте внимательны
Из Вашего примера: #define DMD_PIN_SCLK PA15
Да, это я сам невнимателен, перепутал с rgb матрицами.
Тогда сходу ничего посоветовать не могу.
Если у меня работает, а у вас нет - надо искать чем отличаются наши конфигурации.
Если не горит - давайте спишемся в понедельник, я сейчас на выезде.
Здравствуйте !
А может Вы сможете адаптировать библиотеку, под ядро от самой ST
https://github.com/stm32duino/Arduino_Core_STM32
Под ядром от Роджера Кларка она работает, но ядро от ST более перспективное на мой взгляд.
Я пробовал сам но, ума не хватило, но понял что там не много, синтаксис таймеров подправить, и немного DMA и SPI.
С уважением и благодарностью.....
Здравствуйте, добавление Стм-аддона в планах, но не в первой очереди.
Искал, какую бы картинку вывести на матрицу для примера. Оказалось очень сложно подобрать, потому что пиксельное разрешение низкое, цветовая глубина ограничена, картинки начинаешь конвертить - на светодиодной матрице полная фигня выходит. А тут жена мне подсказала - посмотри мол, узоры для вышивки. Глянул - и правда, в инете их сотни, там такие сюжеты, и монохром, и в цвете... и главное - они уже на пиксели расерчены :)
или вот, например, чем не готовый шрифт в старославянском стиле :)
бери и перерисовывай по точкам :) https://www.pinme.ru/pin/53c9d7c21f8511db2c3a47c7/
Взято отсюда https://www.pinme.ru/u/yavazhure/slavyanskaya-vyishivka-shemyi-uzoryi/
Обновление - версия v0.7.0
https://github.com/board707/DMD_STM32/tree/dev-V2
Релиз является подготовкой к добавлению поддержки чипов STM32F4, поэтому код опять перепахан вдоль и поперек.
Новые возможности:
- добавляена поддержка уличных RGB матриц 1/2 1/4 скан, попутно изменен внутренний формат представления данных для режима RGB... впрочем, это уже детали...
Посколько типов сканирования уличных матриц у китайцев существует десятки видов, то очевидно что описанных в библиотеке 4х разновидностей не хватит. Будем добавлять по ходу. Положил в примерах специальный скрипт dmd_rgb_pattern_test.ino. Если у вас есть уличная матрица, которая не работает ни с одним шаблоном библиотеки - запускаете тест, снимаете результат на видео и присылаете мне.
- в Монохром Параллельном режиме добавлена возможность выбора ДАТА пинов не только в нижней, но теперь и в верхней половине GPIO порта (замедляет вывод, без необходимости не использовать)
- добавлен новый файл DMD_Config.h. в котором будут собираться различные настройки библиотеки, не требующие постоянного изменения, такие как выбор таймеров или частота ШИМ
- обновлены примеры, добавлен новый скетч с выводом картинки из битмап
Так же много мелких правок и исправлений, на 15% снижен расход RAM в режиме Монохром-СПИ, на 10% снизился размер кода в Параллельном режиме и тд и тп...
Огромное спасибо тем, кто сообщает об ошибках.
Доброе время суток
Подключил монохромные панели от P10.ru
https://p10.ru/product/svetodiodnyj-modul-p10-krasnyj-meiyad/
К голубой таблетке как в примере dmd_monochrome.ino:
nOE PB1
A PA1
B PA4
SCLK PA15
CLK PA5
R PA7
Код запустился, но появляется какая то паразитная засветка. Очень похоже на проблему в посте #419
То есть если я вывожу линию в 0-ю строку, то с небольшой яркостью горят строки 1,3,4,7,8,11,12,15
Если выдать прямоугольник, например 8x8 - засветка появляется во всех оставшихся пикселях
Менял интерфейсы SPI1, SPI2, PARA, разные платы STM32, провода. и LED-панели. Ничего не меняется
Заметил, что при отключении провода SCLK тоже ничего не меняется. Пробовал его на разные ноги сажать.
Библиотеки пробовал 7.0.0 и 0.6.3
Похоже на наводки. Для начала убедитесь, что все контакты подключены надежно, особенно GND. Землю на разъеме HUB12 желательно подключать ко всем "земляным" пинам, а не только к одному.
Далее попробуйте выводить сигналы через преобразователь логических уровней
Напишите о результате
Похоже на наводки. Для начала убедитесь, что все контакты подключены надежно, особенно GND. Землю на разъеме HUB12 желательно подключать ко всем "земляным" пинам, а не только к одному.
Далее попробуйте выводить сигналы через преобразователь логических уровней
Напишите о результате
Добавил земляных проводов, проверил подключение остальных - результата нет
Пробовал полностью заменить кабель HUB12 - результата нет
Подключил через преобразователь уровней TXS0108E стало хуже, пикселы местами стали как-то периодически подергиваться. Похоже, преобразователь частоту SPI не держит. Или помех стало больше
Запитал МК и модули от другого источника питания - результатов нет
Уменьшил тактовую частоту SPI до 1Мгц - ситуация ухудшилась !!! Полоски стали ярче
Увеличил тактовую частоту SPI до 18МГц - ситуация улучшилась (правда увы не до конца)
Либо модули не те, либо что то не так подключаете. Где то были у меня мейадовские модули, сейчас попробую.
А можете фото подключения показать?
sav13, а вы территориально где? - страна, город
Либо модули не те, либо что то не так подключаете. Где то были у меня мейадовские модули, сейчас попробую.
А можете фото подключения показать?
Синий - nOE - PB1
Зеленый - A - PA1
Желтый - B - PA4
Оранжевый - CLK - PA5
Красный - SCLK - PA15
Коричневый - R - PA7
Черный - GND
sav13,, перед тем как подключить эту библиотеку - вы вроде пробовали какие-то другие? С ними нормально работало? - если да. опишите подробнее
sav13,, перед тем как подключить эту библиотеку - вы вроде пробовали какие-то другие? С ними нормально работало? - если да. опишите подробнее
До этого подключал DMD32 к ESP32 - правда мог там внимание мог не обратить на засветку. Там пример был динамический
Сейчас по быстрому подключил к Arduino UNO. Библиотека DMD2 c классом SoftDMD
Все нормально. Та же линия
Сейчас по быстрому подключил к Arduino UNO. Библиотека DMD2 c классом SoftDMD
я бы все-таки попробовал еще раз с каким-нибудь другим пробразователем уровня, не через TXS0108E.
С TXS0108E у меня тоже были большие проблемы, на форуме есть ветка об этом
И еще - вы не ответили, в каком вы городе. Я в МО, если вы недалеко - мог бы взять у вас одну панель и проверить.
ЗЫ кстати - а СТМ32 оригинал?
я бы все-таки попробовал еще раз с каким-нибудь другим пробразователем уровня, не через TXS0108E.
С TXS0108E у меня тоже были большие проблемы, на форуме есть ветка об этом
И еще - вы не ответили, в каком вы городе. Я в МО, если вы недалеко - мог бы взять у вас одну панель и проверить.
ЗЫ кстати - а СТМ32 оригинал?
Из Перми я.
Сейчас поищу преобразователь. Если не найду, сам на фетах сделаю по быстрому. А нужен ли преобразователь? Там же все данные в одну сторону идут. Может просто делитель поставить на резисторах?
На одной пилюле стоит CKS32, на второй на вид оригинал (я ее давно покупал). Разницы в работе нету никакой. Шью через ST-Link китайский
А нужен ли преобразователь? Там же все данные в одну сторону идут. Может просто делитель поставить на резисторах?
делитель хорошо работает от большого напряжения к маленькому, а тут надо наоборот.
на CKS32 не работает, тут в ветке человек уже отписывался, картинка у него похожая была.
Из Перми я.
если как-то просто победить не выйдет - можете мне выслать одну панель, транспортной компанией за неделю дойдет.
если как-то просто победить не выйдет - можете мне выслать одну панель, транспортной компанией за неделю дойдет.
Попробовал ESP32 с библиотекой DMD32 на аппаратном SPI. Все работает без этих полос. А у ESP 3-х вольтовая логика. Может дело и в фейковых чипах STM.
sav13, не знаю, что предложить в вашем случае. На самом деле, мне очень интересно понять, откуда берутся эти полосы. С другой стороны - не знаю, как это можно выяснить, не имея в руках ваших панелей.
По поводу преобразователей. Я последнее время ставлю 74hc245. На коротких шлейфах и без них работает, но с ними стабильнее, особенно цветные матрицы.
Еще из любопытных наблюдений: на одиночные матрицы даже питание подавать не надо, не очень ярко, но показывает. Как-то даже землю на цветных отключил - все равно показывают. Видимо защитные диоды на входах м/с не такие уж и слабые.
Еще из любопытных наблюдений: на одиночные матрицы даже питание подавать не надо, не очень ярко, но показывает. Как-то даже землю на цветных отключил - все равно показывают. Видимо защитные диоды на входах м/с не такие уж и слабые.
Совсем не новость, но увлекаться этим не стоит. Я таким образом уже пару контроллеров спалил. То есть модуль питается через порты контроллера, а порты на это не рассчитаны.
Здравствуйте.
Загрузил пример для Stm32 новой версии библиотеки файл dmd_monochrome.ino
Исправил только
#define DISPLAYS_DOWN 2
на
#define DISPLAYS_DOWN 1
ну и закомментировал //#define DMD_PARA
Панель обычная 32 *16 с предыдущей версией библиотеки работала корректно
В этом примере при движении бегущей строки влево, не добегает 5 пикселей...
Помогите кто знает ???
В этом примере при движении бегущей строки влево, не добегает 5 пикселей...
так и задумано.
Это демострация работы двойного буфера.
Чтобы строчка добегала до самого края - закооментируйте 170 строку примера
1
if
(step[i] != 1) dmd.drawFilledBox(0, 0, 5, dmd.height() - 1, GRAPHICS_INVERSE);
Спасибо. Разобрался двойной буфер полезная штука.
Сейчас пробую Вашу первую библиотеку на stm32f103vet6 , который выбрал из за большого количества таймеров очень нужны для проекта,всё работает
но вот столкнулся с проблемой , у Вас используются таймеры 3,4 , но стоит запустить ещё таймер 2 или 1 и попытаться выполнять функции по времени и панель зависает хаотичными точками.
Кто знает почему...
Удалите пожалуйста предыдущее сообщение и это
сам ошибся....
Сейчас пробую Вашу первую библиотеку на stm32f103vet6 , который выбрал из за большого количества таймеров очень нужны для проекта,всё работает
"Первую библиотеку" - это какую?
Кстати, если вам нужна помощь с проектом - обращайтесь, я пишу для СТМ32
В качестве апа.
Дмитрий улучшает свою библиотеку уже много лет и столько же лет я под нее создаю контроллеры. Медленно, но верно улучшая их функционал, благо задачи для них всегда находятся и практическое применение позволяет постоянно тестировать и находить новые функции. В среднем выпускаю по 2-3 новых версий в год. В четверг получил новую партию и хочу похвастаться.
Минимальная версия - чип, выход Hub12, выход RS-485, питание 5 вольт. Разведены посадочные места под I2C (часы, датчики и прочее), 1-Wire, Ethernet модуль ENC28J60, выход UART2 (подключить ESP-01 и прочее), приемник 433 Мгц и USB. Ну и все свободные ноги МК тоже выводятся на посадочные места, так что всегда можно припаять хоть диод, хоть реле, хоть еще что.
И версия с встроенным сервером - собственно почти все тоже самое, но дополнительно на борту имеется достаточно мощный Ethernet-чип, на котором можно развернуть аж целых 2 независимых сервера (например один получает по TCP, а второй по UTP).
Так что если вдруг кому то надо готовых устройств, то их есть у меня...
И версия с встроенным сервером - собственно почти все тоже самое, но дополнительно на борту имеется достаточно мощный Ethernet-чип, на котором можно развернуть аж целых 2 независимых сервера (например один получает по TCP, а второй по UTP).
какой чип ? если не секрет .по фотке не разобрать
CH9121. На входе Lan, на выходе 2 канала UART, каждый из которых можно настроить на отдельный сервер. То есть чип получает посылку из сети, расшифровывает ее и выплевывает полученные данные в UART (только данные, без заголовков и прочей технической информации). Ну и наоборот - из UART в сеть. Очень удобно. Поддерживает 4 режима - клиент и сервер по TCP и UDP.