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.
- 2MHz 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 6MHz clock speed
The peripherals in the Sensor Controller can also be controlled from the main application
processor.