Varaible Frequency PWM Camera Trigger

Reading around existing posts I can't determine a good software PWM approach for my needs. I'm trying to synchronize multiple cameras at video rates, along with LED strobes synced to the camera frames.
Requirements are:

  1. Variable frequency from roughly 15 - 150Hz (for 15-150fps cameras), with 1Hz precision or better
  2. Variable duty cycle / on time, with 100us precision or better (1% duty cycle precision at 100Hz)

The cameras trigger with a fixed exposure time at the rising edge of a trigger pulse, and the LEDs will be on whenever the PWM waveform is high. Therefore, frequency will drive the camera capture rate, while on time of the waveform will drive the duration of the LED strobes.

Does anyone have good suggestions for how to accomplish this type of control? Bonus points for multiple phase-synced outputs with these specs, so I could independently control multiple camera + strobe channels!

An Arduino can easily produce PWM output at those frequencies, and at the same time a much shorter pulse at another pin that triggers the camera. If needed the camera pin signal can be phase shifted to allow for reaction time of the cameras.

100 us resolution is no problem to achieve, 10 us resolution should be quite readily achievable with proper coding.

adelton:

  1. Variable frequency from roughly 15 - 150Hz (for 15-150fps cameras), with 1Hz precision or better
  2. Variable duty cycle / on time, with 100us precision or better (1% duty cycle precision at 100Hz)

An arduino DUE can do that, plus synchro several PWM channels and update frequency and duty cycle on the fly (in loop())

For the AVR timers you select a tick frequency by a binary prescaler of the system clock, e.g. 16MHz/64 provides ticks of 4µs resolution, 16MHz/256 = 16µs, 16MHz/1024 = 64µs. Then set up the PWM pulse width and frequency, in clock ticks.

An Uno provides 2 phase synced outputs for T1, a Mega provides 3 synced outputs for each of its timers, with a chance to synchronize the timers, too.