MSPM0 SDK Examples Guide

1. Introduction

The MSPM0 SDK is packaged with a wide selection of code examples to enable engineers to develop applications on Texas Instruments’ MSPM0 family of microcontrollers.

The examples folder is divided into RTOS and non-RTOS subfolders (currently only non-RTOS is supported). These folders contain examples for each LaunchPad and are organized based on function with lower-level Driverlib examples, higher-level TI Drivers examples, and examples for middleware such as GUI Composer, LIN, IQMath, and others.

Some examples support SysConfig to simplify the device configuration and accelerate software development. Refer to the SDK QuickStart guide for more details on how to get started using SysConfig, and look for the SysConfig symbol image0 in the sections below.

2. MSPM0 SDK Examples

2.1 Demos

The MSPM0 SDK includes several demos to showcase the functionalities of various devices.

Each demo is packaged with its own documentation, full source code, and project files for different supported IDEs and compilers, making the demos easy to use.

Stay tuned for more examples and functionality.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

TPS92543_uart_control_over_can

This example shows the implementation of using MSPM0 to drive TPS9254x to control different LED patterns.

N

N

N

N

image1

N

N

TPS929xxx_control_uart_over_can

This example shows the implementation of using MSPM0 to control BQ79616 to detect the battery status.

image2

N

N

N

N

N

N

blood_pressure_monitor

Blood Pressure Monitor demos

N

Y

N

N

N

N

N

bq7690x_control_i2c

Demonstrate BQ7690x control through I2C

N

image3

N

N

N

N

N

bq769x2_TIDA010247

Demonstrate using MSPM0 to control BQ76972 for reference design TIDA-010247

N

N

N

N

image4

N

N

bq769x2_control_i2c

Demonstrate BQ769x2 control through I2C

image5

image6

N

N

N

N

N

bq7870x_TIDA010279

This example shows the implementation of using MSPM0 to control BQ78706 for reference design TIDA-010279

N

N

N

N

image7

N

N

bq79616_uart_to_can

This example shows the implementation of using MSPM0 to control BQ79616 to detect the battery status.

image8

N

N

N

N

N

N

dualray_smoke_detector

Dualray smoke detector demo

N

image9

N

N

N

N

N

lcd_multi_port

1-wire target emulating a EEPROM interface

image10

N

N

N

N

N

N

lcd_single_port

1-wire target emulating a EEPROM interface

image11

image12

N

N

N

N

N

motor_control_bdc_sensor

This example shows a closed-loop control method for BDC motor.

N

N

image13

N

N

N

N

one_wire

1-wire target emulating a EEPROM interface

N

image14

N

N

N

N

N

out_of_box

Out of Box experience for MSPM0 LaunchPads

Y

Y

Y

Y

Y

N

Y

pga460_control_spi

This example shows the driver program for the PGA460

N

N

image15

N

N

N

N

pir_motion_detection

PIR Motion Detection using integrated OPA for the signal chain

N

image16

N

N

N

N

N

pulse_oximeter

Pulse oximeter demos

N

image17

N

N

N

N

N

2.2 DriverLib

DriverLib is a set of low level drivers providing an API for accessing MSPM0 registers and full device functionality.

The examples below use the Driverlib API to demonstrate the device functionality and range from simple use cases such as toggling a GPIO output pin to more complex use cases where multiple device peripherals are used.

Each example is packaged with its own documentation, full source code, and project files for different supported IDEs and compilers, making the examples easy to use.

2.2.1 AES Accelerator (AES)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

aes_cbc_256_enc_dec

AES256 CBC encryption and decryption example

image18

N

N

N

N

N

N

aes_cfb_256_decrypt

AES CFB 256 bit decryption example

image19

N

N

N

N

N

N

aes_ofb_128_encrypt

AES OFB 128 bit encryption example

image20

N

N

N

N

N

N

2.2.2 AESADV

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

aesadv_cbc_128_enc_dec

AES128 CBC encryption and decryption example

N

N

N

image21

image22

image23

N

aesadv_cmac_256_enc_dec

AES256 CMAC tag generation example

N

N

N

image24

image25

N

N

aesadv_ctr_128_enc_dec

AES128 CTR encryption and decryption example

N

N

N

image26

image27

image28

N

aesadv_ecb_128_enc_dec

AES128 ECB encryption and decryption example

N

N

N

image29

image30

image31

N

aesadv_ecb_256_encrypt

Performs 256-bit AES ECB encryption using the on-board AESADV engine with a software wrapper

N

N

N

image32

image33

image34

N

aesadv_gcm_128_enc_dec

AES128 GCM encryption and decryption example

N

N

N

image35

image36

N

N

2.2.3 Analog-to-Digital Converter (ADC)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

adc12_14bit_resolution

ADC12 conversion at maximum frequency using DMA with hardware averaging enabled

image37

image38

image39

image40

image41

image42

image43

adc12_internal_temp_sensor_mathacl

ADC12 samples internal temperature sensor and converts reading to Celsius and Fahrenheit degrees

image44

N

N

N

image45

N

N

adc12_max_freq_dma

ADC12 conversion at maximum frequency using DMA

image46

image47

image48

image49

image50

image51

image52

adc12_max_freq_dma_8bit

ADC12 conversion at maximum frequency using DMA in 8 bit resolution

image53

image54

image55

image56

image57

image58

image59

adc12_monitor_supply

ADC12 monitors voltage supply channel

image60

image61

image62

image63

image64

image65

image66

adc12_sequence_conversion

Demonstrate configuring ADC to trigger sequence of conversions on 4 different channels

image67

image68

N

image69

image70

image71

image72

adc12_simultaneous_trigger_event

Dual ADC12 conversion triggered by a Timer event

image73

N

N

N

image74

N

N

adc12_simultaneous_trigger_event_stop

Dual ADC12 conversion triggered by a Timer event while in STOP mode

image75

N

N

N

image76

N

N

adc12_single_conversion

ADC12 simple single conversion triggered by software

image77

image78

image79

image80

image81

image82

image83

adc12_single_conversion_vref_external

ADC12 single conversion triggered by software using external reference

image84

image85

N

image86

image87

image88

image89

adc12_single_conversion_vref_internal

ADC12 single conversion triggered by software using internal VREF

image90

image91

image92

image93

image94

image95

image96

adc12_triggered_by_timer_event

ADC12 conversion triggered by a Timer event

image97

image98

image99

image100

image101

image102

image103

adc12_triggered_by_timer_event_stop

ADC12 conversion triggered by a Timer event while in STOP mode

image104

image105

image106

image107

image108

image109

image110

adc12_window_comparator

ADC12 single conversion in repeat mode using window comparator feature

image111

image112

image113

image114

image115

image116

image117

2.2.4 Beeper

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

beeper_output

Configure the BEEPER to output a square wave at 1 kHz

N

N

image118

N

N

N

image119

2.2.5 CRCP

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

crcp_calculate_checksum

CRCP16 checksum calculation of a memory block

N

N

N

image120

image121

image122

N

crcp_calculate_checksum_dma

CRCP16 checksum calculation of a memory block using DMA block transfer

N

N

N

image123

image124

image125

N

2.2.6 Comparator (COMP)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

comp_analog_filter

Comparator using external inputs with hysteresis and output analog filter

image126

image127

N

image128

image129

N

N

comp_dac_to_timer_event

Comparator output using 8-bit DAC triggers a timer event to measure timing

image130

image131

N

image132

image133

N

N

comp_hs_dac_vref_external

Comparator in high-speed mode using 8-bit DAC with external VREF

image134

image135

N

image136

image137

N

N

comp_hs_tima_pwm_fault

Comparator in high-speed mode triggers a TIMA fault

image138

N

N

N

image139

N

N

comp_lp_dac_vref_internal

Comparator in low-power mode using 8-bit DAC with internal VREF

image140

N

N

N

image141

N

N

2.2.7 Controller Area Network (CAN)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

mcan_loopback

MCAN transmits and receives messages using loopback mode

image142

N

N

N

image143

N

N

mcan_message_rx

Example configured to receive CAN and CAN-FD frames

image144

N

N

N

image145

N

N

mcan_message_rx_tcan114x

Example configured to receive CAN and CAN-FD frames using BOOSTXL-TCAN1145 boosterpack.

image146

N

N

N

image147

N

N

mcan_multi_message_tx

CAN-FD transmits two messages with unique ID on GPIO interrupt

image148

N

N

N

image149

N

N

mcan_multi_message_tx_tcan114x

CAN-FD transmits two messages with unique ID on GPIO interrupt using BOOSTXL-TCAN1145 boosterpack.

image150

N

N

N

image151

N

N

mcan_single_message_tx

CAN-FD transmits a single message on GPIO interrupt

image152

N

N

N

image153

N

N

2.2.8 Cyclic Redundancy Check (CRC)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

crc_calculate_checksum

CRC checksum calculation of a memory block

image154

image155

image156

N

N

N

image157

crc_calculate_checksum_dma

CRC32 checksum calculation of a memory block using DMA block transfer

image158

image159

image160

N

N

N

image161

2.2.9 Digital-to-Analog Converter (DAC)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

dac12_dma_sampletimegen

DAC12 using DMA with sample time generator to generate sine wave

image162

N

N

N

image163

N

N

dac12_fifo_sampletimegen

DAC12 sending repetitive signal using FIFO and sample timer generator

image164

N

N

N

image165

N

N

dac12_fifo_timer_event

DAC12 sending a sawtooth signal using FIFO and triggered by a Timer event

image166

N

N

N

image167

N

N

dac12_fixed_voltage_vref_internal

DAC12 setting a fixed voltage output

image168

N

N

N

image169

N

N

2.2.10 Direct Memory Access (DMA)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

dma_block_transfer

DMA copies from Flash main memory to SRAM memory

image170

image171

image172

image173

image174

image175

image176

dma_fill_data

DMA memory fill of SRAM using DMA

image177

image178

N

image179

image180

image181

image182

dma_table_transfer

DMA using Table mode with DMA

image183

image184

N

image185

image186

image187

image188

2.2.11 Events Manager

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

event_input_triggers_output

Event configuration to toggle LED when switch is pressed

image189

image190

image191

image192

image193

image194

image195

2.2.12 GPIO

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

gpio_input_capture

GPIO triggers interrupt by input capture pin

image196

image197

image198

image199

image200

image201

image202

gpio_simultaneous_interrupts

Demonstrates how to simultaneously service three GPIO interrupts

image203

N

N

N

image204

N

N

gpio_software_poll

GPIO output is set based on polled input

image205

image206

image207

image208

image209

image210

image211

gpio_toggle_output

GPIO toggling an output pin

image212

image213

image214

image215

image216

image217

image218

gpio_toggle_output_cpp

GPIO toggling output pins using C++

image219

image220

N

image221

image222

image223

image224

gpio_toggle_output_hiz

GPIO toggling an ouputput pin configured as Hi-Z

image225

image226

image227

image228

image229

image230

image231

2.2.13 General-Purpose Amplifier (GPAMP)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

gpamp_buffer_to_adc

GPAmp configured in buffer mode with output to ADC

image232

image233

N

N

N

N

N

gpamp_general_purpose_rri

GPAmp configured in general purpose Rail-to-Rail mode

image234

image235

N

N

N

N

N

2.2.14 I2S

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

i2s_controller_transmit_dma

I2S Controller using DMA to output sine wave

N

N

N

N

N

N

N

2.2.15 IWDT

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

iwdt_periodic_reset

Periodic reset of the indepedent watchdog timer in LFSS.

N

N

N

image236

image237

image238

image239

2.2.16 Inter-Integrated Circuit (I2C)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

i2c_controller_rw_multibyte_fifo_interrupts

I2C Controller reading and writing multiple bytes using interrupts with FIFO

image240

image241

image242

image243

image244

image245

image246

i2c_controller_rw_multibyte_fifo_poll

I2C Controller reading and writing multiple bytes polling FIFO

image247

image248

image249

image250

image251

image252

image253

i2c_controller_rw_repeated_start_fifo_interrupts

I2C Controller reading and writing multiple bytes using interrupts with FIFO

image254

N

N

N

N

N

N

i2c_controller_target_dynamic_switching

I2C dynamic switching between Controller and Target modes

image255

image256

image257

image258

image259

image260

image261

i2c_multicontroller_arbitration

I2C Controller detecting arbitration error

image262

image263

image264

image265

image266

image267

image268

i2c_target_rw_multibyte_fifo_interrupts

I2C Target reading and writing multiple bytes using interrupts

image269

image270

image271

image272

image273

image274

image275

i2c_target_rw_multibyte_fifo_interrupts_stop

I2C Target reading and writing multiple bytes using interrupts while in STOP mode

image276

image277

image278

image279

image280

image281

image282

i2c_target_rw_multibyte_fifo_poll

I2C Target reading and writing multiple bytes polling FIFO

image283

image284

image285

image286

image287

image288

image289

2.2.17 LCD

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

lcd_write_memory

Write characters to onboard LCD.

N

N

N

image290

N

N

N

2.2.18 Math Accelerator (MATHACL)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

mathacl_mpy_div_op

MATHACL implementation of trigonometric functions

image291

N

N

N

image292

N

N

mathacl_trig_op

MATHACL implementation of trigonometric functions

image293

N

N

N

image294

N

N

2.2.19 Non-Volatile Memory (FLASHCTL)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

flashctl_blank_verify

Implementation of Flash Blank Verify command

image295

image296

image297

image298

image299

image300

image301

flashctl_dynamic_memory_protection

Flash configured with dynamic protection

image302

image303

image304

image305

image306

image307

image308

flashctl_ecc_error_injection

Flash ECC testing and SEC and DED error detection

image309

N

N

image310

image311

N

N

flashctl_multiple_size_read_verify

Implementation of Flash read verify commands on multiple data sizes, with and without ECC

image312

image313

image314

image315

image316

image317

image318

flashctl_multiple_size_write

Flash writing of different size data

image319

image320

image321

image322

image323

image324

image325

flashctl_nonmain_memory_write

Read-write of Non-Main Flash memory

image326

image327

image328

image329

N

image330

image331

flashctl_program_with_ecc

Flash writing of different size data

image332

N

N

image333

image334

N

N

2.2.20 Operational Amplifier (OPA)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

opa_burnout_current_source_to_adc

OPA in buffer mode enabling burnout current source to ADC

image335

image336

N

N

N

N

N

opa_dac8_output_buffer

OPA in output buffer mode using 8-bit DAC

image337

image338

N

N

N

N

N

opa_general_purpose_rri

OPA in general purpose mode with Rail-to-Rail configuration

image339

image340

N

N

N

N

N

opa_inverting_pga_with_dac

OPA in inverting PGA configuration using DAC12 as bias

image341

N

N

N

N

N

N

opa_non_inverting_pga

OPA in non-inverting PGA configuration

image342

image343

N

N

N

N

N

opa_signal_chain_to_adc

Two OPAs configured in TIA and PGA, connected to ADC

image344

N

N

N

N

N

N

2.2.21 Other

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

cinit_bypass

Bypass CINIT skipping variable initialization

image345

image346

image347

image348

image349

image350

image351

empty

Empty example to be used as a starting point for new development

image352

image353

image354

image355

image356

image357

image358

empty_cpp

Empty start-up project in C++

image359

image360

N

image361

image362

image363

image364

empty_driverlib_library

Empty start-up project that generates a static library for DriverLib

Y

Y

Y

Y

Y

Y

Y

empty_driverlib_src

Empty start-up project that includes a copy of the DriverLib source code

image365

image366

image367

image368

image369

image370

image371

empty_non_sysconfig

Empty start-up project that does not use SysConfig

Y

Y

Y

Y

Y

Y

Y

nvic_interrupt_disable

NVIC used to demonstrate best approach to disable interrupts

image372

image373

image374

image375

image376

image377

image378

nvic_interrupt_grouping

NVIC configuration and use of interrupt grouping

image379

image380

image381

image382

image383

image384

N

sram_parity

Initializes and uses Parity SRAM

image385

N

N

image386

image387

image388

image389

systick_periodic_timer

SysTick generates periodic interrupt

image390

image391

N

image392

image393

image394

image395

2.2.22 Real-Time Clock (RTC)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

rtc_a_tamper_timestamp_event

Generates a time stamp event on RTC_A upon tamper detection

N

N

N

image396

N

N

N

rtc_b_calendar_alarm_standby

RTC sets calendar alarm and toggles GPIO when alarm is triggered

N

N

N

N

image397

image398

image399

rtc_b_offset_calibration_lfxt

RTC offset correction of crystal

N

N

N

N

image400

image401

image402

rtc_calendar_alarm_standby

RTC sets calendar alarm and toggles GPIO when alarm is triggered

image403

N

N

N

N

N

N

rtc_offset_calibration_lfxt

RTC offset correction of crystal

image404

N

N

N

image405

N

N

rtc_periodic_alarm_lfosc_standby

RTC implementation of periodic alarm in STANDBY using LFOSC

image406

N

N

N

image407

N

N

rtc_periodic_alarm_lfxt_standby

RTC implementation of periodic alarm in STANDBY using LFXT

image408

N

N

N

N

N

N

2.2.23 Scratchpad

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

scratchpad_erase_on_tamper

Erases scratchpad data upon detection of tamper

N

N

N

image409

N

N

N

scratchpad_retain_on_vdd_loss

Retains scratchpad data on loss of VDD power.

N

N

N

image410

N

N

N

2.2.24 Serial Peripheral Interface (SPI)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

spi_controller_command_data_control

SPI Controller transmit using command data (CD) control

image411

image412

image413

image414

image415

image416

image417

spi_controller_echo_interrupts

SPI Controller transmits data using Motorola format

image418

image419

image420

image421

image422

image423

image424

spi_controller_fifo_dma_interrupts

SPI Controller reading and writing multiple bytes using FIFO and DMA

image425

image426

N

N

image427

N

image428

spi_controller_internal_loopback_poll

SPI Controller with internal loopback using polling

image429

image430

image431

image432

image433

image434

image435

spi_controller_multibyte_fifo_poll

SPI Controller reading and writing multiple bytes polling FIFO

image436

image437

image438

image439

image440

image441

image442

spi_controller_register_format

SPI Controller transmit and read data using register format

image443

image444

image445

image446

image447

image448

image449

spi_controller_repeated_fifo_dma_interrupts

SPI Controller reading and writing multiple bytes using FIFO and DMA every second

image450

image451

N

image452

image453

image454

image455

spi_peripheral_echo_interrupts

SPI Peripheral echoes data using Motorola format

image456

image457

image458

image459

image460

image461

image462

spi_peripheral_fifo_dma_interrupts

SPI Peripheral reading and writing multiple bytes using FIFO and DMA

image463

image464

N

N

image465

N

image466

spi_peripheral_multibyte_fifo_poll

SPI Peripheral reading and writing multiple bytes polling FIFO

image467

image468

image469

image470

image471

image472

image473

spi_peripheral_register_format

SPI Peripheral transmit and read data using register format

image474

image475

image476

image477

image478

image479

image480

spi_peripheral_repeated_fifo_dma_interrupts

SPI Peripheral reading and writing multiple bytes using FIFO and DMA

image481

image482

N

image483

image484

image485

image486

2.2.25 System Controller (SYSCTL)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

sysctl_frequency_clock_counter

Monitor SYSOSC via Frequency Clock Counter (FCC)

image487

image488

image489

image490

image491

image492

image493

sysctl_hfxt_run

Sets external HFXT as source to HSCLK and MCLK (48MHz)

image494

N

N

image495

image496

N

image497

sysctl_lfxt_standby

Sets LFXT as source to LFCLK (32kHz) and power policy in STANDBY0

image498

N

N

image499

image500

image501

image502

sysctl_mclk_syspll

Sets MCLK to run from SYSPLL (80MHz)

image503

N

N

N

image504

N

N

sysctl_power_policy_sleep_to_standby

SYSCTL switches between SLEEP mode and STANDBY modes

image505

image506

image507

image508

image509

image510

image511

sysctl_power_policy_sleep_to_stop

SYSCTL switches between SLEEP mode and STOP modes

