X570_MS7C35 added 2 temperatures from NTCs connected to voltage channels. Fixed Nct67x registers. (#1975)
* X570_MS7C35 added 2 temperature form NTCs connected to voltage channels. Fix Nct677X registers. * Update LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com> * Update LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com> --------- Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com>
This commit is contained in:
@@ -212,7 +212,7 @@ internal class Nct677X : ISuperIO
|
||||
new(SourceNct67Xxd.AUXTIN2, 0x07D, 0x07E, 7, 0xA00, 0x494),
|
||||
new(SourceNct67Xxd.AUXTIN3, 0x4A0, 0x49E, 6, 0xB00, 0x495),
|
||||
new(SourceNct67Xxd.AUXTIN4, 0x027, 0, -1, 0x621),
|
||||
new(SourceNct67Xxd.TSENSOR, 0x4A2, 0x4A1, 7, 0xC00, 0x496),
|
||||
//new(SourceNct67Xxd.TSENSOR, 0x4A2, 0x4A1, 7, 0xC00, 0x496), // Disabled because these registers are wrong and can cause wrong measurement
|
||||
new(SourceNct67Xxd.SMBUSMASTER0, 0x150, 0x151, 7, 0x622),
|
||||
new(SourceNct67Xxd.SMBUSMASTER1, 0x670, 0, -1, 0xC26),
|
||||
new(SourceNct67Xxd.PECI_1, 0x672, 0, -1, 0xC27),
|
||||
@@ -220,15 +220,17 @@ internal class Nct677X : ISuperIO
|
||||
new(SourceNct67Xxd.PCH_CHIP_TEMP, 0x676, 0, -1, 0xC29, 0x401),
|
||||
new(SourceNct67Xxd.PCH_CPU_TEMP, 0x678, 0, -1, 0xC2A, 0x402),
|
||||
new(SourceNct67Xxd.PCH_MCH_TEMP, 0x67A, 0, -1, 0xC2B, 0x404),
|
||||
new(SourceNct67Xxd.AGENT0_DIMM0, 0),
|
||||
new(SourceNct67Xxd.AGENT0_DIMM1, 0),
|
||||
new(SourceNct67Xxd.AGENT1_DIMM0, 0),
|
||||
new(SourceNct67Xxd.AGENT1_DIMM1, 0),
|
||||
new(SourceNct67Xxd.BYTE_TEMP0, 0),
|
||||
new(SourceNct67Xxd.BYTE_TEMP1, 0),
|
||||
new(SourceNct67Xxd.PECI_0_CAL, 0),
|
||||
new(SourceNct67Xxd.PECI_1_CAL, 0),
|
||||
new(SourceNct67Xxd.VIRTUAL_TEMP, 0)
|
||||
new(SourceNct67Xxd.AGENT0_DIMM0, 0x405, 0, -1),
|
||||
new(SourceNct67Xxd.AGENT0_DIMM1,0x406, 0, -1),
|
||||
new(SourceNct67Xxd.AGENT1_DIMM0, 0x407, 0, -1),
|
||||
new(SourceNct67Xxd.AGENT1_DIMM1, 0x408, 0, -1),
|
||||
new(SourceNct67Xxd.BYTE_TEMP0, 0x419, 0, -1),
|
||||
new(SourceNct67Xxd.BYTE_TEMP1, 0x41A, 0, -1),
|
||||
new(SourceNct67Xxd.PECI_0_CAL, 0x4F4, 0, -1),
|
||||
new(SourceNct67Xxd.PECI_1_CAL, 0x4F5, 0, -1),
|
||||
new(SourceNct67Xxd.VIRTUAL_TEMP, 0),
|
||||
new(SourceNct67Xxd.SPARE_TEMP, 0), // Used for voltage temp sensor
|
||||
new(SourceNct67Xxd.SPARE_TEMP2, 0) // Used for voltage temp sensor
|
||||
});
|
||||
break;
|
||||
|
||||
@@ -1141,7 +1143,12 @@ internal class Nct677X : ISuperIO
|
||||
AUXTIN4 = 7,
|
||||
SMBUSMASTER0 = 8,
|
||||
SMBUSMASTER1 = 9,
|
||||
TSENSOR = 10,
|
||||
RESERVED_1 = 10,
|
||||
RESERVED_2 = 11,
|
||||
RESERVED_3 = 12,
|
||||
RESERVED_4 = 13,
|
||||
RESERVED_5 = 14,
|
||||
RESERVED_6 = 15,
|
||||
PECI_0 = 16,
|
||||
PECI_1 = 17,
|
||||
PCH_CHIP_CPU_MAX_TEMP = 18,
|
||||
@@ -1156,7 +1163,10 @@ internal class Nct677X : ISuperIO
|
||||
BYTE_TEMP1 = 27,
|
||||
PECI_0_CAL = 28,
|
||||
PECI_1_CAL = 29,
|
||||
VIRTUAL_TEMP = 31
|
||||
RESERVED_7 = 30,
|
||||
VIRTUAL_TEMP = 31,
|
||||
SPARE_TEMP = 32,
|
||||
SPARE_TEMP2 = 33
|
||||
}
|
||||
|
||||
[SuppressMessage("ReSharper", "InconsistentNaming")]
|
||||
|
||||
@@ -5333,7 +5333,10 @@ internal sealed class SuperIOHardware : Hardware
|
||||
t.Add(new Temperature("System", 2)); // SYSTIN, P-3906
|
||||
t.Add(new Temperature("VRM MOS", 3)); // AUXTIN0, CPUMOSTIN, 10k at left side of cpu vrm
|
||||
t.Add(new Temperature("Chipset", 5)); // AUXTIN2, 10k at back side of the chipset
|
||||
t.Add(new Temperature("CPU", 24));
|
||||
t.Add(new Temperature("CPU", 23));
|
||||
// Add temperature sensors for voltage inputs that are marked ad
|
||||
t.Add(new Temperature("MOS CPU", 24)); // (VIN 4 Voltage) NTC Near MOSFET CPU VRM
|
||||
t.Add(new Temperature("PCH", 25)); // (Voltage #6) X570 Platform Control HUB TEMP (NTC On Bottom of PCB)
|
||||
|
||||
f.Add(new Fan("Pump Fan", 0));
|
||||
f.Add(new Fan("CPU Fan", 1));
|
||||
@@ -5680,6 +5683,33 @@ internal sealed class SuperIOHardware : Hardware
|
||||
sensor.Value = value + sensor.Parameters[0].Value;
|
||||
ActivateSensor(sensor);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_motherboard.Model == Model.X570_MS7C35) // Add Temp Value for CPU MOS TEMPERATURE & PCH TEMPERATURE
|
||||
{
|
||||
float voltage;
|
||||
|
||||
if (sensor.Index == 24)
|
||||
{
|
||||
voltage = (float)_readVoltage(6);
|
||||
}
|
||||
else if (sensor.Index == 25)
|
||||
{
|
||||
voltage = (float)_readVoltage(11);
|
||||
}
|
||||
else
|
||||
{
|
||||
voltage = 0;
|
||||
}
|
||||
|
||||
double R = (10000.0 * voltage / (2.048 - 1.0)); //Convert voltage measured to resistance value
|
||||
double T = ((298.15 * 3435.0) / ((298.15 * Math.Log(R / 10000.0)) + 3435.0)); // Use R value in steinhart and hart equation, calculate temperature value in kelvin
|
||||
float Tc = (float)(T - 273.15); // Converting kelvin to celsius
|
||||
|
||||
sensor.Value = Tc + sensor.Parameters[0].Value;
|
||||
ActivateSensor(sensor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach (Sensor sensor in _fans)
|
||||
|
||||
Reference in New Issue
Block a user