Reaction score: 9,135
Reaction score: 210
owc0: <FDT GPIO attached one-wire bus> at pin 15 on gpiobus3 ow0: <1 Wire Bus> on owc0 ow_temp0: <Advanced One Wire Temperature> romid 28:ee:ba:09:2f:16:02:74 on ow0 ow_temp1: <Advanced One Wire Temperature> romid 28:ff:4e:51:70:16:05:c2 on ow0 ow_temp2: <Advanced One Wire Temperature> romid 28:ff:61:b3:70:16:04:45 on ow0 owc1: <FDT GPIO attached one-wire bus> at pin 14 on gpiobus3 ow1: <1 Wire Bus> on owc1 ow_temp3: <Advanced One Wire Temperature> romid 28:ff:a8:08:70:16:04:91 on ow1 gpioc3: <GPIO controller> on gpio3
If you are using parasite power mode make sure you have also strong pull-up (in addition to weak pull-up via 4.7k resistor). Otherwise even 2 sensors on the bus will drain too much current for weak pull-up while in conversion mode (can be even 1.5mA each so then voltage drop across 4.7k resistor will not leave enough voltage for sensor to operate, minimum is 3V). Hence you may be observing errors.https://en.wikipedia.org/wiki/1-Wire
So each onewire pin needs a separate set of power connectors.
Using 2 onewire pins with one set of power leads for powering the sensors caused the onewire bus errors.
The onewire temp sensors I use have 4K7 resistors on each board.
There is a software mode to turn off parasitic power in the device tree overlay.
I will try that to see if I can isolate the two buses. With parasitic power on and a common power source I can now see trouble.
Here on page 7 you have correct wiring in case of parasite power (how to connect MOS) and for external power.However, when the DS18B20 is performing temperature conversions or copying data from the scratchpad memory to EEPROM, the operating current can be as high as 1.5mA. This current can cause an unacceptable voltage drop across the weak 1-Wire pullup resistor and is more current than can be supplied by Cpp. To assure that the DS18B20 has sufficient supply current, it is necessary to provide a strong pullup on the 1-Wire bus whenever temperature conversions are taking place or data is being copied from the scratchpad to EEPROM. This can be accomplished by using a MOSFET to pull the bus directly to the rail as shown in Figure 6. The 1-Wire bus must be switched to the strong pullup within 10μs (max) after a Convert T [44h] or Copy Scratchpad [48h] command is issued, and the bus must be held high by the pullup for the duration of the conversion (tCONV) or data transfer (tWR = 10ms). No other activity can take place on the 1-Wire bus while the pullup is enabled.