English
Language : 

C8051F970-A-GM Datasheet, PDF (134/454 Pages) Silicon Laboratories – Low Power Capacitive Sensing MCU with up to 32 kB of Flash
C8051F97x
18.9. Automatic Scanning (Method 2—CS0SMEN = 1)
When CS0SMEN is enabled, CS0 uses an alternate autoscanning method that uses the contents of AMUX0Pn to
determine which channels to include in the scan. This maximizes flexibility for application development and can
result in more power efficient scanning. The following procedure can be used to configure the device for Automatic
Scanning with CS0SMEN = 1.
1. Set the CS0SMEN bit to 1.
2. Select the start of conversion mode (CS0CM[2:0]) if not already configured. Mode 101b is the mode of
choice for most systems.
3. Configure the AMUX0Pn registers to enable channels in the scan.
4. Configure the CS0THH:CS0THL digital comparator threshold and polarity.
5. Enable wake from suspend on end of scan (CS0WOI = 1) if this functionality is desired.
6. Set CS0SS to point to the first channel in the scan. Note: CS0SS uses the same bit mapping as the
CS0MX register.
7. Issue a start of conversion (BUSY = 1).
8. Enable the CS0 Wakeup Source and place the device in Suspend mode (optional).
If using Mode 101b, scanning will stop once a “touch” has been detected using the digital comparator. The CS0MX
register will contain the channel mux value of the channel that caused the interrupt. Setting the busy bit when
servicing the interrupt will cause the scan to continue where it left off. Scanning will also stop after all channels
have been sampled and no “touches” have been detected. If the CS0WOI bit is set, a wake from suspend event will
be generated. Note: When automatic scanning is enabled, the contents of the CS0MX register are only valid when
the digital comparator interrupt is set and BUSY = 0.
18.10. CS0 Comparator
The CS0 comparator compares the latest capacitive sense conversion result with the value stored in
CS0THH:CS0THL. If the result is less than or equal to the stored value, the CS0CMPF bit(CS0CN:0) is set to 0. If
the result is greater than the stored value, CS0CMPF is set to 1.
If the CS0 conversion accumulator is configured to accumulate multiple conversions, a comparison will not be
made until the last conversion has been accumulated.
An interrupt will be generated if CS0 greater-than comparator interrupts are enabled by setting the ECSGRT bit
(EIE2.1) when the comparator sets CS0CMPF to 1.
If auto-scan is running when the comparator sets the CS0CMPF bit, no further auto-scan initiated conversions will
start until firmware sets CS0BUSY to 1.
A CS0 greater-than comparator event can wake a device from suspend mode. This feature is useful in systems
configured to continuously sample one or more capacitive sense channels. The device will remain in the low-power
suspend state until the captured value of one of the scanned channels causes a CS0 greater-than comparator
event to occur. It is not necessary to have CS0 comparator interrupts enabled in order to wake a device from
suspend with a greater-than event.
For a summary of behavior with different CS0 comparator, auto-scan, and auto accumulator settings, please see
Table 18.1.
134
Rev 1.0