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 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 | ||
blood_pressure_monitor | Blood Pressure Monitor demos | N | Y |
bq769x2_control_i2c | Demonstrate BQ769x2 control through I2C | N | |
dualray_smoke_detector | Dualray smoke detector demo | N | |
one_wire | 1-wire target emulating a EEPROM interface | N | |
out_of_box | Out of Box experience for MSPM0 LaunchPads | Y | Y |
pulse_oximeter | Pulse oximeter demos | 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 | ||
aes_cbc_256_enc_dec | AES256 CBC encryption and decryption example | N | |
aes_cfb_256_decrypt | AES CFB 256 bit decryption example | N | |
aes_ofb_128_encrypt | AES OFB 128 bit encryption example | N |
2.2.2 Analog-to-Digital Converter (ADC)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
adc12_14bit_resolution | ADC12 conversion at maximum frequency using DMA with hardware averaging enabled | ||
adc12_internal_temp_sensor_mathacl | ADC12 samples internal temperature sensor and converts reading to Celsius and Fahrenheit degrees | N | |
adc12_max_freq_dma | ADC12 conversion at maximum frequency using DMA | ||
adc12_max_freq_dma_8bit | ADC12 conversion at maximum frequency using DMA in 8 bit resolution | ||
adc12_monitor_supply | ADC12 monitors voltage supply channel | ||
adc12_sequence_conversion | Demonstrate configuring ADC to trigger sequence of conversions on 4 different channels | ||
adc12_simultaneous_trigger_event | Dual ADC12 conversion triggered by a Timer event | N | |
adc12_simultaneous_trigger_event_stop | Dual ADC12 conversion triggered by a Timer event while in STOP mode | N | |
adc12_single_conversion | ADC12 simple single conversion triggered by software | ||
adc12_single_conversion_vref_external | ADC12 single conversion triggered by software using external reference | ||
adc12_single_conversion_vref_internal | ADC12 single conversion triggered by software using internal VREF | ||
adc12_triggered_by_timer_event | ADC12 conversion triggered by a Timer event | ||
adc12_triggered_by_timer_event_stop | ADC12 conversion triggered by a Timer event while in STOP mode | ||
adc12_window_comparator | ADC12 single conversion in repeat mode using window comparator feature |
2.2.3 Comparator (COMP)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
comp_analog_filter | Comparator using external inputs with hysteresis and output analog filter | ||
comp_dac_to_timer_event | Comparator output using 8-bit DAC triggers a timer event to measure timing | ||
comp_hs_dac_vref_external | Comparator in high-speed mode using 8-bit DAC with external VREF | ||
comp_hs_tima_pwm_fault | Comparator in high-speed mode triggers a TIMA fault | N | |
comp_lp_dac_vref_internal | Comparator in low-power mode using 8-bit DAC with internal VREF | N |
2.2.4 Controller Area Network (CAN)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
mcan_loopback | MCAN transmits and receives messages using loopback mode | N | |
mcan_message_rx | Example configured to receive CAN and CAN-FD frames | N | |
mcan_message_rx_tcan114x | Example configured to receive CAN and CAN-FD frames using BOOSTXL-TCAN1145 boosterpack. | N | |
mcan_multi_message_tx | CAN-FD transmits two messages with unique ID on GPIO interrupt | N | |
mcan_multi_message_tx_tcan114x | CAN-FD transmits two messages with unique ID on GPIO interrupt using BOOSTXL-TCAN1145 boosterpack. | N | |
mcan_single_message_tx | CAN-FD transmits a single message on GPIO interrupt | N |
2.2.5 Cyclic Redundancy Check (CRC)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
crc_calculate_checksum | CRC32 checksum calculation of a memory block | ||
crc_calculate_checksum_dma | CRC32 checksum calculation of a memory block using DMA block transfer |
2.2.6 Digital-to-Analog Converter (DAC)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
dac12_dma_sampletimegen | DAC12 using DMA with sample time generator to generate sine wave | N | |
dac12_fifo_sampletimegen | DAC12 sending repetitive signal using FIFO and sample timer generator | N | |
dac12_fifo_timer_event | DAC12 sending a sawtooth signal using FIFO and triggered by a Timer event | N | |
dac12_fixed_voltage_vref_internal | DAC12 setting a fixed voltage output | N |
2.2.7 Direct Memory Access (DMA)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
dma_block_transfer | DMA copies from Flash main memory to SRAM memory | ||
dma_fill_data | DMA memory fill of SRAM using DMA | ||
dma_table_transfer | DMA using Table mode with DMA |
2.2.8 Events Manager¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
event_input_triggers_output | Event configuration to toggle LED when switch is pressed |
2.2.9 GPIO¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
gpio_input_capture | GPIO triggers interrupt by input capture pin | ||
gpio_simultaneous_interrupts | Demonstrates how to simultaneously service three GPIO interrupts | N | |
gpio_software_poll | GPIO output is set based on polled input | ||
gpio_toggle_output | GPIO toggling an output pin | ||
gpio_toggle_output_cpp | GPIO toggling output pins using C++ | ||
gpio_toggle_output_hiz | GPIO toggling an ouputput pin configured as Hi-Z |
2.2.10 General-Purpose Amplifier (GPAMP)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
gpamp_buffer_to_adc | GPAmp configured in buffer mode with output to ADC | ||
gpamp_general_purpose_rri | GPAmp configured in general purpose Rail-to-Rail mode |
2.2.11 Inter-Integrated Circuit (I2C)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
i2c_controller_rw_multibyte_fifo_interrupts | I2C Controller reading and writing multiple bytes using interrupts with FIFO | ||
i2c_controller_rw_multibyte_fifo_poll | I2C Controller reading and writing multiple bytes polling FIFO | ||
i2c_controller_target_dynamic_switching | I2C dynamic switching between Controller and Target modes | ||
i2c_multicontroller_arbitration | I2C Controller detecting arbitration error | ||
i2c_target_rw_multibyte_fifo_interrupts | I2C Target reading and writing multiple bytes using interrupts | ||
i2c_target_rw_multibyte_fifo_interrupts_stop | I2C Target reading and writing multiple bytes using interrupts while in STOP mode | ||
i2c_target_rw_multibyte_fifo_poll | I2C Target reading and writing multiple bytes polling FIFO |
2.2.12 Math Accelerator (MATHACL)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
mathacl_mpy_div_op | MATHACL multiply and divide using fixed point | N | |
mathacl_trig_op | MATHACL implementation of trigonometric functions | N |
2.2.13 Non-Volatile Memory (FLASHCTL)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
flashctl_blank_verify | Implementation of Flash Blank Verify command | ||
flashctl_dynamic_memory_protection | Flash configured with dynamic protection | ||
flashctl_ecc_error_injection | Flash ECC testing and SEC and DED error detection | N | |
flashctl_multiple_size_read_verify | Implementation of Flash read verify commands on multiple data sizes, with and without ECC | ||
flashctl_multiple_size_write | Flash writing of different size data | ||
flashctl_nonmain_memory_write | Read-write of Non-Main Flash memory | ||
flashctl_program_with_ecc | Flash programming with ECC | N |
2.2.14 Operational Amplifier (OPA)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
opa_burnout_current_source_to_adc | OPA in buffer mode enabling burnout current source to ADC | ||
opa_dac8_output_buffer | OPA in output buffer mode using 8-bit DAC | ||
opa_general_purpose_rri | OPA in general purpose mode with Rail-to-Rail configuration | ||
opa_inverting_pga_with_dac | OPA in inverting PGA configuration using DAC12 as bias | N | |
opa_non_inverting_pga | OPA in non-inverting PGA configuration | ||
opa_signal_chain_to_adc | Two OPAs configured in TIA and PGA, connected to ADC | N |
2.2.15 Other¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
cinit_bypass | Bypass CINIT skipping variable initialization | ||
empty | Empty start-up project using DriverLib | ||
empty_cpp | Empty C++ start-up project using DriverLib | ||
empty_driverlib_src | Empty start-up project using DriverLib | ||
empty_library | Empty start-up library project using DriverLib | Y | Y |
nvic_interrupt_disable | NVIC used to demonstrate best approach to disable interrupts | ||
nvic_interrupt_grouping | NVIC configuration and use of interrupt grouping | ||
sram_parity | Initializes and uses Parity SRAM | N | |
systick_periodic_timer | SysTick generates periodic interrupt |
2.2.16 Real-Time Clock (RTC)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
rtc_calendar_alarm_standby | RTC sets calendar alarm and toggles GPIO when alarm is triggered | N | |
rtc_offset_calibration_lfxt | RTC offset correction of crystal | N | |
rtc_periodic_alarm_lfosc_standby | RTC implementation of periodic alarm in STANDBY using LFOSC | N | |
rtc_periodic_alarm_lfxt_standby | RTC implementation of periodic alarm in STANDBY using LFXT | N |
2.2.17 Serial Peripheral Interface (SPI)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
spi_controller_command_data_control | SPI Controller transmit using command data (CD) control | ||
spi_controller_echo_interrupts | SPI Controller transmits data using Motorola format | ||
spi_controller_internal_loopback_poll | SPI Controller with internal loopback using polling | ||
spi_controller_multibyte_fifo_dma_interrupts | SPI Controller reading and writing multiple bytes using FIFO and DMA | ||
spi_controller_multibyte_fifo_poll | SPI Controller reading and writing multiple bytes polling FIFO | ||
spi_controller_register_format | SPI Controller transmit and read data using register format | ||
spi_controller_repeated_multibyte_fifo_dma_interrupts | SPI Controller reading and writing multiple bytes using FIFO and DMA every second | ||
spi_peripheral_echo_interrupts | SPI Peripheral echoes data using Motorola format | ||
spi_peripheral_multibyte_fifo_dma_interrupts | SPI Peripheral reading and writing multiple bytes using FIFO and DMA | ||
spi_peripheral_multibyte_fifo_poll | SPI Peripheral reading and writing multiple bytes polling FIFO | ||
spi_peripheral_register_format | SPI Peripheral transmit and read data using register format | ||
spi_peripheral_repeated_multibyte_fifo_dma_interrupts | SPI Peripheral reading and writing multiple bytes using FIFO and DMA |
2.2.18 System Controller (SYSCTL)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
sysctl_frequency_clock_counter | Monitor SYSOSC via Frequency Clock Counter (FCC) | N | |
sysctl_hfxt_run | Sets external HFXT as source to HSCLK and MCLK (48MHz) | N | |
sysctl_lfxt_standby | Sets LFXT as source to LFCLK (32kHz) and power policy in STANDBY0 | N | |
sysctl_mclk_syspll | Sets MCLK to run from SYSPLL (80MHz) | N | |
sysctl_power_policy_sleep_to_standby | SYSCTL switches between SLEEP mode and STANDBY modes | ||
sysctl_power_policy_sleep_to_stop | SYSCTL switches between SLEEP mode and STOP modes | ||
sysctl_shutdown | Show correct wake-up mechanism after SHUTDOWN vs STOP, STANDBY and SLEEP |
2.2.19 Timer - Advanced (TIMA)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
tima_timer_mode_periodic_repeat_count | TimerA in periodic mode using repeat-count feature | N | |
tima_timer_mode_pwm_dead_band | TimerA outputs PWM signals with dead band insertion | N | |
tima_trigger_fail_mechanism | TimerA demonstrating fault detection | N |
2.2.20 Timer - General Purpose (TIMG)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
timg_32bit_timer_mode_periodic_sleep | 32-bit timer in periodic mode while device is in SLEEP mode | N | |
timg_32bit_timer_mode_pwm_edge_sleep | 32-bit timer in PWM edge aligned mode while device is in SLEEP mode | N | |
timg_qei_mode | TimerG uses QEI to decode relative position output of a quadrature encoder | N |
2.2.21 Timer - Generic (TIMx)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
timx_timer_mode_capture_duty_and_period | Timer calculates period and duty cycle | ||
timx_timer_mode_capture_edge_capture | Timer edge time detection using Timer capture mode | ||
timx_timer_mode_compare_edge_count | Timer edge counting capability using compare mode | ||
timx_timer_mode_one_shot_standby | Timer in one-shot mode while device is in STANDBY mode | ||
timx_timer_mode_periodic_sleep | Timer in periodic mode while device is in SLEEP mode | ||
timx_timer_mode_periodic_standby | Timer in periodic mode while device is in STANDBY mode | ||
timx_timer_mode_periodic_stop | Timer in periodic mode while device is in STOP mode | ||
timx_timer_mode_pwm_center_stop | Timer in PWM center aligned mode while device is in STOP mode | ||
timx_timer_mode_pwm_cross_trigger_stop_restore | Timer in PWM mode after coming out of STOP with retention in SW | N | |
timx_timer_mode_pwm_edge_sleep | Timer in PWM edge aligned mode while device is in SLEEP mode | ||
timx_timer_mode_pwm_edge_sleep_shadow | Timer updating PWM duty cycle using shadow load feature |
2.2.22 True Random Number Generator (TRNG)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
trng_sample | TRNG sampling to fill a buffer with random data | N | |
trng_sample_stop_restore | TRNG sample random data after coming out of STOP with retention in SW | N |
2.2.23 Universal Asynchronous Receiver-Transmitter (UART)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
uart_echo_interrupts_standby | UART RX/TX echo using interrupts while device is in STANDBY mode | ||
uart_extend_manchester_echo | UART Extend using Manchester encoding, echo received packet | ||
uart_extend_manchester_send_packet | UART Extend using Manchester encoding and decoding, send a packet | ||
uart_external_loopback_interrupt | UART RX/TX external loopback using interrupts | ||
uart_internal_loopback_standby_restore | UART internal loopback after coming out of STANDBY with retention in SW | N | |
uart_rs485_receive_packet | Demonstrate UART in RS485 mode, receive a packet | N | |
uart_rs485_send_packet | Demonstrate UART in RS485 mode, send a packet | N | |
uart_rw_multibyte_fifo_poll | UART RX/TX using FIFOs with polling | ||
uart_rx_hw_flow_control | UART RX using HW flow control | ||
uart_rx_multibyte_fifo_dma_interrupts | UART RX using a DMA trigger | ||
uart_tx_console_multibyte_repeated_fifo_dma | UART TX to console using a continuous DMA Triggers | ||
uart_tx_hw_flow_control | UART TX using hardware flow control | ||
uart_tx_multibyte_fifo_dma_interrupts | UART TX using a DMA trigger |
2.2.24 Window Watchdog Timer (WWDT)¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
wwdt_interval_timer_lfosc_standby | WWDT interval timer mode using LFOSC while device is in STANDBY mode | ||
wwdt_interval_timer_lfxt_standby | WWDT interval timer mode using LFXT while device is in STANDBY mode | N | |
wwdt_window_mode_periodic_reset | WWDT Window watchdog mode with periodic reset |
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 | ||
gpio_interrupt | Toggles the LED(s) using a GPIO pin interrupt | Y | N |
i2c_tmp | Read temperature from Tmp117 Sensor using I2C | Y | N |
uart_callback | UART simple echo using callback | Y | Y |
uart_echo | UART simple echo | Y | Y |
2.3.2 No RTOS¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
uart_echo | UART simple echo | Y | N |
2.4 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 | ||
bim_sample_image | Sample GPIO toggle image for BIM | ||
boot_application | Boot Image Manager Using MCUBoot |
2.5 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 | ||
bsl_host_mcu_i2c_to_m0g_target | Shows an implementation of BSL I2C Flash interface with MSPM0G as host to MSPM0G target | N | |
bsl_host_mcu_i2c_to_m0l_target | Shows an implementation of BSL I2C Flash interface with MSPM0G as host to MSPM0L target | N | |
bsl_host_mcu_spi | Shows an implementation of a BSL host utilizing SPI interface | Y | N |
bsl_host_mcu_uart_to_m0g_target | Shows an implementation of BSL UART Flash interface with MSPM0G as host to MSPM0G target | N | |
bsl_host_mcu_uart_to_m0l_target | Shows an implementation of BSL UART Flash interface with MSPM0G as host to MSPM0L target | N | |
bsl_i2c_flash_interface | Shows an implementation of BSL I2C Flash interface | ||
bsl_software_invoke | Jump to ROM bootloader on application request | ||
bsl_spi_flash_interface | Shows an implementation of a BSL SPI Flash interface | ||
bsl_uart_flash_interface | Shows an implementation of a BSL UART Flash interface | ||
secondary_bsl | Implements a secondary bootloader in Main overriding the ROM BSL |
2.6 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 | ||
cmsis_dsp_empty | Empty example using CMSIS-DSP | ||
cmsis_dsp_fft_q15 | FFT of fixed point array using CMSIS-DSP |
2.7 Cookbook¶
The MSPM0 SDK Cookbook contains examples showing more complex functionality implemented with multiple peripherals.
The examples use DriverLib APIs, and includes full source code and documentation with detailed usage instructions.
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
adc_dma_ping_pong | Capture ADC data into 2 (ping-pong) buffers | N | |
adc_to_pwm | Convert analog voltage to PWM | ||
adc_to_spi_peripheral | Sample ADC and respond to SPI commands sent by a controller | ||
adc_to_uart | Configures the ADC0 to trigger single conversion and send the ADC data through UART | ||
digital_mux | Emulate a digital mux with GPIO | N | |
diode_matrix | Drive LEDs with fewer pins using diode matrix | N | |
fir_low_pass_filter | Applies digital FIR low-pass filter to sampled ADC signals | N | |
iir_low_pass_filter | Applies digital IIR filter to sampled ADC signals | 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. | ||
programmable_gain_amplifier_1 | Use programmable gain amplifier to dynamically adjust gain | N | |
programmable_gain_amplifier_2 | Use programmable gain amplifier to dynamically adjust gain and capture values with integrated ADC | 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. | N | |
pwm_dac | Use a timer to create a PWM DAC | N | |
pwm_led_driver | Create a pulsating LED effect using timers | ||
signal_acquisition | OPA supports two different sensor input voltages and uses common ADC channel | N | |
temp_sense_thermistor | Sample LaunchPad thermistor using integrated Op-Amp and ADC | N | |
transimpedance_amplifier | Configure Op-amp in transimpedance amplifier topology | N |
2.8 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 | ||
dali_led_demo | Demonstrates usage of DALI protocol with an LED control demo | N |
2.9 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.
2.9.1 Type-A¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
eeprom_emulation_type_a | Demonstrates Type A EEPROM emulation to store non-volatile data | 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 |
2.9.2 Type-B¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
eeprom_emulation_type_b | Demonstrates Type B EEPROM emulation to store user data | Y | Y |
eeprom_emulation_type_b_test | Demonstrates a more detailed use case of Type B EEPROM emulation to store user data | Y | Y |
2.10 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.
2.10.1 Streaming Protocols¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
gc_simple_json | Demonstrates basic usage of GUI Composer communication using JSON-formatted strings | ||
gc_simple_messagepack | Demonstrates basic usage of GUI Composer communication using MessagePack protocol |
2.11 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.
2.11.1 Compiler RTS library¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
iqmath_rts_ops_test | Implements various fixed-point operations leveraging the RTS implementation of IQMath |
2.11.2 MathACL¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
iqmath_mathacl_ops_test | Implements various fixed-point operations leveraging the MathACL implementation of IQMath | N |
2.12 RTOS Kernel¶
The MSPM0 SDK includes a collection of examples to test kernel functionality.
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
blink_led | Simple FreeRTOS LED blinky demo using two tasks | ||
posix_demo | Simple Posix FreeRTOS blinky LED demo |
2.13 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.
2.13.1 Commander¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
lin_commander | Demonstrates basic implementation of LIN commander to transmit and receive LIN 2.0 packets using UART |
2.13.2 Responder¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
lin_responder | Demonstrates basic implementation of LIN responder to transmit and receive LIN 2.0 packets using UART |
2.14 Sensored Trap Hall Motor Control¶
The MSPM0 SDK includes examples to evaluate the sensored trap hall motor control library with the DRV8316REVM and DRV8329AEVM. 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.
2.14.1 DRV8316¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
drv8316revm-gui-firmware | Firmware for LP_MSPM0G3507 and DRV8316R EVM GUI | N |
2.14.2 DRV8329¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
drv8329aevm-gui-firmware | Firmware for LP_MSPM0G3507 and DRV8329A EVM GUI | N |
2.15 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.
2.15.1 DRV8323RS¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
sensorless-foc-demo | Demo sensorless FOC code for LP_MSPM0G3507 and DRV8323RS EVM GUI | N |
2.16 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.
2.16.1 DRV8706-Q1¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
drv8706s-q1evm-gui-firmware | Firmware for LP_MSPM0L1306 and DRV8706S-Q1 EVM GUI | N |
2.17 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.
2.17.1 DRV8411A¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
drv8411aevm-gui-firmware | Firmware for LP_MSPM0L1306 and DRV8411AEVM GUI | N |
2.17.2 DRV8889-Q1¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
drv8889-q1evm-gui-firmware | Firmware for LP_MSPM0L1306 and DRV8889-Q1 EVM GUI | N |
2.18 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.
2.18.1 Controller¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
pmbus_controller_tps544b20evm | Use MSPM0 to configure TPS544B20EVM over PMBus |
2.19 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.
2.19.1 Controller¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
smbus_controller | Demonstrates basic implementation of SMBus Controller testing all SMBus 2.0 protocols using I2C |
2.19.2 Target¶
Project Name | Description | EVM | |
---|---|---|---|
LP_MSPM0G3507 | LP_MSPM0L1306 | ||
smbus_target | Demonstrates basic implementation of SMBus Target testing all SMBus 2.0 protocols using I2C |