Multiplexing and reading voltages using ADC

Thread Starter

nirbec89

Joined Feb 25, 2021
18
Hi,
I have laser module containing 20 laser diodes, and laser driver with 20 separated channels that i can turn on/off, the laser's anode is seperated and cathode is common.

I want to be able to measure voltage drop on each laser using microcontroller.
-only one laser is active at a time-
-laser operating current is 0-100mA CW
-voltage drop will be max~3.5V (red laser)
For that my idea is to use two 16 channels CD74HC4067 multiplexer ic's, and one ADS1115 4 channels ADC that will read the voltage of the selected channel by the multiplexer, (differential reading - ADC Inputs 1&2 is for one anode from the multiplexer and common cathode, and 3&4 for the other)

First question if this approach is common and OK?

Second, there is a possibility that i will have 12V on the laser diode line in case the laser is bad, and it can damage the multiplexer/ADC inputs,
What will be the right way (and simplest to design on PCB from components quantity perspective as i need 20 channels) for limiting the voltage to 3.3V/5v?

Attached is some initial drawing i made using voltage dividers, (ADC chip and laser diodes are not there as it is a PCB that sits in between the driver and the lasers)

Thank you,
Nir.
 

Attachments

Last edited:

Irving

Joined Jan 30, 2016
2,308
It will work, but your voltage dividers are reducing your ADC dynamic range.

A much simpler solution is a series resistor between laser diode anode and mux input, sized to prevent current through the mux exceeding say 1mA. If input to mux > Vcc(5v) then an internal diode clamps input to Vcc+0.2v. So a series resistor of (12 - 5)/.001 = 7k is all you need. Typically you'll see 10k up to 100k here, sometimes with a small capacitor to ground to act as a low-pass filter and remove transients. The bigger the resistor the longer it will take the voltage at the ADC sampling point to settle so there is a trade off between protection and conversion rate. For instance, at 1mA if the cathode connection failed all mux inputs would be clamped limiting current to 16mA which is within mux spec.
 

Thread Starter

nirbec89

Joined Feb 25, 2021
18
Hi Irving,
Thank you for your answer,
I felt that voltage divider will not be the optimal solution as i only need some limit protection in case something goes wrong and voltage divider will affect the all ADC range as you mentioned.

Is it good practice to depend on the mux internal diodes or it can be risky for the mux ic?
(As this project is for laser diode testing it could be that i will try to test bad lasers quite often)

If it is risky for the IC, a 5V zener diode parallel to the mux input will do the work?

Thank you,
Nir.
 

Attachments

Thread Starter

nirbec89

Joined Feb 25, 2021
18
Have a look at DG406 16-channel multiplexer. It can handle ±15V signals.
MrChips,
Thanks for introducing me with the DG406 , looks much more robust for sure.:)
As my original plan is to drive the mux with 5V supply, according to the datasheet the internal diodes will clamp at 7V(5V+2V),
which is still under 12V that i might have,
In this case in continues to my last question (response #3) is the diodes clamping feature reliable for long term or it's risky to the IC? in case it is risky, good solution will be to add external zener as described on the image in my last response #3?

Thanks,
 

Attachments

Irving

Joined Jan 30, 2016
2,308
Have a look at DG406 16-channel multiplexer. It can handle ±15V signals.
True, but only on +/- 15v supply. If you're driving the mux from V+ = +5v & V- = GND it makes no difference it'll still clamp to supply rails. The only benefit is the DG406 handles 30mA rather than 20mA, but if you're limiting the current anyway, the 4067 is 24 v 28 pins.


Is it good practice to depend on the mux internal diodes or it can be risky for the mux ic?
(As this project is for laser diode testing it could be that i will try to test bad lasers quite often)

If it is risky for the IC, a 5V zener diode parallel to the mux input will do the work?
Its fine and common practice, its actually discussed in both datasheet and Application notes.

A couple of other points. Its a good idea to put a non-inverting unity voltage follower/buffer between mux and ADC. This provides a low-impedance drive to the ADC and improves settling time.

You can put a zener on the mux input, but it will affect your reading unless its a 6v2 or higher as zener's have a very soft knee. TBH its not needed.
 

Thread Starter

nirbec89

Joined Feb 25, 2021
18
Irving, MrChips,
Thank you very much for the quick help,
I got the general idea, I ordered some parts so i can make initial tests and then move to PCB design.

Thank you!
Nir.
 
Top