Forum: Mikrocontroller und Digitale Elektronik frage bzgl. SPI theorie


von overseer (Gast)


Lesenswert?

guten abend,

ich denke ich habe spi einigermaßen verstanden, allerdings ist mir eine 
sache unklar.


und zwar beim thema CPOL und CPHA


[quote]
* At CPOL=0 the base value of the clock is zero

o For CPHA=0, data are read on clock's rising edge and data are changed 
on a falling edge.
o For CPHA=1, data are read on clock's falling edge and data are changed 
on a rising edge.


* At CPOL=1 the base value of the clock is one (inversion of CPOL=0)

o For CPHA=0, data are read on clock's falling edge and data are changed 
on a rising edge.
o For CPHA=1, data are read on clock's rising edge and data are changed 
on a falling edge.
[/quote]
quelle:http://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus

CPOL invertiert aus sicht des slaves die interpretation der polarität 
des clocks, richtig?

wenn dem so ist verstehe ich den sinn von cpha nicht :/ warum setzt man 
cpha nicht einfach als "0" fest und invertiert CPOL dann hätte man das 
gleiche ergebnis

kurz: bei meinem derzeitigen verständnis des protokolls ist da was 
doppelt gemoppelt :?

da da aber sicher nichts doppelt gemoppelt ist....was verstehe ich hier 
falsch?

von Jörg G. (joergderxte)


Lesenswert?

In einem anderen Datenblatt war es mal besser erklärt:
 - CPOL entscheidet über den Ruhepegel.
 - CPHA bestimmt, ob die Datenleitung auf der ersten ("leading") oder 
zweiten ("trailing") Flanke gesampelt wird.
 ... was zu den vier SPI-modi führt.

hth, Jörg

von holger (Gast)


Lesenswert?

> ... was zu den vier SPI-modi führt.

Wobei Mode 0 und 3 am häufigsten vorkommen.
Mit Mode 0 kommt man meistens aus. CPOL=0 CPHA=0.
Damit würde ich erstmal anfangen, es sei denn der
Chip möchte definitiv was anderes.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> da da aber sicher nichts doppelt gemoppelt ist...
CPOL legt die Ruhepegel von SCLK fest.

CPHA legt fest, an welchen Flanken die Daten mit der entsprechenden 
Flanke übernommen werden:
0 = 1, 3, 5, 7, 9...te Flanke
1 = 2, 4, 6, 8, 10...te Flanke

Sieh dir mal das Bild dort ganz unten an:
http://www.lothar-miller.de/s9y/categories/17-SPI
Vieleicht hilft das weiter.

von overseer (Gast)


Lesenswert?

[quote]
http://www.lothar-miller.de/s9y/categories/17-SPI
[/quote]
was heißt überhaupt samplen und shiften??
ist das shiften == senden?
und das samplen == lesen?

zwischen version 0 und 4 seh ich irgendwie keinen unterschied, außer das 
diese data kreuze versetzt sind und das bei letzterem mit sample 
begonnen wird...
wenn samplen aber gleich lesen bedeutet wäre das reichlich 
sinnlos...darf man annehmen das er das bild einfach zu einem ungünstigen 
zeitpunkt gestartet hat?


[quote]
Damit würde ich erstmal anfangen, es sei denn der
Chip möchte definitiv was anderes.
[/quote]
gibt noch keinen...erstmal verstehen

von overseer (Gast)


Lesenswert?

eine sache noch

>Autor:  holger
>Wobei Mode 0 und 3 am häufigsten vorkommen.

lässt sich begründen warum sind ausgerechnet diese beiden führend sind?

0 kann ich als vertreter der cpha0 gruppe verstehen
-> auch wenn ich nicht verstehe warum man erst ließt und dann das erste 
bit setzt? dann ließt man sich doch immer ins nächste bit rein...klar 
man kanns ausgleichen aber warum der aufwand?
was ist hier der tiefere grund?

warum 3? wäre 1 nicht sinnvoller? warum erstnoch den clock invertieren?



gruß



ps.
>...darf man annehmen das er das bild einfach zu einem ungünstigen
>zeitpunkt gestartet hat?

den hier igorieren

von Ulf R. (roolf)


Lesenswert?

overseer schrieb:

> zwischen version 0 und 4 seh ich irgendwie keinen unterschied, außer das

Wenn der Empfänger ein IC ist, welches flankengesteuert arbeitet, dann 
sind jeweils zwei Modi äquivalent, weil der Ruhepegel egal ist.  Ist das 
IC aber pegelgesteuert, dann ist der Ruhepegel offensichtlich wichtig.

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
Noch kein Account? Hier anmelden.