CC31xx & CC32xx FAQ

From Texas Instruments Wiki
Jump to: navigation, search
Cc31xx cc32xx return home.png


This wiki is intended to list the Frequently Asked Questions (FAQs) for CC31xx/CC32xx. Note that the Certification FAQ is not list here due to the uniqueness of the topic. Please visit CC31xx & CC32xx Radio Certifications page for RF certification information. The user posting a new query on the E2E forum is encouraged to review this FAQ section.

The FAQs are listed based on different categories.

WLAN General Queries

Q: What are the maximum number of devices that connect to CC3100/CC3200 in AP or P2P mode?

A: CC3100/CC3200 in AP mode or P2P GO mode supports only one device connected to it at a time

Q: Is there any error code to indicate that I have given wrong AP credentials in my WLAN station code?

A: No. There are no error codes to indicate that you have given wrong credentials. The CC3100/CC3200 will keep on trying for a connection until an AP with the matching credentials becomes available.

Q: How do I get the RSSI of connected AP on CC3100/CC3200?

A: Please check section 17.2 in NWP Programmer's guide where it describes the usage of sl_WlanRxStatGet API. Also take a look at the E2E thread RSSI of connected device

Q: Can we achieve repeater and bridge funcitonality on CC3100/CC3200?

A: Please refer to the answer here: Bridge-Repeater

Q: What characters are supported for SSID in AP mode?

A:CC31xx and CC3200 support ASCII printable characters (0x20 to 0x7E).

Q: What is the roaming and AP selection strategy for CC3100/CC3200?

A: Please refer to the answer here: AP selection.

Q: Does CC3100/CC3200 support mesh?

A: Please refer to the answer here: cc3200 and mesh.

MCU peripheral Software

Q: I would like to use CC3200 SPI in slave mode with DMA. How can I do this?

A: Please refer to the following thread: DMA on SPI slave

Q: I am having a problem of getting ADC data using DMA pingpong mode on CC3200.

A: Please refer to the following threads: Getting ADC data via DMA on CC3200 and ADC in DMA BASIC_MODE

Q: I would like to use CC3200 I2C in slave mode. How can I do this?

A: Please refer to the following threads: Example for CC3200 I2C in slave mode

Q: What are the differences between function calls PRCMHibernateEnter(), PRCMMCUReset(true), PRCMMCUReset(false)?

A: Please refer to the following thread: Differences between power reset APIs

Q: SPI Master cannot receive data when the scope probes on SPI CLK on CC3200. What is the problem?

A: Please refer to the following thread: SPI Master cannot receive data

Q: How do I relate between the pin number and GPIO number in CC3200?

A: Please refer to the following thread: GPIO Pin numbers. Also take a look at the Pin Mux tool.


Q: What are the supported serial flash memory for CC32xx and CC31xx?

A: Please refer to CC3100 & CC3200 SFlash Recommendations.

Q: I am not able to flash my device using Uniflash and I am unable to debug using CCS/IAR over JTAG. Is the board damaged? How can I verify this?

A: Please go through the HW debugging application note and follow the instructions CC3x00 HW Debugging Application Note.

Custom Boards

Q: I would want to know the options for flashing the image onto my custom board. Where can I find the information?

A: Please refer to below links:
For CC3100 QFN: CC3100 Production Line Guide
For CC3200 QFN: CC3200 Production Line Guide
For CC3100 MOD: CC3100MOD Production Line Guide
For CC3200 MOD: CC3200MOD Production Line Guide

Q: I would want to replace the FTDI chip with a different part. What factors should I consider for both debugging and programming the serial flash?

A: Refer to a similar discussion on E2E CC3200 with FTDI FT232RL


Q: Do you know how to impedance match the Walsim one (if any)? It looks like they do not use any? Do I use the recommended demo impedance matching for the Taiyo Yuden one. Or is the Impedance match for the WiFi IC not the Antenna (i.e. the antenna is inherently 50 Ohms)?

A: Impedance matching is needed if the port of the antenna presents a non 50 Ohm impedance. The matching ciruit is arrived at after measuring the impedance looking into the antenna on the board by using a pigtail or by using a UMC connector. Note that the CC3100 does not need any impedance matching. I would recommend that you reserve the space for a PI network on the board to match the antenna in case of a need.

