CC33Conf Tool Guide

Overview

CC33xx devices must be loaded with a cc33xx-conf.bin after firmware download in order to begin operation. The cc33xx-conf.bin includes system parameters that define the operating behavior of the device. This binary is built from a user-defined INI file. Once the INI file has been edited as desired the cc33conf tool can be used to build the bin file. The tool also allows for changing specific parameters from the binary file directly as well as converting the binary to readable text.

Before using the tool, the user must generate a “struct.bin” with the following commands:

$ cd /usr/sbin/cc33conf
$ ./cc33xxconf -S conf_cc33xx.h -G struct.bin

Note

It may be necessary to also add ‘-X’ option to commands when using this tool. This will ignore any “corrupted binary file” errors due to incorrect checksums. There is a known bug with the checksum calculation within the tool.

The following lists some example commands with the cc33xxconf tool:

Convert binary file into readable text

The following command will dump the cc33xx-conf.bin into the terminal:

./cc33xxconf -i /lib/firmware/ti-connectivity/cc33xx-conf.bin -g -X

Change a parameter in the binary file

Any parameter in the cc33xx-conf.bin can be changed using the following syntax:

./cc33xxconf -i /lib/firmware/ti-connectivity/cc33xx-conf.bin \
    -o /lib/firmware/ti-connectivity/cc33xx-conf.bin -s <parameter>=<value> -X

The following is an example command to disable 5GHz on CC335x devices:

./cc33xxconf -i /lib/firmware/ti-connectivity/cc33xx-conf.bin \
    -o /lib/firmware/ti-connectivity/cc33xx-conf.bin -s core.enable_5ghz=0 -X

Converting INI to Bin

Go to conf tool directory

cd  /usr/sbin/cc33conf

Generate the default cc33xx-conf-default.bin:

./cc33xxconf -D

Use a text editor to edit cc33xx-conf.ini with the desired parameter changes

vi cc33xx-conf.ini #open ini file in text editor to edit

Run the command to convert the INI file to a binary file

./cc33xxconf -I ini_file_name.ini -o cc33xx-conf.bin -X

Copy bin file to /lib/firmware/ti-connectivity

cp cc33xx-conf.bin /lib/firmware/ti-connectivity

Set Parameters From Configuration Text File

Config text files (e.g. default.conf) are text file versions of the binary files. Creating and editing a conf file can be used to quickly convert to a binary file.

Once the .conf file is created, in can be converted to a binary file in the following manner:

./cc33xxconf -C default.conf -i /lib/firmware/ti-connectivity/cc33xx-conf.bin
    -o /lib/firmware/ti-connectivity/cc33xx-conf.bin -X

Additional Commands

See the printout from the tool for other commands:

./cc33xxconf [OPTIONS] [COMMANDS]

OPTIONS
-S, --source-struct     use the structure specified in a C header file
-b, --binary-struct     specify the binary file where the structure is defined
-i, --input-config      location of the input binary configuration file
-o, --output-config     location of the input binary configuration file
-X, --ignore-checksum   ignore file checksum error detection

COMMANDS
-D, --create-default    create default configuration bin file (cc33xx-conf-default.bin)
-g, --get               get the value of the specified element (element[.element...]) or
                        print the entire tree if no element is specified
-s, --set               set the value of the specified element (element[.element...])
-G, --generate-struct   generate the binary structure file from
                        the specified source file
-C, --parse-text-conf   parse the specified text config and set the values accordingly
-I, --parse-ini         parse the specified INI file and set the values accordingly
                        in the output binary configuration file
-p, --print-struct      print out the structure
-h, --help              print this help

CC33XX INI Parameter Description

The table below lists the parameters which can be defined in the INI file. All of the values here must be written in hexadecimal format.

Note

This applies to the following Parameters:
- AntGain_2_4GHz
- AntGain_5GHz
- InsertionLoss_2_4GHz
- InsertionLoss_5GHz
Table 3 INI Parameters
Configuration Domain Parameter Name (INI Name) Description Default Values [Hex]
CORE EnableBle
Enables or disables BLE.
This configuration is only used for CC33x1 devices.

0x0 : Disable
0x1 : Enable
0x1
CORE BleUartBaudRate
Defines the baud rate for the UART interface used by BLE.

Possible values:
0x2520 (9504)
0x4800 (18432)
0x9600 (38400)
0xE100 (57600)
0x1C200 (115200)
0x38400 (230400)
0x70800 (460800)
0xE1000 (921600)
0x2DC6C0 (3000000)
0x1C200
CORE BleDefaultTxPower
Defines the default BLE TX power in dBm.

Possible values are index values from 0x00 to 0x06 which correlate to a specific power:
0xec (-20 dBm)
0xf6 (-10 dBm)
0xfb (-5 dBm)
0x00 (0 dBm)
0x05 (5 dBm)
0x0a (10 dBm)
0x14 (20 dBm)
0x0a (10 dBm)
CORE EnableUartFlowCtrl
Enables or disables flow control on UART interface for BLE.