image512

image513

image514

image515

image516

image517

image518

sysctl_shutdown

Show correct wake-up mechanism after SHUTDOWN vs STOP, STANDBY and SLEEP

image519

image520

image521

image522

image523

image524

image525

2.2.26 Tamper IO

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

tamperio_heartbeat

Configures a TamperIO pin to continuously output a heartbeat

N

N

N

image526

N

N

N

2.2.27 Timer - Advanced (TIMA)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

tima_timer_mode_periodic_repeat_count

TimerA in periodic mode using repeat-count feature

image527

N

image528

image529

image530

image531

image532

tima_timer_mode_pwm_dead_band

TimerA outputs PWM signals with dead band insertion

image533

N

image534

image535

image536

image537

image538

tima_trigger_fail_mechanism

TimerA demonstrating fault detection

image539

N

image540

image541

image542

image543

image544

2.2.28 Timer - General Purpose (TIMG)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

timg_32bit_timer_mode_periodic_sleep

32-bit timer in periodic mode while device is in SLEEP mode

image545

N

N

N

image546

N

N

timg_32bit_timer_mode_pwm_edge_sleep

32-bit timer in PWM edge aligned mode while device is in SLEEP mode

image547

N

N

N

image548

N

N

timg_qei_mode

TimerG uses QEI to decode relative position output of a quadrature encoder

image549

N

image550

N

image551

N

N

2.2.29 Timer - Generic (TIMx)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

timx_timer_mode_capture_duty_and_period

Timer calculates period and duty cycle

image552

image553

image554

image555

image556

image557

image558

timx_timer_mode_capture_edge_capture

Timer edge time detection using Timer capture mode

image559

image560

image561

image562

image563

image564

image565

timx_timer_mode_compare_edge_count

Timer edge counting capability using compare mode

image566

image567

image568

image569

image570

image571

image572

timx_timer_mode_one_shot_standby

Timer in one-shot mode while device is in STANDBY mode

image573

image574

image575

image576

image577

image578

image579

timx_timer_mode_periodic_sleep

Timer in periodic mode while device is in SLEEP mode

image580

image581

image582

image583

image584

image585

image586

timx_timer_mode_periodic_standby

Timer in periodic mode while device is in STANDBY mode

image587

image588

image589

image590

image591

image592

image593

timx_timer_mode_periodic_stop

Timer in periodic mode while device is in STOP mode

image594

image595

image596

image597

image598

image599

image600

timx_timer_mode_pwm_center_stop

Timer in PWM center aligned mode while device is in STOP mode

image601

image602

image603

image604

image605

image606

image607

timx_timer_mode_pwm_edge_sleep

Timer in PWM edge aligned mode while device is in SLEEP mode

image608

image609

image610

image611

image612

image613

image614

timx_timer_mode_pwm_edge_sleep_shadow

Timer updating PWM duty cycle using shadow load feature

image615

image616

image617

image618

image619

image620

image621

timx_timer_mode_pwm_x_trig_stop_restore

Timer in PWM mode after coming out of STOP with retention in SW

image622

N

N

N

image623

N

N

2.2.30 True Random Number Generator (TRNG)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

trng_sample

TRNG sampling to fill a buffer with random data

image624

N

N

N

image625

N

N

trng_sample_stop_restore

TRNG sample random data after coming out of STOP with retention in SW

image626

N

N

N

image627

N

N

2.2.31 Universal Asynchronous Receiver-Transmitter (UART)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

uart_echo_interrupts_standby

UART RX/TX echo using interrupts while device is in STANDBY mode

image628

image629

image630

image631

image632

image633

image634

uart_extend_irda_receive_packet

UART Extend using IrDA encoding, send packet via UART

image635

N

N

N

image636

N

N

uart_extend_irda_send_packet

UART Extend using IrDA encoding, send packet via UART

image637

N

N

N

image638

N

N

uart_extend_manchester_echo

UART Extend using Manchester encoding, echo received packet

image639

image640

image641

image642

image643

image644

image645

uart_extend_manchester_send_packet

UART Extend using Manchester encoding and decoding, send a packet

image646

image647

image648

image649

image650

image651

image652

uart_external_loopback_interrupt

UART RX/TX external loopback using interrupts

image653

image654

image655

image656

image657

image658

image659

uart_internal_loopback_standby_restore

UART internal loopback after coming out of STANDBY with retention in SW

image660

N

N

N

image661

N

N

uart_rs485_receive_packet

Demonstrate UART in RS485 mode, receive a packet

image662

N

N

N

image663

N

N

uart_rs485_send_packet

Demonstrate UART in RS485 mode, send a packet

image664

N

N

N

image665

N

N

uart_rw_multibyte_fifo_poll

UART RX/TX using FIFOs with polling

image666

image667

image668

image669

image670

image671

image672

uart_rx_hw_flow_control

UART RX using HW flow control

image673

image674

image675

image676

image677

image678

image679

uart_rx_multibyte_fifo_dma_interrupts

UART RX using a DMA trigger

image680

image681

N

image682

image683

image684

image685

uart_tx_console_multibyte_repeated_fifo_dma

UART TX to a console using a continous DMA trigger

image686

image687

N

image688

image689

image690

image691

uart_tx_hw_flow_control

UART TX using hardware flow control

image692

image693

image694

image695

image696

image697

image698

uart_tx_multibyte_fifo_dma_interrupts

UART TX using a DMA trigger

image699

image700

N

image701

image702

image703

image704

2.2.32 Window Watchdog Timer (WWDT)

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

wwdt_interval_timer_lfosc_standby

WWDT interval timer mode using LFOSC while device is in STANDBY mode

image705

image706

image707

image708

image709

image710

image711

wwdt_interval_timer_lfxt_standby

WWDT interval timer mode using LFXT while device is in STANDBY mode

image712

N

N

image713

image714

image715

image716

wwdt_window_mode_periodic_reset

WWDT Window watchdog mode with periodic reset

image717

image718

image719

image720

image721

image722

image723

2.3 TI-Drivers

TI Drivers provide a robust set of intuitive, functional APIs that offer portable, feature-rich access to peripherals.

TI-Drivers for MSPM0 are under development, but the examples below provide a glimpse of expected functionality.

2.3.1 FreeRTOS

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

adc_singlechannel/freertos

Get the samples from the configured ADC channel and print them on the console using UART

Y

N

N

Y

Y

Y

N

empty_freertos/freertos

Empty example to be used as a starting point for new development using FreeRTOS

Y

N

N

Y

Y

Y

N

gpiointerrupt/freertos

Toggles the LED(s) using a GPIO pin interrupt

Y

N

N

Y

Y

Y

N

i2c_controller/freertos

Implements I2C controller sending commands to another device running i2c_target example

Y

N

N

Y

Y

Y

N

i2c_target/freertos

