SimpleLink, Code Composer Studio, and LaunchPad are trademarks of Texas Instruments.
Windows are registered trademarks of Microsoft Corporation.
Arm, Cortex, and Keil are registered trademarks of Arm Limited (or its subsidiaries).
IAR Embedded Workbench is a registered trademark of IAR Systems AB.
All trademarks are the property of their respective owners.
Sensor Controller Studio is used to write, test and debug code for the CC26xx and CC13xx Sensor Controller. The tool generates a set of C source files, which contains the Sensor Controller firmware image and allows the System CPU application to control and exchange data with the Sensor Controller.
This document provides an overview of the CC26xx and CC13xx Sensor Controller and the Sensor Controller Studio tool.
Prerequisites for the generated driver source code and the supplied examples are stated in Section 3.
Section 5 provides information about how to access tutorials through the TI Resource Explorer.
The tutorial in Section 6 provides a complete walkthrough of the Sensor Controller Studio tool.
Sensor Controller Studio is used to write, test and debug code for the CC26xx and CC13xx Sensor Controller. The tool generates a Sensor Controller Interface driver, which is a set of C source files to be compiled into the System CPU ( Arm®Cortex®-M3 and Arm Cortex-M4 processors) application. These source files contain the Sensor Controller firmware image, associated definitions, and generic functions that allow the System CPU application to control the Sensor Controller and exchange data.
The Sensor Controller is a small CPU core that is highly optimized for low power consumption and efficient peripheral operation. The Sensor Controller is located in the CC26xx and CC13xx auxiliary (AUX) power/clock domain and can perform simple background tasks autonomously and independently of the System CPU and the MCU domain power state. These tasks include the following:
The Sensor Controller is user programmable, using a simple programming language with syntax similar to C. This programmability allows for sensor polling and other tasks to be specified as sequential algorithms rather than static configuration of complex peripheral modules, timers, DMA, register-programmable state machines, event routing, and so on. The main advantages are:
For example, the following code samples an analog sensor and notifies the System CPU application if needed:
// Select ADC input
adcSelectGpioInput(AUXIO_A_SENSOR_OUTPUT);
// Enable the ADC (fixed reference, 2.7 us sample time, manual trigger)
adcEnableSync(ADC_REF_FIXED, ADC_SAMPLE_TIME_2P7_US, ADC_TRIGGER_MANUAL);
// Sample the sensor and store the ADC value
adcGenManualTrigger();
adcReadFifo(output.adcValue);
// Disable the ADC
adcDisable();
// Notify the application if above the threshold
if (output.adcValue > SENSOR_THRESHOLD) {
fwGenAlertInterrupt();
}
The Sensor Controller task algorithms can efficiently be evaluated, debugged, and verified using the Sensor Controller Studio. The resulting Sensor Controller Interface driver can be treated as a black box, and can be integrated painlessly into the System CPU application.
There is a command line interface (CLI) that can be used for build automation.
Sensor Controller Studio supports the following device families:
The Sensor Controller is located in the AUX domain of the CC26xx and CC13xx devices, and has access to hardware functionality located in the AUX domain.
The Sensor Controller has, with few exceptions, no access to peripherals, RAM, flash or registers in MCU and AON domains. This separation allows the MCU domain to enter and exit standby mode independently of the Sensor Controller. The System CPU has access to all AUX domain peripherals.
Table 2-1 lists the functionality of the hardware in the AUX domain.
AUX Domain and Sensor Controller | CC13x0, CC26x0 | CC13x2, CC26x2 |
---|---|---|
Sensor Controller Engine (power-optimized 16-bit CPU core) | Yes | Yes |
AUX RAM (Sensor Controller instruction and data memory) | 2 KB = 1024 × 16-bit words | 4 KB = 2048 ×16-bit words |
Programmable wake-up sources | 1 | 3 |
Wake up from AON_RTC channel 2 | Yes | Yes |
Analog Peripherals | ||
ADC (12-bit, 200-kHz analog-to-digital converter) | Yes | Yes |
COMPA (continuous time comparator) | Yes | Yes, improved |
COMPB (low-power clocked comparator) | Yes | Yes, improved |
ISRC (0 to 20-µA current source) | Yes | Yes |
Reference DAC (8-bit DAC for COMPA/COMPB reference) | — | Yes |
Digital Peripherals | ||
TDC (96-MHz time-to-digital converter) | Yes | Yes |
Pulse counter (16-bit asynchronous) | Yes | Yes, improved |
Timer0 (synchronous timer) | Yes, 16-bit | Yes, 16-bit, improved |
Timer1 (synchronous timer) | Yes, 8-bit | Yes, 16-bit, improved |
Timer2 (16-bit asynchronous PWM/sequencing timer) | — | Yes |
Microsecond delay timer | — | Yes |
AUX I/O controllers (8 pins each) | 2 | 4 |
Hardware semaphores (for peripheral sharing with System CPU) | 8 | 8 |
Multiply and accumulate accelerator (40-bit accumulator) | — | Yes |
Serial Interfaces | ||
Serial peripheral interface (SPI) | Bit-banged | Yes, hardware peripheral |
I2C master (400 kHz or 100 kHz) | Bit-banged | Bit-banged |
I/O Pins | ||
Analog- and digital-capable general-purpose I/O pins | Up to 8 | Up to 8 |
Digital-only general-purpose I/O pins | Up to 8 | Up to 23 |
System | ||
Observation signal output (AUX event bus signal to GPIO) | — | 1 |
AON_BATMON read access (temperature and voltage) | — | Yes |
AON_RTC read access (16-bit second, 16-bit subsecond) | — | Yes |
MCU domain and power supply system status | — | Yes |
VDDR recharge status and interaction | — | Yes |
For an overview of the differences between the CC13x0, CC26x0 and the CC13x2, CC26x2 device families, see the Chip Family Migration Guide in the Sensor Controller Studio help viewer.
For detailed technical information about the Sensor Controller Engine CPU core, see the Assembly Language Reference in the Sensor Controller Studio help viewer.
The sections that follow describe for each device family the available power modes and the clock frequencies in each power mode, depending on the state of the System CPU.
The main improvements in the CC13x2 and CC26x2 device family are:
The Sensor Controller is in active mode when running task code and in standby mode otherwise. The Sensor Controller firmware framework, which is integrated in the generated driver, autonomously handles the transitions into and out of standby mode.
All peripheral modules are available in active mode, unless they are used by the System CPU. A small number of peripherals can be used in standby mode to trigger wakeup of the Sensor Controller.
Table 2-2 lists the Sensor Controller/AUX domain clock source and frequency for the different modes of operation.
Operation State | Frequency and Source | System CPU and MCU Domain Active | System CPU and MCU Domain Standby |
---|---|---|---|
Active | Sensor Controller clock | 24 MHz (SCLK_HF / 2) | 24 MHz (SCLK_HF / 2) |
AUX bus clock | 24 MHz (SCLK_HF / 2) | 24 MHz (SCLK_HF / 2) | |
Standby with event trigger | Sensor Controller clock | 24 MHz (SCLK_HF / 2) | 32 kHz (SCLK_LF) |
AUX bus clock | 24 MHz (SCLK_HF / 2) | 32 kHz (SCLK_LF) | |
Standby without event trigger | Sensor Controller clock | 24 MHz (SCLK_HF / 2) | No clock |
AUX bus clock | 24 MHz (SCLK_HF / 2) | No clock |
The Sensor Controller is in active mode or low-power mode when running task code, and in standby mode otherwise.
The Sensor Controller firmware framework, which is integrated in the generated driver, handles the transitions into and out of standby mode autonomously.
The Sensor Controller configuration and task code can trigger transitions between the active and low-power modes. The Sensor Controller wakes up to the power mode that was used when it entered standby.
All peripheral modules are available in active mode, unless they are used by the System CPU. Peripheral modules that require active mode (SCLK_HF and/or other system functionality) are not available in low-power mode. A small number of peripherals can be used in standby mode to trigger Sensor Controller wake-up.
Table 2-3 shows the Sensor Controller and AUX domain clock source and frequency for the different modes of operation.
Operation State | Frequency and Source | System CPU and MCU Domain Active | System CPU and MCU Domain Standby |
---|---|---|---|
Active with Sensor Controller at 24 MHz | Sensor Controller clock | 24 MHz (SCLK_HF / 2) | 24 MHz (SCLK_HF / 2) |
AUX bus clock | 24 MHz (SCLK_HF / 2) | 24 MHz (SCLK_HF / 2) | |
Active with Sensor Controller at 2 MHz | Sensor Controller clock | 2 MHz (derived from SCLK_HF / 2) | 2 MHz (derived from SCLK_HF / 2) |
AUX bus clock | 24 MHz (SCLK_HF / 2) | 24 MHz (SCLK_HF / 2) | |
Low-power | Sensor Controller clock | 2 MHz (derived from SCLK_HF / 2) | 2 MHz (SCLK_MF) |
AUX bus clock | 24 MHz (SCLK_HF / 2) | 2 MHz (SCLK_MF) | |
Standby with Timer0/1 event trigger | Sensor Controller clock | 32 kHz (derived from SCLK_HF / 2) | 32 kHz (SCLK_LF) |
AUX bus clock | 24 MHz (SCLK_HF / 2) | 32 kHz (SCLK_LF) | |
Standby without Timer0/1 event trigger | Sensor Controller clock | No clock | No clock |
AUX bus clock | 24 MHz (SCLK_HF / 2) | No clock |