boards: ti: lp_mspm0g3507: Add initial support TI LP_MSPM0G3507 board
Add initial support for Texas Instruments LP_MSPM0G3507 Launchpad. Signed-off-by: Saravanan Sekar <saravanan@linumiz.com> Signed-off-by: Jackson Farley <j-farley@ti.com>
This commit is contained in:
parent
c2bc1c3fef
commit
dda92f8dd8
9 changed files with 311 additions and 0 deletions
5
boards/ti/lp_mspm0g3507/Kconfig.lp_mspm0g3507
Normal file
5
boards/ti/lp_mspm0g3507/Kconfig.lp_mspm0g3507
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Copyright (c) 2025 Texas Instruments
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_LP_MSPM0G3507
|
||||
select SOC_MSPM0G3507
|
5
boards/ti/lp_mspm0g3507/board.cmake
Normal file
5
boards/ti/lp_mspm0g3507/board.cmake
Normal file
|
@ -0,0 +1,5 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
board_runner_args(jlink "--device=MSPM0G3507" "--speed=4000")
|
||||
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
|
||||
include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
|
6
boards/ti/lp_mspm0g3507/board.yml
Normal file
6
boards/ti/lp_mspm0g3507/board.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
board:
|
||||
name: lp_mspm0g3507
|
||||
full_name: MSPM0G3507 Launchpad
|
||||
vendor: ti
|
||||
socs:
|
||||
- name: mspm0g3507
|
BIN
boards/ti/lp_mspm0g3507/doc/img/lp_mspm0g3507.webp
Normal file
BIN
boards/ti/lp_mspm0g3507/doc/img/lp_mspm0g3507.webp
Normal file
Binary file not shown.
After Width: | Height: | Size: 43 KiB |
160
boards/ti/lp_mspm0g3507/doc/index.rst
Normal file
160
boards/ti/lp_mspm0g3507/doc/index.rst
Normal file
|
@ -0,0 +1,160 @@
|
|||
.. zephyr:board:: lp_mspm0g3507
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
MSPM0G350x microcontrollers (MCUs) are part of the MSP highly integrated, ultra-low-power 32-bit MCU
|
||||
family based on the enhanced Arm® Cortex®-M0+ 32-bit core platform operating at up to 80-MHz frequency.
|
||||
These cost-optimized MCUs offer high-performance analog peripheral integration, support extended temperature
|
||||
ranges from -40°C to 125°C, and operate with supply voltages ranging from 1.62 V to 3.6 V.
|
||||
|
||||
The MSPM0G350x devices provide up to 128KB embedded flash program memory with built-in error correction
|
||||
code (ECC) and up to 32KB SRAM with a hardware parity option. These MCUs also incorporate a
|
||||
memory protection unit, 7-channel DMA, math accelerator, and a variety of peripherals including
|
||||
|
||||
* Analog.
|
||||
|
||||
* Two 12-bit 4-Msps ADCs.
|
||||
|
||||
* Configurable internal shared voltage reference.
|
||||
|
||||
* One 12-bit 1-Msps DAC.
|
||||
|
||||
* Three high speed comparators with built-in reference DACs.
|
||||
|
||||
* Two zero-drift zero-crossover op-amps with programmable gain.
|
||||
|
||||
* Digital.
|
||||
|
||||
* Two 16-bit advanced control timers.
|
||||
|
||||
* Five general-purpose timers.
|
||||
|
||||
* One 16-bit general-purpose timer for QEI interface.
|
||||
|
||||
* One 32-bit high resolution general-purpose timer.
|
||||
|
||||
* Two 16-bit timers with deadband support and up to 12 PWM Channels.
|
||||
|
||||
* Two windowed-watchdog timers.
|
||||
|
||||
* One RTC with alarm and calendar modes.
|
||||
|
||||
* Data Integrity and Encryption.
|
||||
|
||||
* One AES HW accelerator capable of CTR, CBC, and ECB modes.
|
||||
|
||||
* One Cyclic Redundancy Check (CRC) accelerator.
|
||||
|
||||
* One True Random Number Generator (TRNG).
|
||||
|
||||
* Communication.
|
||||
|
||||
* Four UARTs, one with support for advanced modes such as LIN and Manchester.
|
||||
|
||||
* Two I2C supporting SMBUS/PMBUS and speeds up to FM+ (1Mbits/s).
|
||||
|
||||
* Two SPI, one with max speed 32Mbits/s.
|
||||
|
||||
* One CAN interface supporting CAN 2.0 A or B and CAN-FD.
|
||||
|
||||
.. image:: img/lp_mspm0g3507.webp
|
||||
:align: center
|
||||
:alt: MSPM0G3507 LaunchPad development board
|
||||
|
||||
Zephyr uses the ``lp_mspm0g3507`` board for building LP_MSPM0G3507
|
||||
|
||||
Features:
|
||||
*********
|
||||
|
||||
- Onboard XDS110 debug probe
|
||||
- EnergyTrace technology available for ultra-low-power debugging
|
||||
- 2 buttons, 1 LED and 1 RGB LED for user interaction
|
||||
- Temperature sensor circuit
|
||||
- Light sensor circuit
|
||||
- External OPA2365 (default buffer mode) for ADC (up to 4 Msps) evaluation
|
||||
- Onboard 32.768-kHz and 40-MHz crystals
|
||||
- RC filter for ADC input (unpopulated by default)
|
||||
|
||||
Details on the MSPM0G3507 LaunchPad can be found on the `TI LP_MSPM0G3507 Product Page`_.
|
||||
|
||||
Supported Features
|
||||
==================
|
||||
|
||||
.. zephyr:board-supported-hw::
|
||||
|
||||
Building and Flashing
|
||||
*********************
|
||||
|
||||
Building
|
||||
========
|
||||
|
||||
Follow the :ref:`getting_started` instructions for Zephyr application development.
|
||||
|
||||
For example, to build the blinky application for the MSPM0G3507 LaunchPad:
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: lp_mspm0g3507
|
||||
:goals: build
|
||||
|
||||
The resulting ``zephyr.bin`` binary in the build directory can be flashed onto
|
||||
MSPM0G3507 LaunchPad using the steps mentioned below.
|
||||
|
||||
Flashing
|
||||
========
|
||||
|
||||
Open OCD is used to program the flash memory on the devices. It may be necessary in
|
||||
earlier versions to use a branch of open OCD onto the device.
|
||||
|
||||
Before OpenOCD is public, one can clone `This Repo <https://github.com/openocd-org/openocd.git>`_,
|
||||
and then this can be built with
|
||||
|
||||
```
|
||||
cd <cloned_OPENOCD_dir>
|
||||
./bootstrap (when building from the git repository)
|
||||
./configure
|
||||
make
|
||||
sudo make install
|
||||
```
|
||||
|
||||
Then after the build, it is possible to flash the device by passing additional arguments to the flash command
|
||||
|
||||
```
|
||||
west flash --openocd <path to cloned dir>/src/openocd --openocd-search <path to cloned dir>/tcl
|
||||
```
|
||||
|
||||
Flashing using JLINK
|
||||
|
||||
```
|
||||
west flash --runner=jlink
|
||||
```
|
||||
|
||||
Debugging
|
||||
=========
|
||||
|
||||
You can debug an application in the usual way. Here is an example for the
|
||||
:zephyr:code-sample:`hello_world` application.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: lp_mspm0g3507
|
||||
:goals: debug
|
||||
|
||||
References
|
||||
**********
|
||||
|
||||
TI MSPM0 MCU Page:
|
||||
https://www.ti.com/microcontrollers-mcus-processors/arm-based-microcontrollers/arm-cortex-m0-mcus/overview.html
|
||||
|
||||
TI MSPM0G3507 Product Page:
|
||||
https://www.ti.com/product/MSPM0G3507
|
||||
|
||||
TI MSPM0 SDK:
|
||||
https://www.ti.com/tool/MSPM0-SDK
|
||||
|
||||
.. _MSPM0G3507 TRM:
|
||||
https://www.ti.com/lit/slau846
|
||||
|
||||
.. _TI LP_MSPM0G3507 Product Page:
|
||||
https://www.ti.com/tool/LP-MSPM0G3507
|
107
boards/ti/lp_mspm0g3507/lp_mspm0g3507.dts
Normal file
107
boards/ti/lp_mspm0g3507/lp_mspm0g3507.dts
Normal file
|
@ -0,0 +1,107 @@
|
|||
/*
|
||||
* Copyright (c) 2025 Texas Instruments
|
||||
* Copyright (c) 2025 Linumiz
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <ti/mspm0/g/mspm0g3507.dtsi>
|
||||
#include <ti/mspm0/g/mspm0g1x0x_g3x0x-pinctrl.dtsi>
|
||||
#include <zephyr/dt-bindings/clock/mspm0_clock.h>
|
||||
#include <zephyr/dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
model = "TI LP_MSPM0G3507/MSPM0G3507";
|
||||
compatible = "ti,mspm0g3507";
|
||||
|
||||
aliases {
|
||||
led0 = &led0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
zephyr,sram = &sram0;
|
||||
zephyr,flash = &flash0;
|
||||
zephyr,console = &uart0;
|
||||
zephyr,shell-uart = &uart0;
|
||||
zephyr,code-partition = &slot0_partition;
|
||||
};
|
||||
|
||||
leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
led0: led_0 {
|
||||
gpios = <&gpiob 22 GPIO_ACTIVE_HIGH>;
|
||||
label = "Blue LED";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&cpu0 {
|
||||
clock-frequency = <DT_FREQ_M(80)>;
|
||||
};
|
||||
|
||||
&ulpclk {
|
||||
clock-frequency = <DT_FREQ_M(40)>;
|
||||
clk-div = <2>;
|
||||
};
|
||||
|
||||
&mclk {
|
||||
clock-frequency = <DT_FREQ_M(80)>;
|
||||
clocks = <&hsclk 0>;
|
||||
};
|
||||
|
||||
&hsclk {
|
||||
clocks = <&syspll2x 0>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&syspll2x {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&flash0 {
|
||||
status = "okay";
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
boot_partition: partition@0 {
|
||||
label = "mcuboot";
|
||||
reg = <0x00000000 0x8000>;
|
||||
};
|
||||
|
||||
slot0_partition: partition@8000 {
|
||||
label = "image-0";
|
||||
reg = <0x00008000 0xC000>;
|
||||
};
|
||||
|
||||
slot1_partition: partition@14000 {
|
||||
label = "image-1";
|
||||
reg = <0x00014000 0xC000>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&pinctrl {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpioa {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gpiob {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart0 {
|
||||
status = "okay";
|
||||
|
||||
current-speed = <115200>;
|
||||
pinctrl-0 = <&uart0_tx_pa10 &uart0_rx_pa11>;
|
||||
pinctrl-names = "default";
|
||||
};
|
14
boards/ti/lp_mspm0g3507/lp_mspm0g3507.yaml
Normal file
14
boards/ti/lp_mspm0g3507/lp_mspm0g3507.yaml
Normal file
|
@ -0,0 +1,14 @@
|
|||
identifier: lp_mspm0g3507
|
||||
name: TI MSPM0G3507 Launchpad
|
||||
type: mcu
|
||||
arch: arm
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
- xtools
|
||||
ram: 32
|
||||
flash: 128
|
||||
supported:
|
||||
- uart
|
||||
- gpio
|
||||
vendor: ti
|
10
boards/ti/lp_mspm0g3507/lp_mspm0g3507_defconfig
Normal file
10
boards/ti/lp_mspm0g3507/lp_mspm0g3507_defconfig
Normal file
|
@ -0,0 +1,10 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# Enable UART driver
|
||||
CONFIG_SERIAL=y
|
||||
|
||||
# Enable Console
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
||||
|
||||
CONFIG_CLOCK_CONTROL=y
|
4
boards/ti/lp_mspm0g3507/support/openocd.cfg
Normal file
4
boards/ti/lp_mspm0g3507/support/openocd.cfg
Normal file
|
@ -0,0 +1,4 @@
|
|||
source [find interface/xds110.cfg]
|
||||
adapter speed 10000
|
||||
|
||||
source [find target/ti_mspm0.cfg]
|
Loading…
Add table
Add a link
Reference in a new issue