The problem here is that
1-wire uses a
parasitic supply from the data line. This means there is a
fanout limit, or max number of devices on the bus that is determined by the total current draw of your devices and proportional the pull-up resistor and the supply voltage.
In this case, your system has a maximum fanout of 7 devices (calculated below), and you are powering 9, the best solution is to decrease the value of the pull-up resistor to say,
Additionally, it is prefered with 1-wire to use a daisy chain and not long parallel wires. Using 3m cables to distant sensors adds significant capacitance to the line. To compensate this, a smaller pull-up resistor can be used as well.
How to calculate the fanout of 1-wire bus
Each device, during phantom power phase, will draw a maximum of 15uA. Therefore for our estimates, the total current draw is the number of devices times
The the maximum fanout is when the total current reduces the supply voltage to
<2.8V through our Pull-Up resistor.
If we take your 3.3V supply with 4.7K, we can calculate
Which means 9 devices is beyond the fan-out limit of the bus in your configuration.
The best option here is to reduce the value of the P-U resistor to
1k in order to achieve a limit of 30 devices on the 1-wire bus. This will increase the consumption of the 1-wire bus from
~5ma, not very significant in powered applications.
When running sensors on long parallel cables, then there is additional capacitance on the line, this will reduce the maximum speed of communication determined by the
slew rate . In the worst case If you have
10nF for parasitic supply storage, and say 10nF more with 9 parallel cables at 3m each (using
~100pf/ft), with 4.7K, we calculate
T=1/R*C=100uS, which means that the maximum rate of communication on a bus is 5KHZ or less. .
This is the worst case, so you may get away with faster rates, but you will have intermittent connection occasionally.