I've designed a laser diode driver that uses a constant-current supply regulator, for integrating my laser sensors into microprocessors.
The values for R1 and R2 will vary based on the laser diode to be driven, and the supply available at V+. R1 is a voltage divider, and controls what portion of the source voltage gets supplied to the LM317-based current regulator. R2 adjusts the amount of current being supplied to the laser diode. The formula for this is , where is the reference voltage developed by the regulator (the LM317 uses 1.25V, fixed), and is the current (in amps) at which you'd like to operate the diode.
C1 and D1 are there for protection. The value of C1 depends on how much transient dampening you'd like to use. This comes at the cost of lower bandwidth for modulation. Since I won't be modulating these very fast, I'm content with a capacitor as large as 10 uF, but I see values like 4.7 uF tossed around on forums.
My application will use a microprocessor to control the voltage supplied to the diode (through , as a way of modulating optical power. The laser / photodiode pair are actually in the same TO-18 package, and the photodiode measures the optical power at the back of the laser cavity. contains information due to self-mixing, which will be extracted for use in a vibrational sensing application. The reason for modulating the optical power of the laser is to keep the interference signal in the cavity within a given feedback regime. If the surface to be measured is less specular or more distant, a larger amount of optical power will be necessary to maintain nonlinearity in the doppler signal. This nonlinearity is essential for easy estimation of the direction component of the velocity at the point being measured.
Right now I am waiting for a collimating lens to arrive from China. If these lens packages work decently well, I will be able to start performing tests on the self-mixing signal at , and will be able to determine things like which photodiode amplifier design to choose, which ADC, etc...
A back-of-the-envelope calculation suggests that the instrumentation amplifier I designed a few months ago would work nicely. Furthermore, although noisy, the on-board ADC's on the STM32F4 should work fairly well, but in case the signal is too noisy, I might be able to trade bandwidth for SNR and use the Cirrus CS5368 ADC without too much trouble.