- C++ 75.6%
- CMake 20.3%
- C 4.1%
|
|
||
|---|---|---|
| .forgejo/workflows | ||
| .vscode | ||
| docs | ||
| documentation | ||
| Seriel Studio | ||
| .gitignore | ||
| Berechnung IRUN | ||
| CMakeLists.txt | ||
| messuhr.cpp | ||
| messuhr.h | ||
| pico_sdk_import.cmake | ||
| pid.cpp | ||
| pid.h | ||
| pins.h | ||
| read_dial.pio | ||
| README.md | ||
| SA-Firmware.code-workspace | ||
| StepperDriver.cpp | ||
| StepperDriver.h | ||
| TMC5160_Test.cpp | ||
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
-
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.
-
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.
-
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
-
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
-
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. -
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_piousw.) verlinkt.