closed

Loginbox

Please enter your username and password into the following fields to log in.


  • Username:
  • Password:
  •  
  • Auto log in on every visit.


  •  

XMEGA und READPRODUCTIONROW Probleme



pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1122
Registered: 02 / 2009
Homepage Private message
Subject: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 14.07.2020 - 17:54   -  
Hallo Leute,

hat irgend Jemand mal erfolgreich die Funktion "ReadProductionRow()" mit dem AVRco benutzt?

Ich habe jetzt verschiedene Wege ausprobiert.

1. In der Main App:
Code
 bCalLow:= ReadProductionRow(word(ADCACAL0));
  bCalHigh:= ReadProductionRow(word(ADCACAL1));

  DebugOut('low:  '+ByteToHex(bCalLow));
  DebugOut('High: '+ByteToHex(bCalHigh)); 


Ergebnis ist immer:
low: 00
High: 00

2. Versuch über das Boot:


Code
{$EEPROM}
  eebCalLow[EEpromEnd - 7] : byte;     // 4089 ADC CalLow aus Boot
  eebCalHigh[EEpromEnd - 6]: byte;     // 4090 ADC CalHigh aus Boot


Code
// ADC Kalibrierung
 eebCalLow:= ReadProductionRow($0020);
  eebCalHigh:= ReadProductionRow($0021);



Und in der MainApp:

Code
{$EEPROM}
  eebCalLow[EEpromEnd - 7] : byte;     // 4089 ADC CalLow aus Boot
  eebCalHigh[EEpromEnd - 6]: byte;     // 4090 ADC CalHigh aus Boot


Code
   DebugOut('low:  '+ByteToHex(eebCalLow));
    DebugOut('High: '+ByteToHex(eebCalHigh));


Ich habe das Gefühl diese ReadProduktionRow Funktion hat einen Fehler.

Der ASM Code sieht wie folgt aus:
Code
                        .LINE     621
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 00020h SHRB 8
                        LDI       _ACCB, 00020h AND 0FFh
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        CALL       SYSTEM.READPRODUCTIONROW
                        POP       _FPTRHI
                        POP       _FRAMEPTR

                        STS       PVS2018_GLOBAL.BCALLOW, _ACCA


Code
                        .LINE     622
                        PUSH      _FRAMEPTR
                        PUSH      _FPTRHI
                        LDI       _ACCA, 00021h SHRB 8
                        LDI       _ACCB, 00021h AND 0FFh
                        ST        -Y, _ACCA
                        ST        -Y, _ACCB
                        .FRAME  2
                        .FRAME  0
                        CALL       SYSTEM.READPRODUCTIONROW
                        POP       _FPTRHI
                        POP       _FRAMEPTR

                        STS       PVS2018_GLOBAL.BCALHIGH, _ACCA


Ich bin kein ASM Profi, liegt hier nicht ein Fehler vor?
Code
                        LDI       _ACCA, 00021h SHRB 8
                        LDI       _ACCB, 00021h AND 0FFh


Die Funktion fordert im AVRco ein WORD (in C nutze ich hier aber ein uint8_t (entspricht ein Byte) ), in dieser Funktion wird das Word geladen und 8 Bits nach rechts geschoben, also kann die Adresse $20, $21 nie genutzt werden! Da diese Adresse verschoben wird! Das ist doch ein BUG oder?

Ich teste das ganze mal mit:
Code
// ADC Kalibrierung
 eebCalLow:= ReadProductionRow($2000);
  eebCalHigh:= ReadProductionRow($2100);



Thorsten

NACHTRAG:
Nach der Änderung erhalte ich nun auch Werte, ich weiss zwar noch nicht ob diese richtig sind:
low: 0B
High: FF
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
This post has been edited 5-times. Last edit: 14.07.2020 - 19:12 by pvs-deck.
go down go up
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5509
Registered: 03 / 2002
Homepage Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 14.07.2020 - 23:11   -  
Hallo Thorsten,

