Skip to content

hardware SPI is slower than software SPI by maybe a factor of 3 #149

Closed
@marcmerlin

Description

@marcmerlin

I've used this
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);
and with the same exact code, it's about 3 times slower (probably 2Mhz at most) than using the software SPI emulation in that library by having it talk to the pins by itself.
Sadly my project uses multiple SPI devices and if I use software SPI for the tft lib, the other hardware SPI only drivers will not work.
@projectgus mentioned to me that there is an inefficiency issue between how the arduino libraries work for hw SPI and how ESP32 expects bigger buffers and takes more time to set things up for a single byte transmit, causing hw SPI to be slower than software emulation if bytes are sent one by one.

Is there a possible fix for this performance issue?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions