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
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.
Hallo Ralph Der Peak nach 16 bit ist OK. Beim letzten Word sind aber mehr Peaks Beste Grüsse Geri
Meist wird CS durch Software gesteuert. Und wenn die Software Peaks produziert, dann sieht man Peaks im Analyzer. Der Rest ist Kaffeesatzlesen, mangels jedweder zielführender Information.
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
A. K. schrieb: > Der Rest ist > Kaffeesatzlesen, mangels jedweder zielführender Information. Dazu gehört z.B. auch eine Beschreibung der Entkoppelmassnahmen am steuernden MC, bzw. ein Schaltplan. Auch wäre eine Angabe der Kabellängen durchaus hilfreich.
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?
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?
Mal richtig messen (tm). Mit einem Ozilloskop, nicht Logicanalyzer. Dann sieht man, wie der vermeintliche Störpuls aussieht.
Falk Brunner schrieb: > Mal richtig messen (tm). Mit einem Ozilloskop, nicht Logicanalyzer. Und dann auch mal die Masse an verschiedenen Punkten messen (Ja richtig: Masse gegen Masse). Das könnte hier auch ein hüsches Ground-Bouncing sein... @ Geri Hast du mal ein Bild vom Schaltungs- und Messaufbau (Masseklemme+Messpins)?
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
@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?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.