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
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.
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
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?
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.
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.
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?
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...
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?
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.
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.
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.
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.
"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.
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.