Azoteq IQS7222A GUI Evaluation Kit User Guide
- June 11, 2024
- Azoteq
Table of Contents
Azoteq IQS7222A GUI Evaluation Kit
Introduction
The purpose of this document is to describe the graphical user interface (GUI) layout available in the IQS7222A PC software for device debug and display purposes. The designer may configure the IC via the GUI software for a specific application and evaluate the performance real time. Although configuration examples will be given, this document is not intended to discuss or address all applications, but rather to provide the user with the necessary configuration, debugging, data logging and header file export knowledge of the GUI software to address their unique application. Furthermore, the scope of this document is limited to the configuration of the IQS7222A using the appropriate and latest Azoteq IQS7222A GUI PC software. For guidelines on the hardware and electrode design, please refer to the appropriate application notes. For IC specific information, operation, and memory map details, please refer to the IQS7222A datasheet.
Getting Started
This section describes the process of initial device set-up prior to application specific tuning.
Step 1: GUI Software Installation
Download and install the Azoteq IQS7222A GUI PC Software from the Azoteq
website located under: Design -> Software and Tools page. Extract the
downloaded zip file, follow the installation wizard procedure and afterwards
launch the software executable program. The following window should appear
after successful installation and upon software execution:
Step 2: Hardware Connections
Connect your PC to the Azoteq configuration debug and display tool CT210A
using a standard USBmicro data cable. The device under test (DUT), being
either an IQS7222A EV-kit or an application PCBA with the device and required
passives mounted on, can be interfaced with a suitable 20-to-10 pin ribbon
cable connection (or application specific connections) as shown in the below
picture.
Connect the application hardware’s power supply (VDD), ground (GND), I2C (SDA and SCL) as well as the data ready interrupt signal (RDY) signal traces to the CT210A USB dongle’s pins as shown in the pin-out table numbered and colour coded accordingly to Figure 2.3 below.
Table 2.1: CT210A Pin-out
IQS Pins | CT210A Pins |
---|---|
GND | Pin 1 |
VDD | Pin 3 |
SDA | Pin 7 |
SCL | Pin 9 |
RDY | Pin 10 |
Step 3: PC Connection Verification
After connecting the CT210A device to the computer via a USB port and micro-
USB data cable, the GUI software will automatically install drivers if needed
and verify its connection and firmware by displaying the CT210A’s device ID
and the appropriate ’Device Connected’ information message in the
configuration tool manager section as indicated in the red block:
Note: If the connected CT210A device firmware is out of date, an ’Update
available’ button should automatically appear next to the device enumeration.
This button may then be clicked to launch the appropriate CT Firmware upgrade
tool to update the firmware as needed. For the image displayed in Figure 2.5
below the CT210A connected was already up to date with the latest firmware and
thus not requiring an update.
Step 4: Initiate DUT Communication (Streaming)
Click on ’START STREAMING’ to initialize the serial connection to the DUT. Additional information messages will appear as listed and shown below, providing the following information:
- Power status
- I2C address
- Device version information
- Settings and streaming confirmations or errors as applicable
If the above messages do not appear, please verify the device connection and the DUT IQS part and version correctness.
Step 5: DUT Start-Up And Initialisation
Click on the red text button ’ACK RESET’ as shown below. The ’Reset’ event
flag should clear afterwards and the ’ACK RESET’ text should then change
colour and remain black for successful reset acknowledgement:
The device may now be configured further by either loading pre-configured settings (in a .h – header file format) or selecting the ’USER SETTINGS’ button to open the pop-up window with the settings organised in menu tabs. Refer to section 4 for more detail.
Note – Only a single instance of the GUI software may run at any given moment and therefore, only one device can be streamed at a time. Opening multiple instances of the GUI (or other Azoteq PC software and tools) will lead to program and streaming malfunctions.
Step 6: Import Device Configuration (Optional)
If the device was previously configured and an associated .h-file was exported
from the GUI, the file may now be imported into the GUI using the ’IMPORT H
FILE’ button. Additional information messages will be provided to confirm that
the file has imported correctly:
As an alternative when using the standard IQS7222A EV-kit hardware (AZP1195),
one can simply open the “USER SETTINGS” window, navigate to the first tab
named “Demo Settings” and click on the image button matching the kit to apply
the predefined configuration settings for the demo. Refer to below Figure 2.9
and section 4 for the configuration detail.
Step 7: Export Device Configuration (Optional)
After the DUT has been configured, the new settings may be exported for safe-
keeping, sharing or re-use at a later stage or on another device. The settings
are exported as a .h-header file using the ’EXPORT H FILE’ button. Take care
to save the new settings file with an appropriate descriptive name and file
location as intended.
GUI Overview
The IQS7222A graphical user interface (GUI) software allows the user to test,
configure and export settings (as .h-files) for the IQS7222A IC. Figure 3.1
shows the main window components of the GUI numbered for subsequent
descriptions thereof.
The description of each numbered item in Figure 3.1 is as follows.
-
Configuration Tool Manager – Allows for general configuration tool hardware recognition, control and feedback in the GUI. The top drop down box will list the available configuration tool (CT or DS) devices connected to the PC that are available for use. If a valid selection is made, the ’START STREAMING’ button may be used to initiate I2C communication and start a data ’stream’ from the DUT. If the stream was initiated successfully, the button will change to ’PAUSE STREAMING’ that can temporarily pause the I2C activity from the configuration tool’s side and ignore any DUT RDY signals. The ’STOP STREAMING’ button in turn is used to terminate I2C communication. The text box will provide general information on the I2C connection, tasks completed, as well as error messages in case of any unsuccessful attempts or lost communications. The logging button may be used to capture/record sensor register data and export the streaming session’s data to a .csv-file. The ’IMPORT H FILE’ button allows the user to load a previously configured settings file (.h-file) to the DUT. The ’EXPORT H FILE’ button will create/overwrite and save a new .h-file using the current configuration settings present on the DUT.
-
Settings Tree – all available device settings may be found here. The ’USER SETTINGS’ button will open a new, dedicated pop-up window with settings in a tabular layout for easier navigation and display. The settings tree shown below the buttons contains the same settings, as well as some hidden engineering settings in numerical order according to the memory map addresses. It is advised that the user utilise the ’USER SETTINGS’ interface as the primary configuration portal. With the exception of some settings described later in this document, the settings tree should not be used without the support of an Azoteq or distributor FAE.
-
System Commands Section – The ’ACK RESET’ button will issue a reset acknowledgement command to the IC as confirmation of coming from a power-on / reset state (with default device settings populated). The ’SOFT RESET’ button will command the DUT to perform a soft reboot. The ’ATI ALL AND READ’ button will command the DUT to use its automatic tuning implementation (ATI) algorithm for sensor re-calibration (please refer to the IQS7222A datasheet for more information). The ’RESEED’ button commands the DUT to seed / set its Long Term Average (LTA) filtered values equal to its current count values. Note: these operations apply globally to all channels or the device as a whole.
-
Bar And Scope View – This area will visually display bar graphs of the sensor counts and LTA signals as configured for every channel. The decimal representation of the current values are displayed below each channel. The results may be viewed on the bars (by selecting the primary ’BARS’ tab) or the same data stream can be plotted as lines over time on a secondary scope view (by selecting the “SCOPE” tab). The ’Counts’ value represents the filtered signal input from the device’s sensors. The ’LTA’ is the long term average of the counts and acts as a slow adjusting baseline used as a reference to detect any quick deviation in Counts. The channel’s Counts and LTA line plots can be selected or deselected for display to make the scope view less cluttered. Adjusting the number of points on the x-axis requires that one presses the ’RESET X AXIS’ to apply/update the scope view. For scope navigational control explanations please click on the ’HELP’ button.
-
Sliders – If sliders are configured, the coordinate output of each will be represented graphically by the sliding visual element together with the decimal value displayed underneath. Sliders are required to be set up correctly to achieve the desired coordinate range and resolution outputs.
-
Events Flags Section – provides a dashboard overview of various events that are triggered. Individual blocks will light up for event occurrences or trigger activation states and a text log of specific event selections can also be evaluated in a event log (timestamped text) terminal.
> Events
• System flags 0
∗ ATI active: Active when ATI routine execution is busy.
∗ ATI error: When the ATI routine encountered an error on any of the channels.
∗ Reset: Active at power-on or when a reset have occurred (without acknowledgement through ’ACK RESET’).
∗ Normal power update: Active when in ULP and a single normal power update cycle is executed to process the UI and update filtered values.
∗ Global halt: Active when any channel, with global halt setting enabled, is halted.
• Current power mode:
∗ Shows the current power mode state in which the device is currently operating.
• System flags 1
∗ Prox event: Shows any channel’s prox state change.
∗ Touch event: Shows any channel’s touch state change.
• System flag 2
∗ ATI event. Active when an ATI execution is initiated or completed.
∗ Power event. Active when a power mode switch occurred.
∗ Slider 0/1 event. Active when any slider related event occurred.
• Slider 0/1 status
∗ Busy flag. Active when a slider gesture is active or in progress.
∗ Gesture event. Active when a valid gesture event has occurred.
∗ Tap event. Active when a tap gesture occurred.
∗ Swipe event. Active when a swipe gesture occurred.
∗ Flick event. Active when a flick gesture occurred.
∗ Negative flag. Active when a swipe or flick gesture occurred in the negative (decreasing coordinate) direction.
Application Example
This section will use the IQS7222A EV-kit hardware (AZP1195) as an example
application. The schematic and electrode layout of the IQS7222A EV-kit is
provided in Figure 4.1 and 4.2. The reader should load the predefined
configuration settings as discussed in 2.6.
After loading the settings, Figures 4.3 and 4.4 show the enabled channels used
and their Counts and LTA bars visible in the bar chart. Note the relation to
the hardware layout. Hall-effect uses channels 10 and 11 and is converted
internally on the IC.
Step 1: Cycle Setup
The device uses cycles (or time slots) to convert channels in pairs of two. This comes inherently from the dual ProxFusion sensor engine design on the IQS7222A. Engines can operate in parallel but need to be set up for the same sensing technology (or PXS mode) for a cycle. Channels 0 – 4 (utilising available receiver pins CRX0 – 3) are converted by the first engine, while channels 5 – 9 (utilising available receiver pins CRX4 – 7) are converted by the second engine.
In this example Cycle 0 will only convert CH0 set up in mutual-inductive mode. As shown on the EVkit schematics, the resonant tank connected to the large circular coil is driven by TX1 and measured using CRX0. The TX1 is selected for channel 0 transmitter purpose in Figure 4.5 below. The CRX0 selection is made on the CH0 Settings tab as shown in Figure 4.7 for receiver purpose.
Channel 5 is not enabled (in Channel setup) and will thus not be executed in this cycle. For the inductive application of CH0 and the electrode hardware design, this specific cycle is configured to transmit (drive the selected TX pin: CTX1) at the device FOSC frequency while grounding the other inactive (unused or unticked CRX pins) in this cycle/time-slot.
Cycle 1 will be converted afterwards and the engines are set up for self-
capacitive conversions where both CH1 and CH6 will be sense simultaneously on
CRX2 and CRX6 pins respectively. As shown on the EV-kit schematics, CRX2 and
CRX6 are connected to two of the slider electrodes. This cycle is set up to
transmit and receive at the standard 500kHz conversion frequency configured in
the drop-down box.
Cycle 2 contains channel 2 and channel 7. Channel 2 is not used on this
application. Channel 7 is the mutual-inductive channel that uses TX5 and CRX4.
Cycle 2 is thus configured in the mutual inductive mode with TX5 enabled.
Cycle 3 contains channels 3 and 8. Both of these channels form part of the
self-capacitive slider and use CRX3 and CRX7, as shown on the EV-Kit
schematics. The configurations for cycles 2 and 3 are shown in Figure 4.6.
Step 2: Channel Setup
Next, the applicable channels need to be set up. For this application, only Channel 0 will be showed as an example. Nonetheless, each channel can be configured independently as needed.
It it important to select the correct RX pins for each channel. For example:
As seen in Figure 4.3 and on the schematics in Figure 4.2, CH0 uses TX1 and
CRX0. Therefore, under CH0 Settings, CRX0 must be selected as the receiver.
Other settings listed in the tab shown above are sensor, UI and ATI specific for the channel. Take note of the displayed values and units below each slider as not all settings are directly translated to decimal units. Some are in steps of a fixed constant, percentage or calculated from the ATI target (which is roughly where the LTA will always be maintained) such as for the touch threshold:
Multiplier, divider and compensation options (lowest 3 rows of sliders) are automatically selected and updated by the ATI algorithm (when set to Full ATI which is the recommended use in the majority of designs). These values may vary from one device to another or even change during runtime as needed to keep the sensor’s sensitivity optimal and within operational range given external/environmental influences.
Step 3: Setting Channel Timeouts
There are timeout options available to limit the time a channel may stay in a
prox or touch activation. This is to prevent stuck or endless activations. The
timeout settings are configured in 500ms increments and start from event
detection. A timer will reset (start over) if a state change/event occurred
specifically for that channel before the timeout period is reached. A timeout
will reseed a channel when the period is reached for a persistent state
activation. As noted in the settings: When set to zero, a timeout cannot be
reached and any activations (remaining from the sensor measurement and
fulfilling the threshold setting) will persist infinitely unless
explicitly/forcefully managed by a reseed/re-ATI.
Step 4: Adjusting Filter Beta Parameters
The default beta parameter options have been selected to serve the most common
and generic applications. They are intended to filter according to the
specific power mode operation to ensure that noise is minimal while still
insuring substantial response without any lagging outputs. The parameters
should also adjust LTA amounts to slow varying counts and use the fast LTA
beta to follow rapidly for opposing count behavior to normal activations. The
defaults are the recommended values and a good starting point.
Step 5: Slider Setup
The IQS7222A offers two sliders that can be set up independently using any combination of channels.
The main purpose of a slider is to provide outputs such as
- Coordinates (position of touch on a slider pattern)
- Gestures (tap, swipe, flick or hold activations)
A slider may consist of a total number of either three or four channels (selected by ticking the applicable channel boxes used in the hardware layout). The arrangement of these channels are assigned by the delta link drop-boxes to correctly calculate coordinates from 0 (lowest/start) to 3/4 (highest/end).
Other settings include adjustment to the coordinate filter, slider resolution
and calibration values use to trim the residual amounts at the start/lower and
end/upper slider termination.
The subsequent tab for Slider Gestures will provide timing and coordinate
distance settings used as minimum and maximum limits to validate gestures
accordingly. Only those gestures enabled in the tick boxes will be validated
and displayed or provided as event occurrences.
With these steps completed, the current coordinate output of slider0 will be shown in the main window on the slider indicator bar on the left. An output of 0xFFFF (hex) or 65 535 (decimal) means there is no touch present and subsequently no coordinate output, however, the slider displays was limited at the maximum possible resolution configuration (4 080) for display convenience and will therefore only display up to this value even in the case of no touch/coordinate. The status of slider gesture events will also highlight accordingly in the event area upon successful validation.
Step 6: GPIO Setup (Optional)
For an additional GPIO output state signal (offered by pin GPIO0 on the
IQS7222A) GPIO settings may assign either a prox or touch channel (or
combination of channel’s) state to the pin as output. Two pin
configurations/logic options are offered. The output is equal to the bitwise
OR of the statuses of the selected channels.
Step 7: System Settings Configuration
The system settings controls both the:
- Communication (reporting) and
- Power mode and sampling times of the IQS7222A device.
Three different interface modes are configurable to determine how the master/MCU wants to interact with the IQS (as the slave or peripheral device):
- Streaming mode: after every program cycle the device reports the sensor data
- Event mode: interrupt request for communication only upon an event occurrence or state change
- Stream in touch: a hybrid offering between the above two modes where a device will be event driven until a touch state is recognised and then remain streaming typically for coordinate reporting.
A specific (fixed) power mode may be selected for operation and controlled via
the MCU, but most application use the Auto power mode to switch automatically
between sampling/report modes as needed based on device
interaction/detections. E.g. Normal power -> Low power -> Ultra-low power.
Power mode report rates may be assigned as needed and each power mode may be assigned a timeout value to allow switching to a lower power mode when no activations occurred for that elapsed time. An activation on any channel will jump to the Normal power mode (fastest sampling) where full UI processing happens and the fastest response is possible against the trade-off of increased power consumption as opposed to the other modes optimised for low / ultra-low power standby/idle use.
Other settings offered here is the communication timeout period and ULP entry and event mask settings to configure which channels may have activation in ULP and which events are enabled.
Conclusion
This document explains the layout, operation, and related settings displays of the IQS7222A’s GUI PC software. This document uses the IQS7222A EV-kit hardware as an example and explains how to configure the device using its GUI, and export the resulting settings as a C/C++ header file for use in an application.
Revision History
Release | Date | Comments |
---|---|---|
v1.0 | 2023/01/31 | Initial document released |
Contact Information
USA | Asia | South Afri ca | |
---|---|---|---|
Phy sical Address | 11940 Jollyville Suite 120-S Austin | ||
TX 78759 USA | Room 501A, Block A |
T-Share International Centre Taoyuan Road, Nanshan District Shenzhen, Guangdong, PRC| 1 Bergsig Avenue Paarl
7646
South Africa
Postal Address| 11940 Jollyville Suite 120-S Austin
TX 78759 USA| Room 501A, Block A
T-Share International Centre Taoyuan Road, Nanshan District Shenzhen,
Guangdong, PRC| PO Box 3534
Paarl 7620
South Africa
Tel| +1 512 538 1995| +86 755 8303 5294 ext 808| +27 21 863 0033
Email| lnfo@azoteq.com|
info@azoteq.com|
info@azoteq.com
Visit www.azoteq.com for a list of distributors and worldwide representation.
Patents as listed on www.azoteq.com/patents- trademarks/ may relate to the device or usage of the device.
Azoteq®, Crystal Driver®, IQ Switch®, ProxSense®, ProxFusion®, LightSense™, SwipeSwitch™, and the logo are trademarks of Azoteq.
The information in this Datasheet is believed to be accurate at the time of publication. Azoteq uses reasonable effort to maintain the information up-to- date and accurate, but does not warrant the accuracy, completeness or reliability of the information contained herein. All content and information are provided on an “as is” basis only, without any representations or warranties, express or implied, of any kind, including representations about the suitability of these products or information for any purpose. Azoteq disclaims all warranties and conditions with regard to these products and information, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property rights. Azoteq assumes no liability for any damages or injury arising from any use of the information or the product or caused by, without limitation, failure of performance, error, omission, interruption, defect, delay in operation or transmission, even if Azoteq has been advised of the possibility of such damages. The applications mentioned herein are used solely for the purpose of illustration and Azoteq makes no warranty or representation that such applications will be suitable without further modification, nor recommends the use of its products for application that may present a risk to human life due to malfunction or otherwise. Azoteq products are not authorized for use as critical components in life support devices or systems. No licenses to patents are granted, implicitly, express or implied, by estoppel or otherwise, under any intellectual property rights. In the event that any of the abovementioned limitations or exclusions does not apply, it is agreed that Azoteq’s total liability for all losses, damages and causes of action (in contract, tort (including without limitation, negligence) or otherwise) will not exceed the amount already paid by the customer for the products. Azoteq reserves the right to alter its products, to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and information, its products, programs and services at any time or to move or discontinue any contents, products, programs or services without prior notification. For the most up-to-date information and binding Terms and Conditions please refer to www.azoteq.com.