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

Committer:
AzqDev
Date:
Sat May 13 01:25:40 2017 +0000
Revision:
4:2c5ea9dc0662
Child:
5:c88aa2de6f61
Added IQS622_Init.h processing

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AzqDev 4:2c5ea9dc0662 1 #include "IQS62x.h"
AzqDev 4:2c5ea9dc0662 2
AzqDev 4:2c5ea9dc0662 3 // Function to configure/initialize the IQS624
AzqDev 4:2c5ea9dc0662 4 // Uses the configuration data provided in "IQS624_Init.h"
AzqDev 4:2c5ea9dc0662 5 // The file "IQS624_Init.h" can be created/exported by the Azoteq software tools
AzqDev 4:2c5ea9dc0662 6 // The included version of "IQS624_Init.h" is a robust demo configuration
AzqDev 4:2c5ea9dc0662 7 // More info on IQS624: http://www.azoteq.com/products/proxfusion/iqs624?mbed
AzqDev 4:2c5ea9dc0662 8
AzqDev 4:2c5ea9dc0662 9 #include "IQS622_Init.h"
AzqDev 4:2c5ea9dc0662 10
AzqDev 4:2c5ea9dc0662 11 void IQS62xIO::configure() {
AzqDev 4:2c5ea9dc0662 12
AzqDev 4:2c5ea9dc0662 13 /* Change the Prox Sensor Settings */
AzqDev 4:2c5ea9dc0662 14 /* Memory Map Position 0x40 - 0x49 */
AzqDev 4:2c5ea9dc0662 15 writeRegister( 0x40, PXS_SETTINGS_0 );
AzqDev 4:2c5ea9dc0662 16 writeRegister( 0x41, PXS_SETTINGS_1 );
AzqDev 4:2c5ea9dc0662 17 writeRegister( 0x42, PXS_SETTINGS_2 );
AzqDev 4:2c5ea9dc0662 18 writeRegister( 0x43, PXS_SETTINGS_3 );
AzqDev 4:2c5ea9dc0662 19 writeRegister( 0x44, PXS_SETTINGS_4 );
AzqDev 4:2c5ea9dc0662 20 writeRegister( 0x45, PXS_SETTINGS_5 );
AzqDev 4:2c5ea9dc0662 21 writeRegister( 0x46, PXS_SETTINGS_6 );
AzqDev 4:2c5ea9dc0662 22 writeRegister( 0x47, PXS_SETTINGS_7 );
AzqDev 4:2c5ea9dc0662 23 writeRegister( 0x48, PXS_SETTINGS_8 );
AzqDev 4:2c5ea9dc0662 24 writeRegister( 0x49, PXS_SETTINGS_9 );
AzqDev 4:2c5ea9dc0662 25
AzqDev 4:2c5ea9dc0662 26 /* Change the Prox UI Settings */
AzqDev 4:2c5ea9dc0662 27 /* Memory Map Position 0x50 - 0x54 */
AzqDev 4:2c5ea9dc0662 28 writeRegister( 0x50, PXS_UI_SETTINGS_0 );
AzqDev 4:2c5ea9dc0662 29 writeRegister( 0x51, PXS_UI_SETTINGS_1 );
AzqDev 4:2c5ea9dc0662 30 writeRegister( 0x52, PXS_UI_SETTINGS_2 );
AzqDev 4:2c5ea9dc0662 31 writeRegister( 0x53, PXS_UI_SETTINGS_3 );
AzqDev 4:2c5ea9dc0662 32 writeRegister( 0x54, PXS_UI_SETTINGS_4 );
AzqDev 4:2c5ea9dc0662 33
AzqDev 4:2c5ea9dc0662 34 /* Change the HALL Sensor Settings */
AzqDev 4:2c5ea9dc0662 35 /* Memory Map Position 0x70 - 0x7A */
AzqDev 4:2c5ea9dc0662 36 writeRegister( 0x70, HALL_SETTINGS_0 );
AzqDev 4:2c5ea9dc0662 37 writeRegister( 0x71, HALL_SETTINGS_1 );
AzqDev 4:2c5ea9dc0662 38 writeRegister( 0x72, HALL_SETTINGS_2 );
AzqDev 4:2c5ea9dc0662 39 writeRegister( 0x73, HALL_SETTINGS_3 );
AzqDev 4:2c5ea9dc0662 40 writeRegister( 0x74, HALL_SETTINGS_4 );
AzqDev 4:2c5ea9dc0662 41 writeRegister( 0x75, HALL_SETTINGS_5 );
AzqDev 4:2c5ea9dc0662 42 writeRegister( 0x76, HALL_SETTINGS_6 );
AzqDev 4:2c5ea9dc0662 43 writeRegister( 0x77, HALL_SETTINGS_7 );
AzqDev 4:2c5ea9dc0662 44 writeRegister( 0x78, HALL_SETTINGS_8 );
AzqDev 4:2c5ea9dc0662 45 writeRegister( 0x79, HALL_SETTINGS_9 );
AzqDev 4:2c5ea9dc0662 46 writeRegister( 0x7a, HALL_SETTINGS_10 );
AzqDev 4:2c5ea9dc0662 47
AzqDev 4:2c5ea9dc0662 48 /* Change the Device & PMU Settings */
AzqDev 4:2c5ea9dc0662 49 /* Memory Map Position 0xD0 - 0xD7 */
AzqDev 4:2c5ea9dc0662 50 writeRegister( 0xd0, SYSTEM_SETTINGS );
AzqDev 4:2c5ea9dc0662 51 writeRegister( 0xd1, ACTIVE_CHS );
AzqDev 4:2c5ea9dc0662 52 writeRegister( 0xd2, PMU_SETTINGS );
AzqDev 4:2c5ea9dc0662 53 writeRegister( 0xd3, REPORT_RATES_TIMINGS_0 );
AzqDev 4:2c5ea9dc0662 54 writeRegister( 0xd4, REPORT_RATES_TIMINGS_1 );
AzqDev 4:2c5ea9dc0662 55 writeRegister( 0xd5, REPORT_RATES_TIMINGS_2 );
AzqDev 4:2c5ea9dc0662 56 writeRegister( 0xd6, REPORT_RATES_TIMINGS_3 );
AzqDev 4:2c5ea9dc0662 57 writeRegister( 0xd7, REPORT_RATES_TIMINGS_4 );
AzqDev 4:2c5ea9dc0662 58
AzqDev 4:2c5ea9dc0662 59 }
AzqDev 4:2c5ea9dc0662 60 // end of IQS624_Init.cpp