Atmel AT42QT1481 48-Key QMatrix FMEA IEC/EN60730 Touch Sensor IC DATASHEET Features Number of keys: Up to 48 Technology: Patented charge-transfer (transverse mode), with frequency hopping Key outline sizes: 6 mm × 6 mm or larger (panel thickness dependent); widely different sizes and shapes possible Key spacings: 8 mm or wider, center to center (panel thickness dependent) Electrode design: Two-part electrode shapes (drive-receive); wide variety of possible layouts Layers required: One layer (with jumpers), two layers (no jumpers) Electrode materials: PCB, FPCB, silver or carbon on film, ITO on film Panel materials: Plastic, glass, composites, painted surfaces (low particle density metallic paints possible) Adjacent Metal: Compatible with grounded metal immediately next to keys Panel thickness: Up to 50 mm glass, 20 mm plastic (key size dependent) Key sensitivity: Individually settable via simple commands over serial interface Signal processing: Self-calibration, auto drift compensation, noise filtering, Adjacent Key Suppression® Interfaces: UART SPI slave (4 MHz maximum clock rate) STATUS indication pin Debug output FMEA compliant design features IEC/EN/UL60730 compliant design features UL approval VDE compliance For use in both class B and class C safety-critical products 9621EX–AT42–07/2014 Detects and Reports Key Failure Power: +4.75 to 5.25 V Package: 44-pin 10 × 10 mm TQFP RoHS compliant AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 2 44 43 42 Y4A Y4B Y5B Y5A VSS VDD Pinout Configuration DRDY STATUS / DBG_DATA 1.1 VREF Pinout and Schematic SS S_SYNC / DBG_CLK 1. MOSI 1 41 40 39 38 37 36 35 34 33 Y3B MISO 2 32 Y2B SCK 3 31 Y1B 4 30 Y0B 5 29 VDD VSS 6 28 VSS XT2 7 27 VDD XT1 8 26 X7 RX 9 25 X6 TX 10 24 X5 23 21 22 X4 X2 X1 X0 VSS VDD Y0A Y2A Y1A Y3A 11 12 13 14 15 16 17 18 19 20 SMP WS QT1481 X3 RST VDD AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 3 1.2 Pin Descriptions Table 1-1. Pin Listing Pin Name Type Description If Unused... 1 MOSI I SPI data input Leave open 2 MISO O SPI data output Leave open 3 SCK I SPI clock input Vdd 4 RST I Reset low; has internal 30 k – 60 k pull-up resistor. This pin should be controlled by the host. Vdd 5 VDD P Power – 6 VSS P Ground – 7 XT2 O 8 XT1 I 9 RX I UART receive data input Vdd 10 TX O UART transmit data; has internal 20 k – 50 k pull-up resistor Leave open 11 WS I Wake-up from sleep input and/or sync input Vdd 12 SMP I/O Sample output – 13 Y3A I/O Y line connection Leave open 14 Y2A I/O Y line connection Leave open 15 Y1A I/O Y line connection Leave open 16 Y0A I/O Y line connection Leave open 17 VDD P Power – 18 VSS P Ground – 19 X0 O X matrix drive line Leave open 20 X1 O X matrix drive line Leave open 21 X2 O X matrix drive line Leave open 22 X3 O X matrix drive line Leave open 23 X4 O X matrix drive line Leave open 24 X5 O X matrix drive line Leave open 25 X6 O X matrix drive line Leave open 26 X7 O X matrix drive line/ Leave open 27 VDD P Power – 28 VSS P Ground – 29 VDD P Power – 30 Y0B I/O Y line connection Leave open – Ceramic resonator or crystal,16 MHz – AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 4 Table 1-1. Pin Listing (Continued) Pin Name Type Description If Unused... 31 Y1B I/O Y line connection Leave open 32 Y2B I/O Y line connection Leave open 33 Y3B I/O Y line connection Leave open 34 Y4A I/O Y line connection Leave open 35 Y4B I/O Y line connection Leave open 36 Y5A I/O Y line connection Leave open 37 Y5B I/O Y line connection Leave open 38 VDD P Power – 39 VSS P Ground – 40 STATUS / DBG_DATA O Status output (active low) or Debug Data; has internal 20 k – 50 k pull-up resistor Leave open This pin MUST be used. I OD 1 = comms ready; needs a 100 µs grace period before checking. Open-drain with internal 20 k – 50 k pull-up resistor – I Connect to Vss – S_SYNC / DBG_CLK O Scope Synchronization output or Debug Clock Leave open SS I SPI slave select; has internal 20 k – 50 k pull-up resistor Leave open 41 DRDY I/O 42 VREF 43 44 Input only Open drain output O P Output only, push-pull Ground or power I/O Input/output AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 5 1.3 Schematic Figure 1-1. Typical Circuit Vunreg C2 SPI 38 S_SYNC / DBG_CLK SS MISO SCLK 3 Rx 9 Tx 10 SCK RX TX QT1481 X4 23 X3 22 X2 21 X1 20 X0 19 Y0A 16 Y1B DRDY VDD 41 40 4.7k 8 DRDY Y2A STATUS / DBG_DATA Y2B Y3A XT1 Y3B 18 28 Y4B VSS VSS VSS Y5A 42 39 VSS SMP 6 Y4A Y5B X6 Rx5 X5 Rx4 X4 Rx3 X3 Rx2 X2 Rx1 X1 Rx0 X0 Ry0 Y0 Cs0 30 Ry1 15 Y1 Cs1 31 Ry2 14 Y2 Cs2 32 Ry3 13 Y3 Cs3 33 Ry4 34 Y4 Cs4 35 Ry5 36 Y5 Cs5 37 12 Ceramic resonator or crystal,16 MHz XT2 VREF 7 X7 Rx6 25 24 Y1A Rx7 26 X5 Y0B 11 WS WAKE SYNC VDD 29 27 X6 1 MOSI 2 MISO MOSI X7 MATRIX X-DRIVE 44 SS UART 43 RST MATRIX Y-SCAN 4 SCOPE 17 C1 VDD Creg2 C3 VDD Creg1 5 + VDD + VDD VDD VREG Rs5 Rs4 Rs3 Rs2 Rs1 Rs0 For component values in Figure 1-1 check the following sections: Section 2.7 on page 10: Cs capacitors (Cs0 – Cs5) Section 2.8 on page 11: Sample resistors (Rs0 – Rs5) Section 2.10 on page 12: Matrix resistors (Rx0 – Rx7, Ry0 – Ry5) Section 2.13 on page 14: Power Supply AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 6 2. Hardware and Functional 2.1 Introduction The AT42QT1481 (QT1481) is a digital burst mode sensor, designed specifically for QMatrix layout touch controls; it includes all signal processing functions necessary to provide stable sensing under a wide variety of changing conditions. Only a few external parts are required for operation. The entire circuit can be built within a few square centimeters of single-sided PCB area. CEM-1 and FR1 punched, single-sided materials can be used for the lowest possible cost. The PCB’s rear can be mounted flush on the back of a glass or plastic panel using a conventional adhesive, such as 3M VHB two-sided adhesive acrylic film. The QT1481 employs transverse charge-transfer (QT™) sensing, a technology that senses changes in electrical charge forced across two electrode elements by a pulse edge (see Figure 2-1). Figure 2-1. Field Flow Between X and Y Elements overlying panel X element Y element CMOS driver The QT1481 allows a wide range of key sizes and shapes to be mixed together in a single touch panel. The QT1481 is designed for use with up to 48 keys. The QT1481 uses both UART and SPI interfaces (only one at a time) to allow key data to be extracted and to permit individual key parameter setup. The interface protocol uses simple single byte commands and responds with single byte responses in most cases. 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 QT1481 can also report back actual signal strengths and error codes. QmBtn software for the PC can be used to program the operation of the IC as well as read back key status and signal levels in real time. A Debug output interface is also supported, which can be used to monitor many operating variables during product development. The QT1481 incorporates many tests and checks to enable a product to achieve FMEA and EN60730 compliance. The results of some tests need to be checked by the host. To achieve a compliant design, the host must read back the test results and confirm their validity. The QT1481 is able to scan the touch matrix twice as fast as previous generation devices; it can take twice the number of samples in a given time frame. This mean s the QT1481 is much better equipped to continue normal operation in the face of heavy noise. See Appendix C. on page 68 for information on conducted noise immunity. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 7 2.2 Key Numbers The keys are numbered from 0 – 47.Table 2-1 shows the key numbering. Table 2-1. Key Numbers X7 2.3 X6 X5 X4 X3 X2 X1 X0 Y0 7 6 5 4 3 2 1 0 Y1 15 14 13 12 11 10 9 8 Y2 23 22 21 20 19 18 17 16 Y3 31 30 29 28 27 26 25 24 Y4 39 38 37 36 35 34 33 32 Y5 47 46 45 44 43 42 41 40 Key numbers Matrix Scan Sequence Key scanning begins with location X = 0, Y = 0 (key 0). All keys on X0 are scanned first, then X1 and finishing with all keys on X7 (for example, the sequence X0Y0, X0Y1 – X0Y5, X1Y0, X1Y1...). Table 2-1 shows the key numbering. All keys on the same X line are excited together in a burst of acquisition pulses whose length is determined by the Setups parameter BL (see Section 5.9 on page 43); this can be set to a different value for each k ey. A burst is completed entirely before the next X line is excited. At the end of each burst the resulting signals, one for each Y line, are converted to digital form and processed. The burst length directly impacts key gain. Each key can have a different burst length in order to allow tailoring of key sensitivity. Although all keys on an entire X line are excited simultaneously, the charge is selectively captured at each Y line according to the burst length selected. 2.4 Enabling/Disabling Keys – Burst Paring Unused keys are always pared from the computation sequence in order to optimize speed. If all keys are disabled on any given X, the entire X line is also pared from the burst sequence. If only two X lines have enabled keys, only two timeslots are used for scanning. The NDIL parameter is used to enable and disable keys in the matrix. Setting NDIL = 0 for a key disables it (Section 5.5 on page 41). Keys that are disabled are eliminated from the scan sequence to save scan time and thus power. If all keys on an X line are disabled, the burst for the entire X line is removed from the scan sequence, further saving time and power. This has the consequence of affecting the scan rate of the entire matrix as well as the time required for initial matrix calibration. It does not affect the time required to calibrate an individual key once the matrix is initially calibrated after power-up or reset. It is very important that only those keys that physically exist are enabled. All non-existent k eys must be disabled (NDIL = 0) otherwise other keys in the matrix can incorrectly report their signal as zero. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 8 2.5 Response Time The response time of the QT1481 depends on: the burst spacing the number of enabled X lines (Section 5.5 on page 41) the detect integrator settings (Section 5.5 on page 41) Mains Sync and the serial polling rate by the host microcontroller Example, without mains sync: NXE = Number of X lines enabled = 8 NDIL = Norm detect integrator limit = 2 FDIL = Fast detect integrator limit = 5 BS = Burst spacing = 1 ms FMEA = FMEA test slot = 1 HPR = Host polling rate = 10 ms TMS = Time to perform one Matrix Scan The worst case response time is computed as: Tr = (TMS × NDIL) + HPR TMS = ((NXE + FMEA + (FDIL – 1)) × BS) Tr = (((NXE + FMEA + (FDIL – 1)) × BS) × NDIL) + HPR For the above example values: Tr = (((8 + 1 + (5 – 1)) × 1 ms) × 2) + 10 ms = 36 ms The use of the STATUS pin to trigger host sampling can reduce this to approximately 26 ms by eliminating the majority of the host polling time (see Section 5.20 on page 47). TMS varies with the configurations of Burst Length (see Section 5.9 on page 43) and Dwell (see Section 5.13 on page 45), and should be measured using an oscilloscope. Example, with mains sync: The value calculated for TMS needs to be rounded up to the nearest multiple of the mains periods before proceeding with the rest of the calculation. Continuing with the above example, TMS = ((8 + 1 + (5 – 1)) × 1 ms) = 13 ms. Rounded up to a multiple of whole mains periods, this becomes 20 ms (assuming a mains frequency of 50 Hz). The worst case response time is then computed as: Tr = (20 ms × 2) + 10 ms = 50 ms An X line is considered enabled if any key on that X line is enabled. An X line is disabled if all keys on that X line are disabled. Note: TMS will be stretched by 15 ms if STS_DEBUG is enabled. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 9 2.6 Oscillator The oscillator can use either a quartz crystal or a ceramic resonator. In all cases, XT1 and XT2 must both be loaded with low-value capacitors to ground. These capacitors should be in the range 12 pF to 22 pF. Follow the manufacturer's recommendations for the appropriate value within this range. Resonators and crystals requiring loading capacitors outside this range are unsuitable for operation with the QT1481. A resistor of value 1M is connected internally between XT1 and XT2. The frequency of oscillation should be 16 MHz ±1% for accurate UART transmission timing. 2.7 Sample Capacitor; Saturation Effects The charge sampler capacitors on the Y pins (Cs0 – Cs5) should be NPO (preferred), X7R ceramics or PPS film; NPO offers the best stability. The value of these capacitors is not critical but 4.7 nF is recommended for most cases. Cs voltage saturation is shown in Figure 2-2. This nonlinearity is caused by excessive voltage accumulation on Cs inducing conduction in the pin protection diodes. This badly saturated signal destroys key gain and introduces a strong thermal coefficient which can cause phantom detection. Figure 2-2. VCs – Nonlinear During Burst (Burst too long, or Cs too small, or X-Y transcapacitance too large) X Drive YnB The cause of this is either from the burst length being too long, the Cs value being too small, or the X-Y transfer coupling being too large. Solutions include loosening up the interdigitation of key structures, greater separation of the X and Y lines on the PCB, increasing Cs, and decreasing the burst length. Increasing Cs makes the part slower; decreasing burst length makes it less sensitive. A better PCB layout and a looser key structure (up to a point) have no negative effects. Cs voltages should be observed on an oscilloscope with the matrix layer bonded to the panel material; if the Rs side of any Cs ramps is more negative than –0.25 V during any burst (not counting overshoot spikes which are probe artifacts), there is a potential saturation problem. Figure 2-3 on page 11 shows a defective waveform similar to that of Figure 2-2, but in this case the distortion is caused by excessive stray capacitance coupling from the Y line to AC ground; for example, from running too near and too far alongside a ground trace, ground plane, or other traces. The excess coupling causes the charge-transfer effect to dissipate a significant portion of the received charge from a key into the stray capacitance. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 10 Figure 2-3. VCs – Poor Gain, Nonlinear During Burst (Excess capacitance from Y line to Gnd) X Drive YnB This phenomenon is more subtle; it can be best detected by increasing BL to a high count and watching what the waveform does as it descends towards and below –0.25 V. The waveform appears deceptively straight, but it slowly starts to flatten even before the –0.25 V level is reached. A correct waveform is shown in Figure 2-4. Note that the bottom edge of the bottom trace is substantially straight (ignoring the downward spikes). Unlike other QT circuits, the Cs capacitor values on QT1481 have no effect on conversion gain. However, they do affect conversion time. Unused Y lines should be left open. Figure 2-4. VCs – Correct X Drive YnB 2.8 Sample Resistors The sample resistors (Rs0 – Rs5) are used to perform single-slope analog-to-digital (ADC) conversion of the acquired charge on each Cs capacitor. These resistors directly control acquisition gain; larger values of Rs proportionately increase signal gain. Values of Rs can range from 220 k to 4.7 M. 470 k is a typical value for most purposes. Larger values for Rs also increas e conversion time and may reduce the fastest possible key sampling rate, which can impact response time especially with larger numbers of enabled keys. Unused Y lines do not require an Rs resistor. 2.9 Signal Levels Using Atmel QmBtn software it is easy to observe the absolute level of signal received by the sensor on each key. The signal values should normally be in th e range of 250 to 750 counts with properly designed key shapes (see the Touch Sensors Design Guide, available on the Atmel website). However, long adjacent runs of X and Y lines can also artificially boost the signal values, and induce signal saturation: this is to be avoided. The X-to-Y coupling should come mostly from intra-key electrode coupling, not from stray X-to-Y trace coupling. QmBtn software is available free of charge on the Atmel website. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 11 The signal swing from the smallest finger touch should preferably exceed 10 counts, with 15 being a reasonable target. The signal threshold setting (NTHR) should be set to a value guaranteed to be less than the signal swing caused by the smallest touch. Increasing the burst length (BL) parameter increases the signal strengths as will increasing the sampling resistor (Rs) values. 2.10 Matrix Series Resistors The X and Y matrix scan lines should use series resistors (Rx0 – Rx7 and Ry0 – Ry5 respectively) for improved EMC performance (Figure 1-1 on page 6). X drive lines require Rx in most cases to reduce edge rates and thus reduce RF emissions. Values range from 1 k to 100 k, typically 1 k. Y lines need Ry to reduce EMC susceptibility problems and in some extreme cases, ESD. Values range from 1 k to 100 k, typically 1 k. Y resistors act to reduce noise susceptibility problems by forming a natural low-pass filter with the Cs capacitors. It is essential that the Rx and Ry resistors and Cs capacitors be placed very close to the chip. Placing the se parts more than a few millimeters away opens the circuit up to high frequency interference problems (above 20 MHz) as the trace lengths between the components and the chip start to act as RF antennas. The upper limits of Rx and Ry are reached when the signal level and hence key sensitivity are clearly reduced. The limits of Rx and Ry depend on key geometry and stray capacitance, and thus an oscilloscope is required to determine optimum values of both. Dwell time is the duration in which charge coupled from X to Y is captured (Figure 2-5 on page 12). Increasing the dwell time increases the signal levels lost to higher values of Rx and Ry , as shown in Figure 2-5. Too short a dwell time causes charge to be 'lost', if there is too much rising edge roll-off. Lengthening the dwell time causes this lost charge to be recaptured, thereby restoring key sensitivity. In the QT1481 dwell time is adjustable (see Section 5.13 on page 45). Dwell time problems can also be solved by either reducing the stray capacitance on the X line(s) (by a layout change – for example, by reducing X line exposure to nearby ground planes or traces) or the Rx resistor needs to be reduced in value (or a combination of both approaches). Figure 2-5. Drive Pulse Roll-off and Dwell Time X drive Dwell time Lost charge due to inadequate settling before end of dwell time Y gate Note: The Dwell time is a minimum of approximately 125 ns – see Section 5.13 on page 45 One way to determine X-line settling time is to monitor the fields using a patch of metal foil or a small coin over the key (see Figure 2-6). Only one key along a particular X line needs to be observed, as each of the keys along a particular X line are identical. The dwell time should exceed the observed 95% settling of the X-pulse by 25% or more. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 12 Figure 2-6. Probing X-Drive Waveforms With a Coin 2.11 Key Design For information about key design refer to the Touch Sensors Design Guide on the Atmel website. 2.12 PCB Layout, Construction 2.12.1 Overview It is best to place the chip near the touch keys on the same PCB so as to reduce X and Y trace lengths, thereby reducing the chances for EMC problems. Long connection traces act as RF antennas. The Y (receive) lines are much more susceptible to noise pickup than the X (drive) lines. Even more importantly, all signal related discrete parts (resistors and capacitors) should be very close to the body of the chip. Wiring between the chip and the various resistors and capacitors should be as short and direct as possible to suppress noise pickup. Ground planes and traces should NOT be used around the keys and the Y lines from the keys. Ground areas, traces, and other adjacent signal conductors that act as AC ground (such as Vdd) absorb the received key signals and reduce signal-to-noise ratio (SNR) and thus are counterproductive. Ground planes around keys also make water film effects worse. Ground planes, if used, should be placed under or around the QT1481 chip itself and the associated resistors and capacitors in the circuit, under or around the power supply, and back to a connector, but nowhere else. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 13 2.12.2 LED Traces and Other Switching Signals Digital switching signals near the Y lines ind uce transients into the acquired signals, deteriorating the SNR performance of the QT1481. Such signals should be routed away from the Y lines, or the design should be such that these lines are not switched during the course of signal acquisition (bursts). LED terminals which are multiplexed or switched into a floating state and which are within or physically very near a key structure (even if on another nearby PCB) should be bypassed to either Vss or Vdd with at least a 10 nF capacitor of any type, to suppress capacitive coupling effects which can induce false signal shifts. LED terminals which are constantly connected to Vss or Vdd do not need further bypassing. 2.12.3 PCB Cleanliness Modern no-clean flux is generally compatible with capacitive sensing circuits. CAUTION: If a PCB is reworked in any way, it is highly likely that the behavior of the no-clean flux will change. This can mean that the flux changes from an inert material to one that can absorb moisture and dramatically affect capacitive measurements due to additional leakage currents. If so, the circuit can become erratic and exhibit poor environmental stability. If a PCB is reworked in any way, clean it thoroughly to remove all traces of the flux residue around the capacitive sensor components. Dry it thoroughly before any further testing is conducted. 2.13 Power Supply Considerations For Vdd information see Section 6.1 and Section 6.2 on page 58. As the QT1481 uses the power supply as an analog reference, the power should be very clean and come from a separate regulator. A standard inexpensive Low Dropout (LDO) type regulator should be used; it should not also be used to power other loads such as relays or other high current devices. Load shifts on the output of the LDO can cause Vdd to fluctuate enough to cause false detection or sensitivity shifts. Ceramic 0.1 µF bypass capacitors should be placed very close and routed with short traces to all power pins of the IC. There should be at least three such capacitors around the part. 2.14 Startup/Calibration Times The QT1481 employs a rigorous initialization and self-check sequence for EN60730 compliance. If the self-tests are passed, the last step in this sequence enables the serial communication interfaces. The communication interfaces are not enabled if a safety critical fault is detected during the startup sequence. The QT1481 requires initialization times as follows: 1. Normal reset to ability to communicate: 110 ms. 2. From very first power-up to ability to communicate: 2,200 ms (one time event to initialize all of EEPROM, or to recover EEPROM copy from Flash in the event of EEPROM corruption). 3. From power-up to ability to communicate: 140 ms in the event the setups have been changed and the part needs to back up the EEPROM to Flash. The QT1481 determines a reference level for each key by calibrating all the keys immediately after initialization. Each key is calibrated independently and in parallel with all other enabled keys. Calibration takes between 11 and 62 keyscan cycles; each cycle being made up of one sample from each enabled key. The QT1481 ends calibration for a key if its reference has converged with the signal DC level. The calibration time is shortest when the keys signals are stable, typically increasing with increasing noise levels to the maximum of 62 keyscan cycles. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 14 An error is reported for each key where calibration cont inues for the maximum number of keyscan cycles and the key's reference does not appear to have converged with the signals DC level. Noise levels can vary from key to key such that some keys may take longer to calibrate than others. However, the QT1481 can report during this interval that the key(s) affected are still in calibration via the QT1481 status bits. Table 2-2 shows keyscan cycle times and calibration times per key versus dwell time and burst length for all 48 keys enabled. The values given assume that MSYNC = off, SDC = 0 and STS_DEBUG = 0. Table 2-2. Keyscan Cycle and Calibration Times Setups Keyscan Cycle Time Calibration Time (min) Calibration Time (max) BL = 0 (16 pulses) DWELL = 0 (125 ns) FREQ0 = 0 6 ms 66 ms (11 × 6) 372 ms (62 × 6) 17 ms 187 ms (11 × 17) 1054 ms (62 × 17) Signal level = 200 counts BL = 3 (64 pulses) DWELL = 15 (9.9 µs) Signal level = 400 counts 2.15 Reset Input Should communications with the QT1481 be lost the RST pin can be used to reset the QT1481 to simulate a powerdown cycle, in order to then bring the QT1481 up into a known state. The pin is active low, and a low pulse lasting at least 10 µs must be applied to this pin to cause a reset. To provide for proper operation during power transitions the QT1481 has an internal brownout detector set to 4 V. The reset pin has an internal 30 k – 60 k resistor. A 2.2 µF capacitor plus a diode to Vdd can be connected to this pin as a traditional reset circuit, but this is not necessary. A Force Reset command, 0x04, also generates an equivalent hardware reset where the device is still in communication with the host. Where the QT1481 has detected a failure of one of the internal EN60730 checks and has subsequently locked up in an infinite loop, only a power cycle or an external hardware reset can restore normal operation. It is strongly recommended that the host has control over the RST pin. If an external hardware reset is not used, this pin may be connected to Vdd or left floating. 2.16 Detection Integrators See also Section 5.5 on page 41. The QT1481 features a detection integration mechanism, which acts to confirm a detection in a robust fashion. A per-key counter is incremented each time the key has exceeded its threshold and stayed there for a number of acquisitions. When this counter reaches a preset limit the key is finally declared to be touched. For example, if the limit value is 10, then the QT1481 has to exceed its threshold and stay there for a minimum of 10 acquisitions before the key is declared to be touched. The QT1481 uses a two-tier confirmation mechanism having two such counters for each key. These can be thought of as inner loop and outer loop confirmation counters. The inner counter is referred to as the fast-DI. This acts to attempt to confirm a detection via rapid successive acquisition bursts, at the expense of delaying the sampling of the next key. Each key has its own fast-DI counter and limit value. These limits can be changed via the Setups block on a per-key basis. The outer counter is referred to as the normal-DI. This DI counter increments whenever the fast-DI counter has reached its limit value. The normal-DI counter also has a limit value which is settable on a per-key basis. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 15 If a normal-DI counter reaches its terminal count, the corresponding key is declared to be touched and becomes active. Note that the normal-DI can only be incremented once per complete keyscan cycle (more slowly), whereas the fast-DI is incremented on the spot without interruption (at the same burst spacing timing). The net effect of this mechanism is a multiplication of the inner and outer counters and hence a highly noise-resistant sensing method. If the inner limit is set to 5, and the outer to 3, the net effect is a minimum of 5 × 3 = 15 threshold crossings to declare a key as active. 2.17 Sleep The QT1481 can be configured for automatic sleep using the Sleep Drift Compensation (SDC) setup, and woken with a low pulse applied to the WS pin. If the sleep feature is enabled using SDC (see Section 5.16 on page 46), and the sleep command (0x16) has been issued, the QT1481 sleeps whenever possible to conserve power. Periodically, it should be woken by the host using the WS pin. Upon being woken, the matrix is scanned and the QT1481 returns to sleep unless there is activity which demands further attention. The QT1481 returns to sleep automatically after a period of ina ctivity, the duration of which is defined by the AWAKE feature. At least one full matrix scan is always performed after waking up and before returning to sleep. At the end of each matrix scan, the part returns to sleep unless recent activity, such as a touch event, demands further attention. If there has been recent activity, the part performs another complete matrix scan before attempting to sleep once again. This process is repeated indefinitely until the activity stops and the part returns to sleep. Key touch activity forces the matrix scanning into free run whereby each matrix scan is not interleaved with sleep. The part will not sleep while any key is calibrating or if any touch events are detected at any key in the most recent scan of the key matrix. If the sleep feature is disabled in the setups, the QT1481 never sleeps. Sleep should be used with caution if the QT1481 is being used in an FMEA or EN60730 compliant design because all operations are stopped within the QT1481 while the part is asleep and the host might have difficulty distinguishing between the EN60730 counters appearing to run slow because the part is intermittently sleeping, and faulty operation. However, in the knowledge it has configured the QT1481 for sleep, the host can take this into account. For example, the host could wake the QT1481 at suitable intervals, check for correct operation and then return the QT1481 to sleep. Also see “Mains Sync – MSYNC” , Section 5.14 on page 45. 2.18 FMEA Tests Failure Modes and Effects Analysis (FMEA) is a tool used to determine critical failure problems in control systems. FMEA analysis is being applied increasingly to a wide variety of applications including domestic appliances. To survive FMEA testing the control board must survive any single problem in a way that the overall product can either continue to operate in a safe way, or shut down. The most common FMEA requirements regard opens and shorts analysis of adjacent pins on components and connectors. However, other criteria must usually be taken into account, for example complete QT1481 failure. The QT1481 incorporates a number of special self-test features which allow products to pass such FMEA tests easily, and enable key failure to be detected. These tests are performed in an extra burst slot after the last enabled key. The sequence of tests are performed repeatedly during normal running once all initialization is complete. During initialization, all FMEA error flags are cleared. Any FMEA errors are reported as the tests are performed for the first time. The FMEA testing is done on all enabled keys in the matrix, and results are reported via the serial interface. Disabled keys are not tested. Assuming the part does not sleep, the real time that elapses from the start of one sequence of FMEA tests to the start of the next, or the FMEA sequence time, never exceeds 2 s. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 16 Also, since the QT1481 only communicates in slave mode, the host can determine immediately if the QT1481 has suffered a catastrophic failure. The QT1481 can also participate in cross-checking the integrity of the host controller, and even reset the host if no communications have been heard from it in a short while (via the STATUS pin output). The FMEA tests performed are: X drive line shorts to Vdd and Vss X drive line shorts to other pins X drive signal deviation Y line shorts to Vdd and Vss Y line shorts to other pins X to Y line shorts Cs capacitor checks including shorts and opens Vref test Key gain (see Section 5.19 on page 47) Other tests incorporated into the QT1481 include: 2.19 A test for signal levels against a preset minimum value (Lower Signal Limit (LSL) setup, see Section 5.18 on page 47). If any signal level falls below this level, an error flag is generated. 16-bit CRC communications checks on all data returns. Last-command command to verify that an instruction was properly received. Loss of communications reset of the host controller. EN60730 Compliance The QT1481 also incorporates special test features which, together with the FMEA tests, allow products to achieve IEC/EN/UL60730 compliance with ease. IEC/EN60730 compliance demands dynamic verification of all safety related components and sub-components within a product. The QT1481 is able to verify some sub-components internally, but others require verification by a separate, independent processing unit with another timing source. To this end the QT1481 exposes a number of internal operating parameters through its serial communications interface and requires the cooperation of a host to check and verify these parameters regularly. It is also necessary for the host to verify the communications by checking and validat ing the CRC, which the QT1481 appends to data returns. If a CRC check should fail, the host should not rely on the data but retry the transmission. Occasional CRC failures might be anticipated as a result of noise spikes. Repeated CRC failures might indicate a safety-critical failure. Where the QT1481 is able to verify sub-components internally, but any such verification fails, the QT1481 disables serial communication and locks up in an infinite loop. The host can detect this condition if repeated CRC failures are observed. During normal operation the host must perform regular reads of the IEC/EN60730 counters (see Section 4.7 on page 28) to verify correct operation of the QT1481. The host must also perform regular reads of the QT1481 status (see Section 4.7 on page 28) and verify there are no errors reported. The FMEA error flag, LSL error flag and Setups CRC error flag must all be considered as part of an IEC/EN60730 compliant design. The host can try to recover from any safety critical failure by resetting the QT1481 using its RST pin. The host should allow a grace period in consideration of the start-up and initialisation time the QT1481 requires after reset to ability to communicate (see Section 2.14 on page 14). The sub-components that the QT1481 is able to verify internally are tested repeatedly during the normal running of the device, and the various tests run in parallel. As each test ends the result is recorded and the test is restarted. The real time that elapses from the start of each test to the start of the next iteration of the same test is called the failure detect time, or hazard time, the maximum time for which an error could be undetected. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 17 Each test is broken down into a number of smaller parts, each of which is processed in turn during each matrix scan. Each test is therefore completed either after a number of matrix scans, as shown in Table 2-3. Table 2-3. Test run times (measured in matrix scans) Required Matrix Scans to complete test Test FMEA 8 Other 18 Variable Memory 2304 Firmware CRC 2000 Setups CRC 44 Table 2-4 shows matrix scan times for Setups that yield the shortest matrix scan time and a much longer scan time resulting from the use of long dwell and low frequency settings. Table 2-4. Matrix Scan Times Setups Conditions Matrix Scan Time (ms) BL = 0 (16 pulses), DWELL = 0 (0.13 µs), FREQ0 = 1, All keys enabled, FHM = 0, MSYNC = 0 (off), SDC = 0 (sleep disabled), DEBUG=0 (off). 7.5 BL = 3 (64 pulses), DWELL = 13 (5.1 µs), FREQ0 = 25, All keys enabled, FHM = 0, MSYNC = 0 (off), SDC = 0 (sleep disabled), DEBUG = 0 (off). 17 Longer matrix scan times are possible than those shown in Table 2-4 by using even longer dwell times and higher values for FREQ0 (lower burst frequencies), but these are considered extreme settings. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 18 Table 2-5 shows the failure detect times for the internal tests assuming a matrix scan time of 9ms. Table 2-5. Failure Detect Time Test Failure Detect Time (ms) FMEA 72 Other 162 Variable Memory 20736 Firmware CRC 18000 Setups CRC 396 Conditions: Matrix scan time = 9 ms. QT1481 does not sleep for duration of tests. Longer failure detect times are possible than those shown in Table 2-5 where the matrix scan time is longer. The failure detect times are proportional to the matrix scan time. The failure detect time for other setups can therefore be determined by observing the matrix scan time using an oscilloscope and scaling the times given in Table 2-5 accordingly. Alternatively, the failure detect times can be calculated by taking the numbers from Table 2-3 and multiplying them by the matrix scan time. Unnecessarily long settings of dwell and low burst frequencies should be avoided because these will also result in undesirably long failure detect times. 2.19.1 UL approval / VDE compliance The QT1481 has been given a compliance test report by VDE and is approved by UL as a component suitable for use in both class B and class C safety critical products. By using this device and following the safety critical information throughout this datasheet, manufacturers can easily add a touch sense interface to their product, and be confident it can also readily pass UL or VDE testing. 2.20 Frequency Hopping This QT1481 supports frequency hopping, which tries to select a sampling frequency that does not clash with noise at specific frequencies elsewhere in products or product operating environments. It tries to hop away from the noise. During the acquisition bursts, a sequence of pulses are emitted with a particular spacing, which equates to a particular sampling frequency. If the latter should coincide with significant noise generated elsewhere, touch sensing may be seriously impaired or false detections may occur. To help combat such noise, the burst frequency can either be preset to one specific frequency (with frequency hopping disabled), away from the noisy frequency, or frequency hopping can be enabled and set to switch dynamically between three specific configured frequencies or even set to sweep a configured range of frequencies. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 19 3. Serial Communications 3.1 Introduction The QT1481 uses either SPI or UART communications modes; it cannot use both at the same time. The QT1481 responds on whichever interface it receives a command. The QT1481 also includes a Debug output interface, which can be used to monitor many operating variables during product development. The host device always initiates communications sequences; the QT1481 is incapable of chattering data back to the host. This is intentional for FMEA and IEC/EN60730 purposes so that the host always has total control over the communications with the QT1481. In SPI mode the QT1481 is a slave, so that even return data following a command is controlled by the host. In UART mode, the QT1481 still only responds to the host after a command, but the responses are not controlled by the host. A command from the host always ends in a response of some kind from the QT1481. Some transmission types from the host or the QT1481 employ a CRC check byte to provide for robust communications. A DRDY line that handshakes transmissions is provided. This is needed by the host from the QT1481 to ensure that transmissions are not sent when the QT1481 is busy or has not yet processed a prior command. In UART mode this line is bidirectional, and the QT1481 can use it to suspend transmissions back to the host if the host is busy. If the host does not observe the correct DRDY timing, random communication errors may result. Initiating or Resetting Communications: After a reset, or should communications be lost due to noise or out-of-sequence reception, the host should repeatedly wait for a period not less than the QT1481 communications time-out (110 ms ±5 ms), and send a 0x0F (return last command) command until the complement of 0x0F, which is 0xF0, is received. Then, the host can resume normal run mode communications from a clean start. Poll rate: The typical poll rate in normal run operation should be no faster than once per 10 ms. Even 50 ms is more than fast enough to extract status data using the 0x06 command overview (see Section 4.7 on page 28) in most situations. Streaming commands like the 0x0D command (dump setups (see Section 4.10 on page 31)) or multi-byte response commands like 0x07 can and should pace at the maximum possible rate. Run Poll Sequence: In normal run mode the host should limit traffic with a minimalist control structure (see Section 4.19 on page 32). The host should just send a 0x06 command until something requires a deeper state inspection. If there is more than one key in detect, the host should use 0x07 to find which additional keys are in detect. If there is an error, the host should ascertain the error type based on command 0x0B and take appropriate action. 3.2 DRDY Pin DRDY is an open-drain output (in SPI mode) or bidirectional pin (in UART mode) with an internal 20 k – 50 k pullup resistor. Most communications failures are the result of failure to properly observe the DRDY timing. Serial communications pacing is controlled by this pin. Use of DRDY is critical to successful communications with the QT1481. In either UART or SPI mode, the host is permitted to perform a data transfer only when DRDY has returned high. Additionally, in UART mode, the QT1481 delays responses to the host if DRDY is being held low by the host. After each byte transfer, DRDY goes low after a short delay and remains low until the QT1481 is ready for another transfer. A short delay occurs before DRDY is driven low because the QT1481 may otherwise be busy and requires a finite time to respond. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 20 DRDY may go low for a microsecond only. During the period from the end of one transfer until DRDY goes low and back high again, the host should not perform another transfer. Therefore, before each byte transmission the host should first check that DRDY is high again. If the host wants to perform a byte transfer with the QT1481 it should behave as follows: 1. Wait at least 100 µs after the previous transfer (time S5 in Figure 3-2 on page 23: DRDY is guaranteed to go low before this 100 µs expires). 2. Wait until DRDY is high (it may already be high). 3. Perform the next transfer with the QT1481. In most cases it takes up to 3 ms for DRDY to return high again. However, this time is longer with some commands or if the STS_DEBUG setup is enabled, as follows: 0x01 (Setups load): <20 ms 0x02 (Low Level Cal and Offset): <20 ms Add 15 ms to the above times if the STS_DEBUG setup is enabled. Other DRDY specifications: Min time DRDY is low: 1 µs Max time DRDY is low after reset: 100 ms 3.3 SPI Communications No special configuration is required to make the QT1481 operate in SPI mode. The QT1481 responds on the interface which is used to command it. SPI and UART interfaces cannot be used simultaneously. SPI communications operate in slave mode only, and obey DRDY control signaling. The clocking is as follows: Clock idle: High Clock shift out edge: Falling Clock data in edge: Rising Max clock rate: 4 MHz SPI mode requires five signals to operate (see Figure 3-1 on page 22): MOSI – Master out / Slave in data pin: Used as an input for data from the host (master). This pin should be connected to the MOSI (DO) pin of the host device. MISO – Master in / Slave out data pin: Used as an output for data to the host. This pin should be connected to the MISO (DI) pin of the host. MISO floats in three-state mode between bytes when SS is high to facilitate multiple devices on one SPI bus. SCK – SPI clock: Input only clock from host. The host must shift out data on the falling SCK edge, the QT1481 clocks data in on the rising edge. The QT1481 likewise shifts data out on the falling edge of SCK back to the host so that the host can shift the data in on the rising edge. Note: Important: SCK must idle high; it should never float. SS – Slave select: input only; acts as a framing signal to the sensor from the host. SSmust be low before and during reception of data from the host. It must not go high again until the SCK line has returned high; SS must idle high. This pin includes an internal pull-up resistor of 20 k – 50 k. When SS is high, MISO floats. DRDY – Data Ready: When high – indicates to the host that the QT1481 is ready to send or receive data. This pin idles high. This pin includes an internal pull-up resistor of 20 k – 50 k. In SPI mode this pin is an output only (that is, open drain with internal pull-up resistor). AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 21 Null Bytes: When the QT1481 responds to a command with one or more response bytes, the host should issue null commands (0x00) to get the response bytes back. The host should not send new commands until all the responses are accepted back from the QT1481 from the prior command via nulls. New commands attempted during intermediate byte transfers are ignored. Wake operation: The QT1481 can be configured to automatically sleep. The host must awaken the QT1481, when required, with a 8.5 µs minimum low level on the WS pin. With the SS line tied to WS, the host can simply toggle SSlow for 8.5 µs minimum to wake the QT1481. The host should not send an actual SPI byte to prevent the QT1481 from seeing a byte it cannot properly interpret due to timing errors during wake-up. Alternatively, SS can be driven low 8.5 µs before the first SCK of each transfer. There is an interval of approximately 1.5 ms from the pulse on WS before the QT1481 is able to resume processing. Transmissions to the QT1481 within this interval are discarded. The recommended method to re-establish communications after Wake from Sleep is to send the QT1481 a 0x0F (“Get Last Command” command) repeatedly until the correct response comes back (the command's own complement, that is, 0xF0). SPI Line Noise: In some designs it is necessary to run SPI lines over ribbon cable across a lengthy distance on a PCB. This can introduce ringing, ground bounce, and other noise problems which can introduce false SPI clocking or false data. Simple RC networks and slower data rates are helpful to resolve these issues. A CRC is appended to responses in order to detect transmission errors to a high level of certainty. Figure 3-1. Communications Signals – SPI Host MCU P_IN P_OUT QT Device DRDY SS SCK SCK MISO MISO MOSI MOSI AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 22 Figure 3-2. SPI Slave-only Mode Timing (Fosc = 16 MHz) S6 high via pull-up resistor DRDY (from QT) S1 S5 SS (from Host) S3 S9 CLK (from Host) S7 S8 Data shifts into QT on rising edge MOSI (Data from Host) 7 6 5 ? S2 4 3 2 1 0 (header byte) 7 6 5 4 3 2 1 0 7 6 5 (header byte) S4 4 3 2 1 0 (Null byte to get QT response) Data shifts out of QT on falling edge MISO 3-state (Data from QT) ? 7 6 5 4 3 2 1 0 3-state ? 7 6 5 4 3 2 1 0 ? 7 6 5 4 3 2 1 0 data response 3.4 S1: > 125 ns S2: < 20 ns S3: > 25 ns S4: < 20 ns S5: < 100 µs S6: > 1 µs S7: > 125 ns S8: > 125 ns S9: > 250 ns UART Communications See also Section 5.17 on page 46. UART mode is selected as soon as the QT1481 receives any data on the UART Rx pin. There is no other configuration required to make the QT1481 operate in UART mode. UART mode communications function in the same basic wa y as SPI communications. The baud rate is adjusted by means of setup parameter SR (Section 5.17 on page 46). Once a new baud rate has been set, the QT1481 must be reset for the new rate to take effect. The major difference with SPI mode is that the UART mode is asynchronous and so the host does not clock the QT1481. No framing SS or clock signal is required, simplifying the interface greatly. Return data is sent from the QT1481 back to the host when the data is ready. Multidrop capability: Tx floats within 10 µs after each transmitted byte. This line can be shared with other UART based peripherals. Tx includes an internal 20 k – 50 k pull-up resistor to Vdd to prevent the line from floating down. Wake operation: The QT1481 can be configured to automatically sleep. The host must awaken the QT1481, when required, with a 8.5 µs (minimum) low level on the WS pin. With the Rx line tied to WS the QT1481 can be awaked with a dummy byte from the host. The first received UART byte from the host after a wake should be a 0xFF; any other byte value could create a framing error. The start bit of the 0xFF forms a convenient narrow wake pulse without being long enough to be interpreted as a byte during the wake operation. There is an interval of approximately 1.5 ms from the pulse on WS before the QT1481 is able to resume processing. Transmissions to the QT1481 within this interval are discarded. The recommended method to re-establish communications after Wake from Sleep is to send a 0x0F (“Get Last Command” command) repeatedly until the correct response comes back (the command's own complement, that is, 0xF0). AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 23 Rx – Receive async data. This pin is an input only. Tx – Transmit async data. Drives out when transmitting but floats within 10 µs of the end of the stop bit, to allow bussing with several similar devices. Tx should idle high, and it includes an internal 20 k – 50 k resistor to Vdd. Tx is push-pull when transmitting data for good drive characteristics. Figure 3-3. Communications Signals – UART Host MCU QT device Rx Tx Tx Rx P_IN DRDY UART transmission parameters are: Baud rate: Start bits: Data bits: Parity: Stop bits: 9600 – 115,200 1 8 None 1 DRDY in UART mode: Section 3.2 on page 20 applies. DRDY is bidirectional in UART mode and can be pulled down by either the QT1481 or the host (wire-AND), so that either device can be inhibited from sending data until the other is ready. The host should obey this control line or transmission errors can occur. The host should grant a 10 µs grace period after clamping DRDY low in which it can still accept the start bit of a transmission from the QT1481. As explained in Section 3.2 on page 20, DRDY is not clamped low immediately after the QT1481 receives a byte; there can be up to a 100 µs delay from the end of the stop bit before DRDY goes low. Sampling of DRDY by the host should occur 100 µs after the byte has been fully sent. If DRDY is already high at this point, or becomes high, then it is clear to send. Due to the asynchronous nature of UART timing, reception of a byte is considered complete when the receiver detects the stop bit, which is typically some considerable time before the transmitter actually terminates the stop bit. Depending on the baud rate, it is therefore possible for the QT1481 to assert the DRDY pulse and start transmitting a response during the stop bit of the command from the host. If the host needs to slow the pace of the QT1481 return data, it can assert DRDY before transmitting the stop bit of the command byte. Null Bytes: Unlike SPI mode, there is no reason to send null bytes to the QT1481 in UART mode. The QT1481 responds to commands with data when ready, subject to the DRDY line being high. UART Noise: In some designs it is necessary to run Tx and Rx over a lengthy distance. This can introduce ringing, ground bounce, and other noise problems which can corrupt data. Simple RC networks and slower data rates are helpful to resolve these issues. A CRC is appended to responses in order to detect transmission errors to a high level of certainty. UART Timing Parameters: UART timings are as shown in Figure 3-4 on page 25. Delay timings for parameters U2 and U3 are dependent on the specific command. See Section 3.5. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 24 Figure 3-4. UART Timing U1: 20 µs U2, U3: See text U4: 10 µs DRDY (handshake) Rx (command from host) * * Tx(response to host) Floats high Floats high U3 U4 U1 3.5 U2 * Stop bit Debug Output Interface The QT1481 includes a debug interface which may be used for observing many internal operating variables, in real time, even while the part is actively communicating with a host over either the SPI or UART serial interfaces. The Debug interface provides a useful aid during product development (see Appendix B. on page 64). AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 25 4. Control Commands 4.1 Introduction Refer to Table 4-5 on page 35 for further details. Suggested command sequencing: See Section 4.19 on page 32. The QT1481 features a set of commands which are used for control and status reporting. The host device has to send the command to the QT1481 and await a response. SPI mode: While waiting the host should delay for 100 µs from the end of the command, then start to check if DRDY is, or goes, high. If it is high, then the host master can clock out the resulting byte(s). Command timeouts in SPI mode: Where a command involves multiple byte transfers to the QT1481, each byte must be transmitted within 110 ms ±5 ms of the prior byte or the command times out. Where a command involves a multiple byte response from the QT1481, the entire command must be completed within 110 ms ±5 ms or the command times out. No error is reported for this condition. The command simply ceases. UART mode: After the command is sent, the QT1481 sends back the response, usually starting within 1 ms. The host can clamp DRDY low (wire-AND logic) to inhibit a response (for up to 110 ms) if the host is not able to receive the transmission for a while. Command timeouts in UART mode: Where a command involves multibyte transfers in either direction, each byte must be transmitted within 110 ms ±5 ms of the prior byte or the command times out. No error is reported for this condition. The command simply ceases. Word return byte order: Where a word or long word is returned (16 or 24 bit number or bit pattern) the low order byte is sent or received first. Response delays: The QT1481 requires processing time to complete command requests and respond with an answer to the host. These timings are the same for SPI and UART modes. Most commands respond with data in 1 ms maximum; timing parameters U2 and U3 in Figure 3-4 on page 25 are therefore 1 ms maximum for these commands. The exceptions are: 0x01 (Setups upload): 0x02 (Low Level Cal and Offset): <20 ms <20 ms Add 15 ms to all stated response times if the STS_DEBUG Setup is enabled. 4.2 Null Command – 0x00 This command is used to shift back data from the QT1481 in SPI mode. Since the host device is always the master in SPI mode, and data is clocked in both directions, the Null command is required frequently to act as a placeholder where the desire is to only get data back from the QT1481, not to send a command. In SPI communications, when the QT1481 responds to a command with one or more response bytes, the host can issue a new command instead of a null on the last byte shift operation. New commands during intermediate byte shift-out operations are ignored, and null bytes should always be used. 4.3 Enter Setups Mode – 0x01 This command is used to initiate the Setups block transfer from host to QT1481. The command must be repeated twice within 110 ms or the command fails; the repeating command must be sequential without any intervening command. After the second 0x01 from the host, the QT1481 stops scanning keys and replies with the character 0xFE. This command suspends normal sensing starting from the receipt of the second 0x01. A failure of the command causes a timeout. Each byte in the block must arrive at the QT1481 no later than 110 ms after the previous one or a timeout occurs. Any timeout causes the QT1481 to cancel the block load and go back to normal operation. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 26 If no response comes back, the command was not received and the QT1481 should preferably be reset by the host just in case there are any other problems. If 0xFE is received by the host from the QT1481, then the host should begin to transmit the block of Setups to the QT1481. The DRDY line handshakes the data. The delay between bytes can be as short as 100 µs but the host can make it longer than this if required, but no more than 110 ms. The last two bytes the host should send is the CRC for the block of data only (the CRC should not include the command in its calculation). After the block transfer the QT1481 checks the CRC and responds with 0x00 if there was an error. Regardless, it programs the internal EEPROM. If the CRC was correct it replies with a second 0xFE after the EEPROM was programmed. If there was an error in the block transfer the QT1481 restores the last known good Setups from Flash memory the next time the QT1481 is reset. However until that point, the QT1481 attempts to operate using the new Setups block even if it is corrupt. Note that some Setups do not take effect until the part is reset (for example, baud rate). At the end of the full block load sequence, the QT1481 restarts sensing without recalibration. Most of the setups in the block take effect immediately, but it is important to reset the QT1481 after a block load to make all the changes effective and permanent. See Section 4.6 on page 27. Command response timing: Responses to the bytes in the setups block (both DRDY and return byte at the end) by the part can take as long as 20 ms each. 4.4 Low Level Cal and Offset – 0x02 This command must be repeated twice within 110 ms or the command fails. The repeating command must be sequential without any intervening command. After the second 0x02 from the host, the QT1481 replies with the character 0xFD. Shortly thereafter the QT1481 performs a calibration and offset procedure across all keys and restarts operation. If no 0xFD comes back, the command was not properly received or a previous command 0x02 is still being processed. This command takes up to 3 s econds to complete. The host can monitor the progress of the calibration by checking the QT1481 status byte, using command 0x06, during the course of the calibration. The calibration bit will be set throughout the process. The low level calibration an d offset procedure involves the device calibrating each key in turn at each of the operating frequencies selected with FREQ0, FREQ1 and FREQ2, calculating the difference between the signals at those frequencies and storing the results as offsets into CFO_1 and CFO_2 for each key. When the procedure is complete, the host can read back the setups and record CFO_1 and CFO_2 into its own copy of the setups block. The QT1481 does not change the Setups CRC, so there will be a mismatch in the Setups CRC after this command completes. The onus is on the host to compute the CRC and upload a definitive Setups block to the QT1481. 4.5 Cal All – 0x03 This command must be repeated twice within 110 ms or the command fails. The repeating command must be sequential without any intervening command. After the second 0x03 from the host, the QT1481 replies with the character 0xFC. Shortly thereafter the QT1481 recalibrates all keys and restarts operation. If no 0xFC comes back, the command was not properly received and the QT1481 should preferably be reset. The host can monitor the progress of the recalibration by checking the QT1481 status byte, using command 0x06, during the course of the calibration. A key shows an error flag (using command 0x8k) indicating the key calibration failed if the reference did not successfully converge with the signal average, or if its signal is below the low signal threshold. 4.6 Force Reset – 0x04 The command must be repeated twice within 110 ms or the command fails. The repeating command must be sequential without any intervening command. After the second 0x04, the QT1481 replies with the character 0xFB just prior to executing the reset operation. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 27 After any reset, the QT1481 automatically performs a full key calibration on all keys. The host can monitor the progress of the reset to see when the chip is operating again by checking the QT1481 status byte for recalibration by repeatedly issuing command 0x06 (see Section 4.7). 4.7 QT1481 Overview – 0x06 Reports the IEC/EN60730 counters, a QT1481 status byte, and the first key declaring detect. The STATUS pin becomes inactive on processing this command, if it was made active by a key touch (or release). This command returns five individual data bytes, plus two CRC bytes, in the sequence: 1. Device Status 2. Touch Overview 3. 100 ms Counter (for IEC/EN60730 compliance) 4. Matrix Scan Counter (for IEC/EN60730 compliance) 5. Signal Fail Counter (for IEC/EN60730 compliance) A 16-bit CRC is appended to the response; this CRC folds in the command 0x06 itself initially. Device Status: This byte is a collection of general status bits, see Table 4-1 on page 28. Table 4-1. Bit Device Status Bits Description 7 Reserved 6 1 = Calibration has failed on an enabled key 5 1 = FMEA failure detected 4 1 = Setups CRC mismatch 3 1 = Mains sync error 2 1 = LSL failure 1 1 = Any key in calibration 0 Reserved Bit 6: Set if calibration failed on any enabled key. Bit 5: Set if an FMEA error was detected during operation. This flag will be set during calibration after reset, and should be ignored until calibration has completed. See Section 2.18 on page 16. Bit 4: Set if a mismatch occurs with the setups CRC. If this happens, it is recommended that the QT1481 be reset, which forces the setups to be recovered from internal Flash. If a reset does not cure the problem, the setups block should be reloaded (see Section 5.31 on page 53) and the QT1481 reset again. The time required to recompute the Setups CRC and report an error is a maximum of 1150 ms. Bit 3: Set if there was a mains sync error, for example there was no Sync signal detected within the allotted 100 ms amount of time. See Section 5.14 on page 45. This condition is not necessarily fatal to operation, however the QT1481 operates very slowly and may suffer from noise problems if the sync feature is required for noise reasons. Bit 2: Reports that an enabled key has a low signal reference value, lower than the user-settable LSL value (see Section 5.18 on page 47). Bit 1: Set if any key is in the process of calibrating. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 28 Touch Overview: This byte gives an initial indication of the number of keys touched as well as the number of the first touched key, as follows: Table 4-2. Bit Key Touch Information Description 0 = No touched keys 7–6 1 = 1 key in detect 2 = 2 keys in detect 3 = 3 or more keys in detect 5–0 Number of 1st key declaring detect (0 – 47) Bits 7 – 6: A 2-bit unsigned value indicating the number of touched keys. A value of three indicates that three or more keys are touched. Bits 5 – 0: A 6-bit unsigned value encoding the first or only key to be touched, in the range 0 – 47. This number is valid only if the value encoded in bits 7, 6 is non-zero, indicating a key is touched. The IEC/EN60730 counters (100 ms, Matrix Scan, Signal Fail) can be used by the host to check the correct speed and operation of the QT1481. The host must check these values regularly to meet the requirements of IEC/EN60730. IEC/EN60730 requires that each component of a system be checked for correct operation. Where correct speed of operation must be confirmed and the QT1481 has no way to perform such a cross-check internally, counters are exposed through this command to enable independent cross-checking by the host. 100 ms Counter: This is an 8-bit unsigned counter that is incremented once every 100 ms, counting 256 steps repeatedly from 0 to 255. When the counter has reached 255 it wraps back to 0 at the next 100 ms interval. The counter should take between 25 and 26 seconds (256 x 100 ms = 25.6 s) to count up from zero to 255 and wrap back to zero again. The host must read this counter regularly and cross-check the counting rate against one of its own clock sources. If the 100 ms counter is read once every second, for example, the host should find the counter has increased by 10 counts from the value returned at each previous read and should traverse one full count range (256 steps) when the host has read the counter 25 or 26 times. The host should verify that the 100 ms counter is incrementing at the expected rate. If the counter advances faster or slower than expected, there could be a fault with the QT1481 or the host, and the host should adopt an appropriate strategy to meet the required safety standard. Signal Fail Counter: This is an 8-bit unsigned counter that is incremented each time a signal capture failure occurs. Signal capture failure can occur where keys are enabled but do not physically exist. Only keys that exist should be enabled; all other keys should be disabled. Signal capture failure can also occur where heavy noise spikes corrupt the signal; Occasional capture failure is to be expected and does not unduly affect the QT1481 performance. Regular capture failure would extend the key response time. The host must check this counter regularly. Tests should be made with a heavy noise source during development to determine how the key response time is affect and determine a maximum acceptable count rate for this counter. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 29 Matrix Scan Counter: This is an 8-bit counter that is incremented before the start of each matrix scan, or keyscan cycle, counting 256 steps repeatedly from 0 to 255. When the counter has reached 255 it wraps back to 0 at the start of the next keyscan cycle. The keyscan cycle time should be measured with an oscilloscope during development. The Matrix Scan count rate can be calculated directly from this. For example, if the keyscan cycle time is measured as 10 ms, the counter counts 256 steps in 2560 ms (256 × 10 ms). The host must read this counter regularly to check the matrix scan is operating at the expected rate. If the Matrix Scan counter is read once every 100 ms, for example, the host should find the counter has increased by 10 counts from the value returned at each previous read and should traverse one full count range (256 steps) when the host has read the counter 25 or 26 times. The host should verify the counter is incrementing at the expected rate. If the counter advances faster or slower than expected, there could be a fault with the QT1481 or the host, and the host should adopt an appropriate strategy to meet the required safety standard. Note: 4.8 The STATUS pin becomes inactive on processing this command if it was made active by a key touch (or release). See Section 5.20 on page 47 for STS_TOUCH in the STS Setups byte. Report Detections for All Keys – 0x07 Returns six bytes which indicate all keys which are in detection, if any, as a bit-field. Key 0 reports in bit 0 of byte 0, the first byte returned. Key 47 is reported in bit 7 of byte 5. See Table 4-3 on page 30. A 16-bit CRC is appended to the response; this CRC folds in the command 0x07 itself initially. Table 4-3. Bit Fields for Multiple Key Reporting and Key Numbering Bit Number (X Line Number) Byte Number Returned (Y line #) 4.9 8 7 6 5 4 3 2 1 0 0 7 6 5 4 3 2 1 0 1 15 14 13 12 11 10 9 8 2 23 22 21 29 19 18 17 16 3 31 30 29 28 27 26 25 24 4 39 38 37 36 35 34 33 32 5 47 46 45 44 43 42 41 40 Report Error Flags for All Keys – 0x0B Returns six bytes which show error flags as a bit-field for all keys plus two CRC bytes. Key 0 reports in bit 0 of byte 0, the first byte returned; key 47 is reported in bit 7 of byte 5. See Table 4-3 and Table 5-5 on page 55. This command reports an error flag for each enabled key if calibration has failed or if the key has a reference below the LSL (see Section 5.18 on page 47), or if the FMEA key gain test fails (see Section 5.19 on page 47). A 16-bit CRC is appended to the response. This CRC folds in the command 0x0B itself initially. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 30 4.10 Dump Setups Block – 0x0D This command causes the QT1481 to dump the entire internal Setups block back to the host. In UART mode, if the transfer is not paced faster than 110 ms ±5 ms per byte the transfer is aborted and the QT1481 times out. This could happen if the hos t were controlling DRDY. In SPI mode, the entire command must be competed within 110 ms ±5 ms or the transfer could be aborted. During the transfer, sensing is halted. Sensing is resumed after the command has finished. A 16-bit CRC is appended to the response; this CRC is the same as the Setups table CRC and is sent LSByte first. 4.11 EEPROM CRC – 0x0E This command returns the 16-bit CRC calculated on the set-ups block and is sent back LSByte first. The CRC sent back is the same CRC that is appended to the end of the Setups block. No CRC is appended to the response. 4.12 Return Last Command – 0x0F This command returns the last received command character, in 1’s complement (inverted). If the command is repeated twice or more, it returns the inversion of 0x0F, which is 0xF0. If a prior command was not valid or was corrupted, it returns the bad command as well. No CRC is appended to the response. 4.13 Internal Code – 0x10 This command returns an internal code, as a value from 0 – 255. A 16-bit CRC is appended to the response. This CRC folds in the command 0x10 itself initially. 4.14 Internal Code – 0x13 This command returns an internal code as a value from 0 – 255. A 16-bit CRC is appended to the response; this CRC folds in the command 0x13 itself initially. 4.15 Sleep – 0x16 The QT1481 replies with the character 0xE9 before setting an internal flag to indicate that low power sleep mode has been requested. The flag does not force the QT1481 to sleep immediately but requests the QT1481 to sleep at the end of each matrix scan whenever possible. Sleep must also be enabled in Setups (see Section 5. on page 38), otherwise this command has no effect. The internal flag is cleared upon receipt of any valid command except command 0x16, but the QT1481 must already be awake in order to receive the command. The QT1481 is awake for at least one keyscan cycle time after a wake-up pulse at the WS pin. To cancel the internal sleep request flag, issue a wake-up pulse at the WS pin and then send any valid command other than 0x16 within one matrix scan cycl e. The matrix scan cycle time is dependent on a number of Setups parameters and should be measured using an oscilloscope. See Section 2.17 on page 16 for details of the sleep behavior. 4.16 Data Set for One Key – 0x4k Returns the data set for key k, where k = 0 – 47. To form this command, the key number is logical-OR’d into the byte 0x40. This command returns 5 data bytes, plus two CRC bytes, in the sequence: Signal 2 bytes Reference 2 bytes Normal Detect Integrator 1 byte AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 31 Signal and Reference are returned LSByte first. A 16-bit CRC is appended to the response. This CRC folds in the command 0x4k itself initially. 4.17 Status for Key k – 0x8k Returns a bit-field for key k where k is from 0 – 47. The bit-field is explained in Table 4-4: Table 4-4. Status for Key k Bit Description 7 1 = Reserved 6 1 = Reserved 5 1 = Reserved 4 1 = FMEA KGTT test failed for this key 3 1 = Key is in detect 2 1 = Signal ref < LSL (low signal error). See Section 5.18 on page 47. 1 1 = Key is undergoing calibration 0 1 = Calibration on this key failed Bit 4 (FMEA KGTT) will be set during calibration after reset, and should be ignored until calibration has completed. A 16-bit CRC is appended to the response. This CRC folds in the command 0x8k itself initially. 4.18 Cal Key k – 0xCk This command must be repeated twice within 110 ms or the command fails. The repeating command must be sequential without any intervening command. This command functions the same as the 0x03 Cal All command except that this command only affects one key k where k is from 0 to 47. The chosen key k is recalibrated in its native timeslot. Normal running of the part is not interrupted and all other keys operate correctly throughout. This command is for use only during normal operation to try to recover a single key that has failed or is not calibrated correctly. Returns the 1’s complement of 0xCk just before the key is recalibrated. 4.19 Command Sequencing To interface the QT1481 with a host, the flow diagram of Figure 4-1 on page 34 is suggested. The actual settings of the Setups block used should normally just be the default settings except where changes are specifically required, such as for sensitivity, timing, or AKS changes. The circles in this drawing are communications interchanges between host and sensor. The rectangles are internal host states or processing events. If any communications exchange fails, either the QT1481 fails to respond within the allotted time, or the response CRC is incorrect, or the response is out of context (the response is clearly not for the intended command). In these cases the host should just repeat the command. The control flow spends 99% of its time alternating between the two states within the dashed rectangle. If a key is detected, the control flow enters Key Detection Processing. Stuck Key Detection processing (0xCk) is optional, since the QT1481 contains the max on-duration timeout function and can therefore recalibrate the stuck key automatically. However, the host can recalibrate stuck k eys with greater flexibility if the recalibration timeouts are set to infinite and the host recalibrates them under specific conditions. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 32 Error handling takes place whenever an error flag is detected, or the QT1481 stops communicating (not shown). The error handling procedure is up to the designer. However normally this would entail shutting down the product if the error is serious enough (for example, a key that will not calibrate, or a FMEA \ IEC/EN60730 class error). Normally it is not required to reload the setups, since the QT1481 itself stores a backup copy of these in Flash memory should the EEPROM become corrupt. However the host should reset the QT1481 so that the QT1481 copies the Flash setups to EEPROM, and then the host should check that the EEPROM CRC is correct. Only if this fails should the EEPROM be reloaded by the host. One exception to this rule is just after power-up, since a CRC error in the EEPROM setups at this point is clearly a critical error that would require reloading. This happens at the factory, during the very first power-up cycle. The Last Command command can be used at any time to resynchronize failed communications, for example due to timing errors. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 33 Figure 4-1. Suggested Communications Flow Power On or Hardware Reset 0x0F Get 'Last command' 0x0E Setups CRC Check 0xF0 returned 0xF0 not returned Setups CRC failed 1x 0x01 Load Setups Block 0x04 Force Reset CRC is OK No key, no error Setups CRC failed 2x 0x06 Device Overview ~10ms Delay > 1 Key Detected Any Error Flag, or EN60730 counter sequence error Only 1 Key in Detect 0x07 Report all detections Internal Host Processes Comms with QT Keys OK eeprom CRC error, or calibration fail, or FMEA fail, or multiple errors Key Detection(s) Processing Stuck Key Detected Note: CRC errors or incorrect responses should cause each transmission to retry resolvable error Error Handling EN60730 error, or FMEA error Calibration Error Done 0xck Cal Key 'k' Safe Shutdown 0x0B Get Errors for All Keys AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 34 Table 4-5. Hex 0x00 Command Summary Name Description Null command Used to get data back in SPI mode #/Cmd 1 # Rtnd 1 Rtn Range 0 – 0xFF CRC – Description AT42QT1481 Flushes pending data from QT1481; one required to extract each response byte. Page 26 First 0xFE issued when ready to receive data, second 0xFE issued when all loaded and burned; else timeout. 0x01 Enter Setups mode Enter Setups, stop sensing; followed by block load of binary Setups of length nn. Command must be repeated twice consecutively without any intervening command in 110 ms to execute. Sensing autorestarts, however, the QT1481 should be reset after the block load to ensure all new setups take effect. If two commands not received in 110 ms, times out and no response is issued. Part times out if each byte not received within 110 ms of previous byte. 0xFE + 0xFE 2 + nn + 2 2 OR 16 0xFE + 0x00 (err) If CRC failure, returns 0x00 instead of 0xFE Data block length is nn + 2 (CRC-16). LSL and CRC should be sent low byte first. 26 Internal EEPROM updates regardless of CRC health, but, if the CRC is bad, the EEPROM is declared invalid and thus on reset the EEPROM is restored from Flash backup, overwriting the desired (but corrupt) new setups. Forces QT1481 to calibrate at all three selected frequencies. 0x02 9621EX–AT42–07/2014 AT42QT1481 [DATASHEET] 0x03 0x04 Low Level Calibration and Offset CAL all Force reset Command must be repeated twice consecutively without any intervening command in 110 ms to execute. 2 1 0xFD – After completion, host should read back the setups block, and then upload the Setups block together with the correct CRC. Forces QT1481 to recalibrate all keys; re-enters RUN mode afterwards automatically; 0x03 must be repeated twice consecutively without any intervening command in 110 ms to execute Forces QT1481 to reset. Command must be repeated twice consecutively without any intervening command in 110 ms to execute 2 1 0xFC – 0xFD returned if command successfully received and QT1481 is not processing a previous 0x02 command. Returns 1’s complement of command to acknowledge command once the calibration has been initiated. 27 27 If two commands not received in 110 ms, times out and no response is issued. 2 1 0xFB – Returns 1’s complement of command to acknowledge command prior to reset. If two commands not received in 110 ms, times out and no response is issued. 27 35 Table 4-5. Hex Command Summary (Continued) Name Description #/Cmd # Rtnd Rtn Range CRC Description Page Returns 5 individual data bytes in following sequence: AT42QT1481 Device Status 1st key (range 0 – 47) 0x06 QT1481 Overview Device status, indication of first key touched, IEC/EN60730 counters. 1 7 0 – 0xFF each byte 16 100 ms Counter (host must read for IEC/EN60730 compliance) Matrix Scan Counter (host must read for IEC/EN60730 compliance) 28 Signal Fail Counter (host must read for IEC/EN60730 compliance) 16-bit CRC (of command + return data) is appended to return 0x07 Report all keys 0x0B Error flags for all Sends back all key detect status bits (bit-field) 1 8 Error bit fields 1 8 0 – 0xFF 6 bytes 0 – 0xFF 6 bytes 16 16-bit CRC (of command + return data) is appended to return 30 16 16-bit CRC (of command + return data) is appended to return 30 Dump of fixed length nn followed by CRC-16 0x0D Dump Setups Returns Setups block area followed by CRC. Scanning is halted and then autorestarted after the command has completed. 1 nn+2 0 – 0xFF nn + 2 bytes CRC is same as CRC at end of Setups block load. LSL and CRC words are sent back to host low byte first. 16 In UART mode, part times out if each byte not transmitted within 110 ms of previous byte. This can happen if DRDY is driven by the host. 31 In SPI mode, the entire command must be completed within 110 ms. 9621EX–AT42–07/2014 AT42QT1481 [DATASHEET] CRC-16 only on Setups block 0x0E EEPROM CRC 0x0F This CRC is the same as the CRC at the end of Setups block load. This word is returned low byte first. Gets EEPROM CRC 1 2 0 – 0xFFFF 16 31 Return last command Returns last command received 1 1 0 – 0xFF – Returns 1's complement of last command even if bad 31 0x10 Return internal code Diagnostic code for factory use. 1 3 0 – 0xFF 16 Returns internal code. 16-bit CRC (of command + return data) is appended to return 31 0x13 Return internal code Diagnostic code for factory use. 1 3 0 – 0xFF 16 Returns internal code. 16-bit CRC (of command + return data) is appended to return 31 36 Table 4-5. Hex 0x16 AT42QT1481 0x4k Command Summary (Continued) Name Description Sleep Data for 1 key Enter sleep at end of each matrix scan if no activity and if sleep is also enabled in Setups Get signal, ref, Norm DI for key k {0 – 47} Signal: 2 bytes; Ref: 2 bytes; Norm DI: 1 byte #/Cmd # Rtnd 1 1 1 7 Rtn Range 0xE9 0 – 0xFF Each byte CRC Description Page – Returns 1's complement of command to acknowledge; wakes on INT to scan matrix before returning to sleep. Sleep disabled on receipt of any other valid command. 31 16 Signal and ref are Tx as 2 bytes, LSByte first. 16-bit CRC (of command + return data) is appended to return 31 Bits 7 – 5: reserved Bit 4: 1 = FMEA KGTT test failed on this key Bit 3: 1 = key is in detect 0x8k Status for key k Get status byte for key k {0 – 47} 1 3 0 – 0xFF 16 Bit 2: 1 = (Ref < LSL) Bit 1: 1 = key is in calibration 32 Bit 0: 1 = calibration of this key failed 16-bit CRC (of command + return data) is appended to return 0xCk CAL key k Force calibration of key k where k = 0 – 47. Command must be repeated twice consecutively without any intervening command in 110 ms to execute 2 1 0x10 – 0x3F – Used in Run mode. Normal sensing of other keys not affected. CAL of k only takes place in the key’s normal timeslot. Returns the ones complement of the command char, once the calibration is scheduled. 32 9621EX–AT42–07/2014 AT42QT1481 [DATASHEET] 37 5. Setups The QT1481 calibrates and processes all signals using a number of algorithms specifically designed to provide for high survivability in the face of adverse environmental challenges. It provides a large number of processing options which can be user-selected to implement very flexible, robust keypanel solutions. User-defined Setups are employed to alter the algorithm to suit each application. The setups are loaded into the QT1481 in a block load over one of the serial interfaces and stored in an onboard EEPROM array. After a setups block load, the QT1481 should be reset to allow the new Setups block to be shadowed in internal Flash ROM and to allow all the new parameters to take effect. This reset can be either a hardware or software reset. Refer to Table 5-4 on page 53 for a list of all Setups. Block length issues: The setups block is 350 bytes long (including the two CRC bytes) to accommodate 48 keys. This can be a burden on sma ller host controllers with limited memory. In larger quantities the QT1481 can be procured with the setups block preprogrammed from Atmel. If the application only requires a small number of keys (such as 16) then the setups table can be compressed in the host by filling large stretches of the Setups area with nulls. Many setups employ lookup-table (LUT) value translation. The Setups Block Summary on page 56 shows all translation values. Default values shown are factory defaults. 5.1 Negative Threshold – NTHR The negative threshold value is established relative to a key 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. 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 ref erence point drift-compensates for these changes at a user-settable rate. The threshold level is recomputed whenever the reference point moves, and thus it is also drift compensated. The amount of NTHR required depends on the amount of signal swing that occurs when a key is touched. Thicker panels or smaller key geometries reduce key gain (signal swing from touch), thus requiring smaller NTHR values to detect touch. The negative threshold is programmed on a per-key basis using the Setup process . See Table 5-7 on page 56 and also Section 5.2 on page 39 (Threshold Multiplier – THRM) Typical values: 3 to 8 (7 to 12 counts of threshold; 4 is internally added to NTHR to generate the threshold). Default value: 6 (10 counts of threshold) AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 38 5.2 Threshold Multiplier – THRM It is sometimes useful to be able to operate the QT1481 with much higher detect thresholds than can be set with NTHR alone. The Threshold Multiplier (THRM) is a multiplier which extends the range of NTHR and PTHR considerably. The operating detect threshold for a key is arrived at by multiplying NTHR or PTHR for that key by THRM. Note that the detect threshold range is extended at the expense of the step size. Table 5-1 shows the extended threshold range for each value of THRM. Table 5-1. Extended Detect Threshold THRM Multiplier Extended Detect Threshold 0 ×1 4 – 18 1 ×2 8 – 36 2 ×4 16 – 72 3 ×8 32 – 144 This function is programmed on a global basis. See Table 5-7 on page 56. 5.3 THRM Possible range: 0, 1, 2, 3 (× 1, × 2, × 4, × 8) THRM Default value: 0 (× 1) Positive Threshold – PTHR The positive threshold is used to provide a mechanism for recalibration of the reference point when a key signal moves abruptly to the positive. This condition is not normal, and usually occurs only after a reca libration when an object is touching the key and is subsequently removed. The desire is normally to recover from these events quickly. Positive hysteresis: PHYST is fixed at 12.5% of the positive threshold value and cannot be altered. Positive threshold levels are programmed using the Setup process on a per-key basis. See also Section 5.2 on page 39 (Threshold Multiplier – THRM) Typical values: 1 to 4 (5 to 8 counts of threshold; 4 is internally added to PTHR to generate the threshold) Default value: 2 (6 counts of threshold) AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 39 5.4 Drift Compensation – NDRIFT, PDRIFT Signals can drift because of changes in Cx and Cs over time and temperature. It is crucial that such drift be compensated for, or false detections and sensitivity shifts can occur. Drift compensation (Figure 5-1 on page 40) 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 QT1481 drift compensates using a slew-rate limited change to the reference level; the threshold and hysteresis values are slaved to this reference. Figure 5-1. Thresholds and Drift Compensation Reference Hysteresis Threshold Signal Output DRIFTST 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) causes the signal to rise very slightly due to an enhancement of coupling. This is contrary to the way most capacitive sensors operate. Once a finger is sensed, the drift compensation mechanism ceases since the signal is legitimately detecting an object. Drift compensation only works when the signal in question has not crossed the negative threshold level. 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 changing the NDRIFT and PDRIFT Setups parameters. This can be done on a per-key basis. Specifically, drift compensation should 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, could suddenly be removed leaving the sensor with an artificially suppressed reference level and thus become insensitive to touch. In the latter case, the sensor should compensate for the object's removal by raising the reference level relatively quickly. Drift compensation and the detection time-outs work together to provide for robust, adaptive sensing. The time-outs provide abrupt changes in reference calibration depending on the duration of the signal event. NDRIFT and PDRIFT are effective while the part is awake. If sleep is enabled, SDC must also be configured so drift compensation operates at the desired rate. NDRIFT Typical values: 9 to 11 (2 to 3.3 s / count of drift compensation translation via LUT, page 56) NDRIFT Default value: 10 (2.5 s / count of drift compensation) PDRIFT Typical values: 9 to 11 (2 to 3.3 s / count of drift compensation; translation via LUT, page 56) PDRIFT Default value: 10 (2.5 s / count of drift compensation) AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 40 5.5 Detect Integrators – NDIL, FDIL The NDIL parameter is used to enable and disable keys in the matrix and to provide signal filtering. To enable a key, its NDIL parameter should be nonzero (NDIL = 0 disables a key). To suppress false detections caused by spurious events like electrical noise, the QT1481 incorporates a detection integrator or DI counter mechanism. A per-key counter is incremented each time the key has exceeded its threshold and is decremented each time the key does not exceed its threshold. When this counter reaches a preset limit the key is finally declared to be touched. The DI mechanism uses two counters. The first is the fast DI counter FDIL. When a key signal is first noted to be below the negative threshold, the key enters 'fast burst' mode. In this mode the burst is rapidly repeated for up to the specified limit count of the fast DI counter. Each key has its own counter and its own specified fast-DI limit (FDIL), which can range from 1 to 15. (FDIL = 0 is invalid; do not use). When fast-burst is entered the QT1481 locks onto the key and repeats the acquire burst until the fast-DI counter reaches FDIL or drops back to zero. After this the QT1481 resumes normal keyscanning and goes on to the next key. The Normal DI counter counts the number of times the fast-DI counter reached its FDIL value. The Normal DI counter can only increment once per complete scan of all keys. Only when the Normal DI counter reaches NDIL does the key become formally active. The net effect of this is that the sensor can rapidly lock onto and confirm a detection with many confirmations, while still scanning other keys. The ratio of fast to normal counts is completely user-settable via the Setups process. The total number of required confirmations is equal to FDIL times NDIL. If FDIL = 6 and NDIL = 2, the total detection confirmations required is 12, even though the QT1481 scanned through all keys only twice. The DI is extremely effective at reducing false detections at the expense of slower reaction times. In some applications a slow reaction time is desirable. TheDI can be used to intentionally slow down touch response in order to require the user to touch longer to operate the key. If FDIL = 1, the QT1481 functions conventionally. Each channel acquires only once in rotation, and the normal detect integrator counter (NDIL) operates to confirm a detection. Fast-DI is in essence not operational. If FDIL 2, then the fast-DI counter also operates in addition to the NDIL counter. If Signal <NTHR: The fast-DI counter is incremented towards FDIL due to touch. If Signal >NTHR then the fast-DI counter is decremented due to lack of touch. Disabling a key: If NDIL = 0, the key becomes disabled. Keys disabled in this way are pared from the burst sequence in order to improve sampling rates and thus response time. See Section 2. on page 7. Note: It is very important to disable keys that do not physically exist in the layout, otherwise real keys can incorrectly report their signal as zero. This function is programmed on a per-key basis. Do not use FDIL = 0 because it is invalid. NDIL Typical values: 2, 3 NDIL Default value: 2 FDIL Typical values: 4 to 6 FDIL Default value: 5 AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 41 5.6 Detect Integrator Multiplier – DIM It is sometimes useful to be able to operate the QT1481 with a high er detect integrator limit than can be set with NDIL alone. The Detect Integrator Multiplier (DIM) is a multiplier which extends the range of NDIL. The operating detect integrator limit for a key is arrived at by multiplying NDIL for that key by DIM. Note that the detect integrator range is extended at the expense of the step size. Table 5-2 shows the extended detect integrator range for each value of DIM. This function is programmed on a global basis. See Table 5-7 on page 56. Table 5-2. Extended Detect Integrator Limit DIM Multiplier Extended Integrator Limit 0 ×1 1 – 15 1 ×2 2 – 30 2 ×4 4 – 60 3 ×8 8 – 120 If a key is disabled with NDIL = 0, DIM is ignored for that key. DIM Default value: 0 (× 1) DIM Possible range: 0, 1, 2, 3 (× 1, × 2, × 4, × 8) 5.7 Negative Recal Delay – NRD If an object unintentionally contacts a key resulting in a detection for a prolonged interval it is usually desirable to recalibrate the key in order to restore its function, perhaps after a time delay of some seconds. The Negative Recal Delay timer monitors such detections. If a detection event exceeds the timer's setting, the key is automatically recalibrated. After a recalibration has taken place, the affected key once again functions normally even if it is still being contacted by the foreign object. This feature is set on a per-key basis using the NRD setup parameter. NRD can be disabled by setting it to zero (infinite timeout) in which case the key never autorecalibrates during a continuous detection (but the host could still command it). NRD is set using one byte per key, which can range in value from 0 – 254. NRD above 0 is expressed in 0.5 s increments. Thus if NRD = 120, the timeout value is actually 60 seconds. Note: 5.8 255 is an illegal number; do not use. NRD Typical values: 20 to 60 (10 s to 30 s) NRD Default value: 20 (10 s) NRD Range: 0 – 254 (, 0.5 s – 127 s) Positive Recalibration Delay – PRD 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 NRD autorecalibration, and thereafter the signal rapidly returned to normal (positive excursion). As an example of the latter, if a foreign object or a finger contacts a key for period longer than the Negative Recal Delay (NRD), the key is by recalibrated to a new lower reference level. Then, when the condition causing the negative swing ceases to exist (the object is removed), the signal can suddenly swing back positive to near its normal reference. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 42 It is almost always desirable in these cases to cause the key to recalibrate quickly so as to restore normal touch operation. The time required to do this is governed by PRD. In order for this to work, the signal must rise through the positive threshold level PTHR continuously for the PRD period. After the PRD interval has expired and the auto-recalibration has taken place, the affected key once again functions normally. PRD is set on a per-key basis. The functioning of the PRD setting is determined by an index to a lookup table, found on page 56. The values of time can range from 0.1 s to 25 s. Setting the parameter to 0 disables the feature. 5 to 8 (0.7 s to 2.0 s) 6 (1 s) 0 – 15 (, 0.1 s – 25 s) PRD Typical values: PRD Default value: PRD Range: 5.9 Burst Length – BL The signal gain 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 X line. Each QT process is simply the pulsing of an X line once, wit h corresponding Y lines enabled to capture the resulting charge passed through the keys capacitance Cx. QT1481 uses a fixed number of QT cycles which are execut ed in burst mode. There can be up to 64 QT cycles in a burst, in accordance with the list of permitted values shown in Table 5-7 on page 56. Increasing burst length directly affects key sensitivity. This occurs because the accumulation of charge in the charge integrator is directly linked to the burst length. The burst length can be set for each key individually; charge is selectively captured on all Y lines simultaneously during the burst on each X line. Apparent touch sensitivity is also controlled by the Negative Threshold level (NTHR). Burst length and NTHR interact. Normally burst lengths should be kept as short as possible to limit RF emissions, but NTHR should be kept above 6 to reduce false detections due to external noise. The detection integrator mechanism also helps to prevent false detections. 5.10 BL Typical values: 2, 3 (48, 64 pulses / burst) BL Default value: 2 (48 pulses / burst) BL Possible values: 0, 1, 2, 3 (16, 32, 48, 64 pulses) Adjacent Key Suppression Technology – AKS The QT1481 incorporates Adjacent Key Suppression (AKS) technology that can be selected on a per-key basis. AKS technology permits the suppression of multiple key presses based on relative signal strength. This feature assists in solving the problem of surface moisture which can bridge a key touch to an adjacent key, causing multiple key presses. This feature is also useful for panels with tightly spaced keys, where a fingertip might inadvertently activate an adjacent key. AKS technology works for keys that are AKS-enabled anywhere in the matrix and is not restricted to physically adjacent keys. The QT1481 has no knowledge of which keys are actually 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 during the DI process. Once a key reaches detect it stays in detect as long as the touch remains, regardless of the signal strength on any other AKS-enabled keys. 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 have different sizes, it may be necessary to reduce the gains of larger keys to equalize the effects of AKS technology. The signal threshold of the larger keys can be altered to compensate for this without causing problems with key suppression. Adjacent Key Suppression works to augment the natural moisture suppression of narrow gated transfer switches creating a more robust sensing method. AKS Default value: 0 (Off) AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 43 5.11 Oscilloscope Sync – SSYNC The S_Sync pin can output a positive pulse oscilloscope sync that brackets the burst of a selected X line. More than one burst can output a sync pulse as determined by the Setups parameter SSYNC for each X line (see Table 5-3). This feature is invaluable for diagnostics; without it, observing signals clearly on an oscilloscope for a particular burst is very difficult. The bits of this Setup byte are allocated as shown in Table 5-3. Table 5-3. Note: SSYNC Bits Bit Scope Sync Output When Burst On... 7 X7 6 X6 5 X5 4 X4 3 X3 2 X2 1 X1 0 X0 STS_DEBUG shares the use of Pin 43 with SSYNC, but only one feature should be enabled at a time. To prevent interference, all SSYNC bits should be set to zero (Off) if Debug output is desired. This function is supported in Atmel QmBtn PC software. SSYNC Default value: 5.12 0 (Off) Negative Hysteresis – NHYST The QT1481 employs programmable hysteresis levels of 6.25%, 12.5%, 25%, or 50%. The hysteresis is a percentage of the distance from the threshold level back towards the reference, and defines the point at which a touch detection drops out. A 12.5% hysteresis point is closer to the threshold level than to the signal reference level. Hysteresis prevents chatter and works to make key detection more robust. Hysteresis is only used once the key has been declared to be in detection, in order to determined when the key should drop out. Excessive amounts of hysteresis can result in stuck keys that do not release. Conversely, low amounts of hysteresis can cause key chatter due to noise or minor amounts of finger motion. The hysteresis levels are set for all keys only; it is not possible to set the hysteresis differently from key to key. NHYST Typical values: 0, 1 (6.25%, 12.5%) NHYST Default value: 1 (12.5%) NHYST Possible range: 0, 1, 2, 3 (6.25%, 12.5%, 25%, 50%) AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 44 5.13 Dwell Time – DWELL The Dwell parameter in Setups causes the acquisition pulses to have differing charge capture durations. Generally, shorter durations provide for enhanced surface moisture suppression, while longer durations are required where the keypanel design includes higher-resistance tracks such as silver and ITO. Longer durations are also usually more compatible with EMC requirements. Longer dwell times permit the use of larger series resistors in the X and Y lines to suppress RFI effects, without compromising key gain (Section 2.10 on page 12). This setup lets the designer trade one requirement for another. 5.14 DWELL Typical value: 1 (188 ns) DWELL Default value : 1 (188 ns) DWELL Possible values: 0 – 15 (125 ns – 9.9 µs), accuracy is ±10% Mains Sync – MSYNC The MSync feature uses the WS pin. The Sleep and Sync features can be used simultaneously, in which case the QT1481 wakes on the mains sync signal, scans the matrix and then returns to sleep automatically. External fields can cause interference leading to false detections or sensitivity shifts. Most fields come from AC power sources. RFI noise sources are heavily suppressed by the low impedance nature of the QT circuitry itself. Noise such as from 50 Hz or 60 Hz fields becomes a problem if it is uncorrelated with acquisition signal sampling; uncorrelated noise can cause aliasing effects in the key signals. To suppress this problem the WS input 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 noise sync operating mode is set by parameter MSYNC in Setups. The sync occurs only at the burst for the lowest numbered enabled key in the matrix. If it does not sleep at the end of the matrix scan, the QT1481 waits for the sync signal for up to 100 ms after the end of a preceding full matrix scan, then the matrix is scanned in its entirety again. If the QT1481 sleeps, it waits indefinitely for the mains sync. 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. If mains sync is enabled and sleep is disabled, the QT1481 synchronizes to the falling sync edge. However, if both mains sync and sleep are enabled, the QT1481 is sensitive to a low level on WS. A first matrix scan occurs when the low level is first detected, and further matrix scans occur for as long as WS is held low. It is therefore recommended that WS is driven low for less than a single matrix scan time. Since Noise sync is highly effective and inexpensive to implement, it is strongly advised to take advantage of it anywhere there is a possibility of encountering low frequency (50/60 Hz) electric fields. Atmel QmBtn software can show such noise effects on signals, and therefore assist in determining the need to make use of this feature. If the sync feature is enabled but no sync signal exists, the sensor continues to operate but with a delay of 100 ms from the end of one scan to the start of the next, and hence has a slow response time. A failed Sync signal (one exceeding a 100 ms period) causes an error flag (see command 0x06). From reset, the QT1481 first reports a mains sync error after initialisation followed by a delay of 100 ms waiting for the sync signal. This time interval may be determined by adding 100 ms to the initialisation times stated in Section 2.14 on page 14. MSYNC Default value: MSYNC Possible range: 0 (Off) 0, 1 (Off, On) AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 45 5.15 Restart Interrupted Burst – RIB The RIB parameter in Setups allows a burst to be interrupted, and restarted, by host communications over the serial bus. The QT1481 has limited processing resources available such that a burst and host communication cannot both be serviced simultaneously. One must give way to the other. This setup lets the designer prioritize one over the other. If RIB is configured on, a burst can be interrupted by a host communication, and is automatically restarted. If RIB is configured off, bursts cannot be interrupted but, rather, the host communication is delayed until the burst has completed. The DRDY low period is stretched by the QT1481 during the burst. This function is programmed on a global basis. See Table 5-8 on page 57. RIB Default value: 0 (Off) RIB Possible range: 0, 1 (off, On) 5.16 Sleep Drift Compensation – SDC See also Section 5.4 on page 40 Sleep, NDRIFT and PDRIFT. SDC allows the QT1481 to be configured for automatic sleep, and for modified drift compensation when sleep is enabled. Whenever the QT1481 goes to sleep, the whole device is shutdown, including the clock generator. All operations are stopped including matrix scanning and timers, which results in the internal time keeping running very slow and, in particular, drift compensation runs at a rate much slower than configured by NDRIFT and PDRIFT. For example, with NDRIFT and PDRIFT configured such that drift compensation occurs once every second when the QT1481 is awake, and with the QT1481 being awake for 5 ms to scan the matrix before falling asleep for 495 ms, all internal timers are slowed by a factor of 100 (5/500), and drift compensation would occur at the much slower rate of just once every 100 s. This would typically result in the key references not tracking signal variations adequately, and could result in false detections. To help resolve this, SDC can be configured so that the QT1481 performs drift compensation after a specific number of sleeps. With SDC = 0, sleep is disabled With SDC = 1, drift compensation occurs after every sleep With SDC = 7, drift compensation is applied after every sixty-four sleeps This function is programmed on a global basis. See Table 5-8 on page 57. 5.17 SDC Default value: 0 (off, Sleep disabled) SDC Possible range: 0 – 7 (off, 1 – 64) Serial Rate – SR The possible baud rates are shown in Table 5-7 on page 56. The rate chosen by this parameter only affects UART mode. SPI mode is slave-only and can clock at any rate from DC up to 4 MHz. The baud rate can be adjusted to one of five values from 9600 to 115.2 kbaud. SR Default value: 0 (9600 baud) AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 46 5.18 Lower Signal Limit – LSL This Setup determines the lowest acceptable value of signal level for all keys. If any key reference level falls below this value, the QT1481 declares an error condition in the key status bits (See Section 4.7 on page 28 and Section 4.9 on page 30). Testing is required to ensure that there are adequate margins in this determination. Key size, shape, panel material, burst length, and dwell time all factor into the detected signal levels. This parameter occupies 2 bytes (11 bits) of the setups. LSL Default value: LSL Possible range: 5.19 100 (recommended value) 0 – 2047 Key Gain Test Threshold – KGTT The Key Gain test takes a special sample from each enabled key using half the usual burst length, and compares the resulting signal against each key normal signal. The test passes if the signal has decreased by the Key Gain Te st Threshold (KGTT). The following equation must hold for the test to pass: (Normal Signal – Test Signal) = KGTT Disabled keys are not tested. The Key Gain Test Threshold can be configured to a value between 4 and 64, via LUT (see Table 5-8 on page 57). KGTT occupies 4 bits only, sharing the same word as the Lower Signal Limit. This function is programmed on a global basis. 5.20 KGTT Default value: 7 (32) KGTT Possible range: 0 – 15 (4 – 64) STATUS Output – STS The STATUS pin is designed to be used as a status and error signaling mechanism for the host controller. One use for this pin is to alert the host that there is key activity, in order to limit the amount of communication between the QT1481 and the host. The STATUS pin should ideally be connected to an interrupt pin on the host that can detect an edge, following which the host can proceed to poll the QT1481 for further information. The STATUS pin is an open-drain output with an internal 20 k – 50 k pull-up resistor. This allows multiple devices to be connected together in a single wire-OR logic connection with the host. When the STATUS pin becomes active, the host can poll all devices to identify which one is reporting. Table 5-5 on page 55 shows the possible internal conditions that can cause the STATUS pin to become active. Except for STS_DEBUG, the various items in the table are logical-OR'd together. STS_TOUCH: When this option (STS, bit 5) is enabled, the STATUS output can be used to alert the host of touch changes. The STATUS output becomes active after reset and when there is a change in key state (either touch or touch release). It does not self-clear but becomes inactive again only after the host issues command 0x06. After the host has issued command 0x06, the STATUS output becomes inactive at the end of the matrix scan provided that there are no keys in detect and there are no other conditions demanding it be active. To avoid missing touches and future STATUS assert edges, the host should issue further 0x06 commands until STATUS becomes inactive. STS_DEBUG: When this option is enabled (STS, bit 7, See Section B. on page 64), the QT1481 streams one frame of data out of the Debug port after each matrix scan. When STS_DEBUG is enabled it impacts the key response time because the next matrix scan is delayed until the debug frame has been fully transmitted. To prevent interference, this bit should be used exclusively, and not in conjunction with any other bit. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 47 STS_RSTHOST: The STATUS pin can even be used as a watchdog for the host, to reset it should the host fail to send regular transmissions to the QT1481 (bit 0 of STS byte). The comms timeout required to generate the reset signal is about 2 seconds of inactivity. If this feature is enabled, it does not become effective until the first command is received from the host; therefore, it is assumed that there is at least some initial host activity for this feature to work. Note: 1. The STATUS output is preserved during sleep. 2. To prevent interference, STS_DEBUG should not be enabled with any other item. 3. The reset pulse should be allowed to complete before the host sends commands to the Q T1481. If commands are received from the host while STATUS is low, STATUS will remain low until the commands stop and the 2 s internal host reset timer is allowed to fully cycle. STS Default value: 0x20 (STS_TOUCH) 5.21 Awake Time – AWAKE The AWAKE feature is effective only if the part has been configured for automatic sleep, via SDC, and if the sleep command (0x16) has been issued. AWAKE determines the period of time that elapses from the last key release before the part tries to sleep. An internal timer is restarted at each key release and runs for the time configured via AWAKE. The part will not enter sleep while this timer is active, or while any of the following conditions are present: DRDY asserted (low level) SS low (assume host trying to send a command) A command is being processed or response data is being returned or pending return to the host Any key calibrating Any key touch delta exceeds the threshold (positive or negative) Note: If the sleep feature has been disabled, the QT1481 never sleeps and the AWAKE setup has no effect. The AWAKE period can be configured to one of 16 values between 100 ms and 25.4 s via LUT (see Table 5-8 on page 57). This function is programmed on a global basis. 5.22 AWAKE default value: 15 (25.4 s) AWAKE range: 0 – 15 (100 ms – 25.4 s) AWAKE Timeout accuracy: to within ±50 ms Drift Hold Time – DHT Drift Hold Time (DHT) is used to suspend drift compensati on from all keys while the keypad is being used. With the feature enabled, drift compensation is suspended while any key is touched and also for a period afterwards. DHT defines the length of time the drift compensation continues to be suspended after a key detection has finished. This feature is particularly useful in cases of high-density keypads where touching a key or hovering a finger over the keypad would cause untouched keys to drift, and therefore create a sensitivity shift, and ultimately inhibit other touch detections. DHT can be configured to one of 16 values between 100 ms and 25.4 s via LUT (see Table 5-8 on page 57). This function is programmed on a global basis. DHT default value: 11 (9 s) DHT range: 0 – 15 (100 ms – 25.4 s) AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 48 5.23 Frequency Hopping Mode – FHM Frequency hopping can be disabled altogether or enabled to one of three different active modes with FHM. FHM = 0 – Frequency hopping disabled If frequency hopping is disabled, the QT1481 always uses the same frequency, defined by FREQ0. FHM = 1 or 2 If frequency hopping is enabled with FHM = 1 or FHM = 2, the QT1481 continually monitors the noise across all keys and switches frequencies dynamically to try and find the frequency with the lower noise amplitude. Up to three different frequencies can be selected using FREQ0, FREQ1 and FREQ2. If frequency hopping between only two frequencies is desired, the same frequency should be selected for two of these functions. The signal levels can vary slightly with frequency, and so the reference for each key might need a corresponding adjustment during frequency hopping to compensate for this and to prevent false detections and unresponsive keys. The mechanism used to adapt the references is different depending on the frequency hop mode set. FHM = 1 – Calibrate after hop If frequency hopping is enabled with FHM = 1, the QT148 1 compensates for the variations in signal level by recalibrating each key immediately after each frequency hop. A negative aspect to this mode is the danger that a key is being touched at the time of the frequency hop. If this were to happen, the touched key would be recalibrated to the touching finger and the detect would be cancelled. However, on subsequent removal of the touch (for a time greater than or equal to the PRD function) the key would be recalibrated again and the detect flagged when the touch is re-established. FHM = 2 – Adjust each key's reference during hop If frequency hopping is enabled with FHM = 2, the QT1481 adjusts each key's reference at each frequency hop. The amount of the adjustment must first be configured using the setups CFO_1 and CFO_2. The QT1481 will not switch the frequency during calibration if FHM is set to 1 or 2. FHM = 3 – Frequency sweep This mode offers high noise immunity and is recommended as the mode of choice. If frequency hopping is enabled with FHM = 3, the QT1481 repeatedly sweeps the sampling frequency through a range bounded by two frequencies defined by FREQ0 and FREQ1. The frequency is changed after every matrix scan. In this hop mode, the reference for each key is not adjusted as the frequency is change d, so the signal levels must not vary significantly over the selected frequency range otherwise false detects or unintentional touch dropouts could occur. Variations in signal levels can be limited by restricting the frequency sweep range. If the signal variation for any particular key is found to be too great, the range of frequencies should be narrowed by decreasing the difference in values set at FREQ0 and FREQ1. This function is programmed on a global basis. See Table 5-7 on page 56. FHM Default value: 1 = Calibrate all keys after hop FHM Recommended value: 3 = Frequency sweep FHM Possible range: 0–3 (0 =off 1 = Calibrate all keys after hop 2 = Adjust each key's reference during hop 3 = Frequency sweep) AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 49 5.24 Frequency 0 – FREQ0 FREQ0 is used in all frequency hopping modes and even if frequency hopping is disabled. In all modes, it defines the idle time between pulses in the burst. Larger values yield longer times between pulses and thus a lower fundamental frequency. FHM = 0 – Frequency hopping disabled If frequency hopping is disabled, the QT1481 always uses the same frequency, defined by FREQ0. Frequency hopping might not be desirable in all applications and it might be more appropriate to preselect a burst freq uency at the factory which is known not to coincide with other operating frequencies within the end product or other frequencies in the operating environment. In such cases, FHM can be set at zero, and the burst frequency set with FREQ0. Together with DWELL, FREQ0 allows the fundamental frequency to be set in the range 31 kHz – 943 kHz. The frequency for a specific DWELL and FREQ0 combination should be measured using an oscilloscope (temporarily disable frequency hopping to make the measurement easier). FHM = 1 or FHM = 2 – Frequency hopping between three frequencies If frequency hopping is enabled with FHM = 1 o r FHM = 2, the QT1481 can hop between three frequencies configured using FREQ0, FREQ1 and FREQ2. FHM = 3 – Frequency sweep With FHM = 3, the QT1481 sweeps a range of frequencies, with the upper frequency boundary (shortest idle time) defined by FREQ0. FREQ1 must be set to a value greater than FREQ0; the behavior is otherwise undefined. This function is programmed on a global basis. See Table 5-7 on page 56. 5.25 FREQ0 Default value: 24 (delay cycles) FREQ0 Possible range: 0 – 63 (Highest frequency to Lowest frequency) Frequency1 – FREQ1 FREQ1 is used only if FHM is set to a non-zero value. It is not used if frequency hopping is disabled with FHM = 0. With FHM = 1 or FHM = 2, FREQ1 allows configuration of one of three operating frequencies by defining the idle time between pulses in the burst. Larger values yield lo nger times between pulses and thus a lower fundamental frequency. With FHM = 3, the QT1481 sweeps a range of frequencies, with the lower frequency boundary (longest idle time) defined by FREQ1. FREQ1 must be set to a value greater than FREQ0; the behavior is otherwise undefined. This function is programmed on a global basis. See Table 5-7 on page 56. 5.26 FREQ1 Default value: 30 (delay cycles) FREQ1 Possible range: 0 – 63 (Highest frequency to Lowest frequency) Frequency2 – FREQ2 FREQ2 is used only if FHM = 1 or FHM = 2; it is not used if FHM is set to zero or 3. With FHM = 1 or FHM = 2, FREQ2 allows configuration of one of three operating frequencies by defining the idle time between pulses in the burst. Larger values yield lo nger times between pulses and thus a lower fundamental frequency. This function is programmed on a global basis. See Table 5-7 on page 56. FREQ2 Default value: 36 (delay cycles) FREQ2 Possible range: 0 – 63 (Highest frequency to Lowest frequency) AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 50 5.27 Noise Threshold – NSTHR NSTHR is used only if FHM = 1 or FHM = 2; it is not used if FHM is set to 0 or 3. When FHM = 1 or FHM = 2, the QT1481 considers a hop to one of the other frequencies when the noise at the current frequency consistently exceeds the threshold configured with NSTHR. NSTHR is used by the frequency hopping algorithms to determine if a signal delta should be considered as noise. A delta, of either polarity, greater than or equal to NSTHR, is considered as possible noise and forces the Noise Integrator counter to be incremented. This function is programmed on a global basis. See Table 5-7 on page 56. 5.28 NSTHR Default value: 0 (5 counts) NSTHR Possible range: 0 – 15 (5 – 50 counts) Noise Integrator Limit – NIL NIL is used only if FHM = 1 or FHM = 2; it is not used if FHM is set to zero or 3. The QT1481 considers a hop to one of the other frequencies when the noise at the current frequency consistently exceeds the threshold configured with NSTHR. To prevent true touch events and other brief signal anomalies being considered as noise, the QT1481 uses counters, called noise integrators, to track the number of signal deltas that exceed the noise threshold. It maintains two counters, one for positive deltas and one for negative deltas. The QT1481 considers a frequency hop only if both counters reach the noise integrator limit (NIL). The counters are reset to zero at the end of each matrix scan. This mechanism provides a robust way of detecting strong noise while suppressing unnecessary frequency hopping. This function is programmed on a global basis. See Table 5-7 on page 56. 5.29 NIL Default value: 3 NIL Possible range: 0 – 15 (0 – 2 = factory use only) Calibrated Frequency Offset – CFO_1 and CFO_2 The Calibrated Frequency Offset (CFO) values are used when the frequency hop mode is set to 2. They are used to adjust each key's reference whenever a frequency hop occurs, taking into account any differences in calibrated signal at the different frequencies. The device uses the highest selected frequency as a point of reference and calculates offsets in calibrated signals at the other two frequencies relative to the highest one. The following explanation assumes that FREQ0 defines the highest frequency, for convenience of this discussion, but that does not need to be the case. Note: Configure FREQ0, FREQ1 and FREQ2 before trying to configure CFO_1 and CFO_2. Command 0x02 can be invoked to automatically fill out the CFO_1 and CFO_2 values. Alternatively, CFO_1 and CFO_2 can be manually configured, or fine tuned. Once FREQ0, FREQ1 and FREQ2 have been configured for the three chosen frequencies, CFO_1 and CFO_2 should be loaded with the signal offsets appropriate for the signal shifts observed when switching between the three different frequencies. Follow these steps to determine the different signal levels for each key at each frequency and to determine appropriate values to load into CFO_1 and CFO_2. 1. Configure FHM = 0 to disable frequency hopping temporarily. 2. Configure FREQ0 to select the highest of the chosen frequencies. That is, FREQ0 should be set to a lower value than FREQ1 and FREQ2. 3. Recalibrate all keys. 4. Make a note of each key reference level, Ref(k, f0) 5. Configure FREQ0 to select the second of the chosen frequencies. 6. Recalibrate all keys. 7. Make a note of each key reference level, Ref(k, f1). AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 51 8. Configure FREQ0 to select the last of the chosen frequencies. 9. Recalibrate all keys. 10. Make a note of each key reference level, Ref(k, f2). 11. Determine the difference in signal for each key in turn when the frequency changes from FREQ0 to FREQ1, using the following equation: Diff(k, f0, f1) = Ref(k, f0) – Ref(k, f1) (this value will nearly always be positive. If it is negative, set Diff(k, f0, f1) to zero) 12. Store Diff(k, f0, f1) into the corresponding CFO_1 for the k. 13. Determine the difference in signal at each key when the frequency changes from FREQ0 to FREQ2, using the following equation: Diff(k, f0, f2) = Ref(k, f0) – Ref(k, f2) (this value will nearly always be positive. If it is negative, set Diff(k, f0, f1) to zero) 14. Store Diff(k, f0, f2) into the corresponding CFO_2 for key k. 15. Configure FHM = 2. 5.30 CFO_1/2 Default value: 0 CFO_1/2 Possible range: 0 – 255 Setups CRC – SCRC The setups block terminates with a 16-bit CRC, SCRC, of the entire block. The formulae for calculating this CRC is shown in Appendix A.. The low order byte should be sent first. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 52 5.31 Setups Block Setups data is sent from the host to the QT1481 in a block of hex data. The block can only be loaded in Setups mode following two 0x01 commands (Section 4.3 on page 26). Refer to Table 5-7 on page 56 for further details. Table 5-4. AT42QT1481 Byte Setups Block Parameter Symbol Neg threshold NTHR Pos Threshold PTHR Neg Drift Comp NDRIFT Pos Drift Comp PDRIFT Normal DI Limit NDIL Fast DI Limit FDIL Neg recal delay NRD Pos recal delay PRD Burst Length BL AKS AKS 240 Cal.Freq.Offset 1 CFO_1 288 Cal.Freq.Offset 2 CFO_2 Neg Hysteresis Mains Sync Sleep Drift Comp SDC Threshold Mult THRM Dwell Time DWELL Serial rate SR 0 48 96 144 192 336 9621EX–AT42–07/2014 AT42QT1481 [DATASHEET] 337 338 340 Bytes 48 48 48 48 48 Key Default Scope Value Description Valid Range Bits NTHR =0 – 15 4 1 6 Lower nibble = Neg Threshold – take operand and add 4 to get value PTHR = 0 – 15 4 1 2 Upper nibble = Pos Threshold – take operand and add 4 to get value NDRIFT = 0 – 15 4 1 10 Lower nibble = Neg Drift comp – via LUT PDRIFT = 0 – 15 4 1 10 Upper nibble = Pos Drift comp – via LUT NDIL = 0 – 15 4 1 2 Lower nibble = Normal DI Limit, values same as operand (0 = disabled burst) FDIL = 0 – 15 4 1 5 Upper nibble = Fast DI Limit, values same as operand (0 is invalid; do not use) 0 – 254 8 1 20 PRD = 0 – 15 4 1 6 Lower nibble = PRD, via LUT, default = 6 (1 second) 42 Range is in 0.5 sec increments; 0 = infinite; default = 10s (operand = 20) Range is {infinite, 0.5 – 127s}; 255 is illegal to use Page 38 39 40 41 42 BL =0 – 3 2 1 2 Bits 5, 4: = BL, via LUT, default = 48 (setting = 2) 43 AKS = 0, 1 1 1 0 Bit 6 = AKS, 1 – enabled 43 48 0 – 255 8 1 0 Value is the signal offset 51 48 0 – 255 8 1 0 Value is the signal offset 51 NHYST NHYST = 0 – 3 2 48 1 Bits 1,0 = Neg hysteresis, all keys; default = 12.5% 44 MSYNC MSYNC = 0, 1 1 48 0 Bits 5 = Mains sync, negative edge, 1 = enabled; default = 0 (off) 45 SDC = 0 – 7 3 48 0 Bits 4 – 2 = Sleep Drift Compensation, 0 = sleep disabled (default) 46 THRM = 0 – 3 2 48 0 Bits 7, 6 = Threshold Multiplier; default = 0 (x1) 39 DWELL = 0 – 15 4 48 1 SR =0 – 4 4 device 0 LSL = 0 – 2047 11 48 100 RIB = 0, 1 1 48 0 KGTT = 0 – 15 4 48 7 0 – 255 8 device 0x20 1 1 Lower Signal Limit LSL Restart Int. Burst RIB KGTT FMEA KGTT 2 STATUS Output 1 STS Lower nibble = Dwell time, 15 values via LUT, default = 1 (188 ns) Upper nibble = serial rate via LUT – 9600, 19.200, 38.400, 57.600, 115.200 (UART) Bits 10 – 0 = Lower limit of acceptable signal; below this value, QT1481 declares an error. The low order byte should be sent first. Bit 11 = Restart Interrupted Burst, 1 = enabled Bits 15 – 12 = KGTT Default = 7 (32 counts) Defines the STATUS pin behavior; see Table 5-5 on page 55 45 46 47 46 47 47 53 Table 5-4. Byte 341 342 343 344 Setups Block Parameter Awake Time AWAKE Drift Hold Time DHT Scope Sync SSYNC Frequency 0 FREQ0 Freq.Hop Mode FHM Detect Integrator Multiplier DIM Frequency 1 345 Frequency 2 Noise Threshold 346 Symbol Noise Integrator Limit FREQ1 FREQ2 NSTHR NIL 347 348 Key Default Scope Value Description Valid Range Bits 0 – 15 4 48 15 Lower nibble = Awake Time, default = 15 (25.4s) 48 0 – 15 4 48 11 Upper nibble = Drift Hold Time, default = 11 (9s) 48 0 – 255 6 6 (X line) 0 0 – 63 6 0–3 2 1 1 1 1 1 1 48 Setups CRC SCRC 2 Each bit enables the scope sync output for the burst on one X line. Bit n: 1 = Scope sync enabled for burst on Xn. Page 44 24 Bits 5 – 0 = Frequency 0. Default = 24 delay cycles 50 1 Bits 7, 6 = Frequency hop mode. Default = 1 (recalibrate after each hop) 49 0–3 2 48 0 Bits 7 – 6 = DIM. Default = 0 (x1) 42 0 – 63 6 48 30 Bits 5 – 0 = Frequency 1. Default = 30 delay cycles 50 0 – 63 6 48 36 Bits 5 – 0 = Frequency 2. Default = 36 delay cycles 50 0 – 15 4 48 0 Lower nibble = Noise Threshold. Default = 0 (5 counts) 51 0 – 15 4 48 3 Upper nibble = Noise Integrator Limit. Default = 3 51 CRC-16 of above setups, does NOT include CRC of command itself. The low order byte should be sent first. See also CRC notes, Appendix A.. 52 Reserved Block length 9621EX–AT42–07/2014 AT42QT1481 [DATASHEET] Note: Bytes 0 0 – 65k 16 device – 350 A CRC calculator for Microsoft Windows is available free of charge from Atmel, on request. 54 5.32 STS Bits The STATUS pin can be used to indicate a variety of things in combination. The STS parameter controls which states make the STATUS pin active. Table 5-5. 5.33 Control Byte Bits Bit Name STATUS output (active low) Default 7 STS_DEBUG 1= STATUS output used for Debug. This bit cannot be used with any other bit. 0 6 STS_KEYERROR Active on any key error: (calibration failed, low signal) 0 5 STS_TOUCH Active on any change in touch status 1 4 Reserved 3 STS_SETUPS Active on Setups CRC mismatch 0 2 STS_MSYNC Active on Mains sync error 0 1 Reserved 0 STS_RSTHOST – – Host watchdog – active if no host communications within any 2 s period. Host reset pulse length is 150 ms. The host watchdog is not enabled until the first valid command is received from the host. 0 Key Mapping Some commands return bit-fields rela ted to keys. For example, command 0x07 (report all keys) returns 6 bytes containing flag bits, one per key, to indicate which keys are reporting touches. Table 5-6 shows the byte and bit order of the keys, and the key number reported in each bit. The key number is related to the X and Y scan lines which address each particular key. Each byte in the return stream represents one set of keys along a Y line, that is, up to 8 keys. For example, key 0 is at location X0, Y0 and key 29 is at location X5, Y3 Note: Byte 0 is returned first. Table 5-6. Key Mapping Bit (X Line) Byte (Y Line) 7 6 5 4 3 2 1 0 0 7 6 5 4 3 2 1 0 1 15 14 13 12 11 10 9 8 2 23 22 21 20 19 18 17 16 3 31 30 29 28 27 26 25 24 4 39 38 37 36 35 34 33 32 5 47 46 45 44 43 42 41 40 AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 55 5.34 Setups Block Summary Table 5-7. Setups Block Summary – Per Key Settings Parameter AT42QT1481 Index NTHR Counts PTHR Counts NDRIFT Secs PDRIFT Secs NDIL Counts FDIL Counts NRD Secs PRD Secs BL Pulses AKS CFO_1 CFO_2 Per Key 0 4 4 0.1 0.1 Key off Unused 0 (infinite) 0 (infinite) 16 Off 0 0 1 5 5 0.2 0.2 1 1 0.5 – 127 s 0.1 32 On 1 – 255 1 – 255 2 6 6 0.3 0.3 2 2 0.2 48 64 10 s 9621EX–AT42–07/2014 AT42QT1481 [DATASHEET] 3 7 7 0.4 0.4 3 3 0.3 4 8 8 0.6 0.6 4 4 0.5 5 9 9 0.8 0.8 5 5 0.7 6 10 10 1 1 6 6 1 7 11 11 1.2 1.2 7 7 1.5 8 12 12 1.5 1.5 8 8 2 9 13 13 2 2 9 9 3.2 10 14 14 2.5 2.5 10 10 4.5 11 15 15 3.3 3.3 11 11 6 12 16 16 4.5 4.5 12 12 9 13 17 17 6 6 13 13 12.3 14 18 18 7.5 7.5 14 14 17.5 15 19 19 10 10 15 15 25 Typical values: For most touch applications, use the values shown in the shaded cells. Bold text items indicate default settings. The number to send to the QT1481 is the index number in the leftmost column (0 – 15), not numbers from the table. The QT1481 uses a lookup table internally to translate the indices 0 – 15 to the parameters for each function. NRD is an exception: It can range from 0 – 254 which is translated from 1 = 0.5 s to 254 = 127 s with zero = infinity. CFO_1 and CFO_2 are exceptions. Their values, ranging from 0 to 255, are used directly and without any translation. 56 Table 5-8. Setups Block Summary – Global Settings Parameter Index RIB NHYST SDC MSYNC DWELL µs SR baud KGTT AWAKE secs DHT SSYNC THRM FHM FREQ0 FREQ1 FREQ2 NSTHR X line Global NIL LSL DIM 5 0 (factory only) 100 ×1 Global 24 cycles 30 cycles 36 cycles 9621EX–AT42–07/2014 AT42QT1481 [DATASHEET] 0 Off 6.25% Off Off 0.13 9,600 4 0.1 0.1 Off ×1 Off 1 On 12.5% 1 On 0.19 19,200 8 0.2 0.2 On ×2 1 8 1 (factory 0 – 2047 only) ×2 2 25% 2 0.4 38,400 12 0.3 0.3 ×4 2 11 2 (factory only) ×4 3 50% 4 0.6 57,600 16 0.5 0.5 ×8 3 14 3 ×8 4 8 0.8 115,200 20 0.7 0.7 17 4 5 16 0.9 24 1 1 20 5 6 32 1.1 28 1.5 1.5 23 6 7 64 1.3 32 2 2 26 7 8 1.5 36 3.2 3.2 29 8 9 1.7 40 4.5 4.5 32 9 10 2.1 44 6 6 35 10 11 2.6 48 9 9 38 11 12 3.8 52 12.3 12.3 41 12 13 5.1 56 15 15 44 13 14 7.1 60 19 19 47 14 15 9.9 64 25.4 25.4 50 15 57 6. Specifications 6.1 Absolute Maximum Specifications Parameter Specification Vdd 6.0 V Max continuous pin current, any control or drive pin ±10 mA Short circuit duration to ground, any pin infinite Short circuit duration to Vdd, any pin infinite Voltage forced onto any pin 0.5 V to (Vdd + 0.5 V) Frequency of operation 17 MHz EEPROM setups maximum writes 100,000 write cycles CAUTION: Stresses beyond those listed may cause permanent damage to the device. This is a stress rating only and functional operation of the device at these or other conditions beyond those indicated in the operational sections of this specification is not implied. Exposure to absolute maximum specification conditions for extended periods may affect device reliability. 6.2 Recommended Operating Conditions Parameter Specification Operating temp –40oC to +105oC Storage temp –55oC to +125oC Vdd +4.75 V to 5.25 V Supply ripple + noise 20 mV p-p max Cx transverse load capacitance per key 0 to 20 pF Fosc oscillator frequency 16 MHz ±2% AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 58 6.3 DC Specifications Vdd = 5.0 V, Cs = 4.7 nF, Freq = 16 MHz, Ta (Ambient Temperature) = recommended range, unless otherwise noted Parameter Description Min Typ Max Units Notes Iddr Supply current, running – 13 – mA Idds Supply current, sleeping – 15 – µA Vr Vdd internal reset voltage – 4 – V Vil Low input logic level – – 0.2 × Vd d V Vih High input logic level 0.6 × Vd d – – V Vol Low output voltage – – 0.6 V 4mA sink Voh High output voltage 4.2 – – V 1 mA source Iil Input leakage current – – ±1 µA Ar Acquisition resolution – 9 11 bits Rp Internal pull-up resistors 20 – 50 k Rrst Internal RST pull-up resistor 30 – 60 k 6.4 DRDY, SS, TX, STATUS pins Timing Specifications Vdd = 5.0 V, Cs = 4.7 nF, Freq = 16 MHz, Ta (Ambient Temperature) = recommended range, unless otherwise noted Parameter Description Min Typ Max Units Notes S1 SS to first CLK edge 125 – – ns SPI parameter controlled by host S2 CLK to valid MISO – – 20 ns SPI parameter controlled by QT1481 S3 Last CLK to SS 25 – – ns SPI parameter controlled by host S4 SS to 3-state MISO – – 20 ns SPI parameter controlled by QT1481 S5 SS to falling DRDY – – 20 µs SPI parameter controlled by QT1481 S6 DRDY low pulse width 1 – – µs SPI parameter controlled by QT1481 S7 CLK low pulse width 125 – – ns SPI parameter controlled by host S8 CLK high pulse width 125 – – ns SPI parameter controlled by host S9 CLK period 250 – – ns SPI parameter controlled by host Fck SPI Clock rate – – 4 MHz SPI parameter controlled by host AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 59 6.5 Mechanical Dimensions # # . ,@@$+#A @+#A '>?;> 4 ( %#+#A 56!$-78 !"##!$%&'()*+, (#-- . -'(/#0- .12- 341''0- 9 9 (' ''/ 9 '/ ( ':/ '' '/ ;/ ('' ((/ ::' ''' '' # ;/ ('' ((/ # ::' ''' '' ,'3' 9 '/ '': 9 '(' 4 '/ 9 ';/ '<'= *&''0''0',1*'<' 4 * !B-C 5BC8 ( ( AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 60 6.6 Marking The following part marking is used. 44 Pin 1 ID 1 Atmel Logo Shortened Part Number Date Code ATMEL QT1481 AU 70 YYWW ‘70’= Code Revision 7.0 Date code Description YY = Last two digits of the mark year WW = Test workweek AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 61 6.7 Part Number Part Number QS Number Description AT42QT1481-AU QS738 44-pin 10 × 10 mm TQFP RoHS compliant IC AT42QT1481-AUR QS738 44-pin 10 × 10 mm TQFP RoHS compliant IC - Tape and reel The part number comprises: AT = Atmel 42 = Touch Business Unit QT = Charge-transfer technology 1481 = (1) Keys, (48) number of channels, (1) variant number AU = TQFP chip R= Tape and reel 6.8 Moisture Sensitivity Level (MSL) MSL Rating Peak Body Temperature Specifications MSL3 260oC IPC/JEDEC J-STD-020 AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 62 Appendix A. 16-bit CRC Algorithm // // // // // // // 16 bits crc calculation. Initial crc entry value must be 0. The message is not augmented with 'zero' bits. polynomial = X16 + X12 + X5 + 1 data is an 8 bit number, unsigned crc is a 16 bit number, unsigned repeat this function for each data block byte, folding the result back into the call parameter crc unsigned long sixteen_bit_crc(unsigned long crc, unsigned char data) { unsigned char index;// shift counter crc ^= (unsigned long)(data) << 8; index = 8; do { if(crc & 0x8000) { crc= (crc << 1) ^ 0x1021; } else { crc= crc << 1; } } while(--index); return crc; // loop 8 times } A CRC calculator for Microsoft Windows is available free of charge from Atmel. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 63 Appendix B. DEBUG Output The QT1481 includes a debug interface which may be used for observing many internal operating variables, in real time, even while the part is actively communicating with a host over either the SPI or UART serial interfaces. The Debug interface provides a useful aid during product development and uses two pins, one for clock and one for data, to stream data out of the part. If STS_DEBUG is enabled in the STS Setups byte the QT1481 streams a 465-byte frame of data out of the two debug pins after each keyscan cycle. The transmission format is compatible with Atmel Plug-in USB card (Part Number 9206) and the data can be viewed using Atmel Hawkeye PC software (contact Atmel for information). Table B-1 shows the Debug interface details. Table B-1. Debug Interface Debug Clock output Pin 43 (Dbg_Clk) Debug Data output Pin 40 (Dbg_Data) Data valid Clock high Data changing Clock low Clock frequency Approximately 500 kHz Blank time between byte transmissions 5.5 µs Frame transmission time 8.8 ms Byte transmission order Most significant bit (MSB) first The meaning of each byte in the 465-byte frame is described in Table B-2. Table B-2. Frame Byte # Debug Output Data Frame Description 0 Detect status for keys 0 (bit0) to 7 (bit7), one bit per key 1 Detect status for keys 8 (bit0) to 15 (bit7), one bit per key 2 Detect status for keys 16 (bit0) to 23 (bit7), one bit per key 3 Detect status for keys 24 (bit0) to 31 (bit7), one bit per key 4 Detect status for keys 32 (bit0) to 39 (bit7), one bit per key 5 Detect status for keys 40 (bit0) to 47 (bit7), one bit per key 6 Device status (identical to first byte returned from command 0x06) 7 Count of keys declaring detect 8 A 6-bit unsigned value encoding the first or only key to be touched, in the range 0 – 47 9 Time remaining before host reset pulse is issued at STATUS pin. Each count is 10 ms 10 Time remaining until normal drift compensation is resumed. Each count is 100 ms 11 Time remaining before QT1481 tries to sleep (if enabled). Each count is 100 ms 12 Time remaining before the current SPI or UART command times out. Each count is 10 ms 13 Time remaining before the wait for the next MSYNC signal times out. Each count is 10 ms AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 64 Table B-2. Frame Byte # Debug Output Data Frame (Continued) Description 14 100 ms counter (IEC/EN60730) 15 Signal Fail counter (IEC/EN60730) 16 Matrix Scan counter (IEC/EN60730) 17 Index of current frequency 18 – 26 Data for key 0. See Table B-3 on page 67 for details of the data set for one key. 27 – 35 Data for key 8 36 – 44 Data for key 16 45 – 53 Data for key 24 54 – 62 Data for key 32 63 – 71 Data for key 40 72 – 80 Data for key 1 81 – 89 Data for key 9 90 – 98 Data for key 17 99 – 107 Data for key 25 108 – 116 Data for key 33 117 – 125 Data for key 41 126 – 134 Data for key 2 135 – 143 Data for key 10 144 – 152 Data for key 18 153 – 161 Data for key 26 162 – 170 Data for key 34 171 – 179 Data for key 42 180 – 188 Data for key 3 189 – 197 Data for key 11 198 – 206 Data for key 19 207 – 215 Data for key 27 216 – 224 Data for key 35 225 – 233 Data for key 43 234 – 242 Data for key 4 243 – 251 Data for key 12 252 – 260 Data for key 20 261 – 269 Data for key 28 270 – 278 Data for key 36 AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 65 Table B-2. Frame Byte # Debug Output Data Frame (Continued) Description 279 – 287 Data for key 44 288 – 296 Data for key 5 297 – 305 Data for key 13 306 – 314 Data for key 21 315 – 323 Data for key 29 324 – 332 Data for key 37 333 – 341 Data for key 45 342 – 350 Data for key 6 351 – 359 Data for key 14 360 – 368 Data for key 22 369 – 377 Data for key 30 378 – 386 Data for key 38 387 – 395 Data for key 46 396 – 404 Data for key 7 405 – 413 Data for key 15 414 – 422 Data for key 23 423 – 431 Data for key 31 432 – 440 Data for key 39 441 – 449 Data for key 47. See Table B-3 for details of the data set for one key. 450 – 451 Setups CRC (SCRC), value most recently computed by the QT1481 452 Test pattern currently being used for various internal IEC/EN60730 tests 453 – 454 Key gain test sample taken on Y0 455 – 456 Key gain test sample taken on Y1 457 – 458 Key gain test sample taken on Y2 459 – 460 Key gain test sample taken on Y3 461 – 462 Key gain test sample taken on Y4 463 – 464 Key gain test sample taken on Y5 AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 66 Table B-3. Format of Data Set for One Key Offset Within Data Set Description Bits 12 – 0: Signal Bits 15 – 13: Calibration: 0 = Pending 1–0 1 – 4 = In progress 5 = Success 6 = Failed Bits 12 – 0: Reference 3–2 Bit 13: 1= LSL fail Bit 14: 1= Detect Bit 15: 1= KGTT FMEA fail 4 Normal DI 5 Bits 3 – 0: Fast DI 6 7 8 Negative Detect Time. Time remaining before key is recalibrated. Each count = 500 ms Positive Detect Time. Time remaining before key is recalibrated. Each count = 500 ms Drift compensation count, range –127 to +127. Each count = 100 ms. Recalibration occurs when the drift counter reaches the value set by NDRIFT (negative count) or PDRIFT (positive count) AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 67 Appendix C. Conducted Noise Immunity Electrically conducted noise can increase the noise on the touch signals considerab ly and can lead to both false detects and missed touches. There is a specific test for conducted immunity, as part of typical EMC testing, which injects noise into the device under test across a broad range of frequencies and with significant amplitude. This test is designed to test the immunity of devices and products against environmental noise that is generated by commercial radio transmitters and other sources. Passing this test can be a challenge and might appear daunting, but with good design practise from the outset coupled with fine tuning of the QT1481 frequency hopping Setups and, designs based on the QT1481 show excellent noise immunity and can pass the conducted noise test by some margin. From the outset, the design must target achieving the best possible touch sensitivity while minimizing noise. A clean design can achieve excellent signal delta on touch, but its easy to destroy this quality by pushing the overall product requirements too far and poor attention to detail during the design. The more imperfections that exist in a design, the more the sensitivity will be eroded and the conducted immunity performance with it. A good target for signal delta on touch is 100 or even 150 counts. Best touch performance is achieved with thinner overlay panels, optimum key electrode design, clean tracking between the QT1481 and the keys with low stray capacitance between X and Y traces and low stray capacitance from X and Y traces to ground, coupled with appropriate selection of the external matrix components. See the documents referred to in “Associated Documents” on page 70 for further details on best practice for designing a touch sensor interface. The following paragraphs make some recommendations for initial values or type for the additional matrix components to accompany a QT1481 design together with some Setups the have been found to produce good noise immunity results. Cs - NPO/COG Use COG type for the charge sample capacitors (Cs0 - Cs7). This type of capacitor exhibits excellent stability, albeit at a higher cost, and is preferred over X7R and other types. Lower values can be used to reduce the cost or help with availability provided the charge transfer is not too high such as to saturate Cs. An excellent layout with low stray capacitance will typically allow Cs to be reduced as low as 1 nF. Rs - 1 M Increasing the digital conversion ramp resistors (Rs0 – Rs7) increases sensitivity. The optimum selection for Rs is one that balances highest achievable sensitivity against conversion time and other undesirable side effects such as increased noise and possibly some reduction in temperature stability. Any increase in noise is typically insignificant compared to conducted noise observed during conducted immunity EMC testing. Rs can be increased as high as 5 M, although this is probably extreme in most cases. A good initial value is 1 M. This value increases sensitivity to a good level with acceptable additional signal noise and often achieves the best compromise in Signal-to-Noise Ratio (SNR). The increased sensitivity allows a higher detect threshold to be employed, preventing noise spikes exceeding the threshold and thus preventing false detects. Ry - 47 k Immunity to conducted electrical noise can be increased considerably by increasing the series resistors in the matrix Y lines (Ry0 - Ry7) at the expense of moisture tolerance. There is a practical limit to how far their value can be increased because higher values must be accompanied by longer dwell times, possibly in excess of the longest settings available in the device. In any case excessively long dwell times would slow the response time intolerably. DWELL Increasing the Ry values alone results in a reduction in charge transfer and sensitivity. This can be recovered by increasing the charge transfer time, or dwell time, through higher DWELL settings. To achieve the optimum DWELL setting, start with the maximum value and observe the reference values. Then reduce the dwell, con- AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 68 tinue to observe the reference values, and choose the lowest DWELL setting where the reference values are not significantly reduced from their maximum. Longer dwell times also result in reduced moisture tolerance, and so a careful balance might be necessary between these conflicting requirements. NTHR & THRM Together NTHR(and PTHR) and THRM allow the threshold to be set. The threshold should be set as high as possible to prevent false detects but should not be set so high that true touches are not detected. The Atmel QmBtn or Hawkeye software can be used to observe the signals and signal delta on touch, and used to determine the optimum threshold settings for a specific design. The threshold will typically need setting at a lower value to accommodate noise than is evident when testing in the absence of noise. This may initially seem counter intuitive until consideration is given to the fact that heavy noise can cause undesirable detect dropouts as well as missed touch events. The threshold should be set as high as possible, but not so high that the noise causes detect dropouts while the key is still touched. Frequency Hopping - FHM = 3 (sweep) The immunity of QT1481 based designs to higher noise amplitude can be increased by configuring the frequency hopping with 3 different frequencies and using FHM = 2. Choosing the 3 frequencies is a process of trial and error and varies from design to design, but a considerable increase in tolerable noise amplitude can be achieved once 3 appropriate frequencies have been identified. However, frequency hopping using sweep mode (FHM = 3) is much easier to configure and may provide sufficient immunity for many applications and products. AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 69 Associated Documents The following documents are a good source of general information regarding design and development of Atmel touch sensors and should be studied before starting the development of a new touch interface. QTAN0079 – Buttons, Sliders and Wheels Sensor Design Guide Refer to this application note for details of different possible X/Y electrode designs and patterns, and the optimum geometry to match the panel thickness. QTAN0062 – Qtouch and Qmatrix Sensitivity Tuning for Keys, Sliders and Wheels AVR3000 Qtouch Conducted Immunity Refer to this guide for further information on immunity from conducted noise. These documents are available on the Atmel website (www.atmel.com). AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 70 Revision History Revision No. History Revision AX – December 2010 Initial release of datasheet for chip revision 4.0. Datasheet updated for chip revision 6.0. Command 0x02 added. Frequency hopping updated. NVT removed. Revision BX – June 2011 KHOPOF1, KHOPOF2, HOPOF removed and replaced by CFO_1 and CFO_2. Setups Block – some setup values changed. Debug output data frame values changed. Some timings have changed. Some text has been edited for clarification. Datasheet updated for code revision 7.0 – Preliminary. Front page – key outline size changed from 10 x 10 mm to 6 x 6 mm. Front page – FMEA and IEC/EN60730 compliance reworded. Front page – SPI text added to. Section 2.5 – note added to end Section 2.16 – text amended. Updated text in Section 2.17 on page 16 Removed incorrect text from Section 2.18 on page 16 Section 2.20 – frequency hopping text amended. Section 4.7 – in description of individual data bytes, the content of the bytes has been indented to make a clearer distinction between each one. Table 4-5 – the CRC of 0x13 has changed to 16. Revision CX – March 2013 Table 4-5 – the return range of 0xCk is now 0x10 – 0x3F. Table 4-5 – the return range of 0x4k is now 0 – 0xFF. Section 5.19 – ‘reference’ has changed to ‘normal signal’. Table 5-4 – the number of bits for address 342 ‘scope sync’ has changed to 6. Table 5-4 – address 347 has been added. It is reserved. Table 5-7 – text added at bottom of table to say that CFO_1 and CFO_2 are exceptions. Table 5-8 – the values for FHM have changed. Section 5.23 to Section 5.28 – text amended and added. Section 6.1 – ‘Vdd’ and ‘voltage forced onto any pin’ values changed. Section 6.1 – various values changed. Added “Conducted Noise Immunity” on page 68 Added documents to list in “Associated Documents” on page 70 AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 71 Revision No. History Section 6.3 – Expanded Ta (Ambient Temperature) Revision DX - August 2013 Section 6.6 – Updated the Part marking diagram Section 6.7 – Updated the Part number details Revision EX - July 2014 Non-technical updates AT42QT1481 [DATASHEET] 9621EX–AT42–07/2014 72 Atmel Corporation 1600 Technology Drive Atmel Asia Limited Unit 01-5 & 16, 19F Atmel München GmbH Business Campus Atmel Japan G.K. 16F Shin-Osaki Kangyo Bldg San Jose, CA 95110 BEA Tower, Millennium City 5 Parkring 4 1-6-4 Osaki, Shinagawa-ku USA 418 Kwun Tong Roa D-85748 Garching bei München Tokyo 141-0032 Tel: (+1) (408) 441-0311 Kwun Tong, Kowloon GERMANY JAPAN Fax: (+1) (408) 487-2600 HONG KONG Tel: (+49) 89-31970-0 Tel: (+81) (3) 6417-0300 www.atmel.com Tel: (+852) 2245-6100 Fax: (+49) 89-3194621 Fax: (+81) (3) 6417-0370 Fax: (+852) 2722-1369 © 2014 Atmel Corporation. All rights reserved. / Rev.: 9621EX–AT42–07/2014 Atmel®, Atmel logo and combinations thereof, Enabling Unlimited Possibilities®, Adjacent Key Suppression®, AKS®, and others are registered trademarks, QT™ and others are trademarks of Atmel Corporation or its subsidiaries. Other terms and product names may be registered trademarks or trademarks of others. Disclaimer: The information in this document is provided in connection with Atmel products. No license, express or implied, by estoppel or otherwise, to any intellectual property right is granted by this document or in connection with the sale of Atmel products. EXCEPT AS SET FORTH IN THE ATMEL TERMS AND CONDITIONS OF SALES LOCATED ON THE ATMEL WEBSITE, ATMEL ASSUMES NO LIABILITY WHATSOEVER AND DISCLAIMS ANY EXPRESS, IMPLIED OR STATUTORY WARRANTY RELATING TO ITS PRODUCTS INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE, SPECIAL OR INCIDENTAL DAMAGES (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS AND PROFITS, BUSINESS INTERRUPTION, OR LOSS OF INFORMATION) ARISING OUT OF THE USE OR INABILITY TO USE THIS DOCUMENT, EVEN IF ATMEL HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Atmel makes no representations or warranties with respect to the accuracy or completeness of the contents of this document and reserves the right to make changes to specifications and products descriptions at any time without notice. Atmel does not make any commitment to update the information contained herein. Unless specifically provided otherwise, Atmel products are not suitable for, and shall not be used in, automotive applications. Atmel products are not intended, authorized, or warranted for use as components in applications intended to support or sustain life.