Chip Family Migration Guide¶
Migration Steps¶
Follow these steps to migrate an existing Sensor Controller project for the CC13x0/CC26x0 device family to the CC13x2/CC26x2 or CC13x4/CC26x4 device family:
- In the Project Panel : Select the new target chip
- In the I/O Mapping Panel : Select the new board to be used, if available, and change the I/O mapping if needed
- Read carefully through the General Differences section below, and make changes as needed
- Read carefully through the Resource Differences section below, and make changes as needed
- Read carefully through the Procedure Differences section below, and make changes as needed
- Run the code generator, and fix any errors reported
- Make use of the new hardware features to improve performance or add new functionality to your application
General Differences¶
Memory Size¶
The CC13x0/CC26x0 AUX RAM size is 2 KB = 1024 16-bit words.
The CC13x2/CC26x2 and CC13x4/CC26x4 AUX RAM size is 4 KB = 2048 16-bit words.
I/O Mapping¶
The CC13x0/CC26x0 Sensor Controller has access to up to 16 I/O pins, depending on chip type and package.
The CC13x2/CC26x2 Sensor Controller has access to all I/O pins.
The CC13x4/CC26x4 Sensor Controller has access to all I/O pins below DIO32 (that is, all or a subset of DIO0 through DIO31).
The mapping from AUX I/O indexes to DIO pins is different. This has the following implications:
- If your project uses manually hard-coded AUX I/O indexes rather than the auto-generated constants and look-up tables, either update the hard-coded values, or preferably switch to the auto-generated values.
- If your project uses the Differential Output Pins resource (which modifies two I/O pins with a single instruction), it might be necessary to change the pin-out. See the Resource Differences table below for details.
Wake-Up Time¶
The CC13x2/CC26x2 and CC13x4/CC26x4 Sensor Controller has shorter wake-up time to active mode than the CC13x0/CC26x0 Sensor Controller.
Procedure Execution Time¶
Procedure execution time is different for some procedures. Note that self-timed code will in most cases run slightly faster on the CC13x2/CC26x2 and CC13x4/CC26x4 Sensor Controller.
Resource Differences¶
The table below summarizes differences for all resources.
Note that common resource defined constants may have different values for different chip families.
Resource | CC13x0/CC26x0 | CC13x2/CC26x2 CC13x4/CC26x4 | Differences |
Algorithms | |||
LCD Controller | Available | ||
UART Emulator | Available | Available | |
Development Tools | |||
Run-Time Logging | Available | Available | |
General-Purpose I/O | |||
Analog Open-Drain Pins | Available | Available | Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Analog Open-Source Pins | Available | Available | Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Analog Pins | Available | Available | |
Differential Output Pins | Available | Available | AUX I/O mapping to DIOs is different for CC13x2/CC26x2 and CC13x4/CC26x4 versus CC13x0/CC26x0. CC13x0/CC26x0: Each pin pair must be in the same AUX I/O bank (8 pins each). CC13x2/CC26x2 and CC13x4/CC26x4: Each pin pair must be in the same AUX I/O bank nibble (4 pins each). |
Digital Input Pins | Available | Available | Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Digital Open-Drain Pins | Available | Available | Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Digital Open-Source Pins | Available | Available | Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Digital Output Pins | Available | Available | Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Miscellaneous | |||
AON Domain Functionality | Available | ||
Delay Insertion | Available | Available | CC13x0/CC26x0 uses Timer 0 to implement microsecond delays. CC13x2/CC26x2 and CC13x4/CC26x4 use the microsecond delay timer to implement microsecond delays. Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Signal Observation | Available | ||
Peripherals | |||
ADC | Available | Available | CC13x2/CC26x2 and CC13x4/CC26x4: More ADC trigger sources available. |
COMPA | Available | Available | Features available only for CC13x2/CC26x2 and CC13x4/CC26x4:
|
COMPB | Available | Available | CC13x0/CC26x0: Must use DCOUPL or VDDS divided by 1/2/3/4 as COMPB negative input/reference. CC13x2/CC26x2 and CC13x4/CC26x4: Must use Reference DAC as COMPB negative input/reference. CC13x4/CC26x4: The device startup code provided by TI (setup.c / driverlib.lib) enables Sensor Controller access to AUX_DDI0_OSC register field |
ISRC | Available | Available | |
Pulse Counter | Available | Available | CC13x0/CC26x0: Pulse counter input must be static when reading the pulse counter value. |
Reference DAC | Available | ||
TDC | Available | Available | CC13x2/CC26x2 and CC13x4/CC26x4: More TDC start and stop trigger sources available. CC13x4/CC26x4: The device startup code provided by TI (setup.c / driverlib.lib) enables Sensor Controller read/write access to AUX_DDI0_OSC register fields Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Timer 0 | Available | Available | CC13x2/CC26x2 and CC13x4/CC26x4: More tick sources are available. Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Timer 1 | Available | Available | CC13x0/CC26x0: Timer 1 is 8-bit. CC13x2/CC26x2 and CC13x4/CC26x4: Timer 1 is 16-bit. More tick sources are available. Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Timer 2 | Available | ||
Power Management | |||
Dynamic Power Control | Available | ||
Serial Interfaces | |||
I2C Master | Available | Available | |
SPI Chip Select | Available | Available | |
SPI Data Transfer | Available | Available | CC13x0/CC26x0: Uses bit-banging, with fixed SCLK rate. CC13x2/CC26x2 and CC13x4/CC26x4: Uses hardware peripheral, with run-time configurable SCLK rate. SPI interface must be configured at run-time using Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
System CPU Communication | |||
Multi-Buffered Output Data Exchange | Available | Available | |
Peripheral Sharing | Available | Available | |
System CPU Alert | Available | Available | |
Task Event Handling | |||
COMPA Event Trigger | Available | ||
COMPB Event Trigger | Available | Available | Wake-up times are different. CC13x0/CC26x0: 1 event trigger supported per project. CC13x2/CC26x2 and CC13x4/CC26x4: 3 event triggers supported per project. Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
GPIO Event Trigger | Available | Available | Wake-up times are different. CC13x0/CC26x0: 1 event trigger supported per project. CC13x2/CC26x2 and CC13x4/CC26x4: 3 event triggers supported per project. Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
System Event Trigger | Available | ||
Timer 0 Event Trigger | Available | ||
Timer 1 Event Trigger | Available | Available | Wake-up times are different. CC13x0/CC26x0: 1 event trigger supported per project. CC13x2/CC26x2 and CC13x4/CC26x4: 3 event triggers supported per project. Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Timer 2 Event Trigger | Available | ||
Task Execution | |||
RTC-Based Execution Scheduling | Available | Available | Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:
|
Timestamping | |||
RTC Multi-Event Capture | Available | Available | |
Utilities | |||
Accumulator-Based Math | Available | ||
Math and Logic | Available | Available |
Procedure Differences¶
The table below summarizes differences for procedures that are available for both chip families.
Procedure | Differences |
compaEnable() |
Extra parameter(s) for CC13x2/CC26x2 and CC13x4/CC26x4:
|
compbEnable() |
CC13x2/CC26x2 and CC13x4/CC26x4: This procedure must only be called after the Reference DAC has been enabled with COMPB reference as output. Extra parameter(s) for CC13x0/CC26x0:
|
evhSetupGpioTrigger() |
CC13x0/CC26x0: The GPIO pin is sampled at 32 kHz, and must be held active for at least 2 x 32 kHz periods to be captured safely. |
evhSetupTimer1Trigger() |
Different behavior for parameter(s):
|
fwDelayUs() |
CC13x0/CC26x0 uses Timer 0 to implement microsecond delays. CC13x2/CC26x2 and CC13x4/CC26x4 use the microsecond delay timer to implement microsecond delays. Extra parameter(s) for CC13x0/CC26x0:
Different behavior for parameter(s):
|
gpioDisableDiffOutput() |
AUX I/O mapping to DIOs is different for CC13x2/CC26x2 and CC13x4/CC26x4 versus CC13x0/CC26x0. CC13x0/CC26x0: Each pin pair must be in the same AUX I/O bank (8 pins each). CC13x2/CC26x2 and CC13x4/CC26x4: Each pin pair must be in the same AUX I/O bank nibble (4 pins each). |
gpioGenDiffOutput() |
AUX I/O mapping to DIOs is different for CC13x2/CC26x2 and CC13x4/CC26x4 versus CC13x0/CC26x0. CC13x0/CC26x0: Each pin pair must be in the same AUX I/O bank (8 pins each). CC13x2/CC26x2 and CC13x4/CC26x4: Each pin pair must be in the same AUX I/O bank nibble (4 pins each). |
pcntGetValue() |
CC13x0/CC26x0: Pulse counter input must be static when reading the pulse counter value. |
rtcmecSetPeriod() |
Different behavior for parameter(s):
|
spiBegin() |
Extra parameter(s) for CC13x0/CC26x0:
|
spiEnd() |
Extra parameter(s) for CC13x0/CC26x0:
|
spiRx16bit() |
Extra parameter(s) for CC13x0/CC26x0:
|
spiRx8bit() |
Extra parameter(s) for CC13x0/CC26x0:
|
spiTx16bit() |
CC13x2/CC26x2 and CC13x4/CC26x4: The procedure returns immediately. Extra parameter(s) for CC13x0/CC26x0:
|
spiTx8bit() |
CC13x2/CC26x2 and CC13x4/CC26x4: The procedure returns immediately. Extra parameter(s) for CC13x0/CC26x0:
|
spiTxRx16bit() |
Extra parameter(s) for CC13x0/CC26x0:
|
spiTxRx8bit() |
Extra parameter(s) for CC13x0/CC26x0:
|
tdcWaitUs() |
Different behavior for parameter(s):
|
timer0Wait() |
CC13x0/CC26x0: This procedure must be called before the event occurs. Otherwise it will wait for the next event or block indefinitely in single event mode. CC13x2/CC26x2 and CC13x4/CC26x4: The event occurs each time the specified timeout is reached, and also whenever the timer is idle. |
timer1Start() |
CC13x0/CC26x0: Timer 1 is 8-bit. CC13x2/CC26x2 and CC13x4/CC26x4: Timer 1 is 16-bit. Different behavior for parameter(s):
|
timer1StartWithTickSrc() |
CC13x0/CC26x0: Timer 1 is 8-bit. CC13x2/CC26x2 and CC13x4/CC26x4: Timer 1 is 16-bit. Different behavior for parameter(s):
|
timer1Wait() |
CC13x0/CC26x0: This procedure must be called before the event occurs. Otherwise it will wait for the next event or block indefinitely in single event mode. CC13x2/CC26x2 and CC13x4/CC26x4: The event occurs each time the specified timeout is reached, and also whenever the timer is idle. |