ADPD144 problems

Hi,

In our research group we have had some problems with the IC ADPD144. Our problems are listed below:

- The process of reading registers is pretty strange. For example, when we try to read the register 0x08 to know the value of the ID the first attempt is always wrong and the second one and the following ones are correct. We have checked the protocol (200kHz & 1,8V) using an oscilloscope and it is right. All the frames are transmitted well. We don't know what is the reason of this and we tried to write some registers and read their content, but the result is always the same, the first read is wrong and the following ones are correct.

- The LEDs doesn't turn on never. We configure the IC using the following sequence, but the device doesn't do anything.

//Configuration PPG
write_3_I2C(MODE,0x0001);               //Program mode

write_3_I2C(INT,0x0005);                //INT pin enabled
                                        //INT pin is driven when the interrupt is asserted
                                        //INT pin is active low
                                        
write_3_I2C(SLOT_EN,0x30A9);            //Time Slot A enable
                                        //Time Slot A FIFO Format - 32-bit sum of all 4 channels
                                        //Time Slot B enable
                                        //Time Slot B FIFO Format - 32-bit sum of all 4 channels
                                        //Wrap around FIFO, overwriting old data with new.
                                        //Block average of N samples
                                        
write_3_I2C(F_SAMPLE,0x000A);           //Sampling frequency = 32kHz/(10x4) = 800Hz

write_3_I2C(PD_LED_SELECT,0x0116);      //Time Slot A LED configuration - LEDX2
                                        //Time Slot B LED configuration - LEDX1
                                        //Connection of PD1, PD2, PD3, or PD4 for Time Slot A - Channel 3 & 4
                                        //Connection of PD1, PD2, PD3, or PD4 for Time Slot B - Channel 3 & 4

write_3_I2C(NUM_AVG,0x0330);            //Sample sum/average for Time Slot A - 8
                                        //Sample sum/average for Time Slot B - 8

write_3_I2C(SLOTA_CH1_OFFSET,0x3FFF);   //Time Slot A Channel 1 ADC offset - 16383 (NOT USED)

write_3_I2C(SLOTA_CH2_OFFSET,0x3FFF);   //Time Slot A Channel 2 ADC offset - 16383 (NOT USED)

write_3_I2C(SLOTA_CH3_OFFSET,0x1FF0);   //Time Slot A Channel 3 ADC offset - 8176 (HALF-SCALE)

write_3_I2C(SLOTA_CH4_OFFSET,0x1FF0);   //Time Slot A Channel 4 ADC offset - 8176 (HALF-SCALE)

write_3_I2C(SLOTB_CH1_OFFSET,0x3FFF);   //Time Slot B Channel 1 ADC offset - 16383 (NOT USED)

write_3_I2C(SLOTB_CH2_OFFSET,0x3FFF);   //Time Slot B Channel 2 ADC offset - 16383 (NOT USED)

write_3_I2C(SLOTB_CH3_OFFSET,0x1FFF);   //Time Slot B Channel 3 ADC offset - 8176 (HALF-SCALE)

write_3_I2C(SLOTB_CH4_OFFSET,0x1FFF);   //Time Slot B Channel 4 ADC offset - 8176 (HALF-SCALE)

write_3_I2C(ILED1_COARSE,0x3005);       //LEDX1 coarse current setting - 100mA
                                        //LEDX1 current scale factor - 100%
                                        //LEDX1PEAK = LEDX1COARSE × LEDX1FINE × LEDX1SCALE
                                        //LEDX1 Current Scale = 0.4 + 0.6 × Register 0x23, Bit 13

write_3_I2C(ILED2_COARSE,0x3007);       //LEDX2 coarse current setting - 130mA
                                        //LEDX2 current scale factor - 100%
                                        //LEDX2PEAK = LEDX2COARSE × LEDX2FINE × LEDX2SCALEç
                                        //LEDX2 Current Scale = 0.4 + 0.6 × Register 0x24, Bit 13

write_3_I2C(ILED_FINE,0x0207);          //LEDX1 fine adjust. Current adjust multiplier for LEDX1 - 593.75ns
                                        //LEDX2 fine adjust. Current adjust multiplier for LEDX2 - 593.75ns

write_3_I2C(SLOTA_LEDMODE,0x0319);      //LED configuration for Time Slot A - Pulse Offset A = 25 μs and pulse width = 3 μs

write_3_I2C(SLOTA_NUMPULSES,0x0813);    //LED Time Slot A pulse count - Pulse Period A = 19 μs and Pulse Count A = 8

write_3_I2C(SLOTB_LEDMODE,0x0319);      //LED configuration for Time Slot B - Pulse Offset B = 25 μs and pulse width = 3 μs

write_3_I2C(SLOTB_NUMPULSES,0x0813);    //LED Time Slot B pulse count - Pulse Period B = 19 μs and Pulse Count A = 8

write_3_I2C(SLOTA_AFEMODE,0x21F3);      //AFE configuration for Time Slot A

write_3_I2C(SLOTB_AFEMODE,0x21F3);      //AFE configuration for Time Slot B

write_3_I2C(SLOTA_GAIN,0x1C36);         //TIA Gain for Time Slot A - 50k
                                        //Disable TIA gain individual setting (Time Slot B)
                                        //Band-pass filter = 390 kHz/100 kHz
                                        //VREF = 1.265 V
                                        //Integrator = 200,000/6.33 pF

write_3_I2C(SLOTB_GAIN,0x1C36);         //TIA Gain for Time Slot B - 50k
                                        //Disable TIA gain individual setting (Time Slot B)
                                        //Band-pass filter = 390 kHz/100 kHz
                                        //VREF = 1.265 V
                                        //Integrator = 200,000/6.33 pF

write_3_I2C(ADC_TIMING,0x0040);         //The ADC clock only pulses during conversion

write_3_I2C(MODE,0x0002);               //Sample mode

Any idea how to solve these problems? 

Thanks,

PD: The shematic used is the following one. VDD = VLED = 3V & VDD_PPG = VDD1 = VDD2 = 3V.