System Management Bus (SMBus) is a two-wire interface through which various system component chips can communicate with each other and with the rest of the system. It is based on the principles of operation of I2C. SMBus provides a control bus for system and power management related tasks. A system may use SMBus to pass messages to and from devices instead of tripping individual control lines. Removing the individual control lines reduces pin count. Accepting messages ensures future expandability. With System Management Bus, a device can provide manufacturer information, tell the system what its model/part number is, save its state for a suspend event, report different types of errors, accept control parameters, and return its status.
Table: Standard SMBUS COMMANDS | |||||||
SBS Cmd | Mode | Name | Format | Size in Bytes | Min Value | Max Value | Unit |
0x00 | R/W | ManufacturerAccess | hex | 2 | 0x0000 | 0xffff | |
0x01 | R/W | RemainingCapacityAlarm | unsigned int | 2 | 0 | 65535 | mAh |
0x02 | R/W | RemainingTimeAlarm | unsigned int | 2 | 0 | 65535 | min |
0x03 | R/W | BatteryMode | hex | 2 | 0x0000 | 0xe383 | |
0x04 | R/W | AtRate | signed int | 2 | -32768 | 32767 | mAh |
0x05 | R | AtRateTimeToFull | unsigned int | 2 | 0 | 65534 | min |
0x06 | R | AtRateTimeToEmpty | unsigned int | 2 | 0 | 65534 | min |
0x07 | R | AtRateOK | unsigned int | 2 | 0 | 65535 | |
0x08 | R | Temperature | unsigned int | 2 | 0 | 65535 | 0.1K |
0x09 | R | Voltage | unsigned int | 2 | 0 | 65535 | mV |
0x0a | R | Current | signed int | 2 | -32768 | 32767 | mA |
0x0b | R | AverageCurrent | signed int | 2 | -32768 | 32767 | mA |
0x0c | R | MaxError | unsigned int | 1 | 0 | 100 | % |
0x0d | R | RelativeStateOfCharge | unsigned int | 1 | 0 | 100 | % |
0x0e | R | AbsoluteStateOfCharge | unsigned int | 1 | 0 | 100+ | % |
0x0f | R/W | RemainingCapacity | unsigned int | 2 | 0 | 65535 | mAh |
0x10 | R | FullChargeCapacity | unsigned int | 2 | 0 | 65535 | mAh |
0x11 | R | RunTimeToEmpty | unsigned int | 2 | 0 | 65534 | min |
0x12 | R | AverageTimeToEmpty | unsigned int | 2 | 0 | 65534 | min |
0x13 | R | AverageTimeToFull | unsigned int | 2 | 0 | 65534 | min |
0x14 | R | ChargingCurrent | unsigned int | 2 | 0 | 65534 | mA |
0x15 | R | ChargingVoltage | unsigned int | 2 | 0 | 65534 | mV |
0x16 | R | BatteryStatus | unsigned int | 2 | 0x0000 | 0xdbff | |
0x17 | R/W | CycleCount | unsigned int | 2 | 0 | 65535 | |
0x18 | R/W | DesignCapacity | unsigned int | 2 | 0 | 65535 | mAh |
0x19 | R/W | DesignVoltage | unsigned int | 2 | 0 | 65535 | mV |
0x1a | R/W | SpecificationInfo | hex | 2 | 0x0000 | 0xffff | |
0x1b | R/W | ManufactureDate | unsigned int | 2 | ASCII | ||
0x1c | R/W | SerialNumber | hex | 2 | 0x0000 | 0xffff | |
0x20 | R/W | ManufacturerName | String | 11+1 | ASCII | ||
0x21 | R/W | DeviceName | String | 7+1 | ASCII | ||
0x22 | R/W | DeviceChemistry | String | 4+1 | ASCII | ||
0x23 | R/W | ManufacturerData | String | 14+1 | ASCII | ||
0x2f | R/W | Authenticate | String | 20+1 | ASCII | ||
0x3c | R | CellVoltage4 | unsigned int | 2 | 0 | 65535 | mV |
0x3d | R | CellVoltage3 | unsigned int | 2 | 0 | 65535 | mV |
0x3e | R | CellVoltage2 | unsigned int | 2 | 0 | 65535 | mV |
0x3f | R | CellVoltage1 | unsigned int | 2 | 0 | 65535 |
mV |