mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Mehrere ADC Kanäle simultan messen


Autor: Sönke Heidkamp (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, ich ahbe folgendes Problem:

Für mein DUO-LED Fahrradlicht betreibe ich zwei Step-Down Wandler für 
bis zu 1A und um das Tastverhältnis der PWMs zu regeln, möchte ich die 
Ströme über zwei 0,5Ohm Shunts gegen Masse mit 10-facher Verstärkung 
messen. Wenn ich einen einzelnen Kanal betreibe, funtkioniert die 
Schaltung. Wenn ich einen anderen betreibe auch, aber beide zusammen mit 
der Batterie Überwachung verfälscht das Ergebnis der Messung um den 
gefühlten faktor 10 nach unten.

Hier meine Interrupt Routine:

SIGNAL(SIG_ADC)
{
  if(ADC_COUNT)
    ADC_TMP+=(ADC<<1);

  ADC_COUNT++;

  if(ADC_COUNT>1)
  {
    switch(ADC_CHANNEL)
    {
    case(0):                  // BATTERY
      UBAT=ADC_TMP;
      ADC_CHANNEL=1;
      ADMUX|= 0b01001001;            // AREF/right/2-CH amp./10*ADC1->0
    break;

    case(1):                  // NEAR LED
      I1=ADC_TMP;
      if((I_SET>I1) && (OCR1A>400)){
        OCR1A--;}
      else if((I_SET<I1) && (OCR1A<1022)){
        OCR1A++;}
      ADC_CHANNEL=2;
      ADMUX|= 0b01001101;            // AREF/right/2-CH amp./10*ADC3->2
    break;

    case(2):                  // FAR LED
      I2=ADC_TMP;
      if((I_SET>I2) && (OCR1B>400)){
        REDOFF
        GREENON
        OCR1B--;}
      else if((I_SET<I2) && (OCR1B<1022)){
        REDON
        GREENOFF
        OCR1B++;}
      ADC_CHANNEL=0;
      ADMUX|= 0b01000111;            // AREF/right/8 unipol./ADC7
    break;
    }
    ADC_COUNT=0;
    ADC_TMP=0;
  }

  ADCSRA|= (1<<ADSC);                //start next Conversion*/
}

Ich verzweifle an diesem Fehler, vielleicht kann mir ja jemand einen 
heißen Tipp geben, was man beachten muss um mehrere Kanäle quasi 
parallel zu messen.

mfg Sönke

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich kenne mich mit ATMEL nicht aus. Aber bei den PIC's gilt, dass man 
beim Umschalten von einem Kanal auf einen anderen erst mal ein bisschen 
warten muss, damit sich die Multiplexer-Eingangs-Kapazität auf den neuen 
Spannungswert aufgeladen hat. Das ist bei ATMEL vermutlich genauso. Also 
studier nochmal das datenblatt, ob da nicht auch so eine Wartezeit 
vorgesehen ist, denn nach so einem Fehler sieht es für mich aus.

Gruß
Gerhard

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist Dein Fehler:
ADMUX|= 0b01001001;            // AREF/right/2-CH amp./10*ADC1->0
...
ADMUX|= 0b01001101;            // AREF/right/2-CH amp./10*ADC3->2
...
ADMUX|= 0b01000111;            // AREF/right/8 unipol./ADC7
Du darfst nicht verodern, nach 3 Durchgängen ist ein sich nicht mehr 
ändernder Zustand erreicht.

Außerdem ist Deine Bitschreibweise unübersichtlich.

Autor: Sönke Heidkamp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DAAANNKEEE!!

Ich hatte zunächst immer nur die Bits getoggelt,aber weil der Ausdruck 
zu lang war habe ich die Binärzahlen eingesetzt und das |= vergessen. 
Irgendwann sihet man es einfach nicht mehr, auch wenn ich wusste, dass 
es an diesem Befehl liegen muss.

VIELEN DANK!!!
Im endeffekt hat er von ADC3 nach 2 mit 200 facher auflösung gegen 5V 
gemessen. Daher auch der um den Faktor 20 kleinere Strom...

mfg Sönke

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.