01-27-2012 03:20 AM
Hello.
I'm trying to configure my PCI-1422 board to accquire an image from my custom made line scan camera.
My camera sends a frame of 1 pixel height (24000px width) to the board. Every 1.9msec (so i should get approx. 526 fps).
The framegrabber recieves 3 signals: data, pixel clock (12.5MHz) and frame valid signal (i connected it to Enable A pin of PCI-1422).
The issue is that MAX says to me, that the total fps is 263.
When I try to get image data in my application (c++) i may recieve even less - only 1/4 of total frames.
Could you tell me how to configure *.icd file to be able to get 526 (24000x1px, 8bit) fps with my camera?
Is there any problem with my c++ code?
You may see my application and *icd file attached.
01-30-2012 12:24 PM
Hello Alvern,
You may be having an issue where your transfer rate exceeds what can be reliably and continuously streamed to memory and disk. I would take a look at this Knowledge Base article that discusses why you may not being seeing the full frame rate. It mentions using onboard memory for brief captures that allow you to capture at the full frame rate.
Another issue may be that you are not allowing for the correct amount of time between frames. As discussed in this article you need 100 pixel clock counts between frames to ensure that it rearms properly.
I would suggest investigating these two avenues first to see if it is a configuration issue or if it is a bandwidth issue.
David A.
02-02-2012 09:44 AM
Hello, David.
Thank you for the links, the vision of the issue becomes more clear for me.
My next step was to decreasing the number of total pixels per frame - I've set the ROI width parameter to 23992 instead of 24000.
As a result - now i'm able to get an appropriate frame rate - now i have 520 fps.
But the other issue still remains - i cannot get every frame data - the only data i recieve is 1 of every 4 frames.
I tried to check both "FastRearm" and "Non Continous Line Enable", but nothing happened.
My pixel clock speed is quite slow - only 12.5 MHz and I have 23992 pixels in every frame. It's only 23.5 kBytes of data.
Even the total amount of onboard frame buffer is much more than that (i assume it may store a frame of 32768x32768px 16bits).
Is there any way to get all the data, that is send to the framegrabber from my camera?
Is there any way to read data of each frame without blanking every 3 of them?
02-05-2012 03:54 PM - edited 02-05-2012 03:58 PM
Alvern,
How many clock counts rae you waiting between frames? Have you tried decrasing the ROI further? You got it set 8 pixels shorter than the actual ccd, have you tried setting it 100 pixels shorter? What about 1000? I imagine you're interested in preserving as many pixels as possible, but try testing acquisition with shorter ROI's just to see if a sufficiently short ROI will allow you to acquire at the full frame rate.
If adjusting the ROI in addition to enabling fast rearm and Non Continuous Line Enable does not allow you to acquire at the desired frame rate are you able to decrease the frame rate? If so, what frame rates have you been able to acquire at without losing frames?
Also, though you are interested in continuous acquisition, have you tried snaping a finite sequence of images? Try snapping a finite number of images and storing them on the frame grabber to see if you are able to acquire at the full frame rate.
I suspect altering either the ROI, the frame rate, or the acqusition mode and buffering location will allow you to acquire without missing frames. Would you be able to test these and post your results?
David A