CAPSENSE™ Touchpad I2C Host 1.0.0.44
 
Loading...
Searching...
No Matches
CAPSENSE™ Touchpad I2C Host macros

General Description

Register-map, size, limit, and helper macros.

Macros

#define MTB_TOUCHPAD_RET_TYPE   uint32_t
 CAPSENSE™ Touchpad I2C Host middleware API return type.
 
#define REG_FW_VER   (REG_FW_VER_MAJ)
 Register address for FW version of the I2C Touchpad device.
 
#define REG_FW_VER_MAJ   0x00
 Register address for major FW version of the I2C Touchpad device.
 
#define REG_FW_VER_MIN   0x01
 Register address for minor FW version of the I2C Touchpad device.
 
#define REG_FW_VER_BLD   0x03
 Register address for build FW version of the I2C Touchpad device.
 
#define REG_RST_CAUSE   0x05
 Register address for reset cause.
 
#define REG_CMD   0x06
 Register address for command execution.
 
#define REG_TEST_STATUS   0x08
 Register address for test status.
 
#define REG_SHORTED_SNS_ID   0x09
 Register address for shorted sensor ID.
 
#define REG_INT_SRC_EN   0x0D
 Register address for interrupt source enable.
 
#define REG_INT_STATUS   0x0E
 Register address for interrupt status.
 
#define REG_ERROR_STATUS   0x0F
 Register address for error status.
 
#define REG_SCAN_MODE   0x10
 Register address for scan mode configuration.
 
#define REG_SHIELD_EN   0x11
 Register address for shield enable and disable configuration.
 
#define REG_MODE_TIMEOUT_ACT   0x12
 Register address for active mode timeout.
 
#define REG_MODE_TIMEOUT_ALR   0x16
 Register address for alert mode timeout.
 
#define REG_SNS_FILT_CFG   0x24
 Register address for sensor filter configuration.
 
#define REG_SNS_REF_RATE_ACT   0x26
 Register address for active mode sensor refresh rate.
 
#define REG_SNS_REF_RATE_ALR   0x27
 Register address for ALR mode sensor refresh rate.
 
#define REG_TCH0_POS   (REG_TCH0_POS_X)
 Base register address for first touch (TCH0) position.
 
#define REG_TCH0_POS_X   0x28
 Register address for TCH0 X coordinate.
 
#define REG_TCH0_POS_Y   0x2A
 Register address for TCH0 Y coordinate.
 
#define REG_TCH0_POS_Z   0x2C
 Register address for TCH0 Z coordinate.
 
#define REG_TCH1_POS   (REG_TCH1_POS_X)
 Base register address for second touch (TCH1) position.
 
#define REG_TCH1_POS_X   0x2E
 Register address for TCH1 X coordinate.
 
#define REG_TCH1_POS_Y   0x30
 Register address for TCH1 Y coordinate.
 
#define REG_TCH1_POS_Z   0x32
 Register address for TCH1 Z coordinate.
 
#define REG_NUM_TOUCH   0x34
 Register address for number of detected touches.
 
#define REG_GESTURE_DET   0x35
 Register address for gesture detection.
 
#define REG_GESTURE_DIR   0x39
 Register address for gesture direction.
 
#define REG_LIQUID_DETECT_EN   0x3D
 Register address to enable and disable liquid detection.
 
#define REG_LIQUID_DETECTED   0x3E
 Register address for liquid detection status.
 
#define REG_LIQUID_DUTY_CYCLE   0x3F
 Register address for liquid detection duty cycle.
 
#define REG_DONN_EN   0x40
 Register address to enable and disable Donn feature.
 
#define REG_DONN_DETECT   0x41
 Register address for Donn detection status.
 
#define REG_STORED_FLAG   0x5F
 Register address for stored flag.
 
#define REG_USER_DATA_LEN   0x60
 Register address for user data length.
 
#define REG_NUM_SNS   0x62
 Register address for number of sensors.
 
#define REG_SNS_RAW   0x63
 Base register address for sensor raw data.
 
#define REG_SNS_BSL(x)
 Macro to get baseline register address for a sensor index.
 
#define REG_SNS_CP_MEASURE(x)
 Macro to get capacitance measurement register address for a sensor index.
 
#define REG_USER_DATA(x)
 Macro to get user data register address.
 
#define REG_SNS_RAW_IDX(x)
 Macro to get address of raw index for a sensor.
 
#define REG_SNS_BSL_IDX(x, y)
 Macro to get address of baseline for given sensor.
 
#define REG_SNS_CP_IDX(x, y)
 Macro to get address of capacitance for given sensor.
 
#define REG_FW_VER_MAJ_SIZE   1
 Size of major firmware version register in bytes.
 
#define REG_FW_VER_MIN_SIZE   2
 Size of minor firmware version register in bytes.
 
#define REG_FW_VER_BLD_SIZE   2
 Size of build firmware version register in bytes.
 
#define REG_RST_CAUSE_SIZE   1
 Size of reset cause register in bytes.
 
#define REG_CMD_SIZE   2
 Size of command register in bytes.
 
#define REG_TEST_STATUS_SIZE   1
 Size of test status register in bytes.
 
#define REG_SHORTED_SNS_ID_SIZE   4
 Size of shorted sensor ID register in bytes.
 
#define REG_INT_SRC_EN_SIZE   1
 Size of interrupt source enable register in bytes.
 
#define REG_INT_STATUS_SIZE   1
 Size of interrupt status register in bytes.
 
#define REG_ERROR_STATUS_SIZE   1
 Size of error status register in bytes.
 
#define REG_SCAN_MODE_SIZE   1
 Size of scan mode register in bytes.
 
#define REG_SHIELD_EN_SIZE   1
 Size of shield enable register in bytes.
 
#define REG_MODE_TIMEOUT_ACT_SIZE   4
 Size of active mode timeout register in bytes.
 
#define REG_MODE_TIMEOUT_ALR_SIZE   4
 Size of ALR mode timeout register in bytes.
 
#define REG_SNS_FILT_CFG_SIZE   2
 Size of sensor filter configuration register in bytes.
 
#define REG_SNS_REF_RATE_ACT_SIZE   1
 Size of active mode sensor refresh rate register in bytes.
 
#define REG_SNS_REF_RATE_ALR_SIZE   1
 Size of ALR mode sensor refresh rate register in bytes.
 
#define REG_TCH_XYZ_SIZE_WORD   3
 Number of words used for touch XYZ data.
 
#define REG_TCH_XYZ_SIZE_BYTES   (REG_TCH_XYZ_SIZE_WORD * 2)
 Size in bytes of touch XYZ data.
 
#define REG_TCH0_POS_X_SIZE   2
 Size of TCH0 X coordinate register in bytes.
 
#define REG_TCH0_POS_Y_SIZE   2
 Size of TCH0 Y coordinate register in bytes.
 
#define REG_TCH0_POS_Z_SIZE   2
 Size of TCH0 Z coordinate register in bytes.
 
#define REG_TCH1_POS_X_SIZE   2
 Size of TCH1 X coordinate register in bytes.
 
#define REG_TCH1_POS_Y_SIZE   2
 Size of TCH1 Y coordinate register in bytes.
 
#define REG_TCH1_POS_Z_SIZE   2
 Size of TCH1 Z coordinate register in bytes.
 
#define REG_NUM_TOUCH_SIZE   1
 Size of number of touches register in bytes.
 
#define REG_GESTURE_DET_SIZE   4
 Size of gesture detection register in bytes.
 
#define REG_GESTURE_DIR_SIZE   4
 Size of gesture direction register in bytes.
 
#define REG_LIQUID_DETECT_EN_SIZE   1
 Size of liquid detect enable register in bytes.
 
#define REG_LIQUID_DETECTED_SIZE   1
 Size of liquid detected status register in bytes.
 
#define REG_LIQUID_DUTY_CYCLE_SIZE   1
 Size of liquid duty cycle register in bytes.
 
#define REG_DONN_EN_SIZE   1
 Size of Donn enable register in bytes.
 
#define REG_DONN_DETECT_SIZE   1
 Size of Donn detect register in bytes.
 
#define REG_RESERVED_1_SIZE   29
 Size of reserved block 1 in bytes.
 
#define REG_STORED_FLAG_SIZE   1
 Size of stored flag register in bytes.
 
#define REG_USER_DATA_LEN_SIZE   2
 Size of user data length register in bytes.
 
#define REG_NUM_SNS_SIZE   1
 Size of number of sensors register in bytes.
 
#define SNS_RAW_SIZE   2
 Size of raw sensor data per sensor in bytes.
 
#define BASELINE_SIZE   2
 Size of baseline value per sensor in bytes.
 
#define CAPACITANCE_SIZE   4
 Size of capacitance value per sensor in bytes.
 
