Difference between revisions of "Trigger 393"

From ElphelWiki
Jump to: navigation, search
Line 1: Line 1:
==<font color="blue">Description</font>==
==<font color="blue">Description</font>==
10389 board is required.
10389 board is required (and possible 103891).
Use cases:
Use cases:

Revision as of 14:41, 12 October 2018


10389 board is required (and possible 103891).

Use cases:

  • Trigger a single camera from external source
  • Synchronize multiple cameras to a master camera or external trigger source
  • Program frame rate

The conditions of the trigger can be generated either internally or externally:

  • for external triggering a 103891 board and a 4-conductor 2.5mm audio plug with cable (example: digikey) is required.
  • for internal triggering use J4-J6 connectors with a 4-pin flex cable: J4 - internal trigger source (also transmits timestamps that can be decoded by other cameras), J5-6 - receive trigger

To program trigger go to: => External Trigger Controls

NOTE: Be careful with changing parameters when TRIG=4. Camera drivers are driven by the frame sync interrupts from the sensor, so if the sensor is not triggered - everything can get stuck. The Program Ahead value sets the number of frame sync interrupts the camera will wait wait for until a parameter is reprogrammed.

External Trigger Controls page


parameter description
TRIG Trigger mode. 0x0 - free running, 0x4 - triggered by external signal or FPGA timing generator, 0x14 - triggered in GRR mode
TRIG_MASTER Master sensor_port (0..3) for triggering setup, other ports will have settings duplicated
TRIG_CONDITION FPGA trigger sequencer trigger condition, 0 - internal, else dibits: 00 - do not use, 01 - keep, 10 - active low, 11 - active high for each GPIO[9:0] pin). 10389 board inverts signals, so 0x80000 - input from external connector, 0x08000 - input from internal flex cable (as in Eyesis)
TRIG_DELAY FPGA trigger sequencer trigger delay, 32 bits in pixel clocks (100MHz or 10ns)
TRIG_OUT FPGA trigger sequencer trigger output to GPIO, dibits: 00 - do not use, 01 - keep, 10 - active low GPIO output, 11 - active high GPIO output. 10389 board inverts signals, so 0x02000 - output to external connector (active high), 0x20000 - output to internal flex connector
TRIG_PERIOD FPGA trigger sequencer output sync period (32 bits, in pixel clocks (100MHz or 10ns)). 0- stop. 1 - single, >=256 repetitive with specified period
TRIG_BITLENGTH Bit length minus 1 (in pixel clock cycles) when transmitting/receiving timestamps, without timestamps the output pulse width is 8*(TRIG_BITLENGTH+1). Legal values 2..255
EXTERN_TIMESTAMP When 1 camera will use external timestamp (received over inter-camera synchronization cable) if it is available (no action when external syncronization is not connected), when 0 - local timestamp will be used
XMIT_TIMESTAMP Specify output signal sent through internal/external connector (defined by TRIG_OUT). 0 - transmit just sync pulse (8*(TRIG_BITLENGTH+1) pixel clock periods long), 1 - pulse+timestamp 64*(TRIG_BITLENGTH+1) pixel clock periods long


Internal periodic trigger (10 fps, from fpga generator)

Internal periodic trigger (4 fps, from fpga generator) + output the signal to external port

External trigger receive

Recover from missing external trigger signal to internal trigger

Manual triggering from PC

  • TRIG=4 should be set in advance
  • The command automatically sets a single-shot trigger mode with TRIG_PERIOD=0x1, but it writes the register directly into the FPGA,

not updating the TRIG_PERIOD in the PHP interface:


Check status


Update the TRIG_PERIOD in the current frame
Update the TRIG_PERIOD from the user interface


  • 10389 extension board
  • 103891 adapter board for external trigger connection

10389 trigger testing

external connector

In this test the camera triggers itself via audio cable. For cable wiring see 103891.

  • To test:
- connect a sensor to port 0
visual: LED is blinking
software: frame counter is running
  • It's easy to modify the cable to trigger itself and other multiple cameras.
10389 extsync selftest.jpeg

internal connectors

In this test the camera triggers itself via 4-pin flex cable.

  • Connect as displayed on the pictures below.
    • J4 - trigger output (master port)
    • J5-J6 - trigger input (slave ports)
  • To test:
- connect a sensor to port 0
software: frame counter is running
  • To sync multiple camera, example:
cable 1: camera1 (J4) -> camera2 (J6)
cable 2: camera2 (J5) -> camera3 (J6)
cable 3: camera3 (J5) -> camera4 (J6)
10389 intsync selftest.jpeg
10389 intsync selftest closeup.jpeg