Readme

Example Summary

I2C Controller writes and reads multiple bytes to/from a target device. The example uses FIFO and polling. It can only handle a maximum of 8 bytes due to FIFO size. LED toggles if transmission and reception are successful. The Target device must be enabled and active before running this example. This example can be used to validate I2C communication, as a starting point to control any I2C target, or to create custom drivers.

Peripherals & Pin Assignments

Peripheral Pin Function
GPIOA PA26 Standard Output
GPIOA PA6 Standard Output
SYSCTL
I2C0 PA0 I2C Serial Data line (SDA)
I2C0 PA1 I2C Serial Clock line (SCL)
EVENT
DEBUGSS PA20 Debug Clock
DEBUGSS PA19 Debug Data In Out

BoosterPacks, Board Resources & Jumper Settings

Visit LP_MSPM0L1306 for LaunchPad information, including user guide and hardware files.

Pin Peripheral Function LaunchPad Pin LaunchPad Settings
PA26 GPIOA PA26 J4_38
  • PA26 can be connected to LED2 Red
    • J12 ON Connect to LED2 Red
    • J12 OFF Disconnect from LED2 Red
PA6 GPIOA PA6 J1_7 N/A
PA0 I2C0 SDA J1_10
  • PA0 is 5V tolerant open-drain so it requires pull-up
    • J10 2:3 Use 3.3V pull-up
    • J10 1:2 Use 5V pull-up

  • PA0 can be connected to LED1
    • J2 OFF Disconnect from LED1
PA1 I2C0 SCL J1_9
  • PA1 is 5V tolerant open-drain so it requires pull-up
    • J19 2:3 Use 3.3V pull-up
    • J9 1:2 Use 5V pull-up
PA20 DEBUGSS SWCLK J2_13
  • PA20 is used by SWD during debugging
    • J101 15:16 ON Connect to XDS-110 SWCLK while debugging
    • J101 15:16 OFF Disconnect from XDS-110 SWCLK if using pin in application
PA19 DEBUGSS SWDIO J2_17
  • PA19 is used by SWD during debugging
    • J101 13:14 ON Connect to XDS-110 SWDIO while debugging
    • J101 13:14 OFF Disconnect from XDS-110 SWDIO if using pin in application

Device Migration Recommendations

This project was developed for a superset device included in the LP_MSPM0L1306 LaunchPad. Please visit the CCS User’s Guide for information about migrating to other MSPM0 devices.

Low-Power Recommendations

TI recommends to terminate unused pins by setting the corresponding functions to GPIO and configure the pins to output low or input with internal pullup/pulldown resistor.

SysConfig allows developers to easily configure unused pins by selecting BoardConfigure Unused Pins.

For more information about jumper configuration to achieve low-power using the MSPM0 LaunchPad, please visit the LP-MSPM0L1306 User’s Guide.

Example Usage

Connect SDA and SCL between I2C Controller and Target. Note that I2C requires pull-up resistors. Internal pull-ups can be enabled in SysConfig (see datasheet for resistance specification), but external pull-ups might be required based on I2C speed and capacitance. External pull-ups can be connected or enabled using the LaunchPad. Compile, load and run the example. LED2.Red will toggle periodically if transmission and reception were successful. LED2.Red will remain off if there is a problem during initialization. LED2.Red will remain on if there is a problem during data transfers. USER_TEST_PIN GPIO will mimic the behavior of the LED pin on the BoosterPack header and can be used to verify the LED behavior.