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