closed

Loginbox

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


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


  •  

ADC Treiber mit ATXMega 384C3



Torsten offline
Benutzer
Avatar
Gender: male
Location: GERMANY  Bad Doberan
Age: 54
Posts: 57
Registered: 11 / 2005
Private message
Subject: ADC Treiber mit ATXMega 384C3  -  Posted: 26.09.2019 - 13:25   -  
Hallo,
ich arbeite gerade mit einem ATXMega 384C3 und habe ein Problem mit dem ADC Treiber.
Vom Port A benutze ich drei Eingänge 0,1,2 für die Messung einer Spannung. Wenn ich die Konfiguration
für den Port auf diese drei Eingänge setzte, dann wird nur mit dem Befehl GetADCA(0) ein brauchbarer
Wert geliefert. Die Abfrage der anderen Eingänge zeigt im Ergebnis eine Null. Durch Änderung der Konfiguration auf die Eingänge von 0..7 werden auf allen Eingängen sinnvolle Werte angezeigt.
Ich denke das Beispiel spiegelt den Sachverhalt wider. Wird der Treiber in dem Beispiel richtig verwendet oder habe ich etwas übersehen.
Vielleicht hat ja jemand Erfahrungen auf dem Gebiet.

Vielen Dank!
Torsten
You must be logged in or your permissions are to low to see this Attachment(s).
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 48
Posts: 1046
Registered: 02 / 2009
Homepage Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 26.09.2019 - 18:15   -  
Hallo Torsten,

das kann ich bestätigen. Ich habe es gerade mal getestet, scheint ein BUG unter dem 384C3 zu sein.
Bei mir kann ich von meinen ADCA 0 bis 3 nur den 0er mit Werten lesen.

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
Torsten offline
Benutzer
Avatar
Gender: male
Location: GERMANY  Bad Doberan
Age: 54
Posts: 57
Registered: 11 / 2005
Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 26.09.2019 - 21:14   -  
Hallo Thorsten,
vielen Dank für den Test, ich denke dann wird es bestimmt auch eine Lösung geben, mit dem nächsten Update
funktioniert es bestimmt.

Torsten
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 48
Posts: 1046
Registered: 02 / 2009
Homepage Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 02.10.2019 - 11:36   -  
Hallo rolf,

kann es sein das hier ein Fehler in der xmega384C3.dsc vorliegt?
Kann ich diese selbst kontrollieren? Irgendwie finde ich keine DOKU von ATMEL wo ich die Register abgleichen kann (nur von den Typen A, B und D nichts über die C-Typen).

Code
; ADCA Analog to Digital Converter on port A
ADCACTRLA=$0200
ADCACTRLB=$0201
ADCAREFCTRL=$0202
ADCAEVCTRL=$0203
ADCAPRESCALER=$0204
ADCAINTFLAGS=$0206
ADCATEMP=$0207
ADCACALL=$020C
ADCACALH=$020D
ADCACH0RESL=$0210
ADCACH0RESH=$0211
ADCACH1RESL=$0212
ADCACH1RESH=$0213
ADCACH2RESL=$0214
ADCACH2RESH=$0215
ADCACH3RESL=$0216
ADCACH3RESH=$0217
ADCACMPL=$0218
ADCACMPH=$0219

ADCACH0CTRL=$0220
ADCACH0MUXCTRL=$0221
ADCACH0INTCTRL=$0222
ADCACH0INTFLAG=$0223
ADCARESLCH0=$0224
ADCARESHCH0=$0225
ADCAMUXCH0=$0226

ADCACH1CTRL=$0228
ADCACH1MUXCTRL=$0229
ADCACH1INTCTRL=$022A
ADCACH1INTFLAG=$022B
ADCARESLCH1=$022C
ADCARESHCH1=$022D

ADCACH2CTRL=$0230
ADCACH2MUXCTRL=$0231
ADCACH2INTCTRL=$0232
ADCACH2INTFLAG=$0233
ADCARESLCH2=$0234
ADCARESHCH2=$0235

ADCACH3CTRL=$0238
ADCACH3MUXCTRL=$0239
ADCACH3INTCTRL=$023A
ADCACH3INTFLAG=$023B
ADCARESLCH3=$023C
ADCARESHCH3=$023D

