Ich würde gern Wissen, wo die Bus-Pegel her kommen. Im Internet finde ich nicht eindeutige Beschreibungen. Vielleicht habe ich es auch nur nicht gefunden, und ihr könnt mir einen Link zeigen.
Die Übertragung geschieht so, dass der Master seine Datenleitung (MOSI) auf den Pegel des nächsten Bits bringt und dann an der SCK Leitung einen Puls ausgibt. Gleichzeitig wird vom Master der Pegel an der Datenleitung vom Slave zum Master überwacht und ihr Zustand als nächstes einzulesendes Bit aufgefasst.
Nur geht es, zumindest für mein Verständnis, nicht sicher hervor, ob der Master den Pegel treibt, oder ob der Pegel über die PullUps kommt, und nur gegen GND gezogen wird (wie beim I²C-Bus).
also ich denke du benötigst überhaupt keine Pullup-Widerstände, der Master treibt ja normalerweise die Signale MOSI und SCK aktiv nach low und auch nach high.
Natürlich muss das nicht stimmen.
Und wie verhält es sich, wenn PullUps, durch etwaige Module (Slave) auf dem Bus sitzen? Da dies öfters vorkommt, ist es vielleicht doch so, das PullUps den Pegel bestimmen und nicht der Master?
Vielleicht könnte einer der Profis Aufklärung bringen, Danke.
Solange diese Pullups nicht zu klein sind, beeinflussen sie ein Signal am SPI nur unwesentlich. Wirklich benötigt werden sie nur , wen I2C verwendet wird. Ein L- Signal auf dem SPI bus kann mit z.B einem 10kOhm Pullup noch problemlos den L-Pegel erreichen, so dass Master als auch Slave dies eben auch als L erkennen kann.
Die Ausgangspins der Slaves des SPI Busses sind Tristate-Ausgänge. Sie konnen ca Versorgungspannung , Masse ausgeben oder bei CS LOW hochohmig sein. So können mehrere Ausgänge zusammengeschaltet werden ohne daß sie kaputtgehen.
I2C Ausgänge sind Open Kollektor oder Open Drain Ausgänge. Diese sind entweder auf Masse oder hochohmig. Daum braucht man Pullup-Widerstände oder I2C Bus Acceleratoren um ein HIGH Signal zu bekommen.