STM32 <->GP22 SPI funktioniert nur eingeschränkt bei hoher Clockrate

Gast #3683037
Lesenswert?

Hallo,

ich habe folgendes Problem: Es soll über SPI mit einem STM32 ein GP22 
angesprochen werden. Die gesamte Schaltung ist auf einer Platine 
untergebracht. Stelle ich den SPI-Bus auf 16 MHz nimmt der GP22 Befehle 
korrekt an, aber die Register lassen sich nicht auslesen. Stelle ich die 
Geschwindigkeit auf weniger als 16 MHz reagiert der GP22 gar nicht.

Der SPI-Bus wurde bereits mit Oszilloskop debuggt. Auf Hardwareebene 
stimmt die Ein-und Ausgabe soweit. Allerdings ist das Signal von sehr 
starken Reflektionen betroffen. Und das bei einer Leitungslänge von 
weniger als 5 cm. Schalte ich auf langsamere Geschwindigkeiten, sieht 
das Signal erheblich besser aus, nur reagiert dann der GP22 nicht mehr.

Der GP22-Chip selbst erfordert keine minimale SPI-Clock.

Weiß da jemand Rat?


Viele Grüße
Sebastian W.
Gast #3683075
Lesenswert?

Ja genau, das ist ein TDC.

Die Massen habe ich in Analog und Digital aufgeteilt und an einem Punkt 
zusammengeführt. Auf dem PCB sind auf Top und Botton auf allen freien 
Flächen Masseflächen.

Vom Layout her ist der STM32 auf einer digitalen Masse, das GP22-Board 
auf der Analogen.(Habe das Herstellereigene Evaluationsboard auf eine 
selbst entworfene Platine gelötet.)
Gast #3683093
Lesenswert?

Leider die Analoge, da das GP22-Board (der Chip besitzt nur ein GND) 
keine getrennten Massen hergibt und die Ausgänge an einen 
bidirektionalen Verstärker zur Signalaufbereitung gehen.

Laut Hersteller sollte das klappen. Wenngleich mir das auch seltsam 
vorkommt.

Könnte es helfen, die Anstiegszeit der Signale langsamer zu stellen? Der 
STM32 gibt es ja her, die Flankensteilheit einzustellen.
#3683128
Lesenswert?

Nunja, der Chip hat 3 GND-Anschlüsse. Verbinde einfach mal direkt auf 
kürzetem Weg mit einem kurzen Draht (möglist Litze) die Masse des STM32 
(also direkt igendwo am STM32) mit dem GND des GP22 (auch möglichst 
direkt dort an GND).
Das könne die Situation verbessern.

Sebastian W. schrieb:
> Könnte es helfen, die Anstiegszeit der Signale langsamer zu stellen? Der
> STM32 gibt es ja her, die Flankensteilheit einzustellen.

Machs doch einfach mal.
Du sagtes doch "Der SPI-Bus wurde bereits mit Oszilloskop debuggt."
Ja, was hat das denn ergeben? Warum hast Du's noch nicht gemacht?
Gast #3683143
Lesenswert?

Vielen Dank für Deine Hilfe.

Das mit der Flanke konnte ich noch nicht probieren, da ich das Board 
hier nicht vorliegen habe und mir die Idee erst gerade kam. (Das ist 
mein erste Projekt mit einem STM32. Habe sonst immer einen Atmega 
verwendet.)

Beim debuggen des SPI-Bus sah bei den geringen Geschwindigkeiten alles 
normal aus. Clock und Phase passten, wie auch die Timings.
Die Daten die über den BUS liefen, entsprachen auch den gesendeten.

Auch die Idee mit der Litze werde ich sobald ich wieder am Board sitze 
ausprobieren.
Gast #3683331
Lesenswert?

Sebastian W. schrieb:
> Beim debuggen des SPI-Bus sah bei den geringen Geschwindigkeiten alles
> normal aus. Clock und Phase passten, wie auch die Timings.
> Die Daten die über den BUS liefen, entsprachen auch den gesendeten.

Hallo Sebstian,

wir nutzen vom STM32 auch die SPI, die ist aber sher empfindlich 
hinsichtlich Lastkapazität - so haben wir festgestellt. so kann schon 
die Kapazität eines Scope-Tastkopfes das ganze bsi zu Nichtfunktion 
beeinflussen. Ich denke mit langsameren Flanke und weniger 
Geschwindigkeit bist Du auf der sicheren Seite.

rgds
#3683374
Lesenswert?

holger schrieb:
>>wir nutzen vom STM32 auch die SPI, die ist aber sher empfindlich
>>hinsichtlich Lastkapazität - so haben wir festgestellt.
>
> Blödsinn. Am SPI vom STM32 ist überhaupt nichts empfindlich.

Auch da werden wohl Masseprobleme der Grund sein.

Der Strom muss ja nicht nur über die Signalleitung zum Slave hin, er 
muss ja auch über die Masse wieder zum STM32 zurück. Und wenn dann die 
Masse irgendwie erstmal um die halbe Platine rumgeführt wird und/oder 
lange dünne Pfade (hohe Impedanz) zurückgelegt werden müssen, dann kommt 
sowas dabei raus (und auch andere böse Sachen).
Gast #3688409
Lesenswert?

>Leider konnte das
>Problem bisher nicht gelöst werden. Ein Masseproblem konnte
>ausgeschlossen werden.

Dann fehlt bestimmt wieder ein Abblockkondensator.
Mach mal ein Foto. Das muss nicht 10MB gross sein!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren