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

IQS622_Init/IQS622_Init.cpp

Committer:
AzqDev
Date:
2018-01-23
Revision:
16:bce8134b37da
Parent:
13:84494b9f6711

File content as of revision 16:bce8134b37da:

#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 - 0x4D */
  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     );
  writeRegister( 0x4a,  PXS_SETTINGS_10    );
  writeRegister( 0x4b,  PXS_SETTINGS_11    );
  writeRegister( 0x4c,  PXS_SETTINGS_12    );
  writeRegister( 0x4d,  PXS_SETTINGS_13    );

/* 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 Prox UI Settings */
/* Memory Map Position 0x60 - 0x65 */
  writeRegister( 0x60,  SAR_UI_SETTINGS_0  );
  writeRegister( 0x61,  SAR_UI_SETTINGS_1  );
  writeRegister( 0x62,  SAR_UI_SETTINGS_2  );
  writeRegister( 0x63,  SAR_UI_SETTINGS_3  );
  writeRegister( 0x64,  SAR_UI_SETTINGS_4  );
  writeRegister( 0x65,  SAR_UI_SETTINGS_5  );

/* Change the Light Sensor Settings */
/* Memory Map Position 0x70 - 0x75 */
  writeRegister( 0x70,  LIGHT_SENSOR_SETTINGS_0  );
  writeRegister( 0x71,  LIGHT_SENSOR_SETTINGS_1  );
  writeRegister( 0x72,  LIGHT_SENSOR_SETTINGS_2  );
  writeRegister( 0x73,  LIGHT_SENSOR_SETTINGS_3  );
  writeRegister( 0x74,  LIGHT_SENSOR_SETTINGS_4  );
  writeRegister( 0x75,  LIGHT_SENSOR_SETTINGS_5  );

/* Change the Active IR UI Settings */
/* Memory Map Position 0x90 - 0x93 */
  writeRegister( 0x90,  IR_UI_SETTINGS_0  );
  writeRegister( 0x91,  IR_UI_SETTINGS_1  );
  writeRegister( 0x92,  IR_UI_SETTINGS_2  );
  writeRegister( 0x93,  IR_UI_SETTINGS_3  );

/* Change the HALL Sensor Settings */
/* Memory Map Position 0xA0 - 0xA3 */
  writeRegister( 0xa0,  HALL_SENSOR_SETTINGS_0    );
  writeRegister( 0xa1,  HALL_SENSOR_SETTINGS_1    );
  writeRegister( 0xa2,  HALL_SENSOR_SETTINGS_2    );
  writeRegister( 0xa3,  HALL_SENSOR_SETTINGS_3    );
  
/* Change the HALL Switch UI Settings */
/* Memory Map Position 0xB0 - 0xB2 */
  writeRegister( 0xb0,  HALL_UI_SETTINGS_0    );
  writeRegister( 0xb1,  HALL_UI_SETTINGS_1    );
  writeRegister( 0xb2,  HALL_UI_SETTINGS_2    );
    
/* 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 );
// TO FIX writeRegister( 0xd6,  REPORT_RATES_TIMINGS_3 );
// TO FIX writeRegister( 0xd7,  GLOBAL_EVENT_MASK      );

}
// end of IQS624_Init.cpp