Fange gerade mit EE an, also ertrage es mit mir. Ich habe einen Bare-Metal-STM32G474RE, der über SPI (~ 5 MHz) mit einem LSM9DS1 kommuniziert. Ich habe eine Sonde angeschlossen, die die Kommunikation aufzeichnet, und es scheint gut zu funktionieren. Ich sende 0x8F und erhalte 0x68 vom WHO_AM_I-Register zurück:
CS/CLK/MOSI/MISO. Was ich zu verstehen versuche, ist das "stereotype" Rauschen im Signal. Ich verstehe, dass alle Signale eine Art Grundrauschen haben, aber die MISO-Leitung ist deutlich lauter als die anderen Leitungen (war mir nicht klar, warum?), und das Rauschmuster scheint von Bild zu Bild einem konsistenten Muster zu folgen dh ich kann eine neue Aufnahme auslösen und das Signal sieht fast identisch aus.
Eingekreist - Ich nehme an, dass dieser Einbruch, der mit der ersten fallenden Taktflanke zusammenfällt, darauf zurückzuführen ist, dass die MOSI-Leitung abfällt und die VDD-Leitung (?) beeinflusst.
Rect - Die MISO-Leitung ist im Vergleich zur MOSI-Leitung super verrauscht. Aber es ist kein weißes Rauschen; Vielmehr ist das Klingeln auf der Leitung jedes Mal fast identisch, wenn ich einen neuen Trigger erfasse. Was könnte solch ein großes, aber sehr beständiges Rauschen verursachen?
Pfeil - Nicht wirklich rauschbezogen, aber ich nehme an, dass dieser allmähliche Spannungsanstieg zurück auf VDD darauf zurückzuführen ist, dass weder Slave noch Master die MISO-Leitung ansteuern und irgendwo ein interner Pull-up-Widerstand + eine Kappe vorhanden ist. Warum sollte dies nur passieren, nachdem CS hoch geht? Ist es diese "Refabrikationszeit", die die SPI-Geschwindigkeit begrenzt?
Bearbeiten: mehr Details
Das Mikro befindet sich auf dem NUCLEO-G474RE-Board ( pdf ), und das LSM9DS1 befindet sich auf dem Breakout-Board von Adafruit ( Link ). Der SPI-Port ist SPI2 mit den Pins PB 12/13/14/15 für CS/CLK/MISO/MOSI. Verbunden mit ~4 "Drähten, die mit einer 1-poligen Dupont-Buchse abgeschlossen sind. Lassen Sie mich wissen, wenn Sie weitere Informationen benötigen!
Edit: Sonde getauscht
Vertauschte Sonden 3 und 4 auf der Leiterplattenseite. Rauschen folgt der Sonde nicht; es erscheint nur in der MISO-Zeile.
Messen mit einem Zielfernrohr ist eine Kunst. Es ist nicht so sehr wichtig , ob Ihre Sonden geerdet sind, sondern eher dort, wo sie geerdet sind.
Das Rauschen hängt auch stark vom PCB-Layout und der Treiberstärke ab. Denken Sie, wenn es wie zwei Personen nebeneinander sind: Sie hören den einen besser über den anderen, wenn er lauter schreit.
Zurück zu deinen Signalen:
Kreis : Das stimmt mit dem ersten Datenbit überein. Kann es sein, dass das erste Datenbit dem Slave sagt, dass er lesen oder schreiben soll? Wenn dies der Fall ist, wechselt die MISO-Linie von schwimmend zu angetrieben. Dieses Verhalten wird häufig bei Schnittstellen beobachtet, die eine einzige bidirektionale Datenleitung für Ein- und Ausgabe bieten.
Rect : Ja, Ihr Signal ist verrauscht, aber wie gesagt, das wird oft durch eine schlechte Erdung der Sonde verursacht. Ich würde auch überprüfen, ob Sie alle Chips korrekt entkoppelt haben.
Pfeil : In dem Moment, in dem die Chipauswahl verschwindet, geht Ihr MISO-Ausgang in den Tri-State. In der Tat sehen Sie, wie das schwimmende Netz irgendwo hochgezogen wird. Da es keine Chipauswahl gibt, spielt es keine Rolle, wohin diese Linie schwimmt. Es könnte auch niedrig oder zufällig gehen.
"Stereotyp" : Um zum Kern Ihrer Frage zu kommen: Dass Sie dasselbe "Stereotyp" -Muster sehen, lässt sich leicht durch die Tatsache erklären, dass Rauschen in einer digitalen Leiterplatte nicht zufällig ist, sondern durch das Schalten der Schaltkreise verursacht wird. Die CPU führt jedes Mal den gleichen Programmabschnitt aus und daher erhalten Sie jedes Mal das gleiche Geräuschmuster.
Möglicherweise sehen Sie einen Unterschied, wenn der Treiber von einem Interrupt behandelt wird. In diesem Fall hängt das Rauschmuster davon ab, wo der SPI-Interrupt aufgetreten ist.
Ihr Rauschen kann auch durch das SPI-Slave-Gerät verursacht werden. In diesem Fall ist das Rauschmuster eher immer gleich.
Nanofarad
mkeith
Mattman944
Tim
Mattman944