Post Go back to editing

ADPD 4100 SPI Connections

Are there any reference circuit diagrams available which illustrate the SPI connections between ADPD4100 and a primary device. I am currently connecting the DVDD1 (E1) to +1.8V; DGND (E2) to GND; SCLK (C2) to primary SCK output; SPI MISO (C1) to primary MISO; SPI MOSI (D1) to primary MOSI; and SPI CS (D2) to primary CS.

However, when I call

adi_adpddrv_OpenDriver()
on the primary it always gives an error. I am using an Arduino UNO as the primary. I am using a bi-directional logic-level converted to establish communication between ADPD4100 and the UNO. I have tested the logic-level converter separately and it is fast enough for SPI communication for this application.

Do you have any suggestions on how I can proceed with debugging?

Any help is highly appreciated. Thank you very much!

Parents
  • Hi,

    On AVDD, DVDD1, DVDD2 connect 1.8VDC and connect GND to AGND, DGND, LGND & IOGND.

    On IOVDD connect your SPI/I2C logic level voltage, I think UNO SPI logic level is 3.6VDC.

    Regards,

    Optical Support Team.

  • Thank you for your reply!  I made the connections according to your instructions.

    I have been trying to query the chip ID by using adi_adpddrv_RegRead to read the value of ADPD4x_REG_CHIP_ID. I probed the SPI signals in a logic analyzer and I found that SPI CLK, CS, MOSI are being driven as expected, i.e., the logic analyzer is able to determine the MOSI bits as b00000000, b00010000, which are the correct values for reading the register 0x0008. However, the ADPD chip provides no response, the MISO bits are all zeroes.

    Is there a way to determine whether the ADPD4100 is functioning properly or is powered properly without using SPI at all? Perhaps by measuring the voltage level on some pin or something else?

    Thanks in advance!

  • Hi,

    Is it possible for you to share the sensor picture which you are using?

    Regards,

    Optical Support Team.

  • Sure, I am using ADPD4100 which has been soldered to a BGA prototyping board. I know there may be some defects in BGA soldering so I was wondering if there was any hardware check I can perform before establishing communication over SPI.

    If this doesn't work, I will try SPI communication between the UNO and the EVAL-ADPD4100Z-PPG.

  • Hi,

    It's better to try with EVAL-ADPD4100ZPPG. So, that we can get confimation like UNO platform is able to communicate with ADPD4100 sensor. Once the communication is estabilished you can try BGA board.

    Regards,

    Optical Support Team.

  • I see, thank you for your prompt reply!

    Besides connecting CONN1_SPI1_CLK, CONN1_SPI1_MOSI, CONN1_SPI_CS0, CONN1_SPI1_MISO from the following figure to the corresponding UNO SPI pins, which other connections should be made for setting up communication between UNO and EVAL-ADPD4100Z-PPG. Of course, I also need to connect the ground and provide 1.8V DC supply. Are there any other connections to be made?

    I appreciate your help very much!

  • Hi,

    Connect 3.3VDC to VBoost line and which revision of sensor you are using?

    Regards,

    Optical Support Team.

Reply Children
  • Thank you for your response. Is the 3.3VDC connection to VBoost required for just SPI communication testing?

    I am using Rev. G. Do I also need to ground DSEL so that SPI_CS1, which is the CS for ADPD4100, is selected on CONN1_SPI_CS0?

  • Hi,

    VBoost is required for LED power.

    DSEL pin connect to 1.8VDC.

    Chip select pin P5_12 -> CONN1_SPI1_CS0/P1_9.

    Regards,

    Optical Support Team.

  • I see, thank you for clarifying. I am not able to find pin P5_12 in the user guide:

    https://www.analog.com/media/en/technical-documentation/user-guides/eval-adpd4100z-ppg-ug-1795.pdf.

    I am currently making the following connections:

    1. CS from UNO -> Logic Level Converter (LLC) ->  CONN1_SPI1_CS0/P1_9

    2. SPI CLK from UNO -> LLC -> CONN1_SPI1_CLK/P1_6

    3. MISO from UNO <- LLC <- CONN1_SPI1_MISO/P1_8

    4. MOSI from UNO -> LLC -> CONN1_SPI1_MOSI/P1_7

    5. VBOOST (PIN 3 and 4 of ribbon cable) -> 3.3VDC

    6. GND_LOCAl (PIN 15 and 16 of ribbon cable) -> GND.

    After making these connections, I observe that I am getting nonsensical values in my logic analyzer. The following figure shows the SPI waveforms when all the connections are made as mentioned above:

    However, when I disconnect the CS connection keeping everything else the same, I observe that the data makes sense, but I am not able to get the chip id, of course. The following figure shows the SPI waveforms without the CS connection:

    I am not able to understand why this is happening. Am I missing something? I would appreciate any help or suggestions. Thank you very much!

  • Hi,

    IOVDD line is connected with 1.8VDC or 3.3VDC?

    Regards,

    Optical Support Team.

  • I am using the default jumper connections so IOVDD is using 1.8VDC.

  • After some more debugging, I was able to resolve the issue. I am writing this reply to conclude this thread and document my findings which may help other users:

    I found that the logic level converter (TXB0108) was faulty. I modified the eval board to set IOVDD to 3.3VDC and tried SPI communication using a Raspberry Pi as the primary. I made the same connections as mentioned in one of my previous comments but without the logic level converter. SPI communication successfully worked in this scenario.

    Thank you very much for your help, Sathish!

  • Hi 

    could you share the schematic and source code for testing