Hardware monitor voltage reading improvements

This commit is contained in:
RichardG867
2020-03-24 19:53:09 -03:00
parent 2b6258139e
commit 18688a74cd
4 changed files with 15 additions and 15 deletions

View File

@@ -17,13 +17,13 @@
# define EMU_HWM_H
#define VDIV(v, r1, r2) (((v) * (r2)) / ((r1) + (r2)))
#define RESISTOR_DIVIDER(v, r1, r2) (((v) * (r2)) / ((r1) + (r2)))
typedef struct _hwm_values_ {
uint16_t fans[4];
uint8_t temperatures[4];
uint8_t voltages[8];
uint8_t temperatures[4];
uint16_t voltages[8];
} hwm_values_t;

View File

@@ -380,7 +380,7 @@ w83781d_reset(w83781d_t *dev, uint8_t initialization)
/* WARNING: Array elements are register - 0x20. */
uint8_t i;
for (i = 0; i <= 6; i++)
dev->regs[i] = dev->values->voltages[i];
dev->regs[i] = (dev->values->voltages[i] / 16);
dev->regs[0x07] = dev->values->temperatures[0];
for (i = 0; i <= 2; i++)
dev->regs[0x08 + i] = W83781D_RPM_TO_REG(dev->values->fans[i], 2);

View File

@@ -178,19 +178,19 @@ machine_at_p2bls_init(const machine_t *model)
0, /* unused */
27, /* CPU */
0
}, { /* voltages (divisors other than 16 = unclear how that number was achieved) */
2050 / 16, /* VCORE (2.05V by default) */
0, /* unused */
3300 / 16, /* +3.3V */
5000 / 27, /* +5V */
VDIV(12000, 28, 10) / 16, /* +12V (with 28K/10K resistor divider suggested in the W83781D datasheet) */
12000 / 55, /* -12V */
5000 / 24, /* -5V */
0
}, { /* voltages */
2050, /* VCORE (2.05V by default) */
0, /* unused */
3300, /* +3.3V */
RESISTOR_DIVIDER(5000, 11, 16), /* +5V (divider values bruteforced) */
RESISTOR_DIVIDER(12000, 28, 10), /* +12V (28K/10K divider suggested in the W83781D datasheet) */
RESISTOR_DIVIDER(12000, 853, 347), /* -12V (divider values bruteforced) */
RESISTOR_DIVIDER(5000, 1, 2), /* -5V (divider values bruteforced) */
0
}
};
if (model->cpu[cpu_manufacturer].cpus[cpu_effective].cpu_type == CPU_PENTIUM2)
machine_hwm.voltages[0] = 2800 / 16; /* set higher VCORE (2.8V) for Klamath */
machine_hwm.voltages[0] = 2800; /* set higher VCORE (2.8V) for Klamath */
hwm_set_values(machine_hwm);
device_add(&as99127f_device);

View File

@@ -32,4 +32,4 @@ extern const device_t postcard_device;
#endif
#endif /*BUGGER_H*/
#endif /*POSTCARD_H*/