Q: Does it need any matching changes if I change the PCB thickness different 1.6mm PCB or 1mm PCB thickness (I understand the transmission lines change)? The demo is for 1mm PCB.

A: Yes, the impedance would be affected slightly with the height change. So you would have to retune the matching circuit.

Q: Does this need mounting in the corner as mentioned by TI design notes (The Walsim Data sheet shows non corner mount)? If so, what horizontal distance should I have (above diagram) before we can begin ground plane again? If not what distance before is restored again?

A: No, it is not necessary to mount this on the corner. For this antenna you need a ground clearance of 18mm x 9mm . So your board has to reserve the space for that. The TI recommended antenna uses only 7mmx5mm.

However there are other antenna fro Walsin which can be corner mounted

Q: The Antenna design is important for two reasons (RF compliance – Bandwidth and filter matching, and Optimum radiation distance – Range). Do you know how important this is in relation to this minimum amount of layout info we have?

A: We have not performed any layout analysis with this antenna. So cannot comment on the actual performance. But note that the pattern and efficiency is highly dependent on the PCB layout for a chip antenna. So you can request for more information from Walsin before proceeding with layout.

Q: What is your recommendation regarding this Antenna? How much risk am I taking using the Walsim one?

A: I would recommend to get the recommendation on the layout from Walsin before releasing your layout. It may pose a small risk if you copy their recommended clerance pattern and also add a matching network to tune out any mismatch.

SDK examples

Q: I have tried the getting_started_with_wlan_station example from the SDK, and I am not able to connect to my AP. Any idea what the problem is?

1. To start with, please check whether the correct credentials are given in sl_common.h (for CC3100) and common.h (for cc3200)
#define SECURITY_TYPE SL_SEC_TYPE_OPEN/* Security type (OPEN or WEP or WPA)*/
#define SECURITY_KEY "" /* Password of the secured AP */
2. If the security type of the AP is WEP, then please provide the passkey in ASCII format to sl_WlanConnect. Do not provide it in Hex format.
3. Please make sure that the AP is in range.
4. By default, the CC3100/CC3200 are configured to connect on channels 1 to 11. Please make sure that the AP is configured to operate in these channels (1-11).

Q: I'm trying to run an "ota_update" example following the instructions provided in "Over-The-Air (OTA) Update" document. I did Dropbox server configuration and I built the appropriate directory, but when I run the application, it throws a message "Error Retrying..."

A: Please refer to the OTA Error Retrying thread.

Q: The CC3100 asynchronous event is not triggering. Why?

A: Please refer to the following E2E threads: Purpose of _SlNonOsMainLoopTask() CC3100 asynchronous event not triggering


Q: I am trying to flash the application binary into the Serial Flash of CC3200. But Uniflash throws below error.

[13:58:47] INFO: > Executing Operation: Connect
[13:58:49] INFO: setting break signal
[13:58:49] INFO: --- please restart the device ---
[13:59:04] ERROR: ---reading ACK signal failed---
[13:59:04] WARNING: ---seting break signal to false failed---
[13:59:06] INFO: setting break signal
[13:59:06] INFO: --- please restart the device ---

What could be the problem?

A: There could be many reasons for this:
1. Make sure no other utility (e.g. terminal emulator) uses the COM port.
2. Check if the FTDI recognized on Windows Device Manager. If so, please make sure you choose the correct COM port as explained in Uniflash user guide Uniflash target connection
3. For CC3200 only, SOP2 jumper should be connected during flashing.
4. For CC3200 only, J6 and J7 should be connected on FLASH.
5. Make sure that you have pressed the reset button when asked.
6. Please perform a quick FTDI functionality test as follows.
In this test a loopback is applied on the correct COM port and characters typed on a terminal emulator connected to the same board should get echoed back. On CC3200 launchPad board, identify J6 and J7 jumpers. By default these jumpers should be connected on FLASH. Disconnect the two jumpers and connect J6 to J7 as closest to the FTDI chipset.
cc3200 loopback test.jpg

cc3100 loopback test.jpg

Reset the board, open a terminal emulator and start typing characters. If these characters are looped back, FTDI is functional and you should restore the setup back to its default working state.
7. Have you probed power levels?
Voltage on VDD_ANA1 should be around 1.9V
Voltage on VDD_DIG1 should be around 1.2V
Voltage on VDD_ANA2 should be around 3.3V
8. It is best to test whether it is possible to work with the device in debug mode, via JTAG lines (and not UART lines). Please open any project from the SDK that involves interaction with the device (i.e. includes the sl_start() API) using your chosen IDS (CCS, IAR, GDB, other). Compile the project, load it into the device and get to the sl_start() API. Execute this line and make sure it is returned.

Q: I would like to prepare a bundle of files to be programmed into the device. How can I do it?

A: You can do it using the session feature. For more reading please refer to the appropriate chapter on Uniflash user guide Uniflash session support

Q: Can I configure a specific parameter into the device instead of invoking APIs from the host driver interface?

A: You can do it using the Configuration files support. For more reading please refer to the appropriate chapter on Uniflash user guide Uniflash configuration file support

Q: The most recommended and generic approach to mass production is to prepare an image and program it offline to the serial flash. Is this supported in Uniflash?

A: It is not supported on v3.2.0.00123 and earlier. It is integrated on versions newer than v3.2.0.00123.

File System

Q: Is it possible to format the serial flash from the host MCU?

A: forma is the only file system operation that is not accessible via the host driver APIs. However, it is possible as described in the following Host Programming add-on CC3100 Host Programming add-on.

Q: I would like to program a file such that it would be encrypted on the serial flash. Is it possible? How can I do it?

A: production devices PG1.33 are not secured devices so it is not possible.

Q: I get SL_FS_ERR_OFFSET_OUT_OF_RANGE error when trying to write into an existing file. What does it mean?

A: it means that you try to access a file offset which is out of range or you try to access the same offset twice when the file is kept opened. Also, take a look at the following thread for more information SL_FS_ERR_OFFSET_OUT_OF_RANGE error

Q: I get SL_FS_ERR_NO_AVAILABLE_BLOCKS error when trying to create a file. What does it mean?

A: it means your serial flash is full. Since there is no file listing option, the best would be to format the serial flash and start over.

Q: Is there an option to get a list of all files on the file system?

A: no, file listing is not supported. However, if you know your filenames, you can invoke sl_FsGetInfo() API on each file. If the file does not exist you should get SL_FS_ERR_FILE_NOT_EXISTS error code.

Q: I have a 16MB flash and I’m trying to create a 2MB file. However, it doesn’t seem to behave as I expect. Is there any limitation on file size?

A: yes, maximum file size is limited to 1MB. It is a file system limitation on the device.

Q: What does _FS_FILE_OPEN_FLAG_COMMIT mean? Is it related to the commit feature of OTA?

A: a mirror is created upon opening the file with the _FS_FILE_OPEN_FLAG_COMMIT flag set. When you delete the file, the mirror is also cleaned up. When you open this file for writing the next time (assuming there is one copy of this file), the other mirror is being written. When closing the file, the new mirror is executed instead of the older version of the file. It is mainly for fail-safe reason, i.e. with power fail. In this case, if power fails during writing of the other mirror, the original version of the file is reverted.
The commit feature on OTA add-on means something else. It is a process where the new downloaded version is tested for integrity. When this process is done, either the new version is committed or reverted.

Q: What is the max size used for and why?

A: since a file cannot be appended/extended after being created, max size option enables the user to set a maximum reserved space for a file. It is mainly used for OTA feature where files may get appended with time.

Q: I’m creating a large file and it takes a lot of time. What is the reason?

A: the reason is that the file is being erased on the serial flash before writing. On a flash device you can't write or modify a byte without erasing an entire block first. Block erase time changes with respect to the flash vendor but an average values are around few tens of mSec. Taking 50mSec erase time and 128KB file would end up in 1.6 seconds.

Q: I would like to create a log file on the serial flash such that I append to it once in a while. However, I have noticed that all 0xFF precedes me new appended data.

Why is it happening? How can I implement append operation?
A: append option is not part of the file system. Opening the file for writing would erase the relevant blocks to 0xFF. The two options are either to implement a read-modify-write where the host MCU reads the file, modify it and writes it back or keep the file open when modifying (less recommended since data would be lost on power fail).

Q: What is the minimum allocated size for a file in serial flash.

A: sFlash sector size is 4K and hence the minimum size when creating a file is 4KB. If we set aside some bytes for the file’s header, the maximum usable area of the file is 3656 Bytes.
For example If 5K file is created and 1K content is added to it, a query for file information (w/ ‘sl_FsGetInfo’) would have returned 1024 for’ FileLen’ and 7752 for ‘AllocatedLen’ since 8K gets allocated to the file and '8K-7752' is used for file header.

Porting CC3100 to different host MCUs

Q: I am trying to port CC3100 to a Non-TI MCU. What are the guidelines that I should follow?

A: Please go through the below links
- Brief description of how the the host interface APIs is captured here: CC31xx Host Interface
- The SPI interface with CC3100 is described here: CC31xx SPI Host Interface
- The UART interface with CC3100 is described here: CC31xx UART Host Interface

Q: I have ported the Simple Link host driver and the SPI driver to my host MCU. How can I go about testing it?

A: There is a SPI debug tool provided with the SDK, please go through this link: CC31xx SPI Debug Tool


Q: I have tried to connect the CC3100/CC3200 to my AP using SmartConfig. But the SmartConfig does not work. What am I missing?

A: If your phone is connected to Wi-Fi in 5 GHz band or in MIMO mode, SmartConfig will not work. It is also known to some devices that Smart Config does not work even though the network is running 2.4GHz SISO. TI recommends always using a backup provisioning solution in case the first method fails. Please visit CC31xx & CC32xx Provisioning for more details.

Q: What characters are supported in Smart Config?

A: Smart Config supports the same character set supported by SimplelinkTM devices. As of SDK 1.1.0, the Simplelink driver can only support null terminated character string, so any characters ranging from 0x01 to 0xFF in ASCII (including ASCII extended set, 0x80 – 0xFF) should work fine. This exclude Unicode from working because a Unicode character with more than 1 bytes can have a null character as the first byte.

Q: Why is Smart Config not working if the user corrects the previously miss-typed password?

A: Smart Config will not work during the same iteration if it has previously received incorrect information (SSID or password). The workaround to resolve this issue is to restart Smart Config in the code. User friendly features such as a timeout and LED indicator are good add-on for telling what state the device is in.

Q: Does TI provide support for Smart Config/WiFi Starter mobile application?

A: The WiFi Start App source codes (both Android and iOS) are provided as-is. You can take the source and modify it freely but, unfortunately, TI will not be providing supports for it.

Q: Can SimplelinkTM devices run AP Provisioning with sleep mode?

A: AP mode needs full power due to periodic beacon broadcast, so low power modes are not possible in this case.

Q: Can SimplelinkTM devices perform multiple provisioning methods simultaneously?

A: Currently the device can only perform one provisioning method at a time, and AP mode won't be able to perform scanning.

CCS, IAR, GCC support and Debugging

Q: CCS Web Installer freezes when it is trying to download components from the internet.

A: Your PC is likely be behind a corporate firewall. For this, please use an offline installer: Download CCS.

Q: I'm unable to launch the debug session in CCS, and the following message shows up:

Target configuration,
C:\Users\<your user name>\jvis\ti\CCSTargetConfigurations\CC3200.ccxml, does not have a valid setup, please configure the target and try again.
A: Uninstall CCS and re-install the latest CCS. CC3200 support is included starting from CCS 6.0.1. You only need to add RTOS Support for CC3xxx from AppCenter. All other steps described in the Getting Started Document are still valid.

Q: I'm unable to launch the debug session in CCS with CC3200 Launchpad, and the following message pops up:

"Error connecting to the target"

What could be the problem?

A: There could be many reason to this:
  1. Check whether the device manager is enumerating the CC3200 device as a COM port.
  2. Make sure that no other device is using this COM port.
  3. On the CC3200 make sure that jumpers at J8-J11 are shorted. This is required for debugging over JTAG/SWD.
  4. On the CC3200 make sure that jumpers at J2 & J3 are removed.
  5. Try a different USB port.
  6. In CCS,
  • Go to Run -> Debug Configurations...
  • Go to 'Target' -> 'Auto Run and Launch Options' and check if the option "Connect to the target on debugger startup" is checked.