226 lines
6.9 KiB
ReStructuredText
226 lines
6.9 KiB
ReStructuredText
.. _cc3220sf_launchxl:
|
|
|
|
CC3220SF LaunchXL
|
|
#################
|
|
|
|
Overview
|
|
********
|
|
The SimpleLink Wi-Fi CC3220SF LaunchPad development kit (CC3220SF-LAUNCHXL)
|
|
highlights CC3220SF, a single-chip wireless microcontroller (MCU) with
|
|
1MB Flash, 256KB of RAM and enhanced security features.
|
|
|
|
See the `TI CC3220 Product Page`_ for details.
|
|
|
|
Features:
|
|
=========
|
|
|
|
* Two separate execution environments: a user application dedicated ARM
|
|
Cortex-M4 MCU and a network processor MCU to run all Wi-Fi and
|
|
internet logical layers
|
|
* 40-pin LaunchPad standard leveraging the BoosterPack ecosystem
|
|
* On-board accelerometer and temperature sensor
|
|
* Two buttons and three LEDs for user interaction
|
|
* UART through USB to PC
|
|
* BoosterPack plug-in module for adding graphical displays, audio
|
|
codecs, antenna selection, environmental sensing, and more
|
|
* Power from USB for the LaunchPad and optional external BoosterPack
|
|
* XDS110-based JTAG emulation with serial port for flash programming
|
|
|
|
Details on the CC3220SF LaunchXL development board can be found in the
|
|
`CC3220SF LaunchXL User's Guide`_.
|
|
|
|
Hardware
|
|
********
|
|
|
|
The CC3220SF SoC has two MCUs:
|
|
|
|
#. Applications MCU - an ARM |reg| Cortex |reg|-M4 Core at 80 MHz, with 256Kb RAM,
|
|
and access to external serial 1Mb flash with bootloader and peripheral
|
|
drivers in ROM.
|
|
|
|
#. Network Coprocessor (NWP) - a dedicated ARM MCU, which completely
|
|
offloads Wi-Fi and internet protocols from the application MCU.
|
|
|
|
Complete details of the CC3220SF SoC can be found in the `CC3220 TRM`_.
|
|
|
|
Supported Features
|
|
==================
|
|
|
|
Zephyr has been ported to the Applications MCU, with basic peripheral
|
|
driver support.
|
|
|
|
+-----------+------------+-----------------------+
|
|
| Interface | Controller | Driver/Component |
|
|
+===========+============+=======================+
|
|
| UART | on-chip | serial port-interrupt |
|
|
+-----------+------------+-----------------------+
|
|
| GPIO | on-chip | gpio |
|
|
+-----------+------------+-----------------------+
|
|
|
|
The accelerometer, temperature sensors, or other peripherals
|
|
accessible through the BoosterPack, are not currently supported.
|
|
|
|
Connections and IOs
|
|
====================
|
|
|
|
Peripherals on the CC3220SF LaunchXL are mapped to the following pins in
|
|
the file :file:`boards/arm/cc3220sf_launchxl/pinmux.c`.
|
|
|
|
+------------+-------+-------+
|
|
| Function | PIN | GPIO |
|
|
+============+=======+=======+
|
|
| UART0_TX | 55 | N/A |
|
|
+------------+-------+-------+
|
|
| UART0_RX | 57 | N/A |
|
|
+------------+-------+-------+
|
|
| LED D7 (R) | 64 | 9 |
|
|
+------------+-------+-------+
|
|
| LED D6 (O) | 01 | 10 |
|
|
+------------+-------+-------+
|
|
| LED D5 (G) | 02 | 11 |
|
|
+------------+-------+-------+
|
|
| Switch SW2 | 15 | 22 |
|
|
+------------+-------+-------+
|
|
| Switch SW3 | 04 | 13 |
|
|
+------------+-------+-------+
|
|
|
|
The default configuration can be found in the Kconfig file at
|
|
:file:`boards/arm/cc3220sf_launchxl/cc3220sf_launchxl_defconfig`.
|
|
|
|
|
|
Programming and Debugging
|
|
*************************
|
|
|
|
TI officially supports development on the CC3220SF using the TI
|
|
`CC3220 SDK`_ on Windows and Linux using TI tools: Code Composer
|
|
Studio for debugging and `UniFlash`_ for flashing.
|
|
|
|
For Windows developers, see the `CC3220 Getting Started Guide`_ for
|
|
instructions on installation of tools, and how to flash the board using
|
|
UniFlash.
|
|
|
|
Note that zephyr.bin produced by the Zephyr SDK may not load via
|
|
UniFlash tool. If encountering difficulties, use the zephyr.elf
|
|
file and dslite.sh instead.
|
|
|
|
The following instructions are geared towards Linux developers who
|
|
prefer command line tools to an IDE.
|
|
|
|
Flashing
|
|
========
|
|
|
|
The TI UniFlash tool can be used to download a program into flash, which
|
|
will persist over subsequent reboots.
|
|
|
|
Prerequisites:
|
|
--------------
|
|
|
|
#. Python 2.7 (the DSLite tool does not work with Python v 3.x).
|
|
#. Download and install `UniFlash`_ version 4.1 for Linux.
|
|
#. Jumper SOP[2..0] (J15) to 010, and connect the USB cable to the PC.
|
|
|
|
This should result in a new device "Texas Instruments XDS110 Embed
|
|
with CMSIS-DAP" appearing at /dev/ttyACM1 and /dev/ttyACM0.
|
|
|
|
#. Update the service pack, and place board in "Development Mode".
|
|
|
|
Follow the instructions in Section 3.4 "Download the Application",
|
|
in the `CC3220 Getting Started Guide`_, except for steps 5 and 6 which
|
|
select an MCU image.
|
|
|
|
#. Ensure the XDS-110 emulation firmware is updated.
|
|
|
|
Download and install the latest `XDS-110 emulation package`_.
|
|
Follow the directions here to update the firmware:
|
|
http://processors.wiki.ti.com/index.php/XDS110#Updating_the_XDS110_Firmware
|
|
|
|
#. Ensure CONFIG_XIP=y is set.
|
|
|
|
Add a 'CONFIG_XIP=y' line to the project's prj.conf file.
|
|
|
|
This locates the program into flash, and sets CONFIG_CC3220SF_DEBUG=y,
|
|
which prepends a debug header enabling the flash to persist over
|
|
subsequent reboots, bypassing the bootloader flash signature
|
|
verification.
|
|
|
|
See Section of the 21.10 of the `CC3220 TRM`_ for details on the
|
|
secure flash boot process.
|
|
|
|
Flashing Command:
|
|
-----------------
|
|
|
|
Once the above prerequisites are met, use the UniFlash command line tool
|
|
to flash the Zephyr image:
|
|
|
|
.. code-block:: console
|
|
|
|
% dslite.sh -c $ZEPHYR_BASE/boards/arm/cc3220sf_launchxl/support/CC3220SF.ccxml \
|
|
-e -f zephyr.elf
|
|
|
|
The CC3220SF.ccxml is a configuration file written by TI's Code Composer
|
|
Studio IDE, and required for the dslite.sh tool.
|
|
|
|
To see program output from UART0, one can execute in a separate terminal
|
|
window:
|
|
|
|
.. code-block:: console
|
|
|
|
% screen /dev/ttyACM0 115200 8N1
|
|
|
|
Debugging
|
|
=========
|
|
|
|
It is possible to enable loading and debugging of an application via
|
|
openocd and gdb, by linking and locating the program completely in SRAM.
|
|
|
|
Prerequisites:
|
|
--------------
|
|
|
|
Follow the same prerequisites as in Flashing above, in addition:
|
|
|
|
#. Ensure OpenOCD v0.9+ is configured/built with CMSIS-DAP support.
|
|
#. Power off the board, jumper SOP[2..0] (J15) to 001, and reconnect
|
|
the USB cable to the PC.
|
|
#. Set CONFIG_XIP=n and build the Zephyr elf file.
|
|
|
|
The necessary OpenOCD CFG and sample gdbinit scripts can be found in
|
|
:file:`boards/arm/cc3220sf_launchxl/support/`.
|
|
|
|
Debugging Command
|
|
-----------------
|
|
|
|
.. code-block:: console
|
|
|
|
% arm-none-eabi-gdb -x $ZEPHYR_BASE/boards/arm/cc3220sf_launchxl/support/gdbinit_xds110 \
|
|
zephyr.elf
|
|
|
|
References
|
|
**********
|
|
|
|
CC32xx Wiki:
|
|
http://processors.wiki.ti.com/index.php/CC31xx_%26_CC32xx
|
|
|
|
.. _TI CC3220 Product Page:
|
|
http://www.ti.com/product/cc3220
|
|
|
|
.. _CC3220 TRM:
|
|
http://www.ti.com/lit/ug/swru465/swru465.pdf
|
|
|
|
.. _CC3220 Programmer's Guide:
|
|
http://www.ti.com/lit/ug/swru464/swru464.pdf
|
|
|
|
.. _CC3220 Getting Started Guide:
|
|
http://www.ti.com/lit/ug/swru461/swru461.pdf
|
|
|
|
.. _UniFlash:
|
|
http://processors.wiki.ti.com/index.php/Category:CCS_UniFlash
|
|
|
|
.. _CC3220 SDK:
|
|
http://www.ti.com/tool/download/SIMPLELINK-CC3220-SDK
|
|
|
|
.. _CC3220SF LaunchXL User's Guide:
|
|
http://www.ti.com/lit/ug/swru463/swru463.pdf
|
|
|
|
.. _XDS-110 emulation package:
|
|
http://processors.wiki.ti.com/index.php/XDS_Emulation_Software_Package#XDS110_Reset_Download
|