Tag Info

New answers tagged

2

Dithering is one way, as in "rawb"'s answer. In audio, the usual accepted standard for plain dithering was a triangular PDF dither with a peak-peak amplitude of 1 LSB, added to the high res (e.g. analog) signal before quantisation (e.g. the ADC). The same applied not just to ADCs but to any other truncation process, such as going from studio equipment down ...


3

I don't use Arduino, so I don't know what is happening in those routines, but there are few common ways of taking an ADC measurement with AVR. One of the great things about AVR chips in the ATtiny and ATmega lines is that a lot of peripheral registers have the same (or very similar) names in different chips. I'm going to be using the ATtinyx4 (datasheet) in ...


3

The nice thing about AVR is code ports very easily from processor to processor. I have a set of functions on file for setting up the peripherals. Here's my ADC initialization function: void init_adc(void) { sei(); ADMUX = 0b11100000; ADCSRA = 0b10001100; ADCSRA = ADCSRA | (1<< ADSC); } The sei() function serves as a global ...


2

It's dithering and was possibly discovered in WWII - the story is about range calculation machines used in bomber planes. They were full of cogs and pulleys and all manner of mechanical things and it hardly ever worked accurately on the ground but, in a bomber plane the vibrations were big enough to free the stiction off the bits and keep the couplings free ...


2

If the noise content of your signal has certain characteristics (stationary, independent i.e. gaussian or poisson distributed) then averaging will get you a net reduction of noise that is \$ \dfrac{1}{\sqrt N}\$. You would have to be clear as to what was the predominate noise source that you think that you reduced. If you are attempting to increase the ...


2

It certainly looks feasible, but first make sure you NEED to do it. The 24 bit ADC gives you an awful lot of dynamic range that you don't need, and plenty of bits to spare. You often use them to sample small signals without worrying about preamplification. So, work out your noise budget, figure out how many bits you need, and do what you need to get them. ...


1

Amplifying the reference to get a higher excitation signal is feasible. Another option. Start with a high reference voltage, which goes straight to the sensor. Connect the A/D Vref through voltage divider. You would introduce some error because of resistor tolerances. That can be taken of by calibration. You can also have separate voltage references ...


1

Generally a guitar amp would have about 100k (or greater) input impedance - this is because the tone controls and volume controls are about that sort of range. Yours has 10k input impedance. I'd make R8 100kohm and R7 1Mohm Your 2nd stage is not needed - it has unity gain for the relevant frequencies and your filter cap might just as easily be placed across ...


1

Many problems: You forgot to power the opamp! This is not a rail to rail opamp, so the power scheme needs to be thought about carefully. You say you have a non-inverting amp followed by a active filter, but that is not what the schematic shows. Both stages are clearly inverting. You mention a 3.3 V supply, but then the schematic shows a battery used ...


0

I found the answer. The key was when configuring the DTC to set ADC10SA last. If you look at Figure 22-10 of the Users Guide you can see that setting ADC10DTC1 moves the DTC from "Reset" to "Init" state so I would set ADC10DTC0 before that. Then it waits for a write to ADC10SA before starting. I also made some modifications to allow for easy switching ...


2

It no longer makes sense to say Vref = 2V in a bipolar single-ended ADC. You now have Vref-, which is converted as full-scale low, and Vref+, which is converted to full-scale high. Inputs between your two reference inputs will be linear (within the linearity error), and inputs beyond either of the references will either be clipped or destroy the device ...


0

The relationship between Vref and the full-scale input range depends on the specific chip. The datasheet you linked to is for a 24-bit delta-sigma ADC, but then you ask about a hypothetical 8-bit ADC. For the ADS1282, Table 3 in the datasheet gives the relationship: As long as the PGA is set to unity gain, the full-scale input range runs from -Vref/2 to + ...


0

You probably want: volatile unsigned int temperature; The compiler might put the variable into a register otherwise, and will not read the updated memory location.


1

The heart of a typical delta-sigma converter is a pair of matched delta-sigma blocks will take one-bit input values and, for each value input, produce a continuous-scale output which is based upon that value and the previous values it has received. The blocks should generally be designed so that if fed some sequence of inputs followed by a "1", they will ...


2

I think the easiest way to start thinking about this question is to imagine a "perfect-in-all-other-ways" parallel 8-bit ADC; it produces an 8-bit number every time it converts. It's an 8-bit device so it only approximates to the real analogue input fed to it. Let's say it's input span is 0 to 2.55V - each lowest bit change is worth 10mV and 10mV is its ...


1

The key concept of a delta-sigma modulator — the heart of both A-D and D-A converters — is to produce a stream of digital words whose average value matches an input value. In the most extreme — and most common — case, the digital words are single bits at high speed (128 or more times the bandwidth of the input signal). In an ADC, the ...


