[BUG REPORT XMEGA ADC

die Bitgruppe muxpos im ADCBCH0MUXCTRL falsch

Thomas.AC
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 44
Beiträge: 308
Dabei seit: 07 / 2013
Betreff:

[BUG REPORT XMEGA ADC

 · 
Gepostet: 17.03.2015 - 11:49 Uhr  ·  #1
Hallo,
bei Verwendung des ADC_B beim Xmega bekomme ich falsche Werte und konnte festgestellen,
dass der Treiber die Bitgruppe muxpos im ADCBCH0MUXCTRL Register anscheinend falsch setzt.
Ich 'trace' das besagte Register in der Systick callback, da der Treiber an Systick gekoppelt ist, wenn mehr als 4 Eingänge eines ADC verwendet werden.
Im angehängten Bild sieht man die, im TraceArray gespeicherten, Werte.

ich erhalte für die Bitgruppe muxpos ...,5,5,1,2,3,4,5,5,5,0,1,2,3,4,5,5,...
Das sieht falsch aus.

Wenn mein Stimulation richtig ist, dann schließe ich auf einen Bug.

[Edit]
Bei meiner Stimulation gehe ich davon aus, dass der Treiber bei jedem Systick muxpos ändert, ist meine Annahme richtig?

Gruß
Thomas

Code

program adcbTST;     //   f_cpu = 32 MHz

Device = xmega128A1U, VCC = 3.3;

Define_Fuses
    Override_Fuses;
    NoteBook   = A;
    COMport    = USB;
    FuseBits5  = [BODLEVEL1, BODLEVEL2, BODACT0]; // BOD=2.8V if USB variant
    //ProgFuses = true;
    //ProgEEprom = true;

Import SysTick, ADC_B;

Define
    OSCtype        = extXTAL=8000000, PLLmul=4, prescA=1, prescB=1, prescC=1, faildet;

    SysTick        = 10;
    StackSize      = 256, iData;
    FrameSize      = 256, iData;
    ADCprescB      = 128;
    ADCrefB        = REF100;
    ADCchansB      = [0..7]; // ich verwende den ganzen Port

implementation
{$IDATA}

// Globale Variabeln
var
  traceArray : array[0..15] of byte; // size = 16 bytes
  traceCount : byte;

procedure OnSysTick;
begin
    // traceCount and 0x0F ist kleiner 16, array out of bounds nicht möglich
    traceArray[traceCount and $0F] := ADCBCH0MUXCTRL;
    traceCount := traceCount + 1;
end;

{-------------------------------------------------------------------------------
Main Program
-------------------------------------------------------------------------------}
begin
  EnableInts($87);
  loop
    // im Hardware Debugger manuell stoppen und traceArray analysieren
  endloop;
end adcbTST.

Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: [BUG REPORT XMEGA ADC

 · 
Gepostet: 17.03.2015 - 15:03 Uhr  ·  #2
Hallo Thomas,

Bug beim kopieren der ADCA Funktionen nach ADCB.
Ist jetzt beseitigt.

rolf
Thomas.AC
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 44
Beiträge: 308
Dabei seit: 07 / 2013
Betreff:

Re: [BUG REPORT XMEGA ADC

 · 
Gepostet: 17.03.2015 - 17:06 Uhr  ·  #3
Alles klar Rolf, danke!
ich teste es morgen und berichte dann.

[Edit]
ich teste es sobald ich die neue AVRco Version erhalte.

Gruß
Thomas
Thomas.AC
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 44
Beiträge: 308
Dabei seit: 07 / 2013
Betreff:

Re: [BUG REPORT XMEGA ADC

 · 
Gepostet: 23.03.2015 - 15:41 Uhr  ·  #4
Hallo Rolf,

es funktioniert jetzt. Danke für die schnelle Arbeit.

Gruß
Thomas.AC
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   81   95 · Page-Gen-Time: 0.029673s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI