Most Power System Management designs follow a set and forget model. Setup and debug of Power System Management (PSM) devices is simple with LTpowerPlay and when combined with a bulk programming solution, there is no need for firmware. However, many large systems require a Board Management Controller (BMC), the foundation of PSM firmware is PMBus; the foundation of PMBus is SMBus; and the foundation of SMBus is I²C. Building a BMC that adds value with PSM firmware requires some level of knowledge of each protocol or a pre-existing library that frees the programmer from the details.

The Linduino libraries handle each protocol layer and provide an API that makes writing PSM firmware easy. Linduino PSM is not a replacement for a BMC, but rather a set of libraries and examples that are compatible with typical BMC firmware.

Linduino can also be used with Linear Technology Demo Circuits as a learning tool. Many BMC designs already have an SMBus API and a quick study of how PMBus works is enough. It is quite common to see engineers copy/paste Linduino code snippets into an existing application and use them.

Linduino PSM hardware consists of a Linduino (DC2026) and a shield to connect (DC2294) the I²C pins of the Linduino to a PMBus/SMBus/I²C Bus of a demo board or product board.

The PMBus library resides in the LTSketchbook tree in the directory LTSketchbook/libraries/LT_PMBUS. The library is layered: starting with Two Wire Interface (TWI), then I²C, SMBus and PMBus. There is a number conversion API to convert values from L11/L16 (PMBus formats) to/from floating point. Finally, there is Group Command Protocol assistance, device and rail discovery, Fault Log decoding and even In System Programming.

The library has a simple API for SMBus as well as PMBus. LTpowerPlay can be still be used for debug and a Total Phase Beagle or other Spy Tool can be attached to observe traffic on the bus.

Read more: Download the full application note