Responds to the i2c_controller example commands using the i2c target driver

Y

N

N

Y

Y

Y

N

i2c_tmp/freertos

Read temperature from Tmp117 Sensor using I2C

Y

N

N

Y

Y

Y

N

spi_controller/freertos

Demonstrates the SPI driver in controller mode to communicate with another LP_MSPM0G3507 running the spi_peripheral example

Y

N

N

Y

Y

Y

N

spi_peripheral/freertos

Demonstrates the SPI driver in peripheral mode to communicate with another LP_MSPM0G3507 running the spi_controller example

Y

N

N

Y

Y

Y

N

uart_callback/freertos

UART simple echo using callback

Y

N

N

Y

Y

Y

N

uart_echo/freertos

UART simple echo

Y

N

N

Y

Y

Y

N

2.3.2 No RTOS

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

uart_echo/nortos

UART simple echo

Y

N

N

Y

Y

Y

N

2.4 Battery Gauge

The MSPM0 SDK includes source code and examples showing the implementation of different battery gauge solutions. Documentation includes links to companion application reports describing the solutions in more detail.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

hello_world_ai

Demonstrates basic implementation of AI on MSPM0 device

image724

N

N

N

N

N

N

2.5 Battery Gauge

The MSPM0 SDK includes source code and examples showing the implementation of different battery gauge solutions. Documentation includes links to companion application reports describing the solutions in more detail.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

gauge_level1

The level1 gauge approach utilizes the ADC to implement a low-cost voltage detection solution

N

Y

N

N

N

N

N

gauge_level2_bq76952

This example implements a Level2 gauge solution using BQ76952

image725

N

N

N

N

N

N

gauge_level2_standalone

The level2 gauge solution utilizes the ADC and OPAs on MSPM0 for high precision voltage and current detection

N

image726

N

N

N

N

N

self_calibrate_current_detection

This example demonstrates a self-calibratable, high precision and low-cost current detection solution based on MSPM0 internal OPAs

N

Y

N

N

N

N

N

2.6 Boot Image Manager (BIM)

The MSPM0 SDK includes a boot image manager implementation to demonstrate how a user can verify integrity and authenticity of images loaded onto their device.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

bim_sample_image

Sample GPIO toggle image for BIM

image727

image728

N

N

N

N

N

boot_application

Boot Image Manager Using MCUBoot

image729

image730

N

N

N

N

N

customer_secure_code

Customer Secure Code based off MCUBoot

N

N

N

image731

image732

N

N

customer_secure_image_with_bootloader

Sample GPIO toggle image for Customer Secure Code

N

N

N

image733

image734

N

N

customer_secure_sample_image

Sample GPIO toggle image for Customer Secure Code

N

N

N

image735

image736

N

N

sha256_rom

Demonstartion of using SHA api exposed from ROM open section

N

N

N

N

Y

N

N

2.7 Bootstrap Loader (BSL)

The bootstrap loader (BSL) provides a method to program and/or verify the device memory through a standard UART or I2C serial interface. Among its features, the BSL supports MAIN flash plugins to enable additional interfaces and functionality.

The MSPM0 SDK includes examples showing how to implement plugins and other BSL functionality in MAIN Flash.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

bsl_can_flash_interface

Shows an implementation of a BSL CAN Flash interface

image737

N

N

N

image738

N

N

bsl_host_mcu_to_mspm0c110x_target_i2c

Demonstrate how to program a MSPM0C110x MCU using a LP-MSPM0C1104 as host by BSL I2C interface.

N

N

image739

N

N

N

N

bsl_host_mcu_to_mspm0c110x_target_uart

Demonstrate how to program a MSPM0C110x MCU using a LP-MSPM0C1104 as host by BSL UART interface.

N

N

image740

N

N

N

N

bsl_host_mcu_to_mspm0g1x0x_g3x0x_target_can

Demonstrate how to program a MSPM0 MCU using a LP-MSPM0G3507 as host by BSL CAN interface.

image741

N

N

N

N

N

N

bsl_host_mcu_to_mspm0g1x0x_g3x0x_target_i2c

Demonstrate how to program a MSPM0 MCU using a LP-MSPM0G3507 as host by BSL I2C interface.

image742

N

N

N

N

N

N

bsl_host_mcu_to_mspm0g1x0x_g3x0x_target_spi

Demonstrate how to program a MSPM0 MCU using a LP-MSPM0G3507 as host by BSL SPI interface.

image743

N

N

N

N

N

N

bsl_host_mcu_to_mspm0g1x0x_g3x0x_target_uart

Demonstrate how to program a MSPM0 MCU using a LP-MSPM0G3507 as host by BSL UART interface.

image744

N

N

N

N

N

N

bsl_host_mcu_to_mspm0l11xx_l13xx_target_i2c

Demonstrate how to program a MSPM0L11xx_L13xx MCU using a LP-MSPM0L1306 as host by BSL I2C interface.

N

image745

N

N

N

N

N

bsl_host_mcu_to_mspm0l11xx_l13xx_target_spi

Demonstrate how to program a MSPM0L11xx_L13xx MCU using a LP-MSPM0L1306 as host by BSL SPI interface.

N

image746

N

N

N

N

N

bsl_host_mcu_to_mspm0l11xx_l13xx_target_uart

Demonstrate how to program a MSPM0L11xx_L13xx MCU using a LP-MSPM0L1306 as host by BSL UART interface.

N

image747

N

N

N

N

N

bsl_host_mcu_to_mspm0l122x_l222x_target_i2c

Demonstrate how to program a MSPM0L122x_L222x MCU using a LP-MSPM0L2228 as host by BSL I2C interface.

N

N

N

image748

N

N

N

bsl_host_mcu_to_mspm0l122x_l222x_target_spi

Demonstrate how to program a MSPM0L122x_L222x MCU using a LP-MSPM0L2228 as host by BSL SPI interface.

N

N

N

image749

N

N

N

bsl_host_mcu_to_mspm0l122x_l222x_target_uart

Demonstrate how to program a MSPM0L122x_L222x MCU using a LP-MSPM0L2228 as host by BSL UART interface.

N

N

N

image750

N

N

N

bsl_i2c_flash_interface

Shows an implementation of BSL I2C Flash interface

image751

image752

N

image753

image754

image755

N

bsl_software_invoke_app_demo_can

Demonstrates an application request to reset the device and jump to the ROM bootloader (BSL).

image756

N

N

N

N

N

N

bsl_software_invoke_app_demo_i2c

Demonstrates an application request to reset the device and jump to the ROM bootloader (BSL).

image757

image758

image759

image760

N

N

N

bsl_software_invoke_app_demo_spi

Demonstrates an application request to reset the device and jump to the ROM bootloader (BSL).

image761

image762

N

image763

N

N

N

bsl_software_invoke_app_demo_uart

