GERU007B June 2015 – March 2025
Für diesen Test wurde der hochauflösende interpolierte Winkel über eine mechanische Umdrehung innerhalb des mit dem Piccolo F28069M LaunchPad verbundenen TIDA-00176 berechnet. Die Abtastrate wurde auf 32 kHz bei einem
80-MHz-CPU-Takt eingestellt.
Ziel des Tests ist es, zu überprüfen, ob der Interpolationsalgorithmus bei einer maximalen Eingangssignalfrequenz von
500 kHz funktioniert, ohne dass inkrementelle Werte fehlen oder die interpolierte Phase (Bogentangens) und die entsprechende Zeilenanzahl (QEP) nicht übereinstimmen, beispielsweise aufgrund von inkongruentem Latching der analogen Samples und des QEP-Zählers. Dies würde sich in einem größeren Fehler niederschlagen als das in Sektion 7.3.1.1 gemessene Quantisierungsrauschen.
Zu diesem Zweck wurde mit dem Doppelsignalgenerator eine 360-Grad-Drehung des Encoders emuliert. Die Prüfung wird mit dem Signalgenerator mit zwei Ausgängen wie folgt durchgeführt: Die beiden Ausgangssignale sind in Amplitude und Frequenz gekoppelt und haben eine Phasenverschiebung von 90 Grad. Die beiden Signale werden dann als Eingang an die Pins A+/A– und B+/B– des Encoder-Steckers J9 des TIDA-00176 angelegt.
Der gesamte interpolierte Winkel wird im F28069M-RAM gespeichert und durch den CCS-Speicherauszug gelesen.
Der berechnete hochauflösende Winkel wird mit einer idealen Phase unter der Annahme eines Encoders mit einer Zeilenanzahl von 2000 verglichen. Daher entsprechen 2000 Signalperioden bei 500K kHz einer emulierten Revolution. Die gesamte Phasenanstiegsgeschwindigkeit beträgt 360 Grad × 500 kHz / 2000 = 90.000 Grad/s. Tabelle 7-6 enthält die Timings für
1 µs und für 100 ns, was einem F28069M-CPU-Takt bei 80 MHz entspricht.
| IDEALE WINKELGESCHWINDIGKEIT | WINKELÄNDERUNG IN 1 µs | WINKELÄNDERUNG IN 12,5 (CPU-TAKT) |
|---|---|---|
| 90.000 Grad/s | 0,09 | 0,0011 |
Ein Jitter am Signalgenerator sowie am Prozessortakt oder sogar ein CPU-Takt-Jitter des Hostprozessors, der das Analogsignal über SPI/CS abtastet, kann nicht vermieden werden. Bei einer idealen Rampe (aufgrund fehlender Referenz) hat der gemessene Winkel einen entsprechenden Phasenrückstand oder -vorsprung, was einen geschwindigkeitsabhängigen Winkelfehler ergibt.
Abbildung 7-29 zeigt den interpolierten Winkelfehler unter der Annahme einer idealen Rampe (500 kHz, 2000 Signalperioden pro Umdrehung) bei 32 khz, die 128 aufeinanderfolgende Muster pro Umdrehung ergibt.
Abbildung 7-29 Fehler des interpolierten Winkels über eine Umdrehung mit Encoder-Emulation (1 VPP, 500-kHz-Eingang bei 32-kHz-Abtastung)Wie bereits erwähnt, bestand das Ziel nicht darin, die Genauigkeit zu testen, sondern zu verifizieren, dass kein Inkrement verloren wurde. Bei einer Emulation mit 2000 Zeilen würde eine inkrementelle Zeilenanzahl einem Wert von 360/2000 = 0,18 Grad entsprechen. Der Winkelfehler (Differenz) zu einer idealen Geraden bleibt innerhalb von ± 0,001 Grad; daher funktioniert die Interpolation auch bei 500 kHz noch gut und es geht kein Inkrement verloren.
Wie in der Abbildung zu sehen ist, liegt der Fehler innerhalb von ± 0,0015 Grad. Der Grund hierfür ist der CPU-Takt-Jitter sowie andere Jitter, wie z. B. von der Signalgeneratorquelle, wobei der CPU-Takt-Jitter die minimale Genauigkeit bestimmt.
Der Grund für diese Verteilung ist der Jitter mit der F28069-Software, die die SPI-Übertragung/CS von einem oder zwei CPU-Taktzyklen auslöst. Abfallende Flanke von /CS latcht den Analogeingang. Schon ein Jitter von 12,5 ns führt zu einer Phasendifferenz von rund 12,5 ns/2000 ns × 360/2000 Grad ~ 0,0011 Grad. Daher ist die Winkeldifferenz tatsächlich ein geschwindigkeitsabhängiger Winkelfehlerrückstand (Geschwindigkeitsrückstand).