SPI clockt 16 bit im trotz data size 8 bit

Gast #4559256
Lesenswert?

Servus,

auf meinem STM32F303 initialisiere ich die SPI-Schnittstelle so:
1
    //Configure SPI (but without enabling it)
2
    SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
3
    SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
4
    SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
5
    SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
6
    SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
7
    SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
8
    //PCLK2/32 = 72MHz/32 = 2.25MHz
9
    SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_16;/* SPI_BaudRatePrescaler_32;*/
10
    SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
11
    SPI_InitStructure.SPI_CRCPolynomial = 7;
12
    SPI_Init(SPI2, &SPI_InitStructure);
13

14
    //Enable SPI
15
    SPI_Cmd(SPI2, ENABLE);

Auf das
1
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
 kommt's mir an:

Wenn ich nämlich ein Byte abschicke, werden 16 bit auf SCL getaktet, 
nicht nur 8. Die "extra" 8 bit sind dann alle 0. Jedenfalls auf MOSI. 
Wenn Daten über MISO kommen, sieht es so aus, als ob 16 bit ankämen...

Siehe auch Screenshot: oben clock,darunter MOSI, MISO und CS.

Irgendwas ist doch da bei der Initialisierung falsch, oder? Ich würde 
nur 8 clocks für 8 bit erwarten...

Kann mir da bitte jemand auf die Sprünge helfen?
Angehängte Dateien:
Gast #4559266
Lesenswert?

Markus Grunwald schrieb:
> Wenn ich nämlich ein Byte abschicke, werden 16 bit auf SCL getaktet,
> nicht nur 8. Die "extra" 8 bit sind dann alle 0. Jedenfalls auf MOSI.
> Wenn Daten über MISO kommen, sieht es so aus, als ob 16 bit ankämen...
>
> Siehe auch Screenshot: oben clock,darunter MOSI, MISO und CS.

Aha, alles unklar, besonders SCL und das Byte.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren