mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SPI, was ist der Clock idle?


Autor: Johnny Knot (johnny_knoxville)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Bin gerade dabei mich über SPI zu informieren, und lese mir den Artikel 
auf wikipedia.org durch. Versteh aber Folgendes nicht:

"Bei CPOL=0 ist der Clock Idle Low, bei CPOL=1 ist er Idle High."

Was ist bitte der "Clock Idle"???

Wäre dankbar für eine Hilfe!! :-)

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Idle ist der Ruhezustand.  Also der Zustand, zu dem der Takt 
zurückkehrt, wenn sich nichts tut.

Autor: mui (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das bedeutet, dass der Clock im Ruhezustand, also wenn keine Übertragung 
stattfindet entweder high ist, oder low. Bei einer Übertragung wird er 
dann auf low, bzw. auf high gezogen.
Darüber hinaus gibt es dann noch eine Einstellung mit der festgelegt 
wird, ob Daten an der fallenden oder an der steigenden Flanke übernommen 
werden sollen...

Autor: Johnny Knot (johnny_knoxville)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke!

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Clock kann machen, was er will, solange kein Slave adressiert ist. 
Was jetzt aber tatsächlich der Idle-Pegel beim SPI-Clock ist, das wird 
bei der fallenden Flanke vom Slave-Select festgelegt.

Denn es könnte ja durchaus sein, dass ich 4 Slaves am SPI habe:
einen mit Mode 0, einen mit Mode 1 usw. bis Mode 3.
Dann müsste der Idle-Pegel des Taktes beim Umschalten zwischen den 4 
Slaves hin- und herwechseln.

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Lothar Miller schrieb:
> Der Clock kann machen, was er will, solange kein Slave adressiert ist.
> Was jetzt aber tatsächlich der Idle-Pegel beim SPI-Clock ist, das wird
> bei der fallenden Flanke vom Slave-Select festgelegt.

?? Slave-Select ist ein Eingang, der den SPI vom Master in den Slavemode 
umschaltet.

> Denn es könnte ja durchaus sein, dass ich 4 Slaves am SPI habe:
> einen mit Mode 0, einen mit Mode 1 usw. bis Mode 3.
> Dann müsste der Idle-Pegel des Taktes beim Umschalten zwischen den 4
> Slaves hin- und herwechseln.

Genau das muß er dann indem der Mode entsprechend gesetzt wird bevor das 
Select für den Slave aktiv wird. Dein SlaveSelect heißt dann z.B. ja 
auch Chip-Select und ist ein normaler I/O, der mit dem SPI in Hardware 
nichts zu tun hat.

Oder habe ich Dich mißverstanden?

Gruß aus berlin
Michael

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Oder habe ich Dich mißverstanden?
Vermutlich ja.

Eine übliche SPI-Verbindung zwischen einem Master und einem Slave hat 
die Leitungen MISO, MOSI, SCLK und SS. Der Slave-Select SS zeigt den 
Beginn und das Ende einer Übertragung an.
Dazu das altbekannte Bild:
http://www.lothar-miller.de/s9y/categories/17-SPI

> Slave-Select ist ein Eingang, der den SPI vom Master in den Slavemode
> umschaltet.
Slave-Select ist ein Pin am Slave der den entsprechenden Slave auswählt. 
Mit SS='0' wird ein bestimmter Slave auf dem SPI-Bus ausgewählt.

> Slave-Select ist ein Eingang, der den SPI vom Master in den Slavemode
> umschaltet.
Das wäre ja eine dynamische Umschaltung.
Mit 2 oder mehr Mastern am SPI-Bus mußt du aber herb aufpassen, dass es 
keinen Buskonflikt gibt...

Autor: Peterle Anonym (Firma: keine) (wanderameise)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ?? Slave-Select ist ein Eingang, der den SPI vom Master in den Slavemode
> umschaltet.

nein!
Mittels slave select wählst du denjenigen slave aus, für den die daten 
bestimmt sind!
Nur wenn gleichzeitig der takt da ist und slave select auf low, sind die 
daten valide.
möchtest du 4 slaves seperat ansprechen brauchst du auch 4 slave select 
leitungen!



> Genau das muß er dann indem der Mode entsprechend gesetzt wird bevor das
> Select für den Slave aktiv wird. Dein SlaveSelect heißt dann z.B. ja
> auch Chip-Select und ist ein normaler I/O, der mit dem SPI in Hardware
> nichts zu tun hat.

???
der idle pegel definiert nur den zustand der clk, wenn gerade keine 
daten rausgetaktet werden sollen!
zudem musst du definieren ob die daten bei fallender oder steigender 
flanke übernommen werden sollen!

schau doch mal hier
http://www.8051projects.net/e107_files/public/1234...

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Peterle Anonym schrieb:
>> ?? Slave-Select ist ein Eingang, der den SPI vom Master in den Slavemode
>> umschaltet.
>
> nein!
> Mittels slave select wählst du denjenigen slave aus, für den die daten
> bestimmt sind!
> Nur wenn gleichzeitig der takt da ist und slave select auf low, sind die
> daten valide.
> möchtest du 4 slaves seperat ansprechen brauchst du auch 4 slave select
> leitungen!

Gut, wir reden von verscheidenen Sachen. SS (SlaveSelect) heitß das Pin 
an AVR-µC, daß den AVR vom Master- in den Slavemode umschaltet.

Bei allen SPI-ICs, die ich als Slave hier so habe (DAC, PLL usw.) gibt 
es eib /CS (ChipSelect) bzw. ein /CE (ChipEnable), jedoch kein 
SlaveSelcet.

Könnte man natürlich so nennen, steht aber so nicht in den 
Datenblättern.

Die Slaves wollen in dem Mode angesprochen werden, den der Hersteller 
unterstützt (Mode 0...3). Darin ist ja die Spezifikation von ClockIdle 
schon enthalten. Wenn ich z.B. 3 Byte über SPI sende und der Slave will 
ClockIdle = H dann muß der Master das eben so machen. In den Pausen 
zwischen den Bytes muß eben Clock auf dem geforderten Pegel sein, der 
Chip bleibt dabei durchaus selektiert...

Gruß aus Berlin
Michael

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Bei allen SPI-ICs, die ich als Slave hier so habe (DAC, PLL usw.) gibt
> es ein /CS (ChipSelect) bzw. ein /CE (ChipEnable)...
Ja, dann hätte ich da noch die Begriffe SYNC, FRAME und sogar LATCH im 
Angebot.

> Könnte man natürlich so nennen, steht aber so nicht in den Datenblättern.
Richtig, aber gerade weil das jeder so macht wie er gerade lustig ist, 
heißen die Dinger bei mir alle Slave-Select. Und natürlich auch, weil es 
von Motorola ursprünglich so vorgesehen war ;-)

BTW:
Atmel ist sich selber nicht so ganz einig. In der Appnote AVR320 heißt 
der Pin vom Flash /SS, im passenden Datenblatt vom Flash /CS

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.