AnsweredAssumed Answered

Problems with SPI status flag "Rx buffer not empty" at SPI Baudrateprescaler 2

Question asked by Andreas Fischer on Jan 4, 2017
Latest reply on Jan 5, 2017 by waclawek.jan

I have a Nucleo-F446RE Eval Board with a STM32F446 RET6U. I use the SPI2 peripheral. When I switched from baudrate prescaler 4 to 2 I get problems with the SPI status flag "Rx buffer not empty": The last flag does not trigger at certain conditions. When a additional delay is generated in the write/read process of a SPI Byte, the flag triggers. Is it possible, that the "Tx buffer empty" and "Rx buffer not empty" flags can cause an access conflict at the flag register?

 

I added pictures to describe the situation more clearly:

The yellow line corresponds to the SPI CLK. The blue line corresponds to a "Rx buffer not empty" flag trigger action.

 

Picture 1:

Baudrate prescaler 4 is used. Bytes are written after "Tx buffer empty" flag triggers. All three "Rx buffer not empty" flags trigger.

 

Picture 2:

Baudrate prescaler 2 is used. Bytes are written after "Rx buffer not empty" flag triggers and data register has been read out. All three "Rx buffer not empty" flags trigger.

 

Picture 3:

Baudrate prescaler 2 is used. Bytes are written after "Tx buffer empty" flag triggers. Only the first and second "Rx buffer not empty" flags trigger.

 

Picture 4:

Baudrate prescaler 2 is used. Bytes are written after "Tx buffer empty" flag triggers. Now additional delays have been added. All three "Rx buffer not empty" flags trigger.

Attachments

Outcomes