Re: NCT6106D: strange VIN max behaviour (nct6775)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 14, 2013 at 04:36:46PM +0100, Björn Gerhart wrote:
> Hi,
> 
> I'm about to test the new NCT6106D part of the Nuvoton nct6775 driver.
> However, I experience a strange behaviour concerning the maximum
> thresholds of in1 (wiring: +5V at chip's VIN0, 15/10 resistor ratio) and
> in4 (wiring: +12V at chip's VIN1, 110/22 ratio). The behaviour is as
> follows:

Those scaling factors don't really work. VIN0 and VIN1 have a maximum
input range of 2.048V. With your scaling factors you don't really get
to the limits you are trying to set. Maximum for 5V is 2.048 * 2.5 = 5.12V,
and maximum for 12V is 2.048*6 = 12.228V. So, in practice, what you see
is that the ADCs for both inputs are maxed out, which also explains
why you can not set the maximum higher than the actual voltage.

If this is a third-party board, you may be out of luck. If this is your
own board, you might want to select different resistor ratios.
Something like 20/10 and 150/22 should work better, for example.

Hope this helps,
Guenter

> - the current value always looks good
> - the minimum threshold value always looks good
> - the maximum threshold value _only_ looks good, when it is configured
> _lower_ than the current value (which doesn't make any sense anyway, but
> I checked it just for error analysis)
> - but once the maximum threshold value is configured higher than the
> current value (which it normally is), then the read maximum value is
> exactly the same as the current value
> 
> Please see at the end of this mail for the sensors command output and
> the related sensors.conf.
> 
> When I analysed the nct6775.c source code, I noticed that the voltage
> registers are programmed as "u16" registers. In the NCT6102D/NCT6106D
> spec (see [1], page 111 and following), the tables say that the
> registers are 8bit only. May this be the reason for the strange
> behaviour? Or is it a bad typo Nuvoton made in the spec?
> 
> However, the register _adresses_ in the source code for the current
> value and the min and max thresholds seem to apply with the ones
> specified in the spec.
> 
> Björn
> 
> [1]
> https://download.nuvoton.com/NuvotonMOSS/DownloadService/Member/DocumentsInfo.aspx?tp_GUID=DA00-NCT6106D
> 
> My sensors output:
> [root@allinone-wnlpos ~]# LANG=C sensors
> nct6106-isa-0290
> Adapter: ISA adapter
> CPUVCORE:    +1.74 V  (min =  +1.00 V, max =  +2.00 V)
> +5V:         +5.10 V  (min =  +4.50 V, max =  +5.10 V)   ALARM
> +12V:       +12.24 V  (min = +10.70 V, max = +12.24 V)   ALARM
> VBat:        +3.17 V  (min =  +3.01 V, max =  +4.00 V)
> CPU:        2830 RPM  (min =  300 RPM)
> SYSTEM:      +32.0 C  (high = +100.0 C, hyst = +75.0 C)
>                       (crit = +127.0 C)                  sensor =
> thermal diode
> PCH:         +43.0 C  (high = +80.0 C, hyst = +75.0 C)
>                       (crit = +127.0 C)                  sensor =
> thermal diode
> CPU:         +37.0 C  (high = +80.0 C, hyst = +75.0 C)
>                       (crit = +127.0 C)
> 
> 
> My file /etc/sensors3.conf:
> --------%<-------- snip
> chip "nct6106-isa-0290"
> 
> #==================================================
> # Voltage inputs
> #==================================================
> 
>     # CPUVCORE
>     label in0 "CPUVCORE"
>     compute in0  @, @
>     set in0_min  1
>     set in0_max  2
> 
>     # +5V (ok) (chip: VIN0)
>     label in1 "+5V"
>     compute in1 ((15/10) +1)*@, @/((15/10) +1)
>     set in1_min  4.5
>     set in1_max  5.5
> 
>     # +12V (ok) (chip: VIN1)
>     label in4 "+12V"
>     compute in4 ((110/22) +1)*@, @/((110/22) +1)
>     set in4_min  10.7
>     set in4_max  13.7
> 
>     # VBat
>     label in7 "VBat"
>     set in7_min  3.0
>     set in7_max  4.0
> 
>     ignore  in2
>     ignore  in3
>     ignore  in5
>     ignore  in6
>     ignore  in8
> #    ignore  vid
> 
> 
> 
> #==================================================
> # Temperature inputs
> #==================================================
>     label temp1 "SYSTEM"
>     set temp1_max 100
>     set temp1_max_hyst 75
> 
>     label temp3 "PCH"
> 
>     label temp7 "CPU"
> 
>     ignore temp8
>     ignore temp9
>     ignore temp10
> 
>     ignore beep_enable
> 
> 
> #==================================================
> # Fan inputs
> #==================================================
>     # CPU Fan
>     label fan2 "CPU"
>     set fan2_min  300
> 
>     ignore fan1
>     ignore fan3
> -------->%-------- snap
> 

_______________________________________________
lm-sensors mailing list
lm-sensors@xxxxxxxxxxxxxx
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors





[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux