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:
Revision 4:2c5ea9dc0662, committed 2017-05-13
- 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
--- /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
IQS622
IQS622-EVAL-1