; ACA Analog Comparator pair on port A
ACAAC0CTRL=$0380
ACAAC1CTRL=$0381
ACAAC0MUXCTR=$0382
ACAAC1MUXCTR=$0383
ACACTRLA=$0384
ACACTRLB=$0385
ACAWINCTRL=$0386
ACASTATUS=$0387



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 )
This post has been edited 1-times. Last edit: 02.10.2019 - 13:51 by pvs-deck.
go down go up
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5472
Registered: 03 / 2002
Homepage Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 02.10.2019 - 15:21   -  
Torsten
Ja, es gibt für die xmegas nur ein gemeinsames Datenblatt weil offiziell die Peripherie immer identisch ist.
Es gibt eigentlich keinen Grund für das problem.
Ein DSC File kann immer geändert werden.
rolf
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
This post has been edited 1-times. Last edit: 02.10.2019 - 15:22 by rh.
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 48
Posts: 1046
Registered: 02 / 2009
Homepage Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 02.10.2019 - 17:50   -  
Hallo rolf,

eigentlich scheint alles zu passen. Der Unterschied zwischen dem 256A3BU und dem 384C3 ist die Anzahl der ADCs. Der 256 hat 2 und der 384 nur einen und dieser ist über Port A und B verteilt.

Soll ich Dir noch mal eine Steuerung mit einem 384C3 zum testen zusenden?

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 )
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 48
Posts: 1046
Registered: 02 / 2009
Homepage Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 02.10.2019 - 18:30   -  
Hallo rolf,

ich habe es gerade nochmal mit dem PDi-Debugger etwas getestet, mein Code:

Code
Define
..
..
  ADCrefA        = REFintVCC;
  ADCprescA      = 64;                        // prescaler 64
  ADCchansA      = [0..3];
..
..
    ww:= GetADCA(0);
    st:= 'B0: '+IntToStr(ww:6);
    DebugOut( st);

    ww:= GetADCA(1);
    st:= 'B1: '+IntToStr(ww:6);
    DebugOut( st);

    ww:= GetADCA(2);
    st:= 'B2: '+IntToStr(ww:6);
    DebugOut( st);

    ww:= GetADCA(3);
    st:= 'B3: '+IntToStr(ww:6);
    DebugOut( st);  // Hier habe ich den Break gemacht



Schau mal bitte auf das Register im Anhang, da scheinen gar keine Einstellungen für die anderen beiden Ports gemacht zu werden. Oder habe ich da einen Denkfehler und der Treiber löscht alle Flags bis auf den aktuell gelesenen Channel ?

Vielleicht ist das Problem ja ein anderer Treiber in Verbindung mit dem 384er

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 )
go down go up
Torsten offline
Benutzer
Avatar
Gender: male
Location: GERMANY  Bad Doberan
Age: 54
Posts: 57
Registered: 11 / 2005
Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 03.10.2019 - 09:52   -  
Hallo,
ich habe den ADC Testcode einmal für einen ATXMega128A1 und einem ATXMega384C3 erstellet. In dem *.lst File sahen die ADC init Routinen recht
gleich aus. Wenn ich dann in dem Datenblatt der A und der C Serien lesen, dann sind die ADC dort unterschiedlich beschrieben.
Wenn ich es richtig verstanden habe, dann wird der free running mode benutzt (ADCchansA[0..3]). In diesem Punkt weichen die beiden Typen laut
Datenblatt voneinander aber ab.
Falls meine Erfahrungen stimmen, ist es vielleicht an Ansatzpunkt für die Lösung.

Torsten
go down go up
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5472
Registered: 03 / 2002
Homepage Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 06.10.2019 - 23:09   -  
Hallo Torsten,

ich habe den XMega-C ADC jetzt überarbeitet. Sollte jetzt tun.

rolf
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
go down go up
Torsten offline
Benutzer
Avatar
Gender: male
Location: GERMANY  Bad Doberan
Age: 54
Posts: 57
Registered: 11 / 2005
Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 07.10.2019 - 09:09   -  
Guten Morgen Rolf,

ich habe gerade die Version 5.10.06 getestet. Ich denke es ist noch nicht ok!
Bei der Einstellung ADCchansA =[0..2] bekomme ich für den ADC0 als Wert 183, ADC1 und ADC2 sind null.
Mit der Einstellung ADCchansA =[0..4] ändert sich das Bild, nun sind ADC1 und ADC2 auch im Bereich um die 183.
Die Werte ändern sich auch um 1 bis 2 LSB, sieht damit ganz normal aus.
Der ADC hat ja wohl immer einen Offset, damit erscheint der Wert um die 180 bei VReg 1V auch okay.
In meiner Schaltung verwende ich nur die ersten drei Pins am PortA für die Messung einer Spannung, der Rest sind dig. Ausgänge.
Kann ich den ADC für Port 0-4 definieren und trotzdem Port A3 und 4 als dig. Ausgänge betreiben?

