Microchip Technology AC244045 Data Sheet

Page of 302
PIC16F72X/PIC16LF72X
41341E-page 130
© 2009 Microchip Technology Inc.
14.1
Analog MUX
The capacitive sensing module can monitor up to 16
inputs. The capacitive sensing inputs are defined as
CPS<15:0>. To determine if a frequency change has
occurred the user must:
• Select the appropriate CPS pin by setting the 
CPSCH<3:0> bits of the CPSCON1 register
• Set the corresponding ANSEL bit
• Set the corresponding TRIS bit
• Run the software algorithm
Selection of the CPSx pin while the module is enabled
will cause the capacitive sensing oscillator to be on the
CPSx pin. Failure to set the corresponding ANSEL and
TRIS bits can cause the capacitive sensing oscillator to
stop, leading to false frequency readings.
14.2
Capacitive Sensing Oscillator
The capacitive sensing oscillator consists of a constant
current source and a constant current sink, to produce
a triangle waveform. The CPSOUT bit of the
CPSCON0 register shows the status of the capacitive
sensing oscillator, whether it is a sinking or sourcing
current. The oscillator is designed to drive a capacitive
load (single PCB pad) and at the same time, be a clock
source to either Timer0 or Timer1. The oscillator has
three different current settings as defined by
CPSRNG<1:0> of the CPSCON0 register. The different
current settings for the oscillator serve two purposes: 
• Maximize the number of counts in a timer for a 
fixed time base
• Maximize the count differential in the timer during 
a change in frequency
14.3
Timer resources
To measure the change in frequency of the capacitive
sensing oscillator, a fixed time base is required. For the
period of the fixed time base, the capacitive sensing
oscillator is used to clock either Timer0 or Timer1. The
frequency of the capacitive sensing oscillator is equal
to the number of counts in the timer divided by the
period of the fixed time base.
14.4
Fixed Time Base
To measure the frequency of the capacitive sensing
oscillator, a fixed time base is required. Any timer
resource or software loop can be used to establish the
fixed time base. It is up to the end user to determine the
method in which the fixed time base is generated.
14.4.1
TIMER0
To select Timer0 as the timer resource for the capacitive
sensing module:
• Set the T0XCS bit of the CPSCON0 register
• Clear the T0CS bit of the OPTION register
When Timer0 is chosen as the timer resource, the
capacitive sensing oscillator will be the clock source for
Timer0. Refer to Section 11.0 “Timer0 Module” for
additional information.
14.4.2
TIMER1
To select Timer1 as the timer resource for the
capacitive sensing module, set the TMR1CS<1:0> of
the T1CON register to ‘11’. When Timer1 is chosen as
the timer resource, the capacitive sensing oscillator will
be the clock source for Timer1. Because the Timer1
module has a gate control, developing a time base for
the frequency measurement can be simplified using
either:
• The Timer0 overflow flag
• The Timer2 overflow flag
• The WDT overflow flag
It is recommend that one of these flags, in conjunction
with the toggle mode of the Timer1 Gate, is used to
develop the fixed time base required by the software
portion of the capacitive sensing module. Refer to
Section 12.0 “Timer1 Module with Gate Control” for
additional information.
TABLE 14-1:
TIMER1 ENABLE FUNCTION 
Note:
The fixed time base can not be generated
by timer resource the capacitive sensing
oscillator is clocking.
TMR1ON
TMR1GE
Timer1 Operation
0
0
Off
0
1
Off
1
0
On
1
1
Count Enabled by input