Control Laser Diode Microsecond Pulses

First of all: Thanks for considering to help me out!

I would like to send microsecond (square) pulses to a laser diode with an Arduino.
I would like to know if it is better to use the Due or Uno as I read that the chip in the Due is faster (84MHz).

The whole experiment is to send laser pulses from a laser diode (actually it is simply running in QCW mode) to a photo diode. The experiment has already been done with oscilloscopes but now I want to do the control of the laser diode and the reading of the photodiode with Arduinos.

I would like to produce pulses every 500 microseconds with pulse width of 25 microseconds (=duty cycle: 5 %). The peak of the pulses should be of 1,5 V as thats the operating current of my laser diode.

Through this old topic (here) I found out that direct PortManipulation might be of use.
How fast can this get and am I on the right track?

For reading the photodiode already found out that the PulseIn function might be of use.
It says that the shortest possible pulse length is 10 microseconds? Is there a way to improve this?

Thank you so very much!

With a little tweaking of the registers you can do this using the PWM outputs of the Arduino (or, more specifically, the ATMega328P chip), so the pulse generation runs fully in hardware. See datasheet for details.

For reading the photodiode look into the input capture function. At the default 16 MHz you have 62.5 ns per clock tick; if you run the chip at 20 MHz you can decrease that to 50 ns. That's your timing resolution. Again, see datasheet for details.

I'm not familiar at all with the Due so don't know if it has similar timer functions.

What time-resolution do you want?