This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Cannot read proximity data

Hi,

I am trying to get the proximity data from LDC1000 but my code seems not working.

If I want to write and then read threshold high LSB using 

vAHI_SpiStartTransfer16(0x0684);   // write

vAHI_SpiStartTransfer8(0x86);         // read
out =u8AHI_SpiReadTransfer8();

I  got 0x86 on the terminal (Likewise proximity data LSB gets 0xA1)

MCU is NXP JN5158 and programming software is eclipse C++

my SPI configuration is 

vAHI_SpiConfigure(1,                                               // 1 slave device
                                E_AHI_SPIM_MSB_FIRST,
                                0,0,                                           // Clock polarity unchanged, Phase: latch data on leading edge of the clock
                                8,                                              // Clock divider: Peripheral clock is divided by 2 x u8ClockDivider
                                FALSE,                                    // Interrupt disabled
                                FALSE);                                   // AutoSlaveSelect disabled
                                uint8 out;
vAHI_DioSetDirection(0, E_AHI_DIO0_INT);          // DIO0 is connected with CSB, set DIO0 as output

Below is my programming code

vAHI_SpiSelect(1); //Power mode off
vAHI_SpiStartTransfer16(0x0B00);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //Rp max
vAHI_SpiStartTransfer16(0x0112);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //Rp min
vAHI_SpiStartTransfer16(0x023C);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); // interrupt mode: comparator
vAHI_SpiStartTransfer16(0x0A02);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //High LSB
vAHI_SpiStartTransfer16(0x0684);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //High MSB
vAHI_SpiStartTransfer16(0x071C);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //Low LSB
vAHI_SpiStartTransfer16(0x0820);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //Low MSB
vAHI_SpiStartTransfer16(0x091C);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //Power mode active
vAHI_SpiStartTransfer16(0x0B01);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy(); // End of initialisation

/***********Check to see if values were written to registers correctly***********/

vAHI_SpiSelect(1); //Rp max
vAHI_SpiStartTransfer8(0x81);
out =u8AHI_SpiReadTransfer8();
DBG_vPrintf(TRACE_EXCEPTION, "0x%08x\r\n", out);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //Rp min
vAHI_SpiStartTransfer8(0x82);
out =u8AHI_SpiReadTransfer8();
DBG_vPrintf(TRACE_EXCEPTION, "0x%08x\r\n", out);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //High LSB
vAHI_SpiStartTransfer8(0x86);
out =u8AHI_SpiReadTransfer8();
DBG_vPrintf(TRACE_EXCEPTION, "0x%08x\r\n", out);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //High MSB
vAHI_SpiStartTransfer8(0x87);
out =u8AHI_SpiReadTransfer8();
DBG_vPrintf(TRACE_EXCEPTION, "0x%08x\r\n", out);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //Low LSB
vAHI_SpiStartTransfer8(0x88);
out =u8AHI_SpiReadTransfer8();
DBG_vPrintf(TRACE_EXCEPTION, "0x%08x\r\n", out);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

vAHI_SpiSelect(1); //Low MSB
vAHI_SpiStartTransfer8(0x89);
out =u8AHI_SpiReadTransfer8();
DBG_vPrintf(TRACE_EXCEPTION, "0x%08x\r\n", out);
vAHI_SpiSelect(0);
vAHI_SpiWaitBusy();

Could you please help?
Best regards,

Liang