@newbrain - I'm curious if you had to do anything special to get the SPI clock to run at 45MHz? If I go above the specified 15.15MHz (66ns as in the spec for DBI Type-C WRX_SLC) the output on the screen is corrupted. I'm driving it from an ESP32-S3, but not sure if that matters...
How do you have this hooked up? Can you share a photo of the setup or layout if it's on a PCB?
Signal integrity is overrated.
(joking, of course, but read below!)
I'm honestly too ashamed to post a picture - it's the perfect example of how not to do these things
My setup is just a bunch of 20 cm Dupont wires from the Arduino like connector of an iMX RT1021 evaluation board to
this display.
The display board has some mods (to use I2C on the touch screen controller instead of SPI), and I'm never reading back from the display (max SPI clock frequency is lower when reading for that controller, IIRC).
Apart from that, nothing special, so the worst possible setup you could imagine, also taking into account that the 1021 lpspi peripheral needed to be overclocked to get to 45 MHz.
A friend of mine has a slightly better setup (it's an SDR receiver project we share), he soldered some IDC cable.
I need to dismantle the thing to carry it with me when I go back and forth with Italy, so never bothered doing a better job.
I raised the SPI frequency until artefacts started appearing, then backed off a bit - that's it.
The SW is extremely stable (FreeRTOS+CMSIS DSP based), and we never observed any glitches on the display - it has been left running for days on end - the display is updated every 100 ms with a 426×128 FFT and waterfall (plus as needed for other fields).
Funny as it might seem, I'm instead having 100 kHz I2C signal integrity problems (adding the touch screen controller was the straw that broke the camel's back - Audio codec, RTC, Si5351, 24C16 EEPROM - all flying Duponts, too).