The Sensor Controller contains circuitry that can be selectively enabled in both Standby and
Active power modes. The peripherals in this domain can be controlled by the Sensor Controller Engine, which is a proprietary power-optimized
CPU. This CPU can read and monitor sensors or perform other tasks autonomously; thereby significantly reducing power consumption and offloading
the system CPU.
The Sensor Controller Engine is user programmable with a simple programming language that has
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, or event routing.
The main advantages are:
- Flexibility - data can be read and processed in unlimited manners while still ensuring ultra-low power
- 2 MHz low-power mode enables lowest possible handling of digital sensors
- Dynamic reuse of hardware resources
- 40-bit accumulator supporting multiplication, addition and shift
- Observability and debugging options
Sensor
Controller Studio is used to write, test, and debug code for the Sensor Controller. The tool produces C driver source code, which the
System CPU application uses to control and exchange data with the Sensor Controller. Typical use cases may be (but are not limited to) the
following:
- Read analog sensors using integrated ADC or comparators
- Interface digital sensors using GPIOs, SPI, UART, or I2C (UART and I2C
are bit-banged)
- Capacitive sensing
- Waveform generation
- Very low-power pulse counting (flow metering)
- Key scan
The peripherals in the Sensor Controller include the following:
- The low-power clocked comparator can be used to wake the system CPU from any state in which
the comparator is active. A configurable internal reference DAC can be used in conjunction with the comparator. The output of the comparator
can also be used to trigger an interrupt or the ADC.
- Capacitive sensing functionality is implemented through the use of a constant current source,
a time-to-digital converter, and a comparator. The continuous time comparator in this block can also be used as a higher-accuracy
alternative to the low-power clocked comparator. The Sensor Controller takes care of baseline tracking, hysteresis, filtering, and other
related functions when these modules are used for capacitive sensing.
- The ADC is a 12-bit, 200
ksamples/s ADC with eight inputs and a built-in voltage reference. The ADC
can be triggered by many different sources including timers, I/O pins,
software, and comparators.
- The analog modules can connect to up to eight different GPIOs
- Dedicated SPI master with up to 6 MHz clock speed
The peripherals in the Sensor Controller can also be controlled from the main application
processor.