Re: [lm-sensors] Tachometer speed returned rather than absolute fan speed?

From: Laszlo Papp
Date: Mon Mar 10 2014 - 14:00:29 EST


On Mon, Mar 10, 2014 at 3:11 PM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
> On Mon, Mar 10, 2014 at 01:50:01PM +0000, Laszlo Papp wrote:
>> On Mon, Mar 10, 2014 at 1:26 PM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
>> > On 03/10/2014 02:59 AM, Laszlo Papp wrote:
>> >>>
>> >>> The reason is (most likely) that your fan input does not have a pull-up
>> >>> resistor. Per datasheet, the fan inputs need a 10kOhm pull-up resistor. I
>> >>> confirmed this with my test board - with the pull-up resistor, inputs read
>> >>> 0, Without pull-up, the reported value is 1, which translates to 30 RPM. You
>> >>> might also need the 10 uF capacitor on the FB pin.
>> >>
>> >>
>> >> We have both of them in place as per requirement for the chip as far
>> >> as I understand the datasheet. The circuit would not work properly
>> >> without it.
>> >>>
>> >>> sudo i2cdump -y -f 1 0x48
>> >>> No size specified (using byte-data access)
>> >>> 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
>> >>> 00: 00 00 0a 0a ff ff 00 00 00 00 00 00 01 01 00 00 ..??........??..
>> >>> 10: 01 01 01 01 1f 1f 02 02 91 91 91 91 91 91 91 91 ????????????????
>> >>> 20: 00 00 0a 0a ff ff 00 00 00 00 00 00 01 01 00 00 ..??........??..
>> >>
>> >>
>> >> /usr/sbin/i2cdump -y -f 1 0x48
>> >> No size specified (using byte-data access)
>> >> 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
>> >> 00: 00 00 3a 3a fc fc b4 b4 00 00 00 00 01 01 01 01 ..::????....????
>> >> 10: 09 09 01 01 1c 1c 02 02 91 91 91 91 91 91 91 91 ????????????????
>> >> 20: 00 00 3a 3a fc fc b4 b4 00 00 00 00 01 01 01 01 ..::????....????
>> >> 30: 09 09 01 01 1c 1c 02 02 91 91 91 91 91 91 91 91 ????????????????
>> >> 40: 00 00 3a 3a fc fc b4 b4 00 00 00 00 01 01 01 01 ..::????....????
>> >> 50: 08 08 01 01 1c 1c 02 02 91 91 91 91 91 91 91 91 ????????????????
>> >> 60: 00 00 3a 3a fc fc b4 b4 00 00 00 00 01 01 01 01 ..::????....????
>> >> 70: 08 08 01 01 1c 1c 02 02 91 91 91 91 91 91 91 91 ????????????????
>> >> 80: 00 00 3a 3a fc fc b4 b4 00 00 00 00 01 01 01 01 ..::????....????
>> >> 90: 08 08 01 01 1c 1c 02 02 91 91 91 91 91 91 91 91 ????????????????
>> >> a0: 00 00 3a 3a fc fc b4 b4 00 00 00 00 01 01 01 01 ..::????....????
>> >> b0: 08 08 01 01 1c 1c 02 02 91 91 91 91 91 91 91 91 ????????????????
>> >> c0: 00 00 3a 3a fc fc b4 b4 00 00 00 00 01 01 01 01 ..::????....????
>> >> d0: 08 08 01 01 1c 1c 02 02 91 91 91 91 91 91 91 91 ????????????????
>> >> e0: 00 00 3a 3a fc fc b4 b4 00 00 00 00 01 01 01 01 ..::????....????
>> >> f0: 08 08 01 01 1c 1c 02 02 91 91 91 91 91 91 91 91 ????????????????
>> >>
>> >>> groeck@desktop:~$ sensors max6651-i2c-1-48
>> >>> max6651-i2c-1-48
>> >>> Adapter: i2c-diolan-u2c at bus 003 device 002
>> >>> fan1: 30 RPM (div = 4)
>> >>> fan2: 0 RPM
>> >>> fan3: 30 RPM
>> >>> fan4: 30 RPM
>> >>
>> >>
>> >> sensors max6651-i2c-1-48
>> >> max6651-i2c-1-48
>> >> Adapter: DaVinci I2C adapter
>> >> fan1: 30 RPM (div = 4)
>> >> fan2: 30 RPM
>> >> fan3: 420 RPM
>> >> fan4: 30 RPM
>> >>
>> >>> Only fan2 (TACH1 chip input) has the resistor installed.
>> >>
>> >>
>> >> We have it both on fan1 and fan4.
>> >>
>> >> If I use our scope for checking the tachometer, I see level zero on
>> >> the scope, but 1 when checking the open collector level, since that is
>> >> the purpose of the pull-up resistor.
>> >>
>> > With the pull-up installed, you should always see a high voltage on the
>> > scope or with a volt meter. The scope would not see or be able to know
>> > that the pin is OC if the pull-up resistor is there.
>> >
>> > If it is truly OC, it would be floating and might show low. If you can,
>> > I would suggest to manually add a 10k resistor against VCC to the open
>> > connector and see what happens.
>> >
>> > Another way to find out for sure might be to disconnect power and
>> > measure resistance between the tachometer pin and VCC.
>>
>> Perhaps I was not clear. So, we do have both the resistors and
>> capacitor as required. I double checked the schematics as well as the
>> pins coming from the fan and that was zero. The tacho0 input, however,
>> was 1.
>>
>
> How can the pin coming from the fan be zero, and the tach0 input be 1
> at the same time ? Those should be the same ?

Nope, that is what the pull-up resistor is for. It will pull the level up to 1.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/