closed

Loginbox

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


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


  •  

XMega128A4U ADCB?



Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: Re: XMega128A4U ADCB?  -  Posted: 24.02.2020 - 06:18   -  
Hallo Golf,

das ist ja mal klasse :) .... und ich muß arbeiten :(. Probier ich gleich heute Abend aus. Danke dir.

Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: Re: XMega128A4U ADCB?  -  Posted: 25.02.2020 - 19:11   -  
Danke an alle - es funktioniert jetzt.

Code

Procedure InitADC;                                    // Init für  ADC 9-11
  Begin
    ASM;
      LDI       _ACCCLO, ADCACAL0
      CLR       _ACCCHI
      LDI       _ACCA, 2
      STS       NVMCMD, _ACCA
      LPM
      STS       ADCACALL, _ACCGLO
      LDI       _ACCA, 0
      STS       NVMCMD, _ACCA
      LDI       _ACCCLO, ADCACAL1
      CLR       _ACCCHI
      LDI       _ACCA, 2
      STS       NVMCMD, _ACCA
      LPM
      STS       ADCACALH, _ACCGLO
      LDI       _ACCA, 0
      STS       NVMCMD, _ACCA
      LDI       _ACCA, 8
      STS       ADCACTRLB, _ACCA
      LDI       _ACCA, 02h                            // Original 02h
      STS       ADCAREFCTRL, _ACCA
      LDI       _ACCA, 06h
      STS       ADCAPRESCALER, _ACCA
      LDI       _ACCA, 80h
      STS       ADCAEVCTRL, _ACCA
      LDI       _ACCB, 81h
      STS       ADCACH0CTRL, _ACCB
      STS       ADCACH1CTRL, _ACCB
      STS       ADCACH2CTRL, _ACCB
      LDI       _ACCA, 48h                            // Original $00 = 0 / ADC8=40h
      STS       ADCACH0MUXCTRL, _ACCA
      LDI       _ACCA, 50h                            // Original $08 = 1
      STS       ADCACH1MUXCTRL, _ACCA
      LDI       _ACCA, 58h                            // Original $18 = 2
      STS       ADCACH2MUXCTRL, _ACCA
      LDI       _ACCA, 1Dh
      STS       ADCACTRLA, _ACCA
    EndAsm;
  End InitADC;


Einfach 3 ADC_A definieren und danach obiges InitADC ausführen. Danach kann man Kanal 9-11 (von 0 an gezählt) mit GetADC(0)-GetADC(2) auslesen. Das Init ist für 12Bit, ADCPrescA=256 und ADCRefA=Ref100.

Gruss
Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
go down go up
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: Re: XMega128A4U ADCB?  -  Posted: 27.02.2020 - 20:04   -  
Hallo ..... leider ich nochmal,

ich hab jetzt versucht den obigen Code bzw. das Setzen der Register zu verstehen. Dazu hab ich jetzt 2 Tage lang immer wieder das Datenblatt und das Manual gelesen, aber ich versteh es teilweise nicht.
Es gibt wohl 4 ADCACHxMUXCTRL-Register und da ich 3 ADCs einlese werden diese auf $48, $50 und $58 gesetzt. Das versteh ich ja, aber was ist, wenn ich 6, 7, 8 oder alle ADCs benutze? Wie wird das da unter gebracht? Oder ist das so gement, daß ich maximal 4 auslesen kann und dann muß ich für die anderen 4 (bei 8 verwendeten) die Register ändern?

Und was genau bedeutet Free-Running-Mode? Bedeutet das, daß ich einmal konfiguriert, die ADCs immer und jederzeit lesen kann, ohne eine weitere Einstellung zu machen?

Vielleicht kann mir das einer erklären? Dann schon mal herzlichen Dank :)

Gruss
Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
This post has been edited 1-times. Last edit: 27.02.2020 - 20:07 by Harry.
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1102
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMega128A4U ADCB?  -  Posted: 27.02.2020 - 23:55   -  
Hallo Harry,

beim Free-Running-Mode wird ständig gewandelt. Bei dem Code von mir starte ich die Messung und warte auf das ende mit
Code
ADCACH0INTFLAG.0


Dann ziehe ich mir die Werte, stelle das MUX-CTRL auf den nächsten Wert ein und starte die Messung.
Beim Free-Running könnte es passieren das die Werte gelesen werden ohne das sie komplett gewandelt wurden.

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
golf offline
Benutzer
Avatar
Gender: male
Location: GERMANY  Donauwörth
Age: 66
Posts: 167
Registered: 11 / 2009
Private message
Subject: Re: XMega128A4U ADCB?  -  Posted: 28.02.2020 - 06:33   -  
Hallo Harry,
der Compiler wird das auch nicht anders machen, der der holt sich wohl in Timerrinterrupts einen ADC-Wert und erhöht das MUX-register, dann wieder den nächsten usw. Die ADC-Werte werden dann wohl in internen Vars gespeichert, sodaß sie bei getADC(x) sofort zur Verfügung stehen.

golf
go down go up
pvs-deck offline
PowerUser
Avatar
Gender: male
Location: GERMANY 
Age: 49
Posts: 1102
Registered: 02 / 2009
Homepage Private message
Subject: Re: XMega128A4U ADCB?  -  Posted: 28.02.2020 - 08:35   -  
Hallo Harry,

noch was, in meinen Code verwende ich nur einen ADWandler, der 384er hast nur einen, deswegen kann da nur immer eine Wandlung durchgeführt werden. Bei Deinem XMEGA sieht es fast danach aus, als ob er 4 ADWandler hat.

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
Harry offline
PowerUser
Avatar
Gender: male
Location: GERMANY  zwischen Augsburg und Ulm
Age: 55
Posts: 1635
Registered: 03 / 2003
Private message
Subject: Re: XMega128A4U ADCB?  -  Posted: 28.02.2020 - 16:40   -  
Hallo ihr beiden,

danke für die Erklärungen.

@Thorsten: Der hat definitiv nur einen ADC und einen 16-fach Multiplexer. Ich vermute, daß bei freerun und 4 einstellbaren Kanäler er selber diese 4 zyklisch ausliest.

Gruss
Harry
Elektronik arbeitet mit Rauch - wenn man den Rauch raus läßt, funktioniert es nicht mehr.
Electronics works with smoke - if you let the smoke out, it works no longer.
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: 01.06.2020 - 03:58