QUANTUM QT60161B-A

LQ
CS1B
CS1A
CS0B
CS0A
Vdd
Vss
LED
DRDY
VREF
MOSI
MISO
1
2
44 43 42 41 40 39 38 37 36 35 34
33
32
CS2A
CS2B
SCK
RST
Vdd
3
4
5
31
30
29
CS3A
CS3B
Aref
Vss
XTO
6
7
28
27
AGnd
AVdd
XTI
RX
8
9
26
25
YS3
YS2
TX
10
24
11
23
12 13 14 15 16 17 18 19 20 21 22
YS1
YS0
WS
QT60161B
TQFP-44
XS3
XS2
XS1
XS0
Vss
Vdd
X3
X2
X1OPB
X0OPA
Advanced second generation QMatrix controller
16 touch keys through any dielectric
100% autocal for life - no adjustments required
SPI Slave or Master/Slave interface to a host controller
Parallel scan interface for electromechanical compatibility
Keys individually adjustable for sensitivity, response time,
and many other critical parameters
Sleep mode with wake pin
Synchronous noise suppression
Mix and match key sizes & shapes in one panel
Adjacent key suppression feature
Panel thicknesses to 5 cm or more
Low overhead communications protocol
44-pin TQFP package
SMP
16 KEY QMatrix KEYPANEL SENSOR IC
SO
SS
QT60161B
™
APPLICATIONS Security keypanels
Industrial keyboards
Appliance controls
Outdoor keypads
ATM machines
Touch-screens
Automotive panels
Machine tools
The QT60161B digital charge-transfer (“QT”) QMatrix™ IC is designed to detect human touch on up 16 keys when used in
conjunction with a scanned, passive X-Y matrix. It will project the keys through almost any dielectric, e.g. glass, plastic, stone,
ceramic, and even wood, up to thicknesses of 5 cm or more. The touch areas are defined as simple 2-part interdigitated
electrodes of conductive material, like copper or screened silver or carbon deposited on the rear of a control panel. Key sizes,
shapes and placement are almost entirely arbitrary; sizes and shapes of keys can be mixed within a single panel of keys and can
vary by a factor of 20:1 in surface area. The sensitivity of each key can be set individually via simple functions over the SPI or
UART port, for example via Quantum’s QmBtn program, or from a host microcontroller. Key setups are stored in an onboard
eeprom and do not need to be reloaded with each powerup.
The device is designed specifically for appliances, electronic kiosks, security panels, portable instruments, machine tools, or
similar products that are subject to environmental influences or even vandalism. It can permit the construction of 100% sealed,
watertight control panels that are immune to humidity, temperature, dirt accumulation, or the physical deterioration of the panel
surface from abrasion, chemicals, or abuse. To this end the device contains Quantum-pioneered adaptive auto self-calibration,
drift compensation, and digital filtering algorithms that make the sensing function robust and survivable.
The part can scan matrix touch keys over LCD panels or other displays when used with clear ITO electrodes arranged in a matrix.
It does not require 'chip on glass' or other exotic fabrication techniques, thus allowing the OEM to source the matrix from multiple
vendors. Materials such as such common PCB materials or flex circuits can be used.
External circuitry consists of a resonator and a few capacitors and resistors, all of which can fit into a footprint of less than 6 sq. cm
(1 sq. in). Control and data transfer is via either a SPI or UART port; a parallel scan port provides backwards compatibility with
scanned electromechanical keys.
The QT60161B makes use of an important new variant of charge-transfer sensing, transverse charge-transfer, in a matrix format
that minimizes the number of required scan lines. Unlike some older technologies it does not require one sensing IC per key.
The QT60161B is identical to earlier QT60161 in all respects except that the device exhibits lower signal noise. This
device replaces QT60161 parts directly. After December 2003 the QT60161 will no longer be sold.
AVAILABLE OPTIONS
TA
-400C to +1050C
lQ
TQFP Part Number
QT60161B-AS
Copyright © 2001 Quantum Research Group Ltd
Pat Pend. R1.03/04.03
©Quantum Research Group Ltd.
Contents
5.3 Status Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
0 0x30 - Signal for Single Key . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1 0x31 - Delta Signal for Single Key . . . . . . . . . . . . . . . . . . . . . . . 18
2 0x32 - Reference Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5 0x35 - Detection Integrator Counts . . . . . . . . . . . . . . . . . . . . . . 18
6 0x36 - Eeprom Checksum . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7 0x37 - General Device Status . . . . . . . . . . . . . . . . . . . . . . . . . . 19
<sp> 0x20 - Signal Levels for Group . . . . . . . . . . . . . . . . . . . . . . . 19
! 0x21 - Delta Signals for Group . . . . . . . . . . . . . . . . . . . . . . . . . 19
" 0x22 - Reference Levels for Group . . . . . . . . . . . . . . . . . . . . . . 19
% 0x25 - Detect Integrator Counts for Group . . . . . . . . . . . . . . . . . 19
e 0x65 - Error Code for Selected Key . . . . . . . . . . . . . . . . . . . . . . 19
E 0x45 - Error Codes for Group . . . . . . . . . . . . . . . . . . . . . . . . . 20
k 0x6B - Reporting of First Touched Key . . . . . . . . . . . . . . . . . . . . 20
5.4 Setup Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
^A 0x01 - Negative Detect Threshold . . . . . . . . . . . . . . . . . . . . . . . 21
^B 0x02 - Positive Detect Threshold . . . . . . . . . . . . . . . . . . . . . . . 21
^C 0x03 - Negative Threshold Hysteresis . . . . . . . . . . . . . . . . . . . . 21
^D 0x04 - Positive Threshold Hysteresis . . . . . . . . . . . . . . . . . . . . . 21
^F 0x06 - Burst Length . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
^G 0x07 - Burst Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
^H 0x08 - Negative Drift Compensation Rate5 . . . . . . . . . . . . . . . . . 22
^I 0x09 - Positive Drift Compensation Rate
. . . . . . . . . . . . . . . . . . 22
^J 0x0A - Negative Detect Integrator Limit
. . . . . . . . . . . . . . . . . . . 22
^K 0x0B - Positive Recalibration Delay
. . . . . . . . . . . . . . . . . . . . . 23
^L 0x0C - Negative Recalibration Delay . . . . . . . . . . . . . . . . . . . . . 23
^M 0x0D - Intra-Burst Pulse Spacing . . . . . . . . . . . . . . . . . . . . . . . 23
^N 0x0E - Positive Reference Error Band . . . . . . . . . . . . . . . . . . . . 23
^O 0x0F - Negative Reference Error Band . . . . . . . . . . . . . . . . . . . 23
^P 0x10 - Adjacent Key Suppression (‘AKS’) . . . . . . . . . . . . . . . . . . 24
5.5 Supervisory / System Functions . . . . . . . . . . . . . . . . . . . . 24
6 0x36 - Eeprom Checksum . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
L 0x4C - Lock Reference Levels . . . . . . . . . . . . . . . . . . . . . . . . . 24
b 0x62 - Recalibrate Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
l 0x6C - Return Last Command Character . . . . . . . . . . . . . . . . . . . 25
r 0x72 - Reset Device . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
V 0x56 - Return Part Version . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
W 0x57 - Return Part Signature . . . . . . . . . . . . . . . . . . . . . . . . . 25
Z 0x5A - Enter Sleep . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
^Q 0x11 - Data Rate Selection . . . . . . . . . . . . . . . . . . . . . . . . . . 25
^R 0x12 - Oscilloscope Sync . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
^W 0x17 - Noise Sync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.6 Function Summary Table . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.7 Timing Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.8 Erratta / Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6 Electrical Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.1 Absolute Maximum Specifications . . . . . . . . . . . . . . . . . . 31
6.2 Recommended operating conditions . . . . . . . . . . . . . . . . 31
6.3 DC Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.4 Protocol Timing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.5 Maximum Drdy Response Delays . . . . . . . . . . . . . . . . . . 32
7 Mechanical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.1 Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
7.2 Marking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
8 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1 Field Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Circuit Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Signal Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1 Negative Threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Positive Threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Hysteresis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 Drift Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.5 Negative Recalibration Delay . . . . . . . . . . . . . . . . . . . . . . . . 6
2.6 Detection Integrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.7 Positive Recalibration Delay . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.8 Reference Guardbanding . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.9 Adjacent Key Suppression (‘AKS’) . . . . . . . . . . . . . . . . . . . . 6
2.10 Full Recalibration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.11 Device Status & Reporting . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Circuit Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1 Matrix Scan Sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.2 Signal Path . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 'X' Electrode Drives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3.1 RFI From X Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.3.2 Noise Coupling Into X lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.4 'Y' Gate Drives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.4.1 RFI From Y Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.4.2 Noise Coupling Into Y Lines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.5 Burst Length & Sensitivity . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.6 Burst Acquisition Duration . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.7 Intra-Burst Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.8 Burst Spacing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.9 Sample Capacitors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.10 Water Film Suppression . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.11 Reset Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.12 Oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.13 Startup / Calibration Times . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.14 Sleep_Wake / Noise Sync Pin (WS) . . . . . . . . . . . . . . . . . 9
3.15 LED / Alert Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.16 Oscilloscope Sync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.17 Power Supply & PCB Layout . . . . . . . . . . . . . . . . . . . . . 11
3.18 ESD / Noise Considerations . . . . . . . . . . . . . . . . . . . . . . 11
4 Communications Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1 Serial Protocol Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 SPI Port Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 SPI Slave-Only Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.4 SPI Master-Slave Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.5 UART Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.6 Sensor Echo and Data Response . . . . . . . . . . . . . . . . . . 15
4.7 Parallel Scan Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.8 Eeprom Corruption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
5 Commands & Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1 Put / Get Direction Commands . . . . . . . . . . . . . . . . . . . . . 17
g 0x67 - Get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
p 0x70 - Put Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.2 Scope Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
s 0x73 - Specific Key Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
S 0x53 - All Keys Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
x 0x78 - Row Keys Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
y 0x79 - Column Keys Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
lQ
ii
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
Table 1.1 Device Pin List
Pin
Name
Type
1
MOSI
I/O PP
2
MISO
I/O PP
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
SCK
RST
Vdd
Vss
XTO
XTI
RX
TX
WS
SMP
X0OPA
X1OPB
X2
X3
Vdd
Vss
XS0
XS1
XS2
XS3
YS0
YS1
YS2
YS3
AVdd
AGnd
Aref
CS3B
CS3A
CS2B
CS2A
CS1B
CS1A
CS0B
CS0A
Vdd
Vss
LED
DRDY
Vref
SO
SS
I/O PP
I
Pwr
Pwr
O PP
I
I
O PP
I
O PP
I/O PP
I/O PP
O PP
O PP
Pwr
Pwr
I
I
I
I
O PP
O PP
O PP
O PP
Pwr
Pwr
Pwr
I/O PP
I/O PP
I/O PP
I/O PP
I/O PP
I/O PP
I/O PP
I/O PP
Pwr
Pwr
O PP
O OD
I
O PP
I/O OD
Description
Master-Out / Slave In SPI line. In Master/Slave SPI mode is used for both communication directions.
In Slave SPI mode is the data input (in only).
Master-In / Slave Out SPI line. Not used in Master/Slave SPI mode.
In Slave mode outputs data to host (out only).
SPI Clock. In Master mode is an output; in Slave mode is an input
Reset input, active low reset
+5V supply
Ground
Oscillator drive output. Connect to resonator or crystal.ply
Oscillator drive input. Connect to resonator or crystal, or external clock source.
UART receive input
UART transmit output
Wake from Sleep / Sync to noise source
Sample output control
X0 Drive matrix scan / Communications option A input
X1 Drive matrix scan / Communications option B input
X2 Drive matrix scan
X3 Drive matrix scan
+5V supply
Ground
XS0 Scan input line
XS1 Scan input line
XS2 Scan input line
XS3 Scan input line
YS0 Scan output line
YS1 Scan output line
YS2 Scan output line
YS3 Scan output line
+5 supply for analog sections
Analog ground
+5 supply for analog sections
Cs3 control B
Cs3 control A
Cs2 control B
Cs2 control A
Cs1 control B
Cs1 control A
Cs0 control B
Cs0 control A
+5 supply
Ground
Active low LED status drive / Activity indicator
Data ready output for Slave SPI mode; active low
Vref input for conversion reference
Oscilloscope sync output
Slave select for SPI direction control; active low
I/O: I = Input
O = Output
Pwr = Power pin
I/O = Bidirectional line
PP = Push Pull output drive
OD = Open drain output drive
lQ
iii
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
1 Overview
Figure 1-4 Sample Electrode Geometries
QMatrix devices are digital burst mode charge-transfer (QT)
sensors designed specifically for matrix geometry touch
controls; they include all signal processing functions
necessary to provide stable sensing under a wide variety of
changing conditions. Only a few low cost external parts are
required for operation. The entire circuit can be built in under
6 square centimeters of PCB area.
PARALLEL LINES
Figure 1-1 Field flow between X and Y elements
SPIRAL
charge driven by the X electrode is partly received onto the
corresponding Y electrode which is then processed. The part
uses 4 'X' edge-driven rows and 4 'Y' sense columns to sense
up to 16 keys.
overly ing panel
X
elem e nt
SERPENTINE
The charge flows are absorbed by the touch of a human
finger (Figure 1-1) resulting in a decrease in coupling from X
to Y. Thus, received signals decrease or go negative with
respect to the reference level during a touch.
Y
elem ent
As shown in Figure 1-3, water films cause the coupled fields
to increase slightly, making them easy to distinguish from
touch.
1.2 Circuit Overview
The device has a wide dynamic range that allows for a wide
variety of key sizes and shapes to be mixed together in a
single touch panel. These features permit new types of
keypad features such as touch-sliders, back-illuminated keys,
and complex warped panels.
A basic circuit diagram is shown in Figure 1-5. The ‘X’ drives
are sequentially pulsed in groupings of bursts. At the
intersection of each ‘X’ and ‘Y’ line in the matrix itself, where
a key is desired, should be an interdigitated electrode set
similar to those shown in Figure 1-4. See Quantum App Note
AN-KD01, or consult Quantum for application assistance.
The devices use an SPI interface running at up to 3MHz rates
to allow key data to be extracted and to permit individual key
parameter setup, or, a UART port which can run at rates to
57.6 Kbaud. The serial interface protocol uses simple
commands; the command structure is designed to minimize
the amount of data traffic while maximizing the amount of
information conveyed.
In addition to normal operating and
setup functions the device can also
report back actual signal strengths
and error codes over the serial
interfaces.
The device uses fixed external capacitors to acquire charge
from the matrix during a burst of charge-transfer cycles; the
burst length can be varied to permit digitally variable key
signal gains. The charge is converted to digital using a
single-slope conversion process.
Figure 1-2 Field Flows When Touched
Refer to Section 3 for more details
on circuit operation.
QmBtn software for the PC can be
used to program the IC as well as
read back key status and signal
levels in real time.
1.3 Communications
A parallel scan port is also provided
that can be used to directly replace
membrane type keypads.
QMatrix technology employs
transverse charge-transfer ('QT')
sensing, a new technology that
senses the changes in an electrical
charge forced across an electrode
set.
Burst mode operation permits the
use of a passive matrix, reduces RF
emissions, and provides excellent
response times.
ov e rly in g pan el
X
elem e nt
Y
elem ent
The device uses two variants of SPI
communications, Slave-only and
Master-Slave, a UART interface,
plus a parallel scan interface. Over
the serial interfaces are used a
command and data transfer
structure designed for high levels of
flexibility using minimal numbers of
bytes. For more information see
Sections 4 and 5.
Figure 1-3 Fields With a Conductive Film The parallel scan port permits the
replacement of electromechanical
keypads that would be scanned by
a microcontroller; the scan interface
mimics an electromechanical
keyboard’s response.
1.1 Field Flows
Figure 1-1 shows how charge is
transferred across an electrode set
to permeate the overlying panel
material; this charge flow exhibits a
high dQ/dt during the edge
transitions of the X drive pulse. The
lQ
4
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
The threshold is user-programmed using the setup process
described in Section 5 on a per-key basis.
Figure 1-5 Circuit Block Diagram
Opt A
Vcc
Opt B
2.3 Hysteresis
See also command ^C and ^D, page 21
LED
X0
Scope
Sync
X1
Reset
X3
X2
Wake /
Sync
CS0A
CS0B
SPI
to Host CS1A
UART
to Host CS1B
Scan Output
CS2A
Scan Input
X0
X1
X2
X3
CS2B
CS3A
CS3B
Y0 Y1 Y2 Y3
Refer to Figure 1-6. The QT60161B employs programmable
hysteresis levels of 12.5%, 25%, or 50% of the delta between
the reference and threshold levels. There are different
hysteresis settings for positive and negative thresholds which
can be set by the user. The percentage refers to the distance
between the reference level and the threshold at which the
detection will drop out. A percentage of 12.5% is less
hysteresis than 25%, and the 12.5% hysteresis point is closer
to the threshold level than to the reference level.
KEYMATRIX
QT60161
Sample caps
CS0
The hysteresis levels are set for all keys only; it is not
possible to set the hysteresis differently from key to key on
either the positive or negative hysteresis levels.
CS1
CS2
2.4 Drift Compensation
CS3
See also commands ^H, ^I, page 22
Signal levels can drift because of changes in Cx and Cs over
time. It is crucial that such drift be compensated, else false
detections, non- detections, and sensitivity shifts will follow.
The QT60161B can compensate for drift using two setups, ^H
and ^I.
VREF
Sample
Drift compensation is performed by making the reference
level track the raw signal at a slow rate, but only while there is
no detection in effect. The rate of adjustment must be
performed slowly, otherwise legitimate detections could be
ignored. The devices drift compensate using a slew-rate
limited change to the reference level; the threshold and
hysteresis values are slaved to this reference.
2 Signal Processing
The device calibrates and processes signals using a number
of algorithms specifically designed to provide for high
survivability in the face of adverse environmental challenges.
The QT60161B provides a large number of processing
options which can be user-selected to implement very
flexible, robust keypanel solutions.
When a finger is sensed, the signal falls since the human
body acts to absorb charge from the cross-coupling between
X and Y lines. An isolated, untouched foreign object (a coin,
or a water film) will cause the signal to rise very slightly due to
the enhanced coupling thus created. These effects are
contrary to the way most capacitive sensors operate.
2.1 Negative Threshold
See also command ^A, page 21
The negative threshold value is established relative to a key’s
signal reference value. The threshold is used to determine
key touch when crossed by a negative-going signal swing
after having been filtered by the detection integrator (Section
2.6). Larger absolute values of threshold desensitize keys
since the signal must travel farther in order to cross the
threshold level. Conversely, lower thresholds make keys
more sensitive.
As Cx and Cs drift, the reference point drift-compensates for
these changes at a user-settable rate (Section 2.4); the
threshold level is recomputed whenever the
reference point moves, and thus it also is drift
compensated.
Once a finger is sensed, the drift compensation mechanism
ceases since the signal is legitimately detecting an object.
Drift compensation only works when the key signal in
question has not crossed the negative threshold level
(Section 2.1).
The drift compensation mechanism can be made asymmetric
if desired; the drift-compensation can be made to occur in
one direction faster than it does in the other simply by setting
^H and ^I to different settings.
Figure 1-6 Detection and Drift Compensation
The threshold is user-programmed on a per-key
basis using the setup process (Section 5).
Reference
2.2 Positive Threshold
Hysteresis
See also command ^B, page 21
Threshold
The positive threshold is used to provide a
mechanism for recalibration of the reference point
when a key's signal moves abruptly to the positive.
These transitions are described more fully in
Section 2.7.
lQ
Signal
Output
5
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
Drift compensation should usually be set to compensate
faster for increasing signals than for decreasing signals.
Decreasing signals should not be compensated quickly, since
an approaching finger could be compensated for partially or
entirely before even touching the touch pad. However, an
obstruction over the sense pad, for which the sensor has
already made full allowance for, could suddenly be removed
leaving the sensor with an artificially suppressed reference
level and thus become insensitive to touch. In this case, the
sensor should compensate for the object's removal by raising
the reference level quickly.
2.7 Positive Recalibration Delay
Drift compensation and the detection time-outs (Section 2.5)
work together to provide for robust, adaptive sensing. The
time-outs provide abrupt changes in reference location
depending on the duration of the signal 'event'.
It is almost always desirable in these cases to cause the key
to recalibrate to the new signal level so as to restore normal
touch operation. The device accomplishes this by simply
setting Reference = Signal.
See also command ^K, page 23
A recalibration can occur automatically if the signal swings
more positive than the positive threshold level. This condition
can occur if there is positive drift but insufficient positive drift
compensation, or if the reference moved negative due to a
recalibration, and thereafter the signal returned to normal.
As an example of the latter, if a foreign object or a finger
contacts a key for period longer than the Negative Recal
Delay, the key is recalibrated to a new lower reference level.
Then, when the condition causing the negative swing ceases
The drift compensation rate can be set for each key
individually, and can also be disabled completely if desired on to exist (e.g. the object is removed) the signal can suddenly
swing back positive to near its normal reference.
a per-key basis.
The time required to detect this condition before recalibrating
is governed by the Positive Recalibration Delay command. In
order for this feature to operate, the signal must rise through
the positive threshold level (Section 2.2) for the proscribed
interval determined by Setup ^K.
2.5 Negative Recalibration Delay
See also command ^L, page 23
If a foreign object contacts a key the key's signal may change
enough in the negative direction, the same as a normal
touch, to create an unintended detection. When this happens
it is usually desirable to cause the key to be recalibrated in
order to restore its function after a time delay of some
seconds.
After the Positive Recal Delay interval has expired and the
fast-recalibration has taken place, the affected key will once
again function normally. This interval can be set on a per-key
basis; it can also be disabled by setting ^K to zero.
The Negative Recal Delay timer monitors this detection
duration; if a detection event exceeds the timer's setting, the
key will be recalibrated so that it can function thereafter. The
^L function can be altered on a key by key basis. It can be
disabled if desired by setting the ^L parameter to zero, so that
it will never recalibrate automatically.
2.8 Reference Guardbanding
See also commands ^N, ^O, page 23; ‘L’, page 24
The QT60161B provides for a method of self-checking that
allows the host to ascertain whether one or more key
reference levels are 'out of spec'. This feature can be used to
determine if an X or Y line has broken, the matrix panel has
delaminated from the control panel, or there is a circuit fault.
2.6 Detection Integrator
See also command ^J, page 22
Reference guardbanding alerts the host when the reference
level of a key falls outside of user-defined levels. The
reference guardband is determined as a percent deviation
from the 'locked' reference level for each individual key.
These reference levels can be stored into internal eeprom via
the Lock command 'L' during production; deviations in
reference levels that fall outside the guardbands centered on
these locked reference levels are then reported as key errors.
To suppress false detections caused by spurious events like
electrical noise, the QT60161B incorporates a 'detection
integrator' counter that increments with each detection
sample until a user-defined limit is reached, at which point a
detection is confirmed. If no detection is sensed on any of the
samples prior to the final count, the counter is reset
immediately to zero, forcing the process to restart.
The amount of guardbanding can be set differently for each
signal direction relative to the stored and locked levels. The
possible settings are from 0.1% to 25.5% of signal reference
in steps of 0.1% as set by commands ^N (positive swings)
and ^O (negative swings). A setting of 0 (zero) disables the
corresponding guardband direction.
When an active key is released, the counter must count down
to zero before the key state is set to 'off'. Setting a key’s
detection integrator target value to zero disables that key
although the bursts for that key continue normally.
The detection integrator is extremely effective at reducing
false detections at the expense of slower reaction times. In
some applications a slow reaction time is desirable; the
detection integrator can be used to intentionally slow down
touch response in order to require the user to touch longer to
operate the key.
Once the L command has recorded all values of signal
reference into eeprom, and if guardbanding is enabled, the
part will compare the actual reference level of each key to its
corresponding guardbands to see if it falls outside of these
limits. If so, either of bits 2 and 3 of command 'e' will be set
for that key. The error will also appear in a bitfield reported
via command 'E'.
There are 16 possible values for this function.
2.9 Adjacent Key Suppression (‘AKS’)
See also command ^P, page 24
The QT60161B incorporates adjacent key suppression
(‘AKS’) that can be enabled on a per-key basis. AKS permits
lQ
6
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
flow using minimal data transfers and low host software
overhead.
the suppression of multiple key presses based on relative
signal strengths. AKS assists in solving the problem of
surface water which can bridge a key touch to an adjacent
key, causing multiple key presses, causing multiple key
presses even though only one key was touched. This feature
is also useful for panels with tightly spaced keys, where a
fingertip can partially overlap an adjacent key.
3 Circuit Operation
A QT60161B reference circuit is shown in Figure 2-1.
AKS works for keys that are AKS-enabled anywhere in the
matrix and is not restricted to physically adjacent keys; the
device has no knowledge of which keys are physically
adjacent. When enabled for a key, adjacent key suppression
causes detections on that key to be suppressed if any other
AKS-enabled key in the panel has a more negative signal
deviation from its reference.
The circuit operates by scanning each key sequentially, key
by key. Key scanning begins with location X=0 / Y=0. X axis
keys are known as rows while Y axis keys are referred to as
columns. Keys are scanned sequentially by row, for example
the sequence Y0X0 Y0X1 Y0X2 Y0X3 Y1X0 etc.
This feature does not account for varying key gains (burst
length) but ignores the actual negative detection threshold
setting for the key. If AKS-enabled keys in a panel have
different sizes, it may be necessary to reduce the gains of
larger keys relative to smaller ones to equalize the effects of
AKS. The signal threshold of the larger keys can be altered to
compensate for this without causing problems with key
suppression.
Each key is sampled from 1 to 64 times in a burst whose
length is determined by Setup ^F. A burst is completed
entirely before the next key is sampled; at the end of each
burst the resulting analog signal is converted to digital using a
single-slope conversion process. The length of the burst
directly impacts on the gain of the key; each key can have a
unique burst length in order to allow tailoring of key sensitivity
on a key by key basis.
AKS works to augment the natural moisture suppression
capabilities of the device (Section 3.10), creating a more
robust touch panel.
3.2 Signal Path
3.1 Matrix Scan Sequence
Refer to Figures 1-5, 3-1, and 3-2.
X-Drives. The X drives are push-pull CMOS lines which drive
charge through the matrix keys on the positive and negative
edges of X. Only the positive edge of X is used for signal
See also command ‘b’, page 24
purposes, however the negative edge must cause the charge
The part fully recalibrates one or more keys after the ‘b’
across the keys to neutralize prior to the next positive edge,
command has been issued to it, depending on the current
else the sampling mechanism will cease after one pulse. The
scope of the ‘b’ command. The device recalibrates all keys on part accomplishes this by holding all Y lines to ground during
powerup, after a hard reset via the RST pin or on power up,
the falling edge of X.
or via a reset using the ‘r’ command. Since the circuit
Charge gate. Only one X row is pulsed during a burst.
tolerates a very wide dynamic signal range, it is capable of
adapting to a wide mix of key sizes and shapes having widely Charge is coupled across a key's Cx capacitance from the X
row to all Y columns. A particular key is chosen by gating the
varying Cx coupling capacitances.
charge from a single Y column into a single one of four
If a false calibration occurs due to a key touch or foreign
possible sampler capacitors. The other three X and three Y
object on the keys during powerup, the affected key will
lines are clamped to ground during this process.
recalibrate again when the object is removed depending on
Dwell time. The dwell time is determined internally and is
the settings of Positive Threshold and Positive Recal Delay
the same as one oscillator period, i.e. 83.3ns with a 12MHz
(Sections 2.2 and 2.7).
resonator. The dwell time is set via internal switching action
Calibration requires 9 full burst cycles to complete, and so the
time it takes is dependent on the burst spacing parameter
(Section 3.8 also, ^G, page 22.
2.10 Full Recalibration
Figure 3-1 QT60161B Circuit Model
2.11 Device Status & Reporting
X d rive
(1 of 4)
See also commands ‘7’, page 19; ‘e’, page 19; ‘E’, page 20;
‘k’, page 20, ‘K’, page 20
Cx
The device can report on the general device status or specific
key states including touches and error conditions, depending
on the command used.
X
X
ele ctrode
Usually it is most efficient to periodically request the general
device status using command ‘7’ first, as the response to this
command is a single byte which reports back on behalf of all
keys. ‘7’ indicates if there are any keys detecting, calibrating,
or in error.
R e su lt
If command ‘7’ reports a condition requiring further
investigation, the host device can then use commands ‘e’, ‘E’,
‘k’ or ‘K’ to provide further details of the event(s) in progress.
This hierarchical approach provides for a concise information
lQ
Do ne
S ingle-slope
14 bit ADC
Y line (1 o f 4)
Burst
Control
S ta rt
Y
ele ctrode
CSA
C s (1 of 4)
CSB
R s (1 of 4)
SM P
7
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
interference in extreme cases. Such noise can be readily
suppressed by adding a 22pF capacitor from each Y line to
ground near the QT60161B.
which limits the interval during which charge can be accepted
by a Cs capacitor after the rise of an X drive line.
Dwell time has a dramatic effect on the suppression of
moisture films as described in Section 3.10.
3.5 Burst Length & Sensitivity
Cs Charge Integrator capacitor. The Cs capacitors
integrate charge arriving through the matrix keys' Cx
capacitances, correspondent with the rise of X; to do this a
switching arrangement on the Cs control pins permits the
charge to accumulate so that the B side of the Cs capacitors
becomes negative when the A side is clamped to ground.
See also Command ^F, page 21
The signal gain in volts / pF of Cx for each key is controlled
by circuit parameters as well as the burst length.
The burst length is simply the number of times the
charge-transfer (‘QT’) process is performed on a given key.
Each QT process is simply the pulsing of an X line once, with
a corresponding Y line gated so as to capture the resulting
charge passed through the key’s capacitance Cx.
Charge conversion. At the end of each burst the voltage on
Cs is converted to digital by means of a single-slope
conversion process, using one of the external resistors to
ramp up the capacitor towards a reference voltage. The
elapsed time required to reach the comparison voltage is the
digital result. The time required to perform the conversion
depends on Cs, Cx, Rs, Aref, and the burst length.
QT60161B devices use a finite number of QT cycles which
are executed in a short burst. There can be from 1 to 64 QT
cycles in a burst, in accordance with the list of permissible
values shown on page 21. If a key's burst length is set to
zero, that burst is disabled but its time slot in the scanning
sequence of all keys is preserved so as to maintain scan
timing.
3.3 'X' Electrode Drives
The 'X' lines are directly connected to the matrix without
buffering. The positive edges of these signals are used to
create the transient field flows used to scan the keys. Only
one X line is actively driving the matrix for scanning purposes
at a time, and it will pulse repetitively for a ‘burst length’ for
each key as determined by the 'Burst Length' Setups
parameter (see command ^F, page 21 and Section 3.5).
Increasing burst length directly affects key sensitivity. This
occurs because the accumulation of charge on Cs is directly
linked to the burst length. The burst length of each key can be
set individually, allowing for direct digital control over the
signal gains of each key, indivudally.
3.3.1 RFI FROM X LINES
Apparent touch sensitivity is also controlled by the Negative
Threshold setting (Section 2.1). Burst length and negative
threshold interact; normally burst lengths should be kept as
short as possible to limit RF emissions, but the threshold
setting should normally be kept above a setting of 6 to limit
false detections. The detection integrator can also prevent
false detections at the expense of slower reaction times
(Section 2.6).
X drive lines will radiate a small amount of RFI. This can be
attenuated if required by using series resistor in-line with
each X trace; the resistor should be placed near to the
QT60161B. Typical values can range from 100 to 500 ohms.
Excessive amounts of R will cause a counterproductive drop
in signal strength. RC networks can also be used as shown in
Figure 4-6.
The value of Rs also affects sensitivity. Higher values of Rs
will lead to larger values of ADC result and higher conversion
gains. The side effect of this is that the conversion will take
longer and timing conflicts can occur (Section 3.6).
Resistance in the X lines also have the positive effect of
limiting ESD discharge currents (Section 3.18).
3.3.2 NOISE COUPLING INTO X LINES
External noise, sometimes caused by ground bounce due to
injected line noise, can couple into the X lines and cause
signal interference in extreme cases. Such noise can be
readily suppressed by the use of series resistors as
described above. Adding a small capacitor to the matrix line
on the QT60161B side of the R, for example 100pF to ground
near the QT60161B, will greatly help to reduce such effects.
Cs does not significantly affect gain. Smaller values of Cs will
have higher delta signal voltages but this gain increase is
offset by the decrease in gain caused by a steeper ADC
conversion slope. However smaller values of Cs lead to faster
conversion times for a given value of Rs, which in turn allows
for more relaxed burst timings. Smaller values of Cs also
reduce the dynamic range of the system, meaning that the
acquisition becomes less tolerant of high values of Cx, due to
earlier saturation of the voltage across Cs.
3.4 'Y' Gate Drives
There are 4 'Y' gate drive pairs (CS0A,B..CS3A,B); only one
pair of these lines is used during a burst for a particular key.
The magnitude of the voltages accumulated on the Cs
capacitors should never exceed 0.25V.
3.6 Burst Acquisition Duration
The total time required to acquire a key's signal depends on
the burst length for that key plus the time required to convert
the voltage on the corresponding Cs capacitor to digital. The
conversion is performed via a single-slope ADC process
using one of the external Rs resistors.
3.4.1 RFI FROM Y LINES
Y lines are nearly 'virtual grounds' and are negligible radiators
of RFI; in fact, they act as ‘sinks’ for RFI emitted by the X
lines. Resistors are not required in the Y lines for RFI
suppression, and in fact can introduce cross-talk among keys
if large enough. However, small resistance values can be
beneficial to limit ESD transients and make the circuit more
resistant to external RF fields (Section 3.18).
If the total time required for the acquisition, i.e. the burst
length plus ADC times plus the signal processing and serial
interface command handler times exceed the burst spacing
setup parameter (Section 3.8), significant timing errors and
communications problems can occur.
3.4.2 NOISE COUPLING INTO Y LINES
The time taken by the burst itself is straightforward to
quantify, but the time required to do the ADC step is not. The
ADC step depends on the value of Vref (pin 42), Cs, Rs, and
External noise, sometimes caused by ground bounce due to
power line noise, can couple into the Y lines and cause signal
lQ
8
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
(Section 3.18), a short dwell time can seriously affect signal
gain.
Cx. Therefore it is vital that the circuit be checked with an
oscilloscope to make sure that burst spacings are unaffected
during normal operation.
Mechanical measures can also be used to suppress key
cross-coupling, for example one can use raised plastic
barriers between keys, or placing keys in shallow wells to
lengthen the electrical path from key to key.
3.7 Intra-Burst Spacing
See also Command ^M, page 23
The time between X drive pulses during a burst is the
intra-burst pulse QT spacing. This timing has no noticeable
effect on performance of the circuit, but can have an impact
on the nature of RF spectral emissions from the matrix panel.
The setting of this function can be from 1µs to 10µs, loosely
corresponding to fundamental emission frequencies of from
1MHz to 100kHz respectively.
3.11 Reset Input
The RST’ pin can be used to reset the device to simulate a
power down cycle, in order to bring the part up into a known
state should communications with the part be lost. The pin is
active low, and a low pulse lasting at least 10µs must be
applied to this pin to cause a reset.
Longer spacings require more time to execute and can limit
the operational settings of burst length and/or burst spacing
(Section 5.7).
To provide for proper operation during power transitions the
devices have an internal brown-out detector set to 4 volts.
A reset command, ‘r’, is also provided which generates an
equivalent hardware reset (page 25).
The intra-burst QT spacing has no effect on sensitivity or
water film suppression and is not particularly important to the
sensing function other than described above.
3.12 Oscillator
The oscillator can use either a quartz crystal or a ceramic
resonator. In either case, the XTI and XTO must both be
loaded with 22pF capacitors to ground. 3-terminal resonators
having onboard ceramic capacitors are commonly available
and are recommended. An external TTL-compatible
frequency source can also be connected to XTI; XTO should
be left unconnected.
3.8 Burst Spacing
See also Command ^G, page 22
The interval of time from the start of one burst to the start of
the next is known as the burst spacing. This is an alterable
parameter which affects all keys.
Shorter spacings result in faster response time, but due to
The frequency of oscillation should be 12MHz +/-2%.
increasing timing restrictions at shorter spacings burst
lengths or the conversion resolution may be restricted,
limiting the amount of gain that can be obtained; see Sections 3.13 Startup / Calibration Times
The QT60161B requires initialization times as follows:
3.6 and 5.7. Conversely longer spacings permit higher burst
lengths but slow down response time.
1. From very first powerup to ability to communicate:
2,000ms (One time event to initialize all of eeprom)
Three settings of burst spacing are possible: 500µs, 1ms, and
2ms.
2. Normal cold start to ability to communicate:
70ms (Normal initialization from any reset)
3.9 Sample Capacitors
3. Calibration time per key vs. burst spacings:
spacing = 500µs: 100ms
spacing = 1ms:
150ms
spacing = 2ms:
300ms
Charge sampler capacitors Cs should be either ceramic NPO,
X7R 5%, or PPS film for stability reasons.
The values of capacitance should not be altered from that
shown in the schematic of Figure 3-2 without good reason.
To the above, add 2,000ms or 70ms from (1) or (2) for
the total elapsed time from reset to ability to report key
detections.
Changes in Cs have only a limited effect on signal gain.
Keys that cannot calibrate for some reason require 5
calibration cycles before they report as errors. However, the
device can report back during this interval that the key(s)
affected are still in calibration via status function bits.
3.10 Water Film Suppression
Water films on the user surface can cause problems with
false detection under certain conditions. Water films on their
own will not normally cause false detections. The most
common problem occurs when surface water bridges over 2
or more keys, and a user touches one of the keys and the
water film causing an adjacent key to also trigger. Essentially,
the water film transports the touch contact to adjacent keys.
3.14 Sleep_Wake / Noise Sync Pin (WS)
The Sleep_wake and Noise sync features use input pin WS.
The Sleep and Sync features can be used simultaneously;
The circuit suppresses water coupling by having a short dwell the part can be put into Sleep mode, but awakened by a
time, equal to one oscillator period or 83ns. A short dwell time noise sync signal which is gated in at the time desired.
reduces the amount of charge collected via resistive water
Sleep mode: See also command ‘Z’, page 25. The device
films, i.e. it suppresses charge from areas adjacent to the
can be put into an ultra low-power sleep mode using the ‘Z’
scanned key. This effect has nothing to do with the frequency command. When this command is received, the WS pin must
of the burst itself.
be placed immediately thereafter into a logic-high state. The
part will complete an ongoing burst before entering Sleep.
Very short dwell times can cause excess suppression of
The part can be awakened by a low transition on the WS pin
human touch as well. If series resistors are used in line with
lasting at least 5µs. One convenient way to wake the part is
the X and Y matrix lines for noise and ESD suppression
to connect WS to MOSI, and have the host send a null
lQ
9
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
Figure 3-2 Recommended Circuit Diagram
Noise sync: See also command ^W,
page 26. External fields can cause
interference leading to false
detections or sensitivity shifts. The
strongest external fields usually
come from AC power. RF noise
sources are heavily suppressed by
the low impedance nature of the QT
circuitry itself.
External noise only becomes a
problem if the noise is uncorrelated
with signal sampling; uncorrelated
noise can cause aliasing and beat
effects in the key signals. To
suppress this problem the devices
feature a noise sync input which
allows bursts to synchronize to the
noise source. This same input can
also be used to wake the part from a
low-power Sleep state.
The device’s bursts can be
synchronized to an external source
of repetitive electrical signal, such as
50Hz or 60Hz, or possibly a video
display vertical sync line, using the
Sleep_wake / Noise sync line. The
noise sync operating mode is set by
command ^W. This feature allows
dominant external noise signals to
be heavily suppressed, since the
system and the noise become
synchronized and no longer beat or
alias with respect to each other. The
sync occurs only at the burst for key
0 (X0Y0); the device waits for the
sync signal for up to 100ms after the
end of a preceding full matrix scan
(after key #15), then when a negative
sync edge is received, the matrix is
scanned in its entirety again.
The sync signal drive should be a
buffered logic signal, or perhaps a
diode-clamped signal, but never a
raw AC signal from the mains.
Since Noise sync is highly effective
yet simple and inexpensive to implement, it is strongly
advised to take advantage of it anywhere there is a possibility
of encountering electric fields. Quantum’s QmBtn software
can show signal noise caused by nearby AC electric fields
and will hence assist in determining the need to make use of
this feature.
command to the device. The part will wake and the null
command will not be processed. The MOSI line in turn
requires a pullup resistor to prevent the line from floating low
and causing an unintentional wake from sleep.
During Sleep the oscillator is shut down, and the part
hibernates with microamp levels of current drain. When the
part wakes, the part resumes normal functionality from the
point where it left off. It will not recalibrate keys or engage in
other unwarranted behavior.
Just before going to sleep the part will respond with a
response of 'Z'. In slave-only SPI mode (see Section 4.3), the
SS line must be floated high by the host as soon as it
receives this response; if SS does not float high, sleep will fail
and the device will instead completely reset after about 2
seconds. Upon waking the part will issue another 'Z' byte
back to the host.
lQ
If the sync feature is enabled but no sync signal exists, the
sensor will continue to operate but with a delay of 100ms
from the end of one scan to the start of the next, and hence
will have a slow response time.
3.15 LED / Alert Output
Pin 40 is designed to drive a low-current LED, 5mA
maximum, in an active-low configuration. Higher currents can
cause significant level shifts on the die and are not advised.
The LED will glow brightly (i.e. pin 40 will be solid low) during
calibration of one or more keys, for example at startup. When
a key is detected, the LED will pulse low for the duration of
10
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
the burst during which the key is being sensed, i.e. with a
very low duty cycle. Each additional key being detected will
also create a low pulse for that key’s burst. During all other
times, the LED pin will be off (high).
3.18 ESD / Noise Considerations
This line also pulls low if there is a key error of any kind.
The X lines are not usually at risk during operation, since they
are low-resistance output drives. Diode clamps can be used
on the X and Y matrix lines if desired. The diodes should be
high speed / high current types such as BAV99 dual diodes,
connected from Vdd to Vss with the diode junction connected
to the matrix pin. Diode arrays can also be used.
In general the QT60161B will be well protected from static
discharge during use by the overlying panel. However, even
with a dielectric panel transients currents can still flow into
This pin can be used to alert the host that there is key activity, scan lines via induction or in extreme cases, dielectric
in order to further limit the amount of communication between breakdown. Porous or cracked materials may allow a spark to
the device and the host. The LED / Alert line should ideally be tunnel through the panel. In all cases, testing is required to
reveal any potential problems. The IC has diode protected
connected to an interrupt pin on the host that can detect a
pins which can absorb and protect the device from most
negative edge, following which the host can proceed to poll
induced discharges, up to 5mA.
the device for keys.
Note that in sleep mode if the LED was on prior to sleep, it
will remain on during sleep.
3.16 Oscilloscope Sync
See also Command ^R, page 26
The ‘SO’ pin can output an oscilloscope sync signal which is
a positive pulse that brackets the burst of a selected key. This
feature is controlled by the ^R command. More than one burst
can output a sync pulse, for example if the scope of the
command when set is a row or column, or is all keys. The ^R
command is volatile and does not survive a reset or power
down.
This feature is invaluable for diagnostics; without it, observing
signals clearly on an oscilloscope for a particular burst is
nearly impossible.
This function is supported in QmBtn PC software via a
checkbox.
3.17 Power Supply & PCB Layout
Vdd should be 5.0 volts +/- 5%. This can be provided by a
common 78L05 3-terminal regulator. LDO type regulators are
often fine but can suffer from poor transient load response
which may cause erratic signal behavior.
If the power supply is shared with another electronic system,
care should be taken to assure that the supply is free of
low-level spikes, sags, and surges which can adversely affect
the circuit. The devices can track slow changes in Vcc
depending on the settings of drift compensation, but signals
can be adversely affected by rapid voltage steps and impulse
noise on the supply rail.
Supply bypass capacitors of 0.1uF to a ground plane should
be used near every supply pin of every active component in
the circuit.
PCB layout: The PCB layout should incorporate a ground
plane under the entire circuit; this is easily possible with a
2-layer design. The ground plane should be broken up as
little as possible. Internal nodes of the circuit can be quite
sensitive to external noise and the circuit should be kept
away from stray magnetic and electric fields, for example
those emanating from mains power components such as
transformers and power capacitors. If proximity to such
components is unavoidable, an electrostatic shield may be
required.
The use of the Sync feature (Section 3.14) can be invaluable
in reducing these types of noise sources, but only up to a
point.
lQ
Capacitors placed on the X and Y matrix lines can also help
to a limited degree by absorbing ESD transients and lowering
induced voltages. Values up to 100pF on the X lines and
22pF on the Y lines can be used.
The circuit can be further protected by inserting series
resistors into the X and/or Y lines to limit peak transient
current. RC networks as shown in Figures 4-6 and 4-7 can
provide enhanced protection against ESD while also limiting
the effects of external EMI should this be a problem.
External field interference can occur in some cases; these
problems are highly dependent on the interfering frequency
and the manner of coupling into the circuit. PCB layout
(Section 3.17) and external wiring should be carefully
designed to reduce the probability of these effects occurring.
SPI / UART data noise: In some applications it is necessary
to have the host MCU at a distance from the sensor, perhaps
with the interface coupled via ribbon cable. The SPI link is
particularly vulnerable to noise injection on these lines;
corrupted or false commands can be induced from transients
on the power supply or ground wiring. Bypass capacitors and
series resistors can be used to prevent these effects as
shown in Figures 4-6 and 4-7.
4 Communications Interfaces
The QT60161B uses parallel, UART, and SPI interfaces to
communicate with a host MCU. The serial interfaces use a
protocol described in Section 5. Only one interface can be
used at a time; the interface type is selected by
resistor-coupled jumpers connected to pins X0OPA (pin 13)
and X0OPB (pin 14) shown in Table 4-1. See also Figure 3-2.
Further specific information on each interface type is
contained in the following sections:
SPI Slave-Only Mode:
SPI Master-Slave Mode:
UART Interface:
Parallel Interface:
Section 4.3
Section 4.4
Section 4.5
Section 4.7
4.1 Serial Protocol Overview
The SPI and UART interface protocols are based entirely on
polled data transmission, that is, the part will not send data to
the host of its own volition but will do so only in response to
specific commands from a host.
11
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
just before and during reception of data from the host. It
must not go high again until the SCK line has returned low;
during data or echo response it must not go high until after
the host has sensed that DRDY’ has gone high from the
device. This pin must idle high. The SS’ pin has an internal
pullup resistor inside.
Run-time data responses, such as key detection or error
information, requires simple single-byte functions to evoke a
response from the part.
Setup mode interactions mostly use 2-byte functions from the
host to cause the part to alter its behavior; these functions
also cause writes to the internal eeprom.
DRDY’ - Data Ready - active-low - indicates to the host that
the part is ready to send data back subsequent to a
command from the host. This pin idles high. The DRDY’
pin has an internal pullup resistor inside.
The concept of 'scope' is used to allow functions to operate
on individual keys or groupings of keys. The scope of
subsequent functions can be altered by short initial scope
instructions.
Internal pullup resistors note: The internal pullup resistors
can range from 35k to 120k ohms. If RC filtering is used on
the SPI lines per Figure 4-6, this resistance may not be low
enough to ensure adequate signal risetime and may need to
be augmented with external 10k pullups.
See Section 5 for protocol details.
4.2 SPI Port Specifications
The part has an SPI synchronous serial interface with the
following specifications at 12MHz oscillator frequency:
Max clock rate, Fck
Data length
Host command space, Tcm
Response delay to host, Tdr1
Drdy delay from response, Tdr2
Multi-byte return spacing, Tdr3
The host must wait until DRDY’ goes low before an SPI
transfer to retrieve data. For multi-byte responses, the host
must observe DRDY' to see when it goes high again after
each data byte, then low again, before executing another
transfer to get the next data byte. The host should send null
bytes (0x00) to retrieve data.
3MHz
8 bits
m 50µs
Table 4-1, also, Sec. 6
1µs to 1ms
10µs to 2ms
The host can clock the SPI with the part in Slave mode at any
rate up to and including the maximum clock rate Fck. The
maximum clock rate of the part in Master mode is determined
by Setup ^Q (page 25).
The part can operate in either master-slave mode or
slave-only mode, and is thus compatible with virtually all
SPI-capable microcontrollers.
The SPI interface should not be used over long distances due
to problems with signal ringing and introduced noise etc.
unless suitably buffered or filtered with RC networks as
shown in Figures 4-6 and 4-7. Slower data rates with longer
RC timeconstants will provide enhanced resistance to noise
and ringing problems.
If the DRDY’ line does not go low after a command, the
command was not properly received or it was inappropriate.
The delay to DRDY’ low depends on the command and how
many bytes of data are being stored into eeprom; Table 4-1
shows the maximum delays encountered in most cases.
Absolute worst case delays are found in Section 6-5; these
timings occur only rarely, for example if the device happens
to be busy with adjacent key suppression calculations, which
occurs only at the moment when a key is first detected.
A typical Slave-only function sequence is as follows:
1) The host pulls SS’ low, then transfers a command to the
sensor. The host then releases SS’ to float high. DRDY’ is
unaffected in this step.
2) For 2-byte functions, (1) is repeated with a m50us delay.
3) When the sensor has the command echo or requested
data ready to send back to the host, it loads it into its SPI
register and pulls DRDY’ low.
4.3 SPI Slave-Only Mode
Refer to Figures 4-1, 4-3 and 4-2. In Slave-only mode the
host must always be in Master mode, as it controls all SPI
activity including the clocking of the interface in both
directions. Unlike hardware SPI slaves, the QT60161B needs
processing time to respond to functions. DRDY’ is used to let
the host know when data is ready for collection; it indicates to
the host when data is ready in response to a command so
that the host can clock over the data.
4) The host detects that the sensor has pulled DRDY’ low
and in turn the host pulls SS’ low.
5) The host obtains the byte from the sensor by transmitting
a dummy byte (0x00) to the sensor.
6) The sensor releases DRDY’ to float high.
This mode requires 5 signals to operate:
7) After the host detects that DRDY' has floated high the
host must allow SS’ to also float high.
MOSI - Master out / Slave in data pin; used as an input for
data from the host at all times. This pin should be
connected to the MOSI pin of the host device.
MISO - Master in / Slave out data pin; used as an output for
data to the host at all times. This pin should be connected
to the MISO pin of the host device.
SCK - SPI clock - input only clock pin from host. The host
must shift out data on the falling edge of SCK; the
QT60161B clocks data in on the rising edge of SCK.
Important note: SCK must idle low just before and after
SS’ transitions either up or down, or the transmission will
fail; between bytes SCK should idle low.
SS’ - Slave select - input only; this pin acts as a framing
signal to the sensor from the host. This line must go low
lQ
8) For multi-byte responses, steps (3) through (7) are
repeated until the return data is completely sent.
Note that the host must release the SS’ line in step (7) even
between multiple byte responses because the QT60161B
waits for the SS’ line to return high before signalling that the
next byte is ready for collection.
Note also that the host should check the DRDY’ line and wait
for it to go high before transmitting another byte. Until the
DRDY’ line is released the sensor is still processing a data
return, even if the complete response data has been fully
transferred; the sensor may still be busy when the host
finishes the byte transfer and may not be able to digest a new
command immediately.
12
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
See Section 3.15, page 10, for a description of the Alert pin
which can be used to reduce communication traffic.
Figure 4-1 Communications Option Jumpers
Opt A
4.4 SPI Master-Slave Mode
L
Refer to Figures 4-1, 4-2, and 4-4. In Master-Slave mode the
host and the sensor take turns being Master, with the host
always leading off in Master mode during an exchange. The
current Master always controls all 3 signal lines. The sensor
takes a variable amount of time to respond to the host,
depending on the nature of the function and its current and
pending tasks. The host, like the sensor, must idle in slave
mode when not sending a command.
Vcc
H
Opt B
H
10K
X0
X1
Internal pullup resistor note: The internal pullup resistor on
SS’ can range from 35k to 120k ohms. If RC filtering is used
on the SPI lines per Figure 4-7, this pullup resistance may not
be low enough to ensure adequate signal risetime and may
need to be augmented with external 10k pullups.
To Matrix
14
X0OPB (Pin 14)
Interface Type
Low
Low
High
High
Low
High
Low
High
SPI, Slave only
UART
SPI, Master/Slave
Parallel
2) The host pulls SS’ low, then transfers one byte of
command to the sensor via MOSI, then releases SS’ to
float high again.
SCK - SPI clock - bidirectional - an input pin when receiving
data; an output pin when sending. The host must shift out
data on the falling edge of SCK; the QT60161B clocks data
in on the rising edge of SCK. Important note: SCK from
the host must be low before asserting SS’ low or high at
either end of a byte or the transmission will fail. SCK
should idle low; if in doubt, a 10K pulldown resistor should
be used. When the sensor returns data it becomes the
Master; data is shifted out by it on the falling edge of SCK
and should be clocked in by the host on the rising edge.
SS’ - Slave select - bidirectional framing control. When the
sensor is in slave mode, this pin accepts the SS’ control
signal from the host. In either data direction, SS' must go
low before and any during data transfer; it should not go
high again until SCK has returned low at the end of a byte.
In Master mode the sensor asserts control over this line, to
make the host a slave and to frame the data. This line
must idle high; the part includes an internal pullup resistor
and should be floated during idle times.
13
X0OPA (Pin 13)
Master/Slave requires 3 signals to operate:
MOSI - Master out / Slave in data pin - bidirectional - an input
pin while the host is transmitting data; an output when the
sensor is transmitting data. The MOSI of the host and
slave should be tied together. The MISO lines are not used
on either part and should be left open.
L
10K
3) For 2-byte functions, (2) is repeated with m50us spacings
between bytes.
4) The host immediately places its SPI port into Slave mode,
floating SCK and MOSI’; SS’ stays floating.
5) When the sensor has a command echo or data to send
back, it puts its SPI register in Master mode, taking control
over MOSI and SCK. SS' remains floating.
6) The sensor pulls SS’ low, then clocks out its response
byte to the host, then floats SS’ high again.
7) The sensor repeats (6) as necessary for multiple byte
responses.
8) The sensor returns to slave mode.
After the transmission sequence, the SPI lines float high or
are left to float in an indeterminate state (MOSI) until the next
transmission sequence is initiated by the host. The host
should wait for >1ms after a sequence before initiating
another transmission sequence.
See Section 3.15, page 10, for a description of the Alert pin
which can be used to reduce communication traffic.
A command may consist of one or two bytes with a m50us
delay between command bytes. At the end of a full command,
the Master must go into Slave mode to await a response from
the sensor.
The sensor may take some time to process the host
command and respond. When it does so, it asserts SS’ low
and begins clocking its data. For multi-byte responses, the
bytes will be sent at intervals which may be somewhat
irregular depending on the request and the processing
load of the sensor. The host must be prepared to accept
the sensor data as it comes or there can be a data
overrun in the host. If the data returns too fast for the host
to accept it, the SPI clock rate should be lowered.
A typical Master-Slave function sequence is as follows:
1) Host enters Master mode. The sensor is already in
Slave mode.
lQ
Figure 4-2 SPI Connections
Slave-Only
Host MCU
P_IN
P_OUT
SCK
MISO
MOSI
SS
13
Master-Slave
QT60xx5
DRDY
SS
SCK
MISO
MOSI
Host MCU
SS
SCK
MISO
MOSI
QT60xx5
DRDY
SS
SCK
MISO
MOSI
Vdd
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
Figure 4-3 SPI Slave-Only Mode Timing
Tcm
Tdr3
Tdr2
Tdr1
DRDY
{from sensor}
SS
{from host}
SCK
{from host}
MOSI
{from host}
MISO
{from sensor}
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
Host Command Byte 1
Optional Byte 2
Null Dummy Data
Null Dummy Data
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
Invalid Data
Invalid Data
Response Data or Echo
Nth Response Data
{N = command dependent}
Figure 4-4 SPI Master/Slave Mode Timing
Tdr1
Tcm
Tdr3
SS
SCK
MOSI
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
Command Byte 1
from Host to sensor
Optional Byte 2
from host to sensor
SS, SCK, MOSI originate from Host
7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
Response Byte or Echo
from sensor to host
Floating
Nth Byte from sensor
{N = command dependent}
SS, SCK, MOSI originate from sensor
Figure 4-5 UART Timing
Tcm
RX
{from host}
S 0 1 2 3 4 5 6 7
Tdr1
Tdr3
S 0 1 2 3 4 5 6 7
TX
{from sensor}
S 0 1 2 3 4 5 6 7
Command Byte 1
from host to sensor
Response Byte or Echo
from sensor to host
Optional Byte 2
from host to sensor
4.5 UART Interface
Refer to Figures 4-1 and 4-5.
UART communications requires only 2 wires, TX and RX to
communicate with a host device. All communications must be
S 0 1 2 3 4 5 6 7
Nth Byte from sensor
{N = command dependent}
initiated by the host. The baud rate is determined by Setup
^Q (page 25); the maximum baud rate with a 12MHz oscillator
is 57.6K. UART communications uses the following settings:
Table 4-1 Typical Tdr1 Response Delays (100µs sample ramp)
Burst Spacing
Function Type
Setup - Put (affect 1 key)
Setup - Put (affect 8 keys)
Setup - Put (affect 16 keys)
Lock reference Level (L)
Calibrate command (all keys)
Get key errors (E)
Get keys pushed (K)
All other commands
lQ
500µs
10ms
20ms
65ms
65ms
500µs
450µs
350µs
350µs
14
1ms
10ms
20ms
65ms
65ms
500µs
450µs
350µs
350µs
2ms
10ms
20ms
65ms
65ms
500µs
450µs
350µs
350µs
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
Baud rate
Data length
Parity
Stop bits
Host command space, Tcm
Response delay to host, Tdr1
Multi-byte return spacing, Tdr3
9,600 - 57,600
8 bits
None
1
m 50µs
Table 4-1,
also, Sec. 6
10µs to 2ms
The host should not transmit a new command until the
last command has been processed and responded to
completion, plus 1ms.
Commands that are not recognized are ignored, and the host
should monitor for timeouts to detect these conditions. If this
occurs a new command should not be sent until the specified
timeout condition has expired.
The maximum timings shown in Table 4-1 and Section 6-5
are guaranteed provided that the part is operating within its
burst timing limitations described in Section 5.7. If the burst
timing is in violation, the response time to a command may
take considerably longer.
The actual baud rate is determined by Setup ^Q (page 25).
A UART command may consist of one or two bytes with a
m50us delay between command bytes. At the end of a full
command, the host must await a response from the sensor.
4.7 Parallel Scan Port
The sensor may take some time to process the host
The parallel port can be used to directly replace an electrocommand and respond. When it does so, it sends back its
mechanical or membrane keyboard. The port is electrically
data. For multi-byte responses, the bytes will be sent at
equivalent to a 4x4 switch matrix with the exception that the
intervals which may be somewhat irregular depending on the
response to a host scan requires up to 100µs. The XS inputs
request and the processing load of the sensor. The host must
(pins 19..22) are active high; only one XS line should ever be
be prepared to accept the sensor data as it comes or there
driven high at a time (except for error scan, noted below); the
can be a data overrun in the host. If the data returns
too quickly for the host to accept it, the baud rate
Figure 4-6 Filtering; SPI Slave-Only Connections
should be lowered.
+5
A typical UART communication sequence is as follows:
1) Host sends a byte to the sensor.
2) For 2-byte functions, a m50us delay is inserted by
the host and then the second byte is sent.
3) If the sensor has a command echo or data to send
back, it does so. The delay from step 2 to step 3 is
shown in Table 4-1. The delay between successive
response bytes (if they occur) is parameter Tdr3
noted above.
Xn
220
47pF
X drives
(1 of 4
shown)
DRDY
MISO
100
4) The sensor repeats (3) as necessary for multiple
byte responses.
22pF
Y Lines
(1 of 4
shown)
4.6 Sensor Echo and Data Response
The devices respond to each and every valid
command from the host with at least one return byte.
In the case of functions that do not send data back to
the host, the part returns the command itself as an
echo, but only after the function has been processed to
completion; this also holds for 2-byte functions where
the second byte is an operand: in these cases the
return byte is an echo of the command, not the
operand.
P_OUT1
Ca
SCK
Ra
Ca
Ra
MISO
Ca
MOSI
Ra
Ca
RESET
1K
1nF
P_OUT2
(MS not
shown)
Figure 4-7 Filtering; SPI Master-Slave Connections
+5
QT60161 Circuit
Xn
220
47pF
X drives
(1 of 4
shown)
SS
Y Lines
(1 of 4
shown)
100
22pF
SS
Ra
Ca
Ca
Ra
Ca
MISO
Yn
Host MCU
10K
DRDY
SCK
MOSI
SCK
Ca
MISO
MOSI
Ra
Ca
RESET
One important exception to this is the recalibration
command ‘b’ which returns an acknowledgment
immediately rather than prior to the actual
recalibration.
Ca
1K
1nF
P_OUT
(MS not
shown)
Recommended Values of Ra & Ca for Figures 4-6 and 4-7
Commands that return data do not send back a
command echo. If desired, the command byte can be
verified via the 'l' (lowercase L) function; see page 25.
lQ
P_IN
Ca
Ra
MOSI
5) The sensor waits for the next command.
The host should wait for >1ms after a sequence before
initiating another transmission sequence to be sure
that the sensor has completed any residual activities
from the prior command. Commands that are sent to
the host prematurely will be ignored.
Host MCU
10K
Ra
SS
SCK
Yn
+5
10K
QT60161 Circuit
15
SPI Clock Rate
Ra
Ca
3MHz
750kHz
187.5kHz
93.75kHz
680
1,000
1,000
2,200
47pF
120pF
270pF
470pF
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
eeprom. As intentional writes in Put mode should only occur
during manufacture, it is normally safe to assume that
eeprom changes during normal run mode are errors.
output response is found on the YS lines (pins 23..26), and
these are also active high. The bit pattern found on the YS
lines indicates any keys that are touched; like a real matrix,
the device can set multiple bits on the YS lines.
The host should scan to individual lines XS0..XS3. XS0 maps
to matrix drive line X0 (pin 13). The response on YS0 maps to
matrix line Y0. Thus, the scan port logic exactly mimics the
wiring and scanning of the matrix keys.
The parallel scan port operates on a continuous basis, but is
slower to react when either serial port is in operation. If either
serial port is operational, the scan port updates with every
acquisition burst, i.e. 16 times during a complete scan of the
matrix.
The host can also periodically test the checksum of the
eeprom as a backup mechanism to the bit 4 error flag.
The uppercase ‘L’ command, Lock Reference Levels, also
writes data to eeprom, and this data also has the potential to
become corrupted. This data is also backed up in Flash so
that it can be recovered, and an error in this data will also set
bit 4 and also alter the checksum. Also, the ‘L’ command only
operates if the device is in Put mode as a further protection.
Flash memory has a limit of 1,000 write cycles, so
copy-to-Flash should not be used often.
For a full-time higher speed scan port response, it should be
enabled as the sole interface via the option jumper settings
shown in Figure 4-1. The port itself is found on pins 19
through 26 (Figure 3-2). In this dedicated mode, the scan port
outputs within 100µs of receiving a scan input from the host.
Error scan: The host can extract error information from the
scan port by setting all XS lines to logical '1' simultaneously.
The part then returns a high level on any YS lines
corresponding to Y matrix lines having key errors. Thus a
single YS bit, if high, could indicate errors on any or all of 4
keys. Errors are reported for the following conditions:
a. Key(s) are currently recalibrating
b. Key(s) tried to calibrate 5 times and failed each time
c. Key(s) signal references are under- or over- limit
It is not possible to determine the cause of the error or
specific key(s) in error via the parallel scan port.
4.8 Eeprom Corruption
The device stores its Setup data in an internal eeprom which
can be readily altered via Put mode commands. Sometimes
noise on Vdd, the SPI lines or Reset pin can cause eeprom
corruption which can be difficult or inconvenient to correct.
The device should always be left in Get mode to prevent
spurious commands from corrupting the eeprom. The Get
command should ideally be repeated every second or so to
ensure that if noise on the SPI lines causes a false Put mode
command that it does not last long. Preferably, the ‘l’
command (lowercase ‘L’) should be used to verify that the Put
command has succeeded.
Flash backup: The part backs up the entire eeprom array
into onboard Flash rom after one or more Setup write
commands have been issued and the part is then reset.
During normal operation the part constantly compares the
Flash area with the eeprom array to ensure the two sections
match. If an eeprom error is detected, the device sets an
error flag (bit 4) in the general device status byte (Command
‘7’, page 19) which can be read by the host device. The LED
output also becomes active. If the bit 4 error flag is set, the
host should immediately induce a device reset.
Bit 4 is also set if an intentional write has been made to
eeprom, but not yet copied into Flash via the reset process. It
is perfectly acceptable to continue altering any number of
Setup parameters prior to doing the reset, ignoring this bit.
During power up or after a reset, the device compares the
Flash area with eeprom, and if there is a discrepancy the
eeprom is refreshed from Flash, unless an intentional write
was detected in which case the Flash is updated from the
lQ
16
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
5.1 Put / Get Direction Commands
5 Commands & Functions
Setup commands can be used to either send control
information to the part for programming into its internal
eeprom, or to extract the current setting of this information.
The same Setup function can do either. To accomplish this
the device relies on direction control via the Get and Put
commands. In Get mode, a Setup command will return
information. In Put mode, the behavior of the device is
altered, and often a second operand byte must be sent.
The command structure is designed to minimize control and
data traffic. All repetitive data and status commands from the
host are single-byte, and most commands result in singlebyte device responses. Behavioral setup commands involve
multiple bytes but these are infrequently used.
Special 'scope' commands exist to restrict subsequent
commands to a specific key or range of keys. This control
structure permits most matrix keys, which are usually
identical in shape and size, to be programmed 'in bulk' using
a 'global' scope command, followed by a scope restriction to
specific key(s), followed by more key programming, to
prevent the need for tedious key-by-key programming across
an entire matrix.
The powerup or reset default mode is Get. The current
Get/Put mode persists until countermanded by a different
Get/Put command or until the device is reset or powered off.
It is advisable to use Put mode only when actually writing
Setups to the device, which will happen infrequently; the part
should normally be left in Get mode. Get mode acts as a lock
to prevent accidental changes to the internal eeprom.
There are four types of commands:
Direction - Determine whether subsequent commands are
used to get data from or put data to the part;
Scope - Restrict the range of effect of subsequent
commands to a specific set of keys;
Status - Cause the part to respond with key information,
such as detections, signals, error codes, and the like;
Multiple direction commands of the same type (g, g, g, g ...)
are harmless and can be used to insure that the part does not
accidentally enter Put mode for a prolonged period, for
example due to noise glitches on the SPI lines. The 'g'
command can be repeated every few seconds.
g
Setup - Modify functionality such as burst length, threshold
levels, drift compensation characteristics, etc.
0X67 - GET COMMAND
Put
Get
Supervisory - Special functions such as diagnostics,
calibration, etc. which affect the part as a whole.
Scope
n/a
n/a
Bytes / Cmd
1
n/a
2nd Byte Range
n/a
n/a
Returns
0x67
n/a
All command types can be intermixed. Even during normal
device operation it is possible to use Setup and Supervisory
functions to alter key behavior on the fly. There is no special
'setup mode'.
Lowercase 'G'. The 'g' command causes the device to treat all
subsequent Setup commands as 'Gets'; after, when a Setup
command is received from the host the part will respond by
sending back the current status of that Setup parameter.
Get/Put, Scope, and many Supervisory functions are volatile
and do not persist after a power down or reset cycle. Some
Supervisory commands require that the part be reset in order
for the new settings to take effect.
The 'g' command is always single-byte and echoes back
itself.
p
Note that the Setup functions write to eeprom and require
extra time for a response back to the host. Also note that as
with all eeprom memories there is a recommended lifetime
limit to the number of writes; this limit is 100,000 cycles.
0X70 - PUT COMMAND
Put
Get
Scope
n/a
n/a
Bytes / Cmd
1
n/a
2nd Byte Range
n/a
n/a
Returns
0x70
n/a
Lower case 'p'. The 'p' command causes the device to treat
all subsequent Setup commands as 'Puts'; after, when a
2-byte Setup command is received from the host the part will
respond by programming in the desired parameter for the
key(s) which are affected.
Command functions are summarized in Section 5-6.
It is highly advised to test the device checksum
(command ‘6’, page 18) or individual settings or the
general device status (‘7’) once Setups have been
programmed into the part, each time the part is powered
up and periodically while running.
The 'p' command is always single-byte and echoes back
itself.
The part backs up all eeprom locations into Flash, from
which data is restored automatically following a reset if
eeprom corruption is detected. The part should also be
reset after any Put command(s) in order to force the copy
of eeprom data into Flash. See Section 4.8.
lQ
17
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
5.2 Scope Commands
5.3 Status Commands
The host should always set the scope parameter when
initializing the part during normal operation as well as during
setup. Scope commands are persistent and apply to all
subsequent functions that are affected by scope, until a
different scope command is issued. On powerup or after reset
the device defaults to scope = 'all keys'.
Status commands cause the sensor to report back
information related to keys and their signals.
Many functions only address one key regardless of the
current scope; in these cases the key being addressed is
always the key last set by the ‘s’ or ‘x’ and ‘y’ commands. If
the ‘s’ command was last set to key 9, then even though the
‘S’ command was issued afterwards the one-key scope will
remain key ‘9’. Similarly if ‘x’ was set to 2 and ‘y’ to 3, then
the one-key scope will remain key x=2 / y=3 (key #14). This
rule operates for either Put or Get commands.
It is not necessary to set the part to Get mode with these
commands, although it is advised to leave the part in Get
mode as a normal precaution (see Section 5.1)
0
0X30 - SIGNAL FOR SINGLE KEY
Put
Get
Scope
n/a
1
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
2
Returns
n/a
0..0xFFFF
Numeric '0'. Returns the signal level in 16-bit unsigned binary
for one key whose location is determined by scope. The least
significant byte is returned first.
Key numbering convention: The numbering of keys goes by
Note that the signal direction is inverted: decreasing values
row then column. For example, the key in row X=3, column
correspond to more touch due to the physics of key detection
Y=1 (X3Y1) is key 7. The formula for conversion of an X-Y
described in Section 1.1.
location to a key number is:
key number = X_row + (Y_column x 4)
1
Row and column numbers are per Fig. 1-5. Keys are acquired
in this same burst sequence, i.e. X0Y0, X1Y0, X2Y0 etc.
s
0X73 - SPECIFIC KEY SCOPE
Put
Get
Scope
n/a
n/a
Bytes / Cmd
2
n/a
2nd Byte Range
0x00..0x0F
n/a
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
1
Returns
n/a
0x00..0xFF
Increasing amounts of this value correspond to increasing
amounts of touch as the sign of signal is inverted (see 0x30
above).
Scope
n/a
n/a
Bytes / Cmd
1
n/a
2nd Byte Range
n/a
n/a
Returns
0x53
n/a
2
Scope
n/a
n/a
Bytes / Cmd
2
n/a
2nd Byte Range
0x00..0x03
n/a
Returns
0x78
n/a
5
Lowercase 'X'. Targets keys in a specific row for functions
that can address key groups. The second byte must contain a
row number from 0..3.
0X79 - COLUMN KEYS SCOPE
Put
Get
Scope
n/a
n/a
Bytes / Cmd
2
n/a
2nd Byte Range
0x00..0x03
n/a
Scope
n/a
1
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
2
Returns
n/a
0..0xFFFF
Numeric '2'. Returns the Reference value in unsigned 16-bit
binary for one key whose location is determined by scope.
The least significant byte is returned first.
0X78 - ROW KEYS SCOPE
Put
Get
0X32 - REFERENCE VALUE
Put
Get
Uppercase 'S'. Addresses all keys in the matrix for all further
functions that can target a group of keys.
y
Scope
n/a
1
0X53 - ALL KEYS SCOPE
Put
Get
x
Put
Get
Numeric '1'. Returns the value {Reference - Signal} in
unsigned 8-bit binary for one key whose location is
determined by scope. If Signal > Reference, the result is
truncated to zero. The return value is also limited to 255
(0xFF).
Returns
0x73
n/a
Lowercase 'S'. Targets a specific individual key for all further
functions that are affected by scope. The second byte must
contain a binary key number from 0..15.
S
0X31 - DELTA SIGNAL FOR SINGLE KEY
Put
Get
Scope
n/a
1
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
1
Returns
n/a
0x00..0xFF
Numeric '5'. Returns the Detection Integrator counter value
for one key whose location is determined by scope. This
function is useful primarily for circuit diagnostics.
Returns
0x79
n/a
6
Lowercase 'Y'. Targets keys in a specific column for functions
that can address key groups. The second byte is a binary
column number from 0..3.
0X35 - DETECTION INTEGRATOR COUNTS
0X36 - EEPROM CHECKSUM
Put
Get
Scope
n/a
n/a
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
1
Returns
n/a
0x00..0xFF
Numeric '6'. Returns the entire eeprom checksum. This
function is useful primarily for diagnostics and should
periodically be used to check for valid eeprom contents.
The checksum should be computed when the entire device's
settings, including the locked reference levels ('L' command)
are known. The host can then periodically test the checksum
to validate eeprom integrity. If needed, the eeprom can then
lQ
18
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
be reprogrammed by the host or the device can be reset to
allow the eeprom to be updated from Flash memory (see
Section 4.8).
"
The checksum is a simple 8-bit carry fold-back type. Changes
to multiple Setups can generate identical checksums.
Changes to one location only will always produce a different
checksum. An identical change to 2, 4, 8, or all 16 keys is
more prone to generating an identical checksum. A unique
checksum can be obtained again by altering any Setup for
another key (i.e. an unused key) to be different.
Put
Get
%
0X37 - GENERAL DEVICE STATUS
Put
Get
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
1
# Bytes Rtnd
n/a
8 or 32
Returns
n/a
0..0xFFFF
Scope
n/a
4, 16
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
4 or 16
Returns
n/a
0x00..0xFF
Percent character. Same function as 0x35 above except
returns a group response of 4 bytes (Scope = row or column)
or 16 bytes (Scope = 'All keys'). If no group scope has been
selected, returns data for all 16 keys.
There is no put version of the command.
Scope
n/a
n/a
Bytes / Cmd
n/a
1
0X25 - DETECT INTEGRATOR COUNTS FOR GROUP
Put
Get
Note that the status byte returned by the ‘7’ command
contains a bit that is set if there is an error in eeprom data;
this feature operates independently of the checksum
command.
Scope
n/a
4, 16
Double quote character. Same function as 0x32 above except
returns a group response for 4 or 16 keys depending on
scope. If no group scope has been selected, returns data for
all 16 keys (32 bytes).
After any Setups change, the checksum will not be valid until
after the device has been reset.
7
0X22 - REFERENCE LEVELS FOR GROUP
e
Returns
n/a
0x00..0x1F
0X65 - ERROR CODE FOR SELECTED KEY
Put
Get
Scope
n/a
1
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
1
Returns
n/a
0x00..0x0F
Section 2.11, p. 7
Section 2.11, p. 7
Numeric '7'. Returns the part's general status byte which is a
4-bit pattern as follows:
Lowercase 'E'. Returns the error byte for a selected key
defined by the 's' command. A 4-bit pattern is returned:
Bit 0:
Bit 1:
Bit 2:
Bit 3:
1= one or more keys are in detection
1= one or more keys are recalibrating
1= one or more keys are reporting errors
1= sync fail; the part is not synchronized to an
external source (if in that mode; see Section 3.14).
Bit 4: 1 = Eeprom / Flash contents discrepancy
b7
u
F:
R:
H:
L:
u:
Higher bits report as 0's and are not used.
This command can be used as a general 1-byte status
response; if one or more bits are set, the host can take
further relevant action to narrow down the specific issue, such
as which key is being touched or in error, via other
commands.
Scope
n/a
4, 16
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
8 or 32
Returns
n/a
0..0xFFFF
b4
u
b3
L
b2
H
b1
R
b0
F
1= failed last full recalibration attempt
1= key is in process of full recalibration
1= key reference is high (above normal bounds)
1= key reference is low (below normal bounds)
undefined
Refer also to Section 2.10.
F, Bit 0 is set if it failed to calibrate properly during a forced
recalibration. The sensor will automatically make 5 sequential
attempts at recalibration before setting this flag.
H, Bit 2 when set indicates that the key's reference level has
exceeded the upper boundary described in Section 2.8 and
as defined by Command ^N (page 23).
Space character. Same function as 0x30 above except
returns a group response for 4 keys (if Scope = row or
column) or 16 keys (if Scope = 'all keys'). If no group scope
has been selected, returns data for all keys (32 bytes).
L, Bit 3 when set indicates that the key's reference level falls
below the lower boundary described in Section 2.8 and as
defined by Command ^O (page 23).
Two bytes are returned for each key; the least significant byte
is always returned first.
!
b5
u
R, Bit 1 is set if the key is in the process of a full
recalibration. When bit 1 is set, bits 2 and 3 are cleared.
<SP> 0X20 - SIGNAL LEVELS FOR GROUP
Put
Get
b6
u
If either H or L are set, it means that the key is probably
defective.
0X21 - DELTA SIGNALS FOR GROUP
Put
Get
Scope
n/a
4, 16
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
4 or 16
Returns
n/a
0x00..0xFF
Exclamation character. Same function as 0x31 above except
returns a group response for 4 or 16 keys depending on
scope. If no group scope has been selected, returns data for
all 16 keys (16 bytes). The values returned are limited to the
range 0..255.
lQ
19
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
E
0X45 - ERROR CODES FOR GROUP
Scope
n/a
1, 4, 16
Put
Get
Bytes / Cmd
n/a
1
K
# Bytes Rtnd
n/a
1 or 4
Returns
n/a
0x00..0xFF
0x4B - Key Touch Reporting for Group
Scope
Bytes / Cmd # Bytes Rtnd
Put
n/a
n/a
n/a
Get
1, 4, 16
1
1 or 4
Returns
n/a
0x00..0xFF
Section 2.11, p. 7
Section 2.11, p. 7
Uppercase 'E'. Returns general error codes for a range of
keys defined by scope. Returns either 1 or 4 bytes depending
on whether a single key, row, column, or entire matrix are
selected.
Uppercase 'K'. Returns 1 or 4 bytes depending on the current
scope. The byte(s) returned contain a bit pattern which
indicates touched keys. A scope of a single key, a row or a
column will return one byte. A scope of all keys will return 4
bytes.
The bitfields for single key scope are the same as for 'e'
above.
The bitfields for a single key are:
b7
-
The bitfields for a single row (X) are:
b7
-
b6
-
b5
-
b4
-
b3
Y3
b2
Y2
b1
Y1
b0
Y0
b6
-
b5
-
b4
-
b3
X3
b2
X2
b1
X1
b7
-
b0
X0
b7
-
b6
-
b5
-
b4
-
byte2
-
-
-
-
byte3
-
-
-
-
byte4
-
-
-
-
b3
b2
b1
b0
X3Y0
3
X3Y1
7
X3Y2
11
X3Y3
15
X2Y0
2
X2Y1
6
X2Y2
10
X2Y3
14
X1Y0
1
X1Y1
5
X1Y2
9
X1Y3
13
X0Y0
0
X0Y1
4
X0Y2
8
X0Y3
12
b7
-
b3
-
b2
-
b1
-
b0
key
b6
-
b5
-
b4
-
b3
Y3
b2
Y2
b1
Y1
b0
Y0
b6
-
b5
-
b4
-
b3
X3
b2
X2
b1
X1
b0
X0
The bitfields for a global report are:
Byte 1 is the first returned byte in the sequence.
In all the above examples a '1' in a bit position indicates that
there is some type of error associated with the key. The use
of the 'e' command (or 'E' with scope set to a specific key) will
specify the nature of the error.
k
b4
-
The bitfields for a single column (scope is Y) are:
The bitfields for a global response are:
byte1
b5
-
The bitfields for a single row (scope is X) are:
The bitfields for a single column (Y) are:
b7
-
b6
-
byte1
b7
-
b6
-
b5
-
b4
-
byte2
-
-
-
-
byte3
-
-
-
-
byte4
-
-
-
-
b3
b2
b1
b0
X3Y0
3
X3Y1
7
X3Y2
11
X3Y3
15
X2Y0
2
X2Y1
6
X2Y2
10
X2Y3
14
X1Y0
1
X1Y1
5
X1Y2
9
X1Y3
13
X0Y0
0
X0Y1
4
X0Y2
8
X0Y3
12
Byte 1 is the first returned byte in the sequence.
In all the above examples a '1' in a bit position indicates that
the key is touched; a '0' indicates no touch.
0X6B - REPORTING OF FIRST TOUCHED KEY
Put
Get
Scope
n/a
n/a
Bytes / Cmd
n/a
1
#Bytes Rtnd
n/a
1
Returns
n/a
0x00..0xFF
Section 2.11, p. 7
Lowercase 'K'. Returns a byte that indicates which (if any) key
has been touched. The byte is structured as follows:
b7
m
b6
-
b5
-
b4
-
b3
k3
b2
k2
b1
k1
b0
k0
Bits are used as follows:
m - if '1', indicates that yet another key is active
k0..k3 - indicates the key number of a first detected key,
in the range 0..15 (0x00..0x0F).
If a reported key drops out while other keys are active, 'k' will
report one of the other active keys, but there is no rule for
which of the next keys gets reported in k0..k5.
If the byte returned has a value of 255 (0xFF), then no key
has been detected.
lQ
20
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
high, the key will still recover by means of the drift
compensation process, albeit more slowly.
5.4 Setup Commands
Setup functions are those that alter the behavior a key or a
group of keys. The setups are programmed into eeprom
locations in the part and ordinarily do not need to be
reprogrammed once set. However it is possible to change a
setup while the device is in normal operation without
interrupting the sensing function of the part.24
^C 0X03 - NEGATIVE THRESHOLD HYSTERESIS
Put
Get
Setup 'put' commands become effective immediately after the
echo response of the command byte unless otherwise noted;
some setups require that the key(s) being altered be
recalibrated with the 'b' command (page 24) before they take
effect.
Put
Get
Byte 2 Range
0x04..0x40
n/a
Ctrl-C. In Put mode, the command followed by a setting is
programmed into eeprom for all keys only. The value should
be from 0 to 3, representing hysteresis as follows:
0:
1:
2:
3:
^D 0X04 - POSITIVE THRESHOLD HYSTERESIS
1, 4, or 16 keys may be affected. Valid decimal values are:
6
25
7
30
8
35
10
45
12
55
Put
Get
15
64
Values other than the above will be rounded down.
This controls key sensitivity by setting the counts of signal
delta needed to cause a detect. Higher = less sensitive.
Numbers should be 6 or greater under most conditions to
reduce the probability of noise detection. Numbers greater
than 20 indicate that the burst length is probably too high.
This setup interacts with Burst Length (^F).
Put
Get
Byte 2 Range
0x04..0x40
n/a
Put
Get
6
25
7
30
8
35
10
45
12
55
Scope
1, 4, 16
1
Bytes / Cmd
2
1
Byte 2 Range
0x00..0x40
n/a
Returns
0x06
0x00..0x40
Ctrl-F. In Put mode the command sets the burst length of one
or more keys, according to the current scope. Valid decimal
values are:
15
64
Values other than the above will be rounded down.
In Get mode, the command will return a single byte according
to the current scope rules (Section 5.2).
This setup controls the ability of a key to recalibrate quickly
should the signal transition positive quickly, as when a touch
is prolonged enough to cause a recalibration, and when the
key is then 'untouched'. This condition can also be caused by
a foreign object being removed from a key. The value should
normally be set between 6 and 10 counts. If the value is very
lQ
Returns
0x04
0x01..0x03
Section 3.5, p. 8
Returns
0x02
0x04..0x40
Ctrl-B. In Put mode, the command followed by a setting is
programmed into eeprom for the key(s) affected by scope. 1,
4, or 16 keys may be affected. Valid decimal values are:
5
20
Byte 2 Range
0x01..0x03
n/a
Ctrl-D. Identical in operation to ^C above except this applies
to positive 'detections' used to recalibrate the sensor (see ^B
above for details). Uses same hysteresis values as ^C above.
Section 2.2, p. 5
4
17
Bytes / Cmd
2
1
^F 0X06 - BURST LENGTH
^B 0X02 - POSITIVE DETECT THRESHOLD
Bytes / Cmd
2
1
Scope
16
16
Section 2.3, p. 5
In Get mode, the command will return a single byte according
to the current scope rules (Section 5.2).
Scope
1, 4, 16
1
50%
25%
12.5%
0% (no hysteresis)
As this parameter is common to all keys, Put and Get
operations send or return only one byte.
Ctrl-A. In Put mode, the command followed by a setting is
programmed into eeprom for the key(s) affected by scope.
5
20
Returns
0x03
0x01..0x03
The percentage is the distance from the threshold level to the
reference level. The hysteresis level is always closer to the
threshold point than to the reference point. 25% is a
reasonable value under most conditions.
Returns
0x01
0x04..0x40
Section 2.1, p. 5
4
17
Byte 2 Range
0x01..0x03
n/a
Values other than the above will be rounded down.
^A 0X01 - NEGATIVE DETECT THRESHOLD
Bytes / Cmd
2
1
Bytes / Cmd
2
1
Section 2.3, p. 5
Setup functions alter the internal eeprom, and this requires a
much longer time to complete than other commands; see
Table 4-1.
Scope
1, 4, 16
1
Scope
16
16
0 1 2 3 4 5 7 10
12 15 20 25 30 40 50 64
Values other than the above will be rounded down.
In Get mode, the command will return a single byte according
to the current scope rules (Section 5.2).
^F sets the length of the acquisition burst on a key by key
basis. This setting is directly proportional to signal gain. This
setup interacts with Negative and Positive Threshold (^A and
^B). Increasing ^F can allow for higher threshold levels and
more robust signals, at the expense of increased radiated
emissions and reduced Cx load capacity.
Special condition: If the value for ^F for a key is set to zero
the burst disabled and the key will not function; the key will
report back with an error code. The timing for the 'phantom
burst' will be preserved so that overall key scan timing will
remain unchanged.
21
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
^G 0X07 - BURST SPACING
Put
Get
Scope
16
16
^I 0X09 - POSITIVE DRIFT COMPENSATION RATE
Bytes / Cmd
2
1
Byte 2 Range
0x00..0x02
n/a
Returns
0x07
0x00..0x02
Put
Get
Scope
1, 4, 16
1
Bytes / Cmd
2
1
Byte 2 Range
0x01..0x64
n/a
Returns
0x09
0x01..0x64
Section 3.8, p. 9
Section 2.4, p. 5
Ctrl-G. In Put mode, sets the spacing between successive
acquire bursts for the entire matrix.
Ctrl-I. Same as ^H above in all respects, except operates
only when the signal is positive with respect to the reference
level, i.e. in an abnormal direction. It is usually desirable to
set this rate much faster than for ^H, i.e. to a lower number.
Valid decimal values are:
The second byte indicates the spacing to be set according to
the following table:
0:
1:
2:
500µs (0.5ms)
1000µs (1ms)
2000µs (2ms)
1
15
2
20
3
25
4
33
6
45
8
60
10
75
12
100
Values higher than 2 will be truncated to 2.
Values other than the above will be rounded down.
Longer delay times equate to slower matrix scanning. At
lower delay times (faster rep rates) there can be conflicts with
long burst lengths and long conversion times which will
prevent proper operation; see also Section 3.6, and Section
5.7.
Values of 4 to 10 (0.4 to 1.0 secs/count) are considered
suitable for most systems.
Positive drift compensation continues to operate even if the
signal has exceeded the positive threshold.
Burst spacing also affects recalibration time; see Section
2.10.
^J 0x0A - NEGATIVE DETECT INTEGRATOR LIMIT
Put
Get
The scope for this function is always 'all keys'.
^H 0X08 - NEGATIVE DRIFT COMPENSATION RATE5
Put
Get
Scope
1, 4, 16
1
Bytes / Cmd
2
1
Byte 2 Range
0x01..0x64
n/a
3
25
4
33
6
45
8
60
10
75
Byte 2 Range
0x00..0xFF
n/a
Returns
0x0A
0x00..0xFF
Ctrl-J. In Put mode, sets the detection integration limit for
one or more keys according to scope.
The unit of measure is a burst, i.e. a setting of 5 means that a
detection must be sensed 5 bursts in sequence. A burst for a
key occurs once every complete matrix scan. The second
byte must be one of the following values (shown in decimal):
Ctrl-H. In Put mode, sets the rate of drift compensation used
during periods of non-detection, in the negative signal
direction. Valid decimal values are:
2
20
Bytes / Cmd
2
1
Section 2.6, p. 6
Returns
0x08
0x01..0x64
Section 2.4, p. 5
1
15
Scope
1, 4, 16
1
0
20
12
100
1
32
2
45
3
60
5
7
10 15
90 123 175 255
Values other than the above will be rounded down.
In Get mode, the command will return a single byte according
to the current scope rules (Section 5.2).
Values other than the above will be rounded down.
These numbers correspond to the amount of drift
compensation applied, in 100ms/count of reference change,
for signals which are negative with respect to the reference
level, i.e. in the same direction as legitimate detections.
Higher numbers equate to slower drift compensation.
Overcompensation (too fast) can result in the suppression of
legitimate detections. Under-compensation can result in
inadequate compensation for rapid environmental changes.
Values of 15 to 45 (1.5 to 4.5 secs/count) are considered
normal under most conditions.
This setup can be used as a noise filter, or as a mechanism
to intentionally slow down key reaction time in order to require
a long user touch.
Special condition: If the value for ^J is set to zero the key is
disabled, but the burst for the key is still generated.
Drift compensation does not occur while the signal has
passed below the negative threshold level or subsequently
remained below the negative hysteresis level.
In Get mode, the command will return a single byte according
to the current scope rules (Section 5.2).
The scope in Put mode can be one key, a row or column, or
all keys.
lQ
22
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
Intra-burst pulse spacing controls the fundamental frequency
of the burst and can have a strong effect on radiated
emissions from the matrix control panel. It can also have an
effect on susceptibility to external EMI if the external fields are
close in periodicity to the burst spacing.
^K 0x0B - POSITIVE RECALIBRATION DELAY
Put
Get
Scope
1, 4, 16
1
Bytes / Cmd
2
1
Byte 2 Range
0x00..0xFF
n/a
Returns
0x0B
0x00..0xFF
Section 2.7, p. 6
^N 0x0E - POSITIVE REFERENCE ERROR BAND
Ctrl-K. In Put mode, sets the delay until recalibration, timed
from when the signal first crosses the positive threshold.
Put
Get
The second byte controls the delay in 100ms increments, and
must be one of the following valid values:
0
20
1
32
2
45
3
60
Special condition: If ^K is set to zero this feature is disabled
and the key will never auto-recalibrate on positive transitions;
however drift compensation will still operate.
Byte 2 Range
0x00..0xFF
n/a
Returns
0x0C
0x00..0xFF
Ctrl-L. In Put mode, sets the delay until recalibration, timed
from when the signal first crosses below the negative
threshold as defined by ^A.2.5
Guardbands can be used to detect circuit faults as well as
extremes of temperature or moisture on the circuitry.
The second byte represents the delay in 100ms increments,
and must be one of the following valid values:
1
32
2
45
3
60
Valid values are from 0 to 255 decimal. The percentage
applied is one tenth the operand's decimal value.
This setup is used to define the limit of possible positive
reference deviation with respect to a factory setting, which is
used in turn to set an error flag for key(s) whose reference
level rises above the designated error band. If for example
this setting is set to 50, and the device is calibrated and
reference levels are locked (see command 'L', Lock
Reference Levels, page 24) into the part by the OEM, then in
the future if the reference level of a key should rise 5% over
its Locked reference level then the key will report back an
error flag via commands 'e' or 'E'.
Section 2.5, p. 6
0
20
Special condition: If the value is set to zero, this feature is
disabled.
5
7
10 15
90 123 175 255
^O 0x0F - NEGATIVE REFERENCE ERROR BAND
Values other than the above will be rounded down. As an
example, a setting of 85 will cause delays of 6 seconds.
Put
Get
In Get mode the function returns a single value only; if scope
is set to row, column, or all, only the value for the lowest
ranking key in the group will be returned.
Bytes / Cmd
2
1
Byte 2 Range
0x01..0x0A
n/a
Bytes / Cmd
2
1
Byte 2 Range
0x00..0xFF
n/a
Returns
0x0F
0x00..0xFF
Ctrl-O. In Put mode, sets the amount of tolerable negative
deviation in the reference level for all keys, in tenths of a
percent, with regard to the 'locked' reference value for each
key. The setup is global in nature and affects all keys equally.
Valid values are from 0 to 255 decimal. The percentage
applied is equal to the decimal value divided by 10, thus, a
value of 20 equates to a 2% decrease (i.e. the lower
boundary becomes 98% of the locked reference level).
^M 0x0D - INTRA-BURST PULSE SPACING
Scope
16
16
Scope
16
16
Section 2.8, p. 6
Special condition: If the value for ^L is set to zero this
feature is disabled and the key will never auto-recalibrate
after a prolonged touch.
Put
Get
Returns
0x0E
0x00..0xFF
In Get mode the function returns the current setting of ^N.
^L 0x0C - NEGATIVE RECALIBRATION DELAY
Bytes / Cmd
2
1
Byte 2 Range
0x00..0xFF
n/a
Ctrl-N. In Put mode, sets the amount of tolerable positive
deviation in the reference level for all keys, in tenths of a
percent, with regard to the 'locked' reference value for each
key. The setup is global in nature and affects all keys equally.
In Get mode, the command will return a single byte according
to the current scope rules (Section 5.2).
Scope
1, 4, 16
1
Bytes / Cmd
2
1
Section 2.8, p. 6
5
7
10 15
90 123 175 255
Values other than the above will be rounded down. As an
example, a value of 60 will cause a 6-second delay.
Put
Get
Scope
16
16
Returns
0x0D
0x01..0x0A
In Get mode the function returns the current setting of ^M.
Section 3.7, p. 9
This setup is identical in nature to ^N except that it governs
negative reference deviations.
Ctrl-M. In Put mode, sets the amount of time between
individual pulses in a burst.
Special condition: If the value is set to 0, this feature is
disabled.
The second byte must be in the range of 1 to 10 decimal;
other values will be ignored. The setting applies to all keys.
The value corresponds to the timing between pulses within a
burst, in microseconds. For example, a setting of 5 will set the
pulse spacing to 5 microseconds.
In Get mode the function returns the current value of ^M.
lQ
23
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
^P 0x10 - ADJACENT KEY SUPPRESSION (‘AKS’)
Put
Get
Scope
1, 4, 16
1
Bytes / Cmd
2
1
Byte 2 Range
0x00, 0x01
n/a
5.5 Supervisory / System Functions
Returns
0x10
0x00, 0x01
Supervisory functions report or control miscellaneous
functions that affect overall chip control, testing, or
diagnostics. All supervisory functions ignore scope except
where noted.
Section 2.9, p. 6
Ctrl-P. In Put mode, instructs logic for the keys specified by
the current scope to suppress a pending touch detection
under certain signal conditions.
6
Put
Get
Valid 2nd byte values for this function are:
0:
1:
0X36 - EEPROM CHECKSUM
AKS off {default}
AKS on
Scope
n/a
n/a
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
1
Returns
n/a
0x00..0xFF
See page 18.
L
In Get mode, the command will return a single byte according
to the current scope rules (Section 5.2).
0x4C - LOCK REFERENCE LEVELS
Put
Get
Scope
16
n/a
Bytes / Cmd
2
n/a
2nd Byte
0x00
n/a
Returns
0x4C
n/a
AKS functions to suppress detections from water films which
can 'spread' a touch signal from the touched key to adjacent
keys.
Section 2.8, p. 6
AKS is also useful for panels with tightly spaced keys, where
a fingertip can partially overlap an adjacent key. This feature
will act to suppress the signals from the unintended key(s).
Uppercase 'L'. This is a put-only command that locks the
reference levels of the device into eeprom for all keys, for
boundary checking purposes over the product's life.
AKS only operates across keys that have been AKS-enabled;
signal strength comparisons are not made with nonAKS-enabled keys.
The whole command – 'L' followed by a null (0x00) - must be
received within 100ms without any intervening byte, or the
command will fail. The part must be in Put mode for this
command to work.
Unused keys with burst lengths of zero are also ignored for
purposes of AKS.
The scope of this command is always 'all keys'.
This function records to eeprom the signal reference for all
keys. The locked reference levels are used to compute
boundary checks immediately after the command has
finished. The results of this command to not take effect until
the part has been reset.
Due to the large number of bytes written to eeprom by this
command, there is a significant delay from the second byte
until the return echo is sent back to the host.
This command should be used only during production. There
is no get version of the command.
b
0x62 - RECALIBRATE KEYS
Put
Get
Scope
1, 4, 16
n/a
Bytes / Cmd
1
n/a
2nd Byte
n/a
n/a
Returns
0x62
n/a
Section 2.10, p. 7; Section 3.13.
Lowercase 'B'. This is a put-only command that causes the
keys selected by scope to recalibrate. The part must be in Put
mode for this command to work.
The return byte is sent before the keys have calibrated. While
keys are in recalibration, status of the keys can be
determined using the 'e' or 'E' commands.
If 'b' is sent while key(s) are already in the middle of
recalibration, the affected key(s) will abandon the old
calibration cycle and start a new one.
There is no get version of the command.
lQ
24
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
l
null (0x00) within 100ms or the command will fail. The part
must be in Put mode for this command to work.
0x6C - RETURN LAST COMMAND CHARACTER
Put
Get
Scope
n/a
n/a
Bytes / Cmd
n/a
1
# Bytes Rtnd
n/a
1
Returns
n/a
0x00..0xFF
The command returns 0x5A immediately before going to
sleep, and a second 0x5A upon waking up.
If for some reason the device is unable to transmit the first
return ‘Z’ character back to the host, for example due to the
host not releasing the SS line, the part will completely reset
after about 2 seconds.
Lowercase 'L'. This get-only command reports back with the
value of the prior command received by the part. The
command also reports back any erroneous commands,
allowing the host device to verify that a command was
correctly received.
The part will reawaken after a logic low is detected for 10µs
on pin 11 (RST’ pin, see Section 3.11). The device then
sends a second ‘Z’ back to the host, and resumes from its
prior state before it went to sleep without the need for
recalibration. The device resumes in Get mode only.
If this command is repeated, the second and subsequent
instances of 'l' will report back with 0x6C.
There is no put version of the command.
r
There is no get version of the command.
0x72 - RESET DEVICE
Put
Get
Scope
n/a
n/a
Bytes / Cmd
2
n/a
2nd Byte
0x00
n/a
Returns
0x72
n/a
^Q
Put
Get
Section 3.11, p. 9
Lowercase 'R'. This put-only command hard-resets the part.
The command 0x72 must be followed by a null (0x00) within
100ms or the command will fail. The part must be in Put
mode for this command to work.
Put
Get
0:
1:
2:
3:
Note that when the part is receiving data, the host can send
to the device at rates up to 3MHz even if the rate setting of ^Q
is slower.
Refer to Sections 4.3 and 4.4 for SPI timing details.
There is no put version of the command.
New settings do not become effective until the device has
been powered off and back on again or after the reset (‘r’)
command.
0x57 - RETURN PART SIGNATURE
Put
Get
Scope
n/a
n/a
Bytes / Cmd # Bytes Rtnd
n/a
n/a
1
1
Returns
n/a
0x10
UART Settings The acceptable values of the operand for UART use are:
Uppercase 'W'. This get-only command returns the part
signature as follows:
0x10
0:
1:
2:
3:
4:
(16 decimal)
There is no put version of this command.
Z
Scope
n/a
n/a
Bytes / Cmd
2
n/a
9600 baud
14400 baud
19200 baud
38400 baud
57600 baud
There is no get version of this function.
0x5A - ENTER SLEEP
Put
Get
93.75 kHz
187.5 kHz
750 kHz
3 MHz
These values define the maximum SPI clock rate in Master
mode (part originates the clock).
Returns
n/a
0x00..0xFF
Uppercase 'V'. This get-only command returns the part
version number.
W
Returns
0x11
0x00..0x04
The acceptable values of the operand for SPI use are:
0x56 - RETURN PART VERSION
# Bytes Rtnd
n/a
1
2nd Byte Range
0x00..0x04
n/a
SPI Settings -
There is no get version of the command.
Bytes / Cmd
n/a
1
Bytes / Cmd
2
1
Ctrl-Q. This is a put-only command that sets the UART baud
rate and the SPI clock rate. All timings assume a 12MHz
oscillator. The part must be in Put mode for this command to
work.
If for some reason the part is unable to send back the echo
character 0x72, the command will fail.
Scope
n/a
n/a
Scope
n/a
n/a
Section 4, p. 11
A reset occurs about 16ms after the echo byte 0x72 is
transmitted back to the host. The part will resume
communication and sensing in accordance with the timing
shown in Section 3.13.
V
0x11 - DATA RATE SELECTION
2nd Byte
0x00
n/a
Refer to Section 4.5for UART details.
Returns
*0x5A, 0x5A
n/a
New settings do not become effective until the device has
been powered off and back on again or after the reset (‘r’)
command.
Section 3.14, p. 9
Uppercase 'Z'. This put-only command forces the device to
enter sleep mode. The command 0x5A must be followed by a
lQ
25
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
^R
0x12 - OSCILLOSCOPE SYNC
Put
Get
Scope
1, 4, 16
1, 4, 16
Bytes / Cmd
2
1
2nd Byte Range
0x00, 0x01
n/a
Returns
0x12
0x00, 0x01
Section 3.16, p. 11
Ctrl-R. In Put mode, controls the oscilloscope sync function
of Pin 43. The settings of this function are:
0:
1:
off {factory default}
on
When on, Pin 43 outputs a pulse that brackets the acquire
burst(s) for the keys targeted by scope. Without this it is
virtually impossible to view signals on an oscilloscope
corresponding to a specific key.
Pin 43 idles low and pulses high during a sync pulse.
^R is volatile, that is, it does not persist after a power down.
^W
0x17 - NOISE SYNC
Put
Get
Scope
-
Bytes / Cmd
2
1
Byte 2 Range
0x00, 0x01
n/a
Returns
0x17
0x00, 0x01
Section 3.14, p. 9
Ctrl-W. In Put mode, sets whether the noise sync feature is
enabled or disabled. The part must be in Put mode for this
command to work.
The settings are:
0:
1:
off {factory default}
on
This function has global scope. The default value is 0 (off).
In Get mode this function returns the current setting of ^W.
The setting of ^W does not become effective until the device
has been powered off and back on again or after the reset
(‘r’) command has been issued.
lQ
26
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
lQ
5.6 Function Summary Table
Char
Hex
Name
Description
P/G
Scope
Put Mode
Operand
Bytes/Put
Range
Returns
Scope
Get Mode
Bytes
returned
Return
range
Default
setting
Page
Direction Commands
g
0x67
Get
all subsequent Setup commands become 'Gets'
P
-
1
0x67
Get
17
p
0x70
Put
all subsequent Setup commands become 'Puts’
P
-
1
0x70
Get
17
Set one key scope
targets a specific key in range 0..15
P
-
2
0x73
undefined
18
Scope Commands
s
0x73
0x00..0x0F
S
0x53
Set all keys scope
targets all keys in the matrix
P
-
1
0x53
undefined
18
x
0x78
Set row keys scope
targets keys in a designated row, range 0..3
P
-
2
0x00..0x03
0x78
undefined
18
y
0x79
Set column keys scope
targets keys in a designated column, range 0..3
P
-
2
0x00..0x03
0x79
undefined
18
Status Commands
0
0x30
signal for 1 key
get signal strength for 1 key
G
1
2
0..0xFFFF
-
18
1
0x31
delta signal for 1 key
get Reference-Signal for 1 key
G
1
1
0..0xFF
-
18
2
0x32
reference for 1 key
get Reference level for 1 key
G
1
2
0..0xFFFF
-
18
27
www.qprox.com QT60161B / R1.03
0
0x35
Det Integrator for 1 key
get detect integrator for 1 key
G
1
1
0..0xFF
-
18
6
0x36
eeprom checksum
get eeprom checksum of entire eeprom
G
-
1
0..0xFF
-
18
7
0x37
general device status
get device status of entire device
G
-
1
0..0x1F
-
19
<sp>
0x20
signals for group
get signal for group
G
4, 16
8, 32
0..0xFFFF
-
19
!
0x21
delta signals for group
get Reference-Signal for group
G
4, 16
4, 16
0..0xFF
-
19
“
0x22
references for group
get References levels for group
G
4, 16
8, 32
0..0xFFFF
-
19
%
0x25
Det integrator for group
get detection integrators for group
G
4, 16
4, 16
0..0xFF
-
19
e
0x65
error code for 1 key
get error code for 1 key
G
1
1
0..0x0F
-
19
E
0x45
error codes for group
get error bits for group
G
1, 4, 16
1, 4
0..0x0F
-
20
k
0x6B
report 1st key
get indication of first touched key
G
-
-
0..0xFF
-
20
K
0x4B
report touches for group
get indication of all touched keys
G
1, 4, 16
1, 4
0..0x0F
-
20
©Quantum Research Group Ltd.
lQ
Char
Hex
Name
Description
Put Mode
Operand
Bytes/Put
Range
Get Mode
Bytes
returned
28
www.qprox.com QT60161B / R1.03
Return
range
Default
setting
Page
1
0x04..0x40
0x0C
21
1
1
0x04..0x40
0x08
21
0x03
16
1
0x00..0x03
0x01 (25%)
21
0x00..0x03
0x04
16
1
0x00..0x03
0x01 (25%)
21
2
0x00..0x40
0x06
1
1
0x01..0x40
0x0C
21
16
2
0x00..0x02
0x07
16
1
0x00..0x02
0 (500us)
22
P/G
1, 4, 16
2
0x01..0x64
0x08
1
1
0x01..0x64
0x1E (3s)
22
P/G
1, 4, 16
2
0x01..0x64
0x09
1
1
0x01..0x64
0x0A (1s)
22
P/G
1, 4, 16
2
0x00..0xFF
0x0A
1
1
0x00..0xFF
0x03
22
P/G
1, 4, 16
2
0x00..0xFF
0x0B
1
1
0x00..0xFF
0x0A (1s)
23
P/G
1, 8, 64
2
0x00..0xFF
0x0C
1
1
0x00..0xFF
0x3C (9s)
23
P/G
16
2
0x01..0x0A
0x0D
64
1
0x02..0x0A
0x02
23
P/G
16
2
0x00..0xFF
0x0E
16
1
0x00..0xFF
0 (off)
23
P/G
16
2
0x00..0xFF
0x0F
16
1
0x00..0xFF
0 (off)
23
P/G
1, 4, 16
2
0x00, 0x01
0x10
1
1
0x00, 0x01
0 (off)
24
P/G
Scope
P/G
1, 4, 16
2
P/G
1, 4, 16
P/G
Returns
Scope
0x04..0x40
0x01
1
2
0x04..0x40
0x02
16
2
0x00..0x03
P/G
16
2
P/G
1, 4, 16
P/G
Setup Commands
^A
0x01
Negative threshold
^B
0x02
Positive threshold
^C
0x03
Negative hysteresis
^D
0x04
Positive hysteresis
^F
0x06
Burst length
^G
0x07
Burst spacing
^H
0x08
Neg drift comp rate
^I
0x09
Pos drift comp rate
^J
0x0A
Neg det int limit
^K
0x0B
Pos recal delay
^L
0x0C
Neg recal delay
^M
0x0D
Intra-burst spacing
^N
0x0E
Pos error band
^O
0x0F
Neg error band
^P
0x10
Key suppression
Signal threshold; fewer counts = more sensitive
4, 5, 6, 7, 8, 10, 12, 15, 17, 20, 25, 30, 35, 45, 55, 64
sensitivity to positive signals for recalibration
4, 5, 6, 7, 8, 10, 12, 15, 17, 20, 25, 30, 35, 45, 55, 64
hysteresis for negative threshold
50%, 25%, 12.5%, 0%
hysteresis for positive threshold
50%, 25%, 12.5%, 0%
sets number of QT cycles / burst; zero disables burst
0, 1, 2, 3, 4, 5, 7, 10, 12, 15, 20, 25, 30, 40, 50, 64
time from start of one burst to start of next burst
500us, 1ms, 2ms
rate of drift compensation for negative signal swings
0.1, 0.2, 0.3, 0.4, 0.6, 0.8, 1.0, 1.2, 1.5,
2.0, 2.5, 3.3, 4.5, 6.0, 7.5, 10 secs
rate of drift compensation for positive signal swings
0.1, 0.2, 0.3, 0.4, 0.6, 0.8, 1.0, 1.2, 1.5,
2.0, 2.5, 3.3, 4.5, 6.0, 7.5, 10 secs
number of detections required to register a touch,
counted in bursts of detection; zero disables a key.
0, 1, 2, 3, 5, 7, 10, 15, 20, 32,
45, 60, 90, 123, 175, 255 counts
time required to trigger a recal from a positive signal
excursion in 0.1s increments; zero disables recal.
0, 0.1, 0.2, 0.3, 0.5, 0.7, 1.0, 1.5, 2.0, 3.2,
4.5, 6, 9, 12.3, 17.5, 25.5 secs
time required to trigger a recal from a detection, in 0.1s
increments. Zero disables recal.
0, 0.1, 0.2, 0.3, 0.5, 0.7, 1.0, 1.5, 2.0, 3.2,
4.5, 6, 9, 12.3, 17.5, 25.5 secs
period of QT pulses, in microseconds
1, 2, 3, 4, 5, 6, 7, 8, 9, 10us
tolerable positive reference deviation with respect to
Locked reference values, step 0.1%. Zero disables.
tolerable negative reference deviation with respect to
Locked reference values, step 0.1%. Zero disables.
adjacent key suppression feature; 1 = on
©Quantum Research Group Ltd.
lQ
Char
Hex
Name
Put Mode
Operand
Bytes/Put
Range
Description
P/G
Eeprom checksum
returns checksum of internal eeprom
G
P
16
2
1, 4, 16
1
Scope
Get Mode
Bytes
returned
Return
range
Default
setting
Page
0x00..0xFF
-
18
0x4C
-
24
0x62
-
24
-
25
-
25
-
25
-
25
Returns
Scope
Supervisory Commands
6
0x36
L
0x4C
Lock references
locks reference levels into eeprom for future boundary
checks. ‘L’ must be followed by 0x00 (null) 100ms after
the command byte
b
0x62
Recal keys
fully recalibrate keys;
return byte is sent prior to calibration
P
l
0x6C
Return last command
send back last command byte received
G
Reset device
hard reset the device. ‘r’ must be followed by a null within
100ms.
P
r
0x72
0x00
-
2
0x00
1
1
0x00..0xFF
0x72
V
0x56
Version
returns part version number
G
-
1
0x00..0xFF
W
0x57
Signature
returns part signature number
G
-
1
0x10
Sleep
force device into Sleep mode. ‘Z’ must be followed by a
null within 100ms. 0x5A returned before and after
entering Sleep
P
-
2
0x00
0x5A,
0x5A
P/G
-
2
0x00..0x04
0x11
-
1
0x00..0x04
0 (93.75k,
9600)
25
Z
0x5A
25
0x11
Data rate
^R
0x12
Scope sync
oscilloscope sync control. 1 = on.
feature is volatile - does not survive reset
P/G
1, 4, 64
2
0x00, 0x01
0x12
-
1
0x00, 0x01
0 (off)
26
^W
0x17
Noise sync
noise sync enable; 1 = on
device must be reset to take effect
G/P
-
2
0x00, 0x01
0x17
-
1
0x00, 0x01
0 (off)
26
29
^Q
sets the Master mode SPI clock rate and UART rate;
reset via ‘r’ command or hard reset to take effect
SPI: 93.75kHz, 187.5kHz, 750kHz, 3MHz
UART: 9.6k, 14.4k, 19.2k, 38.4k, 57.6k
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
5.7 Timing Limitations
The device requires processing time between bursts, as well
as time to handle communications with the host. With short
burst spacings, long burst lengths, and long intra-burst pulse
spacings, the device can simply run out of available
processing time. When this happens, burst timing and host
communications slow down and become erratic.
It is important that burst spacings be verified on an
oscilloscope with an actual keymatrix during development to
be certain that the device timings are preserved and are
constant. If not, the burst length and/or pulse spacing should
be reduced.
Table 5-2 Permissible Burst Lengths (BL’s)
Cs = 4.7nF, Cx = 5pF, Rs = 180K; 100µs ramp time
Pulse Spacing = 2µs
Burst
Max BL
Spacing
500
64
1,000
64
2,000
64
Pulse Spacing = 3µs
Burst
Max BL
Spacing
500
64
1,000
64
2,000
64
Pulse Spacing = 4µs
Burst
Max BL
Spacing
500
50
1,000
64
2,000
64
Pulse Spacing = 5µs
Burst
Max BL
Spacing
500
40
1,000
64
2,000
64
Pulse Spacing = 7µs
Burst
Max BL
Spacing
500
30
1,000
50
2,000
64
Pulse Spacing = 8µs
Burst
Max BL
Spacing
500
25
1,000
50
2,000
64
Pulse Spacing = 9µs
Burst
Max BL
Spacing
500
20
1,000
40
2,000
64
Pulse Spacing = 10µs
Burst
Max BL
Spacing
500
20
1,000
40
2,000
64
Pulse Spacing = 6µs
Burst
Max BL
Spacing
500
30
1,000
64
2,000
64
5.8 Erratta / Notes
4 April 2003 - The QT60xx5 version 1.05 datasheet erroneously showed negative recalibration timeouts in the range from
1..255 seconds. The correct range is 0.1..25.5 seconds. From datasheet version 1.06 on, this document change has been
made. The devices themselves are not affected.
lQ
30
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
6 Electrical Specifications
6.1 Absolute Maximum Specifications
Operating temp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -40OC to +105OC
Storage temp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -55OC to +125OC
VDD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -0.5 to +5.5V
Max continuous pin current, any control or drive pin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ±10mA
Short circuit duration to ground, any pin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . infinite
Short circuit duration to VDD, any pin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . infinite
Voltage forced onto any pin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -0.6V to (Vdd + 0.6) Volts
Frequency of operation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16MHz
Eeprom maximum writes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100,000 write cycles
6.2 Recommended operating conditions
VDD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . +4.75 to 5.25V
Supply ripple+noise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5mV p-p max
Cx transverse load capacitance per key. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 to 20pF
Fosc oscillator frequency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12MHz +/-2%
6.3 DC Specifications
Vdd = 5.0V, Cs = 4.7nF, Freq = 12MHz, Ta = recommended range, unless otherwise noted
Parameter
Description
Min
Typ
Max
Units
IDDR
Supply current, running
IDDS
Supply current, sleep
VIL
Low input logic level
VHL
High input logic level
VOL
Low output voltage
VOH
High output voltage
IIL
Input leakage current
AR
Acquisition resolution
RP
Pullup resistors
25
20
mA
Not including external components
µA
Not including external components
0.8
V
0.6
V
4mA sink
V
1mA source
±1
µA
2.2
Notes
V
Vdd-0.7
10
35
16
bits
120
kohms
Max
Units
Drdy, SS’ pins
6.4 Protocol Timing
Parameter
Description
Min
Typ
TPR
Parallel port response delay
100
µS
TDR2
Tdr delay from response
1
1,000
µS
TDR3
Multi-byte return spacing
15
2,000
µS
lQ
31
Notes
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
6.5 Maximum Drdy Response Delays
... with adjacent key suppression disabled:
Burst Spacing
Function Type
Setup - put (affect 1 key)
Setup - put (affect 4 keys)
Setup - put (affect 16 keys)
Lock reference Level (L)
Calibrate command (all keys)
Get key errors (E), Get keys pushed (K)
All other commands
500µs
10ms
20ms
65ms
65ms
2ms
1.5ms
1.5ms
1ms
10ms
20ms
65ms
65ms
2ms
2ms
1ms
2ms
10ms
20ms
65ms
65ms
1.1ms
1ms
1ms
... with adjacent key suppression enabled:
Burst Spacing
Function Type
Setup - put (affect 1 key)
Setup - put (affect 4 keys)
Setup - put (affect 16 keys)
Lock reference Level (L)
Calibrate command (all keys)
Get key errors (E), Get keys pushed (K)
All other commands
500µs
10ms
20ms
65ms
65ms
2.5ms
2ms
1.5ms
1ms
10ms
20ms
65ms
65ms
2ms
2ms
2ms
2ms
10ms
20ms
65ms
65ms
1.2ms
1.1ms
1.1ms
Preliminary Data: All specifications subject to change.
lQ
32
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
7 Mechanical
7.1 Dimensions
A
44 43 42 41 40 39 38 37 36 35 34
1
33
2
32
3
31
4
30
29
5
6
28
27
7
26
8
9
25
10
24
11 13
23
12
14 15 16 17 18 19 20 21 22
p
P
L
a
e
o
H
h
E
SYMBOL
a
A
e
E
h
H
L
p
P
o
Min
9.90
11.75
0.09
0.45
0.05
0.30
0.80
8.00
0
Package Type: 44 Pin TQFP
Millimeters
Max
Notes
Min
10.10
12.21
0.20
0.75
0.15
1.20
0.45
0.80
8.00
7
SQ
SQ
BSC
BSC
0.386
0.458
0.003
0.018
0.002
0.012
0.031
0.315
0
Inches
Max
0.394
0.478
0.008
0.030
0.006
0.047
0.018
0.031
0.315
7
Notes
SQ
SQ
BSC
BSC
7.2 Marking
TA
-400C to +1050C
lQ
TQFP Part Number
QT60161B-AS
33
Marking
QT60161B-A
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
8 Index
I
intra-burst pulse spacing, 9, 23
K
A
adc, 8
adjacent key suppression, 6, 7, 12, 24, 28, 32
alert output
key design, 4
key numbering convention, 18
key reporting, 20
led, 10, 11
application assistance, 4
L
led
B
alert output, 10, 11
block diagram, 5
boundary limits, 19, 23, 29
burst length, 4, 7, 8, 9, 17, 21, 28, 30
burst spacing, 8, 9, 14, 22, 28, 30, 32
burst timing, 15, 30
C
lock reference levels, 6, 14, 23, 24
M
master mode, 12, 13
master-slave mode, 4, 12, 13
miso, 12, 13
mosi, 9, 12, 13
calibration
recalibration, 5, 6, 7, 9, 10, 17, 19, 21, 23, 24, 29
circuit model, 7
cs, 5, 8, 9
D
delta signals, 19, 27
detection integrator, 5, 6, 8, 18
direction commands, 17
drdy’, 12
drift compensation, 5, 6, 11, 17, 21, 22, 23
dwell, 7, 9
N
negative detect integrator, 22
negative detect threshold, 21
negative drift compensation, 22
negative hysteresis, 5
negative recalibration delay, 6, 23
negative reference error band, 23
negative threshold, 5, 7, 8, 21, 22, 23
noise, 11, 12
noise filter, 22. see also emi
O
E
echo, 12, 13, 15, 21, 24
eeprom checksum, 18, 24
electrostatic shield, 11
emi, 11, 23
rfi, 8, 9, 21
error code, 4, 11, 16, 17, 19, 20, 21, 23
error guardbanding, 23
esd protection, 8, 9, 11
F
field flow, 4, 8
function summary table, 27
G
get command, 17
ground plane, 11
H
oscillator, 7, 9, 10, 12, 14, 25
oscilloscope sync, 11, 26
P
pcb layout, 4, 11
positive detect threshold, 21
positive recalibration delay, 6, 7, 23
positive reference error band, 23
positive threshold, 5, 6, 7, 21, 23
power supply, 11
pulse spacing, 9, 23
put command, 17
Q
qmbtn, 4, 10, 11
R
recalibrate keys (command), 24
recalibration
calibration, 5, 6, 7, 9, 10, 17, 19, 21, 23, 24, 29
hysteresis, 5, 21, 22
reset, 7, 9, 10, 11, 17, 25, 26
resonator, 7, 9. see also oscillator
return last command, 25
lQ
34
www.qprox.com QT60161B / R1.03
©Quantum Research Group Ltd.
return part signature, 25
rfi
emi, 8, 9, 21
S
slave mode, 13
sleep mode, 10
spi, 12, 15
spi noise problems, 11
lQ
T
tcm, 12, 15
W
water films, 24
X
x-drives, 7, 8
35
www.qprox.com QT60161B / R1.03
lQ
Copyright © 2002 QRG Ltd. All rights reserved.
Patented and patents pending
Corporate Headquarters
1 Mitchell Point
Ensign Way, Hamble SO31 4RF
Great Britain
Tel: +44 (0)23 8056 5600 Fax: +44 (0)23 8045 3939
[email protected]
www.qprox.com
North America
651 Holiday Drive Bldg. 5 / 300
Pittsburgh, PA 15220 USA
Tel: 412-391-7367 Fax: 412-291-1015
The specifications set out in this document are subject to change without notice. All products sold and services supplied by QRG are subject
to our Terms and Conditions of sale and supply of services which are available online at www.qprox.com and are supplied with every order
acknowledgement. QProx, QTouch, QMatrix, QLevel, and QSlide are trademarks of QRG. QRG products are not suitable for medical
(including lifesaving equipment), safety or mission critical applications or other similar purposes. Except as expressly set out in QRG's Terms
and Conditions, no licenses to patents or other intellectual property of QRG (express or implied) are granted by QRG in connection with the
sale of QRG products or provision of QRG services. QRG will not be liable for customer product design and customers are entirely
responsible for their products and applications which incorporate QRG's products.