Page 1 of 1
conversione segnale video
Posted:
26 Jan 2015, 01:22
by ettore
Salve a tutti
dovrei realizzare una scheda interfaccia video con le seguenti caratteristiche:
ingresso
HsyncT 842 colonne (di cui 810 visibili) - 16ms
VsyncT 912 pixel ( di cui 696 visibili) - 19us
uscita per un tft da 1024x768 (
http://www.dirsys.ru/upload/iblock/b46/EJ080NA-04%D0%A1.pdfIl problema è che, visto che l'ingresso viene scansionato da basso/sinistra ad alto/destra, devo ruotare il buffer di 90° prima di mandarlo al display ( o memorizzarlo già ruotato).
Penso che si possa fare meglio con una FPGA che con un micro.
Non so che memoria usare, pensavo una vram con uscita seriale per lo stream video, ma non ho chiaro se ci stò coi tempi per la scrittura in verticale delle colonne.
Un altro problema sono i clock, dovrei scrivere la ram a 48Mhz e leggerla a 70Mhz.
Forse sarebbe meglio usare 2 buffer?
Come affrontereste questo progetto?
Chiaramente il tutto deve essere il più economico possibile.
Cosa ne pensate, idee?
Re: conversione segnale video
Posted:
26 Jan 2015, 12:38
by Leonardo
Ciao ettore,
Direi che una FPGA è una buona scelta.
Esistono memorie FIFO che permettono la lettura e la scrittura contemporanea a velocità differenti, alcuni produttori sono Cypress, Averlogic, IDT, etc.. che hanno proprio FIFO specializzate per video. Per piccole quantità non si possono però fare economie di scala.
Una soluzione più economica (e più difficile) potrebbe essere l'utilizzo di una qualche SDRAM con la logica di contorno per realizzare la FIFO implementata sulla FPGA.
Vuoi anche fare upscaling?
Valuta che se hai pochi pezzi da realizzare potrebbe risultare più conveniente cambiare TFT.
Re: conversione segnale video
Posted:
26 Jan 2015, 17:12
by ettore
Ciao Leonardo
ma una fifo non mi permette di ruotare l'immagine, o sbaglio?
Niente upscaling, pensavo lasciare dei margini neri nei pixel non usati.
Guardando meglio il datasheet del display ho visto che accetta clock da 20 a71 Mhz.
Se è cosi, potrei andare a 48Mhz per input e output, sacrificando un po' il frame rate del tft.
Come sram potrei usare due CY7C1046D e fare un doppio buffer,forse per il clock da 48Mhz è al limite.
Ora mi manca un sistema di sviluppo per FPGA, visto quello che vorrei fare, cosa mi consigliate?
Re: conversione segnale video
Posted:
26 Jan 2015, 18:23
by Leonardo
Si per ruotare l'immagine necessiteresti di un ulteriore memoria, la FIFO era un'idea per disaccoppiare le differenti velocità di lettura e scrittura.
Facendo due conti: 1024*768=786432 pixels
Ipotizzando una codifica che permetta 2 bytes / pixel abbiamo
786432*2 = 1572864 bytes = 1536 KBytes = 1,5 MBytes = 12 MBit
La SRAM che hai indicato (4 MBit) la vedo troppo piccola.
Re: conversione segnale video
Posted:
26 Jan 2015, 21:10
by deluca
ciao a tutti,
posso dire la mia? io la vedo "brutta".... ma ovviamente in bocca al lupo.
ho interfacciato LCD TFT privi di controller VGA, ma è qualcosa di veramente allucinante
i risultati non sono stati soddisfacenti...e troppo oneroso in termini di ore lavoro uomo.
@ettore,
devi realizzare un certo numero di schede proprietarie o è solamente un test x prototipazionee / studio?
Cmq, il tools di sviluppo che ti consiglio è Quartus II di Altera... ovviamente se hai intenzione di iniziare con FPGA della stessa famiglia.
Re: conversione segnale video
Posted:
27 Jan 2015, 01:44
by ettore
Si, lo so, mi sono messo in un impresa, ma prima di arrendermi ci provo, al limite non concludo niente ma imparo qualcosa di nuovo!
Leonardo, i conti che ho fatto io sono:
pixel totali del display (compresi front/back porch) 1344x806=1083264
mancherebbero 59264 celle, corrispondenti a 45 linee, ma visto che l'immagine che devo riprodurre è 810x696, sarebbe possibile ripetere la lettura della prima riga del buffer display (che sarebbe nella cornice tutta nera) 46 volte prima di far avanzare il contatore per la riga seguente ( o dividere il margine equamente tra sopra e sotto).
Per i colori userei solo 3bit, il quarto lo precarico al boot con il segnale Hsync nei 320 pixel dei due porch.
Dato che l'immagine che vado a scrivere nel buffer sarà più piccola dei 1024x768, non sovrascrivo mai questi segnali.
Il problema è che se voglio passare da un buffer all'altro sempre nello stesso momento dovrei aver sincronizzato i Vsync, vale a dire che se l'ingresso ci mette 16ms per un frame, dovrei aver lo stesso tempo per il frame che mando al display, ovvero 67704000Hz. Mi sa che la ram che ho visto è lenta.
Per il tool sviluppo, che dite dell' Altium Designer. Ho visto che si può usare con l'adattatore usb/jtag anche con altre schede FPGA!? Mai provato? Ora vado aleggermi qualcosa sul Quartus II.
Ciao
Re: conversione segnale video
Posted:
27 Jan 2015, 02:30
by Leonardo
I pixel di front/back porch non hanno necessità di essere memorizzati (così come eventualmente i pixel neri formanti la cornice del tft che però ho contato per semplicità/flessibilità) in quanto basta tenerne conto nella macchina a stati che si realizzerà.
Per i colori 3 bit sarà dura.. forse intendevi 3 byte? Per risparmiare preziosa memoria utilizzando RGB565 si può risparmiare un prezioso byte e avere così 2 byte / pixel. La conversione ad un altro formato come RGB666 utilizzato dal tuo display tramite LVDS può essere fatta al volo dopo la lettura.
Bisogna stare molto larghi con la velocità della memoria, nella FPGA avrai tempi da rispettare, ritardi di propagazione, etc.. e chiudere i timing potrebbe diventare un'impresa non banale (o epica) se non si ha margine.
Terasic (
http://www.terasic.com.tw) vende delle ottime board di sviluppo che potresti trovare utili per farti le ossa.
Re: conversione segnale video
Posted:
27 Jan 2015, 23:55
by legacy
@Leonardo
ma per curiosita', tu hai gia' fatto dei progetti simili ?
@deluca
appunto, come non confermarlo
da me e' arrivata una rogna peggiore
Re: conversione segnale video
Posted:
27 Jan 2015, 23:59
by legacy
ettore wrote:Per il tool sviluppo, che dite dell' Altium Designer
magari, se lavorassi per ACME System, Roma, loro ce l'hanno, pero' guarda cosa fatturano all'anno
Altium Design fa cose importanti e costa cifre importanti, tipicamente ha senso quando hai rogne serie lato PCB design. Anche Proteus puo' aver senso, costa di meno, ed offre sistemi di build-up completi anche per le fpga.
Nel 99% dei casi l'utenza composta da studenti e hobbisti usa tool che non costino nulla, o max qualche centinaia di euro, quindi tipicamente si usano le webpack license o le licenze chiuse su una board, che costano un centone ed offrono, tipicamente per 1 annetto, licenze per i chipscope e poco altro.
giusto per farti capire che tipo di utenza trovi in forum come questo
poi, personalmente quello che mi serve davvero e' un buon simulatore ed al piu' un buon LA (budget permettendo, magari di seconda mano, prestazioni pero' … limitate, poche decine di Mhz di banda e qualche dozzina di sondini), mentre come motore di sintesi mi faccio andar bene il webpack license, e per cavetto …. un usb-jtag originale di seconda/terza mano o clone
Re: conversione segnale video
Posted:
28 Jan 2015, 17:47
by ettore
Ciao a tutti
Avevo pensato ad Altium perché si può inserire direttamente lo schema ma poi, leggendo altro materiale, ho scoperto che non è così facile come sembra.
Pensavo quindi di iniziare con Verilog.
In quanto al sistema, mi sembra interessante quello di Lattice:
offre una board MachX2 che mi sembra adatta al mio scopo e il programma Diamond per detta board dovrebbe essere gratuito.
Inoltre i chip non costano un'esagerazione come altre marche, hanno 2 pll ed ed esiste la versione tqfp.
Una domanda su Quartus2, mi pare che non sia free oltre Cyclone III o sbaglio?
Non trovo boards col Cyclone III e facile accesso ai pin, c'era la Xula-200, ma non la fanno più.
Re: conversione segnale video
Posted:
28 Jan 2015, 18:11
by Leonardo
L'ultima versione di Quartus gratuita supporta:
Arria (II GZ,II GX)
Cyclone (V,IV E,IV GX)
MAX (10,V,II)
Ma se fai una ricerca (
https://www.altera.com/download/sw/dnl-sw-index.jsp) by Device troverai che versioni gratuite precedenti di Quartus supportano FPGA più datate.
Le Cyclone IV / V le trovi sicuramente anche in TQFP o similari (EQFP, etc..).
Su questo forum difficilmente troverai supporto su Lattice.
Per un sistema come quello che vuoi fare preparati ad aprire il portafoglio, non solo tra memorie e fpga ma anche tra devboard, programmatore e pcb a n-strati, senza contare le ore-uomo. Quanto hai di budget?
Re: conversione segnale video
Posted:
28 Jan 2015, 19:03
by legacy
@leonardo
non mi hai risposto
@ettore
nulla ti so dire di Lattice, mai fatto nulla con loro. Nel caso, indipendentemente dal progetto, fammi sapere come ti trovi
p.s. ho da svendere una board cyclone-qualcosa (ora non ricordo), breakout con tutti i pin esportati su headers machio
e' li a prender polvere, mai usata, io non mi trovo bene con Altera (1), preferisco Xilinx, nettamente
(1) eccetto le vecchie FLEX10K, che non sono + supportate, mi ci trovavo discretamente bene con le vecchissime versioni di QuartusII (v5), ed erano 5V tollerant, quindi adatte al 90% dei miei scopi. Ne ho preso un tubo da 10 pezzi, 9 li ho gia' usati, con una ci gioco, quando capita.
Re: conversione segnale video
Posted:
28 Jan 2015, 19:07
by Leonardo
@legacy: simile simile non proprio..
Re: conversione segnale video
Posted:
28 Jan 2015, 21:24
by deluca
Ragazzi l'argomento diventa interessante anche se un pò [ot]...
la solita diatriba tra Altera, Xilinx lattice ecc,
la stessa cosa accade in INFN, a roma e frascati e bologna solo e soltanto Xilinx a milano, catania e altre sezioni solo e soltanto Altera !! non ci mettiamo neppure noi d'accordo !!!! capito?
è solo questione di simpatia risalente allo startup giovanile.... nulla di +. chi ha iniziato con una famiglia difficilmente cambierà bandiera....
Avevo pensato ad Altium perché si può inserire direttamente lo schema ma poi, leggendo altro materiale, ho scoperto che non è così facile come sembra.
Progettare un sistema embedded con altium non è semplice anche se ti può aiutare molto la presenza in libreria di svariati IP blackbox.... Il progetto post-compilazione te lo ritrovi come progetto Quartus, se scegli altera, e puo smanettarci + in profondità.. E' ovvio che tutti gli IP core di altium sono protetti ma possono aiutarti a giocherellare come in un lego per realizzare cose carine.
Ho sviluppato alcuni progetti con core 8051/52 based su nanoboard-1 e nanoboard-2 ma solo dopo avermi rotto le ossa sono riuscito a migrare un progetto completo su single chip.
Re: conversione segnale video
Posted:
29 Jan 2015, 02:08
by ettore
Ok, ho visto il link delle versioni di Quartus, e visto che ho ancora WindowsXP32, dovrei fermarmi alla 13.1.
Non so che pagina stavo guardando oggi, ma diceva che la licenza free valeva solo fino al Cyclone III.
Il fatto è che non so ancora quanto grande dovrà essere l'FPGA. Mi chiedevo se si può incominciare a lavorare solo con il software, senza scheda, per vedere quante celle si usano?
Per le memorie non penso ci siano problemi, una da 1Mx8 10n viene 15euro su farnell.
Anche il pcb mon mi impensierisce molto, visto che voglio usare un TQFP, penso due strati siano sufficenti, ma anche 4 non è un problema, in fondo sarebbe una scheda piccola.
@Legacy mi sai dire qualcosa di più della scheda che vuoi dar via:
si collega direttamente alla USB, che tipo di FPGA, hai lo schema?
Notte
Re: conversione segnale video
Posted:
29 Jan 2015, 12:06
by Leonardo
Ciao Ettore,
Puoi benissimo installare Quartus e iniziare a lavorare facendo simulazioni etc.. per capire meglio di quale modello hai bisogno, oltre alle celle è importante lo speed grade, se scegli la versione più economica (= più lenta) potresti avere grandissime difficoltà coi timing. Quartus include tramite TimeQuest analisi temporali che ti aiuteranno a determinare se la velocità del modello impostato è sufficiente.
Fai bene i tuoi conti perché con 1 MBit non memorizzi un intero frame e ti potranno servire più memorie esterne per quello che vuoi fare. La FPGA inoltre generalmente ha bisogno di un ulteriore memoria particolare per la sua configurazione. Con due strati la vedo molto dura gestire le numerose linee ad alta velocità delle memorie.
Ad ogni modo un grande in bocca al lupo
Ciao
Re: conversione segnale video
Posted:
29 Jan 2015, 12:12
by legacy
@deluca
no a me non piace proprio per niente l'ambiente Altera, mi ci trovo malissimo, al lato hw, come fpga, e' quasi del tutto irrilevante
@leonardo
simile chi? chi e' il soggetto e l'oggetto della frase?
se ti riferisci alla roba flex10K, sono tutto un altro mondo, e pure il vecchissimo QuartusII V5, che di fatti mi piaceva, sopratutto 500Mbyte di ambiente contro vari Gb di fuffa odierna, non che ISE sia meglio, si sfiorano i 13Gbyte e servono pure macchine come minimo i5 con 4Gbyte di ram con le ultime v14: pazzesco !
@ettore
ho due schedine fpga, "breakout" significa che non c'e' attaccato nulla, chip filato su headers maschi, ed entri da un cavetto jtag a parte. C'e' un connettore a vaschetta in cui infilare la testa dell'usb-jtag programmer, un oscillatore, qualche resistenza, una manciata di condensatori e poco altro.
una delle due schede e' rimasta nella mansarda di casa a cui ora non ho accesso, l'altra e' nella borsa di attrezzi che mi porto dietro, mai usata perche' al suo posto uso delle s3e-100. La board Altera e' una minuscola Atera Cyclone2 EP2C5T1448N, praticamente assomiglia a
questa schedina, un pelo fatta meglio (cinesi che copiano da cinesi)
l'altra e' una cosa un po' + seria, + grande, molti + I/O, stessa soluzione breakout ma su un PCB di fattura decisamente migliore, appena rientro ti faccio sapere