A/D Genauigkeit und Stabilität

Gast #35401
Lesenswert?

Ich habe einen ATMEGA32 und das STK500 mit der Library von
http://www.procyonengineering.com/avr/avrlib/index.html in Verwendung 
(a2dtest). Ich habe zum Test die 5Volt mit 2*2k2 halbiert und an den AD 
Eingang gelegt. Da gibts alle Werte von 512 bis 524. Ein parallel 
angeschlossenes Fluke zeigt eine stabile Spannung. Die eingestellte 
Frequenz war 4 MHZ, AD Teiler ist 128.
Kann mir jemand sagen, was ich tun muß, daß der Wert bestenfalls 
zwischen 514 und 516 zittert (was ich schon als sehr viel empfinde) ??!!
Gast #35402
Lesenswert?

soll das Ergebnis stabil sein, darf weder die angelegte Spannung noch 
die Referenzspannung Störungen aufweisen. Also Entkopplung mit RC-Glied.
Weiterhin empfiehlt sich die Stilllegung des CPU-Core während der 
Wandlung.
Gast #35403
Lesenswert?

hi mario,
irgendwie erscheint mir deine library sehr hässlich und überflüssig...
warum versuchst du nicht mit das hier? bei mir tut's mit
tiny26, 90s4433 und mega8 ganz stabil...

#include <mega32.h>

#define ADC_VREF_TYPE 0xC0
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSR|=0x40;
// Wait for the AD conversion to complete
while ((ADCSR & 0x10)==0);
ADCSR|=0x10;
return ADCW;
}

void main(void)
{

// ADC initialization
// ADC Clock frequency: 31,250 kHz
// ADC Voltage Reference: Int., cap. on AREF
ADMUX=ADC_VREF_TYPE;
ADCSR=0x87;

while (1)
      {
      // Place your code here

      };
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren