Hello, I stumbled upon a problem when reading a pin that is set as input/output with pulldown resistor enabled. When the pin is set to logical 0 then read works as expected. But when the pin is set to logical 1 then read is always one. Is this a normal behavior or is it a bug? I use ESP32-S3-WROOM1 MCU with ESP-IDF 5.2.1.
I found a workaround for this problem:
1. Set the output to logical 0.
2. Read the pin level.
3. Set the output to previous value.
I would expect that this should be done in ESP IDF itself because correct read value is valid only if output of input/output pin is set to logical 0.
I hope I address this correctly because I'm not sure if this is a hardware or software issue or it's just a normal behavior.
Read from a pin set as input/output is high
-
- Posts: 1724
- Joined: Mon Oct 17, 2022 7:38 pm
- Location: Europe, Germany
Re: Read from a pin set as input/output is high
Yes, this is normal behavior.
Pull-up and pull-down resistors only have an effect when a pin in either input-only or open drain outputting a logical 1.
Only in open drain output mode (with pull-up resistor) can you expect to read an input value different from the value you output.
Pull-up and pull-down resistors only have an effect when a pin in either input-only or open drain outputting a logical 1.
Only in open drain output mode (with pull-up resistor) can you expect to read an input value different from the value you output.
Who is online
Users browsing this forum: No registered users and 130 guests