Main Site Documentation

EMX : 1-Wire without external pullup?


In my case the question is about EMX module, but I guess it should be applicable to any other module/CPU :
I get a one-wire temperature sensor DS18B20 and it works great :
It is wired as shown below and here is the documentation :

static OutputPort pinTemperature = new OutputPort((Cpu.Pin)Pin.IO47, true);
static OneWire owTemperature = new OneWire(pinTemperature);

Question is : Is there possible to use one-wire sensors without this 4k7 external pullup resistor?
Maybe forcing by software the internal PullUp of EMX/LPC24XX on this pin? Unfortunately, I have no control of that with the MicroFramework built in one-wire class, even if I expect that the internal pull-up is enabled when the One-Wire constructor is called, but is a “weak” pullup made with poor transistors (as told in LPC24XX doc)

My problem is that I want add several of those one-wire sensors on my existing boards but on pins where there is no physically pullup wired on them. Since we have already buils ~100 boards and we don’t want to modify each of them ( i.e. add manually pullup on each)


That’s a datasheet question really. The requirement is spelled out in there, where it requires sufficient power to drive the conversion. You cant use a weak pull-up (from the processor internal pin pull-up ) so you really need to rethink what your boards have on them (not to mention that ds18b20 is also a superseded part)


No, you cannot :wall:

The EMX can pull-up with 100k, only.

If you need long cables (say 50 m) - you need 1k pull-ups

By, the way - it is a good sensor, I use it a lot for many things.
And you can get it in waterproof enclosures with cable for $5 on ebay.