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
Zudem musst du beachten, dass die Abtastfrequenz immer mindestens 2 mal der Signalfrequenz ist. Dazu würde ich einen Anti-Aliasign-Filter vorschalten
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.
Ohne mich jetzt groß in den controller einzulesen. Aber mit DMA würde das sicher machbar sein
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.
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?
>Was willst du WIRKLICH herausfinden?
Welche Befehle die CPU ausführt?
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.
Am einfachsten ist es, die Energie vor Ort zu messen und zu berechnen. Dann das konsolisierte Ergebnis übertragen.
Das ist wirklich einfacher analog zu lösen ... einen Integrator bauen und gut ist ...
"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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.