nach SRB 8 und AND $FF steht im 16bit register R16/17 $0021.
Im AVRco Treiber wird die Production Row normalerweise nicht
gelesen. Die CAL Bytes werden beim RESET automatisch geladen
und an die entspr. Stelle geschrieben.
Wenn ich mich richtig entsinne muss dieser Speicher Bereich mittels
Z-Register und EIND gelesen werden.

rolf
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1122
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 15.07.2020 - 13:38   -  
Quote by rh

Hallo Thorsten,

nach SRB 8 und AND $FF steht im 16bit register R16/17 $0021.
Im AVRco Treiber wird die Production Row normalerweise nicht
gelesen. Die CAL Bytes werden beim RESET automatisch geladen
und an die entspr. Stelle geschrieben.
Wenn ich mich richtig entsinne muss dieser Speicher Bereich mittels
Z-Register und EIND gelesen werden.

rolf


Hallo rolf,

sind die Register H/L verdreht? Wenn nein, verstehe ich es nicht!

< HIGH > < LOW >
0000 0000 0000 0000
0000 0000 0010 0001 = $21 / Dual 33


Wenn ich jetzt ein SRB 8 mache, dann erhalte ich doch

0000 0000 0000 0000 und dann hilft auch kein AND $FF

< HIGH > < LOW >
0000 0000 0000 0000
AND
0000 0000 1111 1111
=
0000 0000 0000 0000


Oder entspricht das SRB eher dem ROR vom Pascal, dann würde es so aussehen

< HIGH > < LOW >
0000 0000 0010 0001 = $21 / Dual 33
SRB 8
0010 0001 0000 0000 = $2100 / Dual 8448
AND
0000 0000 1111 1111
=
0000 0000 0000 0000


Ändert aber am Ergebnis nichts???
Es bleibt "0"

Wenn ich das richtig verstehe, mit meiner Korrektur:

< HIGH > < LOW >
0010 0001 0000 0000 = $2100 / Dual 8448
SRB 8
0000 0000 0010 0001 = $21 / Dual 33
AND
0000 0000 1111 1111
=
0000 0000 0010 0001 = $21 / Dual 33


Da würde dann auch das AND $FF sinn machen.

Weiterhin muss ich Dich enttäuschen, die Werte werden nicht
automatisch geladen und verwendet. Eben scheinbar genau wie von Atmel beschrieben.

Ich habe mal wir folgt getestet:

Code
 bCalLow:= ReadProductionRow($2000);
  bCalHigh:= ReadProductionRow($2100);

   DebugOut('low:  '+ByteToHex(bCalLow));
    DebugOut('High: '+ByteToHex(bCalHigh));

   DebugOut('vor Init low:  '+ByteToHex(ADCACALL));
    DebugOut('vor Init high: '+ByteToHex(ADCACALH));
  
  ADCACALL :=bCalLow;
   ADCACALH :=bCalHigh;
  
   DebugOut('nach Init low:  '+ByteToHex(ADCACALL));
    DebugOut('nach Init high: '+ByteToHex(ADCACALH));


Die Ausgabe sieht wie folgt aus:
low: 0B
High: 00
vor Init low: 00
vor Init high: 00
nach Init low: 0B
nach Init high: 00


Also sind in den ADCACALL/ADCACALH erst nach dem beschreiben Werte vorhanden.

Wenn ich es bei dem ASM nicht richtig mit dem "SRB 8" verstanden habe, erkläre es mir bitte. Denn mit der "ReadProductionRow()" erhalte ich bei normaler Eingabe bei allen meinen XMEGAs "$00" zurück.

Thorsten
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 39
Posts: 276
Registered: 07 / 2013
Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 16.07.2020 - 09:41   -  
Hallo Thorsten,

- Habe die Funktion readProductionCode im Simulator durchgesteppt. Sah alles gut aus.
- Richtig, kein auto load für ADCnCAL Werte, dass macht der AVRco Treiber. Siehe Listing
Code

5854   0C00                                    ; >> ADC_B Init <<
5855   0C00       E2E4                         LDI       _ACCCLO, ADCBCAL0
5856   0C01       27FF                         CLR       _ACCCHI
5857   0C02       E012                         LDI       _ACCA, 2
5858   0C03   931001CA                         STS       NVMCMD, _ACCA
5859   0C05       95C8                         LPM


- Dein gepostete Assembler code legt das High und Lowbyte der Adresse des Funktionsparameters auf dem frame.
Code

LDI       _ACCA, 00020h SHRB 8   // im ACCA steht jetzt 00h
LDI       _ACCB, 00020h AND 0FFh // in ACCB steht jetzt 20h
ST        -Y, _ACCA   // Highbyte auf dem Frame legen
ST        -Y, _ACCB  // Lowbyte auf dem Frame legen


- Bei einem XMEGA32A4 (ohne USB) lese ich übrigens mit dem nachfolgenden code Werte ungleich Null aus (siehe angehängtes Bild).

Code

program PRODUCTIONROW;

Device = xmega32A4, VCC=3.3;

Import xmegaSupport;

Define
  OSCtype        = int32MHz;
  StackSize      = 128, iData;
  FrameSize      = 128, iData;

Implementation
{$IDATA}

type
  tProdRow = record
    RCOSC2M  : byte;
    RCOSC2MA : byte;
    RCOSC32K : byte;
    RCOSC32M : byte;
    RCOSC32MA : byte;
    Reserved0 : byte;
    Reserved1 : byte;
    Reserved2 : byte;
    LOTNUM0 : byte;
    LOTNUM1 : byte;
    LOTNUM2 : byte;
    LOTNUM3 : byte;
    LOTNUM4 : byte;
    LOTNUM5 : byte;
    Reserved3 : byte;
    Reserved4 : byte;
    WAFNUM : byte;
    Reserved5 : byte;
    COORDX0 : byte;
    COORDX1 : byte;
    COORDY0 : byte;
    COORDY1 : byte;
    Reserved6 : byte;
    Reserved7 : byte;
    Reserved8 : byte;
    Reserved9 : byte;
    USBCAL0 : byte;
    USBCAL1 : byte;
    RCOSC48M : byte;
    Reserved10 : byte;
    Reserved11 : byte;
    Reserved12 : byte;
    ADCACAL0 : byte;
    ADCACAL1 : byte;
    Reserved13 : byte;
    Reserved14 : byte;
    ADCBCAL0 : byte;
    ADCBCAL1 : byte;
    Reserved15 : byte;
    Reserved16 : byte;
    Reserved17 : byte;
    Reserved18 : byte;
    Reserved19 : byte;
    Reserved20 : byte;
    Reserved21 : byte;
    Reserved22 : byte;
    TEMPSENSE0 : byte;
    TEMPSENSE1 : byte;
    DACA0OFFCAL : byte;
    DACA0GAINCAL : byte;
    DACB0OFFCAL : byte;
    DACB0GAINCAL: byte;
    DACA1OFFCAL : byte;
    DACA1GAINCAL : byte;
    DACB1OFFCAL : byte;
    DACB1GAINCAL : byte;
    Reserved23 : byte;
    Reserved24 : byte;
    Reserved25 : byte;
    Reserved26 : byte;
    Reserved27 : byte;
    Reserved28 : byte;
    Reserved29 : byte;
  end;

  tBytePointer = pointer to byte;

var
  prodRow : tProdRow;


procedure dumpProdRow;
var
  p : pointer to byte;
  i : word;
begin
  p := tBytePointer(@prodRow);
  for i := 0 to sizeof(tProdRow) do
    p^++ := readProductionRow(i);
  endfor;
end;


begin
  dumpProdRow;
  loop
  endloop;
end.
You must be logged in or your permissions are to low to see this Attachment(s).
This post has been edited 6-times. Last edit: 16.07.2020 - 10:08 by Thomas.AC.
go down go up
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5509
Registered: 03 / 2002
Homepage Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 16.07.2020 - 23:16   -  
Hallo Thomas,

Asche auf mein Haupt. Ein Calibrate der ADCs muss doch passieren.
Dies geschieht jedoch automatisch nach dem Import von ADCA/ADCB.
Ich hatte das doch ganz vergessen. Ist auch schon wieder Jahre her.
Der User braucht sich deshalb nicht darum zu kümmern.
Ähnliches gilt auch für das USB und andere.......
Sorry für mein Blödsinn weiter oben.