Demonstrates an application request to reset the device and jump to the ROM bootloader (BSL).

image764

image765

image766

image767

N

N

N

bsl_spi_flash_interface

Shows an implementation of a BSL SPI Flash interface

image768

image769

N

image770

image771

image772

N

bsl_uart_flash_interface

Shows an implementation of a BSL UART Flash interface

image773

image774

N

image775

image776

image777

N

flash_bsl

Provides BSL suport from flash memory

N

N

image778

N

N

N

image779

secondary_bsl_can

Implements a secondary bootloader in Main overriding the ROM BSL

image780

N

N

N

N

N

N

secondary_bsl_i2c

Implements a secondary bootloader in Main overriding the ROM BSL

image781

image782

N

image783

image784

image785

N

secondary_bsl_spi

Implements a secondary bootloader in Main overriding the ROM BSL

image786

image787

N

image788

image789

image790

N

secondary_bsl_uart

Implements a secondary bootloader in Main overriding the ROM BSL

image791

image792

N

image793

image794

image795

N

2.8 CMSIS-DSP

The CMSIS DSP software library includes a comprehensive set of signal processing functions for use on Cortex-M MCUs.

The MSPM0 SDK includes examples showing how to get started using CMSIS DSP.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

cmsis_dsp_empty

Empty example using CMSIS-DSP

image796

image797

N

N

image798

image799

image800

cmsis_dsp_fft_q15

FFT of fixed point array using CMSIS-DSP

image801

image802

N

N

image803

image804

image805

2.9 UART COMMUNICATION MODULE

MSPM0 Communication Modules - UART module provides a simple way for the application developer to integrate UART based communication module for communication.

The MSPM0 SDK includes easy-to-use examples for Controller and Target.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

i2c_controller

Generic I2C Communication Module - Controller code

image806

N

N

N

image807

N

N

i2c_target

Generic I2C Communication Module - Target code

image808

N

N

N

image809

N

N

uart_controller

Generic UART Communication Module - Controller code

image810

N

N

N

image811

N

N

uart_target

Generic UART Communication Module - Target code

image812

N

N

N

image813

N

N

2.10 DALI

MSPM0 supports the DALI Protocol via the UART module. DALI (Digitally Addressable Lighting Interface) is a serial protocol for digital lighting control that allows for simple and efficient communication between various lighting application gear and controllers.

The MSPM0 SDK includes the source code and examples showing the implementation of supported solutions.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

dali_led_demo

Demonstrates usage of DALI protocol with an LED control demo

N

image814

N

image815

N

N

image816

dali_occupancy_sensor

Demonstrates usage of DALI Input Device with Occupancy Sensor (PIR)

image817

N

N

N

N

N

N

dali_test_controller

Demonstrates usage of DALI Application Controller by sending commands during runtime to DALI Occupancy sensor example

image818

N

N

N

N

N

N

2.11 EEPROM

MSPM0 supports EEPROM emulation through its internal Flash. Compared to using an external serial EEPROM, EEPROM emulation using the internal Flash saves pin usage and cost.

The MSPM0 SDK includes a library and examples showing the implementation of supported solutions.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

eeprom_emulation_type_a

Demonstrates Type A EEPROM emulation to store non-volatile data

Y

Y

Y

Y

Y

Y

Y

eeprom_emulation_type_a_test

Demonstrates a more detailed use case of Type A EEPROM emulation to store blocks of non-volatile data

Y

Y

Y

Y

Y

Y

Y

eeprom_emulation_type_b

Demonstrates Type B EEPROM emulation to store user data

Y

Y

Y

Y

Y

Y

Y

eeprom_emulation_type_b_test

Demonstrates a more detailed use case of Type B EEPROM emulation to store user data

Y

Y

Y

Y

Y

Y

Y

2.12 Energy Library

The MSPM0 SDK includes a collection of energy measurement examples designed to get you started quickly in testing and developing energy measurement applications.

Stay tuned for more examples and functionality coming soon.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

single_phase_TIDA_010940_SW

Firmware for single phase measurement using MSPM0L2228, AMC131M03 and ADS131M02

N

N

N

image819

N

N

N

split_phase_TIDA_010944_SW

Firmware for Split phase measurement using MSPM0G3507, ADS131M02 and AMC131M03

image820

N

N

N

N

N

N

three_phase_TIDA_010243_SW

Firmware for 3 phase measurement using MSPM0G3507 and ADS131M08

image821

N

N

N

N

N

N

three_phase_TIDA_010244_SW

Firmware for 3 phase measurement using MSPM0G3507 and 4xAMC131M03

image822

N

N

N

N

N

N

2.13 GUI Composer

GUI Composer is a browser-based tool for developing PC-side HTML-based GUIs that can complement your embedded project or application.

The MSPM0 SDK includes a library and various examples showing the implementation of supported protocols.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

gc_simple_json

Demonstrates basic usage of GUI Composer communication using JSON-formatted strings

image823

image824

N

N

image825

image826

image827

gc_simple_messagepack

Demonstrates basic usage of GUI Composer communication using MessagePack protocol

image828

image829

N

N

image830

image831

image832

2.14 IQMath

IQMath is a collection of highly optimized and high-precision fixed-point mathematical functions.

The MSPM0 SDK includes IQMath support using simple C runtime-system (RTS) functions, and leveraging the MathAcl hardware accelerator.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

iqmath_mathacl_ops_test

Implements various fixed-point operations leveraging the MathACL implementation of IQMath

image833

N

N

N

image834

N

N

iqmath_rts_ops_test

Implements various fixed-point operations leveraging the RTS implementation of IQMath

image835

image836

N

image837

image838

image839

image840

2.15 RTOS Kernel

The MSPM0 SDK includes a collection of examples to test kernel functionality.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

blink_led

Simple FreeRTOS LED blinky demo using two tasks

image841

N

N

image842

image843

image844

N

posix_demo

Simple Posix FreeRTOS blinky LED demo

image845

N

N

image846

image847

image848

N

2.16 LIN

The Local Interconnect Network (LIN) is a multipoint, low-cost, easily-implemented communication bus commonly used in automobiles.

The MSPM0 SDK includes easy-to-use examples for Commander and Responder.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

lin_commander

Demonstrates basic implementation of LIN commander to transmit and receive LIN 2.0 packets using UART

image849

image850

image851

N

image852

image853

image854

lin_responder

Demonstrates basic implementation of LIN responder to transmit and receive LIN 2.0 packets using UART

image855

image856

image857

N

image858

image859

image860

2.17 Sensored Trap Hall Motor Control

The MSPM0 SDK includes examples to evaluate the sensored trap hall motor control library with the DRV8300DRGEEVM, DRV8311HEVM, DRV8316REVM, DRV8317HEVM, DRV8323RHEVM, DRV8328AEVM, DRV8329AEVM and DRV8353RHEVM. These firmware are designed for a GUI to make testing and evaluation quick for the user.

