GERU007B June   2015  – March 2025

 

  1.   1
  2.   Beschreibung
  3.   Ressourcen
  4.   Merkmale
  5.   Anwendungen
  6.   6
  7. Systembeschreibung
    1. 1.1 Design-Übersicht
    2. 1.2 Analoger inkrementelle Sin/Cos-Encoder
      1. 1.2.1 Sin/Cos-Encoder-Ausgangssignale
      2. 1.2.2 Beispiele für elektrische Sin/Cos-Encoder-Parameter
    3. 1.3 Methode zur Berechnung der hochauflösenden Position mit Sin/Cos-Encodern
      1. 1.3.1 Theoretischer Ansatz
        1. 1.3.1.1 Übersicht
        2. 1.3.1.2 Berechnung des Winkels mit grober Auflösung
        3. 1.3.1.3 Berechnung des Winkels mit feiner Auflösung
        4. 1.3.1.4 Berechnung des interpolierten hochauflösenden Winkels
        5. 1.3.1.5 Praktische Implementierung für nicht ideale Synchronisation
        6. 1.3.1.6 Überlegungen zu Auflösung, Genauigkeit und Geschwindigkeit
    4. 1.4 Auswirkungen von Sin/Cos-Encoder-Parametern auf die Spezifikation analoger Schaltkreise
      1. 1.4.1 Überlegungen zum Design der analogen Signalkette für die Phaseninterpolation
      2. 1.4.2 Systemdesign der Komparatorfunktion für inkrementelle Anzahl
  8. Designmerkmale
    1. 2.1 Sin/Cos-Encoder-Schnittstelle
    2. 2.2 Hostprozessor-Schnittstelle
    3. 2.3 Evaluierungs-Firmware
    4. 2.4 Power-Management
    5. 2.5 EMV-Störfestigkeit
  9. Blockschaltbild
  10. Schaltkreisdesign und Komponentenauswahl
    1. 4.1 Analoge Signalkette
      1. 4.1.1 Hochauflösender Signalweg mit 16-Bit-Doppelabtastungs-ADC
        1. 4.1.1.1 Komponentenauswahl
        2. 4.1.1.2 Eingangssignalabschluss und -schutz
        3. 4.1.1.3 Differenzialverstärker THS4531A und 16-Bit-ADC ADS8354
      2. 4.1.2 Analoger Signalweg mit unsymmetrischem Ausgang für MCU mit eingebettetem ADC
      3. 4.1.3 Komparator-Subsystem für die digitalen Signale A, B und R
        1. 4.1.3.1 Nicht invertierender Komparator mit Hysterese
    2. 4.2 Power-Management
      1. 4.2.1 24-V-Eingang auf 6-V-Zwischenschiene
      2. 4.2.2 Encoder-Versorgung
      3. 4.2.3 Signalketten-Stromversorgung 5 V und 3,3 V
    3. 4.3 Hostprozessor-Schnittstelle
      1. 4.3.1 Signalbeschreibung
      2. 4.3.2 Hochauflösender Pfad unter Verwendung des 16-Bit-Dual-ADC ADS8354 mit seriellem Ausgang
        1. 4.3.2.1 Ausgabedatenformat des Vollausschlagsbereichs von ADS8354
        2. 4.3.2.2 Serielle Datenschnittstelle von ADS8354
        3. 4.3.2.3 Wandlungsdaten von ADS8354 lesen
        4. 4.3.2.4 Registerkonfiguration für ADS8354
    4. 4.4 Encoder-Anschluss
    5. 4.5 Design-Upgrades
  11. Softwaredesign
    1. 5.1 Übersicht
    2. 5.2 C2000-Piccolo-Firmware
    3. 5.3 Benutzerschnittstelle
  12. Erste Schritte
    1. 6.1 TIDA-00176-Platinen-Übersicht
    2. 6.2 Anschlüsse und Jumpereinstellungen
      1. 6.2.1 Übersicht über Anschlüsse und Jumper
      2. 6.2.2 Standard-Jumperkonfiguration
    3. 6.3 Design-Evaluierung
      1. 6.3.1 Voraussetzungen
      2. 6.3.2 Hardware-Einrichtung
      3. 6.3.3 Software-Einrichtung
      4. 6.3.4 Benutzerschnittstelle
  13. Prüfergebnisse
    1. 7.1 Analoge Leistungstests
      1. 7.1.1 Hochauflösender Signalweg
        1. 7.1.1.1 Bode-Diagramm des Analogpfads vom Encoder-Anschluss bis zum ADS8354-Eingang
        2. 7.1.1.2 Leistungsdiagramme (DFT) für den gesamten hochauflösenden Signalweg
        3. 7.1.1.3 Hintergrundinformationen zu AC-Leistungsdefinitionen für ADCs
      2. 7.1.2 Analoger Differential-to-single-ended-Signalweg
      3. 7.1.3 Komparator-Subsystem mit digitalen Ausgangssignalen ATTL, BTTL und RTTL
    2. 7.2 Stromversorgungstests
      1. 7.2.1 24-V-DC/DC-Eingangsversorgung
        1. 7.2.1.1 Lastleitungsregelung
        2. 7.2.1.2 Ausgangsspannungswelligkeit
        3. 7.2.1.3 Schaltknoten und Schaltfrequenz
        4. 7.2.1.4 Wirkungsgrad
        5. 7.2.1.5 Bode-Diagramm
        6. 7.2.1.6 Thermisches Diagramm
      2. 7.2.2 Ausgangsspannung der Encoder-Stromversorgung
      3. 7.2.3 5-V- und 3,3-V-Point-of-Load
    3. 7.3 Systemleistung
      1. 7.3.1 Sin/Cos-Encoder-Ausgangssignal-Emulation
        1. 7.3.1.1 Ein-Perioden-Test (inkrementelle Phase)
        2. 7.3.1.2 Ein mechanischer Umdrehungstest bei maximaler Geschwindigkeit
    4. 7.4 Sin/Cos-Encoder-Systemtests
      1. 7.4.1 Nullindex-Marker R
      2. 7.4.2 System-Funktionstests
    5. 7.5 EMV-Testergebnis
      1. 7.5.1 Testeinrichtung
      2. 7.5.2 ESD-Prüfergebnisse nach IEC 61000-4-2
      3. 7.5.3 EFT-Prüfergebnisse nach IEC 61000-4-4
      4. 7.5.4 Stoßspannungsprüfungsergebnisse nach IEC 61000-4-5
  14. Designdateien
    1. 8.1 Schaltpläne
    2. 8.2 Stückliste
    3. 8.3 PCB-Layout-Richtlinien
      1. 8.3.1 Platinenschichtdiagramme
    4. 8.4 Altium-Projekt
    5. 8.5 Gerber-Dateien
    6. 8.6 Softwaredateien
  15. Quellennachweise
  16. 10Autorenprofil
    1.     Danksagung
  17. 11Revisionsverlauf

Ein mechanischer Umdrehungstest bei maximaler Geschwindigkeit

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.

Tabelle 7-6 Winkelgeschwindigkeit für Sin/Cos-Encoder mit Zeilenanzahl 2000 und einer Drehzahl von 15000 U/min
IDEALE WINKELGESCHWINDIGKEITWINKELÄNDERUNG IN 1 µsWINKELÄNDERUNG IN 12,5 (CPU-TAKT)
90.000 Grad/s0,090,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.

TIDA-00176 Fehler des interpolierten Winkels über eine Umdrehung mit Encoder-Emulation (1 VPP, 500-kHz-Eingang bei 32-kHz-Abtastung)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).