Was braucht man für Übertragungsmodi in Serial Peripheral Interface?

Ich durchlaufe die SPI-Übertragung für die Implementierung in FPGA, während ich recherchiere, in einigen Artikeln wie
https://en.wikipedia.org/wiki/Serial_Peripheral_Interface und diesem https://web.archive.org/web/20150413003534/http: //www.ee.nmt.edu/~teare/ee308l/datasheets/S12SPIV3.pdf Was in Abschnitt 4.4.1 steht

Unter Verwendung von zwei Bits im SPI-Steuerregister1 wählt die Software eine von vier Kombinationen aus serieller Taktphase und -polarität aus.

Das CPOL-Taktpolaritäts-Steuerbit spezifiziert einen aktiven High- oder Low-Takt und hat keinen signifikanten Einfluss auf das Übertragungsformat.

Das Taktphasensteuerbit CPHA wählt eines von zwei grundsätzlich unterschiedlichen Übertragungsformaten aus. Taktphase und Polarität sollten für das Master-SPI-Gerät und das kommunizierende Slave-Gerät identisch sein. In einigen Fällen werden Phase und Polarität zwischen Übertragungen geändert, um es einer Master-Vorrichtung zu ermöglichen, mit peripheren Slaves mit unterschiedlichen Anforderungen zu kommunizieren.

Meine Frage ist, was ist die Notwendigkeit, die verschiedenen Modi in SCK anzugeben, obwohl die letzte Zeile versucht zu erklären, es klingt vage und gibt keinen tatsächlichen Grund an, was ist der eigentliche Grund
für die Angabe der SCK-Polarität und Phase in denen Modus bestimmt.
Danke.

Die kurze Antwort ist, dass es keinen "offiziellen" SPI-Standard gibt, wie es für viele andere Schnittstellen (wie I2C) der Fall ist. Unterschiedliche SPI-Geräte haben unterschiedliche Timing-Anforderungen.
Hmm, das erklärt es ein wenig, aber ich erwarte eine Antwort, die Ihren Standpunkt näher erläutert, z. B. wie die elektrische Zuweisung unterschiedlicher Lesemodi die Zeitanforderungen löst. Verzeihen Sie mir, wenn ich nicht beurteilen kann, dass ich neu darin bin.
Ja, stimmt Caleb Reister zu. Sogar diese Modi und Abtastpunkte werden je nach Hersteller modifiziert, um höhere Datenraten auf dem SPI-Bus zu erhalten.

Antworten (1)

Das SPI-Modul auf einem Mikrocontroller kann verwendet werden, um mit mehreren Slave-Chips zu kommunizieren, die möglicherweise unterschiedliche Modi verwenden. Zum Beispiel könnte ein Chip ansteigende Taktflanken benötigen, um Daten zu laden, und ein anderer Chip könnte abfallende Taktflanken benötigen, um Daten zu laden. Die Kommunikation muss die richtigen Einstellungen für jeden Chip verwenden oder die Daten werden nicht zuverlässig übertragen, daher muss ausgewählt werden, welche Einstellungen verwendet werden sollen. Die letzte Zeile, über die Sie verwirrt sind, bedeutet also nur, dass eine Einstellung mit einem Chip verwendet wird und zwischen den Übertragungen Einstellungen geändert werden können, sodass andere Einstellungen mit einem anderen Chip verwendet werden können.