6.5. MSPM0 Family
The MSPM0 family uses the Arm Cortex-M0+ core and targets low-cost, low-power designs: battery-powered sensors, consumer products and always-on sensing. MSPM0G5187 adds the TI NPU.
6.5.1. Supported Devices
Device |
NPU |
Supported tasks |
|---|---|---|
MSPM0G5187 |
Yes |
Time series classification (generic, arc fault, motor fault, ECG, PIR), regression, forecasting, anomaly detection, image classification, audio classification |
MSPM0G3507 |
No |
Time series classification (generic, arc fault, motor fault, ECG, PIR), regression, forecasting, anomaly detection, image classification |
MSPM0G3519 |
No |
Same as MSPM0G3507 |
The Cortex-M0+ has no floating-point unit; ModelMaker compiles with
-mfloat-abi=soft. For this reason most MSPM0 example configurations use the
fixed-point (Q15) feature-extraction presets, for example
FFT256Input_FE_RFFT_16Feature_8Frame_removeDC_Full_Bandwidth or
Custom_Default_MSPM0. See Feature Extraction.
Feature-extraction memory is estimated for MSPM0G5187 and MSPM0G3507 (see Device Overview).
6.5.2. MSPM0G5187 (NPU)
MSPM0G5187 is the most-used target in the 1.5.0 examples: most examples ship a
config_MSPM0.yaml for it. For example,
examples/generic_timeseries_classification/config_MSPM0.yaml:
common:
task_type: generic_timeseries_classification
target_device: MSPM0G5187
dataset:
dataset_name: hello_world_example_dsg
data_processing_feature_extraction:
feature_extraction_name: FFT256Input_FE_RFFT_16Feature_8Frame_removeDC_Full_Bandwidth
training:
model_name: CLS_13k_NPU
Use compile_preset_name: compress_npu_layer_data to reduce Flash use, or
forced_soft_npu_preset to run on the CPU instead of the NPU. See
NPU Guidelines.
Audio classification (MSPM0G5187 only) uses the DSCNN_NPU, DSCNN_32K_NPU,
DSCNN_GB_NPU, TCDS_ResNet_NPU and TCDS_ResNet_FB_NPU models, for example in
wake_word_detection,
glass_break_detection,
cough_detection and
google_speech_command.
Image classification on MSPM0 uses Lenet5, MobileNetV1_28k_NPU and
MobileNetV2_58k_NPU, for example in
MNIST_image_classification
and coffee_bean_classification.
See Image Classification.
6.5.3. MSPM0G3507 and MSPM0G3519
These devices run the model on the Cortex-M0+ CPU. Use the same models and
configurations as for MSPM0G5187 and change target_device:
common:
target_device: MSPM0G3507
Keep models small: without an NPU the inference time grows with the model’s operation
count. Check memory before training with ./estimate_memory.sh <config.yaml>.
A few models are MSPM0-only: ElectricalFault_model_40k_t,
GearboxFault_model_1.2k_t and GearboxFault_model_1.5k_t.
6.5.4. Running on the Board
Important
MSPM0 devices are not covered by the SDK examples described in Deploying a ModelZoo Run to an SDK Example (Golden-Vector Check) (C2000Ware, F29H85x SDK, MSPM33 SDK, MCU-SDK and MCU-PLUS-SDK). The guidance below is the MSPM0 guidance carried over from 1.4.0 and the links given in the 1.5.0 example readmes.
Install Code Composer Studio with MSPM0 support and the MSPM0 SDK. (The pir_detection example asks for MSPM0 SDK 2.08.00 or later.)
Follow the EdgeAI Software Guide in the MSPM0 SDK for the MSPM0 AI example projects and how to integrate the ModelMaker output.
The ModelMaker output is the same as for other devices:
mod.aandtvmgen_default.hincompilation/artifacts/, andtest_vector.canduser_input_config.hintraining/quantization/golden_vectors/. See Non-NPU Deployment.
6.5.5. Next Steps
NPU Guidelines for MSPM0G5187 model constraints
Deployment for running the model on a device