Вот неужели Вам нечем больше заняться?
Просто я спаял два лопуха регистров и ключей всего. Надо же их спаять аж 20 штук. Поняли все правильно, что на каждую строку своя плата. Все эти платы соединить последовательно и получится общая суть всего табло.
Схемы этих плат у меня никогда не было. Были только приблизительные ранее в теме, где и рекомендовали поставить кучу регистров и гнать данные не динамикой по строкам или столбцам, а все сразу. Т.е. заливать полный массив и выводить все сразу на экран. От чего я теперь немного переживаю, потянет ли это все мой блок питания.
По схеме же одной платы, там все просто. Используются регистры 74НС595. На микроконтроллер выведены все необходимые выводы регистра. Такие как: MR - сброс всего регистра, DS - данные, SH_CP - синхроимпульсы, ST_CP - защелка.
На плате собрано последовательно 5 регистров, а все выводы управления ими соединены параллельно. (Ну как и вроде должно было быть).
Никаких шинных формирователей я еще не использовал. Да и не на платах этих они не нужны.
Чтобы было проще развести плату и делать меньше перемычек (а эти регистры не очень удобны в разводке), решил не использовать некоторые их выводы, как и выводы ULN2003. Микросхем этих и тех у меня в избытке.
Получилось, что первый вывод каждого регистра не используется. Поэтому первый передаваемый бит на эту плату игнорируется, т.к. вывод ни к чему не подключен. Затем три вывода идут по-порядку. После чего опять вывод не используется и три по порядку.
Из 8 выводов регистра выкинуты получаются каждый 1ый и каждый 5ый.
Вот, нарисовал примерную схему, надеюсь понятная (по сути, там ничего сложного и нету) (не указаны ULN2003, стабилизатор AMS1117):
Один регистр в итоге управляет двумя платами со светодиодами. Т.к. платы с РГБ светодиодами, то эти оставшиеся три бита задают цвет.
Вот и все.
Я написал на демо-платке тестовую программку для вывода произвольного цвета на эти платы. Создал массив, который заполнил байтами (10 штук). И тупым ногодрыгом впихивал их в эти регистры по 4 бита, где каждый первый бит был любым не из этого массива. Все вроде не сложное, но почему-то где-то натупил и цвета горят лишь на 80% те, которые в массиве. При этом в непонятной последовательности. Подозревал, что это по регистрам они гонятся без очистки. Но я же дергал MR (сброс), как в описании. Он должен был их чистить. Потом написал тупую подпрограммку для очистки, которая забивала регистры нулями. Все равно что-то не то.
Теперь думаю, что это какие-то недочеты по железу.
З.Ы. Простите за много слов. И благодарю за проявленный интерес к моим глупостям.
