Colorlight 5A-75B: как приёмная плата для LED-экранов стала бюджетной платой FPGA-разработки

Блог проекта YosysHQ опубликовал первую часть цикла статей Криса Ласоцки ("polprog") о плате Colorlight 5A-75B. Это так называемая приёмная карта (receiver card), стандартный компонент модульных светодиодных экранов, который стоит между управляющим компьютером и самими LED-панелями и отвечает за приём видеосигнала и его передачу на панели. По всей видимости, случайно эта плата оказалась удобной платформой для разработки на FPGA: на ней стоит FPGA Lattice ECP5 (модель LFE5U25-F), полностью поддерживаемая открытым инструментарием Yosys, от компилятора Verilog и модуля размещения и трассировки до генератора битстрима. Хардварные энтузиасты обратили на плату внимание, и вскоре пользователь q3k вместе с другими полностью реверс-инжинирили её: сейчас доступны схема, распиновка и другая документация.
Характеристики платы: два порта Gigabit Ethernet, 16 Мбит SDRAM для временного хранения данных, 16 Мбит флеш-памяти того же объёма для хранения битстрима, 8 выходных портов с распиновкой HUB75, выходы на 5В, а также тактовый генератор на 25 МГц, один светодиод и кнопка на борту. Средняя цена, $20, 25, что делает Colorlight 5A-75B, по словам автора, единственной платой разработки с двумя портами Gigabit Ethernet в этом ценовом диапазоне; SDRAM на 16 Мбит, по его оценке, должно хватать для большинства задач и при этом несложно написать под неё контроллер.
Чтобы начать работу, достаточно припаять 4-контактный разъём к имеющемуся на плате порту JTAG и загружать битстримы в FPGA с помощью открытого JTAG-адаптера вроде Bus Pirate. Тактового генератора на 25 МГц, светодиода и кнопки достаточно для классического Verilog-проекта уровня "hello world", мигания светодиодом; во второй части цикла автор обещает показать, как написать, скомпилировать и загрузить такой проект.
Главный недостаток платы, по умолчанию у неё нет входов: чтобы получить двунаправленный ввод-вывод на 3,3В, выходные драйверы 74HC245 нужно заменить на совместимые по выводам двунаправленные преобразователи уровня, например SN74CBT3245A. Возможны и другие варианты, от миниатюрных плат, заменяющих драйверы проводными перемычками, до переключения направления через отдельный управляющий вывод драйверов.
Автор поста, Крис "polprog" Ласоцки, электронщик-энтузиаст и начинающий физик, пишущий диссертацию по FPGA; ведёт собственный блог на polprog.net.
Ключевые факты
- Colorlight 5A-75B, приёмная карта для модульных LED-экранов, которая по всей видимости случайно оказалась удобной и дешёвой платой для разработки на FPGA.
- На плате стоит FPGA Lattice ECP5 (LFE5U25-F), полностью поддерживаемая открытым инструментарием Yosys, от компилятора Verilog до генератора битстрима; цена, $20, 25.
- Характеристики: два порта Gigabit Ethernet, 16 Мбит SDRAM, 16 Мбит флеш-памяти под битстрим, 8 выходов HUB75, 5В-выходы, тактовый генератор на 25 МГц.
- Схема и распиновка платы полностью раскрыты после реверс-инжиниринга пользователем q3k и другими хакерами.
- Главный недостаток, нет входов по умолчанию: выходные драйверы 74HC245 нужно заменить на двунаправленные преобразователи уровня вроде SN74CBT3245A.
Почему это важно
Открытая разработка под FPGA долго упиралась в две вещи: дорогие платы и закрытые фирменные инструменты производителей. Colorlight 5A-75B снимает обе проблемы разом, она стоит $20, 25 и построена на FPGA Lattice ECP5, для которой Yosys даёт полностью открытую цепочку от компиляции Verilog до генерации битстрима. То, что плата вообще не задумывалась как средство разработки, а досталась хакерскому сообществу случайно как побочный продукт индустрии LED-экранов, делает историю показательной: массовое дешёвое железо для одной задачи оказывается пригодным для совсем другой, если у него открытая архитектура и кто-то готов её реверс-инжинирить.
Кому это важно
В первую очередь, хардварным хакерам, студентам и любителям электроники, которые хотят попробовать разработку на FPGA и Verilog без покупки дорогой фирменной платы разработки. Автор поста сам из этой категории: он пишет диссертацию по FPGA и ведёт собственный блог по электронике. Пригодится плата и тем, кому для проекта нужны сразу два гигабитных Ethernet-порта в бюджетном сегменте, по словам автора, других таких плат разработки в этой ценовой категории нет.
Как это применить
Для начала работы достаточно припаять 4-контактный разъём к уже имеющемуся на плате порту JTAG и подключить любой открытый JTAG-адаптер, например Bus Pirate, после этого можно загружать в FPGA битстримы, собранные инструментарием Yosys. Заложенных на плате ресурсов, тактового генератора на 25 МГц, одного светодиода и кнопки, достаточно для классического стартового проекта на Verilog: мигания светодиодом. Автор обещает во второй части цикла показать написание, компиляцию и загрузку именно такого проекта.
Можно ли доверять
Материал опубликован на официальном блоге YosysHQ, команды, разрабатывающей сам open source-инструментарий Yosys, и подписан гостевым автором Крисом "polprog" Ласоцки с указанием его профессионального интереса к FPGA и собственного блога. Это первая часть заявленной серии из двух постов, ссылка на вторую часть уже приведена в тексте. Ключевые технические утверждения о плате проверяемы независимо: схема и распиновка Colorlight 5A-75B получены реверс-инжинирингом пользователем q3k и другими и опубликованы отдельно. Часть оценочных заявлений, например, что это единственная плата разработки с двумя гигабитными портами в своей ценовой категории, на совести автора и явно поданы как его мнение, а не проверенный факт.
Риски и подводные камни
Из коробки у платы нет входов, на выходных портах стоят однонаправленные драйверы 74HC245, и без доработки принимать сигналы через них нельзя. Решение, заменить их на совместимые по выводам двунаправленные преобразователи уровня (например, SN74CBT3245A), дающие 3,3-вольтовый двунаправленный ввод-вывод; автор упоминает и более грубые обходные пути вроде миниатюрных плат-переходников с проводными перемычками вместо драйверов. Ни дата выпуска самой платы, ни исходный производитель модульного стандарта LED-экранов, частью которого она была, в источнике не названы, как и точная дата публикации второй части цикла.