What's new in
SBS revision 1.1 specifications?
Errata to Smart Battery Data Set Specification
|An errata to the Smart Battery Data
Specification is being issued to correct recently discovered inconsistencies between the
1.0 and 1.1 specification SpecificationInfo() Revision and Version nibble definitions. As
presently defined, systems implementing the 1.1 specification may not be able to correctly
identify batteries built to the 1.0 specification. Download
the full errata here, Smart Battery Data Set Specification Errata, Version 1.1a.
expect to publish a revised version of the complete specification, tentatively a version
1.1a, in about 60 days.
Summary of the errata:
1. SpecificationInfo() has had the Revision and Version nibbles combined into a SpecID
byte. The values for 1.0, 1.1 without PEC support and 1.1with PEC support are clearly
* V1.0 SBData SpecInfo() = 0x0010
* V1.1 SBData, no PEC SpecInfo()=0x0021
* V1.1 SBData, with PEC SpecInfo()=0x0031
2. A minor change has been made to substitute the word
"re-learn" for "condition". There has been some confusion about the
meaning of "condition."
5.1.13, 5.1.21, 5.1.25, 5.4.1
Smart Battery Charger
|The Smart Battery Charger Specification,
Revision 1.10, incorporates input from SBS developers to clarify the original
specification and adapt it to the current industry practices in SBS system design.
|Global changes to the document were made to
update the thermistor pin to its new name of safety signal, and to rename
the Battery Controlled and Host Controlled charger types to Level 2
and Level 3, respectively. All figures were updated as necessary. Definitions for Programmatic
Maximum and PEC were added tot he Definitions section. The References
section was updated to refer to the latest SBS and other industry specifications.
|The definitions for Level 2 and Level
3 charger types were re-written and a table was added to illustrate their differences.
A Level 2 charger is a slave device which is controlled by the Safety Signal,
ChargingCurrent(), ChargingVoltage() and AlarmWarning() data from the battery. All other
chargers are Level 3. A Level 3 charger must poll for ChargingCurrent(),
ChargingVoltage() and AlarmWarning() data from the battery at least every minute. It is
suggested that this polling not occur more frequently than every 5s. Level 2
chargers operate in a default mode that assumes the Smart Battery?fs current and voltage
scale factors are unity. Only Level 3 chargers may use non-default scaling factor
|The accuracy definitions for ChargingCurrent()
and ChargingVoltage() have been changed to meet the safety requirements of all battery
chemistries. They also promote charging to a higher capacity for chemistries which use
constant voltage charging. ChargingCurrent() must be "ñµ¥ of the programmatic
maximum current or better." ChargingVoltage() must be "+1%/-9% of the
programmatic maximum voltage or better."
5.1.2, 5.2.1, 5.2.2
|No changes were made to the ChargerMode()
bits, however this function is defined to be expressly write-only and can not be relied on
to return meaningful data if read.
|In ChargerStatus(), MASTER_MODE bit was
renamed POLLING_ENABLED to communicate its function more clearly, and the VOLTAGE_NOTREG
and CURRENT_NOTREG bits are specifically designated as optional as originally intended in
the V0.95 specification. Bits indicating the thermistor range were renamed (THERM_OR to
RES_OR, THERM_COLD to RES_COLD, THERM_HOT to RES_HOT, THERM_UR to RES_UR). The
descriptions of nearly all bits were improved, without changing the original definitions.
|ChargerSpecInfo() includes two new values for
the CHARGER_SPEC nibble. 0010 signifies support for SBC 1.1 without PEC and 0011 signifies
support for SBC 1.1 with PEC. A master device that wants to use the PEC protocols will
check CHARGER_SPEC to determine if the PEC protocols can be used with the charger. All
unused bits in ChargerSpecInfo() must return a zero value when read.
|The Safety Signal ranges have been
defined to include guard-banding to allow for less than perfect detection of the ranges.
The new ranges for the safety signal in ohms are as follows: under-range (less than
575), Hot (425 to 3150), Normal (2850 to 31.5k), Cold (28.5k to 105k), over-range (95k or
greater). The specification also explicitly allows the use of discrete resistance values
to control charging and therefore, the 103AT thermistor curve in Appendix F was deleted.
|Some miscellaneous changes are: the wake-up
charge description now allows an option for host to set lower time-out than nominal period
as added safety, a recommended max leakage current of 100uA is specified to prevent a
charger from overcharging a pack when ChargingCurrent() = 0, and the condition of RES_OR =
1 was added to state 15 of the transition table in Sec 6.1.8. A note that SMB Alert and
AlertResponse protocol defined in the System Management Bus Specification are available as
interrupt mechanism was added to Sec 6.1.10.
|A section describing non-DC charger output was
added to Appendix D to caution the system designer to consider the impact of charger
output ripple on the battery. The specification specifically allows pulse charging if all
system components are compatible with the particular pulse method, and it is safe.
|This Appendix has been augmented to explain
two methods of accurate charging, one by using the battery's measurements and the other by
using a charger with a more precise output than intended in original SBS specifications.
Examples of required charger accuracy for lithium-ion pack configurations are given.
Smart Battery Data
|Many items throughout the specification were
given more description and examples. Some areas include error checking, data retries, and
data update rates. Where appropriate, tables were added to help in the clarification.
A new control bit was added to the BatteryMode() register. This allows the disabling of
the AlarmWarning() broadcasts for up to 60 seconds at a time. The bit must be re-written
to continue to suppress the alarm broadcasts.
Instead of a defined value of 15% as in the V1.0 spec, the new CycleCount() value is
incremented when the accumulated discharge capacity equals the value in DesignCapacity().
This then creates an "odometer" value when CycleCount() is multiplied by
DesignCapacity(). The resulting value gives a estimate of the total capacity a battery
pack has delivered, regardless of the depth of discharge or charge.
The SMBus revision 1.1 contains numerous updates. For one, an error checking byte was
added as an optional feature in the data stream of some protocols. Since these protocols
are detailed in the SMBus Specification, the diagrams were removed from the SBData
Smart Battery Selector
The Smart Battery
Selector Specification, Revision 1.10, incorporates the changes of the wording that was
accepted in the rest of the SBS specification. There was no impact to the implementation
from this change.
The attempt to incorporate the
simultaneous charging and discharging are now incorporated into the new Smart Battery
Manager Specification 1.00, so this selector specification does not handle simultaneous
charging and discharging functions.
|Global change to the document was made to
update the thermistor pin to its new name of safety signal. All figures were
updated as necessary.
includes two new values for the SELECTOR_REVISION nibble. 0010b signifies support
for Smart Battery Selector 1.1 without packet error checking (PEC) and 0011b
signifies support for Smart Battery Selector 1.1 with PEC. A master device that wants to
use the PEC protocols will check SELECTOR_REVISION to determine if the PEC protocols can
be used with the selector.
Link to the System Management Bus
|The System Management Bus (SMBus)
Specifications, Bus and BIOS, have been moved to the SMBus Specs Page at: http://www.smbus.org/specs/