Multiplex signals from strain gauges

Thread Starter

Rocky_circuits

Joined Nov 1, 2011
57
Hello!
I'm trying to come up with a way that I can multiplex the signals from say, 16 strain gauges. The output of the multiplexer would go to an instrumentation amplifier, and then to an ADC.

Considering that strain gauge signals are in the order of mV's, I am concerned about the inherent 'Ron' of the multiplexer. I am also thinking that the Ron won't matter though? Because the signal is getting boosted by the In-amp
It might matter with the 'flatness' of the multiplexer, but perhaps not because all the strain gauges will be zeroed by their original offset (data-data[0]).

What do you guys think?

Thank you for anytime you can lend to this!
 

dendad

Joined Feb 20, 2016
4,476
CMOS switches like the 4066 will work ok. The "Ron" should not be a problem as the amp should have a high impedance input so no current will flow. I have designed a couple of Mag Flow Meters that measure signals down in the uV using that system.

I just had a look and it was...
HCF4052BEY Dual 4ch. Analog Multiplexer/Demultiplexer
INA2128PA Dual Instrumentation Amplifier
MAX132CNG 18bit Serial Interface ADC
 
Last edited:

Thread Starter

Rocky_circuits

Joined Nov 1, 2011
57
CMOS switches like the 4066 will work ok. The "Ron" should not be a problem as the amp should have a high impedance input so no current will flow. I have designed a couple of Mag Flow Meters that measure signals down in the uV using that system.
Aah that's the train of thought I was thinking. Thank you for the input, I'll move forward with this idea :) :)
 

dendad

Joined Feb 20, 2016
4,476
Oh, just a thought, in the flow meters, one input was grounded, another to a sample voltage from a precision voltage divider from the Vref, and another form the signal.
When the unit is first calibrated, the sample voltage is measured and the reading stored in the EEPROM.
Now, before each reading, the MUX selects the 0V input and that is read. Next, the sample voltage is read. Last, the signal voltage. So the system is self calibrated for each reading. Use good quality voltage references and very stable resistors. At least Precision RC55100R, 0.1%, +/-15ppm types.
 

Thread Starter

Rocky_circuits

Joined Nov 1, 2011
57
That's a good idea! That way I can account for my 5v excitation voltage possibly being something different, such as say 5.3 in one reading and then 5.2 in another?
 

dendad

Joined Feb 20, 2016
4,476
That's a good idea! That way I can account for my 5v excitation voltage possibly being something different, such as say 5.3 in one reading and then 5.2 in another?
Yes, as long as you also read the excitation voltage via another precision voltage divider.
Then you can take all the measurements into account in your calculations.
 

danadak

Joined Mar 10, 2018
4,057
Are you using a processor ? This can be done with one part possibly, the mux, A/D (20 bit, possibly
eliminate need for IA), Vref, COM, display.........


Regards, Dana.
 

danadak

Joined Mar 10, 2018
4,057
One possible solution, PSOC 5LP. This is a one chip solution.

A/D was configed at 16 bits (can be up to 20), +/- 1.024V Vref, for an LSB
of 30 uV. Note no IA is needed.

I routed this (just using the auto router for onchip routing) and did not examine desire
for each diff channel to have its pins adjacent. Or for making sure no pins close
to high speed clocks, thats all doable, I just got lazy and did this for example.

Also shown is USB, LCD, VDAC for offset generation if so needed. Or you could
use I2CV, SPI, UART.....to couple the data out, whatever you need. Thats also onchip.

upload_2019-4-3_16-55-44.png



Done with PSOC 5LP family part.

Of course board layout critical and running an error budget over V and T prudent when working
with low level signals. There are ap notes covering this.

You can see in resource window right hand side of screen not much of the part
was used, eg. lots of other resources present.


Regards, Dana.
 

danadak

Joined Mar 10, 2018
4,057
One consideration would be some filtering. You could undo the route from
the A/D and Muxout, route those out to pins, and put simple filters between
mux and A/D,. like RC LPF.

Or use onboard DSP and process each channel thru the DSP. You can do some
serious filtering, eg. high order with that. Note this shows single ended, diff is just
a simple config item on the config gui for the A/D.

upload_2019-4-3_17-32-2.png

Another consideration is use DMA on the whole process such that its hands off,
all data sent out over USB or UART or....as a stand alone box gathering data,
filtering it, and sending out over COM.


Regards, Dana.
 

Thread Starter

Rocky_circuits

Joined Nov 1, 2011
57
@danaduk
This stuff is really cool! I wish I understood it a little better. Creating the DAQ and adding filtering is a field I haven't delved into very much but it would surely prove to be an exceptional skill to learn. I am well acquainted with using arduino related processors, I've even made my own integrated arduino based PCB that I was able to flash (I was very proud of it lol)
I haven't however, used one to store data or made custom solutions in that regard. For now, I was going to use a Teensy 3.6 for my datalogging needs and its accompanying ADC. If I could learn how to make a custom solution that is really fast, could output to a computer to populate live graphs, etc.. That would be so cool! Do you have any known resources in which I could learn a little more about that?
 

danadak

Joined Mar 10, 2018
4,057
Here is a video series on the low end PSOC which will get you
a feel. The part I used employs all the low end plus a larger
fabric and other stuff like the DSP filter block.

https://www.cypress.com/training/psoc-101-video-tutorial-series-how-use-arm-cortex-m0-based-psoc-4

They are short videos, start by downloading and installing the IDE so
you can follow along in the IDE. IDE and Compiler free.

https://www.cypress.com/products/psoc-creator-integrated-design-environment-ide

There is another series which covers a more complete for all families of parts -

https://www.cypress.com/video-library/PSoC-Software

The schematic I showed, the tool, PSOC Creator, none of that was custom components.
It was the library of standard components shipped in the IDE. Just drag and drop onto
the schematic, double click it, and configure. Open the datasheet and it has all the info
on configing and the APIs you use in your code to operate the component.

I attached a list of components, inside PSOC, in their standard library, for the high end parts.

Custom components are done either schematic capture using standard library's logic/components
or verilog, or both. There are videos on that but don't jump to that, do the starting videos above.

When I use the word components that is an on chip resource.


Regards, Dana.
 

Attachments

danadak

Joined Mar 10, 2018
4,057
There are low cost bootloader type boards, $ 4 or so, but they cannot debug,

The starter board I recommend for low end, PSOC 4, is -



https://www.cypress.com/video-library/PSoC-Software

The high end, PSOC 5, is -



https://www.cypress.com/documentati...oc-5lp-prototyping-kit-onboard-programmer-and

These do not pin out all the GPIO on these parts, but are super usable for most
designs. Boards that bring out all GPIO are significantly larger in size and cost.

Boards shown not actual size.

Note both boards use a PSOC 5 chip to do debug, programming. You snap off
that when you are done with design. But that snap off is quite usable for another
project, except as you can see it has very little I/O. So you get two processors
per board.


Regards, Dana.
 
Top