Forum: Mikrocontroller und Digitale Elektronik Daten von uC an PC senden im MHz bereich.


von Fabian (Gast)


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

von Karl (Gast)


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.

von Stefan (Gast)


Lesenswert?

Wie wäre es die Daten erst mal seitens des Messgerätes 
zwischenzuspeichern und dann größere Datenpakete zu versenden? Eine 
Echtzeitübertragung ist immer kompliziert

von Stefan (Gast)


Lesenswert?

Zudem musst du beachten, dass die Abtastfrequenz immer mindestens 2 mal 
der Signalfrequenz ist. Dazu würde ich einen Anti-Aliasign-Filter 
vorschalten

von Der Andere (Gast)


Lesenswert?

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

Warum macht man das nicht mit einem fertigen DSO?

von Sugus (Gast)


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.

von Karl (Gast)


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.

von Stefan (Gast)


Lesenswert?

Ohne mich jetzt groß in den controller einzulesen. Aber mit DMA würde 
das sicher machbar sein

von The D. (thedaz)


Lesenswert?

Von NXP gibts ne ganze Reiche ARM Cortex M4 controller mit 12bit 
5MSamples/s ADCs. Als link zum PC bietet sich USB 2.0 an.

von Stefan F. (Gast)


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?

von Cyblord -. (cyblord)


Lesenswert?

Der Andere schrieb:
> Fabian schrieb:
>> Es soll ein Strommesgerät aufgbaut werden welches
>> zeitaufgelöst den Strom eines uC misst.
>
> Warum macht man das nicht mit einem fertigen DSO?

Weil der Fabian das selbst gebaut billiger und besser hinbekommt...

von noti (Gast)


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?

von Name (Gast)


Lesenswert?

>Was willst du WIRKLICH herausfinden?

Welche Befehle die CPU ausführt?

von Sven B. (scummos)


Lesenswert?

Ich stimme meinen Vorrednern zu, die praktikable Lösung für dieses 
Problem ist ein DSO oder SDR und u.U. eine entsprechende 
Eingangsverstärkung. Selber bauen geht natürlich, ist aber sehr viel 
Aufwand und m.E. mehr als Lernprojekt zu verstehen.

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Ich habe so etwas gerade aufgebaut, allerdings im zweistelligen kHz 
Bereich. Mit einigen Veränderungen wage ich mal zu behauten, dass es 
möglich ist.

Im Prinzip setze ich auf STM32F429 mit externem SDRAM und Ethernet ein.

von Jim M. (turboj)


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.

von Fabian (Gast)


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.

von Stefan F. (Gast)


Lesenswert?

Am einfachsten ist es, die Energie vor Ort zu messen und zu berechnen. 
Dann das konsolisierte Ergebnis übertragen.

von Sven B. (scummos)


Lesenswert?

Das ist wirklich einfacher analog zu lösen ... einen Integrator bauen 
und gut ist ...

von Wolfgang (Gast)


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.

von Gerald M. (gerald_m17)


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.

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.