Forum: Mikrocontroller und Digitale Elektronik Einlesen mehrerer Analog Signale


von Malte M. (malte_me)


Lesenswert?

Hallo,

für ein Projekt werde ich ungefähr 10 analoge Signale in einen STM32 
Controller einlesen. Was ist der beste Weg Analogsignale ohne viele 
Bauteile in digitale Signale zu wandeln? Ich bin noch relativ neu auf 
dem Gebiet der Microcontroller, hatte aber an einen Multiplexer gedacht 
oder an die Verwendung der internen ADCs.

Grüße

Malte

von Olaf (Gast)


Lesenswert?

> Was ist der beste Weg Analogsignale ohne viele
> Bauteile in digitale Signale zu wandeln?

Das koennen wir nicht wissen weil wir nicht wissen welche Aufloesung du 
brauchst und wie oft du das machen willst.

> hatte aber an einen Multiplexer gedacht
> oder an die Verwendung der internen ADCs.

Die meisten Microcontroller haben nur einen ADC, manche zwei, sehr 
wenige drei. Die haben aber fast alle bereits einen Multiplexer 
eingebaut um damit acht oder 16Eingaenge der Reihe nach messen zu 
koennen. Viele koennen das dann sogar automatisch machen. Haengt halt 
davon ab ob dir die Geschwindigkeit dann reicht.

Olaf

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Malte M. schrieb:
> hatte aber an einen Multiplexer gedacht
> oder an die Verwendung der internen ADCs.

Die meisten STM32 haben beides und können Signale zwischen GND und AREF 
in 12-Bit Werte wandeln. Aber das hängt vom spezifischen Controller ab, 
den du mal näher beschreiben solltest. Ein dicker STM32F429 hat dann bis 
zu 24 Eingänge mit Multiplexer und 3 unabhängige ADCs, wimre.

von Stefan F. (Gast)


Lesenswert?

Malte M. schrieb:
> Was ist der beste Weg Analogsignale ohne viele
> Bauteile in digitale Signale zu wandeln?

Ich würde dafür den ADC in deinem Mikrocontroller verwenden, der mach 
genau diese Umwandlung und hat (je nach Modell) genug Eingänge. Das ist 
zumindest die einfachste Variante. Besondere Anforderungen hast du ja 
keine genannt.

Anregungen: http://stefanfrings.de/stm32/stm32f3.html#stm32f3mini

von STK500-Besitzer (Gast)


Lesenswert?

Malte M. schrieb:
> für ein Projekt werde ich ungefähr 10 analoge Signale in einen STM32
> Controller einlesen.

Sollen die Signale synchron digitialisiert werden?
Dann brauchst du für jedes einen eigenen ADC. Und die müssen sich 
synchronisieren lassen...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Malte M. schrieb:
> ungefähr 10 analoge Signale in einen STM32 Controller einlesen.
> Was ist der beste Weg
Was sind das für "Signale"? Woher kommen diese "Signale"? Wie schnell 
ändern sie sich und wie schnell und wie genau müssen die gemessen 
werden? Was soll mit den Messewrten geschehen?

von Udo S. (urschmitt)


Lesenswert?

Lothar M. schrieb:
> Was sind das für "Signale"? Woher kommen diese "Signale"? Wie schnell
> ändern sie sich und wie schnell und wie genau müssen die gemessen
> werden? Was soll mit den Messewrten geschehen?

Ergänzung:

Welche Spannungen haben sie?
Welche Impedanz haben die Quellen?
Sind sie galvanisch getrennt oder auf die Masse des STM32 bezogen?

von Peter D. (peda)


Lesenswert?

STK500-Besitzer schrieb:
> Sollen die Signale synchron digitialisiert werden?
> Dann brauchst du für jedes einen eigenen ADC. Und die müssen sich
> synchronisieren lassen...

Man muß nicht immer gleich übertreiben. Es reicht völlig, wenn die 
Messungen für die gewünschte Abtastrate hinreichend synchron sind.

von STK500-Besitzer (Gast)


Lesenswert?

Peter D. schrieb:
> an muß nicht immer gleich übertreiben. Es reicht völlig, wenn die
> Messungen für die gewünschte Abtastrate hinreichend synchron sind.

Wenn man bspe. ein Mehrphasenmikrofonarray samplen will, dann ist das 
wohl nötig, oder?
Der TO hat sein Problem ja nur sehr wage beschrieben.

von Andre G. (andgst01)


Lesenswert?

STK500-Besitzer schrieb:
> Wenn man bspe. ein Mehrphasenmikrofonarray samplen will, dann ist das
> wohl nötig, oder?

Aber das ist nicht gerade ein Projekt das man macht wenn man wie der TO 
schrieb "relativ neu auf dem Gebit der Mikrocontroller" ist ...

von STK500-Besitzer (Gast)


Lesenswert?

Andre G. schrieb:
> Aber das ist nicht gerade ein Projekt das man macht wenn man wie der TO
> schrieb "relativ neu auf dem Gebiet der Mikrocontroller" ist ...

Weiß man's?
Wenn der TO keine Details nennt, kann man ihn doch mit Informationen 
überhäufen.

von Udo S. (urschmitt)


Lesenswert?

STK500-Besitzer schrieb:
> Wenn man bspe. ein Mehrphasenmikrofonarray samplen will, dann ist das
> wohl nötig, oder?

Wer so fragt wie der TO will das nicht.
Oder er versucht zu rennen bevor er krabbeln kann.

STK500-Besitzer schrieb:
> kann man ihn doch mit Informationen
> überhäufen.

Zielgerichteter und sinnvoller wäre ihn mit Fragen zu überhäufen

Die Fragen wurden schon gestellt

: Bearbeitet durch User
von Peter D. (peda)


Lesenswert?

STK500-Besitzer schrieb:
> Der TO hat sein Problem ja nur sehr wage beschrieben.

Das ist aber stark untertrieben.
Die einzige Angabe zu dieser Aufgabe ist, "ungefähr 10". Also nichtmal 
die "10" ist sicher. Auch von Mikrofonen war keine Rede.

von Karl B. (gustav)


Lesenswert?

Na ja,
LTC1090 hatte ich hier mal am Wickel.
Ist aber obsolet.
Sowas in der Richtung aber moderner?
https://www.analog.com/en/products/ltc1090.html

ciao
gustav

von STK500-Besitzer (Gast)


Lesenswert?

Udo S. schrieb:
> Oder er versucht zu rennen bevor er krabbeln kann.

Das wäre hier ja nicht das erste Mal.

Peter D. schrieb:
> Das ist aber stark untertrieben.
> Die einzige Angabe zu dieser Aufgabe ist, "ungefähr 10". Also nichtmal
> die "10" ist sicher. Auch von Mikrofonen war keine Rede.

Ich nehme ihm einfach die Salamitaktik vorweg.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

STK500-Besitzer schrieb:
> Wenn man bspe. ein Mehrphasenmikrofonarray samplen will, dann ist das
> wohl nötig, oder?

Nee, nicht unbedingt; das kann man sich schon wieder schoenfiltern, 
zumindest, wenn man weiss, wieviel Zeit bzw. Sampleabstandbruchteile 
dazwischenliegen.

Gruss
WK

von Mittelfeldakteur (Gast)


Lesenswert?

Der TO macht es richtig. Nachdem sich die altbekannten Tagediebe hier 
ausgekotzt haben, läßt er noch ein wenig Zeit verstreichen, um sich dann 
mit den fehlenden Parametern wieder zu melden.

Dann (und erst dann) kommen die Antworten von vernünftigen Leuten.

von Malte M. (malte_me)


Lesenswert?

Olaf schrieb:
> Das koennen wir nicht wissen weil wir nicht wissen welche Aufloesung du
> brauchst und wie oft du das machen willst.

> Die meisten Microcontroller haben nur einen ADC, manche zwei, sehr
> wenige drei. Die haben aber fast alle bereits einen Multiplexer
> eingebaut um damit acht oder 16Eingaenge der Reihe nach messen zu
> koennen. Viele koennen das dann sogar automatisch machen. Haengt halt
> davon ab ob dir die Geschwindigkeit dann reicht.

Danke für die zahlreichen Antworten.
Als Auflösung sind 8 Bit ausreichend und die Sample Rate soll pro Signal 
bei etwa 100Msamples/s liegen. (Was schon recht schnell ist.)
Dafür werden die eingebauten ADCs wohl zu langsam sein. Gibt es Lösungen 
das zu realisieren ohne 10 ADCs parallel schalten zu müssen.

Grüße

Malte

von Stefan F. (Gast)


Lesenswert?

Du willst insgesamt also 1GB/s einlesen? So eine Info gehört in den 
Eröffnungspost!

Und wo willst du das speichern und wie verarbeiten?

Besorge dir einen Computer, der so schnelle Schnittstellen hat. STM32 
sind dazu wohl kaum geeignet, egal welcher.

von Sebastian (Gast)


Lesenswert?

Malte M. schrieb:
> Olaf schrieb:
>
>> Das koennen wir nicht wissen weil wir nicht wissen welche Aufloesung du
>> brauchst und wie oft du das machen willst.
>
>> Die meisten Microcontroller haben nur einen ADC, manche zwei, sehr
>> wenige drei. Die haben aber fast alle bereits einen Multiplexer
>> eingebaut um damit acht oder 16Eingaenge der Reihe nach messen zu
>> koennen. Viele koennen das dann sogar automatisch machen. Haengt halt
>> davon ab ob dir die Geschwindigkeit dann reicht.
>
> Danke für die zahlreichen Antworten.
> Als Auflösung sind 8 Bit ausreichend und die Sample Rate soll pro Signal
> bei etwa 100Msamples/s liegen. (Was schon recht schnell ist.)
> Dafür werden die eingebauten ADCs wohl zu langsam sein. Gibt es Lösungen
> das zu realisieren ohne 10 ADCs parallel schalten zu müssen.
> Grüße
> Malte

Also alle 10ns 10 Messungen? Sportlich ...

LG, Sebastian

von Wolfgang (Gast)


Lesenswert?


von STK500-Besitzer (Gast)


Lesenswert?

[OT]
Udo S. schrieb:
> Oder er versucht zu rennen bevor er krabbeln kann.

Malte M. schrieb:
> Als Auflösung sind 8 Bit ausreichend und die Sample Rate soll pro Signal
> bei etwa 100Msamples/s liegen

Was habe ich gesagt?
[/OT]

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

Malte M. schrieb:
> Als Auflösung sind 8 Bit ausreichend und die Sample Rate soll pro Signal
> bei etwa 100Msamples/s liegen. (Was schon recht schnell ist.)
> Dafür werden die eingebauten ADCs wohl zu langsam sein. Gibt es Lösungen
> das zu realisieren ohne 10 ADCs parallel schalten zu müssen.

Soll er auch noch fliegen können, oder reicht es kürzere Strecken zu 
gleiten?

Also die STM32 können ja eine Menge, aber 1 Milliarde Messwerte pro 
Sekunde gehören nicht dazu.

von Georg (Gast)


Lesenswert?

Guido K. schrieb:
> Also die STM32 können ja eine Menge, aber 1 Milliarde Messwerte pro
> Sekunde gehören nicht dazu.

Ich würde mal bei CERN nachfragen, am LHC sind solche Sensoren 
installiert.

Übrigens sollten es ja laut TO 10 x 1 Milliarde sein, möglichst mit 
einem einzigen ADC.

Georg

von Sebastian S. (amateur)


Lesenswert?

Mal Grundsätzlich:
Haben die Signale alle das gleiche Referenzpotential?

Alles Gleichspannungen oder auch etwas Später-

Wenn alles mit dem Faktor 10 belegt wird, werden der Speicherbedarf und 
-durchsatz entsprechend groß.
Es besteht ein riesiger Unterschied zwischen mit 1 MHz messen und diese 
auch zu be-/verarbeiten.
Ich unterstelle dabei mal, dass Du die Messdaten nicht in 
Endlosschleifen zyklisch überschreiben tust, wodurch das Messen zum 
Selbstzweck verkommt.

