View Single Post
Old 08-08-17, 09:10 AM   #18
jeff5may
Supreme EcoRenovator
 
Join Date: Jan 2010
Location: elizabethtown, ky, USA
Posts: 2,428
Thanks: 431
Thanked 619 Times in 517 Posts
Send a message via Yahoo to jeff5may
Default

You will still need a pull-up resistor on the data line, only one, somewhere near the data logger, no matter what mode you run the sensors in. The more sensors you string up, the more load they will put on the data line. If the sensors are given "external" power (by running a dedicated power wire), the single 4.7k resistor is sufficient to maintain operation. This is because the sensors don't suck significant current from the data line. The sensors use an "open drain" type of transmit circuit, which relies on the data line to be in a logic "high" state when it is inactive. When the sensors are transmitting a logic "low" state, they present a ~100 ohm load on the data line to draw it below ~0.5 volts. The controller, well, it has whatever it has in it to pull the line low.

Parasite power mode is where you can run into problems. When running multiple sensors on a single wire to both supply power to the devices and read data, the "master control device" must be smart. The pullup resistor must still be there, at the controller, to provide "weak" pullup for data integrity. When power is first applied, all of the sensors initialize after receiving sufficient power from the data line. They take next to no power (microwatts) to start up. They are slaves, so they just sit there and "listen" for commands from the controller. The master issues commands by pulling the data line low to tell the sensors what to do. It then switches to "receive" mode.

In this state, the controller "listens" to the data line, and the sensors "talk" by pulling the data line to ground. Again, the "weak" pullup resistor is sufficient to maintain operation. The sensors draw very little power from the data wire, and everything works.

During certain operations (mainly when the sensors are told to read temperature and save the value internally), the sensors draw much more power doing their jobs. They go from drawing microwatts to milliwatts while they are active. If more than a few sensors are sucking power from the data line, the pullup resistor cannot pass sufficient current to feed them all at once. The sensors that are starved of power then drop out and restart once the data line goes back above 3 volts or so. They don't finish their jobs, and when queried for results will lie to the controller.

There are ways around this situation from occurring, and the protocol specifies a "strong" pullup transistor to be installed that shorts the data line to the power supply during high-drain operations. In certain configurations, a smaller resistance value can be substituted for the 4.7k pullup resistor. This resistor must fall between the range where it can still drop enough voltage for the data line to be seen as a "low" logic state when individual devices pull it low, and where it passes enough current to keep the data line above 3 volts or so when the sensors are doing their jobs.

With your application of 20 sensors on one line, no value of pullup resistor can provide that "fudge" factor running in parasite power mode. If all 20 sensors are told to read temperature at the same time, the combined load is too great. If a small enough resistance is substituted to keep all of the sensors alive while they are working hard, that value is too small to drop enough voltage when the individual devices try to pull the line low to talk on the line. In your application, a "strong" pullup transistor must be used, as well as a "weak" pullup resistor, to ensure reliable operation. Otherwise, the sensors (and/or controller) can burn out trying to transmit data.

Let it be known that that the manufacturer specs both components, strong pullup transistor and weak pullup resistor, regardless of whether the sensors are running in parasite power mode or not. Doing so removes all speculation on their behalf as to what will work in custom made interfaces.

Last edited by jeff5may; 08-08-17 at 12:35 PM..
jeff5may is offline   Reply With Quote
The Following User Says Thank You to jeff5may For This Useful Post:
Geo NR Gee (08-08-17)