Am 19.10.2015 um 22:28 schrieb Loren Amelang: > > [...] > reading with just over 1000 Ohms as a pullup, maintaining the 1-Wire > bus voltage at just under 3.0 V during conversion. The other DS18B20 > requires a pullup below 600 Ohms and a bus voltage above 3.1 V to > reach accuracy - but with sufficient conversion power it converges to > the correct reading. > To me, the conclusion is the "strong pullup" inside your host isn't working. During temperature conversion, the weak pullups outside are simply bridged to +5V (or +3.3V, respectively) by the push transistor of the GPIO output. So their value is irrelevant if the strong pullup is functioning as required.
Chances are you have damaged that GPIO output pin by accidentally shortening it to ground. Or the w1 part of your board definition file errorneously doesn't support push-pull on that GPIO but only open drain. > > Both sensors are happy to report temperature values with bus voltage > as low as 2.0 V during conversion, but those values may be up to ten > degrees C too high. The impression I'd received from various web > sources was that the DS18B20 is a digital device, and if it reports a > temperature value at all, that value is precisely accurate. Clearly > that is not true! > The minimum supply voltage for the DS18B20 is 3.0V. The required supply current during conversion is up to 1.5mA. If you cannot meet these conditions due to your outer circuit, you are operating the device outside the specs and anything can happen. Operate a TTL 74xx outside a supply voltage window of 4,75 .. 5.25V and *anything* can happen. > [...] > smooths out the current load of the conversion. Still, with a 3.3 V > supply and parasitic power, my conclusion is that it is on the edge > of impossible to reliably reach the specified conditions without an > active pullup. > That is why all the specs say for parasitic power temperature conversions you need the strong pullup. > > An interesting note I found during my research: > <https://www.maximintegrated.com/en/support/faqs/ds18b20.html> ----- > Where physically on the device does the temperature measurement take > place? The DS18B20 does not sense temperature directly through the > package. For all package types, the DS18B20 senses temperature > primarily through the GND pin. Ensuring a good thermal connection > between the GND pin of the device and the heat source you wish to > measure will provide the best results. ----- > I expected it to be the 1W pin, because it's the middle pin of the TO-92 package. But thinking about it again, the usual bipolar transistor pin arrangement for TO-92 is CBE, and the collector is always connected to the chip bulk in bipolar transistors. So Pin 1 is connected to the chip bulk and Pin 2 and Pin 3 are bonded with wires. Given that Pin 1 is GND on the TO-92 packaged DS18B20, it's fully reasonable that one is connected to the chip bulk and because of that, affecting temperature measurements. > > Buffer strength appears to be 6 mA except for these GPIO pins which > are 4mA: gpio0_7,12,13,14,15,18,19,20 gpio1_8,9,10,11 gpio3_5,6,13 > All ok for the strong pullup. > The internal pullups (if they are enabled)... > <https://e2e.ti.com/support/arm/sitara_arm/f/791/t/253870> ----- It's > in the datasheet, but you won't find it as resistance. You will find > it in Table 3-11 as either "Input leakage current, Receiver disabled, > pullup enabled" or "Input leakage current, Receiver disabled, > pulldown enabled". 100µA for lets say the VDDSHVx @ 3.3 V is > equivalent to a 33k PU. ----- For the 6mA pins, Input leakage > current, Receiver disabled, pullup enabled: [min] 243 [typ] 100 > [max] 19 µA, so 3.3/0.0001 = 33000, but 3.3/0.000243 = 13580, > and 3.3/0.000019 = 173684 > These are quite useless for parasite powering. > --> So assuming we are pulling from 3.30 V, using pin 8_11 = GPIO1_13 > which has a 6 mA buffer, and the VOL Low-level output voltage, driver > enabled, IOL = 6 mA, is 0.45 V, the lowest safe pullup value is: > (3.30-0.45)/0.006 = 475 Ohms. If the internal pullup worst case was > enabled, it would limit our external pullup to 492 Ohms. > NO! The sink current of a single DS18B20 may be as low as 4mA, so the lowest safest pullup operates at 4mA, not 6mA. Kind regards Jan ------------------------------------------------------------------------------ _______________________________________________ Owfs-developers mailing list Owfs-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/owfs-developers