Forum: Mikrocontroller und Digitale Elektronik A/D Genauigkeit und Stabilität


von Mario EDUARDO (Gast)


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) ??!!

von crazy horse (Gast)


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.

von emil (Gast)


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

      };
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.