DavidAntliff/esp32-ds18b20

RMT does not set output level high during conversion

nunojpg opened this issue · 3 comments

Hi!

I'm using one parasistic power sensor, without strong pull up, with a pull-up resistor of 4.7k to 3.3.

In GPIO mode it works fine and I see during the conversion a voltage of about 3.2V.

In RMT mode the voltage does down to 2V, so it means only the pull-up resistor is giving current, and not the I/O GPIO.

I didn't debug yet, I guess you might know why RMT is not staying High during conversion.

Also I'm using IDF 5.1-rc1 and I get this warning:

esp-idf/components/driver/deprecated/driver/rmt.h:18:2: warning: #warning "The legacy RMT driver is deprecated, please use driver/rmt_tx.h and/or driver/rmt_rx.h" [-Wcpp]

I've observed same behaviour. I can't drive 2 or more parasitic sensors. Usually I get a reading of "127" centigrade.

Basically RMT requires the GPIO to be set to Open-drain, so it does not support conversion current.
I've hacked around it by changing the pin to active pull after starting the conversion and then changing it back to RMT.
The ESP-IDF RMT API does not support it, we need to hack into the GPIO/MUX settings.
I will try to share my code eventually.

Basically RMT requires the GPIO to be set to Open-drain, so it does not support conversion current. I've hacked around it by changing the pin to active pull after starting the conversion and then changing it back to RMT. The ESP-IDF RMT API does not support it, we need to hack into the GPIO/MUX settings. I will try to share my code eventually.

Have you had any success?