Forum: Mikrocontroller und Digitale Elektronik STM32CubeMonitor, SWV Data Trace Timeline Graph, STM Studio: Was benutzt ihr?


von Michi (uart14k4)


Lesenswert?

Hallo zusammen

Bei der Entwicklung eines Positionsreglers auf dem STM32H7 brauche ich 
eine möglichkeit interne Variablen (pos,vel,cur) wie auf einem Oszi live 
anzusehen. Gleichzeitig muss ich andere Variablen verändern können. Mit 
STM32CubeIDE geht das einigermassen mit dem Timeline Graph. Der hat aber 
keinen sinnvollen Zoom, keine Pause, wenn der Speicher voll ist hängt er 
sich auf etc.

STM Studio empfiehlt mir der ChatGPT aber das funktioniert nicht mehr 
mit den neuen ELF Dateien wie es aussieht.

STM32CubeMonitor wäre eigentlich dafür gedacht, ist aber sehr mühsam 
sich da einzulernen. Ausserdem kann man damit nur immer die Variablen 
sehen und editieren die man sich vorher ausgewählt hat.

Alles eher bescheidene Optionen aber immerhin hab ich die Wahl. Wollte 
mal eure Erfahrung hören: Gibt es da noch was Besseres? Sonst würde ich 
mich halt mal in den CubeMonitor einlernen.

Gruss
Michi

von Schwierig (ruelps)


Lesenswert?

Sofern Du einen J-Link hast, wäre vielleicht J-Scope eine Option.

von Joshua S. (joshua_s)


Lesenswert?

Die Visualisierung und gleichzeitige Beeinflussung interner Variablen 
beim Tuning von Reglern ist mit Tools wie dem Timeline-Graph oder dem 
Cube-Monitor leider oft nur sehr eingeschränkt möglich. Der 
STM32CubeMonitor gehört zur gleichen Kategorie wie Infineons 
MicroInspector oder Renesas' Real-Time Chart View Tools. Diese greifen 
über Debug- oder Monitor-Schnittstellen auf zuvor ausgewählte Symbole 
aus dem Build (ELF) zu. Das bringt jedoch auch strukturelle 
Limitierungen mit sich: Die Variablen müssen vorab bekannt sein, die 
Datenrate ist begrenzt und die Darstellung ist selten für 
Reglerentwicklungen geeignet.

Wenn mehr Kontrolle oder eine höhere Performance benötigt wird, bleibt 
oft nur ein tieferer Systemeingriff, beispielsweise über Trace-Systeme, 
externe DAQ-Tools, HiL-Umgebungen oder eigene Logging-Lösungen via UART, 
USB oder CAN. Das kann leistungsfähig sein, ist in der Regel aber 
aufwendig in der Umsetzung.

Für den Anwendungsfall der Reglerentwicklung gibt es ansonsten auch 
spezialisierte Softwarelösungen wie es:scope. Das ist ein Tool, das 
interne Variablen in Echtzeit und mit hoher Bandbreite visualisieren 
(angelehnt an ein Oszi) und Parameter (vom Regler zum Beispiel) zur 
Laufzeit anpassen kann. Dafür nutzt es eine Kommunikationsstruktur, die 
unabhängig von der klassischen Debug-Schnittstelle funktioniert. Für die 
private oder nichtkommerzielle Nutzung gibts eine kostenlose Version.

VG, Joshua

von Frank K. (fchk)


Lesenswert?

Hast Du die volle Kontrolle über das Hardware-Design?

Dann könntest Du ein echtes Dual-Port RAM an den FMC anschließen und 
Deine Prozessvariablen dort ablegen.

Das wäre z.B. ein geeigneter Baustein:
https://www.renesas.com/en/products/memory-logic/multi-port-memory/asynchronous-dual-port-rams/70v24-4k-x-16-33v-dual-port-ram

So ein DP-RAM hat zwei voneinander unabhängige Ports, und Du kannst von 
beiden Ports auf den Speicher zugreifen, ohne dass sich die beiden 
Seiten beeinflussen. Damit kannst Du jederzeit Deine Prozessvariablen 
beobachten und verändern. Wenn Du Daten verändern willst, solltest Du 
sie als volatile deklarieren, damit der Prozessor sie nicht intern in 
Registern hält.

Für die zweite Seite könntest Du beispielsweise einen FT2232H verwenden. 
Der hat über seine MPSSE Engine die Möglichkeit, einen 8051 Prozessorbus 
zu simulieren und Speicherzugriffe zu machen.

fchk

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.