Electronics > Projects, Designs, and Technical Stuff

DIY 20 channel scanner card / MUX for any DMM

(1/2) > >>

I've done several hobby and professional automated test engineering projects, and signal MUX'ing is always an challenge. 
For my home projects, I wanted a scanner-card system that could work with my HP34401A, and for the professional projects I needed to MUX signal generator outputs and low-frequency oscilloscope inputs.

Over the last couple years I've developed a generic 20:1 relay MUX card that is stackable and controlled via SPI.  For control I've used STM32 nucleo boards and Labjacks, and I've developed a python library for controlling the MUX's with a labjack.  The cards can be stacked for hundreds of I/O.  One stack can have several groups, each feeding a different instrument.

One significant hurdle was preventing inputs from being short-circuited together.  One way is to arrange the relays in a binary tree, but for large numbers of IO that multiplies the relay's thermal EMF errors, and it's harder to scale up by stacking cards.  The other option is to connect all the relays in parallel, but make sure that only one is turned on at a time.  This could have easily been done with an MCU, but for whatever reason I developed a fully analog and logic based protection circuit.  It works well, even if it made the boards a little bigger than they needed to be.

Another cool feature is that measurements can be taken as 2-pole measurements for maximum accuracy, but also as single-pole measurements to a common pin.  This lets me get up to 20 single-pole channels from a single card, or 1 2-pole channels, or any mix of both.  The choice between single and 2-pole is just based on the command, so they can be re-configured on the fly.

I also added a current channel input for measuring currents up to about 500mA when the MUX is being used with a DMM.  I needed this specifically for measuring 4-20mA signals.  The early version of the MUX cards had two of these current channels, but later I dropped it down to one in order to fit other features.

I have a full write up with schematics and block diagrams on my personal website: https://eedesignpro.com/projects/dmm-scanner-card/

Hi trtr6842,
thank you for sharing.
After you've teased us, give some data please: Max. Voltage, max. current, Leakage etc.....

Best regards

schmitt trigger:
Subscribing to thread.

Cool project. Few tricks, when I made a project like this:
The DMM has a "VM complete" and a "Trig" coax on the back. If you connect that to your relay board, you can do many things with it. The VM complete can be used to set the relays to the next channel, and then the Trig can be triggered with a delay. So the next measurement can be taken without any communication to set it up on the relay board.
The other trick with a 34401A is the serial port. You can connect it to something other than a computer's USB port.
The relay's thermal EMF can be reduced if you use relays that are latching. Because the coils don't heat up internally.

Max voltage is 150VDC / 100VAC. 
The voltage channels are not designed to carry much current, but should be safe up to at least 50mA or so. 
The current channel is good for up to 500mA.
The relays have an insulation resistance of >1GΩ each, and the 150V spacing on the PCB should lead to very low PCB leakages.  Overall system insulation resistance should be on the order of >100MΩ, but I don't have the equipment required to verify that precisely, and it will vary with installation.

So far it's made a great general purpose MUX.  One installation has five of these cards plus a control-only version of the card in a stack to make a:
40:1 DMM MUX,
20:1 Signal Generator CH1 MUX,
20:1 Signal Generator CH2 MUX,
20:1 Scope CH1 MUX,
20:1 Scope CH2 MUX,
14:1 Power relay MUX Controller,

All of which are controlled by one SPI port.

Switching time is about 20ms, but that can only be accomplished with microcontroller control, python with a labjack tends to be a bit slower, about 50-100ms to switch.

Full schematics and more details are available here! 

I also have a full KiCad footprint for the card, so designing it onto a motherboard is like dropping in one large component.  The schematics get a little tricky to understand, but pretty simple as far as layout is concerned.


[0] Message Index

[#] Next page

There was an error while thanking
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod