📄 w83781d
字号:
Answers from Winbond tech support--------------------------------->> 1) In the W83781D data sheet section 7.2 last paragraph, it talks about> reprogramming the R-T table if the Beta of the thermistor is not> 3435K. The R-T table is described briefly in section 8.20.> What formulas do I use to program a new R-T table for a given Beta?> We are sorry that the calculation for R-T table value isconfidential. If you have another Beta value of thermistor, we can helpto calculate the R-T table for you. But you should give us real R-TTable which can be gotten by thermistor vendor. Therefore we will calculatethem and obtain 32-byte data, and you can fill the 32-byte data to theregister in Bank0.CR51 of W83781D.> 2) In the W83782D data sheet, it mentions that pins 38, 39, and 40 are> programmable to be either thermistor or Pentium II diode inputs.> How do I program them for diode inputs? I can't find any register> to program these to be diode inputs. --> You may program Bank0 CR[5Dh] and CR[59h] registers. CR[5Dh] bit 1(VTIN1) bit 2(VTIN2) bit 3(VTIN3) thermistor 0 0 0 diode 1 1 1(error) CR[59h] bit 4(VTIN1) bit 2(VTIN2) bit 3(VTIN3)(right) CR[59h] bit 4(VTIN1) bit 5(VTIN2) bit 6(VTIN3) PII thermal diode 1 1 1 2N3904 diode 0 0 0Asus Clones-----------We have no datasheets for the Asus clones (AS99127F and ASB100 Bach).Here are some very useful information that were given to us by Alex VanKaam about how to detect these chips, and how to read their values. Healso gives advice for another Asus chipset, the Mozart-2 (which wedon't support yet). Thanks Alex!I reworded some parts and added personal comments.# Detection:AS99127F rev.1, AS99127F rev.2 and ASB100:- I2C address range: 0x29 - 0x2F- If register 0x58 holds 0x31 then we have an Asus (either ASB100 or AS99127F)- Which one depends on register 0x4F (manufacturer ID): 0x06 or 0x94: ASB100 0x12 or 0xC3: AS99127F rev.1 0x5C or 0xA3: AS99127F rev.2 Note that 0x5CA3 is Winbond's ID (WEC), which let us think Asus get their AS99127F rev.2 direct from Winbond. The other codes mean ATT and DVC, respectively. ATT could stand for Asustek something (although it would be very badly chosen IMHO), I don't know what DVC could stand for. Maybe these codes simply aren't meant to be decoded that way.Mozart-2:- I2C address: 0x77- If register 0x58 holds 0x56 or 0x10 then we have a Mozart-2- Of the Mozart there are 3 types: 0x58=0x56, 0x4E=0x94, 0x4F=0x36: Asus ASM58 Mozart-2 0x58=0x56, 0x4E=0x94, 0x4F=0x06: Asus AS2K129R Mozart-2 0x58=0x10, 0x4E=0x5C, 0x4F=0xA3: Asus ??? Mozart-2 You can handle all 3 the exact same way :)# Temperature sensors:ASB100:- sensor 1: register 0x27- sensor 2 & 3 are the 2 LM75's on the SMBus- sensor 4: register 0x17Remark: I noticed that on Intel boards sensor 2 is used for the CPU and 4 is ignored/stuck, on AMD boards sensor 4 is the CPU and sensor 2 is either ignored or a socket temperature.AS99127F (rev.1 and 2 alike):- sensor 1: register 0x27- sensor 2 & 3 are the 2 LM75's on the SMBusRemark: Register 0x5b is suspected to be temperature type selector. Bit 1 would control temp1, bit 3 temp2 and bit 5 temp3.Mozart-2:- sensor 1: register 0x27- sensor 2: register 0x13# Fan sensors:ASB100, AS99127F (rev.1 and 2 alike):- 3 fans, identical to the W83781DMozart-2:- 2 fans only, 1350000/RPM/div- fan 1: register 0x28, divisor on register 0xA1 (bits 4-5)- fan 2: register 0x29, divisor on register 0xA1 (bits 6-7)# Voltages:This is where there is a difference between AS99127F rev.1 and 2.Remark: The difference is similar to the difference between W83781D and W83782D.ASB100:in0=r(0x20)*0.016in1=r(0x21)*0.016in2=r(0x22)*0.016in3=r(0x23)*0.016*1.68in4=r(0x24)*0.016*3.8in5=r(0x25)*(-0.016)*3.97in6=r(0x26)*(-0.016)*1.666AS99127F rev.1:in0=r(0x20)*0.016in1=r(0x21)*0.016in2=r(0x22)*0.016in3=r(0x23)*0.016*1.68in4=r(0x24)*0.016*3.8in5=r(0x25)*(-0.016)*3.97in6=r(0x26)*(-0.016)*1.503AS99127F rev.2:in0=r(0x20)*0.016in1=r(0x21)*0.016in2=r(0x22)*0.016in3=r(0x23)*0.016*1.68in4=r(0x24)*0.016*3.8in5=(r(0x25)*0.016-3.6)*5.14+3.6in6=(r(0x26)*0.016-3.6)*3.14+3.6Mozart-2:in0=r(0x20)*0.016in1=255in2=r(0x22)*0.016in3=r(0x23)*0.016*1.68in4=r(0x24)*0.016*4in5=255in6=255# PWMAdditional info about PWM on the AS99127F (may apply to other Asuschips as well) by Jean Delvare as of 2004-04-09:AS99127F revision 2 seems to have two PWM registers at 0x59 and 0x5A,and a temperature sensor type selector at 0x5B (which basically meansthat they swapped registers 0x59 and 0x5B when you compare with Winbondchips).Revision 1 of the chip also has the temperature sensor type selector at0x5B, but PWM registers have no effect.We don't know exactly how the temperature sensor type selection works.Looks like bits 1-0 are for temp1, bits 3-2 for temp2 and bits 5-4 fortemp3, although it is possible that only the most significant bit matterseach time. So far, values other than 0 always broke the readings.PWM registers seem to be split in two parts: bit 7 is a mode selector,while the other bits seem to define a value or threshold.When bit 7 is clear, bits 6-0 seem to hold a threshold value. If the valueis below a given limit, the fan runs at low speed. If the value is abovethe limit, the fan runs at full speed. We have no clue as to what the limitrepresents. Note that there seem to be some inertia in this mode, speedchanges may need some time to trigger. Also, an hysteresis mechanism issuspected since walking through all the values increasingly and thendecreasingly led to slightly different limits.When bit 7 is set, bits 3-0 seem to hold a threshold value, while bits 6-4would not be significant. If the value is below a given limit, the fan runsat full speed, while if it is above the limit it runs at low speed (so thisis the contrary of the other mode, in a way). Here again, we don't knowwhat the limit is supposed to represent.One remarkable thing is that the fans would only have two or threedifferent speeds (transitional states left apart), not a whole range asyou usually get with PWM.As a conclusion, you can write 0x00 or 0x8F to the PWM registers to makefans run at low speed, and 0x7F or 0x80 to make them run at full speed.Please contact us if you can figure out how it is supposed to work. Aslong as we don't know more, the w83781d driver doesn't handle PWM onAS99127F chips at all.Additional info about PWM on the AS99127F rev.1 by Hector Martin:I've been fiddling around with the (in)famous 0x59 register andfound out the following values do work as a form of coarse pwm:0x80 - seems to turn fans off after some time(1-2 minutes)... might besome form of auto-fan-control based on temp? hmm (Qfan? this mobo is anold ASUS, it isn't marketed as Qfan. Maybe some beta pre-attemp at Qfanthat was dropped at the BIOS)0x81 - off0x82 - slightly "on-ner" than off, but my fans do not get to move. I canhear the high-pitched PWM sound that motors give off at too-low-pwm.0x83 - now they do move. Estimate about 70% speed or so.0x84-0x8f - full onChanging the high nibble doesn't seem to do much except the high bit(0x80) must be set for PWM to work, else the current pwm doesn't seem tochange.My mobo is an ASUS A7V266-E. This behavior is similar to what I gotwith speedfan under Windows, where 0-15% would be off, 15-2x% (can'tremember the exact value) would be 70% and higher would be full on.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -