Spikes auf SPI

Gast #3196772
Lesenswert?

Hallo zusammen

Bei meiner SPI-Verbindung mit einem Sensor treten auf der CS-Leitung 
Spikes auf, wenn der Sensor angeschlossen ist.
Soviel ich sehe, passieren diese bei fallender Flanke der Taktleitung. 
SCLK und CS liegen auf dem Verbindungskabel nicht nebeneinander. Anbei 
ein Screenshot wie es an der SPI aussieht.

Was könnte der Grund sein? Momentan sind die Leitungen ohne weitere 
Hardware miteinander verbunden. CS könnte ich auch mit einem Pullup 
ausführen. Ich habe mit zwei unterschiedlichen Mikrocontroller-Boards 
getestet und festgestellt, dass das Problem bei einem Board nicht 
auftritt.
Wenn ich andererseits ohne den Sensor teste, dann sind keine Störungen 
auf der SPI vorhanden.


Beste Grüße

Geri
Angehängte Dateien:
Gast #3197024
Lesenswert?

Sieht doch soweit ganz gut aus.

Der CS hat den Peak jeweils nach 16 Bit.

Dieser Peak ist dann notwendig wenn der Slave für jedes Byte/Wort einen 
Wechsel des CS benötigt.

Es gibt auch Slaves die auf diesen Peak während einer laufenden 
Überragung allergisch reagieren.

Zu finden ist das in der SPI Implementierung / Konfiguration.
Gast #3197584
Lesenswert?

Hallo zusammen

- CS wird durch meinen Setzen einer Portleitung durch mein Programm 
erzeugt

- Das Programm schreibt ohne Unterbrechung durch ein anderes Programm 4 
Words nacheinander und wartet dann wieder.

- Controller: C167

- Aufgefallen ist mir noch, dass die Spikes immer beim Schreiben des 
zweiten und/oder vierten Words auftreten. Im Beispiel oben, war es z.B: 
nur beim Vierten.

- Ich meine, die Spike erscheinen immer an der gleichen Stelle, jedoch 
nicht immer.

- Das Problem ist nur dann, wenn der Sensor angeschlossen ist, tritt bei 
einem anderen Mikrocontroller-Board jedoch nicht auf.

Nehmen wir einmal an, man kann die Ursache(n) nicht finden, kann man 
durch schaltungstechnische Massnahmen die Situation evtl. noch etwas 
verbessern?

Welche Informationen sind für

Beste Grüsse

Geri
Gast #3197815
Lesenswert?

Die Spikes kommen von MTSR und MRST, würde ich sagen (Übersprechen). 
Lass mal Schaltplan/Layout sehen, da kann man es besser beurteilen. Bzw, 
wenn du einen STM32 im Einsatz hast probiere mal die Flankensteilheit 
auf 2MHz runter zu drehen. Hast du an MISO/MOSI externe Pull-ups?
Gast #3198766
Lesenswert?

Hallo Matthias und ♪Geist

Layoutdaten habe ich leider keine. Es handelt sich um das Eval-Board 
MCBXC167 von Keil. Die SPI-Leitung ist direkt auf eine Stiftleiste 
geführt.

Die Kabellänge zwischen Sensor und Board beträgt 75 mm. Kürzer geht 
nicht.
Die Verbindung erfolgt über Flachbandkabel wobei die Taktleitung neben 
der MTSR liegt.

Pullups sind keine vorhanden

Wie liesse sich evtl. entkoppeln.

Was für Ursachen könnten es prinzipiell sein?

1.) Übersprechen am Flachbandkabel
2.) Übersprechen an den Leiterbahnen
3.) Leitungsströme kurzzeitig zu hoch
4.) anderes schnelles Signal ungünstig zu einer SPI-IO-Leitung on Board
5.) Hardwarezugriff (z.B. Zugriff auf das externe RAM)
6.) externe Störungquellen
7.) SPI-Speed zu hoch für das vorhandene Design
...

Nach meinen Beobachtungen besteht eine gewisse Systematik bei den 
Fehlern. Wie schon oben geschrieben, beim ersten und dritte Word konnte 
ich den Fehler nicht beobachten.

Vielleicht sollte ich einfach mal 8 Words schreiben und dann schauen was 
passiert...

Beste Grüße und vielen Dank für die Hilfe!

Geri
Was könnte man evtl. machen?
Gast #3199518
Lesenswert?

Hallo zusammen

@Falk:):)
>Mal richtig messen (tm). Mit einem Ozilloskop, nicht Logicanalyzer. Dann
>sieht man, wie der vermeintliche Störpuls aussieht.

Habe mit dem Oszilloskop gemessen. Dort konte ich nur Peaks mit ca. 1.5 
V detektieren. Die Schaltschwelle des Logic Analyzers habe ich auf 2.5 V 
gestellt. Vielleicht zeigt der ja mehr an als tatsächlich der Fall

Das Taktsignal sieht meiner Meinung nach i.O. aus. "schöne" Flanke, 
geringes Überschwingen.

Wie du vielleicht hinweisen wolltest... Das SPI-Signal sieht eigentlich 
i.O. (fast schon top) aus.


@Lothar:
Die Masse sieht i.O. aus. Auch die 5V Versorgung. Anbei ein Bild des 
Messaufbaus.

Ich habe nun noch einen 100 ohm Serienwiderstand mit einem 470 pf 
Kondensator in die Taktleitung geschaltet. Die Peaks sind im Logic 
Analyzer nicht mehr zu sehen.
Die Flanken sind runder. Werde nun mal die SPI-Geschwindigkeit deutlich 
drosseln und testen.


Im SPI-Empfangsregister steht aber trotzdem der falsche Wert. Bei 
gleichem Controller auf einem anderen Board und gleicher Initialisierung 
funktioniert die Verbindung einwandfrei.


Beste Grüsse und vielen Dank nochmals

Geri
Angehängte Dateien:
#3199567
Lesenswert?

@Geri (Gast)

>Habe mit dem Oszilloskop gemessen. Dort konte ich nur Peaks mit ca. 1.5
>V detektieren.

Ganz schön viel.

>Das Taktsignal sieht meiner Meinung nach i.O. aus. "schöne" Flanke,
>geringes Überschwingen.

Screenshot?

>Die Masse sieht i.O. aus. Auch die 5V Versorgung. Anbei ein Bild des
>Messaufbaus.

Nicht perfekt aber OK. Deine Namen MTSR sind ungewöhnlich, ich tippe mal 
auf master transmit sensor read? Bei den anderen Leuten heisst das MOSI, 
Master out, slave in. Egal.

>Ich habe nun noch einen 100 ohm Serienwiderstand mit einem 470 pf
>Kondensator in die Taktleitung geschaltet. Die Peaks sind im Logic
>Analyzer nicht mehr zu sehen.

Naja, das ist ein Würg Around. Der Takt ist es aber wahrscheinlich 
nicht, denn ann müsste bei jeder Taktflanke was passieren.

>Die Flanken sind runder.

Ja.

> Werde nun mal die SPI-Geschwindigkeit deutlich
> drosseln und testen.

Mach das, bringt aber nix. Denn die Anstiegszeiten sind die gleichen. 
Und die machen das Problem.

Möglicherweise koppelt auf deinem Board was über und nicht im Kabel. 
Masseverbindung ist an beiden Steckern OK?

>Im SPI-Empfangsregister steht aber trotzdem der falsche Wert. Bei
>gleichem Controller auf einem anderen Board und gleicher Initialisierung
>funktioniert die Verbindung einwandfrei.

Klingt nach Lötfehler oder ähnlichem. Kabel schlecht gecrimpt?

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