Daten von uC an PC senden im MHz bereich.

Gast #4565577
Lesenswert?

Hallo Zusammen,

ich bin aktuell auf der Suche nach einem Weg um gemessene Signale auf 
den PC zu übertragen. Es soll ein Strommesgerät aufgbaut werden welches 
zeitaufgelöst den Strom eines uC misst. Dabei soll es möglich sein, auch 
Strompitzen von wenigen uSekunden zu messen. Also soll später ein ADC 
verwendet werden der 1 Mio. Samples pro Sekunde macht. Das große Problem 
jedoch ist, dass ich diese Daten gerne auf den PC übertragen will. Aber 
ich weiß jedoch nicht wie, da das einfach extrem viele Daten sind.

Als uC verwende ich momentan einen MSP 430F5529

Danke schon mal für eure Mithilfe.

Gruß Fabian
Gast #4565588
Lesenswert?

Der Controler arbeitet mit max. 25 MHz, der interne ADC schaft nur 200 
KSPS, das USB-Interface arbeitet max im Full-Speed-Modus (12 Mbit/s). 
Ich würde behaupten, dass es damit insgesamt schwierig wird. Du brauchst 
da wohl etwas mehr Hardware oder mehr Erfahrung.
Gast #4565596
Lesenswert?

Ich würde Stefan recht geben. Die Signale direkt weiterzuleiten wird 
wohl schwierig. Du könntest jedoch die Daten auch zuerst verarbeiten. 
Z.B. eine kleinere Abtastrate übertragen solange das Signal konstant ist 
und bei Peaks erst auf die volle Abtastrate erhöhen. So sparst du dir 
wohl einiges an Datenvolumen.
Gast #4565620
Lesenswert?

Stefan schrieb:
> Wie wäre es die Daten erst mal seitens des Messgerätes
> zwischenzuspeichern und dann größere Datenpakete zu versenden?

Wie soll man das mit der 10 KB RAM schaffen? Der reicht noch nicht mal 
eine 1/100 Sekund bei 1 MSPS. Er müsste Daten vom externen ADC einlesen 
und in ein exteren RAM zwischenspeichern. Damit wäre wahrscheinlich die 
CPU schon nahezu ausgelastet.
Gast #4565701
Lesenswert?

Als nächstest wirst du fragen, wie man so viele Daten schnell genug und 
sinnvoll verarbeitet.

Was willst du WIRKLICH herausfinden?

Willst du wissen, wie viel Energie der µC in einer gewissen Zeit 
aufgenommen hat? Oder willst du wissen, wie hoch die Stromaufnahme 
maximal, minimal und durchschnittlich ist? Oder willst du ermitteln, wie 
lang Peaks mit hoher Stromaufnahme dauern?
Gast #4565769
Lesenswert?

Strommessgerät als Standalone-Lösung mit PC-Anbindung oder geht z.B. ein 
Shunt als "Strommessgerät", dessen Spannung mit einem Oszilloskop 
gemessen wird. Die gewünschte zeitliche Auflösung schafft jedes 
Oszilloskop spielend, auch billige USB-Dinger.

Verschiedene Triggermöglichkeiten, lokaler Speicher, einfache + schnelle 
optische Auswertung, mögliche galvanische Trennung... wären Vorteile. Es 
gibt auch eigene Tastköpfe zur Strommessung, wobei ich nicht sicher bin 
ob die Auflösung reicht.

Bezüglich Trigger: gibt es Anforderungen den gemessenen Strom irgendwie 
zu synchronisieren, z.B. verschiedene Stromspitzen oder Pegel gewissen 
Events zuzuordnen?
#4566153
Lesenswert?

Fabian schrieb:
> den PC zu übertragen. Es soll ein Strommesgerät aufgbaut werden welches
> zeitaufgelöst den Strom eines uC misst

Gibt es fertich auf den EFM32 STKs:
http://www.digikey.de/product-detail/de/silicon-labs/EFM32WG-STK3800/914-1091-ND/3995847

Stromstärke im Bereich von 50mA bis ~1µA bei 3,3 - 3,0 Volt
mit relativ hoher zeitlicher Auflösung.

Mit dem originalen Energy Micro Profiler kann man das auch ohne 
Debugging mit externem µC nutzen (mit Silabs Studio leider AFAIK nicht).

Einfach das Energy Mode Demo auf den µC des Boards aufspielen und EM4 
wählen (damit fällt der aus der Messung mit ein paar nA Eigenverbrauch 
raus). Der externe µC wird über VMCU und GND versorgt und dabei die 
Spannung und der Strom gemessen.
Gast #4566921
Lesenswert?

Hallo,

zuerst mal danke für die vielen und vor allem schnellen Antworten!

Das Ziel ist, dass ich die Energie später berechnen kann, also einfach 
das Integral bilden kann. Dazu ist es am einfachsten wenn das Signal auf 
dem Rechener landet, dann kann ich z.B. mit Matlab oder einem ähnlichen 
Programm ganz leicht die Fläche oder sonstige Dinge berechnen.

Ich denke die Idee mit dem vorher Auswerten und somit die Abtastrate 
senken ist eine gute Idee.
Gast #4567239
Lesenswert?

"Daten von uC an PC senden im MHz bereich."

Heißt "senden" "Übertragung per Funk" oder darf es auch über Draht sein?

Fabian schrieb:

> Das Ziel ist, dass ich die Energie später berechnen kann, also einfach
> das Integral bilden kann.

Ok, aber warum später?

> Dazu ist es am einfachsten wenn das Signal auf dem Rechener landet,

Sicher?

> dann kann ich z.B. mit Matlab oder einem ähnlichen
> Programm ganz leicht die Fläche oder sonstige Dinge berechnen.

Falls die Spannung konstant ist, ist die Energie proportional zum 
Integral. Wenn du dir das Leben nicht unnötig schwer machen willst, wäre 
es praktisch, erstmal abzuklären, ob diese Vereinfachung möglich ist.

Mit einem integrierenden Wandlerverfahren wird man selbst bei 
Übertragungsraten im kBd-Bereich die Energiewerte zum PC rüberschaffen 
können. Bevor du also einen Transientenrekorder mit passender 
Speichertiefe beschaffst - oder soll es eine Daueraufzeichnung sein - 
lohnt es sich vielleicht erstmal über das Problem nachzudenken.
#4567585
Lesenswert?

Wenn nur der Gesamtenergieverbrauch benötigt wird, kann man im 
Mikrocontroller auch einfach einen größeren Akkumulator nutzen. Bei 
sagen wir 10 Bit Auflösung, kannst du mit einem 20 Bit Akkumulator die 
Datenübertragung von 10 MB/s auf 20 KB/s reduzieren. Bei einem 
Akkumulator von 32 Bit reduziert sich alles auf 1 Byte/s. Das kannst du 
auch per Morsezeichen übertragen.
Möchtest du den Energieverbrauch von bestimmten Rechenoperationen 
messen, geht das natürlich nicht. In dem Fall würde ich ein STM32F4 
disco Board nehmen und das ganze per VCP übertragen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren