Page 1 of 1

ESP32-S2 GPIO voltage level shifting

Posted: Tue Jun 27, 2023 3:42 pm
by Shashi
Hello,
I am planning to use the ESP32-S2 chip to design a wearable health monitoring prototype. We have a customized CMOS-based ASIC chip that operates with 1V logic, and I want to connect it with the ESP32-S2. I will be using approximately 25 GPIO pins of the ESP32 for output to connect with the ASIC chip. The ESP32-S2 GPIO outputs 3.3V for logic 1, whereas our ASIC works with 1V. I am wondering if there is any way to make the ESP32 output logic 1 1V instead of 3.3V.
I am aware of level shifter circuits such as the External Voltage Divider or Transistor-based Voltage Shifting, which can convert 3.3V to 1V or similar externally, but these options add complexity to our design and make it bulky, which is not suitable for wearables. Is there any way to make the ESP32 output 1V for logic 1 by making some adjustments internally or using some code?
Thank you.

Re: ESP32-S2 GPIO voltage level shifting

Posted: Wed Jun 28, 2023 2:02 am
by ESP_Sprite
No, sorry, there's no way to do that. You could possibly get a few pins that run at 1.8V by doing some hackery with the pins in the Vcc_sio domain (but note that means moving the flash to custom pins, which you can only do using external flash), but that's way less than 25 IOs and still not at the 1V you need.

For pins that are slow-ish inputs to the ASIC, one low-component hack I could think of would be to make your GPIOs open-drain and use external pull-ups to 1V, but the other way around (and higher-speed signals) probably need more elaborate logic.