Forum: Mikrocontroller und Digitale Elektronik Probleme mit ADC und Sensor


von Peterle A. (Firma: keine) (wanderameise)


Lesenswert?

Evtl ist es ein triviales Problem, aber irgendwie komm ich nicht 
dahinter:

Ich missbrauche meinen AT90CAN128 als AD-Wandler; dazu folgende 
einstellungen:
1
uint16_t adc_val()
2
{
3
  int i;
4
  uint16_t result;
5
6
  ADMUX |= (1<<MUX0);
7
  ADMUX |= (1<<REFS0);
8
   ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0);
9
   ADCSRA |= (1<<ADSC);
10
11
   //dummy messung
12
   while ( ADCSRA & (1<<ADSC) ) {
13
     ;
14
   }
15
   result = ADCW;
16
   result = 0;
17
   for( i=0; i<4; i++ ) 
18
   {
19
      ADCSRA |= (1<<ADSC);
20
      while ( ADCSRA & (1<<ADSC) ) {
21
         ;
22
      }
23
      result += ADCW;
24
   }
25
   ADCSRA &= ~(1<<ADEN);
26
   result /= 4;          //mittelwert
27
return result;
28
29
}

Das klappt alles wunderbar, wenn ich ein Netzteil, das mir stabile 2,7V 
- 5 V liefert, anschließe.
Wenn ich jedoch eine Platine, auf der ein Sensor(ADXL335) sitzt, 
anschließe, bekomme ich ständig 0 angezeigt. Das Voltmeter zeigt 
wunderbare 1,65 Volt.
Wieso geht es mit dem Netzteil und nicht mit dem Sensor?
Was mache ich falsch!
Habt ihr eine Idee auf die Schnelle?

von holger (Gast)


Lesenswert?

>Wieso geht es mit dem Netzteil und nicht mit dem Sensor?
>Was mache ich falsch!

Masse anschließen.

von Peterle A. (Firma: keine) (wanderameise)


Lesenswert?

wenns so einfach wäre...

von holger (Gast)


Lesenswert?

>wenns so einfach wäre...

Meistens ist es das;)

von Peterle A. (Firma: keine) (wanderameise)


Angehängte Dateien:

Lesenswert?

anbei mal ein bild des aufbaus

von Stefan B. (stefan) Benutzerseite


Lesenswert?

> Das Voltmeter zeigt wunderbare 1,65 Volt.

Wo gemessen?

von holger (Gast)


Lesenswert?

>anbei mal ein bild des aufbaus

Man sieht drei Platinen und Drahtvogelnester. ROFL;)

von Peterle A. (Firma: keine) (wanderameise)


Lesenswert?

Stefan B. schrieb:
>> Das Voltmeter zeigt wunderbare 1,65 Volt.
>
> Wo gemessen?

sensorausgang.

ich muss dazu sagen, das sich der adc merkwürdig verhält. bei größeren 
werten schwanken diese stark. keine ahnung woran das liegen könnte!

von Anja (Gast)


Lesenswert?

>Wieso geht es mit dem Netzteil und nicht mit dem Sensor?
Der Sensor ist relativ hochohmig (33k) im Verhältnis zum Netzteil.

Wie ist denn Dein Filterkondensator für den Sensor dimensioniert?

Eventuell ist die Sample-Time für den ADC zu gering (bei der hohen 
Eingangsimpedanz).

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Welcher Filterkondensator als Tiefpass ist denn am Sensor verbaut? Und 
die Spannung würde ich dringend mal direkt am ADC:Eingang des AVR messen 
(GND = AVR-GND). Dort soll sie ja digitalisiert werden.

von Peterle A. (Firma: keine) (wanderameise)


Angehängte Dateien:

Lesenswert?

anbei mal die werte bei knapp 5V. die werte schwanken stark.

als Tiefpass sind 0,1 µF kondensatoren an die Sensorausgängen 
angeschloßen.
sample time liegt bei 16MHZ/8 .

von holger (Gast)


Lesenswert?

>anbei mal die werte bei knapp 5V. die werte schwanken stark.

799-826 würde ich nicht als stark schwankend bezeichnen.

von Peterle A. (Firma: keine) (wanderameise)


Lesenswert?

holger schrieb:
>>anbei mal die werte bei knapp 5V. die werte schwanken stark.
>
> 799-826 würde ich nicht als stark schwankend bezeichnen.

Naja bei 2.7 Volt schwankt es um 2 digits, daher meine skepsis. Und 
müssten es nicht ~1024 heissen bei 5 V?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Peterle Anonym schrieb:

> sample time liegt bei 16MHZ/8 .

Im AVR Datenblatt werden 50 bis 200 KHz empfohlen. Bei Vref = AVcc = 5V 
solltest du bei 5V Signaleingang ADCW=1023 bekommen. Deine Werte 
(799-826) wären zu klein. Könnte mit der zu hohen Samplefrequenz 
zusammenhängen. Bei kleineren zu messenden Spannungen könnte das sich 
verbosen.

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.