Stay tuned for more examples and functionality coming soon.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

drv8300drgeevm-gui-firmware

Firmware for LP_MSPM0G3507 and drv8300drge EVM GUI

image861

N

N

N

N

N

N

drv8311hevm-gui-firmware

Firmware for LP_MSPM0G3507 and drv8311h EVM GUI

image862

N

N

N

N

N

N

drv8316revm-gui-firmware

Firmware for LP_MSPM0G3507 and DRV8316R EVM GUI

image863

N

N

N

N

N

N

drv8317hevm-gui-firmware

Firmware for LP_MSPM0G3507 and drv8317h EVM GUI

image864

N

N

N

N

N

N

drv8323rhevm-gui-firmware

Firmware for LP_MSPM0G3507 and drv8323rh EVM GUI

image865

N

N

N

N

N

N

drv8328aevm-gui-firmware

Firmware for LP_MSPM0G3507 and DRV8328A EVM GUI

image866

N

N

N

N

N

N

drv8329aevm-gui-firmware

Firmware for DRV8329A EVM GUI

image867

image868

N

N

image869

N

image870

drv8353rhevm-gui-firmware

Firmware for LP_MSPM0G3507 and drv8353rh EVM GUI

image871

N

N

N

N

N

N

tida-010251-gui-firmware

Firmware for LP_MSPM0G1507 and DRV8328 motor driver

image872

N

N

N

N

N

N

2.18 Brushed Motor Control

The MSPM0 SDK includes an example to evaluate the brushed motor control library with the DRV8706-Q1 EVM. This firmware was designed for a GUI to make testing and evaluation quick for the user.

Stay tuned for more examples and functionality coming soon.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

drv8706s-q1-evm-gui-firmware

Firmware for DRV8706S-Q1 EVM GUI

N

image873

N

N

N

N

image874

2.19 Sensorless FOC Motor Control

The MSPM0 SDK includes examples to evaluate the sensorless FOC motor control library with the DRV8323RS EVM. These firmware are designed for a GUI to make testing and evaluation quick for the user.

Stay tuned for more examples and functionality coming soon.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

hall_sensored-foc_DRV8316

Sensorless FOC code for MSPM0Gx5xx and DRV8316REVM

image875

N

N

N

image876

N

N

hall_sensored-foc_TIDA010251

Sensorless FOC code for TIDA010251 reference design

image877

N

N

N

N

N

N

2.20 Sensorless FOC Motor Control

The MSPM0 SDK includes examples to evaluate the sensorless FOC motor control library with the DRV8323RS EVM. These firmware are designed for a GUI to make testing and evaluation quick for the user.

Stay tuned for more examples and functionality coming soon.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

sensorless-foc_DRV8316

Sensorless FOC code for LP_MSPM0G35xx and DRV8316REVM

image878

N

N

N

image879

N

N

sensorless-foc_DRV8323RS

image880

N

N

N

image881

N

N

sensorless-foc_DRV8329

Sensorless FOC code for LP_MSPM0G35xx and DRV8329AEVM

image882

N

N

N

image883

N

N

sensorless-foc_TIDA010250

Sensorless FOC code for TIDA010250 reference design

image884

N

N

N

N

N

N

2.21 Stepper Motor Control

The MSPM0 SDK includes examples to evaluate the stepper motor control library with the DRV8411A and DRV8889-q1 EVM. These firmwares were designed for a GUI to make testing and evaluation quick for the user.

Stay tuned for more examples and functionality coming soon.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

drv8411aevm-gui-firmware

Firmware for LP_MSPM0L1306 and DRV8411AEVM GUI

N

image885

N

N

N

N

N

drv8889-q1evm-gui-firmware

Firmware for LP_MSPM0L1306 and DRV8889-Q1 EVM GUI

N

image886

N

N

N

N

image887

2.22 Sensorless FOC Motor Control

The MSPM0 SDK includes examples to evaluate the sensorless FOC motor control library with the DRV8323RS EVM. These firmware are designed for a GUI to make testing and evaluation quick for the user.

Stay tuned for more examples and functionality coming soon.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

universal-foc_DRV8316

image888

N

N

N

image889

N

N

universal-foc_DRV8323RS

Sensorless FOC code for LP_MSPM0G35xx and BOOSTXL-DRV8323RS

image890

N

N

N

image891

N

N

universal-foc_DRV8329

Sensorless FOC code for LP_MSPM0G35xx and DRV8329AEVM

image892

N

N

N

image893

N

N

universal-foc_TIDA010250

Sensorless FOC code for TIDA010250 reference design

image894

N

N

N

N

N

N

2.23 DALI

MSPM0 supports the M-PESTI Target via the UART module. PESTI communication is based on a command and response method where the peripheral/target is permitted to only transmit data upon request by the initiator.

The MSPM0 SDK includes the source code and examples showing the implementation of supported solutions.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

mpesti_initiator

This example can help to test the M-PESTI Target

image895

N

N

N

N

N

N

mpesti_target

This example tests the basic functionality of M-PESTI target

image896

N

N

N

N

N

N

2.24 MSP Subsystems

Accelerate your development with our broad selection of MSPM0 subsystems, integrating our application building blocks to simplify your software efforts. You can easily adapt each subsystem to meet your specific end-equipment needs using our step-by-step instructions, design insights, software, and suggestions for feature enhancements.

Each subsystem contains a subsystem design and software example.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

adc_dma_ping_pong

Capture ADC data into 2 (ping-pong) buffers

image897

image898

N

image899

image900

image901

N

adc_to_i2c_target

Sample ADC and respond to I2C commands sent by a controller

image902

image903

N

N

image904

image905

N

adc_to_pwm

Convert analog voltage to PWM

image906

image907

N

image908

image909

image910

N

adc_to_spi_peripheral

Sample ADC and respond to SPI commands sent by a controller

image911

image912

N

N

image913

image914

N

adc_to_uart

Configures the ADC0 to trigger single conversion and send the ADC data through UART

image915

image916

N

image917

image918

image919

N

can_to_i2c_controller_bridge

Bridge between CAN interface and I2C controller interface

image920

N

N

N

N

N

N

can_to_i2c_target_bridge

Bridge between CAN interface and I2C target interface

image921

N

N

N

N

N

N

can_to_spi_bridge

Bridge between CAN interface and SPI interface

image922

N

N

N

N

N

N

can_to_uart_bridge

Bridge between CAN interface and UART interface

image923

N

N

N

N

N

N

dac8_dma_function_generator

Generates waveform using DAC8 with the DMA

image924

image925

N

N

N

N

N

data_sensor_aggregator

This example reads all the sensors on the BP-BASSENSORSMKI using I2C then transmits all of the data through UART to the MSPM0.

image926

N

