MSPM0 SDK Release Notes
Table of Contents
Important Notes
- 📝 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 2.01.00.03 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 2.01.00.03 includes the following:
- DriverLib Library - v1.32.00:
- Full support including header files for:
- MSPM0L11xx/L13xx
- MSPM0G1x0x/G3x0x
- MSPM0C110x
- MSPS003FX
- MSPM0L122x/L222x
- Full support including header files for:
- Code examples:
- Hundreds of examples from low-level drivers to middleware and demos
- SysConfig - v1.32.00:
- Support for code generation of all DriverLib peripherals
- Clock Tree for easier configuration of Clock System
- NONMAIN Configurator
- Security Configuration
- Project Configuration
- Middleware:
- Battery Gauge L2 - v1.00.00
- Boot Image Manager - v1.01.00
- Communication Modules - v1.00.00
- DALI Library - v1.00.00
- EEPROM Emulation Library - v1.00.00
- Energy Metrology Library - v2.00.00
- GUI Composer Library - v1.00.00
- IQMath Library - v1.11.00
- LIN Library - 1.00.00
- Motor Control Libraries
- Brushed Motor Control Library - v1.00.00
- Hall Sensored Trap BLDC Motor Control Library - v1.10.00
- Sensorless FOC BLDC Motor Control Library - v2.01.00
- Stepper Motor Control Library - v1.00.00
- PMBus Library - v1.10.00
- SENT Library - v1.00.01
- Smart Analog Sensor Interface (SASI) Smoke Detector Library - v1.00.00
- SMBus Library - v2.00.00
- Diagnostic Library (released externally)
- RTOS:
- FreeRTOS Library - v1.20.01
- Driver Porting Layer (DPL) - v1.10.00
- TI POSIX - v1.10.00
- TI-Drivers - v2.00.00:
- GPIO
- I2C
- SPI
- 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 the following updates.
- DriverLib Library - v1.32.00
- MSPSWSDK-3607: Fixed DL_TIMER_CC_IN_SEL defines having a typo in dl_timer.h
- MSPSWSDK-3786: Added defines for TIMG14 supporting CCP channels 2 and 3 to dl_timerg.h
- MSPSWSDK-3790: Handled MSPM0C110X ADC errata: ADC_ERR_06.
- Added new FactoryRegion DriverLib API DL_FactoryRegion_getADCOffset that returns ADC TRIM value from 0x41C40040
- Added new ADC DriverLib API DL_ADC12_getADCOffsetCalibration that returns calibrated ADC offset
- MSPSWSDK-3811: Updated some Timer APIs to to reflect that some timer instances are 32 bits.
- MSPSWSDK-3827: Fixed DL_TimerA_initPWMMode to correct the output behavior when using PWM_MODE_EDGE_ALIGN_UP
- MSPSWSDK-3381: Updated DL_FlashCTL_unprotectSector API to account for DATA bank
- MSPSWSDK-3849: Updated DL_FlashCTL_programMemoryBlocking* APIs to move the clear status command before unprotecting memory
- MSPSWSDK-3808: Updated DL_SYSCTL_getTempCalibrationConstant API for each device family to use FactoryRegion API instead of hard-coded address
- SysConfig - v1.32.00
- Clock Tree
- MSPSWSDK-3822: Fixed warning for LFXT saying it needs VBAT powered on MSPM0G350x devices instead of MSPM0L122x/L222x devices
- COMP
- MSPSWSDK-3847: Updated Comparator Blanking Source if selected to show an error if the specific timer instance and channel have not been configured
- I2C
- MSPSWSDK-3656: Disabled Target WakeUp Enable function by default when configuring an I2C Target
- RTC
- MSPSWSDK-3629: Fixed incorrect inline comment in code generation for the reported frequency of the periodic alarm 1
- SYSCTL
- MSPSWSDK-3856: Added PA2 as an available pin when configuring External ROSC for MSPM0Lx22x devices.
- TIMER
- MSPSWSDK-3826: Fixed issue when selecting a CCP channel where setting the capture compare channel update mode needed to occur before setting the capture compare value
- MSPSWSDK-2424: Added phase load configuration options to the TIMER and TIMER PWM SysConfig modules
- MSPSWSDK-3675: Added Timer Internal Channels 4-5 as channel options for TIMA on the TIMER PWM and TIMER COMPARE SysConfig modules
- MSPSWSDK-3759: Updated the description for timer clock divider and prescaler for clarity
- MSPSWSDK-3803: Fixed CC2/CC3 events and interrupts incorrectly not being selectable for TIMG14
- Clock Tree
- Middleware
- Sensorless FOC BLDC Motor Control Library - v2.01.00
- MSPSWSDK-3814: Fixed memory overflow in the variable input structures. Updated linker command file and main.h file FW version location.
- MSPSWSDK-3833: Added support for High Voltage Motor Control Reference design TIDA-010250.
- MSPSWSDK-3834: Fixed Motor Start up failure when commanded with speed immediately after setting the custom tuning parameters. Added support for a new configuration “updateConfigs” to monitor the parameter update status before sending the speed command.
- Sensorless FOC BLDC Motor Control Library - v2.01.00
- Header Files
- MSPSWSDK-3535: Fixed incorrect maximum values for Timer Counter and Load values in hw_gptimer.h
- Code Examples
- DriverLib Code Examples
- MSPSWSDK-3790: Handled MSPM0C110X ADC errata: ADC_ERR_06.
- Updated ADC12 DriverLib examples to showcase how to apply ADC offset to ADC memory result
- MSPSWSDK-2966: Added SysConfig support to AESADV DriverLib code examples
- MSPSWSDK-3812: Added notes to recommend using external pull-ups for I2C examples
- MSPSWSDK-3852: Updated all FlashCtl DriverLib code examples to execute clear status command before any flash operation
- MSPSWSDK-3790: Handled MSPM0C110X ADC errata: ADC_ERR_06.
- Demo Code Examples
- MSPSWSDK-3819: Added new demo code example for LP_MSPM0L2228 Out of Box Experience
- MSPSWSDK-3823: Added new demo code example motor_control_bdc_sensor for MSPM0C BDC motor control
- MSPSWSDK-3824: Added new demo code example pga460_control_spi for MSPM0C control PGA460 driver
- TI Drivers Code Examples
- MSPSWSDK-3813: Removed code comment that the TI Drivers config files were generated by SysConfig
- Battery Gauge L2 Code Examples
- MSPSWSDK-3778: Added new battery gauge L2 code example gauge_level2_bq76952 for LP_MSPM0G3507
- DriverLib Code Examples
- Documentation
- MSPSWSDK-3854: Updated MSP-GANG documentation to include the E2E FAQ for alternative production programming tools
- MSPSWSDK-3855: Created new guide for OpenOCD support for MSPM0
- Other
- MSPSWSDK-3760: Standardized code examples naming and directory structure
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 v3.2.1_LTS. Also included with CCS 12.7.1 and CCS Theia 1.4.0.
- SysConfig
- SysConfig 1.20.x. Also included with CCS 12.7.1.
- 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.
- MSPM0C110x: Preliminary support.
- MSPS003FX: Preliminary support.
- MSPM0L122x/L222x: Preliminary support.
Known Issues
Please refer to the MSPM0 SDK Known Issues and FAQ document for a detailed list of known issues and workarounds.
Upgrade and Compatibility Information
- MSPSWSDK-3847: This adds validation to force users to configure relevant PWM channels when selecting the matching COMP Blanking Source. Anybody previously configuring Blanking Source on COMP without configuring the relevant PWM Channel will see an error until they have updated their configuration. Error messages give detailed description of what needs to be enabled.
Previous Releases
The updates for the past releases starting at MSPM0 SDK 2.00 and later are shown below.
The updates and compatibility information prior to MSPM0 SDK 2.00 can be viewed at TI Resource Explorer.
Previous Updates
- 2.00.01.00
- DriverLib Library - v1.31.01
- MSPSWSDK-3804: Fixed issue with case statement for 1-4 mux mode in DL_LCD_setPinAsCommon API in dl_lcd.c
- SysConfig - v1.31.01
- MSPSWSDK-3791: Fixed MCAN peripheral not being available for the MSPM0G310X devices
- DriverLib Library - v1.31.01
- 2.00.00.03
- DriverLib Library - v1.31.00
- MSPSWSDK-2730: Fixed DL_SYSCTL_setPowerPolicySTOP0() and DL_SYSCTL_setPowerPolicySTOP1() APIs incorrectly making ULP to run at 32 MHz instead of 32 kHz in RUN1 and RUN2 modes
- MSPSWSDK-3314: Fixed issue in DL_Timer_initCaptureMode where the various modes with up counting where not being selected
- MSPSWSDK-3323: Fixed issue with DL_LCD_setPinAsCommon where it was incorrectly setting the blinking memory
- MSPSWSDK-3715: Fixed issue with DL_LCD_setPinAsCommon not correctly selecting some mux rates
- MSPSWSDK-3716: Update documentation of DL_UART_setTransmitPinManualOutput to correctly reference DL_UART_disableTransmitPinManualControl
- MSPSWSDK-3419: Added new DL_SYSCTL_RESET_SYSRST macro to replace deprecated DL_SYSCTL_RESET_CPU macro
- MSPSWSDK-3650: Added DriverLib APIs to access PDBGCTL register for WWDT
- MSPSWSDK-3652: Added support for GPIOC interrupts in dl_interrupt.h
- MSPSWSDK-3717: Fixed typo in DL_FlashCTL_programMemoryFromRAM32WithECCGenerated API description
- MSPSWSDK-3756: Fixed issue in DL_TAMPERIO APIs incorrectly writing to upper bits of register
- MSPSWSDK-3757: Fixed issue with SYSCTL SUPERCAP APIs missing SYSTEMCFG unlock key
- SysConfig - v1.31.00
- General
- MSPSWSDK-3490: Fixed issue for M0L134x devices where some OPA pins were being recognized as standard GPIO pins and attempts to configured unused pins caused build issues
- MSPSWSDK-3642: Fixed incorrect pinout for DGS28 packages
- MSPSWSDK-3711: Added notes that VBAT is required on the LFSS modules (and LFXT) for MSPM0L122X/L222X
- MSPSWSDK-3742: Removed COMP incorrectl showing as an available peripheral for M0G110x devices
- ADC
- MSPSWSDK-2258: Updated ADC Conversion Period description detailing the factors that contribute to the calculation as well the overall formula used to determine this field
- MSPSWSDK-3338: Fixed incorrect ADC Conversion Period calculation in some modes
- MSPSWSDK-3582: Fixed issue with MSPM0G ADC Channel 12 Resource Error
- MSPSWSDK-2295: Added voltage configuration of VDDA for ADC to SysConfig Board module
- MSPSWSDK-2296: Updated reference voltage units to volts in code generation
- COMP
- MSPSWSDK-3618: Fixed incorrect code generation when configuring the Reference Source to VREF
- MCAN
- MSPSWSDK-3460: Fixed incorrect calculated arbitration and data sample point
- MSPSWSDK-3493: Updated extended filter name options to use hex notation instead of binary notation
- MSPSWSDK-3494: Fixed MCAN RAM start address parameter based on MCAN element sizes and added check for 32-bit alignment
- NONMAIN Configurator
- MSPSWSDK-3685: Fixed incorrect default value for MSPM0L122X/L222X UART pin configuration
- SYSCTL
- MSPSWSDK-3268: When using Clock Tree, disabled the user being able to configure the CANCLK in the SYSCTL module
- MSPSWSDK-3693: Removed warning about fVCO pending characterization for most frequencies, this issue has been resolved
- TIMER
- MSPSWSDK-3221: Fixed incorrect code generation when configuring a Timer as a secondary cross trigger
- MSPSWSDK-3403: Fixed issue where TIMG instances were incorrectly showing repeat counter as an available feature
- MSPSWSDK-3752: Removed outdated pipeline interrupt options from PWM Configuration
- TIMER - Capture
- MSPSWSDK-3326: Fixed issue where Capture Edge Detection mode field was missing the option for Rising and Falling Edge detection
- VREF
- MSPSWSDK-3332: For MSPM0L122X/L222X, added support for DL_VREF_enableInternalRefCOMP API
- General
- Middleware
- Battery Gauge L2 - v1.00.00
- MSPSWSDK-3695: Added battery management Gauge Level 2 library and examples using BQ76952 and with integrated analog
- Boot Image Manager - v1.01.00
- MSPSWSDK-3573: Secure Bootloader - Implemented encrypted image transfer to Customer Secure Code (CSC) examples
- MSPSWSDK-3725: Fixed build errors with bim_sample_image example
- Communication Modules - v1.00.00
- MSPSWSDK-3689: Added new UART Comm Module and corresponding examples and documentation
- Energy Metrology Library - v2.00.00
- MSPSWSDK-3666: Add new split phase solution (TIDA-010944). Files and folders were restructured based on energy measurement. This update causes compatibility issues described in this document.
- MSPSWSDK-3620: Add metrology GUI to SDK
- IQMath Library - v1.11.00
- MSPSWSDK-3661: Improved IQMpy performance for IQMath RTS. Benchmarks updated to latest compiler
- Sensorless FOC BLDC Motor Control Library - v2.00.00
- MSPSWSDK-3663: Updated HAL drivers for single shunt support. This update causes compatibility issues described in this document.
- MSPSWSDK-3698: Updated HAL drivers configurations for DRV8329 Driver with single shunt configuration. This update causes compatibility issues described in this document.
- MSPSWSDK-3664: Updated HAL drivers and AppLib configuration for field weakening support. This update causes compatibility issues described in this document.
- MSPSWSDK-3665: Updated HAL drivers and AppLib configuration for MTPA feature support. This update causes compatibility issues described in this document.
- SMBus Library - v2.00.00
- MSPSWSDK-3458: Removed some BKPTs that were in the SMBus library
- MSPSWSDK-3676: Fixed SMBUS Target HW PEC. Device now responds a NACK if PEC is wrong and returns error if PEC is missing. This update causes compatibility issues described in this document.
- SENT Library - v1.00.01
- MSPSWSDK-3623: Fixed incorrect pause calculation in SENT library
- TI Drivers - v2.00.00
- MSPSWSDK-3588: Added I2C Target TI Driver and corresponding examples
- MSPSWSDK-3630: Implemented workaround to fix link order bug with non-SysConfig examples. Added known issue for examples which don’t support automated device migration in CCS
- MSPSWSDK-3646: Added MSPM0L22x support in TI-Drivers and create examples
- MSPSWSDK-3737: Removed TI drivers and kernel examples for M0L devices due to memory restrictions
- MSPSWSDK-3745: Addressed the Documentation issues for TI drivers
- MSPSWSDK-3687: Merged low level UART drivers for M0L and M0G. This update causes compatibility issues described in this document.
- Battery Gauge L2 - v1.00.00
- DriverLib Code Examples
- MSPSWSDK-3453: Fixed issue where LP_MSPM02228 empty example for Keil incorrectly included two DriverLib libraries
- MSPSWSDK-3461: Fixed issue where dac12_fifo_timer_event had wrong interrupt case
- MSPSWSDK-3523: Fixed issue where i2c_target_rw_multibyte_fifo_interrupts_LP_MSPM0L2228 was incorrectly setting the device to Controller instead of Target
- MSPSWSDK-3616: Update trng_sample example to manually clear the interrupt flag to ensure correct data
- MSPSWSDK-2327: Removed DriverLib.a from being copied into Keil code examples
- MSPSWSDK-3294: Updated adc12_internal_temp_sensor_mathacl to use updated Temperature Sensor coefficient, and fixed calculation to use correct VREF voltage value
- MSPSWSDK-3397: Updated Keil code examples to set default debugger to CMSIS-DAP
- MSPSWSDK-3434: Added flashctl_nonmain_memory_write example for LP_MSPM0L2228
- MSPSWSDK-3668: Added SysConfig support for the LP_MSPM0L2228 empty example
- MSPSWSDK-3679: Updated READMEs for low-power mode DriverLib examples to better describe low-power mode behavior while debugging
- MSPSWSDK-3741: Renamed DriverLib example timx_timer_mode_pwm_cross_trigger_stop_restore to timx_timer_mode_pwm_x_trig_stop_restore
- MSPSWSDK-3754: Fixed incorrect Flash and SRAM sizes in generated linker files for CUSTOM_BOARD empty examples
- MSP Subsystem Code Examples
- MSPSWSDK-3291: Added new MSP subsystems:
- io_expander_i2c_host
- io_expander_i2c_target
- spi_to_can_bridge
- MSPSWSDK-3291: Added new MSP subsystems:
- Batery Gauge Code Examples
- MSPSWSDK-3198: Added examples using BQ7690x for TIDA-010268 Battery Pack design
- MSPSWSDK-3686: Updated bq769x2_control_i2c examples. Added example
- BSL Code Examples
- MSPSWSDK-3442: Fixed secondary_bsl_can example to use DL_FlashCTL_eraseMemoryFromRAM instead of DL_FlashCTL_eraseMemory
- MSPSWSDK-3733: Added the following BSL examples for LP_MSPM0L2228:
- bsl_i2c_flash_interface
- bsl_spi_flash_interface
- bsl_uart_flash_interface
- secondary_bsl_uart
- MSPSWSDK-3735: Added Flash BSL code examples for LP_MSMP0C1104:
- flash_bsl
- flash_bsl_app_invoke
- MSPSWSDK-3635: Updated BSL host code examples
- Documentation
- MSPSWSDK-3509: Fixed outdated version numbers in some documentation
- MSPSWSDK-3655: Added MSPM0L122X_L222X API Documentation
- MSPSWSDK-2899: Updated the CCS and CCS Theia IDE Guides to point to the documentation on tiarmobjcopy
- MSPSWSDK-3673: Updating Tools related documentation and FAQ and Known Issues Guide with more detailed and up-to-date information on low-power mode debugging, considerations when using 3P tools, and more troubleshooting information
- MSPSWSDK-3706: Fixed outdated version numbers in some middleware User Guides
- MSPSWSDK-3747 Updated the Keil QuickStart guide to no longer require switching debugger to CMSIS-DAP, since it is the default now
- Tools
- MSPSWSDK-3746: Updated MSPM0 BSL GUI tooling to remove the BSL GUI executable, and instead added batch file and instructions on how to build the GUI
- DriverLib Library - v1.31.00
Previous Upgrade and Compatibility
- 2.00.01.00
- Not applicable for this release
- 2.00.00.03
- SMBus Library - v2.00.00
- MSPSWSDK-3676: Application must now report command length to SMBus drivers when enabling PEC.
- The application should call
SMBus_targetReportBlock
and/orSMBus_targetReportLength
when the SMBus is inSMBus_State_Target_FirstByte
state. See SMBus target examples for a sample implementation.
- The application should call
- MSPSWSDK-3676: SMBus Target PEC error interrupt should be disabled. This flag is checked manually by the library during reception.
- When using SysConfig, this option can be disabled at Interrupt Configuration → Target Interrupts.
- MSPSWSDK-3676: Application must now report command length to SMBus drivers when enabling PEC.
- TI Drivers - v2.00.00
- MSPSWSDK-3687: The low level UART driver files located at
<sdk>\source\ti\drivers\uart\
are now merged to a common driver.- The following files changed:
UARTMSPM0G1X0X_G3X0X.c
andUARTMSPM0L11XX_L13XX.c
→UARTMSPM0.c
UARTSupportMSPM0G1X0X_G3X0X.h
andUARTSupportMSPM0L11XX_L13XX.h
→UARTSupportMSPM0.h
UARTMSPM0G1X0X_G3X0X.h
andUARTMSPM0L11XX_L13XX.h
→UARTMSPM0.h
- If a project is referencing the previous header files, they have to be replaced with
UARTMSPM0.h
orUARTSupportMSPM0.h
respectively.
- The following files changed:
- MSPSWSDK-3687: The low level UART driver files located at
- Energy Metrology Library - v2.00.00
- MSPSWSDK-3666: Files and folders were restructured based on energy measurement.
- The following change is required in code:
- Structure name changed
gMetrologyworkingData
→gMetrologyWorkingData
.
- Structure name changed
- The following file changed and references must be fixed where required:
TIDA-010243.h
→TIDA_010243.h
- The following paths changed and must be updated in example properties:
<sdk>\source\ti\energy_metrology\modules\TIDA-010243\
→<sdk>\examples\nortos\LP_MSPM0G3507\energy_metrology\three_phase\TIDA_010243_SW\TIDA_010243\
<sdk>\examples\nortos\LP_MSPM0G3507\energy_metrology\TIDA_010243\TIDA_010243_SW\
→<sdk>\examples\nortos\LP_MSPM0G3507\energy_metrology\three_phase\TIDA_010243_SW\
- The following change is required in code:
- MSPSWSDK-3666: Files and folders were restructured based on energy measurement.
- Sensorless FOC BLDC Motor Control Library - v2.00.00
- MSPSWSDK-3663, MSPSWSDK-3698, MSPSWSDK-3664, MSPSWSDK-3665: Updated HAL driversand AppLib configurations for single shunt, DRV8329 motor drive, field weakening, and MTPA support.
- To add support for these new features to existing projects, the user must update their project to use the HAL drivers, AppLib module & FOC.lib in the Sensorless FOC BLDC Motor Control Library v2.00.00
- No additional bugs or features were addressed on this release. Developers can continue with previous version, unless any of these features is desired.
- MSPSWSDK-3663, MSPSWSDK-3698, MSPSWSDK-3664, MSPSWSDK-3665: Updated HAL driversand AppLib configurations for single shunt, DRV8329 motor drive, field weakening, and MTPA support.
- SMBus Library - v2.00.00
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.