von Georg (Gast)


Lesenswert?

Sebastian S. schrieb:
> Es besteht ein riesiger Unterschied zwischen mit 1 MHz messen und diese
> auch zu be-/verarbeiten.

Wieso 1 MHz? Der TO will 10 x 100 MHz.

Georg

von Dieter (Gast)


Lesenswert?

Malte, Du hast noch nicht geaeussert, ob nur ein paar tausen Messwerte 
gespeichert wwrden sollen um diese von einem Rechner abzuholen oder als 
Dauerstream uebertragen werden sollen.

Die Zeitdauer des Hold-Gliedes des Wandlers ist auch begrenzend. Haette 
dieses 2ns, dann waere alles ueber 5x100MHz sinnlos.

von Wolfgang (Gast)


Lesenswert?

Georg schrieb:
> Übrigens sollten es ja laut TO 10 x 1 Milliarde sein

Du täuscht dich - Salamitaktik sei Dank

Malte M. schrieb:
> ungefähr 10 analoge Signale

Malte M. schrieb:
> Als Auflösung sind 8 Bit ausreichend und die Sample Rate soll pro Signal
> bei etwa 100Msamples/s liegen.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Malte M. schrieb:
> Als Auflösung sind 8 Bit ausreichend und die Sample Rate soll pro Signal
> bei etwa 100Msamples/s liegen. (Was schon recht schnell ist.)
> Dafür werden die eingebauten ADCs wohl zu langsam sein. Gibt es Lösungen
> das zu realisieren ohne 10 ADCs parallel schalten zu müssen.

Der Aufwand, bei den geforderten Abtastraten(!) einfach zehn separate 
ADCs zu verwenden, ist deutlich geringer als einen schnellen ADC und 
entsprechende Multiplexer. Ein Multiplexer schaltet nicht beliebig 
schnell, und auch nach dem Umschalten muss der Eingang des ADC zunächst 
einmal auf den neuen Analogwert umgeladen werden, bevor die Wandlung 
getriggert werden kann. Um das alles zu gewährleisten, muss man schon 
mit erheblichem Simulationsaufwand und Schaltungsoptimierung, 
impedanzkontrolliertem Leiterplattenlayout und anschließenden Messungen 
an die Sache herangehen. Ein ADC mit 1 GS/s ist zudem auch nicht 
wirklich billig und muss ggf. auch mit einem Kühlkörper usw. entwärmt 
werden. Mit solch einer Schaltung wäre ein sehr erfahrener Entwickler 
schon einige Wochen beschäftigt.

ADC mit 100 MS/s und 8 Bit sind im Vergleich dazu noch sehr leicht zu 
handhaben und kostengünstig. Außerdem besteht da nicht die Gefahr, dass 
es zu einem Übersprechen zwischen den Eingangskanälen kommt.

Bei beiden Varianten muss man natürlich überlegen, wie man die Daten 
überhaupt aufzeichnet. Mit einem normalen Microcontroller geht das 
nämlich nicht so ohne weiteres. Ich würde hierfür z.B. einen Xilinx Zynq 
verwenden (vorbehaltlich der derzeitigen Liefersituation...).

von Wolfgang (Gast)


Lesenswert?

Andreas S. schrieb:
> Ich würde hierfür z.B. einen Xilinx Zynq verwenden

Selbst dann ist noch völlig unklar, wie der STM32 dabei sinnvoll 
mitspielen kann. Ich fürchte, der TO muss erstmal noch ein paar 
Hausaufgaben bzgl. Datenrate und Datenflusskonzept erledigen.

von Kurt (Gast)


Lesenswert?

Warst du bei allen 4 "bürgerlichen" Grundrechenarten in der Schule 
entschuldigt krank?

10 x 100 MSamples sind 1 GByte Datendurchsatz auf einem µC mit < 200 
MHz.
Mit < 1 MB Speichermöglichkeit im Schnellzugriff. Das reicht hinten und 
vorne nicht.

Tabak ist ungesund, aber was du rauchst, macht auch noch unvernünftig...

von MaWin (Gast)


Lesenswert?

Malte M. schrieb:
> Danke für die zahlreichen Antworten.

Nutzlosen, denn deine Frage war unvollständig.

> Als Auflösung sind 8 Bit ausreichend und die Sample Rate soll pro Signal
> bei etwa 100Msamples/s liegen. (Was schon recht schnell ist.)

Das entspricht einem billigen Digitaloszilloskop, wie Hantek DSO5102P 
oder Rigol DS1102E.

> Dafür werden die eingebauten ADCs wohl zu langsam sein. Gibt es Lösungen
> das zu realisieren ohne 10 ADCs parallel schalten zu müssen.

10 parallele ADC könnten die einfachste Lösung sein. Ein 1 GHz 
Multiplexer inklusive 1ns settling time wäre nämlich sehr anspruchsvoll.

Schau dir halt mal an, wie solche Oszilloskope aufgebaut werden.

Und überlege dir, wie du 8 GByte Daten/Sekunde wegschaufeln willst, dazu 
reicht weder USB noch eine SSD noch Ethernet oder WLAN, oder direkt vor 
Ort verarbeiten willst, ein FPGA müsste schon recht schnell sein, 
parallelisiert programmiert.

von Purzel H. (hacky)


Lesenswert?

Wie einfach sich ein Fuenfzeiler zu einem 8 Kanal Oszilloskop aufblasen 
kann...
Ich nehme jetzt mal an, nach etwas Prozessing muss visualisiert werden, 
weil auf einen Speicher wegschreiben ja eher sinnlos ist.
Allenfalls waere jetzt noch interessant was fuer ein Prozessing dazu 
kommt.

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

MaWin schrieb:
> Und überlege dir, wie du 8 GByte Daten/Sekunde wegschaufeln willst, dazu
> reicht weder USB noch eine SSD noch Ethernet oder WLAN, oder direkt vor
> Ort verarbeiten willst, ein FPGA müsste schon recht schnell sein,
> parallelisiert programmiert.

Es fallen bei 10*8*100 MS/s aber nur 8 GBit/s und nicht 8 GByte/s an 
Daten an. Als erfahrener Entwickler kann man es durchaus schaffen, 
mittel FPGA/SoC diese Datenmenge in normales DRAM und/oder sorgsam 
ausgewählte SSDs zu schaufeln.

Trotzdem ist das kein Einstiegsprojekt für Anfänger.

Wahrscheinlich wirft der TE aber nur mit irgendwelchen Zahlen um sich, 
weil er keine Ahnung hat und sich einfach aufplustern will. Vor einiger 
Zeit fragte mich auch eine Bekannte, welche Komponenten sie für ihre 
Heimnetz kaufen solle, und zwar für 100 GBit/s. Ich fragte sie mehrmals, 
ob sie wirklich 100 GBit/s benötige oder doch eher nur 100 MBit/s oder 
ggf. 1 GBit/s. Sie bestand immer auf den 100 GBit/s. Ich erklärte ihr 
dann, dass sie für einen Switch mit etlichen 100 GBit/s-Port auf jeden 
Fall eine Klimatisierung benötige. Und ein Fileserver, der solch einen 
Durchsatz schafft, fällt ja nun auch nicht in die Rubrik von Heim-NAS.

Auf meine Fragen, wofür sie den ganzen Kram brauche, meinte sie nur, 
dass sie das einfach haben wolle und müsse. Schließlich dürfe ja ihr 
"teurer" neuer 100 GBit/s-Internetzugang nicht ausgebremst werden. 
Irgendwann schaute sie dann mal in die Leistungsbeschreibung und las 
dann durchaus realistische 100 MBit/s. Ihrer Meinung nach wäre das ja 
aber nur ein Unterschied von einem Buchstaben.

von Andrew T. (marsufant)


Lesenswert?

