[BUG REPORT XMEGA ADC

die Bitgruppe muxpos im ADCBCH0MUXCTRL falsch

Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

[BUG REPORT XMEGA ADC

 · 
Posted: 17.03.2015 - 11:49  ·  #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.

Attachments
adc bug
Filename: adc_b bug.png
Filesize: 128.43 KB
Title: adc bug
Download counter: 132
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: [BUG REPORT XMEGA ADC

 · 
Posted: 17.03.2015 - 15:03  ·  #2
Hallo Thomas,

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

rolf
Thomas.AC
Benutzer
Avatar
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: [BUG REPORT XMEGA ADC

 · 
Posted: 17.03.2015 - 17:06  ·  #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
Gender: n/a
Age: 43
Posts: 308
Registered: 07 / 2013
Subject:

Re: [BUG REPORT XMEGA ADC

 · 
Posted: 23.03.2015 - 15:41  ·  #4
Hallo Rolf,

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

Gruß
Thomas.AC
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 16 · Cache Hits: 15   82   97 · Page-Gen-Time: 0.027804s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI