Skip to main content
Skfir
Associate III
July 6, 2023
Question

An SPI problem on NUCLEO-U575

  • July 6, 2023
  • 1 reply
  • 1416 views

Hello everybody!

Running into a weird problem with SPI. A super simple code, which runs once a second and sends a 16-bit number over SPI. If I leave the TSIZE field in CR2 at zero - everything is okay. However, if I write any number in the TSIZE, then SPI outputs data only once - the first time, after that nothing goes out - the logic analyzer doesn't get any output. Any idea? Again, if I don't write the TSIZE, then everything runs okay. 

Here is the code:

 

 

SPI1->CR1 &= ~(SPI_CR1_SPE); //SPI must be disabled before writing into CR2 
SPI1->CR2 = 0;
SPI1->CR2 = 1;

SPI1->CR1 |= SPI_CR1_SPE; //Enable SPI
SPI1->TXDR = 0x5555;
SPI1->CR1 |= SPI_CR1_CSTART; //Start SPI transmission.
//The first time 0x5555 goes out just fine, but when the function is called again, nothing goes out
//If the two lines, writing into the CR2 register are removed - then everything is fine
}

 

This topic has been closed for replies.

1 reply

TDK
July 6, 2023

When TSIZE is reached, transmission stops until you clear the EOT flag and re-start it. Additional info in the reference manual.

 

"If you feel a post has answered your question, please click ""Accept as Solution""."