Warum Thorsten daran rumschraubt ist mir trotzdem nicht klar....

rolf
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1122
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 17.07.2020 - 10:18   -  
Quote by rh

Hallo Thomas,

Asche auf mein Haupt. Ein Calibrate der ADCs muss doch passieren.
Dies geschieht jedoch automatisch nach dem Import von ADCA/ADCB.
Ich hatte das doch ganz vergessen. Ist auch schon wieder Jahre her.
Der User braucht sich deshalb nicht darum zu kümmern.
Ähnliches gilt auch für das USB und andere.......
Sorry für mein Blödsinn weiter oben.

Warum Thorsten daran rumschraubt ist mir trotzdem nicht klar....

rolf


Hallo rolf,

weil Dein Treiber unter dem XMEGA384C3 noch immer nicht funktioniert. Also muß ich es zu Fuß machen. Leider ;-)

Thorsten
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 39
Posts: 276
Registered: 07 / 2013
Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 17.07.2020 - 14:11   -  
Quote

Der User braucht sich deshalb nicht darum zu kümmern.


Super. Ich freue mich darüber, weil ich den ADC Treiber verwende und mir damals keine Gedanken über Kaliebrierwerte gemacht habe. Den negativen offset, wie im Datenblatt angegeben, habe ich damals berücksichtigt. Diesen muss man manuell handhaben.

Danke Thorsten für den Thread.
Hast du zum Auslesen der roduction row noch Fragen?

Gruß
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1122
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 17.07.2020 - 14:55   -  
Quote by Thomas.AC

Quote

Der User braucht sich deshalb nicht darum zu kümmern.


Super. Ich freue mich darüber, weil ich den ADC Treiber verwende und mir damals keine Gedanken über Kaliebrierwerte gemacht habe. Den negativen offset, wie im Datenblatt angegeben, habe ich damals berücksichtigt. Diesen muss man manuell handhaben.

Danke Thorsten für den Thread.
Hast du zum Auslesen der roduction row noch Fragen?

Gruß

Hallo Thomas,

vielen Dank für Deine Informationen. Trotzdem erhalte ich mit der normalen Funktion


Code
 bCalLow:= ReadProductionRow($20);
 bCalHigh:= ReadProductionRow($21);

oder

Code
 bCalLow:= ReadProductionRow(word(ADCACAL0));
  bCalHigh:= ReadProductionRow(word(ADCACAL1));


bei allen meinen XMEGAs 384C3 immer "0" als Rückgabe, aber die Serien haben Abweichungen. Das macht sich bei einer Widerstandsmessung um bis zu 3kOhm bemerkbar. Bei einem Messbereich von 0-32kOhm.

Alle Bauteile sind von den gleichen Rollen, nur die XMEGAs sind hier unterschiedlich.

Ich probiere mal Deinen Code aus, aber nicht im Simulator sondern am echten. Dann mal schauen,
ist vielleicht beim XMEGA384C3 die ADCACAL0/ADCACAL1 auf einer anderen Adresse als der im DSC?

Thorsten
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
Merlin offline
Schreiberling
Avatar
Gender: male
Location: UNITED KINGDOM 
Age:
Posts: 897
Registered: 03 / 2005
Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 17.07.2020 - 20:45   -  
Presumably, though

Code
 bCalLow: = ReadProductionRow ($20);
 bCalHigh: = ReadProductionRow ($21);


does not depend on DSC file
Merlin.

:magic:

Software is a black art.
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1122
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 22.07.2020 - 15:24   -  
Hallo Leute,

rage war mal so nett und es mit echter Hardware getestet. Das Problem scheint hier nicht die Routine von AVRco zu sein. Bei den XMegas sind dort wohl keine Kalibrierungswerte mehr eingetragen :-(

Also kann man das so wohl vergessen. Ich werde mir jetzt mal einen sehr genauen Widerstand von 10kOhm besorgen und eine Kalibrierungsfunktion erstellen. Das UserRow kann man ja leider nur mit einem Programmer oder über dem Bootloader schreiben oder?

Ich würde dann nach der Kalibrierung, die Abweichung / Korrektur im EEPROM Bereich schreiben, mit einem extra CMD in den Bootloader springen und diese beiden Bytes gerne in den UserRow schreiben.
Ich hoffe nur, das ich dies mit recht wenig Code im Bootloader machen kann. Ich habe da nur noch ein paar Bytes frei (127 Bytes).

Thorsten
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 39
Posts: 276
Registered: 07 / 2013
Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 23.07.2020 - 21:06   -  
Bei meinen getesteten xmega32A4 und xmega128A1U stehen Werte drin. Hab das nicht simuliert sonder mit dem debugger ausgelesen.
go down go up
rage offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 60
Posts: 186
Registered: 02 / 2007
Homepage Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 25.07.2020 - 09:19   -  
Guten Morgen,
ich habe das mit unseren aktuellen Platinen getestet. Alle xmega384C3 und xmega256A3U haben an den entscheidenden Stellen ein 00 zu stehen. Zum einen mit den Funktionen von AvrCo gestetet und zum anderen mit der angehangenen Unit. Bei beiden kam das selbe raus. Mit dem Programmer wollte ich das auch gegentesten, aber ich habe keine Funktion gefunden welche die Productionsrow liest? Hab ich da was übersehen Thomas?

cu rage

Code
Unit NVMSignature;

interface
// global part

{ $W+}                  // enable/disable warnings for this unit

uses ;

{--------------------------------------------------------------}
{ Const Declarations }
const
     NVM_CMD_READ_CALIB_ROW:Byte=$02;
     NVM_CMD_NO_OPERATION  :Byte = $00;    //(0x00<<0)  // Noop/Ordinary LPM
{$IDATA}
{--------------------------------------------------------------}
{ Type Declarations }
type

{--------------------------------------------------------------}
{ Var Declarations }
var

{--------------------------------------------------------------}
{ functions }
Function ReadProduktRowEx(Value:Byte):Byte;


implementation
// local part

{--------------------------------------------------------------}
{ Type Declarations }
type

{--------------------------------------------------------------}
{ Const Declarations }
const

{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
var
   ReturnByte,SignaturAdr:Byte;

{--------------------------------------------------------------}
{ functions }

//; On entry temp must contain the address of the calibration byte to read.
//; Calibration byte returned in temp.
Function ReadProduktRowEx(Value:Byte):Byte;
Begin
  SignaturAdr:=Value;
  PushAllRegs;
ASM;
Read_calibration_byte:
  LDS  R20, NVMSignature.SignaturAdr           ; Point Z to required signature byte
  mov  ZL, R20           ; Point Z to required signature byte
  clr  ZH
  ldi  R20, NVMSignature.NVM_CMD_READ_CALIB_ROW
  sts  NVMCMD, R20         ; Load command into NVM Command register.
  lpm  R20, Z
        STS     NVMSignature.ReturnByte,R20
;Resets NVM to no operation and return
NVM_CMD_NO_OP:
  ldi  r21, NVMSignature.NVM_CMD_NO_OPERATION        ; Prepare NVM command code in R20.
  sts  NVMCMD, r21                               ; Set NVM command to No Operation so that LPM reads Flash.
endasm;
  PopAllRegs;
  Return(ReturnByte);
end;


initialization
// at StartUp

// finalization          // optional
// at System_ShutDown
end NVMSignature.
go down go up
Thomas.AC offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 39
Posts: 276
Registered: 07 / 2013
Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 26.07.2020 - 22:30   -  
Hi rage,
bestätige bitte kurz, dass du die Adressen $20 und $21 ausgelesen hast und nicht versehentlich 20 und 21.

Ich teste morgen noch einmal an einem dritten Board mit xmega, dass mir zur Verfügung steht.

Ich glaube allerdings nicht, das die Kalibrierung mit den Werten aus der Production row viel bringt. Ich vermute, dass etwas anderes die Ursache für die Ungenauigkeit bei Thorsten ist.

Gruß Thomas
This post has been edited 1-times. Last edit: 26.07.2020 - 23:11 by Thomas.AC.
go down go up
rage offline
Benutzer
Avatar
Gender: n/a
Location: n/a 
Age: 60
Posts: 186
Registered: 02 / 2007
Homepage Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 27.07.2020 - 08:17   -  
Guten Morgen Thomas,
das kann ich bestätigen, siehe folgenden Code;
Code

Procedure Test PROW;
    uCount:Byte;
    a:Array[0..$37] of Byte;
    B:Array[0..$37] of Byte;
begin
  For uCount:=0 to $37 do
    a[uCount]:=ReadProductionRow(Word(uCount));
  endfor;
  For uCount:=0 to $37 do
    b[uCount]:=ReadProduktRowEx(uCount);
  endfor;
end;

Ich habe bis $37 alles gelesen und verglichen ob beide gleich sind.

LG Ralf
This post has been edited 1-times. Last edit: 27.07.2020 - 08:17 by rage.
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1122
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMEGA und READPRODUCTIONROW Probleme  -  Posted: 27.07.2020 - 11:09   -  
Quote by Thomas.AC

Hi rage,
bestätige bitte kurz, dass du die Adressen $20 und $21 ausgelesen hast und nicht versehentlich 20 und 21.

Ich teste morgen noch einmal an einem dritten Board mit xmega, dass mir zur Verfügung steht.

Ich glaube allerdings nicht, das die Kalibrierung mit den Werten aus der Production row viel bringt. Ich vermute, dass etwas anderes die Ursache für die Ungenauigkeit bei Thorsten ist.

Gruß Thomas


Hallo Thomas,

bei 10 getesteten XMEGAs 384C3 erhalte ich immer "00" Mit Deinem Code.

Code
    if IO.IN_SERV_R then 
      DebugOut('SERV'); 
      dumpProdRow;
      DebugOut('ADCACAL0:'+ByteToHex(prodRow.ADCACAL0));
      DebugOut('ADCACAL1:'+ByteToHex(prodRow.ADCACAL1));
      
      DebugOut('TEMPSENSE0:'+ByteToHex(prodRow.TEMPSENSE0));
      DebugOut('TEMPSENSE1:'+ByteToHex(prodRow.TEMPSENSE1));
      
      DebugOut('ADCBCAL0:'+ByteToHex(prodRow.ADCBCAL0));
      DebugOut('ADCBCAL1:'+ByteToHex(prodRow.ADCBCAL1));
      
    endif; 


Ergebnis, mir ist klar das es beim 384C3 keinen Wert für ADCBCAL0/1 gibt, aber ich wollte hier ein paar Werte ausgeben inkl. TEMOSENSE0/1

Code
SERV
ADCACAL0:00
ADCACAL1:00
TEMPSENSE0:6D
TEMPSENSE1:09
ADCBCAL0:00
ADCBCAL1:00


Ich habe noch ein STK600 im Homoffice liegen, dort habe ich noch ältere XMEGAs 128/256, ich teste es mal mit diesen.

Quote by Thomas.AC

...
Ich glaube allerdings nicht, das die Kalibrierung mit den Werten aus der Production row viel bringt. Ich vermute, dass etwas anderes die Ursache für die Ungenauigkeit bei Thorsten ist.
...


Ich habe ein recht kleines Messfenster ADC 3100 bis ca. 3700 bei meiner Schaltung, dementsprechend habe ich schon bei geringen Abweichungen deutliche Messfehler. Deswegen benötige ich die ADCACAL0/1 Werte.

Thorsten
You must be logged in or your permissions are to low to see this Attachment(s).
---------------------------------------------------------
Nichts ist unmöglich in der Elektronik und der Software, die Grenzen
setzt nur das Budget, Zeit und der Entwickler! ( P V S - D E C K )
This post has been edited 1-times. Last edit: 27.07.2020 - 11:14 by pvs-deck.
go down go up
 


Registered users in this topic
Currently no registered users in this section

Delete cookies of this forum  •  FAQ / Help  •  Team page  •  Imprint   |  Local time: 05.08.2020 - 12:02