cc3200: Added board documentation in RST format.
This follows the board.rst template in the RFC for board documentation: https://gerrit.zephyrproject.org/r/#/c/9703/ This RST file was validated visually by rendering using the online tool: http://rst.ninjs.org/ JIRA: ZEP-1541 Change-Id: Ibe6e1c7f8eb3c7862b4087a78b469693927280a2 Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
This commit is contained in:
parent
8890b73b6e
commit
efb978da1a
|
@ -0,0 +1,244 @@
|
|||
.. _cc3200_launchxl:
|
||||
|
||||
CC3200 LaunchXL
|
||||
###############
|
||||
|
||||
Overview
|
||||
========
|
||||
The SimpleLink CC3200 LaunchXL is a development board for the CC3200
|
||||
wireless microcontroller (MCU), the industry’s first single-chip
|
||||
programmable MCU with built-in Wi-Fi connectivity.
|
||||
|
||||
Features:
|
||||
---------
|
||||
|
||||
* SimpleLink Wi-Fi, internet-on-a-chip solution with integrated MCU
|
||||
* 40-pin LaunchPad standard that leverages the BoosterPack ecosystem
|
||||
* FTDI based JTAG emulation with serial port for Flash programming
|
||||
* On-board accelerometer and temperature sensor
|
||||
* Two buttons and three LEDs for user interaction
|
||||
* UART through USB to PC
|
||||
* Power from USB for the LaunchPad and optional external BoosterPack
|
||||
* GNU Debugger (GDB) support over Open On chip debugger (OpenOCD)
|
||||
|
||||
Details on the CC3200 LaunchXL development board can be found in the
|
||||
`CC3200 LaunchXL User's Guide`_.
|
||||
|
||||
Hardware
|
||||
========
|
||||
|
||||
The CC3200 SoC has two MCUs:
|
||||
|
||||
#. Applications MCU - an ARM® Cortex®-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 CC3200 SoC can be found in the `CC3200 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, WiFi, or other perhipherals
|
||||
accessible through the BoosterPack, are not currently supported by
|
||||
this Zephyr port.
|
||||
|
||||
Connections and IOs
|
||||
--------------------
|
||||
|
||||
Peripherals on the CC3200 LaunchXL are mapped to the following pins in
|
||||
the file :file:`boards/arm/cc3200_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/cc3200_launchxl/cc3200_launchxl_defconfig`.
|
||||
|
||||
|
||||
Programming and Debugging
|
||||
=========================
|
||||
|
||||
Build
|
||||
-----
|
||||
|
||||
Follow the :ref:`getting_started` instructions for Zephyr application
|
||||
development.
|
||||
|
||||
To build for the CC3200 LaunchXL:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
% make BOARD=cc3200_launchxl
|
||||
|
||||
This will produce both a zephyr.elf (for GDB debugging) and a
|
||||
zephyr.bin file (for flashing) in the outdir/cc3200_launchxl/
|
||||
subdirectory.
|
||||
|
||||
FTDI USB Setup
|
||||
--------------
|
||||
|
||||
The CC3200 LaunchXL has onboard FTDI based JTAG emulation with serial
|
||||
port for Flash programming.
|
||||
|
||||
Under Linux, plugging the CC3200 USB cable into the PC should result in
|
||||
a new USB device showing up at /dev/ttyUSB1. If not, it may be
|
||||
necessary to create a udev rule to load the FTDI Linux driver for the
|
||||
TI vendor and product ID. For example:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
% cat /etc/udev/rules.d/98-usbftdi.rules
|
||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="c32a", MODE="0660", GROUP="dialout", RUN+="/sbin/modprobe ftdi-sio" RUN+="/bin/sh -c '/bin/echo 0451 c32a > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"
|
||||
|
||||
To ensure access to the usb ftdi device without having to be root, add
|
||||
yourself to the dialout group:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
% sudo usermod -a -G dialout <username>
|
||||
|
||||
Once the USB cable is connected to your host PC running Linux, one
|
||||
should see something like:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
% dmesg -t
|
||||
usb 1-2: new full-speed USB device number 32 using ohci-pci
|
||||
usb 1-2: New USB device found, idVendor=0451, idProduct=c32a
|
||||
usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
|
||||
usb 1-2: Product: USB <-> JTAG/SWD
|
||||
usb 1-2: Manufacturer: FTDI
|
||||
usb 1-2: SerialNumber: cc3101
|
||||
ftdi_sio 1-2:1.0: FTDI USB Serial Device converter detected
|
||||
usb 1-2: Detected FT2232C
|
||||
usb 1-2: Number of endpoints 2
|
||||
usb 1-2: Endpoint 1 MaxPacketSize 64
|
||||
usb 1-2: Endpoint 2 MaxPacketSize 64
|
||||
usb 1-2: Setting MaxPacketSize 64
|
||||
usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0
|
||||
ftdi_sio 1-2:1.1: FTDI USB Serial Device converter detected
|
||||
usb 1-2: Detected FT2232C
|
||||
usb 1-2: Number of endpoints 2
|
||||
usb 1-2: Endpoint 1 MaxPacketSize 64
|
||||
usb 1-2: Endpoint 2 MaxPacketSize 64
|
||||
usb 1-2: Setting MaxPacketSize 64
|
||||
usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB1
|
||||
ftdi_sio ttyUSB0: failed to get modem status: -110
|
||||
|
||||
% ls -l /dev/ttyUSB1
|
||||
crw-rw---- 1 root dialout /dev/ttyUSB1
|
||||
|
||||
.. note::
|
||||
The ttyUSB1 device is used for UART0 output. ttyUSB0 is not used.
|
||||
|
||||
|
||||
Flashing
|
||||
--------
|
||||
|
||||
The CC3200 has no integrated internal flash, but has 1Mb external serial
|
||||
flash for storing program images and other files. Upon reset, the TI
|
||||
bootloader copies the program from serial flash into RAM, and then
|
||||
transfers control to the program.
|
||||
|
||||
The `CC3200 Programmer's Guide`_ provides instructions for development
|
||||
using the `CC3200 SDK`_ with Windows platforms, including how to flash
|
||||
the zephyr.bin binary onto the board.
|
||||
|
||||
For Windows:
|
||||
^^^^^^^^^^^^
|
||||
|
||||
See Section 5.4 of the `CC3200 Programmer's Guide`_; or, follow the
|
||||
directions per the `UniFlash Quick Start Guide`_. Please be sure to use
|
||||
UniFlash version 3.4.1.
|
||||
|
||||
For Linux:
|
||||
^^^^^^^^^^
|
||||
|
||||
An option for flashing the CC3200 LaunchXL on Linux is the
|
||||
`cc3200tool`_. See the README there for build/install/usage.
|
||||
|
||||
The following command has been known to work:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
% cc3200tool -p /dev/ttyUSB1 --reset prompt write_file zephyr.bin
|
||||
/sys/mcuimg.bin
|
||||
|
||||
.. note:: You will need to manually insert a jumper on SOP2 (J15) for
|
||||
flashing and remove the jumper for execution.
|
||||
|
||||
Debugging
|
||||
---------
|
||||
|
||||
The `CC3200 SDK`_ supports debugging using GDB (for ARM) over OpenOCD,
|
||||
and includes the necessary OpenOCD CFG and sample gdbinit scripts.
|
||||
|
||||
See Section 5.3.3.5 of the `CC3200 Programmer's Guide`_.
|
||||
|
||||
To see program output from UART0, one can execute in a separate terminal
|
||||
window:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
% screen /dev/ttyUSB1 115200 8N1
|
||||
|
||||
.. note:: The bootloader takes the first 16Kb of the 256Kb RAM, so the
|
||||
Zephyr application starts at 0x20004000. The Zephyr CC3200
|
||||
configuration thus sets the max SRAM size to 240Kb.
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
|
||||
CC32xx Wiki:
|
||||
http://processors.wiki.ti.com/index.php/CC31xx_%26_CC32xx
|
||||
|
||||
TI CC3200 Product Page:
|
||||
http://www.ti.com/product/cc3200
|
||||
|
||||
.. _CC3200 TRM:
|
||||
http://www.ti.com/lit/pdf/swru367
|
||||
|
||||
.. _CC3200 Programmer's Guide:
|
||||
http://www.ti.com/lit/pdf/swru369
|
||||
|
||||
.. _UniFlash Quick Start Guide:
|
||||
http://processors.wiki.ti.com/index.php/CC31xx_%26_CC32xx_UniFlash_Quick_Start_Guide
|
||||
|
||||
.. _cc3200tool:
|
||||
https://github.com/ALLTERCO/cc3200tool
|
||||
|
||||
.. _CC3200 SDK:
|
||||
http://www.ti.com/tool/cc3200sdk
|
||||
|
||||
.. _CC3200 LaunchXL User's Guide:
|
||||
http://www.ti.com/lit/pdf/swru372
|
Loading…
Reference in New Issue