Intro

This page describes what I found out about the ASB100 "Bach" chip while trying to figure out how to improve support for this chip under Linux (using lmsensors). It appears Asus will not release the datasheet for this chip.

The ASB100 chip is an ASIC made by Asus for hardware health monitoring. The chip that is on my motherboard says:
ASUS
ASB100A BACH
TSV2497IAE 0220
ASUSTeK Attansic
Further specs: A7V333 motherboard, BIOS version 1014.002, AsusProbe 2.18.01.

Support in lmsensors

From version 2.6.5 onwards, the ASB100 is recognised as an AS99127 chip by the w83781d driver.
This is what is shown by 'sensors':
... to be filled in
And this is shown by 'sensors' when the w83781d module was inserted with option 'init=0' after a fresh reboot:
as99127f-i2c-0-2d
Adapter: SMBus Via Pro adapter at e800
Algorithm: Non-I2C SMBus adapter
VCore 1:   +1.80 V  (min =  +1.39 V, max =  +2.08 V)
VCore 2:   +1.80 V  (min =  +1.39 V, max =  +2.08 V)
+3.3V:     +3.29 V  (min =  +2.96 V, max =  +3.63 V)
+5V:       +4.91 V  (min =  +4.49 V, max =  +5.51 V)
+12V:     +12.58 V  (min =  +9.54 V, max = +14.40 V)
-12V:     -13.15 V  (min =  -0.00 V, max =  -0.00 V)
-5V:       -4.98 V  (min =  -0.00 V, max =  -0.00 V)
fan1:     3426 RPM  (min =   -1 RPM, div = 2)
fan2:        0 RPM  (min = 337500 RPM, div = 2)
fan3:        0 RPM  (min =   -1 RPM, div = 2)
temp1:       +33°C  (limit =  +80°C, hysteresis =  +75°C)
temp2:     +47.5°C  (limit =  +55°C, hysteresis =  +51°C)
temp3:      +7.2°C  (limit =  +40°C, hysteresis =  +38°C)
vid:      +1.850 V
alarms:
beep_enable:
          Sound alarm enabled

Registers

The ASB100 appears to be similar to the W83781d and LM78 type of chips. However the temperature for the CPU (temp2) seems to be different from the one that the BIOS and the AsusProbe utility report. It is however equal to the one that the windows program SpeedFan reports.
It appears that register 0x17 contains the desired temperature. This register is in a range undocumented by the w83781d and lm78 datasheets. The lm78 datasheet refers to the range 0x00-0x1F as 'POST code storage RAM'.
The other registers in this area also seem to contain meaningful data.
RegDataComment
0x000xB8
0x010xBC *???
0x020xCF *VCore???
0x030xCF *VCore???
0x040xCF *VCore???
0x050xCEVCore???
0x060x00
0x070xCD
0x080xA7
0x090xF8
0x0A0xA5
0x0B0xAC
0x0C0x8C
0x0D0x68
0x0E0x54
0x0F0xF8
0x100xA5
0x110xF8
0x120xA5
0x130xFF
0x140x00
0x150x00
0x160x00
0x170x32 *CPU temperature
0x180x50CPU temp limit?
0x190x4BCPU temp hysteresis?
0x1A0x21 *Motherboard temperature?
0x1B0x50Motherboard temp limit?
0x1C0x4BMotherboard temp hysteresis?
0x1D0x00
0x1E0x00
0x1F0x00

Values indicated with an asterisk (*) are the ones that I have seen variation in. The other values always seem to be same between consecutive reads.

Links and references


Last change Sunday, September 22, 2002