Page 1 of 1

SDRAM FIFO Video Frame Buffer

PostPosted: 15 May 2013, 20:53
by flz47655
Ciao a tutti
Stavo valutando se creare una memoria FIFO basata sulla SDRAM della DE0-Nano, una sorta di emulazione dell'IC AL422B per bufferizzare un'immagine proveniente da una camera.
Ho visto che è disponibile l'IP FIFO, mi sembra che manca uno SDRAM Controller e una qualche logica per mettere assieme le cose. Sapete se si può utilizzare qualche altro IP gratuito per realizzare il tutto più facilmente?

Grazie
Ciao
PS: Ho interfacciato la camera all'XMega ma non regge interrupt a 5-10MHz.. urge un buffer e pensavo di passare alla FPGA ;) Ho visto che usano anche ARM ma non ho voglia di rispolverare il manualone della STM32F4Discovery.. più che altro perché non c'è un ambiente gratuito e le cose sono molto più complicate

Re: SDRAM FIFO Video Frame Buffer

PostPosted: 15 May 2013, 21:27
by deluca
La camera è compatibile con la OV7670?
se si, io ti consiglierei di utilizzare proprio l'AL422b, ci guadagni in time-to-market
ma soprattutto ti risparmieresti lo stress che ti procureresti causa le maledizioni che manderesti alla scheda DE0-nano per farle svolgere proprio quella funzione.

E' vero che ip fifo lo implementi (forse) in un battibaleno, ma il resto è abbastanza complex,
il chip in questione ti risolve immediatamente i problemi del sincronismo video VGA facendoti appunto risparmiare tempo e denaro.... ti consiglio AL422.

Re: SDRAM FIFO Video Frame Buffer

PostPosted: 15 May 2013, 21:58
by flz47655
La camera è proprio la OV7670 :)

Non c'è nessun time-to-market e facevo il tutto a scopo ancora hobbystico che comunque vuol dire poco tempo (per questo chiedevo quali IP combinare), purtroppo speravo non fosse un qualcosa di così stressante.

Purtroppo ho la versione senza AL422b della camera, ho comunque ordinato l'IC ma l'ho trovato solo dall'oriente, ha comunque una memoria molto limitata e mentre aspettavo volevo capire se potevo utilizzare la capiente SDRAM della FPGA che utilizzerei poi anche per altre funzioni.

Per il controller ho trovato http://hamsterworks.co.nz/mediawiki/index.php/SDRAM_Memory_Controller e a dir la verità nel codice della camera terasic scaricabile gratuitamente dopo registrazione da http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=68&No=281&PartNo=3 ho trovato un progetto in Verilog completo di tutto quanto (SDRAM-FIFO, etc..) ma non volevo avventurarmi nel Verilog visto che sono partito col VHDL e prima vorrei imparare bene quello.

Alla luce dell' IP Fifo + Controller SDRAM del link diciamo che il più è "fatto" o ci sono ancora tanti mal di testa tra il dire e il fare?

Ciao

Re: SDRAM FIFO Video Frame Buffer

PostPosted: 16 May 2013, 08:10
by flz47655
Per il sincronismo dalla camera ho i segnali VSYNC, HREF, PCLK che utilizzo per sincronizzare i frame, le linee e i byte, pensavo di fare proprio un AL422B "virtuale" ma decisamente più capiente da associare inizialmente ad un'XMega che legge i dati e li spedisce al PC via USB, a quali problemi di sincronismo ti riferisci?

Re: SDRAM FIFO Video Frame Buffer

PostPosted: 16 May 2013, 11:23
by legacy
Ma comprati una camera con FIFO santa pazienza.

Re: SDRAM FIFO Video Frame Buffer

PostPosted: 10 Sep 2014, 16:23
by Leonardo
Recentemente ho interfacciato una camera OV7670 (con FIFO) ad un PC tramite un XMega, c'è ancora qualcosina da sistemare però.. :D

Image

Il problema principale sono i registri non documentati per regolare il colore, etc..

Re: SDRAM FIFO Video Frame Buffer

PostPosted: 11 Sep 2014, 16:29
by einstein
Quanti fps hai tirato giù?
come trasferisci i dati al pc?

Re: SDRAM FIFO Video Frame Buffer

PostPosted: 11 Sep 2014, 16:57
by Leonardo
Ciao einstein,

Sei molto curioso ;)

Il progetto è un po' particolare, non c'è solo la camera a colori che rappresenta di fatto una feature extra..

Ad ogni modo la comunicazione avviene senza fili e non essendoci necessità di fps elevati il video non è compresso se non per la codifica RGB555 utilizzata che diminuisce un pochetto il datarate dalla camera, la compressione vera e propria come jpeg supererebbe inoltre le capacità degli XMega.

Ogni immagine 320x240 non compressa richiede circa 3s in condizioni normali per il trasferimento e visualizzazione, essendo implementate feature come controllo, ritrasmissione, etc.. per una comunicazione affidabile (Enhanced ShockBurst).

Lato pc c'è un transceiver realizzato con un altro xmega con usb ed un altro nrf24l01+ che di fatto mostra al pc la comunicazione come semplice porta seriale.

Re: SDRAM FIFO Video Frame Buffer

PostPosted: 11 Sep 2014, 20:41
by legacy
Cioe' la cam e' una "sorgente arbitraria di informazione" per il wifi :lol: ?

Re: SDRAM FIFO Video Frame Buffer

PostPosted: 11 Sep 2014, 21:00
by Leonardo
Anche se comunica sui 2.4GHz non è propriamente wi-fi, diciamo che non è proprio inutile ed è un extra che crea maggiore usabilità del tutto. Ad ogni modo il wireless non era il punto focale del progetto :)

Il colore è stato risolto e le immagini anche se non proprio bellissime sono comprensibili e adeguate per lo scopo.

Re: SDRAM FIFO Video Frame Buffer

PostPosted: 11 Sep 2014, 21:59
by Leonardo
PS: Per chi fosse interessato pubblicherò se non tutto il progetto, alcune librerie in stile "ASF" che ho realizzato per nrf24l01p, ov7670, etc.. che possono trovare utilizzo in tanti altri progetti

Re: SDRAM FIFO Video Frame Buffer

PostPosted: 12 Sep 2014, 00:03
by legacy
Bah, quindi lo scopo di sto coso e' di farci l'articolone, tu sei un po' fissato con sta cosa degli articoli, secondo me hai subito un trauma alle superiori :lol: