IQ Switch
®
ProxSense
®
Series
Copyright © Azoteq (Pty) Ltd IQS5xx-B000 Trackpad Datasheet Page 27 of 79
All Rights Reserved. Revision 2.0 November 2016
Table 7.1 Bootloader Status
Register value Status
0xA5 Bootloader is available
0xEE No bootloader
*Note the bootloader is available on the standard
IQS5xx-B000 firmware; this could possibly be
unavailable on custom firmware versions.
7.9 Version Information
7.9.1 Product Number
The different IQS5xx devices can be identified
by their relevant product numbers.
Table 7.2 Product Number
Product Number
(decimal)
Device
40 IQS550
58 IQS572
52 IQS525
7.9.2 Project Number
The project number for the generic B000
project is 15 (decimal) for all devices.
7.9.3 Major and Minor Versions
These will vary as the B000 is updated, this
datasheet relates to the version as indicated
at the bottom of the Overview Section 1.
7.10 Unique ID
A 12-byte unique ID can be read from memory
map address 0xF000 – 0xF00B. This number
gives each individual IC a unique identifier.
7.11 Switch Input
The SW_IN (switch input) pin, when enabled
(SW_INPUT), will display the state of the input
pin to the master controller (SWITCH_STATE).
This state is updated before each I
2
C session.
The input can be configured as active LOW or
active HIGH (SW_INPUT_SELECT). For active
LOW, an internal pull-up resistor (typical value
of 40kΩ) is connected to the SW_IN pin.
A change in the state of the SW_IN can also
trigger an event, see Section 8.8.1. This input
can be used as an additional switch or
proximity sensor, and has the ability to wake
the IQS5xx from the extreme (<1uA) low
power suspend state.
8 I
2
C
The IQS5xx communicates via the standard
I
2
C communication protocol.
Clock stretching can occur, thus monitoring
the availability of the SCL is required, as per
standard I
2
C protocol.
8.1 Data Ready (RDY)
An additional RDY I/O indicates (active HIGH)
when the communication window is available
with new data for optimal response. Polling
can however be used, but is not
recommended. RDY should be connected to
an interrupt-on-change input for easier
implementation and optimal response time.
8.2 Slave Address
The default 7-bit device address is „1110100‟.
The device address can be modified during
programming. The full address byte will thus
be 0xE9 (read) or 0xE8 (write).
8.3 16-bit Addressing
The I
2
C employs a 16-bit address to access all
individual registers in the memory map.
8.4 I
2
C Read
The master can read from the device at the
current address if the address is already set
up, or when reading from the default address.
S
Start Control Byte
ACK
Data n
ACK
Data n+1
Current Address Read
S
Stop
NACK
Figure 8.1 Current Address Read
The master can perform a random read by
specifying the address. A WRITE is
performed to set up the address, and a
repeated start is used to initiate the READ
section.
IQ Switch
®
ProxSense
®
Series
Copyright © Azoteq (Pty) Ltd IQS5xx-B000 Trackpad Datasheet Page 28 of 79
All Rights Reserved. Revision 2.0 November 2016
S
Start Control Byte
ACK
Data n
P
Stop
NACKAdr + READ
S
Start Control Byte
ACK
Address [7..0]
ACKAdr + WRITE ADR - lowACKADR - high
Address [15..8]
. . .
. . .
Figure 8.2 Random Read
8.4.1 Default Read Address
When a new communication window begins,
the configurable default read address is used
if a current address read is performed (no
address is specified). If an application will
always read from a specific register, the
IQS5xx can be configured to point to the
required register, negating the need to specify
the address at each new communication
window, allowing for faster data reading.
8.5 I
2
C Write
The master uses a Data Write to write settings
to the device. A 16-bit data address is always
required, followed by the relevant data bytes
to write to the device.
S
Start
Adr + WRITE
Control Byte
ACK
Address [7..0]
ACK
Data n
ACK P
Stop
ADR - low ACK
Data n+1
ACKADR - high
Address [15..8]
Figure 8.3 Data Write
8.6 I
2
C Timeout
If the communication window is not serviced
within the I
2
C timeout period (in milliseconds),
the session is ended (RDY goes LOW), and
processing continues as normal. This allows
the system to continue and keep reference
values up to date even if the master is not
responsive.
8.7 End of Communication
Session / Window
Unlike the previous A000 implementation, an
I
2
C STOP will not terminate the
communication window. When all required
I
2
C transactions have been completed, the
communication session must be terminated
manually. This is achieved by sending the
End Communication Window command, by
writing a single byte (any data) to the address
0xEEEE, followed by a STOP. This will end
the communication window, RDY will go low
and the IQS5xx will continue with a new
sensing and processing cycle.
8.8 Event Mode Communication
The device can be set up to bypass the
communication window when no activity is
sensed (EVENT_MODE). This is usually
enabled since the master does not want to be
interrupted unnecessarily during every cycle if
no activity occurred. The communication will
resume (RDY will indicate available data) if an
enabled event occurs. It is recommended that
the RDY be placed on an interrupt-on-pin-
change input on the master.
8.8.1 Events
Numerous events can be individually enabled
to trigger communication, they are:
Trackpad events (TP_EVENT): event
triggered if there is a change in X/Y value,
or if a finger is added or removed from the
trackpad
Proximity events (PROX_EVENT): event
only triggers if a channel has a change in a
proximity state
Touch events (TOUCH_EVENT): event only
triggers if a channel has a change in a
touch state
Snap (SNAP_EVENT): event only triggers if
a channel has a change in a snap state
Re-ATI (REATI_EVENT): one cycle is given
to indicate the Re-ATI occurred
(REATI_OCCURRED).
Proximity on ALP (ALP_PROX_EVENT):
event given on state change
Switch input (SW_INPUT_EVENT): event
triggers if there is a change in the input pin
state.
The proximity/touch/snap events are therefore
mostly aimed at channels that are used for
traditional buttons, where you want to know
only when a status is changed.
8.8.2 Force Communication
The master can initiate communication with
the IQS5xx, even while RDY is LOW. The
IQ Switch
®
ProxSense
®
Series
Copyright © Azoteq (Pty) Ltd IQS5xx-B000 Trackpad Datasheet Page 29 of 79
All Rights Reserved. Revision 2.0 November 2016
IQS5xx will clock stretch until an appropriate
time to complete the I
2
C transaction. The
master firmware will not be affected (as long
as clock stretching is correctly handled).
For optimal program flow, it is suggested that
RDY is used to sync on new data from the
IQS5xx. The forced method is only
recommended if the master must perform I
2
C
and Event Mode is active.
NOTE: If the IQS5xx is in a low-power state
when the master forces the communication,
the first addressing will respond with a NACK.
The master must repeat the addressing (wait
a minimum of 150us after the I
2
C STOP
before retrying), and the IQS5xx will be ready
and ACK the transaction.
Figure 8.4 shows a forced communication
transaction. Communication starts with RDY
= LOW. The IQS5xx is in a low power state
on the first request, and a NACK is sent. After
the second request the IQS5xx responds with
an ACK. The IQS5xx clock stretches until an
appropriate time to communicate (to prevent
interference with the capacitive
measurements). When appropriate, the clock
is released and the transaction completes as
normal. RDY is not set during a forced
communication transaction.
Figure 8.4 Forced communication
8.9 Memory Map Registers
The registers available in the memory map,
via I
2
C, are provided in this section. The
memory map starts with a READ-ONLY
section, followed by a READ/WRITE section.
The read/write permissions are indicated by
the shading in the „R‟ (read) and/or „W‟ (write)
columns.
Certain registers in the memory map have
defaults loaded from non-volatile memory,
which can be configured during programming;
these are highlighted also in the „E
2
‟ column.
IQ Switch
®
ProxSense
®
Series
Copyright © Azoteq (Pty) Ltd IQS5xx-B000 Trackpad Datasheet Page 30 of 79
All Rights Reserved. Revision 2.0 November 2016
Table 8.1 Direct-Addressable Memory Map
Address Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Details R W E
2
0x0000 -
0x0001
Product number (2 bytes)
(See 7.9)
0x0002 -
0x0003
Project number (2 bytes)
0x0004 Major version
0x0005 Minor version
0x0006 Bootloader status (See 7.8.1)
0x0007 -
0x000A
Open (4 bytes)
0x000B Max touch column Max touch row (See 3.5.5)
0x000C Previous cycle time [ms] (See 4.1.1)
0x000D - -
SWIPE
_Y-
SWIPE
_Y+
SWIPE
_X+
SWIPE
_X-
PRESS
_AND_
HOLD
SINGLE
_TAP
Gesture
Events 0
0x000E - - - - - ZOOM SCROLL
2_
FINGER_
TAP
Gesture
Events 1
0x000F
SHOW_
RESET
ALP_
REATI_
OCCUR
RED
ALP_
ATI_
ERROR
REATI_
OCCUR
RED
ATI_
ERROR
CHARGING_MODE
System Info
0
0x0010 - -
SWITCH
_STATE
SNAP_
TOGGLE
RR_
MISSED
TOO_
MANY_
FINGERS
PALM_
DETECT
TP_
MOVE-
MENT
System Info
1
0x0011 Number of fingers (See 5.2.1)
0x0012 -
0x0013
Relative X [pixels] (2 bytes)
(See 5.2.2)
0x0014 -
0x0015
Relative Y [pixels] (2 bytes)
0x0016 -
0x0017
Absolute X position [pixels] (2 bytes)
(See 5.2.3)
0x0018 -
0x0019
Absolute Y position [pixels] (2 bytes)
0x001A -
0x001B
Touch strength (2 bytes) (See 5.2.4)
IQ Switch
®
ProxSense
®
Series
Copyright © Azoteq (Pty) Ltd IQS5xx-B000 Trackpad Datasheet Page 31 of 79
All Rights Reserved. Revision 2.0 November 2016
Address Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 Details R W E
2
0x001C Touch area / size (See 5.2.5)
0x001D
:
0x0038
Repeat:
Absolute X
Absolute Y
Touch strength
Touch area / size
For fingers 2 - 5
0x0039 -
0x0058
Prox status (32 bytes)
(See 8.10.5)
0x0059 -
0x0076
Touch status (30 bytes)
0x0077 -
0x0094
Snap status (30 bytes)
0x0095 -
0x01C0
Count values (300 bytes)
(See 8.10.6)
0x01C1 -
0x02EC
Delta values (300 bytes)
0x02ED -
0x02EE
ALP count value (2 bytes)
(See 3.3.2)
0x02EF -
0x0302
ALP individual count values (20 bytes)
0x0303 -
0x042E
Reference values (300 bytes) (See 8.10.6)
0x042F -
0x0430
ALP LTA (2 bytes) (See 3.4.2)
0x0431
ACK_
RESET
-
AUTO_
ATI
ALP_
RESEED
RESEED MODE_SELECT
System
Control 0
0x0432 - - - - - - RESET SUSPEND
System
Control 1
0x0433 -
0x0434
Open (2 bytes)
0x0435 -
0x043E
ALP ATI compensation (10 bytes)
(See 3.6.2)
0x043F -
0x04D4
ATI compensation (150 bytes)