SWRU439M October 2015 – April 2022
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.