VT1211(VIA CX700/VIA CN700) Hardware Monitor under Windows

From LEXWiKi

(Difference between revisions)
Jump to: navigation, search
(New page: Category:AllowPages == The Sample code source you can download from == Source file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/HardwareMonitor/vt1211hw_src.rar vt1211hw_src.r...)
(The Sample code source you can download from)
Line 1: Line 1:
[[Category:AllowPages]]
[[Category:AllowPages]]
== The Sample code source you can download from ==
== The Sample code source you can download from ==
-
Source file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/HardwareMonitor/vt1211hw_src.rar vt1211hw_src.rar]
+
Source file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/HardwareMonitor/HWMonitor_VT1211_src.rar HWMonitor_VT1211_src.rar]
-
Binary file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/HardwareMonitor/vt1211hw_bin.rar vt1211hw_bin.rar]
+
Binary file: [ftp://ftp.lex.com.tw/Engineer/SoftSupport/AP_Module/HardwareMonitor/HWMonitor_VT1211_bin.rar HWMonitor_VT1211_bin.rar]
== How to use the DEMO application ==
== How to use the DEMO application ==

Revision as of 21:02, 24 August 2011

Contents

The Sample code source you can download from

Source file: HWMonitor_VT1211_src.rar

Binary file: HWMonitor_VT1211_bin.rar

How to use the DEMO application

Image:vt1211hw_w.JPG

  1. Press the "Read Value" button , and then you can find the values in the below text boxes.

Sample code Introduction

Define Registry

#define VT1211A_CONFIGURATIN_INDEX_REGISTER	0x2E
#define VT1211A_CONFIGURATIN_INDEX_DATA		0x2F
#define VT1211A_CHIPSET_DEFAULT_DEVICEID	0x3C
#define VT1211A_CHIPSET_DEVICE_ID		0x20
#define VT1211A_CHIPSET_REVISION		0x21
#define	VT1211A_HARDWAREMONTIOR_LDN		0x0B
#define VT1211A_HARDWAREMONTIOR_IOBASE          0x60
#define VT1211A_VOLTAGE_CORE		        0x24
#define VT1211A_VOLTAGE_3V		        0x23
#define VT1211A_VOLTAGE_12V		        0x21
#define VT1211A_VOLTAGE_5V		        0x22
#define VT1211A_VOLTAGE_VCC		        0x26
#define VT1211A_TEMPERATURE_SYSTEM	        0x25
#define VT1211A_TEMPERATURE_CPU		        0x1F

Open VT1211

outb(0x87,VT1211A_CONFIGURATIN_INDEX_REGISTER);
outb(0x87,VT1211A_CONFIGURATIN_INDEX_REGISTER);

if ((VT1211_Read(VT1211A_CHIPSET_DEVICE_ID) == VT1211A_CHIPSET_DEFAULT_DEVICEID) )
{
    VT1211_Write(0x07,VT1211_HARDWAREMONTIOR_LDN);
    m_HardwareMonitor_IOBase = ( VT1211_Read (VT1211A_HARDWAREMONTIOR_IOBASE) << 8 ) | VT1211_Read (VT1211A_HARDWAREMONTIOR_IOBASE+1);
    return TRUE;		
}
else
    return FALSE;
return FALSE;
}

Read Data

DWORD dwPortVal;
dwPortVal = inb((WORD)(m_HardwareMonitor_IOBase + dwOffset));
return ( dwPortVal & 0x00FF);

GetTemperature

switch (dwOffset)
{
    case VT1211A_TEMPERATURE_SYSTEM:
        return VT1211A_TempTable[VT1211_ReadData(VT1211A_TEMPERATURE_SYSTEM)];
    case VT1211A_TEMPERATURE_CPU:
        return (VT1211_ReadData(VT1211A_TEMPERATURE_CPU)-73.869)/0.9528;
}

GetVoltage

float value ;
switch (dwOffset)
{
    case VT1211_VOLTAGE_CORE:
        value = (float)VT1211_ReadData(VT1211A_VOLTAGE_CORE) -3 ;
        return  (float)(value / 95.8);
    case VT1211A_VOLTAGE_5V:
        value = (float)VT1211_ReadData(VT1211A_VOLTAGE_5V) -3 ;
        return  (float)(value / 95.8 /0.4167 );
    case VT1211_VOLTAGE_3V:
        value = (float)VT1211_ReadData(VT1211A_VOLTAGE_3V) -3 ;
        return  (float)(value / 95.8 /0.5952 );
    case VT1211_VOLTAGE_12V:
        value = (float)VT1211_ReadData(VT1211A_VOLTAGE_12V) -3 ;
        return  (float)(value / 95.8 / 0.1754 );
    case VT1211_VOLTAGE_VCC:
        value = (float)VT1211_ReadData(VT1211A_VOLTAGE_VCC) -3 ;
        return  (float)(value / 95.8 / 0.6296 );
}
Personal tools