0x0 : Disable
0x1 : Enable
0x1
CORE ListenInterval
Defines the number of DTIM beacons that the device will wake on in STA role. (NOTE: this configuration is only relevant when WakeUpEvent = 0x2).

Values range from 0x1 to 0xA (DTIM = 1 to DTIM = 10).

Note: set minimum DTIM value when trying to achieve optimal system latency
0x2
CORE WakeUpEvent
Defines if the device in STA mode wakes up with every beacon, DTIM, or nDTIM from the AP.

0x0 : Beacon
0x1 : DTIM
0x2 : nDTIM (number of DTIMs is defined in INI parameter ListenInterval)

Note: Set configuration to beacon when trying to achieve optimal system latency
0x1
CORE PowerLimitArray
Defines TX output power limits per WLAN channel.

2.4GHz channels: 1-14 (CH14 values can be configured but operation on CH14 is not supported)

5GHz channels: 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 144, 149, 153, 157, 161, 165, 169

Starting with WLAN CH1 (per-channel_power_limit 0), each WLAN channel has 13 individual settings:
0. 11b
1. 11g/n/ac
2. 11axTB [RU position 0]
3. 11axTB [RU position 1]
4. 11axTB [RU position 2-6]
5. 11axTB [RU position 7]
6. 11axTB [RU position 8]
7. 11axTB [RU position 9 (37)]
8. 11axTB [RU position 10-11 (38-39)]
9. 11axTB [RU position 12 (40)]
10. 11axTB [RU position 13 (53)]
11. 11axTB/ER upper [RU position 14 (54)]
12. 11axTB / ER full / SU / NDP [RU position 15 (61)]

For example, “per_channel_power_limit_0” is the first setting for CH1, “per_channel_power_limit_13” is the first setting for CH2, and so on.

To calculate the value of the power limit, take the decimal equivalent of the hex value and divide by 2 (for example “1A” would be 26 in decimal, divided by 2 is 13dBm, which is the set power limit).
0x3F (max power)
CORE InternalSlowClkDrift_WakeupEarlier
Reserved - leave as default value.
0x189C (6300 ppm)
CORE InternalSlowClkDrift_OpenWindowLonger
Reserved - leave as default value.
0x4588 (17800 ppm)
CORE ExtSlowClkDrift_WakeupEarlier
Defines offset (in ppm) for earlier wake up to account for external slow clock drift.
0x1F4 (500 ppm)
CORE ExtSlowClkDrift_OpenWindowLonger
Defines offset (in ppm) for beacon window to account for external slow clock drift.
0x1F4 (500 ppm)
CORE DisableLogger
Used to disable logger prints (all except FW init logs)

0x0: Disable
0x1: Enable
0x0
CORE MixedModeSupport
Enables connections to APs using WPA/WPA2 mixed mode configurations

0x1: Enable
0x2: Disable
0x1
CORE XTAL_SettlingTime
Convert hex to decimal for value in uS.

Leave as default setting if using TI recommended crystal.
708 (1800 uS)
CORE MaxRxAmpduLen
Sets the maximum A-MPDU size that the device can receive

0x0: 8K bytes
0x1: 16K bytes
0x0
CORE [COEX_CONFIGURATION] Is_ExtSoC_Connected
Enables or disables external coexistence feature.
Enable if using an external SoC running a compatible protocol.

0x0 : No (Disable)
0x1 : Yes (Enable)
0x0
CORE [COEX_CONFIGURATION] ExtSoC_grant_polarity
Defines Co-ex Grant signal polarity.

0x0 : Active High
0x1 : Active Low

NOTE: Based on expected operation from external SoC, make sure the proper pin polarity and pull value are configured (pull value can be set using COEX_GRANT_pull_val)
0x1
CORE [COEX_CONFIGURATION] ExtSoC_priority_polarity
Defines Co-ex Priority signal polarity.

0x0 : Active Low
0x1 : Active High

NOTE: Based on expected operation from external SoC, make sure the proper pin polarity and pull value are configured (pull value can be set using COEX_PRIORITY_pull_val)
0x1
CORE [COEX_CONFIGURATION] ExtSoC_request_polarity
Defines Co-ex Request signal polarity.

0x0 : Active Low
0x1 : Active High

NOTE: Based on expected operation from external SoC, make sure the proper pin polarity and pull value are configured (pull value can be set using COEX_REQUEST_pull_val)
0x1
CORE [COEX_CONFIGURATION] ExtSoC_min_grant_time
Defines minimum grant time for external SoC.
0x96
CORE [COEX_CONFIGURATION] ExtSoC_max_grant_time
Defines maximum grant time for external SoC.
3FFF
CORE [COEX_CONFIGURATION] ExtSoC_t2_time
Defines the duration of priority time for external SoC.
0x05
CORE [COEX_CONFIGURATION] ExtSoC_to_wifi_grant_delay
Defines maximum grant time for external SoC before switching back to internal Wi-Fi.
0x1E
CORE [COEX_CONFIGURATION] ExtSoC_to_ble_grant_delay
Defines maximum grant time for external SoC before switching back to internal BLE.
0x23
CORE [IOMUX_CONFIGURATION]

