www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ARM LPC21xx mehrere AD-Conversions gleichzeitig


Autor: Ruprecht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

gibt es die Möglichkeit, die AD-Wandlung auf mehreren PINs gleichzeitig 
durchzuführen.
void get_adc_values(void)
{   
  static unsigned int tempadvalue=0;
  int i=0;

  for (i=0; i<MEASURMENTS_PER_VALUE; i++)
  {
    AD0CR |= 0x01000000 | (1 << 0);                   // Start A/D Conversion         
       do {
         tempadvalue = AD0DR0;                         // Read A/D Data Register
      } while ((tempadvalue & 0x80000000) == 0);        // Wait for end of A/D Conversion
      AD0CR &= ~0x01000001;                         // Stop A/D Conversion            
      tempadvalue = (tempadvalue >> 6) & 0x03FF;        // Extract AIN0 Value 
    measured_values_float[VOLTAGE_1] += tempadvalue;
  }

  for (i=0; i<MEASURMENTS_PER_VALUE; i++)
  {
    AD0CR |= 0x01000000 | (1 << 1);                    // Start A/D Conversion         
       do {
         tempadvalue = AD0DR1;                         // Read A/D Data Register
      } while ((tempadvalue & 0x80000000) == 0);        // Wait for end of A/D Conversion
      AD0CR &= ~0x01000002;                         // Stop A/D Conversion
      tempadvalue = (tempadvalue >> 6) & 0x03FF;        // Extract AIN0 Value 
    measured_values_float[VOLTAGE_2] += tempadvalue;
  }
}

Versuche ich alles in einem Rutsch zu Wandeln, bekomme ich immer 
höchstens ein Wert geliefert.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt nur einen einzigen A/D-Wandler, mit Multiplexer vorne dran, 
wirklich gleichzeitig geht also prinzipbedingt nicht.

Autor: Ruprecht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, wenn Multiplexing, dann sollte ein Gleichzeitig wohl wirklich etwas 
schwer umzusetzen sein. Danke für die Info.

Autor: Robert Teufel (robertteufel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Ruprecht

der LPC2148 oder LPC2138 hat 2 ADCs, somit koennen 2 Kanaele 
gleichzeitig gewandelt werden. Der LPC211x, LPC212x oder LPC219x hat nur 
einen, also keine gelcihzeitige Wandlung. Ansonsten ist die Verzoegerung 
zwischen 2 Kanaelen mindestens die schnellste Wandelzeit.

Robert

Autor: let (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> der LPC2148 oder LPC2138 hat 2 ADCs,

Ist mir neu. Wo steht das denn?

Autor: Christoph Budelmann (Firma: Budelmann Elektronik GmbH) (christophbudelmann) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
let wrote:
>> der LPC2148 oder LPC2138 hat 2 ADCs,
>
> Ist mir neu. Wo steht das denn?

Im Datenblatt.

Autor: Ruprecht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mmh,

ich glaube, der Robert hat Recht...

Seite 211 vom LPC2131/2/4/6/8 User manual - Rev. 02 — 25 July 2006

-10 bit successive approximation analog to digital converter (one in 
LPC2131, LPC2132, LPC2131/01, and LPC2132/01 and two in other LPC213x 
devices).
-Input multiplexing among 6 or 8 pins (ADC0 and ADC1).

Werde ich morgen noch einmal durchlesen und probieren.

Gruß

Autor: let (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, stimmt. Im Datenblatt (16.10.2007) wird es erwähnt.
Da fehlt aber die Doku zu den Registern.
Im User manual (2.4.2008) wird kein zweiter ADC genannt und
es ist auch nur ein Registersatz dokumentiert.

Demnach ein gewöhnlicher ADC:
• 10 bit successive approximation analog to digital converter
• Input multiplexing among 4 pins or 8 pins
• Power-down mode
• Measurement range 0 V to VDDA
• 10 bit conversion time ≥ 2.44 μs (400,000 conversions per second)
• Burst conversion mode for single or multiple inputs
• Optional conversion on transition on input pin or Timer Match signal

Und die Neuerung für die /01 Devices:
• Dedicated result register to reduce interrupt overhead for every 
analog pin (see Table 20–288)

Wieso dokumentieren die den zweiten Wandler nicht? Kaputt?
Oder kann ich mal wieder nicht lesen?

Autor: Christoph Budelmann (Firma: Budelmann Elektronik GmbH) (christophbudelmann) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
let wrote:
> Ja, stimmt. Im Datenblatt (16.10.2007) wird es erwähnt.
> Da fehlt aber die Doku zu den Registern.
> Im User manual (2.4.2008) wird kein zweiter ADC genannt und
> es ist auch nur ein Registersatz dokumentiert.

[...]

> Wieso dokumentieren die den zweiten Wandler nicht? Kaputt?
> Oder kann ich mal wieder nicht lesen?

Also ich habe hier zwar nur gerade das UM10139 vom 15.08.05 auf dem 
Rechner, aber da sind alle ADC-Register doppelt aufgeführt, einmal mit 
einer 0 im Namen, einmal mit einer 1. Ein anderes User Manual kann ich 
auf der NXP-Seite auch nicht finden. Sicher, dass du gerade das richtige 
Datenblatt offen hast?

Autor: let (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
UM10114
LPC21xx and LPC22xx User manual
Rev. 03 — 2 April 2008 User manual

Das gibt es auf der Produktseite zum 2138 etwas über dem
UM10120_1 von 2005. Letzteres habe ich mir gerade herunter
geladen. Da stehen die beiden Wandler drin.

Jetzt muß mir nur noch jemand sagen das der 2368 auch zwei
Wandler hat und ich falle gänzlich vom Glauben ab ;).

Autor: Mario Pieschel (mariopieschel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im User-Manual UM10114 wird der AD1 verschwiegen im UM10120 taucht er 
aber wieder auf.

AD0: 0xE0034000
AD1: 0xE0060000

ab Seite 194
http://www.nxp.com/acrobat_download/usermanuals/UM...

Autor: Robert Teufel (robertteufel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also alle LPC23xx und LPC24xx haben nur EINEN ADC.

Koennt ihr mir ruhig glauben, hab bei der Spezifikation mitgeschrieben ( 
bei den LPC213x und LPC214x uebrigens auch ;-)
Soll es so richtig mit mehreren ADCs abgehen, dann sind auch die LPC29xx 
mal einen Blick wert. Kein USB und kein Ethernet aber CAN und 3 ADCs, 
ein 5V ADC und zwei 3V ADCs

Da gibts natuerlich Info auf der NXP Web-Seite und fuer die, die nicht 
erst suchen wollen hier auch ein Schnelleinstieg mit Infos und links:
http://www.lpc2000.com/arm9/

Robert Teufel
Partner in Silicon Valley gesucht?
Ich stehe gerne zur Verfuegung.
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Meine ARM/Cortex Webseite: http://www.lpc2000.com

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.