Ultra Low Power (5uA) I2C Multi-Function Sensor with Light Sensor + Active (Reflective) IR + Touch + Hall Effect Sensor

Dependencies:   IQS622DisplayTerminal IQS62x mbed

Hello World! From Azoteq's IQS622 Ultra Low Power Multi-Sensor


This is a demo program for the Azoteq IQS622 ultra low power multi function sensor.

More details on the IQS622 component pages here:

Components / IQS622
Azoteq IQS622 ultra low power sensor for ambient light, active (reflective) IR, magnetic field, capacitance and inductive proximity. Empowers next-generation user interfaces.


Low Cost Evaluation Board for Azoteq IQS622 Ultra Low Power (5uA) I2C Multi-Function Sensor with Light Sensor, Active (Reflective) IR, Touch and Hall Effect Sensor

Files at this revision

API Documentation at this revision

Comitter:
AzqDev
Date:
Sat May 13 01:25:40 2017 +0000
Parent:
3:9592cb4b5ba0
Child:
5:c88aa2de6f61
Commit message:
Added IQS622_Init.h processing

Changed in this revision

IQS622_Init/IQS622_Init.cpp Show annotated file Show diff for this revision Revisions of this file
IQS622_Init/IQS622_Init.h Show annotated file Show diff for this revision Revisions of this file
deviceType.h Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IQS622_Init/IQS622_Init.cpp	Sat May 13 01:25:40 2017 +0000
@@ -0,0 +1,60 @@
+#include "IQS62x.h"
+
+// Function to configure/initialize the IQS624
+// Uses the configuration data provided in "IQS624_Init.h"
+// The file "IQS624_Init.h" can be created/exported by the Azoteq software tools
+// The included version of "IQS624_Init.h" is a robust demo configuration
+// More info on IQS624: http://www.azoteq.com/products/proxfusion/iqs624?mbed
+
+#include "IQS622_Init.h"
+
+void IQS62xIO::configure() {
+
+/* Change the Prox Sensor Settings */
+/* Memory Map Position 0x40 - 0x49 */
+  writeRegister( 0x40,  PXS_SETTINGS_0     );
+  writeRegister( 0x41,  PXS_SETTINGS_1     );
+  writeRegister( 0x42,  PXS_SETTINGS_2     );      
+  writeRegister( 0x43,  PXS_SETTINGS_3     );
+  writeRegister( 0x44,  PXS_SETTINGS_4     );
+  writeRegister( 0x45,  PXS_SETTINGS_5     );
+  writeRegister( 0x46,  PXS_SETTINGS_6     );     
+  writeRegister( 0x47,  PXS_SETTINGS_7     );
+  writeRegister( 0x48,  PXS_SETTINGS_8     );
+  writeRegister( 0x49,  PXS_SETTINGS_9     );     
+
+/* Change the Prox UI Settings */
+/* Memory Map Position 0x50 - 0x54 */
+  writeRegister( 0x50,  PXS_UI_SETTINGS_0  );
+  writeRegister( 0x51,  PXS_UI_SETTINGS_1  );
+  writeRegister( 0x52,  PXS_UI_SETTINGS_2  );
+  writeRegister( 0x53,  PXS_UI_SETTINGS_3  );
+  writeRegister( 0x54,  PXS_UI_SETTINGS_4  );
+
+/* Change the HALL Sensor Settings */
+/* Memory Map Position 0x70 - 0x7A */
+  writeRegister( 0x70,  HALL_SETTINGS_0    );
+  writeRegister( 0x71,  HALL_SETTINGS_1    );
+  writeRegister( 0x72,  HALL_SETTINGS_2    );
+  writeRegister( 0x73,  HALL_SETTINGS_3    );
+  writeRegister( 0x74,  HALL_SETTINGS_4    );
+  writeRegister( 0x75,  HALL_SETTINGS_5    );
+  writeRegister( 0x76,  HALL_SETTINGS_6    );
+  writeRegister( 0x77,  HALL_SETTINGS_7    );
+  writeRegister( 0x78,  HALL_SETTINGS_8    );
+  writeRegister( 0x79,  HALL_SETTINGS_9    );
+  writeRegister( 0x7a,  HALL_SETTINGS_10   );           
+
+/* Change the Device & PMU Settings */
+/* Memory Map Position 0xD0 - 0xD7 */
+  writeRegister( 0xd0,  SYSTEM_SETTINGS        );
+  writeRegister( 0xd1,  ACTIVE_CHS             );            
+  writeRegister( 0xd2,  PMU_SETTINGS           );
+  writeRegister( 0xd3,  REPORT_RATES_TIMINGS_0 );    
+  writeRegister( 0xd4,  REPORT_RATES_TIMINGS_1 );
+  writeRegister( 0xd5,  REPORT_RATES_TIMINGS_2 );
+  writeRegister( 0xd6,  REPORT_RATES_TIMINGS_3 );
+  writeRegister( 0xd7,  REPORT_RATES_TIMINGS_4 );
+
+}
+// end of IQS624_Init.cpp
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IQS622_Init/IQS622_Init.h	Sat May 13 01:25:40 2017 +0000
@@ -0,0 +1,57 @@
+/*
+* This file contains all the necessary settings for the IQS624 and this file can
+* be changed from the GUI or edited here
+* File:   IQS624_init.h
+* Author: Azoteq
+*/
+
+#ifndef IQS624_INIT_H
+#define IQS624_INIT_H
+
+/* Change the Prox Sensor Settings */
+/* Memory Map Position 0x40 - 0x49 */
+#define PXS_SETTINGS_0                      0x01
+#define PXS_SETTINGS_1                      0x02
+#define PXS_SETTINGS_2                      0x5A
+#define PXS_SETTINGS_3                      0x18
+#define PXS_SETTINGS_4                      0xD0
+#define PXS_SETTINGS_5                      0x00
+#define PXS_SETTINGS_6                      0xE6
+#define PXS_SETTINGS_7                      0x9A
+#define PXS_SETTINGS_8                      0x81
+#define PXS_SETTINGS_9                      0x05
+
+/* Change the Prox UI Settings */
+/* Memory Map Position 0x50 - 0x54 */
+#define PXS_UI_SETTINGS_0                   0x14
+#define PXS_UI_SETTINGS_1                   0x20
+#define PXS_UI_SETTINGS_2                   0x14
+#define PXS_UI_SETTINGS_3                   0x20
+#define PXS_UI_SETTINGS_4                   0x28
+
+/* Change the HALL Sensor Settings */
+/* Memory Map Position 0x70 - 0x7A */
+#define HALL_SETTINGS_0                     0x04
+#define HALL_SETTINGS_1                     0x03
+#define HALL_SETTINGS_2                     0x93
+#define HALL_SETTINGS_3                     0x93
+#define HALL_SETTINGS_4                     0xAC
+#define HALL_SETTINGS_5                     0xA1
+#define HALL_SETTINGS_6                     0x0A
+#define HALL_SETTINGS_7                     0x09
+#define HALL_SETTINGS_8                     0x46
+#define HALL_SETTINGS_9                     0x70
+#define HALL_SETTINGS_10                    0xE5
+
+/* Change the Device & PMU Settings */
+/* Memory Map Position 0xD0 - 0xD7 */
+#define SYSTEM_SETTINGS                     0x08
+#define ACTIVE_CHS                          0x3F
+#define PMU_SETTINGS                        0x03
+#define REPORT_RATES_TIMINGS_0              0x10
+#define REPORT_RATES_TIMINGS_1              0x64
+#define REPORT_RATES_TIMINGS_2              0x0A
+#define REPORT_RATES_TIMINGS_3              0x14
+#define REPORT_RATES_TIMINGS_4              0x07
+
+#endif  /* IQS624_INIT_H */
--- a/deviceType.h	Sat May 13 01:19:30 2017 +0000
+++ b/deviceType.h	Sat May 13 01:25:40 2017 +0000
@@ -2,4 +2,4 @@
 #define DEVICE_TYPE_IQS622 1
 
 // used by IQS62x lib when we want to override the simple configure() function
-//#define OVERRIDE_CONFIGURE 1
\ No newline at end of file
+#define OVERRIDE_CONFIGURE 1
\ No newline at end of file