I’m just getting started with RIOT-OS and picked up an ESP32-WROOM-32 board. I had a DS18b20 so I thought that would be a good first project. No such luck!
I’ve been playing around with this for a few days and have come to the conclusion that there is just a lot of latency when doing gpio_init() to switch from GPIO_OD to GPIO_IN. So much, in fact, that there is no way to write a “1” to the bus successfully.
In ds18_write_bit(), to write a 1, ds18_low() (open drain, pull low) is called, immediately followed by ds18_release() (set GPIO to input). This takes about 40us according to my oscilloscope. This needs to happen in 10us-15us.
Am I missing anything? I’ve followed through the gpio_init() calls and then end up in the ESP32 SDK.