PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Spi



kmrish
26.07.2011, 20:21
Hallo,

Ich hätte gerne eine Frage.
Ich verwende STM32F100RB und möchte gerne das SPI-Peripheral als Slave-MODE verwenden.

Im RM0008 seite 655 steht folgendes:

Slave mode frequency (fPCLK/2 max)

kann jemand mir bitte erklären was bedeutet das genau?

irgendiwe sagt mir das die Hälfte von Klockfrequenz.....
keine Ahnung, bitte um Hilfe.

Kampi
26.07.2011, 21:34
Ja das ist der aktuelle Takt / 2.

kmrish
26.07.2011, 21:36
also wenn mein CPU mit 24 MHz läuft, dann kann der SPI Daten mit max 12 MHz senden.? ist das richtig?

kmrish
27.07.2011, 15:15
Hallo,

Ich habe die Beschreibung von Transmit sequence (RM0008,s.661) durchgelesen. Ich werde sie zusammenfassen, und ich bitte um eine Bestätigung von erfahrenden User.

Übertragungsreihenfolge:

1) zunächst muss die clk-Leitung vom MASTR auf logic High gesetzt werden. (kann auch sein, dass die CLK-leitung auf Low gesetzt werden muss, das kommt darauf an, wie die CPHA & CPOL konfiguriert sind)

2)wenn das MSB am MOSI-Pin liegt, dann beginnt die Übertragung-Zyklus

3)Den Rest von dem Datenwort wird im Shift-Register geladen.

4) Nachdem die Datenwort komplet im Shift-Register geladen sind, wird das Flag von TXE (Transmitt buffer Enpmty) auf eins gesetzt. damit wird indicated, dass der TX buffer ist jetzt empty und bereit das näcste wort zu empfangen.

zwei Sätze habe ich nicht verstanden, und bitte um Erklärung:

*)The data byte is parallel-loaded into the Tx buffer during a write cycle.
parallel zu was?was läuft parallel dazu?
durch was wird die write cycle veranlasst? irgendwie fehlt hier eine kitte aus!!!

*)The transmit sequence begins when the slave device receives the clock signal and the most
significant bit of the data on its MOSI pin.

das hiere habe ich überhaupt nicht verstanden, wie konnte es von allein das MSB an MOSI-pin sein????
und warum an MOSI-Pin und nicht an MISO? es geht hier um Übertragung von Slave nach MASTR!!!! Demzufolge soll das MASTR-INPUT/ SLAVE-OUTPUT.

Ich bedanke mich für jede Hilfe.

RP6conrad
29.07.2011, 19:53
*)The data byte is parallel-loaded into the Tx buffer during a write cycle.

Beim SPI ist es normalerweise so, das den Eingang und Ausgang von das Schieberegister parallel arbeiten : Den Master schickt Daten nach den Slave, an Ausgang von den Slave komt dan auch eine Daten Satz raus. Diese kann (aber muss nicht) zuruck nach den Master gehen. Wen das Schieberegister ein Byte gross ist, und den Master schickt ein Byte, sind die Bytes van Master und Slave ausgetauscht.

*)The transmit sequence begins when the slave device receives the clock signal and the most
significant bit of the data on its MOSI pin.


Beide laufen sowieso parallel.

Da sind verschiedene Beispiele von SPI in die Standard Lib von STM32F10* :
'@par Example Description
This example provides a description of how to set a communication between two
SPIs in simplex mode and performs a data buffer transfer from SPI_MASTER to
SPI_SLAVE using TxE interrupt for master and RxNE interrupt for slave.
SPI_MASTER and SPI_SLAVE can be SPI1 and SPI2 or SPI3 and SPI2, depending on the
STMicroelectronics EVAL board you are using.
"