0

Check the datasheet for the ATmega that is on your Arduino for 'ADC Noise Reduction mode`. To enter any of the six sleep modes, the SE bit in SMCR must be written to logic one and a SLEEP instruction must be executed. The SM2, SM1, and SM0 bits in the SMCR Register select which sleep mode (Idle, ADC Noise Reduction, Power-down, Power-save, Standby, ...


7

The ground side of the incoming analog signals needs to be connected to the ground of the microcontroller. Multiple ground pins on a microcontroller very conveniently allow greater current load to reach ground with reduced pin impedance (by paralleling): For instance, if a microcontroller can sink 40 mA per GPIO pin, and has a total current limit of say 200 ...


2

Although a passive solution is possible, often depending on your source impedance and ADC input impedance, it's usually a good idea to use an opamp for the level/gain shift. One option is an inverting circuit such as this: Simulation: The benefit is a very low output impedance to drive the ADC (many ADCs require a minimum signal impedance of ...


3

This can be done with three resistors! simulate this circuit – Schematic created using CircuitLab No active components needed. Shifts -4 to 4V to 0-1.8V, perfectly linearly. V2 is your input voltage (-4 to 4V). V1 is just your 1.8V rail. The input impedance is 22K, which won't load your motors to any significant degree, and the output ...


1

For Vr, the formula is based on the information in the datasheet. In the datasheet, it says the differential range will be from -0.5 * Vref to 0.5 * Vref. Vref in your schematic is 2.5V, and both channels - pin is at 2.5V, so the range is from 1.25V to 3.75V, which will be interpreted as -1.25V to +1.25V in the readings (it outputs a signed 16-bit integer ...


1

For the \$V_r\$ calculation: \$V_{ref}=\frac{V_{cc}}{2}\$, therefore \$V_{ref}=2.5V\$ the differential input range is from \$-0.5*Vref\$ up to \$0.5*Vref\$, therefore from -1.25...1.25V the result is in two's complement, with bit 15 as MSB, so the input ranges from -32768 to 32767 (bit 16 acts as additional sign bit, and together with bit 15 acts as ...


2

It depends on how your ADC is configured, and what the reference voltage is. Assuming the number is read directly as a N-bit integer that's justified to the LSB (i.e., the most significant bits beyond ADC resolution are zero), $$ V_{in}= V_{ref}* \frac {ADC \ Reading}{(2^N-1)} $$ Sure, there are nonlinearites and noise considerations, but this should be ...


3

There are two possibilities here: That the uC has a fully calibrated ADC with precision circuits and temperature correction. In which case you just need to read through the 418 page *.pdf and find the relationship or .. It is uncalibrated and you can only get an approximation. SO that means that you have to calibrate the input vs. binary # ahead of time ...


1

I'm not quite sure exactly what you are trying to do here, but: If the input at +UB is +12VDC, then you can ignore the capacitor and just calculate the divider voltage: \$ 12V \cdot \dfrac{R19}{R18+R19} = 12V \cdot \dfrac{3.3k}{13.3k} = 2.98V \$ The diodes will limit the voltage range from just over 5V to just under 0V. For the digital representation, ...


2

@Vicky Rao I think the reply by @Arslan Abbas is very relevant.. use the formula : ADC bit resolution = (log ((VD * E) / (R * Vs))) / (log (2)) + B here VD is full scale I/P voltage range of ADC. Vs is full scale O/P voltage range of measured signal. E is value represented in engineering units that Vs represent. R is the resolution that ...


3

That's perfectly fine... The short answer is that there is nothing wrong with this approach. It presumes, of course, that you have time to switch and do an ADC conversion (which at 200Hz) you do. You might want a series current-limiting resistor in line with the gate to protect your MCU driver (if the total gate charge of the N-FET is in the tens of nC, ...


3

Noise is the determining factor. You first must start with the noise level of what your Accelerometer + Amplifier puts out, lets call this N for noise. Then you need to find what your accelerometer puts out at it's maximum, we will assume that this will be some RMS value and call it S for signal. Your SNR (signal to noise ratio) \$=\frac{S}{N}\$ The base ...


1

Resolution of ADC is the measure of its preciseness. It depends upon how much sensitivity do you require for your design. For your case it will be converting accelerometer's voltage signals into digital output. First measure your peak voltage from accelerometer say 100mv, then decide how much sensitivity do you require e.g. your design must be sensitive to ...


4

It depends on the significance you need and the supported range. Consider an accelerometer that outputs 0 to 5 volts (range), and you want to measure with two decimal (significance). That would mean you would have \$5\cdot100=500\$ possible values. To get that amount of possible values in a binary number, you would need \$\lceil\log_2{(500)}\rceil=9\$ bits. ...



Top 50 recent answers are included