Forum: Mikrocontroller und Digitale Elektronik simpler µC ADC2UART


von Swampy (Gast)


Lesenswert?

Hallo zusammen,

ich suche einen µC mit folgenden Spezifikationen und wollte fragen, was 
ihr mir empfehlen würdet:

-mindestens 10 ADC channels @>=12bit
-mindestens 1 UART port
-halbwegs anständige ADC quali (muss jetzt nich auf AD niveau sein)
-einfach und schnell zu programmieren

ich hätte momentan sehr schnellen zugriff auf einen dspic33ep, für 
welchen es aber für meinen geschmack noch zu wenige user in foren gibt, 
die das ein oder andere projekt realisiert haben.

Zweck des projekts ist eine große anzahl analoger signale mit 
"real-time"-datenrate (~1-10khz) zu samplen, alle channels in einem 
paket mit time stamp zu packen und dann auf den PC zu laden, um mit den 
signalen spielen zu können.

Danke!

von Falk B. (falk)


Lesenswert?

@ Swampy (Gast)

>-mindestens 10 ADC channels @>=12bit

Gibt es nicht so viele.

>-mindestens 1 UART port
>-halbwegs anständige ADC quali (muss jetzt nich auf AD niveau sein)
>-einfach und schnell zu programmieren

Das gilt für fast alle.

>Zweck des projekts ist eine große anzahl analoger signale mit
>"real-time"-datenrate (~1-10khz) zu samplen,

Schon mal gerechnet?

10 kHz@16 Bit macht 20kB/s. Das schafft ein normaler UART nicht mehr. 
Auch wenn man auf nichtstandardisierte baudraten bis 3 Mbit/s und einem 
FT232 setzt, ist das kein sonderlich sinnvolles Konzept.

> alle channels in einem
>paket mit time stamp zu packen und dann auf den PC zu laden, um mit den
>signalen spielen zu können.

Besorg dir ein Digitaloszi, das kann das, wenn gleich nicht mit 10 
Kanälen.

von Dominik S. (dominik_schmid)


Lesenswert?

Hallo Swampy,

ich persönlich verwend am liebsten AVR oder Atmel-sam prozessoren, das 
eigentliche Problem bei dir wird aber eher sein das egal wie viele ADC 
Eingänge du hast alle mit einem Mux auf einen einzelnen ADC geführt 
werden weswegen du eh nicht alle in Echtzeit sondern immer nur einen auf 
einmal abfragen kannst. Auserdem musst du schauen das der ADC direckt 
übersetzen kann, einer mit delta-sigma technik wie in den meisten 
integrierten taugts nicht für real time. Schau dich am besten mal bei 
Analog Devices um die haben Prozesoren die Speziell für die Verarbeitung 
paralell eintretender Analogsignale gemacht sind.

Mit freundlichen Grüßen
D.Schmid

von Swampy (Gast)


Lesenswert?

Danke D.Schmid!

War mir gar nicht klar, dass delta-sigma nicht real-time geeignet ist! 
Kannst du das etwas genauer erklären? Sonst google ichs...

Okay ich werde mal bei Analog Devices schauen... Hm.

Danke

von Lothar (Gast)


Lesenswert?

Swampy schrieb:
> mindestens 10 ADC channels @>=12bit

8051 50 Cent 12x ADC 12-bit im SO-16 und 20x ADC 12-bit im SOP-24

http://www.silabs.com/products/mcu/8-bit/efm8-busy-bee/Pages/efm8-busy-bee.aspx

von Dominik S. (dominik_schmid)


Lesenswert?

Hallo Swampy,

ganz grob kann man sagen das ein delta-sigma Wandler zuerst nur grob 
Messungen vornimmt(1bit) und bei jedem weteren durchlauf den bereich 
weiter eingrenzt dadurch sind z.b 24bit Wandler erst wirklich 
realsierbar. Der nachteil ist aber nunmal der das er einge gewisse Zeit 
zum ermitteln des AD werts braucht (nicht Echtzeit). Ein direckt wandler 
hingegen besteht aus einem Widerstandsarry und komperiert das mit einer 
Referenz wodurch er in Echtzeit ein Binäres Signal (meist Parallel) 
ausgeben kann.

MFG
D.Schmid

p.s. zur weiteren digitalen verarbeitung wird dann im normalfall ein 
FPGA verwendet, da auch ein Prozessor nicht real-time fähig ist

von Ben (Gast)


Lesenswert?

Servus,

bitte erstmal informieren, was Echtzeit bedeutet, bevor man da Quatsch 
erzählt... Flash Wandler und fpgas werden für diese Anwendung mit 
Sicherheit nicht benötigt.

Stm32f373 mit 16 bit Wandlern wäre sicherlich auch eine schöne Lösung

Ben

von Frank K. (fchk)


Angehängte Dateien:

Lesenswert?

Swampy schrieb:

> Zweck des projekts ist eine große anzahl analoger signale mit
> "real-time"-datenrate (~1-10khz) zu samplen, alle channels in einem
> paket mit time stamp zu packen und dann auf den PC zu laden, um mit den
> signalen spielen zu können.

Wozu Microcontroller? n einzelne ADCs parallel verschaltet liefern dann 
pro Takt je ein Bit, absolut synchron. Das ganze kannst Du dann über 
eine USB-Bridge wie FT2232H oder Cypress FX2 (für die gibts 
Breakout-Boards) direkt in den PC hineinladen.

Die gezeigten ADCs sind recht preiswert, haben 13 Bit Auflösung und 100 
kHz sampling rate, und eine Wandlung braucht 16 Takte (SCLK max 1.7 
MHz). Es gibt natürlich auch noch bessere und teurere ADCs, aber das 
hier sollte für den Anfang reichen. Und mehr Eingänge=mehr ADCs.

fchk

von Timy (Gast)


Lesenswert?

Echtzeit-Blabla:
Echtzeit gibt es auch im 10 s - Raster, wichtig ist die
GARANTIERTE Reaktion im vorgegebenen Zeitraster.

Ansonsten kenne ich keinen µC mit 10 parallel arbeitenden
ADCs. Mir fallen da z.B. 10 MCP3201 (12 Bit) an einem Mega8
ein. Am µC erfordert das 2 Pins zum Ansteuern und 10 zum
Auslesen. Und eine halbwegs autonom arbeitende USART (mit
USI wirds nix).

10 * 12 Bit + 32 Bit "Echtzeit" = 152 Daten-Bit
-> 190 USART-Steps
10 kHz * 190 = 1,9 MBaud, oder (2 MBaud)

Wenn du den PC auf 2 MBaud trimmen kannst: Ein AVR-Mega8
bei 16 Mhz sollte das erfassen und mit 2 MBaud aussenden
können.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.