Ultra Low Power (5uA) 2D Rotating Magnetic Angle Sensor + Touch + Inductive Proximity (Metal Detect)
Dependencies: IQS62x IQSDisplayTerminal mbed
IQS624 Hello World
Ultra Low Power (5uA) I2C ProxFusion™ sensor for 2D Magnetic Angle + Touch + Proximity
IQS624 connected to mbed LPC1768. The five wires are - 2x I2C, 2x Power, 1x RDY.
You can get get a low cost (<$10) evaluation kit containing the small board shown above (cables & LPC1768 not included) from Mouser - http://bit.ly/IQS624-Eval-Kit-Mouser
IQS624 Information
Azoteq IQS624 is an ultra low power (5uA) I2C sensor for 2D Rotating Magnetic Fields, Capactive Touch and Inductive Proximity.
Designed for next generation user interfaces.
Data sheet & eval kit info: http://www.azoteq.com/products/proxfusion/iqs624?mbed
IQS624 mbed Component Link
IQS624 Pinout
IQS624 Data Sheet & Evaluation Kit Information
http://www.azoteq.com/products/proxfusion/iqs624?mbed
IQS624 Interconnection
IQS624 connected to mbed Teensy 3.1 (actually Teensy 3.2) using 5 wires - 2x I2C, 2x Power, 1x RDY.
IQS624 YouTube Links
IQS624 1-minute YouTube video: http://bit.ly/IQS624Video
ProxFusion for active pens: https://youtu.be/tUImswNPQY4
IQS624_Init/IQS624_Init.cpp@30:e644a57c1692, 2018-01-23 (annotated)
- Committer:
- AzqDev
- Date:
- Tue Jan 23 15:22:49 2018 +0000
- Revision:
- 30:e644a57c1692
- Parent:
- 22:bcc69607eca2
Updated mbed library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AzqDev | 11:1a328b8ebbce | 1 | #include "IQS62x.h" |
AzqDev | 11:1a328b8ebbce | 2 | |
AzqDev | 11:1a328b8ebbce | 3 | // Function to configure/initialize the IQS624 |
AzqDev | 11:1a328b8ebbce | 4 | // Uses the configuration data provided in "IQS624_Init.h" |
AzqDev | 11:1a328b8ebbce | 5 | // The file "IQS624_Init.h" can be created/exported by the Azoteq software tools |
AzqDev | 11:1a328b8ebbce | 6 | // The included version of "IQS624_Init.h" is a robust demo configuration |
AzqDev | 11:1a328b8ebbce | 7 | // More info on IQS624: http://www.azoteq.com/products/proxfusion/iqs624?mbed |
AzqDev | 11:1a328b8ebbce | 8 | |
AzqDev | 11:1a328b8ebbce | 9 | #include "IQS624_Init.h" |
AzqDev | 11:1a328b8ebbce | 10 | |
AzqDev | 11:1a328b8ebbce | 11 | void IQS62xIO::configure() { |
AzqDev | 11:1a328b8ebbce | 12 | |
AzqDev | 11:1a328b8ebbce | 13 | /* Change the Prox Sensor Settings */ |
AzqDev | 11:1a328b8ebbce | 14 | /* Memory Map Position 0x40 - 0x49 */ |
AzqDev | 11:1a328b8ebbce | 15 | writeRegister( 0x40, PXS_SETTINGS_0 ); |
AzqDev | 11:1a328b8ebbce | 16 | writeRegister( 0x41, PXS_SETTINGS_1 ); |
AzqDev | 11:1a328b8ebbce | 17 | writeRegister( 0x42, PXS_SETTINGS_2 ); |
AzqDev | 11:1a328b8ebbce | 18 | writeRegister( 0x43, PXS_SETTINGS_3 ); |
AzqDev | 11:1a328b8ebbce | 19 | writeRegister( 0x44, PXS_SETTINGS_4 ); |
AzqDev | 11:1a328b8ebbce | 20 | writeRegister( 0x45, PXS_SETTINGS_5 ); |
AzqDev | 11:1a328b8ebbce | 21 | writeRegister( 0x46, PXS_SETTINGS_6 ); |
AzqDev | 11:1a328b8ebbce | 22 | writeRegister( 0x47, PXS_SETTINGS_7 ); |
AzqDev | 11:1a328b8ebbce | 23 | writeRegister( 0x48, PXS_SETTINGS_8 ); |
AzqDev | 11:1a328b8ebbce | 24 | writeRegister( 0x49, PXS_SETTINGS_9 ); |
AzqDev | 11:1a328b8ebbce | 25 | |
AzqDev | 11:1a328b8ebbce | 26 | /* Change the Prox UI Settings */ |
AzqDev | 11:1a328b8ebbce | 27 | /* Memory Map Position 0x50 - 0x54 */ |
AzqDev | 11:1a328b8ebbce | 28 | writeRegister( 0x50, PXS_UI_SETTINGS_0 ); |
AzqDev | 11:1a328b8ebbce | 29 | writeRegister( 0x51, PXS_UI_SETTINGS_1 ); |
AzqDev | 11:1a328b8ebbce | 30 | writeRegister( 0x52, PXS_UI_SETTINGS_2 ); |
AzqDev | 11:1a328b8ebbce | 31 | writeRegister( 0x53, PXS_UI_SETTINGS_3 ); |
AzqDev | 11:1a328b8ebbce | 32 | writeRegister( 0x54, PXS_UI_SETTINGS_4 ); |
AzqDev | 11:1a328b8ebbce | 33 | |
AzqDev | 11:1a328b8ebbce | 34 | /* Change the HALL Sensor Settings */ |
AzqDev | 11:1a328b8ebbce | 35 | /* Memory Map Position 0x70 - 0x7A */ |
AzqDev | 11:1a328b8ebbce | 36 | writeRegister( 0x70, HALL_SETTINGS_0 ); |
AzqDev | 11:1a328b8ebbce | 37 | writeRegister( 0x71, HALL_SETTINGS_1 ); |
AzqDev | 11:1a328b8ebbce | 38 | writeRegister( 0x72, HALL_SETTINGS_2 ); |
AzqDev | 11:1a328b8ebbce | 39 | writeRegister( 0x73, HALL_SETTINGS_3 ); |
AzqDev | 11:1a328b8ebbce | 40 | writeRegister( 0x74, HALL_SETTINGS_4 ); |
AzqDev | 11:1a328b8ebbce | 41 | writeRegister( 0x75, HALL_SETTINGS_5 ); |
AzqDev | 11:1a328b8ebbce | 42 | writeRegister( 0x76, HALL_SETTINGS_6 ); |
AzqDev | 11:1a328b8ebbce | 43 | writeRegister( 0x77, HALL_SETTINGS_7 ); |
AzqDev | 11:1a328b8ebbce | 44 | writeRegister( 0x78, HALL_SETTINGS_8 ); |
AzqDev | 11:1a328b8ebbce | 45 | writeRegister( 0x79, HALL_SETTINGS_9 ); |
AzqDev | 11:1a328b8ebbce | 46 | writeRegister( 0x7a, HALL_SETTINGS_10 ); |
AzqDev | 11:1a328b8ebbce | 47 | |
AzqDev | 11:1a328b8ebbce | 48 | /* Change the Device & PMU Settings */ |
AzqDev | 11:1a328b8ebbce | 49 | /* Memory Map Position 0xD0 - 0xD7 */ |
AzqDev | 11:1a328b8ebbce | 50 | writeRegister( 0xd0, SYSTEM_SETTINGS ); |
AzqDev | 11:1a328b8ebbce | 51 | writeRegister( 0xd1, ACTIVE_CHS ); |
AzqDev | 11:1a328b8ebbce | 52 | writeRegister( 0xd2, PMU_SETTINGS ); |
AzqDev | 11:1a328b8ebbce | 53 | writeRegister( 0xd3, REPORT_RATES_TIMINGS_0 ); |
AzqDev | 11:1a328b8ebbce | 54 | writeRegister( 0xd4, REPORT_RATES_TIMINGS_1 ); |
AzqDev | 11:1a328b8ebbce | 55 | writeRegister( 0xd5, REPORT_RATES_TIMINGS_2 ); |
AzqDev | 11:1a328b8ebbce | 56 | writeRegister( 0xd6, REPORT_RATES_TIMINGS_3 ); |
AzqDev | 22:bcc69607eca2 | 57 | // NO 0xd7 in data sheet.... writeRegister( 0xd7, REPORT_RATES_TIMINGS_4 ); |
AzqDev | 11:1a328b8ebbce | 58 | |
AzqDev | 11:1a328b8ebbce | 59 | } |
AzqDev | 11:1a328b8ebbce | 60 | // end of IQS624_Init.cpp |