boards: ti: Add support of CC1352P7 Launchpad
This adds support of CC1352P7 Lauchpad. This based on the CC1352R1 LaunchXL. Signed-off-by: Alexandre Bailon <abailon@baylibre.com>
This commit is contained in:
parent
200e8d481f
commit
988e4cf770
11 changed files with 333 additions and 0 deletions
3
boards/ti/cc1352p7_launchpad/CMakeLists.txt
Normal file
3
boards/ti/cc1352p7_launchpad/CMakeLists.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
add_subdirectory(${ZEPHYR_BASE}/boards/ti/common/ ${CMAKE_CURRENT_BINARY_DIR}/common)
|
6
boards/ti/cc1352p7_launchpad/Kconfig
Normal file
6
boards/ti/cc1352p7_launchpad/Kconfig
Normal file
|
@ -0,0 +1,6 @@
|
|||
# TI CC1352P7 LaunchPad board
|
||||
|
||||
# Copyright (c) 2024 Alexandre Bailon
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
source "boards/ti/common/Kconfig"
|
7
boards/ti/cc1352p7_launchpad/Kconfig.cc1352p7_lp
Normal file
7
boards/ti/cc1352p7_launchpad/Kconfig.cc1352p7_lp
Normal file
|
@ -0,0 +1,7 @@
|
|||
# TI CC1352P7 LaunchPad board
|
||||
|
||||
# Copyright (c) 2024 Alexandre Bailon
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
config BOARD_CC1352P7_LP
|
||||
select SOC_CC1352P7
|
5
boards/ti/cc1352p7_launchpad/board.cmake
Normal file
5
boards/ti/cc1352p7_launchpad/board.cmake
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Copyright (c) 2021 Florin Stancu
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
|
5
boards/ti/cc1352p7_launchpad/board.yml
Normal file
5
boards/ti/cc1352p7_launchpad/board.yml
Normal file
|
@ -0,0 +1,5 @@
|
|||
board:
|
||||
name: cc1352p7_lp
|
||||
vendor: ti
|
||||
socs:
|
||||
- name: cc1352p7
|
17
boards/ti/cc1352p7_launchpad/cc1352p7_lp.dts
Normal file
17
boards/ti/cc1352p7_launchpad/cc1352p7_lp.dts
Normal file
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Alexandre Bailon
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
|
||||
#include <ti/cc1352r7.dtsi>
|
||||
#include "../common/launchxl.dtsi"
|
||||
#include "../common/launchxl-flash-p7.dtsi"
|
||||
#include "../common/launchxl_sky13317.dtsi"
|
||||
|
||||
/ {
|
||||
model = "TI CC1352P7 LaunchPad";
|
||||
compatible = "ti,lp-cc1352p7";
|
||||
};
|
17
boards/ti/cc1352p7_launchpad/cc1352p7_lp.yaml
Normal file
17
boards/ti/cc1352p7_launchpad/cc1352p7_lp.yaml
Normal file
|
@ -0,0 +1,17 @@
|
|||
identifier: cc1352p7_lp
|
||||
name: TI SimpleLink CC1352P7 LaunchPad
|
||||
type: mcu
|
||||
arch: arm
|
||||
ram: 144
|
||||
flash: 704
|
||||
toolchain:
|
||||
- zephyr
|
||||
- gnuarmemb
|
||||
- xtools
|
||||
supported:
|
||||
- gpio
|
||||
- i2c
|
||||
- spi
|
||||
- watchdog
|
||||
- hwinfo
|
||||
vendor: ti
|
24
boards/ti/cc1352p7_launchpad/cc1352p7_lp_defconfig
Normal file
24
boards/ti/cc1352p7_launchpad/cc1352p7_lp_defconfig
Normal file
|
@ -0,0 +1,24 @@
|
|||
#
|
||||
# Copyright (c) 2021 Florin Stancu
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
CONFIG_BUILD_OUTPUT_HEX=y
|
||||
# custom callback for the antenna switch
|
||||
CONFIG_CC13X2_CC26X2_HAS_CUSTOM_RF_HWATTRS=y
|
||||
|
||||
CONFIG_CC13X2_CC26X2_BOOTLOADER_ENABLE=y
|
||||
CONFIG_CC13X2_CC26X2_BOOTLOADER_BACKDOOR_ENABLE=y
|
||||
CONFIG_CC13X2_CC26X2_BOOTLOADER_BACKDOOR_PIN=15
|
||||
|
||||
# Enable MPU and hardware stack protection
|
||||
CONFIG_ARM_MPU=y
|
||||
CONFIG_HW_STACK_PROTECTION=y
|
||||
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_GPIO=y
|
||||
CONFIG_SERIAL=y
|
||||
|
||||
CONFIG_CONSOLE=y
|
||||
CONFIG_UART_CONSOLE=y
|
BIN
boards/ti/cc1352p7_launchpad/doc/img/lp-cc1352p7-top.jpg
Normal file
BIN
boards/ti/cc1352p7_launchpad/doc/img/lp-cc1352p7-top.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 49 KiB |
248
boards/ti/cc1352p7_launchpad/doc/index.rst
Normal file
248
boards/ti/cc1352p7_launchpad/doc/index.rst
Normal file
|
@ -0,0 +1,248 @@
|
|||
.. _cc1352p7_lp:
|
||||
|
||||
CC1352P7 LaunchPad
|
||||
##################
|
||||
|
||||
Overview
|
||||
********
|
||||
|
||||
The Texas Instruments CC1352P7 LaunchPad |trade| (LP-CC1352P7) is a
|
||||
development kit for the SimpleLink |trade| multi-Standard CC1352P7 wireless MCU.
|
||||
|
||||
See the `TI CC1352P7 LaunchPad Product Page`_ for details.
|
||||
|
||||
.. figure:: img/lp-cc1352p7-top.jpg
|
||||
:width: 400px
|
||||
:align: center
|
||||
:alt: TI CC1352P7 LaunchPad
|
||||
|
||||
Texas Instruments CC1352P7 LaunchPad |trade|
|
||||
|
||||
Hardware
|
||||
********
|
||||
|
||||
The CC1352P7 LaunchPad |trade| development kit features the CC1352P7 wireless MCU.
|
||||
The board is equipped with two LEDs, two push buttons, antenna switch and
|
||||
BoosterPack connectors for expansion. It also includes an integrated (XDS110)
|
||||
debugger.
|
||||
|
||||
The CC1352P7 wireless MCU has a 48 MHz Arm |reg| Cortex |reg|-M4F SoC and an
|
||||
integrated sub-1GHz and 2.4 GHz transceiver with integrated 20dBm power amplifier
|
||||
(PA) supporting multiple protocols including Bluetooth |reg| Low Energy and IEEE
|
||||
|reg| 802.15.4.
|
||||
|
||||
See the `TI CC1352P7 Product Page`_ for additional details.
|
||||
|
||||
Supported Features
|
||||
==================
|
||||
|
||||
The CC1352P7 LaunchPad board configuration supports the following hardware
|
||||
features:
|
||||
|
||||
+-----------+------------+----------------------+
|
||||
| Interface | Controller | Driver/Component |
|
||||
+===========+============+======================+
|
||||
| GPIO | on-chip | gpio |
|
||||
+-----------+------------+----------------------+
|
||||
| MPU | on-chip | arch/arm |
|
||||
+-----------+------------+----------------------+
|
||||
| NVIC | on-chip | arch/arm |
|
||||
+-----------+------------+----------------------+
|
||||
| PINMUX | on-chip | pinmux |
|
||||
+-----------+------------+----------------------+
|
||||
| UART | on-chip | serial |
|
||||
+-----------+------------+----------------------+
|
||||
| I2C | on-chip | i2c |
|
||||
+-----------+------------+----------------------+
|
||||
| SPI | on-chip | spi |
|
||||
+-----------+------------+----------------------+
|
||||
| WDT | on-chip | watchdog |
|
||||
+-----------+------------+----------------------+
|
||||
| HWINFO | on-chip | hwinfo |
|
||||
+-----------+------------+----------------------+
|
||||
|
||||
Other hardware features have not been enabled yet for this board.
|
||||
|
||||
Connections and IOs
|
||||
===================
|
||||
|
||||
All I/O signals are accessible from the BoosterPack connectors. Pin function
|
||||
aligns with the LaunchPad standard.
|
||||
|
||||
+-------+-----------+---------------------+
|
||||
| Pin | Function | Usage |
|
||||
+=======+===========+=====================+
|
||||
| DIO3 | GPIO | |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO4 | I2C_MSSCL | I2C SCL |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO5 | I2C_MSSDA | I2C SDA |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO6 | GPIO | Red LED |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO7 | GPIO | Green LED |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO8 | SSI0_RX | SPI MISO |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO9 | SSI0_TX | SPI MOSI |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO10 | SSI0_CLK | SPI CLK |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO11 | SSIO_CS | SPI CS |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO12 | UART0_RX | UART RXD |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO13 | UART0_TX | UART TXD |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO14 | GPIO | Button 2 |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO15 | GPIO | Button 1 |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO16 | | JTAG TDO |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO17 | | JTAG TDI |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO18 | UART0_RTS | UART RTS / JTAG SWO |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO19 | UART0_CTS | UART CTS |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO20 | GPIO | Flash CS |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO21 | GPIO | |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO22 | GPIO | |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO23 | AUX_IO | A0 |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO24 | AUX_IO | A1 |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO25 | AUX_IO | A2 |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO26 | AUX_IO | A3 |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO27 | AUX_IO | A4 |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO28 | AUX_IO | A5 |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO29 | AUX_IO | A6 |
|
||||
+-------+-----------+---------------------+
|
||||
| DIO30 | AUX_IO | A7 |
|
||||
+-------+-----------+---------------------+
|
||||
|
||||
Programming and Debugging
|
||||
*************************
|
||||
|
||||
Before flashing or debugging ensure the RESET, TMS, TCK, TDO, and TDI jumpers
|
||||
are in place. Also place jumpers on the TXD and RXD signals for a serial
|
||||
console using the XDS110 application serial port.
|
||||
|
||||
Prerequisites:
|
||||
==============
|
||||
|
||||
#. Ensure the XDS-110 emulation firmware on the board is updated.
|
||||
|
||||
Download and install the latest `XDS-110 emulation package`_.
|
||||
|
||||
Follow these `xds110 firmware update directions
|
||||
<http://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds110.html#updating-the-xds110-firmware>`_
|
||||
|
||||
Note that the emulation package install may place the xdsdfu utility
|
||||
in ``<install_dir>/ccs_base/common/uscif/xds110/``.
|
||||
|
||||
#. Install OpenOCD
|
||||
|
||||
You can obtain OpenOCD by following these
|
||||
:ref:`installing the latest Zephyr SDK instructions <toolchain_zephyr_sdk>`.
|
||||
|
||||
After the installation, add the directory containing the OpenOCD executable
|
||||
to your environment's PATH variable. For example, use this command in Linux:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
export PATH=$ZEPHYR_SDK_INSTALL_DIR/sysroots/x86_64-pokysdk-linux/usr/bin/openocd:$PATH
|
||||
|
||||
Flashing
|
||||
========
|
||||
|
||||
Applications for the ``CC1352P7 LaunchPad`` board configuration can be built and
|
||||
flashed in the usual way (see :ref:`build_an_application` and
|
||||
:ref:`application_run` for more details).
|
||||
|
||||
Here is an example for the :ref:`hello_world` application.
|
||||
|
||||
First, run your favorite terminal program to listen for output.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ screen <tty_device> 115200
|
||||
|
||||
Replace :code:`<tty_device>` with the port where the XDS110 application
|
||||
serial device can be found. For example, :code:`/dev/ttyACM0`.
|
||||
|
||||
Then build and flash the application in the usual way.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: cc1352p7_lp
|
||||
:goals: build flash
|
||||
|
||||
Debugging
|
||||
=========
|
||||
|
||||
You can debug an application in the usual way. Here is an example for the
|
||||
:ref:`hello_world` application.
|
||||
|
||||
.. zephyr-app-commands::
|
||||
:zephyr-app: samples/hello_world
|
||||
:board: cc1352p7_lp
|
||||
:maybe-skip-config:
|
||||
:goals: debug
|
||||
|
||||
Bootloader
|
||||
==========
|
||||
|
||||
The ROM bootloader on CC13x2x7 and CC26x2x7 devices is enabled by default. The
|
||||
bootloader will start if there is no valid application image in flash or the
|
||||
so-called backdoor is enabled (via option
|
||||
:kconfig:option:`CONFIG_CC13X2_CC26X2_BOOTLOADER_BACKDOOR_ENABLE`) and BTN-1 is held
|
||||
down during reset. See the bootloader documentation in chapter 10 of the `TI
|
||||
CC13x2x7 / CC26x2x7 Technical Reference Manual`_ for additional information.
|
||||
|
||||
Power Management and UART
|
||||
=========================
|
||||
|
||||
System and device power management are supported on this platform, and
|
||||
can be enabled via the standard Kconfig options in Zephyr, such as
|
||||
:kconfig:option:`CONFIG_PM`, :kconfig:option:`CONFIG_PM_DEVICE`.
|
||||
|
||||
When system power management is turned on (CONFIG_PM=y),
|
||||
sleep state 2 (standby mode) is allowed, and polling is used to retrieve input
|
||||
by calling uart_poll_in(), it is possible for characters to be missed if the
|
||||
system enters standby mode between calls to uart_poll_in(). This is because
|
||||
the UART is inactive while the system is in standby mode. The workaround is to
|
||||
disable sleep state 2 while polling:
|
||||
|
||||
.. code-block:: c
|
||||
|
||||
pm_policy_state_lock_get(PM_STATE_STANDBY, PM_ALL_SUBSTATES);
|
||||
<code that calls uart_poll_in() and expects input at any point in time>
|
||||
pm_policy_state_lock_put(PM_STATE_STANDBY, PM_ALL_SUBSTATES);
|
||||
|
||||
|
||||
References
|
||||
**********
|
||||
|
||||
CC1352P7 LaunchPad Quick Start Guide:
|
||||
https://www.ti.com/lit/pdf/swru573
|
||||
|
||||
.. _TI CC1352P7 LaunchPad Product Page:
|
||||
https://www.ti.com/tool/LP-CC1352P7
|
||||
|
||||
.. _TI CC1352P7 Product Page:
|
||||
https://www.ti.com/product/CC1352P7
|
||||
|
||||
.. _TI CC13x2x7 / CC26x2x7 Technical Reference Manual:
|
||||
https://www.ti.com/lit/ug/swcu192/swcu192.pdf
|
||||
|
||||
.. _XDS-110 emulation package:
|
||||
http://processors.wiki.ti.com/index.php/XDS_Emulation_Software_Package#XDS_Emulation_Software_.28emupack.29_Download
|
1
boards/ti/cc1352p7_launchpad/support/openocd.cfg
Normal file
1
boards/ti/cc1352p7_launchpad/support/openocd.cfg
Normal file
|
@ -0,0 +1 @@
|
|||
source [find board/ti_cc26x2x7_launchpad.cfg]
|
Loading…
Add table
Add a link
Reference in a new issue