The OneWire bus controller needs to release the line in order to allow the host to pull down it during read time slots.
As per stated in datasheets: "The control line requires a weak pullup resistor since all devices are linked to the bus via a 3-state or open-drain port (the DQ pin in the case of the DS18B20)..."
Target:
ESP-32
Firmware image version:
1.4.0-Preview
Worked before? If so, with which nanoFramework image version:
Not checked
Description
This bug causes the master to held the line hi when the slaves tries to pull it to low level.
This causes abnormal reading values when two slave devices are connected
Detailed repro steps so we can see the same problem
Install two devices on OneWire bus. (tested using DS18B20)
Do FindFirst() - FindNext() device ID.
Make a loop to read temperature of one device.
Touch on the selected device, as the temperature rises it will show inconsistent values.
If an oscilocope is available, observe how the bus behave.
...
Expected behaviour
The OneWire bus should be able to handle more than one device.
Screenshot
Waveform showing the Master "fighting" with the slave trying to put zero level on the bus.
Details about Problem
The OneWire bus controller needs to release the line in order to allow the host to pull down it during read time slots.
As per stated in datasheets: "The control line requires a weak pullup resistor since all devices are linked to the bus via a 3-state or open-drain port (the DQ pin in the case of the DS18B20)..."
Target: ESP-32 Firmware image version: 1.4.0-Preview Worked before? If so, with which nanoFramework image version: Not checked
Description
This bug causes the master to held the line hi when the slaves tries to pull it to low level. This causes abnormal reading values when two slave devices are connected
Detailed repro steps so we can see the same problem
Install two devices on OneWire bus. (tested using DS18B20)
Do FindFirst() - FindNext() device ID.
Make a loop to read temperature of one device.
Touch on the selected device, as the temperature rises it will show inconsistent values.
If an oscilocope is available, observe how the bus behave.
...
Expected behaviour
The OneWire bus should be able to handle more than one device.
Screenshot
Waveform showing the Master "fighting" with the slave trying to put zero level on the bus.
Additional context