Hardware / No radio: small chips / Step 1 of 5
LP-MSPM0C1104 (MSPM0C1104)
The MSPM0C1104 is a microcontroller in TI's MSPM0 family: 24 MHz Arm Cortex-M0+, 16 kB of flash, 1 kB of RAM.
Quick facts
| Board | LP-MSPM0C1104 |
|---|---|
| Chip | MSPM0C1104 |
| Core | Cortex-M0+ |
| Clock | 24 MHz |
| Flash | 16 kB |
| RAM | 1 kB |
| Radio | None |
| Notable peripherals | 12-bit ADC 1.5 Msps, up to 10 external channels; 1 UART with LIN, 1 SPI, 1 I2C; 3 x 16-bit timers, up to 14 PWM; 8 to 20 pin packages; 87 µA/MHz run |
| On-board debug probe | Built into the board |
| Where to buy | TI.com |
| Toolchains that ran | TI compilers, FreeRTOS |
Get it running
First blink: 1 min 17 s from plug-in to a changed blink (terminal).
Plug the board into your computer with its USB cable. No driver to install.
In Chrome or Edge, open the browser bench and click Connect.
Pick Blink LED1 red: 150, 150, 150, 900 ms and click Flash. The page writes it to the board.
You should see: LED1 red (PA22) flashes twice, then pauses.
J7 must be on for the LED to light (SLAU908B Table 2-1, as quoted in mspm0c1104/FAQ.md); J101 11:12 and 13:14 stay ON (SWD to the XDS110, as shipped)
Install CCStudio 21.0.1 and the MSPM0 SDK 2.11. Free with a myTI login. On a Mac,
mac-setup/bootstrap.shin the repository does both after you sign in.File, Import Project, and pick:
/Applications/ti/mspm0_sdk_2_11_00_07/examples/nortos/LP_MSPM0C1104/driverlib/gpio_toggle_outputClick the green Debug button, then Resume.
You should see: an LED on the board blinks. The pattern is the delay in gpio_toggle_output.c: change it, build and flash again, and the blink changes.
Copy TI's blink example and build it.
cp -R <SDK>/examples/nortos/LP_MSPM0C1104/driverlib/gpio_toggle_output . ../mspm0g3507/mcu-bench/sdk-common/sdkmake.sh gpio_toggle_output/ticlangFlash it with OpenOCD.
openocd -f interface/xds110.cfg -c "adapter serial <serial>" -c "adapter speed 2500" -f target/ti_mspm0.cfg -c init -c "reset halt" -c "program gpio_toggle_output/ticlang/gpio_toggle_output.out verify" -c "reset run" -c shutdown
Replace the parts in angle brackets. Run it from the terminal in VS Code, CCStudio or any IDE.
You should see: an LED on the board blinks. The pattern is the delay in gpio_toggle_output.c: change it, build and flash again, and the blink changes.
What works
- Interrupt latency, pend to first handler line: 23 cycles (bare metal; 24 MHz; 3 runs)
- GPIO toggle: 2.0 cycles (bare metal, -O3; 24 MHz)
- Blink image size: 424 B of flash, 64 B of RAM (bare metal; 24 MHz)
- RTOS task switch round trip: 16.3 µs (FreeRTOS; 24 MHz; 3 runs)
- Fastest ADC with DMA: 1.0 Msps (TI Arm Clang; 24 MHz; 3 runs)
- Full redraw of a 320 x 480 SPI screen: 41.1 ms (scene drawn and sent in 16-row bands; 2.3 kB on the wire; 24 MHz)
- Vendor examples that build from a terminal: 100% (TI Arm Clang)
- Embench programs that fit and pass: 9 of 19 (TI Arm Clang, -O2; 24 MHz; 2 runs)
Download every result for this board (CSV), or compare it on this board on the Benchmarks page.
Projects and ports that ran here
- Blink an LED: 77.0 s from the terminal, board plugged in, tools installed
- BitNetMCU in 1 kB of RAM on the LP-MSPM0C1104 Works: The 1k handwriting model reads all 10 test digits right in 804 B of RAM on the MSPM0 C1104.
- MSPM0 examples moved up and down the family Works: MSPM0 examples move between family members with only the SysConfig device changed (SysConfig is TI's pin and peripheral setup tool): all 133 images that built and write nothing outside main flash and SRAM ran on the MSPM0 L1306.
- STM32 UART DMA receive with idle-line interrupt (MaJerle stm32-usart-uart-dma-rx-tx) on TI boards Works: MaJerle's STM32 UART DMA example answers every test packet at 115200 baud on the MSPM0 G3519, G5187, L1306, C1104 and MSPM33C321A.
- BoosterPack drivers (Educational MKII, Sharp128, Audio, Sensors MKII, NPU DSP) on LaunchPad kits of other families Could work: Portable C cores for BoosterPacks ran: the Educational pack on the MSPM0 L1306 and MSPM33 C321A, the Sharp128 panel on the MSPM0 C1104, the Audio pack on the AM13E230 and the Sensors pack on the MSPM0 G5187.
Want wireless? Try the LP-EM-CC2340R5 for Bluetooth, Zigbee or Thread or the LP-EM-CC35X1 for Wi-Fi.
Fixes
- If you see
Example requires Rev E3 or later of the MSPM0C1104 LaunchPad(SDK README), or a dark LED after a good flash, change the pin ingpio_toggle_output.syscfg, or watch J1 pin 8. - If you see FreeRTOS tasks never wake, no tick, put the tick on TIMG14 at 24,000 counts per tick, replacing the port's weak
vPortSetupTimerInterrupt. - If you see a second FreeRTOS task does not link, turn both off; two tasks plus idle ran in 0.97 kB.
- If you see Hard fault in
core_bench_list, stack pointer0x1FFFFF30(reduced CoreMark with 400 or 200 B data), report no CoreMark score for this chip from these builds. - If you see UART wrong at 4 to 4.5 and 6.4 Mbaud, silent at 9 and 12 Mbaud, test your exact rate; 8 Mbaud (24 MHz / 3) was right.
- If you see LED already blinking before the first flash, sample the pin every 25 ms or faster.
- If you see
Warning: A firmware update is required for the XDS110 probe. The current firmware is version 3.0.0.26: DSLite still flashes and verifies; OpenOCD printed nothing. - If you see
Could not find MEM-APafter running a ported G3507 example (tima_timer_mode_pwm_dead_band, 2026-10-24): DSSM factory reset (command 0x020A; erases main flash, NONMAIN to defaults; approval first), writemspm0c1104/data/oob-flash.binback, then start with an nRST board reset.
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: mspm0c1104/README.md, mspm0c1104/AGENTS.md, mspm0c1104/FAQ.md, data/results/mspm0c1104.csv, site/data/portfolio.json, site/data/projects.json, site/data/ports.json.