Application Report
SLAA249A–April 2005–Revised October 2009
Implementing SMBus Using MSP430 Hardware I
2
C
Harman Grewal .................................................................................................................... MSP430
ABSTRACT
This application report describes the implementation of the system management bus (SMBus) using the
MSP430 hardware I
2
C peripheral. SMBus is used as a communication link for smart batteries,
power-related devices, and a wide variety of other system devices. This report includes the support for
master and slave protocols in a SMBus communication system.
Contents
1 Introduction .................................................................................................................. 1
2 SMBus Protocols ............................................................................................................ 2
3 Software ...................................................................................................................... 2
4 Example Code ............................................................................................................... 3
4.1 Example 1 ........................................................................................................... 3
4.2 Example 2 ........................................................................................................... 3
4.3 Example 3 ........................................................................................................... 3
4.4 Example 4 ........................................................................................................... 4
5 Conclusion ................................................................................................................... 4
6 References ................................................................................................................... 4
Appendix A SMBus Using the USCI I
2
C Peripheral .......................................................................... 5
List of Figures
1 MSP430F169 Master-Slave SMBus Communication .................................................................. 2
2 MSP430F169 Master-TMP175 Slave SMBus Communication ....................................................... 4
1 Introduction
SMBus is a two-wire serial interface based on the principles of I
2
C. The two lines are serial clock (SCL)
and serial data (SDA), which are tied to V
CC
using pullup resistors. The devices communicating on this bus
can drive the lines low or release them to high impedance. This connection is a wired-AND configuration.
Multiple I
2
C/SMBus devices can be connected on the bus, but MSP430 pins should not be pulled above
V
CC
. For example, if the V
CC
of the MSP430 is at 3 V, then all devices on the bus must be pulled up to only
3 V.
A device performing data transfers on the bus can be considered as a master or a slave. Each master and
slave device can either be a transmitter (send data) or a receiver (receive data), and the communication
on the bus is always initiated by the master by providing a valid start condition and the SCL signal.
Multiple master and slave devices may be connected on the bus, but only one device may master the bus
during a data transfer. Since more than one master may simultaneously attempt to take control of the bus
and start a transmission, the I
2
C/SMBus protocol provides an arbitration mechanism that relies on the
wired-AND connection of all devices to the bus. A master device that generates a logic high on the SDA
bus loses arbitration to a master that generates a logic low on the data bus. The MSP430 master
transmitter that loses arbitration switches to slave receiver mode and sets the arbitration lost flag, ALIFG.
[1] Each device on the bus has a unique 7-bit address, which allows a total of 128 devices to be
connected on the bus. Some addresses are dedicated SMBus addresses that are reserved and must not
be assigned to any SMBus device; for example, the SMBus Alert response address (0001 100b). [2]
1
SLAA249A–April 2005–Revised October 2009
Implementing SMBus Using MSP430 Hardware I
2
C
Submit Documentation Feedback
Copyright © 2005–2009, Texas Instruments Incorporated