1.. _cc1352p1_launchxl:
2
3CC1352P1 LaunchXL
4#################
5
6Overview
7********
8
9The Texas Instruments CC1352P LaunchPad |trade| (LAUNCHXL-CC1352P1) is a
10development kit for the SimpleLink |trade| multi-Standard CC1352P wireless MCU.
11
12See the `TI CC1352P LaunchPad Product Page`_ for details.
13
14.. figure:: img/cc1352p1_launchxl.jpg
15   :width: 400px
16   :align: center
17   :alt: TI CC1352P1 LaunchPad
18
19   Texas Instruments CC1352P1 LaunchPad |trade|
20
21Hardware
22********
23
24The CC1352P LaunchPad |trade| development kit features the CC1352P wireless MCU.
25The board is equipped with two LEDs, two push buttons, antenna switch and
26BoosterPack connectors for expansion. It also includes an integrated (XDS110)
27debugger.
28
29The CC1352P wireless MCU has a 48 MHz Arm |reg| Cortex |reg|-M4F SoC and an
30integrated sub-1GHz and 2.4 GHz transceiver with integrated 20dBm power amplifier
31(PA) supporting multiple protocols including Bluetooth |reg| Low Energy and IEEE
32|reg| 802.15.4.
33
34See the `TI CC1352P Product Page`_ for additional details.
35
36Supported Features
37==================
38
39The CC1352P LaunchPad board configuration supports the following hardware
40features:
41
42+-----------+------------+----------------------+
43| Interface | Controller | Driver/Component     |
44+===========+============+======================+
45| GPIO      | on-chip    | gpio                 |
46+-----------+------------+----------------------+
47| MPU       | on-chip    | arch/arm             |
48+-----------+------------+----------------------+
49| NVIC      | on-chip    | arch/arm             |
50+-----------+------------+----------------------+
51| PINMUX    | on-chip    | pinmux               |
52+-----------+------------+----------------------+
53| UART      | on-chip    | serial               |
54+-----------+------------+----------------------+
55| I2C       | on-chip    | i2c                  |
56+-----------+------------+----------------------+
57| SPI       | on-chip    | spi                  |
58+-----------+------------+----------------------+
59| WDT       | on-chip    | watchdog             |
60+-----------+------------+----------------------+
61| HWINFO    | on-chip    | hwinfo               |
62+-----------+------------+----------------------+
63
64Other hardware features have not been enabled yet for this board.
65
66Connections and IOs
67===================
68
69All I/O signals are accessible from the BoosterPack connectors. Pin function
70aligns with the LaunchPad standard.
71
72+-------+-----------+---------------------+
73| Pin   | Function  | Usage               |
74+=======+===========+=====================+
75| DIO3  | GPIO      |                     |
76+-------+-----------+---------------------+
77| DIO4  | I2C_MSSCL | I2C SCL             |
78+-------+-----------+---------------------+
79| DIO5  | I2C_MSSDA | I2C SDA             |
80+-------+-----------+---------------------+
81| DIO6  | GPIO      | Red LED             |
82+-------+-----------+---------------------+
83| DIO7  | GPIO      | Green LED           |
84+-------+-----------+---------------------+
85| DIO8  | SSI0_RX   | SPI MISO            |
86+-------+-----------+---------------------+
87| DIO9  | SSI0_TX   | SPI MOSI            |
88+-------+-----------+---------------------+
89| DIO10 | SSI0_CLK  | SPI CLK             |
90+-------+-----------+---------------------+
91| DIO11 | SSIO_CS   | SPI CS              |
92+-------+-----------+---------------------+
93| DIO12 | UART0_RX  | UART RXD            |
94+-------+-----------+---------------------+
95| DIO13 | UART0_TX  | UART TXD            |
96+-------+-----------+---------------------+
97| DIO14 | GPIO      | Button 2            |
98+-------+-----------+---------------------+
99| DIO15 | GPIO      | Button 1            |
100+-------+-----------+---------------------+
101| DIO16 |           | JTAG TDO            |
102+-------+-----------+---------------------+
103| DIO17 |           | JTAG TDI            |
104+-------+-----------+---------------------+
105| DIO18 | UART0_RTS | UART RTS / JTAG SWO |
106+-------+-----------+---------------------+
107| DIO19 | UART0_CTS | UART CTS            |
108+-------+-----------+---------------------+
109| DIO20 | GPIO      | Flash CS            |
110+-------+-----------+---------------------+
111| DIO21 | GPIO      |                     |
112+-------+-----------+---------------------+
113| DIO22 | GPIO      |                     |
114+-------+-----------+---------------------+
115| DIO23 | AUX_IO    | A0                  |
116+-------+-----------+---------------------+
117| DIO24 | AUX_IO    | A1                  |
118+-------+-----------+---------------------+
119| DIO25 | AUX_IO    | A2                  |
120+-------+-----------+---------------------+
121| DIO26 | AUX_IO    | A3                  |
122+-------+-----------+---------------------+
123| DIO27 | AUX_IO    | A4                  |
124+-------+-----------+---------------------+
125| DIO28 | AUX_IO    | A5                  |
126+-------+-----------+---------------------+
127| DIO29 | AUX_IO    | A6                  |
128+-------+-----------+---------------------+
129| DIO30 | AUX_IO    | A7                  |
130+-------+-----------+---------------------+
131
132Programming and Debugging
133*************************
134
135Before flashing or debugging ensure the RESET, TMS, TCK, TDO, and TDI jumpers
136are in place. Also place jumpers on the the TXD and RXD signals for a serial
137console using the XDS110 application serial port.
138
139Prerequisites:
140==============
141
142#. Ensure the XDS-110 emulation firmware on the board is updated.
143
144   Download and install the latest `XDS-110 emulation package`_.
145
146   Follow these `xds110 firmware update directions
147   <http://software-dl.ti.com/ccs/esd/documents/xdsdebugprobes/emu_xds110.html#updating-the-xds110-firmware>`_
148
149   Note that the emulation package install may place the xdsdfu utility
150   in ``<install_dir>/ccs_base/common/uscif/xds110/``.
151
152#. Install OpenOCD
153
154   You can obtain OpenOCD by following these
155   :ref:`installing the latest Zephyr SDK instructions <toolchain_zephyr_sdk>`.
156
157   After the installation, add the directory containing the OpenOCD executable
158   to your environment's PATH variable. For example, use this command in Linux:
159
160   .. code-block:: console
161
162      export PATH=$ZEPHYR_SDK_INSTALL_DIR/sysroots/x86_64-pokysdk-linux/usr/bin/openocd:$PATH
163
164Flashing
165========
166
167Applications for the ``CC1352P LaunchPad`` board configuration can be built and
168flashed in the usual way (see :ref:`build_an_application` and
169:ref:`application_run` for more details).
170
171Here is an example for the :ref:`hello_world` application.
172
173First, run your favorite terminal program to listen for output.
174
175.. code-block:: console
176
177   $ screen <tty_device> 115200
178
179Replace :code:`<tty_device>` with the port where the XDS110 application
180serial device can be found. For example, :code:`/dev/ttyACM0`.
181
182Then build and flash the application in the usual way.
183
184.. zephyr-app-commands::
185   :zephyr-app: samples/hello_world
186   :board: cc1352p1_launchxl
187   :goals: build flash
188
189Debugging
190=========
191
192You can debug an application in the usual way.  Here is an example for the
193:ref:`hello_world` application.
194
195.. zephyr-app-commands::
196   :zephyr-app: samples/hello_world
197   :board: cc1352p1_launchxl
198   :maybe-skip-config:
199   :goals: debug
200
201Bootloader
202==========
203
204The ROM bootloader on CC13x2 and CC26x2 devices is enabled by default. The
205bootloader will start if there is no valid application image in flash or the
206so-called backdoor is enabled (via option
207:kconfig:option:`CONFIG_CC13X2_CC26X2_BOOTLOADER_BACKDOOR_ENABLE`) and BTN-1 is held
208down during reset. See the bootloader documentation in chapter 10 of the `TI
209CC13x2 / CC26x2 Technical Reference Manual`_ for additional information.
210
211Power Management and UART
212=========================
213
214System and device power management are supported on this platform, and
215can be enabled via the standard Kconfig options in Zephyr, such as
216:kconfig:option:`CONFIG_PM`, :kconfig:option:`CONFIG_PM_DEVICE`.
217
218When system power management is turned on (CONFIG_PM=y),
219sleep state 2 (standby mode) is allowed, and polling is used to retrieve input
220by calling uart_poll_in(), it is possible for characters to be missed if the
221system enters standby mode between calls to uart_poll_in(). This is because
222the UART is inactive while the system is in standby mode. The workaround is to
223disable sleep state 2 while polling:
224
225.. code-block:: c
226
227    pm_policy_state_lock_get(PM_STATE_STANDBY, PM_ALL_SUBSTATES);
228    <code that calls uart_poll_in() and expects input at any point in time>
229    pm_policy_state_lock_put(PM_STATE_STANDBY, PM_ALL_SUBSTATES);
230
231
232References
233**********
234
235CC1352P1 LaunchPad Quick Start Guide:
236  http://www.ti.com/lit/pdf/swru525
237
238.. _TI CC1352P LaunchPad Product Page:
239   https://www.ti.com/tool/LAUNCHXL-CC1352P
240
241.. _TI CC1352P Product Page:
242   https://www.ti.com/product/CC1352P
243
244.. _TI CC13x2 / CC26x2 Technical Reference Manual:
245   http://www.ti.com/lit/pdf/swcu185
246
247..  _XDS-110 emulation package:
248   http://processors.wiki.ti.com/index.php/XDS_Emulation_Software_Package#XDS_Emulation_Software_.28emupack.29_Download
249