GitHub

Hardware / No radio: small chips / Step 4 of 5

LP-MSPM0G3519 (MSPM0G3519)

The MSPM0G3519 is a microcontroller in TI's MSPM0 family: 80 MHz Arm Cortex-M0+, 512 kB of flash, 128 kB of RAM.

TI's drawing of the LP-MSPM0G3519 board, seen from above

Quick facts

BoardLP-MSPM0G3519
ChipMSPM0G3519
CoreCortex-M0+
Clock80 MHz
Flash512 kB
RAM128 kB
RadioNone
Notable peripheralsdual-bank flash for OTA, plus 16 kB data flash; 2 x 12-bit 4 Msps ADC, up to 27 channels; 12-bit DAC; 3 comparators; math accelerator (DIV, SQRT, MAC, TRIG); AES-128/256, secure key storage
On-board debug probeBuilt into the board
Zephyr board namelp_mspm0g3519
Where to buyTI.com
Toolchains that ranTI compilers, GCC, Zephyr, FreeRTOS, Arduino, MicroPython

Get it running

  1. Plug the board into your computer with its USB cable. No driver to install.

  2. In Chrome or Edge, open the browser bench and click Connect.

  3. Pick Blink LED2 red: 150, 150, 150, 900 ms and click Flash. The page writes it to the board.

    You should see: LED2 red (PB26) flashes twice, then pauses.

    none listed in TI's example README

What works

  • CoreMark: 182.73 (2.284 per MHz) (TI Arm Clang, bare metal, -O3; 80 MHz; 3 runs)
  • Interrupt latency, pend to first handler line: 31 cycles (bare metal; 80 MHz; 3 runs)
  • GPIO toggle: 1.0 cycles (80 MHz; 3 runs)
  • Blink image size: 11.8 kB of flash, 4 kB of RAM (Zephyr)
  • Room-occupancy AI model, one inference: 3.91 ms (-O3; 80 MHz)
  • Control loop, trigger to new PWM value: 12.44 µs (-O2; 80 MHz; 3 runs)
  • 256-point complex FFT: 0.918 ms (-O3; 80 MHz; 3 runs)
  • AES-128: 9.33 cycles/B in hardware (TI Arm Clang, -O2; 80 MHz; 3 runs)
  • RTOS task switch round trip: 6.99 µs (Zephyr; 80 MHz)
  • Fastest ADC with DMA: 3.93 Msps (32 MHz)

Download every result for this board (CSV), or compare it on this board on the Benchmarks page.

Projects and ports that ran here

Want wireless? Try the LP-EM-CC2340R5 for Bluetooth, Zigbee or Thread or the LP-EM-CC35X1 for Wi-Fi.

Fixes

  • If you see Zephyr blinky builds and flashes, nothing blinks; program counter at z_SysNmiOnReset, SYSCTL.NMIIIDX reads 6, pulse nRST after the DSLite flash (mspm0_board_reset in OpenOCD); the image then runs (portability/arduino/zephyr/README.md, 2026-10-25).
  • If you see Zephyr prints FLASH: 256 KB and RAM: 64 KB, size a Zephyr application for 256 kB flash and 64 kB RAM.
  • If you see adc12_internal_temp_sensor_mathacl prints about 507, treat the raw code as relative; cause unknown.
  • If you see UART0 loopback PA10 to PA11 fails at 5.5 and 6.0 Mbaud, sends nothing at 12 Mbaud, use 9,600 baud to 5.33 Mbaud or 6.4 to 10.67 Mbaud, and test your exact rate.
  • If you see a Zephyr peripheral pin stays low (or does the wrong thing) although the peripheral runs, for example PWM on PB27, define the pin group yourself from SysConfig's MSPM0G351X.json.
  • If you see Zephyr main on this board: a second interrupt edge mode on a pin fires on both edges, and PWM duty comes out inverted, clear the pin's two polarity bits before attaching; write period - pulse.
  • If you see the first I2C transfer to the Waveshare panel's FT6336U fails right after boot, hold the reset low 5 ms, release it, wait 400 ms before the first transfer.
  • If you see an I2C read returns the ID, then the next write never completes and the bus stays busy, leave the ACK bit off on reads so the controller sends the NACK that ends them.

Every fix for this board in its FAQ

For AI assistants

Point your assistant at this board's AGENTS.md (build, flash and fix notes) and the repository's llms.txt (the index).

Sources: mspm0g3519/README.md, mspm0g3519/AGENTS.md, mspm0g3519/FAQ.md, data/results/mspm0g3519.csv, site/data/portfolio.json, site/data/projects.json, site/data/ports.json.