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:

  • gpioWaitForLevel()
  • gpioWaitForLevelUs()
Analog Open-Source Pins Available Available

Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:

  • gpioWaitForLevel()
  • gpioWaitForLevelUs()
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:

  • gpioWaitForLevel()
  • gpioWaitForLevelUs()
Digital Open-Drain Pins Available Available

Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:

  • gpioWaitForLevel()
  • gpioWaitForLevelUs()
Digital Open-Source Pins Available Available

Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:

  • gpioWaitForLevel()
  • gpioWaitForLevelUs()
Digital Output Pins Available Available

Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:

  • gpioWaitForLevel()
  • gpioWaitForLevelUs()
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:

  • fwWaitForEvSignalUs()
  • fwWaitForTwoEvSignals()
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:

  • COMPA can be used in standby mode
  • Can use Reference DAC as COMPA negative input/reference
  • Can use Reference DAC to precharge COMPA positive input
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 ATESTCTL.SCLK_LF_AUX_EN .

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 CTL0.ACLK_TDC_SRC_SEL and CTL0.ACLK_REF_SRC_SEL , and read access to AUX_DDI0_OSC register field STAT2.XOSC_HF_FREQGOOD .

Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:

  • fwClearManualEv()
  • fwPulseManualEv()
  • fwSetManualEv()
Timer 0 Available Available

CC13x2/CC26x2 and CC13x4/CC26x4: More tick sources are available.

Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:

  • timer0GetValue()
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:

  • timer1GetValue()
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 spiCfg() .

Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:

  • spiCfg()
  • spiClearMosi()
  • spiSetMosi()
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:

  • evhGetActiveTrigger()
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:

  • evhGetActiveTrigger()
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:

  • evhGetActiveTrigger()
Timer 2 Event Trigger   Available  
Task Execution
RTC-Based Execution Scheduling Available Available

Procedures supported only by CC13x2/CC26x2 and CC13x4/CC26x4:

  • fwResumeRtcEvents()
  • fwSuspendRtcEvents()
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:

  • pwrModeSupport
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:

  • intRef
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):

  • mant
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:

  • range

Different behavior for parameter(s):

  • delay
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):

  • period
spiBegin()

Extra parameter(s) for CC13x0/CC26x0:

  • cfg
spiEnd()

Extra parameter(s) for CC13x0/CC26x0:

  • cfg
spiRx16bit()

Extra parameter(s) for CC13x0/CC26x0:

  • cfg
spiRx8bit()

Extra parameter(s) for CC13x0/CC26x0:

  • cfg
spiTx16bit()

CC13x2/CC26x2 and CC13x4/CC26x4: The procedure returns immediately.

Extra parameter(s) for CC13x0/CC26x0:

  • cfg
spiTx8bit()

CC13x2/CC26x2 and CC13x4/CC26x4: The procedure returns immediately.

Extra parameter(s) for CC13x0/CC26x0:

  • cfg
spiTxRx16bit()

Extra parameter(s) for CC13x0/CC26x0:

  • cfg
spiTxRx8bit()

Extra parameter(s) for CC13x0/CC26x0:

  • cfg
tdcWaitUs()

Different behavior for parameter(s):

  • timeout
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):

  • mant
timer1StartWithTickSrc()

CC13x0/CC26x0: Timer 1 is 8-bit.

CC13x2/CC26x2 and CC13x4/CC26x4: Timer 1 is 16-bit.

Different behavior for parameter(s):

  • mant
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.