Firmware für die Studienarbeit
  • C++ 75.6%
  • CMake 20.3%
  • C 4.1%
Find a file
mark 3114d12cb5
All checks were successful
/ generate-docs (push) Successful in 15s
unnötige Datei gelöscht
2025-04-10 14:22:15 +02:00
.forgejo/workflows Actions file repariert? 2025-03-23 19:55:21 +01:00
.vscode Erste Implementierung ohne Einheiten 2025-03-13 21:09:55 +01:00
docs Initialer Stand Dokumentation 2025-03-23 19:25:39 +01:00
documentation Aktualisierung der Dokumentation 2025-04-10 14:17:19 +02:00
Seriel Studio letzte Werte in mm umgestellt 2025-04-09 16:35:20 +02:00
.gitignore documentation Verzeichnix zu gitignore hinzugefügt 2025-04-07 18:12:54 +02:00
Berechnung IRUN Testcode zu Version Tracking hinzugefügt 2025-03-13 12:05:57 +01:00
CMakeLists.txt Anpassen des Messuhr Codes auf neue Firmware 2025-04-07 21:21:20 +02:00
messuhr.cpp Anpassen des Messuhr Codes auf neue Firmware 2025-04-07 21:21:20 +02:00
messuhr.h Anpassen des Messuhr Codes auf neue Firmware 2025-04-07 21:21:20 +02:00
pico_sdk_import.cmake Testcode zu Version Tracking hinzugefügt 2025-03-13 12:05:57 +01:00
pid.cpp PID Regler in Stepper Driver eingefügt. Bisher nur callback mit printf 2025-04-06 14:55:06 +02:00
pid.h PID Regler in Stepper Driver eingefügt. Bisher nur callback mit printf 2025-04-06 14:55:06 +02:00
pins.h Erste Version von Stromsteuerung, zusätzliche PINs für TMC5130 hinzugefügt, Rücklesen des Pseudo DACs hinzugefügt, Ausgabe von Strom Setting hinzugefügt 2025-04-01 23:46:16 +02:00
read_dial.pio Messuhr Code hinzugefügt und CMakeList aktualisiert 2025-04-07 20:38:16 +02:00
README.md Aktualisierung der Dokumentation 2025-04-10 14:17:19 +02:00
SA-Firmware.code-workspace Workspace hinzugefügt glaub ich 2025-04-06 14:22:43 +02:00
StepperDriver.cpp Aktualisierung der Dokumentation 2025-04-10 14:17:19 +02:00
StepperDriver.h Aktualisierung der Dokumentation 2025-04-10 14:17:19 +02:00
TMC5160_Test.cpp Aktualisierung der Dokumentation 2025-04-10 14:17:19 +02:00

Projekt: TMC5160_Test

Dieses Projekt dient als Firmware eines Prüfstandes. Insbesondere Implementiert ist die Ansteuerung eines Schrittmotortreibers vom Typ TMC5130 sowie einer gehackten Messuhr mit properitären Interface. Der Code ist für die Ausführung auf einem Raspberry Pi Pico.


Übersicht

  • Ziel: Ansteuerung des Prüfstandes und Rücklieferung von Messwerten über USB INnterface
  • Plattform: Raspberry Pi Pico (RP2040) oder Pi Pico 2 (RP2350)
  • Wichtige Komponenten:
    • StepperDriver: Enthält Funktionen zur Ansteuerung und Konfiguration des TMC5130-Schrittmotortreibers.
    • PID: Bietet die Möglichkeit einer PID-Regelung zur Positions- oder Geschwindigkeitsregelung.
    • Messuhr (messuhr.cpp/.h): Liest die Position über eine Messuhr aus (über PIO-Interface).
    • TMC5160_Test.cpp: Einstiegsdatei (main) des Projekts (Umbenennen!), in welcher die Initialisierung und der Programmablauf gesteuert werden.
    • pins.h: Definiert die Pins, die im Projekt verwendet werden.

Softwareaufbau

  1. Main (TMC5160_Test.cpp)
    Hier startet das Programm. Die Hardware-Schnittstellen (SPI, PWM, ADC etc.) werden initialisiert. Anschließend wird der Schrittmotor-Treiber konfiguriert und die Messuhr-Funktionen (bzw. deren PIO-Programm) initialisiert.

    • Konfiguration von Peripherien (SPI, ADC usw.).
    • Initialisierung der Klassenobjekte (z. B. StepperDriver, PID).
    • Endlosschleife, in der Messwerte ausgelesen und die Steueralgorithmen aufgerufen werden.
  2. StepperDriver (StepperDriver.cpp/.h)
    Enthält die Implementierung zur Ansteuerung des TMC5139. Dazu gehören:

    • SPI-Kommunikation mit dem Treiber (Register setzen, Status lesen etc.).
    • Funktionen zum Setzen von Geschwindigkeit, Beschleunigung und Zielposition.
    • Kontrolle der Schritt- und Richtungssignale.
  3. PID (pid.cpp/.h)
    Bildet die klassische PID-Regelung ab (Proportional-, Integral- und Differential-Anteil). Übernomemn und angepasst aus Quelle

    • Soll später für Regelung der Bauraumheizung eingesetzt werden
    • Wird für Regelung des Motorstroms verwendet
  4. Messuhr (messuhr.cpp/.h)
    Beinhaltet Logik und Funktionen zum Auslesen einer Messuhr. In Kombination mit dem PIO-Programm (read_dial.pio) kann die Messuhr-Signalauswertung interruptgesteuert erfolgen.

    • Initialisierung und Steuerung der PIO-Logik.
    • Auswertung der vom Messsystem gelieferten Signale.
    • Bereitstellen der gemessenen Werte für den Regel- bzw. Steueralgorithmus. Achtung: Übernommen aus Prototypencode. Potentiell Messy
  5. Pins (pins.h)
    Bündelt sämtliche Pin-Definitionen für den Raspberry Pi Pico, um eine zentrale Anpassung zu ermöglichen. Dies erhöht die Übersichtlichkeit und erleichtert das Portieren oder Ändern der Pinbelegung.

  6. CMakeLists.txt
    Enthält sämtliche Einstellungen zum Kompilieren und Linken des Projekts. Diese Datei ist so ausgelegt, dass sie das Pico SDK korrekt einbindet und mit Standardbibliotheken (z. B. hardware_spi, hardware_pwm, hardware_pio usw.) verlinkt.