[Elphel-support] limiting the frame rate

Andrey Filippov andrey at elphel.com
Tue Feb 8 18:37:19 PST 2011


Adam,

this is the camera problem - seems like some old features (supported in GUI)
are broken in the later firmware, some new features are not controlled from
GUI.

Sensor has 2 operation modes - free running and triggered. In the camera you
can set trigger to FPGA trigger generator (or you can trigger from the
external source, i.e. another camera).
The first (free running) mode can achieve higher frame rate and exposure can
overlap frames (while you are reading the current frame exposure of the next
one already began). In triggered mode the minimal frame period is the frame
readout time (same as the frame period in the free running mode) plus
exposure time plus 8 extra lines (some sensor internal overhead).

On the other hand it is much easier to set any required frame period  in
triggered mode than in free running - you can just specify the period in
single pixel clock increments (as long as it is above the minimal for this
image size and exposure, of course). In the free running mode the software
can only adjust frame period by changing vertical and horizontal blanking>
It is also possible to change the sensor clock frequency, but sensor "does
not like" when the clock is adjusted while it is running and may hang).

This is why when you do not need the highest fps it is usually more
convenient to run sensor in triggered mode. It is not controlled by the
camera GUI, but you can change it from the custom script or with
parsedit.php. If you just open the
http://192.168.0.9/parsedit.php page it will show you some sample links to
control different parameters, just select the "External Trigger Controls".
You may even reduce the number of parameters using the following link:

http://192.168.0.9/parsedit.php?embed=0.1&title=External+trigger+controls&TRIG&TRIG_PERIOD

Each parameter has a short description that would appear as a tooltip when
you put the mouse pointer over it.

The triggered mode is turned on by setting TRIG=4, free running mode TRIG=0.

TRIG_PERIOD - frame period in pixel clock periods, by default the clock is
set to 96MHz.

If you set something too long, camera may wait and wait... Refreshing the
page will not help, at some point all 3 currently specified instances of PHP
will be used (something did not work with dynamically increasing number of
instances) and you'll not be able to open any PHP-based pages (i.e.
parsedit.php). To recover from that condition (without power-cycling the
camera) you may telnet to the camera and run
killall -9 lighttpd # - that will kill web server and all PHP instances,
then restart them all.

That PHP restart still will not "unfreeze" the camera from waiting the
trigger, the driver responsible for changing the run time parameters is
driven by the sensor frame sync interrupts, you may check the status of the
camera/sensor by refreshing the http://192.168.0.236:8081/pointers page - it
will work even when the main web server and php are busy.  If frame number
is not changing - the sensor is not being triggered. In that case you can
open external trigger control page, set TRIG=0 and before applying change
the value in "Program ahead" column from 3 to 0 - in that case the driver
will not wait the frame sync interrupts before applying the parameter(s).

Andrey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://support.elphel.com/pipermail/support-list_support.elphel.com/attachments/20110208/16f7b0fa/attachment-0002.html>


More information about the Support-list mailing list