N

N

N

N

N

digital_mux

Emulate a digital mux with GPIO

N

image927

N

N

N

image928

N

diode_matrix

Drive LEDs with fewer pins using diode matrix

N

image929

N

N

N

image930

N

fir_low_pass_filter

Applies digital FIR low-pass filter to sampled ADC signals

image931

N

N

N

image932

N

N

frequency_counter_tone_detection

LED/Pin is toggled when analog input frequency is within desired range

N

image933

N

N

N

N

N

i2c_expander

I2C Target receives I2C transmissions and sends them on requested I2C interface

N

N

N

image934

N

N

N

i2c_expander_uart_to_i2c_bridge

Target receives UART transmission and sends an I2C transmission on the requested I2C interface, returning the data back via UART

N

image935

N

N

N

N

N

i2c_host_controller

Example I2C IO expander and I2C host controller

image936

image937

N

N

N

N

N

i2c_target_io_expander

Example I2C IO expander and I2C host controller

image938

image939

N

N

N

N

N

i2c_to_spi_bridge

Implements an I2C to SPI Bridge using an M0 MCU

image940

N

N

N

N

N

N

i2c_to_uart_bridge

I2C Target receives I2C transmissions and passes them on via UART

image941

N

N

image942

N

N

N

iir_low_pass_filter

Applies digital IIR filter to sampled ADC signals

image943

N

N

N

image944

N

N

io_expander_i2c_host

Example I2C host controller

image945

image946

N

image947

image948

image949

N

io_expander_i2c_target

Example I2C IO expander target

image950

image951

N

image952

image953

image954

N

io_expander_uart

Capture several GPIOs’ status, update and send the status to host through UART

N

image955

N

N

N

image956

N

io_expander_uart_i2c_spi

Capture several GPIOs’ status, update and send the status to host through UART

N

image957

image958

N

N

image959

N

power_sequencing

This sub system allows for different pins/applications be turned on/off in a sequence as to not over load the device from simultaneous power consumption.

image960

image961

N

N

image962

image963

N

programmable_gain_amplifier_1

Use programmable gain amplifier to dynamically adjust gain

N

image964

N

N

N

N

N

programmable_gain_amplifier_2

Use programmable gain amplifier to dynamically adjust gain and capture values with integrated ADC

N

image965

N

N

N

N

N

pushbutton_change_pwm

This example demonstrates using the two switches on the MSPM0 Launchpad to change the period and duty cycle on TIMA1 PWM output channels CC0 and CC1.

image966

N

N

image967

image968

N

N

pwm_dac

Use a timer to create a PWM DAC

N

image969

N

N

N

image970

N

pwm_led_driver

Create a pulsating LED effect using timers

image971

image972

N

image973

image974

image975

N

scanning_comparator

Use a single comparator and IO mux to emulated 3-4 comparator channels simultaneously.

N

image976

N

N

N

N

N

signal_acquisition

OPA supports two different sensor input voltages and uses common ADC channel

image977

N

N

N

N

N

N

spi_to_can_bridge

Demonstrate SPI to CAN bridge

image978

N

N

N

N

N

N

spi_to_i2c_bridge

Implements an SPI to I2C Bridge using an M0 MCU

image979

N

N

N

N

N

N

task_scheduler

A simple run to completion task scheduler

image980

image981

N

N

image982

N

N

temp_sense_thermistor

Sample LaunchPad thermistor using integrated Op-Amp and ADC

N

image983

N

N

N

N

N

transimpedance_amplifier

Configure Op-amp in transimpedance amplifier topology

N

image984

N

N

N

N

N

two_opa_instrumentation_amplifier

Along with an external circuit this code amplifies the difference between two voltage inputs and outputs a single ended signal while rejecting the common-mode voltage.

image985

image986

N

N

N

N

N

uart_to_i2c_bridge

Translates UART packets to multiple I2C devices

image987

image988

N

image989

image990

image991

N

uart_to_spi_bridge

UART device receives packets and passes them on or executes reads in SPI format

image992

N

N

image993

image994

N

N

watchdog

Implementation of a stand alone system WDT.

N

N

image995

N

N

N

N

2.25 PMBUS

PMBus is a protocol design to interface with power management devices. It uses the SMBus protocol as a base.

The MSPM0 SDK includes a ready-to-go example for using an MSPM0 devices as a PMBus controller for a TPS544B20 device.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

pmbus_controller

PMBus controller example

image996

N

N

N

image997

N

image998

pmbus_controller_groupCmd

PMBus controller example with group command

image999

N

N

N

image1000

N

image1001

pmbus_target

PMBus target example

image1002

N

N

N

image1003

N

image1004

2.26 SASI_SMOKE_DETECTOR

MSPM0 supports analog front ends for chambered or chamberless smoke detectors and air quality sensing solutions.

The MSPM0 SDK includes a software library and reference examples for smoke detection and air quality sensing.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

air_quality_sensing

Implements an analog front end for air quality sensing

N

Y

N

N

N

N

N

sasi_smoke_detector

Implements an analog front end for smoke detectors

N

Y

N

N

N

N

N

2.27 SENT

The Single Edge Nibble Transmission (SENT) is a unidirectional communication standard used in automotive networks.

The MSPM0 SDK includes easy-to-use examples for transmitting a SENT frame.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

sent_transmit

Demonstrates basic implementation of SENT protocol

N

image1005

N

N

N

N

image1006

2.28 SMBus

The System Management Bus (SMBus) is a single-ended simple two-wire bus for lightweight communication.

The MSPM0 SDK includes easy-to-use examples for Controller and Target.

Project Name

Description

EVM

LP_MSPM0G3507

LP_MSPM0L1306

LP_MSPM0C1104

LP_MSPM0L2228

LP_MSPM0G3519

LP_MSPM0L1117

LP_MSPM0H3216

smbus_controller00_all_protocols

Demonstrates basic implementation of SMBus Controller testing all SMBus 2.0 protocols using I2C

image1007

image1008

N

N

image1009

N

image1010

smbus_controller_ARP

Demonstrates basic implementation of SMBus Controller testing ARP commands as per SMBus 3.2 Specification

image1011

image1012

N

N

image1013

N

image1014

smbus_controller_host_notify

Demonstrates implementation of SMBus Host Notify function on a Controller

image1015

image1016

N

N

image1017

N

image1018

smbus_target00_all_protocols

Demonstrates basic implementation of SMBus Target testing all SMBus 2.0 protocols using I2C

image1019

image1020

N

N

image1021

N

image1022

smbus_target_ARP

Demonstrates basic implementation of SMBus Target with ARP Support according SMBus 3.2 Specification

image1023

image1024

N

N

image1025

N

image1026

smbus_target_host_notify

Demonstrates implementation of SMBus Host Notify function on a Target

image1027

image1028

N

N

image1029

N

image1030