Used to configure IO pin pull value

0xff: Default - see CC33xx datasheet for default pin configuration
0x01: Pull up
0x02: Pull down
0x03: Pull disable
0xff
CORE [ANT_DIVERSITY] DefaultAntenna
Defines which default antenna path will be used:

0x0: primary antenna path
0x1: secondary antenna path
0x0
CORE CountryCode
World wide country code denoted by two ascii hex letters
0x3030 (‘00’)
PHY
InsertionLoss_2_4GHz
InsertionLoss_5GHz
Defines the expected insertion loss of the RF path.

To calculate the set value, convert the hex to decimal and divide by 8.
For example, a setting of “18” in hex would convert to 24 in decimal resulting in a final configuration of 3dB.

Configurable range is from 0dB to 7.875dB

0db to 7.5dB - 0x00, 0x04, 0x08, 0x0C, 0x10, 0x14, 0x18, 0x1C, 0x20, 0x24, 0x28, 0x2C, 0x30, 0x34, 0x38, 0x3C

If multiple antennas are used “insertion_loss_2_4GHz_0” sets the value for the primary path and “insertion_loss_2_4GHz_1” sets the value for the secondary path.
0x0000
PHY
AntGain_2_4GHz
AntGain_5GHz
Defines the expected gain of the antenna.

To calculate the set value, convert the hex to decimal and divide by 8.
For example, a setting of “18” in hex would convert to 24 in decimal resulting in a final configuration of 3dB.

Configurable range is from -8dB to 7.875dB

0dB to 7.5dB - 0x00, 0x04, 0x08, 0x0C, 0x10, 0x14, 0x18, 0x1C, 0x20, 0x24, 0x28, 0x2C, 0x30, 0x34, 0x38, 0x3C
-8dB to -0.5dB - 0x40, 0x44, 0x48, 0x4C, 0x50, 0x54, 0x58, 0x5C, 0x60, 0x64, 0x68, 0x6C, 0x70, 0x74, 0x78, 0x7C

If multiple antennas are used “AntGain_2_4GHz_0” sets the value for the primary path and “AntGain_2_4GHz_1” sets the value for the secondary path.
0x0000
PHY
BleChLim1M
BleChLim2M
Defines the BLE power limits per channel for each PHY (1mbps & 2mbps)

To calculate the value of the power limit, take the decimal equivalent of the hex value and divide by 2 (for example “1A” would be 26 in decimal, divided by 2 is 13dBm, which is the set power limit).
0x2A (max power)
PHY OneTimeCalibrationOnly
Enables or disables One Time calibration.

Recommended to leave Periodic Calibration enabled.

One time calibration can be used for power-sensitive applications in temperature stable environments.

0x0 : Disable (enable Periodic Calibration)
0x1 : Enable
0x0
PHY IsDiplexerPresent
Used to configure if a diplexer is used in the application to combine 2.4GHz and 5GHz signals.

0x00: Diplexer is not used
0x01: Diplexer is used
0x1
PHY NumOfAntennas
Sets the number of antennas used in the application (used for device RX configuration).

0x01: Single antenna
0x02: Two antennas (used for antenna diversity)
0x00
PHY RegDomain
Configures the regional channel mapping.

0x00: World wide
0x01: FCC
0x02: ETSI
0x1
PHY TxPsatCompensation_2_4GHz
Can be used to reduce power in the 2.4GHz band by up to 1 dB in designs with excessive power.

0x0: 0 dB
0x1: 0.5 dB
0x2: 1 dB
0x0
PHY TxPsatCompensation_5GHz
Can be used to reduce power in the 5GHz band by up to 1 dB in designs with excessive power.

0x0: 0 dB
0x1: 0.5 dB
0x2: 1 dB
0x0
MAC PowerSaveScheme
Defines the power management protocol for the device in STA mode.

0x0 : Legacy power scheme (802.11 standard)
0x1 : Unscheduled power save delivery (UPSD)
0x5 : No PSPOLL (NOPSPOLL)

Note: Use 0x0 to optimize latency with the least aggressive power scheme. Use 0x5 for the most aggressive power save scheme.
0x5
MAC StaPowerSave
Force the power saving scheme to be always active or use the definition in PowerSaveScheme.

0x0: Use behavior defined in PowerSaveScheme
0x1: Always active
0x0
MAC HE_Enable
Enables or disables Wi-Fi 6 (802.11ax) HE functions.

0x0 : Disable
0x1 : Enable
0x1
MAC ApMaxNumStations
Defines the max number of stations that the device can connect to in AP mode.

0x4 : 4 stations
0x10 : 16 stations
0x4
CRC_CONF IniCrc
32 bit CRC value over protected INI values
0x000000