- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 8 von 8

Thema: ATXmega128A1 Rev. H unerklärliches ADC-Phänomen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    14.09.2012
    Beiträge
    15

    ATXmega128A1 Rev. H unerklärliches ADC-Phänomen

    Hallo zusammen,

    ich habe ein mir nicht ganz erklärliches Phänomen bei einem Projekt von mir.
    Wie der Titel schon vermuten lässt, geht es um die AD-Wandlung auf meinem ATXmega128A1-Breakoutboard.

    Ich habe zwei Linearpotentiometer als unbelasteten Spannungsteiler, mit denen ich eine Position ermitteln möchte, was auch vom Prinzip her funktioniert, dank der Hilfe von Kampis Tutorial. Leider tritt an bestimmten Stellungen der Potentiomer das Phänomen auf, dass die AD-Wandlung 10 mal funktioniert und dann wird der maximale Wert, der als Referenz gemessen wurde über USART rausgeschrieben. Ich bilde zusätzlich den Mittelwert der letzten 10 Messwerte, um ein wenig das Flattern bei der 12Bit-Auflösung rauszunehmen.

    Die Ausgabe sieht dann zum Beispiel so aus:
    Code:
    USART up and running.
    lower: 745		upper: 812
    lower:3644		upper:3645
    Correction Lower: 2.899	Correction Upper: 2.833
    
    ...
    lower: 1014		upper: 6
    lower: 1014		upper: 1014
    lower: 1014		upper: 7
    lower: 1014		upper: 6
    lower: 1014		upper: 7
    lower: 1014		upper: 7
    lower: 1014		upper: 7
    lower: 1014		upper: 8
    lower: 1014		upper: 7
    lower: 1014		upper: 7
    lower: 1014		upper: 7
    lower: 1014		upper: 7
    lower: 1014		upper: 1014
    lower: 1014		upper: 8
    lower: 1014		upper: 4
    lower: 1014		upper: 8
    lower: 1014		upper: 4
    ...
    An diesem Beispiel ist glaube ich relativ ersichtlich, dass die Messungen mit upper:1014 zwischendrinne ziehmlicher mumpitz sind.
    Ein ähnliches Phänomen habe ich in der genau anderen Richtung auch, nur dass da ein negativer Wert auftauch mit -430. Als Ausgabe sieht das dann ungefähr so aus:
    Code:
    ...
    lower: 4		upper: 1014
    lower: 3		upper: -430
    lower: 0		upper: 1014
    lower: 1		upper: 1014
    lower: 3		upper: 1014
    lower: 4		upper: 1014
    lower: 3		upper: 1014
    lower: 5		upper: 1014
    lower: 5		upper: 1014
    lower: 4		upper: 1014
    lower: 3		upper: 1014
    lower: 2		upper: 1014
    lower: 5		upper: -430
    lower: 3		upper: 1014
    lower: 4		upper: 1014
    lower: 2		upper: 1014
    lower: 3		upper: 1014
    ...
    Jetzt ist vielleicht noch interessant, wie ich auf diese Werte komme und das passiert mit folgender Berechnung:

    Position = (Messwert - Offset)/((maximalerMesswert - minimalerMesswert)/anzahlMesspunkte)

    AnzahlMesspunkte ist in meinem Fall 1000.

    Damit wäre beschrieben, wie ich auf diese lustigen Werte komme.
    Da der Beitrag wahrscheinlich schon lang genug ist, packe ich die wichtigsten Auszüge aus meinem Code in den Anhang.

    Die ADC ist als 12Bit Singleended unsigned mit einer externen Referenzspannung von 3,3V an Pin0 initalisiert. (näheres im Code)

    Um die Frage nochmal zu konkretisieren, die ich habe:
    Kennt jemand das Problem und hat evtl. eine Lösung dafür, oder muss ich mit diesen "Ausreißern" leben, die mir evtl das Leben ein wenig schwerer machen könnten. Sprich ich muss eine Plausibilitätsprüfung für die Werte einfügen.

    Achja, wer auch eine Idee hat, wie ich die werksseitigen Kalibrierungswerte rausbekomme, so dass ich zum Schluss kein Offset mehr habe von der ADC, der darf sie auch gerne Posten, da wäre ich nicht sauer drüber

    Danke und Grüße

    Oreas

    P.S.: habe versucht so viel wie geht zusammen zu kürzen im Anhang und hoffe alles ausreichend kommentiert zu haben. Sollte dem nicht der Fall sein, so stehe ich gerne Rede und Antwort. Und sry, dass alles in einer Datei gelandet ist ^^
    Angehängte Dateien Angehängte Dateien

Ähnliche Themen

  1. Mikrocontroller ATXmega128A1 Programmier-Problem
    Von Drazhoath im Forum AVR Hardwarethemen
    Antworten: 6
    Letzter Beitrag: 08.05.2012, 18:48
  2. Cortex M3 unerklärliches Interrupt Verhalten
    Von Siro im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 8
    Letzter Beitrag: 18.01.2012, 17:20
  3. ET TFT240320TP-3.2 Rev. B kaputt?
    Von flooh im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 02.04.2010, 16:35
  4. BASCOM und ATxmega128A1
    Von Hellmut im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 07.10.2008, 11:31
  5. Heron Robot Project - Rev. 1.02
    Von bart im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 25
    Letzter Beitrag: 16.03.2008, 00:06

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test