| .. _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 |