I'm planning to connect an IT8951 to an ESP32 through SPI. The issue is that the ESP32 module that I'm using has an output of 1.8V and the IT8951 works with 3.3V SPI.

What kind of circuit should I use for boosting the voltage? Is a dedicated IC necessary?

Thanks in advance.

Edit 1: Removed wrong transfer speed, reformulated question

  • \$\begingroup\$ Can you expalin how this isn't a shopping request which is off topic for this site? \$\endgroup\$
    – Puffafish
    Jun 6, 2022 at 14:02
  • 2
    \$\begingroup\$ What you probably want is a "Level Translator", not a "Voltage Booster". \$\endgroup\$
    – brhans
    Jun 6, 2022 at 14:04
  • \$\begingroup\$ SPI can handle 24 MHz. I2C is 400 kbps. Which one do you mean? \$\endgroup\$
    – Justme
    Jun 6, 2022 at 14:05
  • \$\begingroup\$ As brhans says, you want a level translator. You'll probably also need to bring the votlage down for communication the other direction (as SPI is full duplex) \$\endgroup\$
    – Puffafish
    Jun 6, 2022 at 14:05
  • 1
    \$\begingroup\$ search this site, or use google, for "level translator". It's a simple circuit to make. \$\endgroup\$
    – Aaron
    Jun 6, 2022 at 14:36

1 Answer 1


You don't need a level shifter. Just use SPI2 or SPI3 (not SPI0/SPI1, which are normally used for the main flash memory) with appropriate GPIO pins. These pins are 3.3V logic.

enter image description here

ESP32 Technical Reference Manual p. 51

The green pins are the ones normally connected to the flash, which can run at 1.8V (VDD_SDIO) if the chip is strapped accordingly. This is the VDD_SDIO power domain. The blue and yellow pins are in the VDD3P3_CPU and VDD3P3_RTC power domains (both nominally 3.3V).


Your Answer

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

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