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