MSPM0 SDK Release Notes
Table of Contents
Important Notes:
- 📝 This release includes support for MSPM0 production devices and does not support early experimental silicon. Refer to the Early Samples Migration Guide for more information.
- 📝 Updated information will be posted online at e2e.ti.com.
Introduction
The MSPM0 SDK delivers components that enable engineers to develop applications on Texas Instruments MSPM0 microcontroller devices. The product is comprised of multiple software components and examples of how to use these components together. In addition, examples are provided to demonstrate the use of each functional area and each supported device and as a starting point for your own projects.
The MSPM0 MCU portfolio offers a single development environment that delivers flexible hardware, software and tool options for customers developing applications. A one-time investment with the MSPM0 software development kit (SDK) allows you create portable and modular code, opening the door to create unlimited applications. For more information, visit www.ti.com/mspm0.
This is version 1.10.01.05 of the MSPM0 SDK.
Documentation
- MSPM0 SDK Documentation Overview
- MSPM0 SDK Documentation Overview - Chinese
- MSPM0 SDK Known Issues and FAQ
- Software License
- Software Manifest
What’s Included
The MSPM0 SDK includes the following features:
- DriverLib and Header Files:
- Full support for MSPM0L11xx/L13xx and MSPM0G1x0x/G3x0x
- Code examples:
- More than 150 examples from low-level drivers to middleware and demos
- SysConfig:
- Support for code generation of all DriverLib peripherals
- Clock Tree for easier configuration of Clock System
- NONMAIN Configurator
- Middleware:
- Boot Image Manager
- DALI Library
- EEPROM Emulation library
- GUI Composer Library
- IQMath
- LIN Library
- Motor Control - Brushed
- Motor Control - Stepper
- Motor Control - Hall Sensored Trap
- Motor Control - Sensorless FOC
- PMBus Library
- SMBus Library
- Diagnostic Library (released externally)
- RTOS:
- Support for FreeRTOS including Driver Porting Layer (DPL) and POSIX
- TI-Drivers:
- ADC
- GPIO
- I2C
- UART + DMA
- Documentation:
- Comprehensive software documentation including user guides and multiple API guides
- Tools Guide including quick start guides and user guides for MSPM0 tools including IDEs, code generation, debuggers and programmers
For more information about these features, please visit the MSPM0 SDK Documentation Overview or MSPM0 SDK Documentation Overview - Chinese.
What’s New
This release includes:
Examples and Middleware
- MSPSWSDK-2699: Fixed incorrect CRC calculation and M0G-specific ECC errors for flashctl_nonmain_memory_write
- MSPSWSDK-2724: Updated bim_sample_image example to include README.html
- MSPSWSDK-2758: Integrated more subsystems to SDK
- MSPSWSDK-2943: Updated descriptions in uart_rs485 READMEs to include setup information
- MSPSWSDK-2973: Updated blood_pressure_monitor and pulse_oximeter READMEs with timeline updates
- MSPSWSDK-2987: Added new external LCD demos to SDK
- MSPSWSDK-2988: Added PIR motion detection demo to SDK
- MSPSWSDK-3000: Added battery gauge solution to the SDK
- MSPSWSDK-3001: Added BSL CAN Host into SDK
DriverLib and Header Files
- MSPSWSDK-2910: Fixed issue with DL_SYSCTL_switchMCLKfromSYSOSCtoLFCLK() API not correctly switching to LFCLK in the case when disabling SYSOSC
- MSPSWSDK-2945: Fixed incorrect masking in the DL_SYSTICK_enable() API
- MSPSWSDK-2975: Fixed the value for DL_SYSCTL_MCLK_DIVIDER_8 enum in SYSCTL DriverLib
- MSPSWSDK-2397: Added new DriverLib APIs to disable SYSPLL and HFXT.
- MSPSWSDK-3020: Updated DL_SYSCTL_setHFCLKSourceHFCLKIN, DL_SYSCTL_setHFCLKSourceHFXT, DL_SYSCTL_setHFCLKSourceHFXTParams, and DL_SYSCTL_configSYSPLL DriverLib APIs to disable the HFXT and SYSPLL by default at the start of initialization
SysConfig
- SysConfig GPIO
- MSPSWSDK-2719: Added update to allow all input pins to configure fast wake, and added a separate option to filter the pin selection to shutdownWake compatible pins
- MSPSWSDK-2985: Updated hysteresis option availability
- MSPSWSDK-2991: Removed case sensitivity on inputs
- SysConfig I2C
- MSPSWSDK-2920: Fixed code generation when using the DL_I2C_TARGET_INTERRUPT_OVERFLOW interrupt
- SysConfig SYSCTL
- MSPSWSDK-2397: Added new option “Force Default Clock Configuration” in SysConfig that will disable the HFXT and SYSPLL as part of initial configuration
- MSPSWSDK-2984: Resolved error on dependency between SYSCTL CLK_OUT and Clock Tree
- MSPSWSDK-2986: Added info message if using LFXT
TI Drivers
- MSPSWSDK-2757: Implemented ADC TI Driver
Documentation
- MSPSWSDK-2723: Added TI Drivers API Guide to Document Overview
- MSPSWSDK-2733: Added new PMBus User Guide
- MSPSWSDK-2745: Added more translated documents
- MSPSWSDK-2753: Removed empty cookbook documentation from the SDK
Upgrade and Compatibility Information
- See the Early Samples Migration Guide if migrating from a MSPM0 SDK using early experimental silicon.
- MSPSWSDK-2719: GPIO filtering options now correctly match available device features, some previously accepted tool configurations may no longer be valid.
Previous Releases
The updates for the past releases are shown below.
What’s New
- 1.10.00.05
- MSPSWSDK-2572: Added support for new Motor Control Sensorless FOC library
- MSPSWSDK-2597: Added support for new DALI library
- MSPSWSDK-2628: Added support for new PMBus library
- MSPSWSDK-2669: Added support to Boot Manager for MSPM0G
- MSPSWSDK-2616: Added several new Cookbook examples
- MSPSWSDK-695: Added DriverLib code example for UART IrDA
- MSPSWSDK-2621: Added DriverLib code example for UART RS-485
- MSPSWSDK-2070: Added DriverLib code example for adc12_internal_temp_sensor_mathacl DriverLib
- MSPSWSDK-2169: Added DriverLib code example for using Timer 32-bit counter
- MSPSWSDK-2409: Added DriverLib code example for basic C++
- MSPSWSDK-2614: Added DriverLib code example for ADC sequence conversion
- MSPSWSDK-1719: Added demo for MSPM0G Out of Box
- MSPSWSDK-2208: Added demo for BQ769x2 with I2C
- MSPSWSDK-2209: Added demo for smoke detector using TPS880x
- MSPSWSDK-2401: Added demo for Pulse Oximeter
- MSPSWSDK-2402: Added demo for Blood Pressure Monitor
- MSPSWSDK-2636: Added demo for one_wire protocol
- MSPSWSDK-2663: Added code example for SPI BSL Host Plugin
- MSPSWSDK-2691: Added code example for BSL CAN Plugin
- MSPSWSDK-2321: Added code examples for BSL Host
- MSPSWSDK-2693: Added missing READMEs to some BSL examples
- MSPSWSDK-2659: Updated I2C HW header file with new naming of I2C registers to Target/Controller
- MSPSWSDK-2172: Updated example documentation with correct switch naming for MSPM0G
- MSPSWSDK-2403: Updated adc12_max_freq_dma code example to reach ADC conversion frequency of 1.4Msps
- MSPSWSDK-2593: Updated MSPM0L examples to enable Clock Tree
- MSPSWSDK-2599: Updated lin_responder example to handle STOP manually after PID
- MSPSWSDK-2540: Updated SMBus library to replace SW PEC with HW PEC
- MSPSWSDK-2712: Updated spi_peripheral_repeated_multibyte_fifo_dma_interrupts code example to use same CS pin as the SPI controller
- MSPSWSDK-2382: Renamed bim folder in SDK to boot_manager
- MSPSWSDK-2454: Fixed TI Driver FreeRTOS examples including both NoRTOS and FreeRTOS DPL source code
- MSPSWSDK-2349: Fixed CLKSOURCE bit not being set by default
- MSPSWSDK-2586: Fixed bug in DL_FlashCTL_unprotectSector, which was preventing writes to memory > 32kB
- MSPSWSDK-2592: Added missing MSPM0_HAS_ECC define back to MSPM0G device file
- MSPSWSDK-2603: Fixed incorrect mask being used in DL_COMP_getDACInputCode1, and renamed DL_COMP_getDACInputCode1 -> DL_COMP_getDACCode1
- MSPSWSDK-2605: Added some missing generic DMA trigger define in some MSPM0G device headers
- MSPSWSDK-2335: Implemented new Factory Region DriverLib module
- MSPSWSDK-2411: Updated dl_dma.h Overview documentation
- MSPSWSDK-2534: Added APIs to MATHACL DriverLib with with functions to clear results
- MSPSWSDK-2547: Removed invalid configuration of GAIN = 0 for PGA modes from OPA DriverLib
- MSPSWSDK-2553: Removed Subscriber1 from DAC12 DriverLib
- MSPSWSDK-2587: Updated DriverLib modules to update references of INT_EVENT registers with new naming of CPU_INT, DMA_TRIG, and GEN_EVENT
- MSPSWSDK-2624: Updated GPIO DriverLib to add APIs for GPIO wakeup enable
- MSPSWSDK-2660: Updated SPI DriverLib to remove 32 bit data size support
- MSPSWSDK-2463: Added warning when using PA1 if muxed with NRST
- MSPSWSDK-2256: Added pin configuration options to analog & digital SysConfig modules
- MSPSWSDK-2493: Fixed LFCLK frequency set as 32000 Hz, instead of 32768 Hz
- MSPSWSDK-2615: Fixed missing code generation for GPIO when EXCLK is enabled
- MSPSWSDK-2678: Fixed incorrect code generation for SYSPLL configuration
- MSPSWSDK-2553: Removed support for Subscriber1
- MSPSWSDK-2544: Fixed error when GPIO events were configured and the GPIO instances were removed
- MSPSWSDK-2673: Updated code generation to remove redundant code for initializing digital peripherals
- MSPSWSDK-2518: Fixed incorrect description for Actual Bus Speed
- MSPSWSDK-2677: Added warning when more than one filter is selected
- MSPSWSDK-2549: Updated MCAN RAM limit from 2kB to 1kB
- MSPSWSDK-2396: Added customizable BSL Flash plugin addresses
- MSPSWSDK-2448: Added quick profiles for common scenarios
- MSPSWSDK-2449: Updated descriptions to clarify between different debug access fields
- MSPSWSDK-2471: Fixed incorrect code generation for SPI Command Data GPIO pins defines when in SPI Peripheral mode
- MSPSWSDK-2601: Fixed missing code generation for SPI RX timeout
- MSPSWSDK-2461: Fixed missing code generation for Clock Interrupts
- MSPSWSDK-2497: Fixed FCC code generation being generated twice if FCC is enabled in SYSCTL and in Clock Tree. Moved SYSCTL FCC configuration to Clock Configuration group.
- MSPSWSDK-2600: Fixed issue where clock validation were still using SYSCTL, even though Clock Tree is enabled
- MSPSWSDK-2452: Added support for different count modes
- MSPSWSDK-2627: Fixed issue that allowed TIMG12 instance to have a prescaler different than 1
- MSPSWSDK-2682: Fixed incorrect code generation where edgeDetectMode parameter was not added to the initialization struct
- MSPSWSDK-2432: Fixed incorrect code generation where fault pin and port were not being defined
- MSPSWSDK-2423: Fixed incorrect code generation in Timer complementary output channels
- MSPSWSDK-2426: Fixed multiple capture compare values not being configured
- MSPSWSDK-2084: Removed cross trigger feature
- MSPSWSDK-2555: Added configuration to set the default load value
- MSPSWSDK-2453: Added support for IrDA
- MSPSWSDK-2347: Implemented new GPIO TI Driver
- MSPSWSDK-2381: Implemented new UART TI Driver
- MSPSWSDK-2561: Implemented new I2C TI Driver
- MSPSWSDK-2324: Updated Migration Guide with compatibility break on Flash Loader settings
- MSPSWSDK-2362: Updated CCS Guides explaining how to use objcopy
- MSPSWSDK-2468: Updated CCS User’s Guide explaining how to run from SRAM
- MSPSWSDK-2483: Updated SysConfig Guide explaining how to override WEAK functions
- MSPSWSDK-2539: Updated CCS Guides with instructions on installing GCC
- MSPSWSDK-2564: Updated Tools Guide with new section for DSSM GUI tool
- MSPSWSDK-2573: Updated documentation to reference TI Developer Zone
- MSPSWSDK-2623: Updated Known Issues document to remove issue about building a .syscfg project in IAR throwing an error
- MSPSWSDK-2638: Updated Known Issues document to remove issue about CMSIS Pack MSPM0G support
- MSPSWSDK-2639: Updated Segger J-Link Guide with recommended software version of J-Link Software pack v7.88i
- MSPSWSDK-2634: Updated documentation with recommended software version of TIClang 2.1.3LTS
- MSPSWSDK-2640: Updated Segger J-Link Guide to remove note on hidden devices
- MSPSWSDK-2642: Updated Segger J-Link Guide with note that CCS must be restarted for Segger J-Link plugins to properly update
- MSPSWSDK-2643: Updated documentation with recommended software version of IAR 9.40.1
- MSPSWSDK-2644: Updated Segger J-Link Guide with note on using Intel HEX
- MSPSWSDK-2645: Added more translated documents in Chinese
- MSPSWSDK-2672: Updated EEPROM User Guide to include the Application Note link for EEPROM Type B
- 1.00.01.03
- MSPSWSDK-2404: Updated incorrect description in timg_qei_mode example README
- MSPSWSDK-2419: Updated outdated description in uart_echo example README
- MSPSWSDK-2440: Added new DriverLib example gpio_simultaneous_interrupts
- MSPSWSDK-2511: Updated tima_timer_mode_pwm_dead_band example to use complementary output feature
- MSPSWSDK-2513: Updated outdated description in tima_trigger_fail_mechanism example README
- MSPSWSDK-2464: Fixed MSPM0L TI Driver examples incorrectly including both the MSPM0L and MSPM0G DriverLib
- MSPSWSDK-1861: Added APIs to AES DriverLib to set and get KEYWR and DINWR registers
- MSPSWSDK-2340: Added APIs to UART DriverLib to set and get CLKDIV2 register
- MSPSWSDK-2400: Updated some APIs in AES DriverLib for MISRA-C compliance
- MSPSWSDK-2521: Updated implementation of DL_Timer_initCaptureCombinedMode API
- MSPSWSDK-2330: Added missing Address Match interrupt for UART Extend mode to dl_uart_extend.h
- MSPSWSDK-2352: Updated the ifdefs in the SYSCTL DriverLib .c files to use generic device defines
- MSPSWSDK-2410: Added missing CPP safeguard in the dl_opa.h file
- MSPSWSDK-2425: Updated some DriverLib AES APIs to check key has proper 32-bit alignment
- MSPSWSDK-2429: Fixed incorrect parameter in DL_Timer_overrideCCPOut API from DL_TIMER_FORCE_OUT -> DL_TIMER_FORCE_CMPL_OUT
- MSPSWSDK-2486: Fixed incorrect mask used in the DL_Timer_set/getCaptCompUpdateMethod APIs
- MSPSWSDK-1798: Updated SysConfig to filter out standard drive GPIOs when routing a high frequency clock to CLK_OUT
- MSPSWSDK-2366: Fixed incorrect configuration in a quick profile
- MSPSWSDK-2533: Updated display units for LFCLK_IN input frequency
- MSPSWSDK-2455: Updated bit timing parameter calculations
- MSPSWSDK-2487: Updated arbitration bit rate from 999kbps to 1Msps
- MSPSWSDK-2332: Fixed incorrect SPI clock frequency range
- MSPSWSDK-2469: Added missing configuration for SPI Command Data (CD) mode
- MSPSWSDK-2472: Fixed missing GPIO initialization for the Command Data (CD) pin when in Motorola 3-wire mode and enabling CD mode
- MSPSWSDK-2301: Fixed incorrect initialization order in the code generation when MFCLK is sourced from HSCLK
- MSPSWSDK-2522: Fixed incorrect API being called when combined mode is selected
- MSPSWSDK-2363: Added support for second capture compare configuration
- MSPSWSDK-2427: Updated dead band configuration
- MSPSWSDK-2420: Fixed incorrect instance name in the code generation when adding an event
- 1.00.00.04
- Initial release
Upgrade and Compatibility
- 1.10.00.05
- MSPSWSDK-2256: In SysConfig, pin configuration options were added to digital and analog peripherals
- If including the SPI peripheral, this might lead to an error when loading a .syscfg file related to the SPI Pin Configuration.
- To update manually, remove the lines from .syscfg file that include the [pinName]Config.$name code
- If including the SPI peripheral, this might lead to an error when loading a .syscfg file related to the SPI Pin Configuration.
- MSPSWSDK-2627: In SysConfig, prescale validation for Timer Peripherals was not being properly triggered
- Previous configurations may fall outside accepted range, user should follow instructions from error message and choose an appropriate updated value.
- MPSWSDK-2549: In SysConfig, updated MCAN RAM limit from 2kB to 1kB
- If previous configuration gives an error, select a new set of valid parameters as described on error message
- MSPSWSDK-2600: In SysConfig, added Clock Tree validation for MFPCLK/DAC12 validation
- Follow instructions on error message to enable required clock configurations.
- MSPSWSDK-2637: In SysConfig, added validation for ADC/VREF Clock configuration.
- Follow instructions on error message to enable required clock configurations.
- MSPSWSDK-2600: Support for SPI 32-bit data size was removed
- In dl_spi.h, DL_SPI_DATA_SIZE_32 was removed
- In SysConfig, dataSize parameter no longer supports a value of ‘32’
- To update manually in .syscfg file, choose a supported value for dataSize parameter
- MSPSWSDK-2553: Support for Subscriber1 was removed
- In dl_dac12.h, DL_DAC12_FIFO_TRIGGER_HWTRIG1 was removed
- In SysConfig, sub1ChanID parameter was set to readOnly and cannot be modified
- To update manually in .syscfg file, remove sub1ChanID parameter, and use Subscriber0 instead
- MSPSWSDK-2603:
- RDL_COMP_getDACInputCode1() was renamed to DL_COMP_getDACCode1()
- MSPSWSDK-2396: Customizable BSL flash plugin addresses have been added to the SysConfig NONMAIN Configurator
- When importing a .syscfg file that is using the NONMAIN Configurator, use the SysConfig tool to update the BSL flash plugin addresses to match the addresses in the linker file. See the SDK BSL Flash Plugin examples for more details.
- MSPSWSDK-2256: In SysConfig, pin configuration options were added to digital and analog peripherals
- 1.00.01.03
- MSPSWSDK-2429: Fixed incorrect parameter in DL_Timer_overrideCCPOut API from DL_TIMER_FORCE_OUT -> DL_TIMER_FORCE_CMPL_OUT
- MSPSWSDK-2365:
- “startAdd_single” option was removed from SysConfig ADC module
- To update manually, replace “startAdd_single” field in .syscfg file with “startAdd”
- “lowPowerSequence” profile was removed from SysConfig ADC module for MSPM0L devices
- This profile is no longer available for MSPM0L devices, user must select a different available profile
- “startAdd_single” option was removed from SysConfig ADC module
- MSPSWSDK-2455:
- “bus_lenght” and “extra_prop_delay” fields were removed from SysConfig MCAN module
- These options are no longer available in SysConfig, and should be manually removed from .syscfg file
- Bit Timing Parameters calculation & validation updated, some earlier configurations may no longer be valid. Use the SysConfig tool and select valid configuration parameters. If receiving any calculation errors, follow recommendations on validation messages
- “bus_lenght” and “extra_prop_delay” fields were removed from SysConfig MCAN module
- MSPSWSDK-2084:
- Cross trigger functionality is no longer configurable in the SysConfig QEI module
- This functionality is no longer available in SysConfig, and the user will receive a warning if using a .syscfg file with this feature enabled. To update manually, remove the “crossTriggerEn” field from the .syscfg file.
- Cross trigger functionality is no longer configurable in the SysConfig QEI module
- MSPSWSDK- 1798:
- Configuring CLK_OUT pin outside its frequency range will lead to an error in the SysConfig SYSCTL module
- If a .syscfg file has an invalid configuration, the user will receive an error and will need to update their configuration to a valid pin selection.
- Configuring CLK_OUT pin outside its frequency range will lead to an error in the SysConfig SYSCTL module
- MSPSWSDK-2327:
- The dead band configuration was updated and the “dbChannelSelect” field was removed from the SysConfig PWM module
- This option is no longer available in SysConfig, and should be manually removed from .syscfg file. The user will then need to configure the dead band by selecting the desired complementary channels.
- The dead band configuration was updated and the “dbChannelSelect” field was removed from the SysConfig PWM module
- 1.00.00.04
- Initial release
Operating Systems Support
- Windows 10
- Ubuntu 18.04
- macOS Monterey
Dependencies
This release was validated with the following components:
- Code Composer Studio
- TI Arm Clang Compiler
- TI Clang v2.1.3_LTS. Also included with CCS and CCS Theia.
- SysConfig
- SysConfig 1.17.x. Also included with CCS and CCS Theia.
- GNU Code Generation Tools
- IAR Embedded Workbench
- Keil uVision
- 5.38, with Arm Clang compiler v6.16 or later.
Device Support
- MSPM0L11xx/L13xx: Tested on production silicon.
- MSPM0G1x0x/G3x0x: Tested on production silicon.
Known Issues
Please refer to the MSPM0 SDK Known Issues and FAQ document for a detailed list of known issues and workarounds.
Versioning
This product follows a version format, M.mm.pp.bb, where:
- M is a single digit Major number
- mm is a 2 digit minor number
- pp is a 2 digit patch number
- bb is a 2 digit incrementing build counter
Technical Support and Product Updates
- To request a new feature or file a software bug, please contact your local sales representative, TI support team or E2E.