EVAL-ADPD103Z

Hi , I have a question.

I have a ADPD103 evaluation board. And I load the Finger_PPG_ADPD103.dcfg file,
I tested the PPG on the board. Can read PPG signal on channel 1 of SLOT_A.
Then i tried to write the register 0x14 to 0x544.
But can't see the signal on SlotB channel_1.
Did I miss any register settings?

  • 0
    •  Analog Employees 
    on Jan 8, 2020 6:46 AM

    Moving this thread to its proper community Optical Sensing.

  • 0
    •  Analog Employees 
    on Jan 8, 2020 8:28 PM

    Hi Dean,

    You may have missed enabling timeslot B. Could you please check register 0x11 bit 5? It's by default 0 and 0 disables timeslot B. You should make it 1 to enable Slot B.

    Regards,

    Yigit

  • Hi Yigit Yoleri,

    Thank you for your help. I checked the register to make sure it is enabled.

    This is my waveform using SLOT_B and PD1.

    Register setting:

    INT_STATUS(00) (1000)
    INT_MASK(01) (00FF)
    PAD_IO_CTRL(02) (0005)
    SCAN_MODE(03) (0000)
    I2CS_STAT(04) (0084)
    I2CS_CTL(05) (0000)
    FIFO_LENGTH(06) (0F00)
    INTERNAL_STATE(07) (0060)
    CHIPID(08) (0416)
    I2CS_ID(09) (00C8)
    OS32M_CAL_OUT(0A) (0000)
    GPIO_CTRL(0B) (0000)
    WATCHDOG_TIMER(0C) (000F)
    I2CS_ID_KEY(0D) (0000)
    AC_POFFSET_OUT(0E) (0000)
    SW_RESET(0F) (0000)
    OP_MODE(10) (0000)
    OP_MODE_CFG(11) (3131)
    SAMPLING_FREQ(12) (0014)
    PROX_FREQ(13) (0FA0)
    PD_SELECT(14) (0544)
    INT_AVG_MODE(15) (0220)
    CH_GAIN12_A(16) (8080)
    CH_GAIN34_A(17) (8080)
    CH1_OFFSET_A(18) (1F80)
    CH2_OFFSET_A(19) (1F80)
    CH3_OFFSET_A(1A) (1F80)
    CH4_OFFSET_A(1B) (1F80)
    CH_GAIN12_B(1C) (8080)
    CH_GAIN34_B(1D) (8080)
    CH1_OFFSET_B(1E) (1F80)
    CH2_OFFSET_B(1F) (1F80)
    CH3_OFFSET_B(20) (1F80)
    CH4_OFFSET_B(21) (1F80)
    LED3_DRV(22) (1030)
    LED1_DRV(23) (1030)
    LED2_DRV(24) (1030)
    LED_TRIM(25) (02CC)
    GEST_SLOPE_TH(26) (0000)
    GEST_CTRL(27) (0700)
    GEST_THRESH(28) (0000)
    GEST_SIZE(29) (4000)
    PROX_ON_TH1(2A) (0600)
    PROX_OFF_TH1(2B) (0000)
    PROX_ON_TH2(2C) (0000)
    PROX_OFF_TH2(2D) (0000)
    PROX_TH1_HBYTE(2E) (0000)
    PROX_TH2_HBYTE(2F) (8000)
    PULSE_OFFSET_A(30) (0319)
    PULSE_PERIOD_A(31) (0818)
    PULSE_OFFSET_PROX_A(32)(0330)
    PULSE_PERIOD_PROX_A(33)(0113)
    LED_DISABLE(34) (0000)
    PULSE_OFFSET_B(35) (0320)
    PULSE_PERIOD_B(36) (0818)
    PULSE_PERIOD_EXT(37)(0000)
    SLEEP_FLOAT(38) (0000)
    AFE_CTRL_A(39) (21FB)
    AFE_CTRL_PROX_A(3A) (24D4)
    AFE_CTRL_B(3B) (21FB)
    AFE_CTRL2(3C) (3006)
    AFE_MASKS(3D) (0000)
    AFE_FGL_A(3E) (0320)
    AFE_FGL_B(3F) (0320)
    ADC_CTRL(40) (1010)
    ADC_REG1(41) (004C)
    AFE_TRIM_A(42) (1C36)
    AFE_TEST_A(43) (ADA5)
    AFE_TRIM_B(44) (1C36)
    AFE_TEST_B(45) (ADA5)
    OP_TIME1(46) (0000)
    REF_CTRL(47) (0080)
    BIAS_PD1(48) (0000)
    TRIM1(49) (0000)
    BTRIM2(4A) (0000)
    OSC32K(4B) (269A)
    OSC32M(4C) (0004)
    OSC32M_TRIM(4D) (425E)
    ADC_POST(4E) (0040)
    MISC(4F) (20D0)
    TEST_MODE(50) (0040)
    TEST_USE_I2C(51) (0000)
    TEST_PD(52) (0040)
    TEST_AFE_SEL_MODE(53)(E400)
    AFE_POWER_CTL(54) (0020)
    TIA_GAIN(55) (0000)
    R5_OPTIONS(56) (0000)
    EFUSE_CTRL(57) (0000)
    CALIBRATE(58) (0000)
    QRESET_VCM_B(59) (0808)
    TIMING_OPTIONS(5A) (0000)
    AO_CANCEL_A(5B) (0000)
    AO_CANCEL_PROX_A(5C)(0000)
    AO_CANCEL_B(5D) (0000)
    QRESET_VCM(5E) (0808)
    ACCESS_CTRL(5F) (0001)
    DATA_BUFFER(60) (03B3)
    I(61) (0000)
    X(62) (0000)
    Y(63) (0000)
    X1_A(64) (0000)
    X2_A(65) (0000)
    Y1_A(66) (0000)
    Y2_A(67) (0000)
    X1_B(68) (0000)
    X2_B(69) (0000)
    Y1_B(6A) (0000)
    Y2_B(6B) (0000)
    READ_MINDIDT(6C) (0000)
    READ_MAXDIDT(6D) (0000)
    READ_X1L_A(70) (0000)
    READ_X2L_A(71) (0000)
    READ_Y1L_A(72) (0000)
    READ_Y2L_A(73) (0000)
    READ_X1H_A(74) (0000)
    READ_X2H_A(75) (0000)
    READ_Y1H_A(76) (0000)
    READ_Y2H_A(77) (0000)
    READ_X1L_B(78) (0000)
    READ_X2L_B(79) (0000)
    READ_Y1L_B(7A) (0000)
    READ_Y2L_B(7B) (0000)
    READ_X1H_B(7C) (0000)
    READ_X2H_B(7D) (0000)
    READ_Y1H_B(7E) (0000)
    READ_Y2H_B(7F) (0000)

    This is my waveform using SLOT_A and PD1.

    Register setting:

    INT_STATUS(00) (1000)
    INT_MASK(01) (00FF)
    PAD_IO_CTRL(02) (0005)
    SCAN_MODE(03) (0000)
    I2CS_STAT(04) (0084)
    I2CS_CTL(05) (0000)
    FIFO_LENGTH(06) (0F00)
    INTERNAL_STATE(07) (0060)
    CHIPID(08) (0416)
    I2CS_ID(09) (00C8)
    OS32M_CAL_OUT(0A) (0000)
    GPIO_CTRL(0B) (0000)
    WATCHDOG_TIMER(0C) (000F)
    I2CS_ID_KEY(0D) (0000)
    AC_POFFSET_OUT(0E) (0000)
    SW_RESET(0F) (0000)
    OP_MODE(10) (0000)
    OP_MODE_CFG(11) (3131)
    SAMPLING_FREQ(12) (0014)
    PROX_FREQ(13) (0FA0)
    PD_SELECT(14) (0451)
    INT_AVG_MODE(15) (0220)
    CH_GAIN12_A(16) (8080)
    CH_GAIN34_A(17) (8080)
    CH1_OFFSET_A(18) (1F80)
    CH2_OFFSET_A(19) (1F80)
    CH3_OFFSET_A(1A) (1F80)
    CH4_OFFSET_A(1B) (1F80)
    CH_GAIN12_B(1C) (8080)
    CH_GAIN34_B(1D) (8080)
    CH1_OFFSET_B(1E) (1F80)
    CH2_OFFSET_B(1F) (1F80)
    CH3_OFFSET_B(20) (1F80)
    CH4_OFFSET_B(21) (1F80)
    LED3_DRV(22) (1030)
    LED1_DRV(23) (1030)
    LED2_DRV(24) (1030)
    LED_TRIM(25) (02CC)
    GEST_SLOPE_TH(26) (0000)
    GEST_CTRL(27) (0700)
    GEST_THRESH(28) (0000)
    GEST_SIZE(29) (4000)
    PROX_ON_TH1(2A) (0600)
    PROX_OFF_TH1(2B) (0000)
    PROX_ON_TH2(2C) (0000)
    PROX_OFF_TH2(2D) (0000)
    PROX_TH1_HBYTE(2E) (0000)
    PROX_TH2_HBYTE(2F) (8000)
    PULSE_OFFSET_A(30) (0319)
    PULSE_PERIOD_A(31) (0818)
    PULSE_OFFSET_PROX_A(32)(0330)
    PULSE_PERIOD_PROX_A(33)(0113)
    LED_DISABLE(34) (0000)
    PULSE_OFFSET_B(35) (0320)
    PULSE_PERIOD_B(36) (0818)
    PULSE_PERIOD_EXT(37)(0000)
    SLEEP_FLOAT(38) (0000)
    AFE_CTRL_A(39) (21FB)
    AFE_CTRL_PROX_A(3A) (24D4)
    AFE_CTRL_B(3B) (21FB)
    AFE_CTRL2(3C) (3006)
    AFE_MASKS(3D) (0000)
    AFE_FGL_A(3E) (0320)
    AFE_FGL_B(3F) (0320)
    ADC_CTRL(40) (1010)
    ADC_REG1(41) (004C)
    AFE_TRIM_A(42) (1C36)
    AFE_TEST_A(43) (ADA5)
    AFE_TRIM_B(44) (1C36)
    AFE_TEST_B(45) (ADA5)
    OP_TIME1(46) (0000)
    REF_CTRL(47) (0080)
    BIAS_PD1(48) (0000)
    TRIM1(49) (0000)
    BTRIM2(4A) (0000)
    OSC32K(4B) (269A)
    OSC32M(4C) (0004)
    OSC32M_TRIM(4D) (425E)
    ADC_POST(4E) (0040)
    MISC(4F) (20D0)
    TEST_MODE(50) (0040)
    TEST_USE_I2C(51) (0000)
    TEST_PD(52) (0040)
    TEST_AFE_SEL_MODE(53)(E400)
    AFE_POWER_CTL(54) (0020)
    TIA_GAIN(55) (0000)
    R5_OPTIONS(56) (0000)
    EFUSE_CTRL(57) (0000)
    CALIBRATE(58) (0000)
    QRESET_VCM_B(59) (0808)
    TIMING_OPTIONS(5A) (0000)
    AO_CANCEL_A(5B) (0000)
    AO_CANCEL_PROX_A(5C)(0000)
    AO_CANCEL_B(5D) (0000)
    QRESET_VCM(5E) (0808)
    ACCESS_CTRL(5F) (0001)
    DATA_BUFFER(60) (0356)
    I(61) (0000)
    X(62) (0000)
    Y(63) (0000)
    X1_A(64) (0000)
    X2_A(65) (0000)
    Y1_A(66) (0000)
    Y2_A(67) (0000)
    X1_B(68) (0000)
    X2_B(69) (0000)
    Y1_B(6A) (0000)
    Y2_B(6B) (0000)
    READ_MINDIDT(6C) (0000)
    READ_MAXDIDT(6D) (0000)
    READ_X1L_A(70) (0000)
    READ_X2L_A(71) (0000)
    READ_Y1L_A(72) (0000)
    READ_Y2L_A(73) (0000)
    READ_X1H_A(74) (0000)
    READ_X2H_A(75) (0000)
    READ_Y1H_A(76) (0000)
    READ_Y2H_A(77) (0000)
    READ_X1L_B(78) (0000)
    READ_X2L_B(79) (0000)
    READ_Y1L_B(7A) (0000)
    READ_Y2L_B(7B) (0000)
    READ_X1H_B(7C) (0000)
    READ_X2H_B(7D) (0000)
    READ_Y1H_B(7E) (0000)
    READ_Y2H_B(7F) (0000)

  • +1
    •  Analog Employees 
    on Jan 9, 2020 2:40 PM in reply to Dean

    Hi Dean,

    I checked the register lists. For both configurations:

    LED OFFSET Timeslot A=25 us- Register 0x30 (value: 0319)

    LED OFFSET Timeslot B=32 us- Register 0x35 (value: 0320)

    It is very likely that you miss LED pulses with different LED offset in timeslot B.

    Could you please try it with 25 us in SlotB too?

    Let me know if that helps or not.

    Regards,

    Yigit

  • Hi Yigit Yoleri,

    Yes, you're right

    It working

    Thank you for your help