Ich habe Fragen zum Funktionsmechanismus und zur Messmethode der SPI- und I2C-Schnittstelle. Für SPI gibt es mehrere Modi. Meine Frage ist, wie werden die Daten gespeichert? Nehmen wir zum Beispiel CPOL=1 und CPHA=0, das Bit wird an der fallenden Taktflanke zwischengespeichert. Aber warum ist das bei MISO und MOSI gleich? Ich meine, MISO und MOSI stammen von verschiedenen Geräten (das erstere vom Gerät und das spätere vom Master). Aber die Uhr kommt immer vom Meister. Wie wäre es also möglich, sowohl MOSI als auch MISO durch die fallende Taktflanke zu verriegeln? Für MOSI vielleicht ja, da der Takt und der MOSI-Ausgang zusammen von Master und Gerät zur gleichen Zeit ankommen (vielleicht sollte ich sagen, halbe Uhr später). MOSI kann also dem Zeitdiagramm folgen. Aber für MISO, wie lassen wir das MISO in der Mitte seines Bits verriegeln, da es ' Reisen Sie eine ungewisse Flugzeit vom Gerät zum Master? Und für die Oszilloskopmessung, welchen Punkt sollten wir untersuchen? MOSI auf Geräteseite und MISO auf Masterseite?
Ich habe die gleiche Frage auf I2C. Wie kann sichergestellt werden, dass die SDA-Daten hoch gehalten werden, wenn sie von Master zu Slave und von Slave zu Master gehen, da die Uhr immer von Master zu Slave geht?
Wie wäre es also möglich, sowohl MOSI als auch MISO durch die fallende Taktflanke zu verriegeln?
Das Diagramm dient nur der Veranschaulichung, nicht einem detaillierten im Chip. Nehmen wir an, die Daten werden bei einer fallenden Flanke erfasst, nehmen wir an, der Slave überträgt Daten, jetzt gibt der Slave bei der fallenden Flanke der Uhr das Bit aus (z MSB beim ersten Takt), der Ausgang wird vom Slave bis zur steigenden Flanke des CLK-Eingangs gehalten, der Master kann die Slave-Daten bis zur steigenden Flanke des CLK zulassen und dann das Bit nach rechts verschieben, die gleiche Wiederholung, bis alle Datenbits vorhanden sind empfangen, gleiches gilt für MOSI vom Master.
Eine weitere Erklärung unter Verwendung von SS (Slave Select, auch Frame Synchronization I/O Pulse genannt), wenn das SS-Bit niedrig wird (siehe Bild), gibt der Slave die Daten aus, bei einer fallenden Flanke werden die Daten erfasst, was ungefähr in der Mitte des Datenpulses liegt Bei steigender Flanke werden die nächsten Daten zum Ausgang verschoben, sodass wir die CLK-Impulsbreitenzeit haben, damit sich die Daten in den Ausgangspins niederlassen und der Master die Daten vom Slave erfasst
Das SPI-Peripheriemodul verfügt über alle erforderlichen Timing- und Schaltschaltungen, damit es im schlimmsten Fall funktionsfähig ist.
SPI und I2C sind relativ langsame Schnittstellen, die für die Arbeit mit dummen Slaves und einem einzelnen aktiven Master ausgelegt sind. Das bedeutet, dass Sie eine Taktrate auswählen müssen, die mit den Pfadlängen und der beteiligten Schaltung kompatibel ist.
Die Takt-zu-Daten-Umlaufzeit muss berücksichtigt werden, wenn die Schaltung für die Schnittstelle entworfen wird. Wenn die Schnittstelle eine optische Isolierung beinhaltet und billige langsam sein können (es ist schwierig, selbst 100-kHz-I2C mit CNY17 im Pfad zu treffen), müssen diese ebenfalls berücksichtigt werden. Lesen Sie die Datenblätter für alle Puffer, die Sie verwenden, berechnen Sie die RC-Zeitkonstanten, machen Sie Ihre Hausaufgaben und rechnen Sie auch 5 nS pro Meter für Verzögerungen bei Übertragungsleitungen ein. Addieren Sie alle Laufzeiten, subtrahieren Sie von einem halben Taktzyklus und sehen Sie, ob es der Schnittstellen-Setup-Zeit entspricht ( , steht auf dem Datenblatt), wenn >0, Ergebnis Glück.
Hochgeschwindigkeitsschnittstellen neigen dazu, aus diesem Grund quellensynchron zu sein , alle Signale werden von der Sendeseite gesendet.
Very High Speed Schnittstellen wie SATA, HDMI etc. machen die Synchronisation jeglicher Signale komplett überflüssig und senden Daten selbstgetaktet seriell.
Raj
Niemand