Hallo :)
ich habe vor kurzem ein Projekt angefangen, dort geht es um eine Achse
die sich dreht. Diese Position/Drehung möchte ich mit einem
Evaluationboard von Infineon (TLE5012B) auslesen.
Ich dachte das ganze wäre etwas einfacher, aber ich bin interessiert das
Teil besser kennenzulernen.
Für das Board gibt es eine fertige GUI und dort funktioniert
Incremental, aber SPI nicht.
Es gibt auch vorgefertigte Arduinoprogramme und dort lässt sich leider
auch nichts auslesen.
Habe ich evtl das falsche Board gekauft oder muss ich noch etwas
umprogrammieren?
Soweit ich das verstanden habe müssten alle Boards SPI können.
Ich habe folgendes gekauft:
https://www.infineon.com/cms/en/product/evaluation-boards/tle5012b_e1000_ms2go/
Die Lib und das Board habe ich in der Arduino IDE installiert.
Der Bespielcode habe ich euch mal im Anhang hochgeladen.
Hier gibt es einen Github-Beitrag dazu:
https://github.com/Infineon/TLE5012-Magnetic-Angle-Sensor
Für das Evaluation gibt es auch eine Dokumentation.
http://www.farnell.com/datasheets/2700284.pdf
Wahrscheinlich ist es für euch Profis etwas ganz leichtes...
An der Achse hängt ein Diametral Scheibenmagnet.
Ich wäre für die Hilfe sehr Dankbar :)
Bei weiteren Fragen/Unklarheiten einfach schreiben.
Gruß
Jan
Jan B. schrieb:> Wahrscheinlich ist es für euch Profis etwas ganz leichtes...
Das Checksummengedöns schießt einem gerne ins Knie. BTDT. Ist die
Berechnung korrekt, wenn du die Testdaten aus z.B.
https://www.autosar.org/fileadmin/user_upload/standards/classic/4-3/AUTOSAR_SWS_CRCLibrary.pdf
da durchjagst?
In dem Faden Beitrag "Arduino SPI read Infineon TLE5012B" hat man schon
eine "schlappe" Flankensteilheit beim Senden des TLE5012 festgestellt.
Mal messen?
Funktioniert die Umschaltung der Datenrichtung μC-Seitig korrekt?
Wie schnell wird die SPI bedient?
Kannst du dir die Datenleitung μC-Seitig MOSI+MISO vs. Clock mal am
Oszi, das das auch dekodieren kann, ansehen?
Wie wäre es, das ganze gesumms mal händisch nachzuprogrammieren?
mfg mf
Achim M. schrieb:> as Checksummengedöns schießt einem gerne ins Knie. BTDT. Ist die> Berechnung korrekt, wenn du die Testdaten aus z.B.> https://www.autosar.org/fileadmin/user_upload/standards/classic/4-3/AUTOSAR_SWS_CRCLibrary.pdf> da durchjagst?
Da müsstest du mir genauer erklären was ich da machen muss.
Hab leider noch kein Studium in Elektrotechnik abgeschlossen, sondern
"nur" eine Ausbildung.
Was genau ist der Hintergrund für diesen Schritt?
Achim M. schrieb:> Kannst du dir die Datenleitung μC-Seitig MOSI+MISO vs. Clock mal am> Oszi, das das auch dekodieren kann, ansehen?
Ich habe mir extra für so etwas ein OSZI gekauft.
Ich versuche es mal darzustellen und hier hochzuladen.
Vielen Dank Achim! :)
Jan B. schrieb:> Da müsstest du mir genauer erklären
Also, die SPI-Kommunikation mit dem TLE5012 ist mit einer CRC-Checksumme
geschützt. Die hängt der TLE5012 hinten an die Daten ran. Ich weiß
nicht, was passiert, wenn der Arduino-Software-Treiber eine falsche
Checksumme geliefert bekommt.
Daher dachte ich mir, zu prüfen, ob das richtig implementiert ist.
Laut deinem anderen Post scheint das aber gar nicht das primäre Problem
zu sein, denn
Jan B. schrieb:> Wenn ich am Pin 3 SCK das OSZI anschließe kommt kein Takt...
Deine gelesenen Daten sehen so aus, als würde die Datenleitung permanent
auf High-Pegel fest hängen.
Womit bedienst du den TLE5012? Mit dem XMC1xxx oder extern mit eigenem
separatem Arduino?
Wenn XMC1xxx dann sieht es so aus, dass der intern meint, den Clock Zu
bedienen, aber am Pin keiner raus kommt.
Wenn eigener Arduino, dann spuckt der Rest auf dem Evalboard mit in die
Suppe. Clock kurzgeschlossen.
Jan B. schrieb:> (MISO und MOSI sind laut Plan zusammen)
Das ist dann der nächste Fallstrick, da du μC-seitig je nach
Lese-/Schreibkommando wissen musst, wann du den Pin-Treiber von MOSI
abschaltest.
Akut weiß ich jetzt erstmal nicht weiter...
mfg mf
btw. den Log vom Auslesen hätte ich eher in eine Datei gesteckt, als in
den Post. Macht es nur unübersichtlich.
So ich habe meinen Fehler erkannt.
Ich hatte das falsche Programm aufgespielt...
Jetzt kommt natürlich der Takt. Sorry dafür.
Habe jetzt mal hier ein Bild von den OSZI Messungen.
CH4 SPI:CS
Ch2 SPI:SCK
CH3 SPI:MOSI
CH1 SPI:MISO
Abfolge im Bild von oben nach unten (Siehe oben)
Achim M. schrieb:> Womit bedienst du den TLE5012? Mit dem XMC1xxx oder extern mit eigenem> separatem Arduino?
Mit dem XMC1100 der auf dem Evaluationsboard ist.
Jan B. schrieb:> Bild von den OSZI Messungen.
Das sieht doch schon mal besser aus :)
Original einige Größenordnungen weniger Zeitauflösung, und man würde den
Takt sogar ordentlich zappeln sehen. Hier hat dir die niedrige
Abtastrate von den 200msec/div einiges kaschiert.
Jan B. schrieb:> So ich habe meinen Fehler erkannt.> Ich hatte das falsche Programm aufgespielt...
Funzt es jetzt wie es soll?
mfg mf
Achim M. schrieb:> Original einige Größenordnungen weniger Zeitauflösung, und man würde den> Takt sogar ordentlich zappeln sehen. Hier hat dir die niedrige> Abtastrate von den 200msec/div einiges kaschiert.
Also feiner auflösen?
Achim M. schrieb:> Funzt es jetzt wie es soll?
Es kommt halt mal zumindest ein Signal heraus, aber die Werte kommen
beim Seriellen Monitor nicht.
Für mich sehen die Signale irgendwie fehlerhaft aus.
Bin aber auch erst gerade im einarbeiten der ganzen Thematik.
Ich kann da gar keine Struktur erkennen.
So ich geh jetzt mal einen Schritt zurück und benutze die vorgefertigte
GUI Software.
Bei dieser geh ich mal davon aus, dass dort keine Fehler vorhanden sind
und diese dann nur bei mir liegen.
Die Incrementalfunktion /Modus funktioniert einwandfrei.
Im SPI-Modus kommt leider nichts bzw die Gradanzeige verändert sich
nicht.
So sieht die SPI-GUI aus: Siehe Anhang 1
Hier habe ich nochmals Messungen aufgenommen.
Die Signale sind gestartet als ich in der SPI-GUI Start gedrückt habe.
Siehe Anhang 2 und 3
Was ich jetzt vermute ist das ich irgendwas anders Konfigurieren muss.
Bin da gerade dran, falls einer helfen kann wäre ich dankbar dafür.
Hier nochmals das Evaluationboard Manual:
http://www.farnell.com/datasheets/2700284.pdf
Irgendwie ist der SPI Bus nicht aktiv siehe SPI_GUI Bild im Anhang unter
Auto Detect Log
Diesen muss ich aktivieren.
Die Frage ist halt wie...
Ich benutze das Board E1000.
Gruß
Jan
Jan B. schrieb:> Hier habe ich nochmals Messungen aufgenommen.
Sieh dir mal im Datenblatt an, wie das SPI-Signal aussehen muss. Kannst
du Ähnlichkeiten erkennen? Ich nicht. Und auch das Oszi kann
offensichtlich die aufgenommenen Signale nicht als sinnvolle Protokolle
analysieren.
Jan B. schrieb:> Für mich sehen die Signale irgendwie fehlerhaft aus.
So sehen Messfehler aus...
Deshalb: trigger mal auf die fallende Flanke des SS# und zeig ein es der
Telegramme in einer vernünftigen Auflösung an (Stichworte: Zeitbasis und
Aufzeichnungstiefe). Wenn du da ein erkennbares Bild hergezaubert hast
(ein wenig Übung ist für die meisten Zaubertricks nötig, auch für die
einfachen...), dann können wir das mal analysieren.
Lothar M. schrieb:> So sehen Messfehler aus...> Deshalb: trigger mal auf die fallende Flanke des SS# und zeig ein es der> Telegramme in einer vernünftigen Auflösung an (Stichworte: Zeitbasis und> Aufzeichnungstiefe). Wenn du da ein erkennbares Bild hergezaubert hast> (ein wenig Übung ist für die meisten Zaubertricks nötig, auch für die> einfachen...), dann können wir das mal analysieren.
Mein Problem ist aber gerade nicht das falsche Messen, sondern das
einfach kein SPI-Signal raus kommt.
Wenn das der Fall ist, kann ich die Auflösung auch anpassen.
Was mir auffällt das bei der GUI die von Infineon bereitgestellt wird,
unter
Auto Detect Log "SSC IF not active" steht (siehe Anhang) und in der
Anleitung sieht es wie im Link Seite 12 aus :
http://www.farnell.com/datasheets/2700284.pdf
Da passt irgendetwas nicht..