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
Sofern Du einen J-Link hast, wäre vielleicht J-Scope eine Option.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.