Hi
I have a set of sensors operating between 4V - 6V, and I am using an ADS1115 16-Bit ADC to connect them to an ESP32. I have powered both the sensors and ADS1115 with 4V, and I have also powered the ESP32 through the VIN or 5V pin using 4V.
This means that SDA and SCL will transmit data from ADS1115 to ESP32 at 4V. However, I read that the ESP32’s GPIO should not exceed 3.3V, as higher voltages could potentially damage it over time.
What is the best solution?
Should I use a BSS138-based level shifter or TXS0108E?
If I use one of these level shifters, will it affect the accuracy of the sensor readings? The sensor data is highly precise and critical for my application.
Is there a more stable method to ensure the sensor data remains accurate?
If anyone has experience or suggestions regarding this issue, I would appreciate your input. Thank you!
Best Way to Interface ADS1115 (4V) with ESP32 (3.3V) via I²C?
Re: Best Way to Interface ADS1115 (4V) with ESP32 (3.3V) via I²C?
I2C is open-drain, that is, any attached device will only pull the lines to ground and never to Vcc. The 'high' voltage is set by pull-up restistors on the SCL and SDA (and INT, if you use that) lines; if you connect those to 3.3V, it should be compatible with the ESP32. Make sure that an ADS1115 running on 4V does see 3.3V as a logic high level, though.
Re: Best Way to Interface ADS1115 (4V) with ESP32 (3.3V) via I²C?
Yes, I was thinking about that and connecting the pull-up resistors to 3.3V to ensure compatibility with the ESP32 However I have another concern my sensors operate between 3.6V and 6.4V and it is recommended to power them with 4V or above meanwhile the ADS1115 is powered by 3.3V from the ESP32 could this cause damage to the ADC inputs of the ADS1115 since the input voltage might exceed the supply voltage? If so what is the best way to safely read the sensor data without affecting accuracy? Should I power the ADS1115 with 5V and use a level shifter for I2C?
Note: my sensors operate between 3.6V and 6.4V preferably 4V or above. The ADS1115 supports a power supply range of 2V to 5.5V while the ESP32 can be powered by either 5V (via a regulator) or 3.3V however ESP32's SDA and SCL should not exceed 3.3V
Note: my sensors operate between 3.6V and 6.4V preferably 4V or above. The ADS1115 supports a power supply range of 2V to 5.5V while the ESP32 can be powered by either 5V (via a regulator) or 3.3V however ESP32's SDA and SCL should not exceed 3.3V
Re: Best Way to Interface ADS1115 (4V) with ESP32 (3.3V) via I²C?
As I said, the high level of I2C is set only by the pullup resistor because all chips on the bus will only ever pull the lines low to GND, never up to their voltage supply. In other words: an ADS1115 powered by 5V will work fine on an I2C bus with 3.3V pullups and a master powered by 3.3V, *provided* an ADS1115 sees 3.3V on its I2C lines as a logic high when powered from 5V. So that would be one option you could take.Yes, I was thinking about that and connecting the pull-up resistors to 3.3V to ensure compatibility with the ESP32 However I have another concern my sensors operate between 3.6V and 6.4V and it is recommended to power them with 4V or above meanwhile the ADS1115 is powered by 3.3V from the ESP32 could this cause damage to the ADC inputs of the ADS1115 since the input voltage might exceed the supply voltage? If so what is the best way to safely read the sensor data without affecting accuracy? Should I power the ADS1115 with 5V and use a level shifter for I2C?
Note: my sensors operate between 3.6V and 6.4V preferably 4V or above. The ADS1115 supports a power supply range of 2V to 5.5V while the ESP32 can be powered by either 5V (via a regulator) or 3.3V however ESP32's SDA and SCL should not exceed 3.3V
The other option is to simply take the output of your sensors and use a resistive divider to divide it in range with what an ADS1115 powered by 3.3V can accept, and compensate for the resistive divider in software.
Who is online
Users browsing this forum: Google [Bot] and 1 guest
