Sobakava
Full Member level 6
I've to store 2.6MByte data (1.3M x 16bits) comes from a
parallel bus at 27MHz maximum data rate.
After I fill the RAM, I need to read it for transferring.
Reading from RAM will be asynchronous because I send data
over USB2.0 in 512byte packets. My USB controller will read
512bytes from RAM to it's FIFO and transfer it. And skips to
next 512bytes...
Data comes from an CMOS image sensor and I can not stop
it while I transfer the data. I can not stop sensor clock while
transferring pixel data. So, I need a memory buffer. This
can be a FIFO but I don't know how big FIFO is required.
My USB 2.0 controller has 512byte FIFO.
Direct connection of CMOS sensor and USB2.0 controller did not
work. I don't miss pixels in general but there are discontinuties in
data. (I can see some jumpings etc when I draw transferred pixel
data profiles to a chart at PC) I think USB controller misses
pixels while transferring previous 512bytes
I suppose, I can use asynchronous SRAM for storing data. Full
frame data takes 1.3M x 10bits and I need 1.3M x 16bits memory
can run at 27MHz. There are such chips but I don't know prices yet.
I plan to use two RAM blocks for double buffering. One is for storing
current frame, second is transferring to PC. After one frame is
filled with pixel data, it will start transfer it and start fill the other then
swap active RAMs again again...
What do you think? Probably using a SDRAM could be cheaper but
it is not so clear for me because I did not work with SDRAMs yet,
I suppose I need a SDRAM controller IC or I've to implement it in a
CPLD/FPGA. I is hard to implement a SDRAM controlller for using
a SDRAM like async-SRAM or like a very big FIFO?
I need advises from camera designers and digital designers and
here is the only place to find answers!!!
Regards
parallel bus at 27MHz maximum data rate.
After I fill the RAM, I need to read it for transferring.
Reading from RAM will be asynchronous because I send data
over USB2.0 in 512byte packets. My USB controller will read
512bytes from RAM to it's FIFO and transfer it. And skips to
next 512bytes...
Data comes from an CMOS image sensor and I can not stop
it while I transfer the data. I can not stop sensor clock while
transferring pixel data. So, I need a memory buffer. This
can be a FIFO but I don't know how big FIFO is required.
My USB 2.0 controller has 512byte FIFO.
Direct connection of CMOS sensor and USB2.0 controller did not
work. I don't miss pixels in general but there are discontinuties in
data. (I can see some jumpings etc when I draw transferred pixel
data profiles to a chart at PC) I think USB controller misses
pixels while transferring previous 512bytes
I suppose, I can use asynchronous SRAM for storing data. Full
frame data takes 1.3M x 10bits and I need 1.3M x 16bits memory
can run at 27MHz. There are such chips but I don't know prices yet.
I plan to use two RAM blocks for double buffering. One is for storing
current frame, second is transferring to PC. After one frame is
filled with pixel data, it will start transfer it and start fill the other then
swap active RAMs again again...
What do you think? Probably using a SDRAM could be cheaper but
it is not so clear for me because I did not work with SDRAMs yet,
I suppose I need a SDRAM controller IC or I've to implement it in a
CPLD/FPGA. I is hard to implement a SDRAM controlller for using
a SDRAM like async-SRAM or like a very big FIFO?
I need advises from camera designers and digital designers and
here is the only place to find answers!!!
Regards