0
\$\begingroup\$

First off: I'm a mechanical engineer. I did do ME218 at Stanford, so I am quite conversant with electronics.

I know that there are basically three types of ADC architecture: sigma-delta, SAR and pipeline.

I have six analog signals that I need to convert to digital at the same instant of time. Since this is a mechanical device, the sampling rate can range from a few samples per second to a few kS/s - it is pretty irrelevant.

No, 'time stamping' is not quite working.

I might have nine more analog signals so (3 each of acceleration, gyro, mag, you get the reason for timing now?) This means fifteen analog signals, all to be converted at the same instant of time/on the same clock cycle.

What architecture of chip should I use?

Short of using an FPGA, is there any other way to do this using a single-chip ADC or microcontroller?

\$\endgroup\$
9
  • 3
    \$\begingroup\$ Are you really sure that it's important that the channels are all samples at the same instant in time? Unless you're deliberately under-sampling, your anti-alias filters should ensure that your signals are not changing much during each sample period. If you have a single fast ADC capable of say 1MSPS then you can sample all 15 channels within 15us. So if your 'overall' sample rate for the entire batch of 15 channels is 1kHz then you've sampled all 15 channels within the 1st 15us of each 1ms period. \$\endgroup\$
    – brhans
    Commented Jul 11, 2022 at 14:49
  • 3
    \$\begingroup\$ You can get a single-chip simultaneous-sampling ADC (just search and peruse datasheets) with at least 8 inputs, and synchronize multiple chips. This can be important when you need precise phase relationships between signals. You need to define "instant in time"- there will be a bandwidth of the ADC with anti-aliasing filter. Even without the anti-aliasing filter there will be an analog bandwidth. \$\endgroup\$ Commented Jul 11, 2022 at 14:53
  • 3
    \$\begingroup\$ You probably want to consult with an EE. "Same instant of time" is meaningless in engineering terms, because zero timing jitter can't be achieved any more than you can machine a bar of 2024 to exactly 1". Please edit your question with the acceptable relative jitter between the sample times. Also -- and this does have strong bearing on the issue -- include the precision you need, either in number of bits or in the overall range (i.e. -2.5 to +2.5V) and amount of acceptable error (i.e. 1mV). \$\endgroup\$
    – TimWescott
    Commented Jul 11, 2022 at 15:09
  • 3
    \$\begingroup\$ Can you explain why "simultaneous" sampling is needed -- and more importantly, define what interval should count as "simultaneous"? \$\endgroup\$ Commented Jul 11, 2022 at 17:23
  • 1
    \$\begingroup\$ With respect, and acknowledging I don't know anything about you .... In my experience every time an ME tries to spearhead an EE project, it fails. You don't know what you don't know. It takes literally YEARS for a newly graduated EE to get a really good handle on how this stuff all works and how to master it... Taking a course doesn't make you an EE. I don't design injection molds for the same reason.... \$\endgroup\$
    – Kyle B
    Commented Jul 11, 2022 at 18:52

4 Answers 4

9
\$\begingroup\$
  1. Use a simultaneous sampling ADC. Difficult hardware but easy software. Can get away with the lowest sampling rate.

  2. Just sequentially sample through the channels with a multiplexed ADC. You can sample so much faster than a mechanical system's response that the error probably doesn't matter. Then just treat all samples taken in the same channel scanning cycle as simultaneous. Simplest hardware and software but needs the fastest sampling rate.

    For example, suppose we have 16-channels and a sampling rate of 1MSPS to spread across those channels. Let's assume our bandwidth of interest is 1kHz. To that end, let's pretend we are inputting the same 1kHz sine-wave (the highest frequency component in our bandwidth of interest) into all the channels. Between the two channels spaced farthest apart in the same scan cycle, the difference in the reading would differ by no more than 0.011% of full-scale (i.e. at the point where the sine-wave has the greatest slope). 0.011% of full scale exceeds 13-bit resolution.

    I was also being conservative choosing 1kHz. Although your mechanical bandwidth may exceed 1kHz, your sensors are probably just commercially available MEMs sensors for the smartphone or automotive industry and therefore do not exceed 300Hz.

    I seem to recall reading that it has been found from experience that military submarines require inertial measurements to employ gyroscopes and/or accelerometers with bandwidths in excess of 1kHz to acceptabley perform dead reckoning. That is a big huge submarine however, so the bandwidth to do the same on much smaller platform like what you are working on is probably higher. However, it's moot because the submarines requires very high grade optical gyroscopes to do this which your sensors certainly are not.

  3. Sample channels sequentially like #2 and use zero stuffing and decimation to digitally interpolate data points as if you did simultaneously sample in hardware. Detailed process is here: https://www.ednasia.com/sample-multiple-channels-simultaneously-with-a-single-adc/ Simplest hardware but most complicated software. Can get away with a sampling rate between the other two methods.

Architecture is not important but if you need high speed sequential sampling or use an ADC integrated in an MCU (both of which will go hand in-hand if you are trying to simplify your hardware), you will probably end up with a SARs ADC. Don't forget your anti-aliasing filters.