Andreas S. schrieb:
> Schließlich dürfe ja ihr
> "teurer" neuer 100 GBit/s-Internetzugang nicht ausgebremst werden.
> Irgendwann schaute sie dann mal in die Leistungsbeschreibung und las
> dann durchaus realistische 100 MBit/s. Ihrer Meinung nach wäre das ja
> aber nur ein Unterschied von einem Buchstaben.

Genau, und da M ja viel weiter hinten im Alfabet kommt als G: Ist M 
besser.


Herrlich, ich liebe solche Kundengespräche.

von Peter D. (peda)


Lesenswert?

Malte M. schrieb:
> die Sample Rate soll pro Signal
> bei etwa 100Msamples/s liegen. (Was schon recht schnell ist.)

"recht schnell" ist stark untertrieben, das kann kaum einer selber 
bauen, erst recht kein Anfänger.

Falls Du wirklich 100Msamples/s brauchen solltest, kaufe ein fertiges 
16-Kanal Scope. Ein Selbstbau würde erheblich teurer, wenn er auch noch 
funktionieren soll.

von Stefan F. (Gast)


Lesenswert?

Andreas S. schrieb:
> Schließlich dürfe ja ihr
> "teurer" neuer 100 GBit/s-Internetzugang nicht ausgebremst werden.

Und wir krebsen noch mit extern 60 MBit bzw. intern 100 MBit UTP herum. 
Vermutlich sind unsere Augen und Ohren so schlecht, dass wir den 
Unterschied nicht merken. Oder wird sind so armselig, noch nie wirklich 
gutes Streaming gesehen zu haben.

:-)

von Sebastian (Gast)


Lesenswert?

Peter D. schrieb:
> Malte M. schrieb:
>
>> die Sample Rate soll pro Signal
>> bei etwa 100Msamples/s liegen. (Was schon recht schnell ist.)
>
> "recht schnell" ist stark untertrieben, das kann kaum einer selber
> bauen, erst recht kein Anfänger.
> Falls Du wirklich 100Msamples/s brauchen solltest, kaufe ein fertiges
> 16-Kanal Scope. Ein Selbstbau würde erheblich teurer, wenn er auch noch
> funktionieren soll.

Ein Logic Pro z.B. schafft es nicht alle 16 Analogkanäle mit höchster 
Geschwindigkeit auszulesen; je mehr Analogkanäle man auswählt desto 
kleiner wird die mögliche Samplingrate.

LG, Sebastian

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

Andrew T. schrieb:
> Herrlich, ich liebe solche Kundengespräche.

Ist ganz einfach, sind nur 10 Kanäle, auch nicht besonders schnell, nur 
100 MHz pro Kanal und kaum weiter was, nur dieses Fast Dingens, Fast 
Foyer oder so, muss maximal 1 Stunde aufzeichnen, ach ja, wir wollen in 
4 Wochen anfangen zu liefern und das darf nicht mehr als 5 € kosten…

von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Sebastian schrieb:
> Ein Logic Pro z.B. schafft es nicht alle 16 Analogkanäle mit höchster
> Geschwindigkeit auszulesen; je mehr Analogkanäle man auswählt desto
> kleiner wird die mögliche Samplingrate.

Die erste Wahl für solche vielkanaligen Anwendungen sind Produkte von 
Yokogawa, z.B. ein DL590 kann mit bis zu 32 Kanälen a 200 MS/s 
konfiguriert werden.

von Falk B. (falk)


Lesenswert?

Benutzername  malte_me
Vorname  Malte
Nachname  M.
Firma
Angemeldet seit  05.05.2022 09:47
Beiträge  2

Zusammen mit seinen zwei Beiträgen gibt das satte 8/10 Trollpunkte. 
BRAVO!

von Stefan F. (Gast)


Lesenswert?

Falk B. schrieb:
> Zusammen mit seinen zwei Beiträgen gibt das satte 8/10 Trollpunkte.

Ist aber schlecht getrollt. Noch hat er uns nicht dazu gebracht, und 
gegenseitig zu beleidigen.

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.