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. .
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));
with:
SPI.beginTransaction(SPISettings(12000000, MSBFIRST, SPI_MODE0));
and tried other speeds. But it always resulted in a black screen on my display.