\$\endgroup\$
3
  • \$\begingroup\$ Thanks. I will explore simultaneous sampling ADCs, that seems to be the best alternative, like you pointed out, the least software headache. My six sensors are all strain gages, which barely make it above 20 Hz. The mechanical bandwidth does not exceed 10Hz. (human muscle movements). That said, the answer was literally the search term of my question. I feel really stupid now. Oh! Well! Engineering is a field that offer plenty such opportunities. Thanks for not rubbing it in. \$\endgroup\$
    – ASG
    Commented Jul 13, 2022 at 3:21
  • \$\begingroup\$ @ASG With a multiplexed ADC you don't need to continuously sequence through the channel at a high speed such that your sample rate per sensor is high. You just need to sequence through all the channels quickly whenever you do sample cycle so the samples amongst channels are closely spaced in time, but the sample cycles themselves can be spaced far apart in time. So you could use a 1Mbps to sample all six strain gauge channels 1us apart and then wait 6.25ms (8x your bandwidth, 4x higher than Nyquist freq) before doing the same thing again. That allows you to use a SARs ADC onboard an MCU \$\endgroup\$
    – DKNguyen
    Commented Jul 13, 2022 at 4:33
  • \$\begingroup\$ @ASG Using strain gauges arranged as opposing compression/tension arrangements and placing them properly in the same wheatstone bridge will combat drift and also produce greater output. You can do it with just two strain gauges but it is possible to replace all four resistors in the wheat stone bridge to do this. \$\endgroup\$
    – DKNguyen
    Commented Jul 13, 2022 at 4:34
4
\$\begingroup\$

As currently written, the question lacks a lot of important information, including the nature and bandwidth of the incoming signal.

That to one side, your maximum sample rate is the vaguely 'a few kS/s'. Let's take that to be 2,500 samples/sec max.

One low-cost solution is a single-chip ADC with 16 muxed inputs running at 1 Msps. That would be used to convert 15 channels in succession, giving 14 us of skew between the first and last conversion.

Since 2,500 sps gives you have 400 us between samples, 14 us of skew is 3.5% error by skew. At your low sample rates, this may well be plenty and acceptable.

Otherwise, you could use two ADCs with 8 muxed inputs at 1 Msps for 7 us skew or 1.75% error by skew. Or use a faster 16-channel ADC.

You can use an microcontroller (MCU) to control the ADC(s). You can also use an MCU with two internal ADCs, each with 8 muxed inputs. MCU ADCs tend to be lower resolution/quality than the dedicated ICs so you would have to assess the quality available against what you need.

\$\endgroup\$
2
  • \$\begingroup\$ The senors are strain gages. They barely respond to anything beyond ~20Hz. The forces to be measured are human scale - so cannot be more than ~10Hz. At such low frequencies drifts start becoming a problem. MHz level oversampling creates spurious digital artefacts. That said, as someone suggested - simultaneous sampling ADCs! The answer to my question were the keywords in my question. A real chump I feel like now! Oh! Well! Engineering certainly provide many opportunities for that. \$\endgroup\$
    – ASG
    Commented Jul 13, 2022 at 3:13
  • \$\begingroup\$ @ASG, it's OK :-) strain gauges (that) barely respond to anything beyond ~20Hz Then you can definitely use a cheap ADC with muxed inputs. There's no return on the expense of simultaneous ADC circuits. MHz level oversampling creates spurious digital artefacts It doesn't here, don't get that comment. Taking 15 samples at 1 Msps then pausing for 400 us won't cause digital artifacts. It also allows the far better solution of oversampling and averaging each input by an MCU, using a very fast and simple moving average filter, to greatly improve the input noise immunity for more reliable samples. \$\endgroup\$
    – TonyM
    Commented Jul 13, 2022 at 12:29
2
\$\begingroup\$

The architecture of the ADC is not important here. What is important is that you have a sample-and-hold circuit for each channel and that you sample them all at the same instant in time. Once you have done that you can do the ADC conversions one at a time, with just one ADC, or in parallel with a separate ADC for each channel.

By the way, is ME218 supposed to mean something to us?

\$\endgroup\$
4
  • 4
    \$\begingroup\$ I'm guessing ME218 is a class number in the mechanical engineering school at their university, but without any knowledge of what's taught in that class it's not particularly helpful information... \$\endgroup\$
    – Hearth
    Commented Jul 11, 2022 at 14:39
  • \$\begingroup\$ ME218(X) I think it is four levels of a mechanical engineering (A, B,C and D) course geared for smart product design. \$\endgroup\$
    – Gil
    Commented Jul 11, 2022 at 16:47
  • \$\begingroup\$ ME218 is a graduate level mechatronics course. Quite a few ME218ers lurk around on stackexchange. That said, I plan to explore simultaneous sampling ADC chips, the answer to my question was literally the search term of my question. I feel really stupid now. Oh! Well! Engineering offers plenty of opportunities for that. \$\endgroup\$
    – ASG
    Commented Jul 13, 2022 at 3:05
  • \$\begingroup\$ i agree with this solution. Using polyfilm caps and very high impedance buffers for the S&H one can minimize droop between conversions using a dual slope integrate style ADC to null out ambient AC noise which take a longer time (ms) to average. Or one can average fast ADC's in software. But you must know how to integrate a 40 pin ICL7109 or equiv with an analog Mux to do this. \$\endgroup\$ Commented Jul 14, 2022 at 14:24
2
\$\begingroup\$

The answers given above cover the subject adequately, but I'd like to suggest another possibility. You can use any number of analog switches fed by the sensors through an appropriate op-amp, into high quality (low dissipation factor) capacitors, that are in turn monitored by multiple channel ADCs. At the moment you want to sample simultaneously, turn off all the analog switches, and then read each of them sequentially. Limitations will be due to the dV/dt of the sensor signal, resistance of the analog switch, size of the sampling capacitor, and the leakage current of the capacitor and connected components.

\$\endgroup\$
1
  • \$\begingroup\$ Thanks. We were considering a capacitor type design just prior to the ADC. The sensors are 120 Ohm strain gages, so it would have worked quite well, so long as the capacitor was selected to match the resistance. However, I plan to go with the suggestion of using a simultaneous sampling ADC. The answer was literally using the keywords in my question. Oh! Well! Feeling like a chump now! \$\endgroup\$
    – ASG
    Commented Jul 13, 2022 at 3:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.