STM32F767 SPI slave weird behaviour
Dear community,
I am facing a weird problem on using the SPI after migrating my codes from STM32F407 to STM32F767.
The SPI is configured as slave and interfaces with another STM32F406 MCU as master. The data received by the slave is sometimes shifted by one or two bytes. I am using the CMSIS middleware API. The same source code, when compile for another STM32F406 (which is my original target) runs without problem. I noticed that the Data Register of the SPI (SPIx_DR) is sometimes filled upto the 2nd byte even though Datasize (CR2 DR[0:3]) is set to 8-bit, and MSIZE and PSIZE in DMA are both 0 (BYTE). Comparing with the STM32F4 master the data register is consistently only using the lower 8 bits
I do not have the D_CACHE enabled so I have compiled the CMSIS driver with SPI_DCACHE=0. It has the CRC calculation enabled and it did not report any data corruption on both sides.
The master is able to receive the data correctly.
