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