Hallo zusammen, ich habe ein kleines Problem mit SPI beim STM32H7 (als Master). Wie im Bild zu sehen scheint der letzte Clock-cycle irgendwie abgeschnitten, als würde der STM sofort beim Erreichen der letzten steigenden Flanke den Pin hochohmig schalten. Die untere Spur ist Clock, die obere MOSI. Ist das so normal? Die Gegenseite bekommt das letzte Bit jedenfalls nicht mit. Initialisiert wird die Schnittstelle mit
1 | hspi2.Instance = SPI2; |
2 | hspi2.Init.Mode = SPI_MODE_MASTER; |
3 | hspi2.Init.Direction = SPI_DIRECTION_2LINES; |
4 | hspi2.Init.DataSize = SPI_DATASIZE_32BIT; |
5 | hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; |
6 | hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; |
7 | hspi2.Init.NSS = SPI_NSS_SOFT; |
8 | hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_256; |
9 | hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; |
10 | hspi2.Init.TIMode = SPI_TIMODE_DISABLE; |
11 | hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; |
12 | hspi2.Init.CRCPolynomial = 0x0; |
13 | hspi2.Init.NSSPMode = SPI_NSS_PULSE_DISABLE; |
14 | hspi2.Init.NSSPolarity = SPI_NSS_POLARITY_LOW; |
15 | hspi2.Init.FifoThreshold = SPI_FIFO_THRESHOLD_01DATA; |
16 | hspi2.Init.TxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN; |
17 | hspi2.Init.RxCRCInitializationPattern = SPI_CRC_INITIALIZATION_ALL_ZERO_PATTERN; |
18 | hspi2.Init.MasterSSIdleness = SPI_MASTER_SS_IDLENESS_06CYCLE; |
19 | hspi2.Init.MasterInterDataIdleness = SPI_MASTER_INTERDATA_IDLENESS_06CYCLE; |
20 | hspi2.Init.MasterReceiverAutoSusp = SPI_MASTER_RX_AUTOSUSP_DISABLE; |
21 | hspi2.Init.MasterKeepIOState = SPI_MASTER_KEEP_IO_STATE_DISABLE; |
22 | hspi2.Init.IOSwap = SPI_IO_SWAP_DISABLE; |