Op 17 juni 2007 20:24:01 schreef Jeroen Boere:
is jou systeem zo snel genoeg dat je er bijvoorbeeld weer led's mee aan kan sturen en zo doende een videoscherm zou kunnen bouwen?
Qua videverwerking moet je je er niet te veel van voorstellen, de CPLD die er op zit kan maar een beperkte hoeveelheid logica aan. Het videosignaal is digitaal YCbCr, dat zou je dan naar RGB moeten omzetten en waarschijnlijk is dat al teveel voor de CPLD. Maar met een FPGA zou zoiets wel moeten lukken. Het is wel een vrij eenvoudig signaal. De chip decodeert het analoge signaal en geeft op een 27MHz klok steeds 8 bits naar buiten. Dat zijn gemultiplext Y, Cb en Cr samples uit het beeld in groepen van 4 bytes. Er zijn speciale 4-byte codes die de sync condities aangeven. Alles wat je nodig hebt zit dus in het 8-bits signaal.
Met een FPGA en een LCDtje kan je er leuke dingen mee doen, bijvoorbeeld een mini TVtje maken ofzo
Maar dan heb je wel ook wat snel RAM nodig, en dat is bij een CPLD maar heel beperkt gezien je geen interne RAM hebt en elke bit RAM een logic element kost. De 32 byte FIFO die er nu in zit neemt bijvoorbeeld al de helf van het ding in.
Op 17 juni 2007 21:09:45 schreef pros:
Afin, het resultaat bestond uit een 19"-rack, gevuld met 10-tal eurokaartjes en de nodige voeding. Maar het werkte!
Creatieve oplossing, maar gelukkig heb ik het op een halve eurokaart weten te houden
.
Op 17 juni 2007 21:29:50 schreef fotoopa:
Prachtig hoe je vooruit gaat in dit project! Ik heb veel waardering voor je inzet en je resultaten.
Dank je, dat is overigens wederzijds 
Vandaar mijn vraag of je dit ook niet kunt doen zonder die AVR maar enkel met een cyclone. Ik ga ervanuit van wel omdat berekeningen ook geen probleem zijn. Maar gezien je echt heel diep in deze materie zit kun je waarschijndelijk andere redenen geven waarom het eenvoudiger is om een AVR bij te plaatsen.
Moet prima kunnen met een Cyclone, zeker nog op dit moment is de AVR voornamelijk de aansturing van de CPLD via de UART (USB). Voor het uitlezen van de video doet de AVR weinig meer dan een uitlees commando geven (4-bits seriele interface met de CPLD), wachten op een interrupt van de CPLD, FIFO uitlezen (8-bits parallel, asynchroon lezen/schrijven) en de gelezen bytes weer naar de UART sturen. Dat zou je ook in een FPGA kunnen zetten maar een CPLD heeft natuurlijk veel minder ruimte voor al dat.
In de rest van de AVR zit nu een UART controller met handshaking en een simpel commando systeem met checksums, code om de video chip te initialiseren via I2C en code om de CPLD te programmeren via USB.
Uiteindelijk zal de CPLD een set kleurengemiddelden gaan maken van het beeld (zeg 64 stuks, 8x8 over het beeld) en dat naar de AVR sturen. De AVR zal daar dan de juiste ambilight kleuren mee bepalen. Dat kan waarschijnlijk ook wel in een FPGA.
Zelf werk ik al heel lang met AVRs en is het voor mij dus een snelle manier om iets op te zetten. Zeker zoiets als initialisatie via I2C commando's is gewoon makkelijk op te zetten in software. In een FPGA zou ik daar waarschijnlijk ook een soort softcore voor gebruiken. In dit project is een CPLD gebruikt omdat dat eenvoudig is, je hebt geen extra PROM nodig en het is goedkoop (hoewel cyclones niet heel veel verschillen qua prijs). Als je echter veel verwerking moet doen heb je weinig aan een CPLD, dan zou ik gewoon een FPGA pakken. Voor dit project zal de meeste verwerking in de AVR gebeuren. Hopelijk is de CPLD groot genoeg maar anders valt er nog wel wat te spelen met de kleurendiepte of de resolutie van de LED PWM kanalen die er ook nog in komen.