Viele Grüße,
Torsten
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 48
Posts: 1046
Registered: 02 / 2009
Homepage Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 07.10.2019 - 11:58   -  
Quote by rh

Hallo Torsten,

ich habe den XMega-C ADC jetzt überarbeitet. Sollte jetzt tun.

rolf


Hallo rolf,

leider hat die 5.10.06 nicht das Problem gelöst.

ADC0 funktioniert wie zuvor richtig.
ADC1 zeigt fehlerhaft 0, der Wert von Außen wird nicht übernommen
ADC2 zeigt fehlerhaft 0, der Wert von Außen wird nicht übernommen
ADC3 zeigt den gespiegelten Wert von 1 mit 1-2 +/- an.

Ändere ich die Spannung an ADC0 wird dieser ebenfalls auf ADC3 angezeigt auch wenn dort nichts angeschlossen ist.

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 )
This post has been edited 1-times. Last edit: 07.10.2019 - 11:58 by pvs-deck.
go down go up
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5472
Registered: 03 / 2002
Homepage Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 07.10.2019 - 17:23   -  
Hallo Thorsten,

ich bin frustriert. Ich verstehe das nicht...
Im Vergleich mit XMega-A und XMega-C im ADC Teil kann ich nur
einen Unterschied feststellen.
Und diesen habe ich versucht zu berücksichtigen.
Versuche mal von Hand im ADC Treiber Änderungen vorzunehmen.

ps. Was gibt es neues bei dem Timeout Problem ???

rolf
You must be logged in or your permissions are to low to see this Attachment(s).
Cars don't buy cars -- Autos kaufen keine Autos.
Henry Ford
This post has been edited 1-times. Last edit: 07.10.2019 - 17:25 by rh.
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 48
Posts: 1046
Registered: 02 / 2009
Homepage Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 07.10.2019 - 21:31   -  
Quote by rh

Hallo Thorsten,

ich bin frustriert. Ich verstehe das nicht...
Im Vergleich mit XMega-A und XMega-C im ADC Teil kann ich nur
einen Unterschied feststellen.
Und diesen habe ich versucht zu berücksichtigen.
Versuche mal von Hand im ADC Treiber Änderungen vorzunehmen.

Hallo rolf,
ok, werde ich mal testen. Ich muss mich auchmal etwas tiefer in das System vom ADC beim C reinlesen. Ich habe bis jetzt nur ATMEL ADC Dokus vom A, B und D Typen gefunden. Aber nichts zum C (Arbeitsweise), hast Du da was gutes an Atmel Doku? Die AVR1300 und AVR1324 sagen halt kein Wort zum Typ C.

Quote by rh

ps. Was gibt es neues bei dem Timeout Problem ???


Da bin ich auch noch drann, komme mit dem Init-Ablauf vom miparo beim ersten durchschauen der Schritte nicht so ganz klar. Ich muss das mal "Schritt für Schritt" mit dem Handbuch vom WizIO machen. Miparos Treiber ist auf dem ersten Blick deutlich komplexer, da er die ganzen anderen WizNet-Chips mit berücksichtig. Das muss ich gedanklich erstmal alles ausblenden, am besten ohne Telefon und Tagesgeschäft :-)

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
rh offline
Administrator
Avatar
Gender: male
Location: GERMANY  Germany
Age:
Posts: 5472
Registered: 03 / 2002
Homepage Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 07.10.2019 - 22:00   -  
Hallo Thorsten,

nein, ich habe vom C-ADC auch keine weiteren Unterlagen.
Alles sehr mysteriös :aerger:

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: 48
Posts: 1046
Registered: 02 / 2009
Homepage Private message
Subject: Re: ADC Treiber mit ATXMega 384C3  -  Posted: 08.10.2019 - 11:38   -  
Hallo rolf,

ich bin gerade dabei mein ADC INIT per Hand zu machen, dabei bin ich über etwas gestolpert:

Quote
... der Prescaler muss an die verwendete Taktfrequenz angepasst werden, da der ADC nicht mehr als 2 MS/s schafft...


Ist dies evtl das Problem? Ich nutze 62MHz bei meinem XMEGA

Thorsten

Nachtrag:
Auch bei 32MHz und einem höheren Presc. kein Unterschied
---------------------------------------------------------
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: 08.10.2019 - 11:42 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: 14.10.2019 - 13:38