#define REG_SNS_RAW_SIZE(x)
 Total size of raw sensor data for given number of sensors.
 
#define REG_SNS_BSL_SIZE(x)
 Total baseline data size for given number of sensors.
 
#define REG_SNS_CP_MEASURE_SIZE(x)
 Total capacitance data size for given number of sensors.
 
#define MTB_TOUCHPAD_INVALID_NUM_SNS   0x00
 Invalid number of sensors.
 
#define MTB_TOUCHPAD_CLEAR_INT_STATUS   0x00
 Clear interrupt pin status.
 
#define MTB_TOUCHPAD_INT_SRC_EN_MIN   0x01
 Minimum valid value for interrupt source enable register (at least one source must be enabled).
 
#define MTB_TOUCHPAD_INT_SRC_EN_MAX   0xFF
 Maximum valid value for interrupt source enable register (all bits 0-7).
 
#define MTB_TOUCHPAD_INT_STATUS_MAX   0xFF
 Maximum valid value for interrupt status register (all bits 0-7).
 
#define MTB_TOUCHPAD_SNS_REFRESH_RATE_ACT_MAX   0xFF
 SNS_REFRESH_RATE_ACT maximum value.
 
#define MTB_TOUCHPAD_SNS_REFRESH_RATE_ACT_MIN   0x01
 SNS_REFRESH_RATE_ACT minimum value.
 
#define MTB_TOUCHPAD_SNS_REFRESH_RATE_ALR_MAX   0xFF
 SNS_REFRESH_RATE_ALR maximum value.
 
#define MTB_TOUCHPAD_SNS_REFRESH_RATE_ALR_MIN   0x01
 SNS_REFRESH_RATE_ALR minimum value.
 
#define MTB_TOUCHPAD_LIQUID_DETECT_EN_MAX   0x01
 Liquid rejection enabled max value.
 
#define MTB_TOUCHPAD_LIQUID_DETECT_EN_MIN   0x00
 Liquid rejection enabled min value.
 
#define MTB_TOUCHPAD_LIQUID_DUTY_CYCLE_MAX   0x63
 Liquid rejection duty cycle max value.
 
#define MTB_TOUCHPAD_LIQUID_DUTY_CYCLE_MIN   0x00
 Liquid rejection duty cycle min value.
 
#define MTB_TOUCHPAD_DONN_EN_MAX   0x01
 Donn Enable max value.
 
#define MTB_TOUCHPAD_DONN_EN_MIN   0x00
 Donn Enable min value.
 
#define MTB_TOUCHPAD_FW_VER_SIZE
 Total size of firmware version registers.
 
#define FW_VER_MAJ_IDX   0
 Index of major firmware version.
 
#define FW_VER_MIN_IDX   1
 Index of minor firmware version.
 
#define FW_VER_BLD_IDX   3
 Index of build firmware version.
 
#define MTB_TOUCHPAD_GET_POS_SIZE
 Total size of coordinates and number of touch register.
 
#define TCH0_X_IDX   0
 Index of X coordinate for touch 0.
 
#define TCH0_Y_IDX   2
 Index of Y coordinate for touch 0.
 
#define TCH0_Z_IDX   4
 Index of Z coordinate for touch 0.
 
#define TCH1_X_IDX   6
 Index of X coordinate for touch 1.
 
#define TCH1_Y_IDX   8
 Index of Y coordinate for touch 1.
 
#define TCH1_Z_IDX   10
 Index of Z coordinate for touch 1.
 
#define NUM_TOUCH_IDX   12
 Index of number of touch detected.
 
#define MTB_TOUCHPAD_TIMEOUT_ENABLED(mode)
 Checks if timeout is enabled in the given scan mode.
 
#define MTB_TOUCHPAD_TIMEOUT_DISABLED(mode)
 Checks if timeout is disabled in the given scan mode.
 

Macro Definition Documentation

◆ REG_SNS_BSL

#define REG_SNS_BSL ( x)
Value:
(REG_SNS_RAW + (2 * (x)))
#define REG_SNS_RAW
Base register address for sensor raw data.
Definition mtb_touchpad_driver.h:297

Macro to get baseline register address for a sensor index.

◆ REG_SNS_CP_MEASURE

#define REG_SNS_CP_MEASURE ( x)
Value:
(REG_SNS_RAW + (4 * (x)))

Macro to get capacitance measurement register address for a sensor index.

◆ REG_USER_DATA

