did somebody test the limits of the delta-sigma-ADC-circuit on a Prop.-Prof-Dev
StefanL38
Posts: 2,292
Hello,
I'm aware of, that - for best performance - the delta-sigma-ADC-circuit needs the capacitors and resistors as close as possible
to the IO-Pin and that even the wire-length from the die to the PINs of a DIP40 housing makes a perfomance-difference to QFN-housing
So you can't expect 16bit resolution on a PPDB.
Did somebody do tests where the limits are ?
For experimental purposes 8 bit resolution at low frequencies might be enough.
(simply measure multiple DC-voltages at the same time at a lower resolution instead of buying
3 or 4 additional digital multimeters)
Or to use them as cheap voltagemeters for experimentating / exploring how transistors work
(measuring base-voltage, collector-emitter-voltage etc. even measuring base-current through a LM358 one OP as voltagefollower second OP as an 10x/100x amplifier
Voltagedividers under load
Explaining what pullup/pulldown-resistors do
To say it short: using the propeller as the base for a basic analog-electronics tutorial with easy to get low-cost components.
maybee buying some external ADCs would suit as well - but
what if it's saturday evening and you want to do some quick PARALLEL measurings
and can't wait for digikey or mouser to deliver on tuesday ?
For the electronics-tutorial the external ADCs are a good option. Which external ADC would you recommend
beeing robust and easy to use for totally newbees ? (as they should learn electronics by using it)
More or less complicated communication with the ADC-chip doesn't matter as the ADC-driver code would be provided by me).
best regards
Stefan
I'm aware of, that - for best performance - the delta-sigma-ADC-circuit needs the capacitors and resistors as close as possible
to the IO-Pin and that even the wire-length from the die to the PINs of a DIP40 housing makes a perfomance-difference to QFN-housing
So you can't expect 16bit resolution on a PPDB.
Did somebody do tests where the limits are ?
For experimental purposes 8 bit resolution at low frequencies might be enough.
(simply measure multiple DC-voltages at the same time at a lower resolution instead of buying
3 or 4 additional digital multimeters)
Or to use them as cheap voltagemeters for experimentating / exploring how transistors work
(measuring base-voltage, collector-emitter-voltage etc. even measuring base-current through a LM358 one OP as voltagefollower second OP as an 10x/100x amplifier
Voltagedividers under load
Explaining what pullup/pulldown-resistors do
To say it short: using the propeller as the base for a basic analog-electronics tutorial with easy to get low-cost components.
maybee buying some external ADCs would suit as well - but
what if it's saturday evening and you want to do some quick PARALLEL measurings
and can't wait for digikey or mouser to deliver on tuesday ?
For the electronics-tutorial the external ADCs are a good option. Which external ADC would you recommend
beeing robust and easy to use for totally newbees ? (as they should learn electronics by using it)
More or less complicated communication with the ADC-chip doesn't matter as the ADC-driver code would be provided by me).
best regards
Stefan
Comments
if speed isn't an issue the LTC2400 is cool: 24 bits or 1µV resolution! You can measure thermocouples or strain gauges·without amplification. It has an easy SPI interface and an SO-8 package. If ~16 bits accuracy is enough a cheap 74HC4051 can be used for multiplexing.
Cheers
Does anybody know - if we build that circuit with long leads on a big old breadboard, what fails? Would we expect it to simply fail completely? Not show more than 6 or seven bits of resolution (what I think I saw)? Show plenty of resolution but with lots of noise?
I really don't understand the delta-sigma digitizing coding - is there a way to modify the code to run on a breadboard but at a much slower rate in order to get better operation, as Stefan is also asking?
I've also been experimenting with two external 3.3 volt, 16 bit converters, a Burr-Brown ADS8320 and a TC3405 4 channel ADC. Both are low cost and work very well.
the ADS8320:
digitizes at 100 kHz, but with lots of noise in the lower bits on my breadboard
doesn't include an internal voltage reference - I just used the 3.3 volt bus for my tests
comes in a tiny MSOP package - I had to mount it on a breakout board to be able to use it
needs prop asm to get its best speed, but only needs a few dozen lines of code.
the TC3405:
is really slow at 16 bits - it only does about 8 conversions a second
can deliver faster results at fewer bits, but not a whole lot faster
because it's so slow, this chip can be run from spin
has four channels, one of which has differential inputs
has its own internal voltage reference
comes in a DIP package, making it easy to breadboard
assembly sigma/delta code?
Post Edited (Bob Lawrence (VE1RLL)) : 10/14/2009 4:43:13 AM GMT
I also don't fully understand all the theory of sigma delta ADCs but I think I have a simple explanation that comes close to the truth. A sigma delta·ADC is something like the propeller counters in DUTY mode (read DAC) in reverse. It outputs a stream of fast switching bits, compares their average against the analogue value and tries to "guess" that value by summing up the 1s. As with the DUTY mode counter its accuracy highly relies on the fact that every 0 and 1 bit should subtract or add the same amount of charge to the averaging capacitor no matter what the state of the previous bit was. Or in other words, the eye diagram should not only be "eyes wide open" but perfectly square. Any delay, distortion, asymetry·or overshot adds inaccuracy. Noise wouldn't matter much since it would be averaged out. But nonlinearity or missing codes would be bad.
Consider this waveforms:
Waveform 1 and 2 should give the same average. But if switching is not fast enough and not perfectly symetrical (say, the·Vss transistor pulls stronger than the Vcc) then two consecutive 1-bits add more charge than single bits because the output has more time to reach a higher voltage level (waveform 3). And since the real system has feedback, the situation becomes even worse. Switching affects the supply voltage which in turn affects the comperator threshold and can cause clock jitter...
Cheers
What I'm wondering is if on a breadboard, would all that delay, distortion, asymetry and overshoot be symmetrical for both positive and negative transitions and average out as long as the delta pulses and summation period were slowed down enough? Wouldn't transistor asymetry or supply voltage issues would affect both types of converters?
So as to Stefan's original point, would a breadboarded circuit be able to digitize as well, or almost as well as the counter-based, much more compact circuit, only slower?
Has anyone written non-counter, or counter-based but much slower, sigma-delta ADC code?
ok, now it's me who is looking for advice. I'm currently doing a bit practice·before starting my·next big project. I'm trying to make a DRO (digital read out) for up to four glass scales. Those scales are similar to regular encoders but output sine and cosine signals instead of quadrature square waves. The sin/cos waves can be interpolated to get finer resolution.
I think the sigma delta AD converters of the propeller are perfectly suited for that application. Speed can be traded for resolution in real time if required. For fast moves high resolution is not necessary but it's·important that no count is missed. When moving slowly we can wait for the ADCs to settle to a·finer resolution. And the best of all is it costs only two pins and less than two cents of external components per channel.
The question is how the best performance is achieved. Noise is not an issue here.·Although I expect the circuit to be very noisy because I have 8 channels closely together on one board with the feedback pins switching "pseudo randomly" at up to 40MHz. But it's absolutely sufficient if the display is updated say four times a second. So all noise can be cancelled out by averaging. But I'm a bit worried about crosstalk. It would be bad if an axis that is moving would cause interference to another axis standing still. In theory the sigma delta process is very accurate because the feedback is balanced against the input. But switching noise causes the supply voltage to bounce what directly affects the threshold level of the sensing input. If two channels suffer some sort of "phase lock" this could cause an offset, if I understand correctly.
Has anybody built a circuit with such a large number of sigma delta ADCs before? What is the best way to avoid crosstalk, or is this a problem at all? All components around the summing nodes (the two Rs and two Cs) are well withing one inch from the propeller chip, most of them are within half an inch (see highlighted components in the attached picture). It's going to be a two layer board with almost everything SMT. Vdd is decoupled with four 100nF caps around the propeller and one 4.7uF cap at the voltage regulator. I'll try to keep the ground plane almost solid. Anything else to be considered?
The input signals range from DC to a bit above 100kHz with 1.66+/-1V amplitude. It would be nice if I could get 10 Bits resolution and 8 Bits accuracy.