SPI Timeout waiting for transfer complete

Hi everyone,

I am evaluating the nRF54L15DK. Currently I'm trying to get SPI to work. For testing, I got an OLED Module with 4-wire SPI and an SSD1351 driver.

I wrote a small program to test SPI communication. The program fills the whole RAM of the OLED with one color and switches between different colors every few seconds. I will attach the project to this thread.

The problem I'm facing is twofold:

  1. When running the program as attached, the OLED display is updated correctly but via UART I receive multiple error messages saying <err> spi_nrfx_spim: Timeout waiting for transfer complete with each display update routine.
  2. In this "working" instance I have set CONFIG_LOG_MODE_IMMEDIATE=y
    If I comment out this line, no logs are ever received and transfer of the SPI buffer ends after a few bytes (~100). This is seen by the OLED only changing the first few pixels on the first line.

What is the proper way to make logging possible while not receiving the timeout errors from SPI?

Other forum entries suggest that the GPIOs I am using for SPI are already used by something else, but I think I disabled the relevant peripherals with:

&uart30 {
	status = "disabled";
};

Thank you and BR,

Moritz

SPI_timeout.7z

Related