#define REG_USER_DATA ( x)
Value:
(REG_SNS_RAW + (8 * (x)))

Macro to get user data register address.

◆ REG_SNS_RAW_IDX

#define REG_SNS_RAW_IDX ( x)
Value:
#define REG_SNS_BSL(x)
Macro to get baseline register address for a sensor index.
Definition mtb_touchpad_driver.h:303

Macro to get address of raw index for a sensor.

◆ REG_SNS_BSL_IDX

#define REG_SNS_BSL_IDX ( x,
y )
Value:
((REG_SNS_BSL(x)) + (2 * (y)))

Macro to get address of baseline for given sensor.

◆ REG_SNS_CP_IDX

#define REG_SNS_CP_IDX ( x,
y )
Value:
((REG_SNS_CP_MEASURE(x)) + (4 * (y)))
#define REG_SNS_CP_MEASURE(x)
Macro to get capacitance measurement register address for a sensor index.
Definition mtb_touchpad_driver.h:309

Macro to get address of capacitance for given sensor.

◆ REG_SNS_RAW_SIZE

#define REG_SNS_RAW_SIZE ( x)
Value:
(SNS_RAW_SIZE * (x))
#define SNS_RAW_SIZE
Size of raw sensor data per sensor in bytes.
Definition mtb_touchpad_driver.h:561

Total size of raw sensor data for given number of sensors.

◆ REG_SNS_BSL_SIZE

#define REG_SNS_BSL_SIZE ( x)
Value:
#define BASELINE_SIZE
Size of baseline value per sensor in bytes.
Definition mtb_touchpad_driver.h:567

Total baseline data size for given number of sensors.

◆ REG_SNS_CP_MEASURE_SIZE

#define REG_SNS_CP_MEASURE_SIZE ( x)
Value:
#define CAPACITANCE_SIZE
Size of capacitance value per sensor in bytes.
Definition mtb_touchpad_driver.h:573

Total capacitance data size for given number of sensors.

◆ MTB_TOUCHPAD_FW_VER_SIZE

#define MTB_TOUCHPAD_FW_VER_SIZE
Value:
#define REG_FW_VER_MAJ_SIZE
Size of major firmware version register in bytes.
Definition mtb_touchpad_driver.h:339
#define REG_FW_VER_MIN_SIZE
Size of minor firmware version register in bytes.
Definition mtb_touchpad_driver.h:345
#define REG_FW_VER_BLD_SIZE
Size of build firmware version register in bytes.
Definition mtb_touchpad_driver.h:351

Total size of firmware version registers.

◆ MTB_TOUCHPAD_GET_POS_SIZE

#define MTB_TOUCHPAD_GET_POS_SIZE
Value:
#define REG_TCH1_POS_Z_SIZE
Size of TCH1 Z coordinate register in bytes.
Definition mtb_touchpad_driver.h:483
#define REG_TCH1_POS_X_SIZE
Size of TCH1 X coordinate register in bytes.
Definition mtb_touchpad_driver.h:471
#define REG_TCH1_POS_Y_SIZE
Size of TCH1 Y coordinate register in bytes.
Definition mtb_touchpad_driver.h:477
#define REG_TCH0_POS_X_SIZE
Size of TCH0 X coordinate register in bytes.
Definition mtb_touchpad_driver.h:453
#define REG_TCH0_POS_Z_SIZE
Size of TCH0 Z coordinate register in bytes.
Definition mtb_touchpad_driver.h:465
#define REG_TCH0_POS_Y_SIZE
Size of TCH0 Y coordinate register in bytes.
Definition mtb_touchpad_driver.h:459
#define REG_NUM_TOUCH_SIZE
Size of number of touches register in bytes.
Definition mtb_touchpad_driver.h:489

Total size of coordinates and number of touch register.

◆ MTB_TOUCHPAD_TIMEOUT_ENABLED

#define MTB_TOUCHPAD_TIMEOUT_ENABLED ( mode)
Value:
((mode) & MTB_TOUCHPAD_SCAN_MODE_TIMEOUT_ENABLE)

Checks if timeout is enabled in the given scan mode.

◆ MTB_TOUCHPAD_TIMEOUT_DISABLED

#define MTB_TOUCHPAD_TIMEOUT_DISABLED ( mode)
Value:
(!((mode) & MTB_TOUCHPAD_SCAN_MODE_TIMEOUT_ENABLE))

Checks if timeout is disabled in the given scan mode.