element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Blog How to Work with MSPM0 Microcontrollers... and Build a Peripheral Expander / Processor Companion!
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: shabaz
  • Date Created: 11 Jun 2026 10:35 PM Date Created
  • Views 615 views
  • Likes 14 likes
  • Comments 15 comments
  • MSPM0L1105
  • i2c
  • MSPM0
  • easyL1105
  • texas_instruments
  • texas instruments
  • MiniL1105
  • ti
Related
Recommended

How to Work with MSPM0 Microcontrollers... and Build a Peripheral Expander / Processor Companion!

shabaz
shabaz
11 Jun 2026

The MSPM0 microcontrollers are very low-cost, and friendly to use (lots of documentation and examples).  For a project, I was using an ESP32, but I ran out of UARTs! 

Ordinarily I would have considered purchasing I2C to UART chips, but I'm not entirely sure how necessary the interface will be, and I'd rather not stock up on such specialist parts and then later realize they are surplus to requirements!

Instead, I decided to convert an MSPM0 chip into such a device (it's called a mspm0_i2c_periph_expander on GitHub). And added a few more features while I was at it.

The result is an I2C-controlled part which I can drop into some projects if I need a simple UART, or up to three channels of 12-bit ADC, or when I'm interfacing to PWM or frequency-output sensors, or if I want to measure AC voltage or current. It's simple and fast to program.

image

This isn't an original idea; the Beaglebone People use an MSPM0 on one of their boards, in a similar way (but not with UART). I used the older MSP430 microcontroller series as an I2C peripheral occasionally too.

Here's a five-minute video explaining how to get going with the MSPM0, and a demonstration of the features in the mspm0_i2c_periph_expander.

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

Testbed setup

Red = MSPM0 breakout board (miniL1105, documented here)

Green = Pi Pico acting as a (+) E-Z USB to I2C Adapter and UART Bridge - element14 Community

Blue = NXP MCU-Link Debug Probe

Oscilloscope: PicoScope 2000 series with PicoScope 7 software

Waveform Gen: Owon DGE1030 (although the PicoScope has one built-in too)

image

Summary

It's possible to convert an MSPM0 microcontroller into an I2C-controlled peripheral, to add extra features to the main processor in projects. If possible, it's worth considering emulating real devices so that existing drivers can be used, without reinventing the wheel too much. However, in my case, due to time limitations, this wasn't a hard requirement (and I don't plan to use this with Linux device drivers).

A couple of comments; Firstly, please note the code is still quite fresh, it's worth thoroughly testing it for your needs first, if you plan to use it. 

Secondly, the GitHub page doesn't list precise steps on installing the environment to build software for the MSPM0. I figured that is already documented extensively by now, in the many blogs from Jan and myself, as well as the official TI documentation and so on (and I was short on time, hence the short video rather than a full blog). I didn't get time to test the build process on other platforms; I just used Windows 11.

What features would you add? Personally, I'm thinking of adding either tone/alert generation, or, perhaps a text LCD controller; or maybe keep it more general-purpose with say GPIO expander capability like PCF8574, but I don't have a need for any of these yet, so that may be some while.

Thanks for reading / watching!

  • Sign in to reply
  • DAB
    DAB 1 month ago

    Very good video.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • genebren
    genebren 1 month ago

    This is a very useful approach and another great write-up!  I have utilized very similar techniques to replace analog/digital circuitry with tiny microprocessors, or like you used here, master/slave processors to overcome pin/peripheral shortages or to isolate time critical functions into a slave processor.

    I have been thinking about updating some of my products to replace some of my TTL parts with tiny microprocessors to help reduce my part count in inventories.  Not sure how big of an effect this will have, but it might help as some of these parts hit end of life. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • shabaz
    shabaz 1 month ago

    Just thought of another feature I really want to add: AC measurement on an ADC channel. Would save on external circuitry, or for the main processor from having to rapidly sample, i.e. just let the peripheral perform that measurement and retrieve the result via I2C. There is a TI example (PDF) of full AC power measurement, so I can probably examine that for ideas.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • michaelkellett
    michaelkellett 1 month ago in reply to embeddedguy

    The MSPM0C1104SRUKR costs £0.35 each (25 parts Digikey) - that's the QFN part with 20 pins and 16k flash.

    The cheapest FPGA I could find on Digikey is about £2, has no ADC and comes in a difficult to use 0.35mm pitch BGA. It's way harder to apply and way and much less capable than the tiny processor - it is a full FPGA so for some logic functions it can be 100s of times faster but not for I2C <-> USART - where the speed is limited by the interface itself.

    For odd glue functions these ultra cheap micros can be a very cost effective choice.

    MK

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • embeddedguy
    embeddedguy 1 month ago

    Oh, so you ran out of UART interface. That is weird, but there is software serial as well. Also, not sure but some low-end FPGA chip can also emulate some peripherals such as I2C, etc. 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
<
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2026 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube