For a project I would like to be able to control my RA8875 display driver as quick as possible using an Arduino due.

I started from the Adafruit library and replaces all "digitalWrites" with direct port manipulation.

Apart from that I wanted to also use that maximum possible SPIspeed. In the adafruit datasheet I didn't find any specification of the maximum SPIspeed of the controller. In an older datasheet I only found the max speed in relation to the system clock. But I have no idea what that is. enter image description here.

After googling, the max spi speed of the RA8875 seems to be 12Mhz (source).

So I decided to just try different SPIspeeds. Though I do found the library's Adafruit_RA8875.cpp file a bit confusing since it defines uint32_t spi_speed multiple times based on the architecture.

  • Once starting at line 48
  • Once starting at line 134
  • Once starting at line 164

And the chosen speeds for each architecture are not consistent between those 3 assignments.

I decided to replace line 66:

SPI.beginTransaction(SPISettings(spi_speed, MSBFIRST, SPI_MODE0));


SPI.beginTransaction(SPISettings(12000000, MSBFIRST, SPI_MODE0));

and tried other speeds. But it always resulted in a black screen on my display.

1 Answer 1


To speed up the RA8875, you should start with small clock frequency to initialize the RA8875 including the pll configuration and then you can make the clock frequency faster. It works with me.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.