Go Down

Topic: OneWire long bus troubleshooting (Read 182 times) previous topic - next topic


Aug 22, 2019, 02:44 pm Last Edit: Aug 22, 2019, 02:46 pm by asl07 Reason: Forgot something

I am using one OneWire DS18B20 temperature sensor on a OneWire bus of about 120m.

It works properly with a bus around 40m length, however it doesn't work when in increase it to 120m

Checking the captures on the scope I can see that the master is sending the message correctly but when the slave answers, it seems the slave is not able to properly pull the bus low

See attached waveform

And this is the waveform decoded using a logic analyzer:

Time , Analyzer Name, Decoded Protocol Result
5.154228250000000,1-Wire,RESET condition
5.154758750000000,1-Wire,PRESENCE condition
5.155191750000000,1-Wire,MATCH ROM command:
5.155734000000000,1-Wire,FAMILY CODE section from ROM: [(]
5.156302000000000,1-Wire,ROM CODE section from ROM: ['2295666093310']
5.159632750000000,1-Wire,CRC section from ROM: [h]
5.160184750000000,1-Wire,DATA: ['190']

Did anyone find any similar issues?


Yeah, it's simply not designed for that. I would say that with 40m you're already an order of magnitude over the designed length... Bus/wire capacitance is playing a BIG role with a length like that. I would say you need to reconsider the approach. For example, place another (small) micro controller on the other end and send the data via RS485.
Use fricking code tags!!!!
I want x => I would like x, I need help => I would like help, Need fast => Go and pay someone to do the job...

NEW Library to make fading leds a piece of cake


Damn good read here..


Go Up