Het artikel bespreekt de Colorlight 5A-75B, een oorspronkelijk voor LED-displays bedoelde receiver card die nu populair is als goedkoop FPGA-ontwikkelingsbord. Het bord maakt gebruik van de Lattice ECP5 FPGA en is volledig compatibel met de open-source Yosys-toolchain.
Belangrijkste kenmerken:
- Hardware: Uitgerust met een Lattice ECP5 LFE5U25-F FPGA, dubbele Gigabit Ethernet-interfaces, 16Mbit SDRAM en 16Mbit Flash-geheugen.
- Toegankelijkheid: Dankzij reverse-engineering door de community zijn schema's en pinouts beschikbaar, waardoor het bord voor een prijs van 20-25 USD zeer toegankelijk is voor hobbyisten.
- Hacking: Via een onboard JTAG-poort kunnen bitstreams worden geüpload. Het artikel merkt op dat de standaard output-drivers vervangen kunnen worden door bidirectionele level shifters (zoals de
SN74CBT3245A) om inputs mogelijk te maken.
Het bord wordt aanbevolen als een uitstekende instapmogelijkheid voor wie wil experimenteren met open-source FPGA-programmering zonder hoge kosten.
Introductie van het Colorlight 5A-75B bord
Deze gastblog is het eerste deel van een tweeluik door Chris Lasocki. Deel 2 is nu beschikbaar via de website.
Het lijkt een toevalstreffer: een generiek onderdeel van een LED-display is veranderd in een goedkoop FPGA-ontwikkelingsbord. Het betreffende bord is de Colorlight 5A-75B, een zogenaamde receiver card. Met een Lattice ECP5 FPGA, die wordt ondersteund door Yosys, stelt het je in staat om gebruik te maken van een volledig open-source FPGA-ontwikkeltoolchain. Met een gemiddelde prijs van 20-25 USD is het een zeer toegankelijk bord.
De Colorlight 5A-75B maakte oorspronkelijk deel uit van een modulaire LED-displaystandaard. Het is een receiver card, wat betekent dat het zich bevindt tussen de computer die de show aanstuurt en de LED-panelen zelf. Het vervult de basisfunctie, maar cruciale taak, om het videosignaal te ontvangen en de RGB-panelen dienovereenkomstig aan te sturen.
Dit proces vereist veel bandbreedte, waardoor het bord is uitgerust met een matig snelle ECP5 LFE5U25-F FPGA en twee Gigabit Ethernet-interfaces. Er is ook een 16Mbit SDRAM voor tijdelijke opslag en een Flash-geheugen van dezelfde grootte voor het opslaan van de bitstream. Het beschikt over acht outputpoorten met een bekende pinout (HUB75) en 5V-outputs.
Het bord trok de aandacht van hardwarehackers en werd kort daarna volledig reverse-engineered door q3k en anderen. Er is een schema met pinouts beschikbaar, evenals andere documentatie. Er is hier een enorme hoeveelheid werk in gestoken, wat ervoor zorgt dat het Colorlight-bord nu op een 'hacker-achtige' manier kan worden gebruikt.
Toevalligerwijs blijkt dit bordontwerp een uitstekend compromis te zijn tussen functierijkdom en IO-mogelijkheden. De enige aanwezige randapparatuur op het bord is basis- of hogesnelheidsapparatuur, die lastig aan te sluiten zou zijn via de 0.1" pin headers. Het is bovendien het enige ontwikkelingsbord in deze prijsklasse met een dubbele Gigabit Ethernet-interface. Aangezien het simpelweg een FPGA is, zou het 16MBit SDRAM voor de meeste toepassingen voldoende moeten zijn, terwijl het eenvoudig is om hier een controller voor te implementeren.
Het bord hacken
Met de onboard JTAG-poort hoef je alleen een 4-pins header vast te solderen en je bent klaar om je eigen bitstreams naar de ECP5 FPGA te uploaden. Deze FPGA wordt volledig ondersteund door de Yosys-toolchain—van de Verilog-compiler tot de place-and-route engine en de bitstream-generator. Samen met een open-source JTAG-adapter zoals de Bus Pirate (of eigenlijk هر iets anders) duurt het slechts een moment om de bitstream te verzenden en je code te zien draaien.
Er is een aanzienlijke hoeveelheid door de gebruiker toegankelijke IO beschikbaar op de HUB75-headers. De FPGA krijgt een 25MHz klok aangevoerd, en er is één onboard LED en een knop aanwezig, wat ruim voldoende is voor een Verilog “Hello, world!”-project: het laten knipperen van de LED.
Het enige nadeel van dit bord is het gebrek aan inputs standaard. Je moet de 74HC245 output-drivers vervangen door bidirectionele level shifters. Er bestaat echter een pin-compatibele level shifter IC, de SN74CBT3245A, die de standaard output-driver kan vervangen en 3v3 bidirectionele IO biedt. Andere opties, zoals het maken van kleine PCB's die de shifters vervangen door draden, of het verbinden van de direction pin van de output-drivers met een IO-pin, zijn ook mogelijk.
Samenvatting
De Colorlight 5A-75B is een goede keuze voor wie open-source FPGA-programmering wil proberen zonder een aanzienlijk bedrag uit te geven aan een klassiek ontwikkelingsbord. De onboard randapparatuur is voldoende voor een eerste project om kennis te maken met de toolchain. Gigabit Ethernet en SDRAM kunnen in de toekomst ook handig zijn voor meer geavanceerde projecten.
In het volgende bericht zal ik beschrijven hoe je een Verilog-project schrijft, compileert en uploadt om de onboard LED van het 5A-75B bord te laten knipperen.
***
Over de auteur
Chris “polprog” Lasocki (@polprogpl) is een ervaren elektronica-hacker en een beginnend natuurkundige. FPGA's zijn een van zijn hobby's en hij schrijft momenteel een thesis in dat vakgebied. Zijn andere interesses omvatten laserfysica en embedded programmeringsprojecten. Hij beheert een blog op polprog.net.
Introductie van het Colorlight 5A-75B bord
Deze gastblog is het eerste deel van een tweeluik door Chris Lasocki. Deel 2 is nu beschikbaar via de website.
Het lijkt een toevalstreffer: een generiek onderdeel van een LED-display is veranderd in een goedkoop FPGA-ontwikkelingsbord. Het betreffende bord is de Colorlight 5A-75B, een zogenaamde receiver card. Met een Lattice ECP5 FPGA, die wordt ondersteund door Yosys, stelt het je in staat om gebruik te maken van een volledig open-source FPGA-ontwikkeltoolchain. Met een gemiddelde prijs van 20-25 USD is het een zeer toegankelijk bord.
De Colorlight 5A-75B maakte oorspronkelijk deel uit van een modulaire LED-displaystandaard. Het is een receiver card, wat betekent dat het zich bevindt tussen de computer die de show aanstuurt en de LED-panelen zelf. Het vervult de basisfunctie, maar cruciale taak, om het videosignaal te ontvangen en de RGB-panelen dienovereenkomstig aan te sturen.
Dit proces vereist veel bandbreedte, waardoor het bord is uitgerust met een matig snelle ECP5 LFE5U25-F FPGA en twee Gigabit Ethernet-interfaces. Er is ook een 16Mbit SDRAM voor tijdelijke opslag en een Flash-geheugen van dezelfde grootte voor het opslaan van de bitstream. Het beschikt over acht outputpoorten met een bekende pinout (HUB75) en 5V-outputs.
Het bord trok de aandacht van hardwarehackers en werd kort daarna volledig reverse-engineered door q3k en anderen. Er is een schema met pinouts beschikbaar, evenals andere documentatie. Er is hier een enorme hoeveelheid werk in gestoken, wat ervoor zorgt dat het Colorlight-bord nu op een 'hacker-achtige' manier kan worden gebruikt.
Toevalligerwijs blijkt dit bordontwerp een uitstekend compromis te zijn tussen functierijkdom en IO-mogelijkheden. De enige aanwezige randapparatuur op het bord is basis- of hogesnelheidsapparatuur, die lastig aan te sluiten zou zijn via de 0.1" pin headers. Het is bovendien het enige ontwikkelingsbord in deze prijsklasse met een dubbele Gigabit Ethernet-interface. Aangezien het simpelweg een FPGA is, zou het 16MBit SDRAM voor de meeste toepassingen voldoende moeten zijn, terwijl het eenvoudig is om hier een controller voor te implementeren.
Het bord hacken
Met de onboard JTAG-poort hoef je alleen een 4-pins header vast te solderen en je bent klaar om je eigen bitstreams naar de ECP5 FPGA te uploaden. Deze FPGA wordt volledig ondersteund door de Yosys-toolchain—van de Verilog-compiler tot de place-and-route engine en de bitstream-generator. Samen met een open-source JTAG-adapter zoals de Bus Pirate (of eigenlijk هر iets anders) duurt het slechts een moment om de bitstream te verzenden en je code te zien draaien.
Er is een aanzienlijke hoeveelheid door de gebruiker toegankelijke IO beschikbaar op de HUB75-headers. De FPGA krijgt een 25MHz klok aangevoerd, en er is één onboard LED en een knop aanwezig, wat ruim voldoende is voor een Verilog “Hello, world!”-project: het laten knipperen van de LED.
Het enige nadeel van dit bord is het gebrek aan inputs standaard. Je moet de 74HC245 output-drivers vervangen door bidirectionele level shifters. Er bestaat echter een pin-compatibele level shifter IC, de SN74CBT3245A, die de standaard output-driver kan vervangen en 3v3 bidirectionele IO biedt. Andere opties, zoals het maken van kleine PCB's die de shifters vervangen door draden, of het verbinden van de direction pin van de output-drivers met een IO-pin, zijn ook mogelijk.
Samenvatting
De Colorlight 5A-75B is een goede keuze voor wie open-source FPGA-programmering wil proberen zonder een aanzienlijk bedrag uit te geven aan een klassiek ontwikkelingsbord. De onboard randapparatuur is voldoende voor een eerste project om kennis te maken met de toolchain. Gigabit Ethernet en SDRAM kunnen in de toekomst ook handig zijn voor meer geavanceerde projecten.
In het volgende bericht zal ik beschrijven hoe je een Verilog-project schrijft, compileert en uploadt om de onboard LED van het 5A-75B bord te laten knipperen.
***
Over de auteur
Chris “polprog” Lasocki (@polprogpl) is een ervaren elektronica-hacker en een beginnend natuurkundige. FPGA's zijn een van zijn hobby's en hij schrijft momenteel een thesis in dat vakgebied. Zijn andere interesses omvatten laserfysica en embedded programmeringsprojecten. Hij beheert een blog op polprog.net.