Peak's Strommessung INA138 ATMega vom ADC

Gast #1629913
Lesenswert?
• ▲
▼
Habe folgendes Problem, via INA138 Messe ich über einen Widerstand einen 
Strom. Vom INA138 gehe ich direkt auf den ADC des ATMEGA.
Wenn ich nun mit dem KO auf der Leitung zwischen dem Augang des INA138, 
dem Pull-up und dem ADC des ATMega Messe, kriege ich regelmässig alle 
etwa 2ms einen peak, eine spannungsspitze von etwa 4-500mV.
An allen andern Pin's des INA138 sind diese nicht zu messen. An der 
Versogrungsspannung des Pull-up ebenfalls nicht. Deaktiviere ich den 
ADC, sind die spannungsspitzen weg... sprich es sieht aus, als kämmen 
die Spannungsspitzen vom ATMEGA...

Folgendem Programmabschnitt wird der ADC ausgelesen

          uint8_t i;
          uint16_t result2 = 0;

          ADMUX = mux;
          ADMUX |= (0<<REFS1) | (0<<REFS0);
          ADCSRA = (1<<ADEN);// Enable bit (Auf 0 schaltet ADC aus!!)


          ADCSRA |= (1<<ADSC);   // eine ADC-Wandlung
          while ( ADCSRA & (1<<ADSC) ) {
            ;     // auf Abschluss der Konvertierung warten
          }
          result2 = ADCW;  // dummy read

          /* Mittelwert aus 4 aufeinanderfolgenden Wandlungen */
          result2 = 0;
          for( i=0; i<4; i++ )
          {
            ADCSRA |= (1<<ADSC);  // eine Wandlung "single conversion"
            while ( ADCSRA & (1<<ADSC) ) {
              ;   // auf Abschluss der Konvertierung warten
            }
            result2 += ADCH;  //ADCH      // Wandlungsergebnisse

          }
          ADCSRA &= ~(1<<ADEN);             // ADC deaktivieren (2)

          result2 /= 4;

          return (uint8_t) result2;


Beim Booten des controllers setze ich folgendes:
ADMUX = 0x46;
ADCSRA = 0xE0;
ADCSRB = 0x08;


wogarn könnte das liegen??? jemand eine idee?
Lesenswert?
• ▲
▼
@Mirco (Gast)

>äh ok... nur das heisst dass mit der adc meine messung selbst
>verfälscht... wie kriege ich die spannungspitzen am besten raus?

Wenn du nur langsam messen willst ggf. mit einem 22nF Kondensator am 
ADC-Eingang. Das geht aber nur, wenn du nur mit wenigen Hz misst. Machst 
du aber nicht, du misst alle 2ms. Also brauchst du einen OPV als Puffer. 
Den einfach als Spannungsfolger schalten.

MFG
Falk

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.