Post Go back to editing

Problem reading registers from ADF4382A through SPI

Thread Summary

The user encountered incorrect readback values from the ADF4382A PLL on the EVAL-ADF4382A (REV D) evaluation board using both custom C functions and ACE software. The issue was resolved by disconnecting the oscilloscope probes from the test points (TP1 and TP2) and connecting them directly to the P2 connector. However, 3.3V logic with 4-wire SPI mode still exhibits readback issues on the REV D board.
AI Generated Content
Category: Hardware
Product Number: ADF4382A

Hi everyone,

Recently I have been trying to work with ADF4382A an its evaluation board (EVAL-ADF4382A, REV D) both with ACE software and my own C functions and I am having some problems.

At first I was only trying to write and read through the SPI with my own custom C functions and while the writing operations seemed to work pretty well, the reading ones failed as the values read didn't match with the expected ones. I am sure that the registers were written ok because with an oscilloscope I could see the SDIO line change its voltage depending on the configuration of the 0x3D register. I could even achieve the PLL lock at some frequency of my interest. But, unfortunately, when I tried to make a silly read operation following the datasheet instructions, I encountered that the values returned were wrong. I tried to read different registers like 0x0C or 0x0D but instead of returning the POR  values they returned 0x01 and 0x00.

 

I assumed that my code had some mistake coming from a missunderstanding so I decided to use ACE to make some reads and compare the oscilloscope readings with the previous ones. To my surprise, the readings returned the same (e.g. 0x01 from the 0x0C register). This happens in spite of the SPIO line configuration, whether I use 3 or 4 wires, 1.8 or 3.3 V. In the screenshot of the oscilloscope trace that is attached I was working with 4 wires and 1.8V using ACE software. (BLUE = CSB, RED = SCLK, GREEN = SDO, YELLOW = SDIO)

I have not much knowledge, but I can see some things that for me seem off:

1- If the PLL is working in 1.8V, why does the logich high of the SDIO line reach 2.65V?

2- Is it normal that the SDO line is stuck at 2.36V when writing the address? Because when performing the reading at logic high it only reaches 1.8V

I have read across EF that there used to be a problem with a SDO resistor with some revisions of the evaluation board, but the bad readings for me also happen in the 3 wire configuration, so it may not be just a SDO problem, right? (see 2nd screenshot, 3wire 3.3V)

For me this seems like some kind of electrical problem, but I don't know how could this be when I am working with the EVAL board and the SDP-S controller board. Does anyone have some ideas?

Thank you very much in advance,

Andres

Parents
  • Hi   first of all, thank you very much for your answer and your predisposition. I found your reply very complete and promising to start digging in the intricacies of the problem I was having. Also, my apologies for the late response, I was eager to start investigating but I had other work to do so I had to postpone this a little.

    I am writing this post not only to thank you, but also to leave for the record what was the problem I was having in case anyone is having it too. 

    As I said previously, I could not perform a single correct reading from the ADF4382A pll, neither with my own custom C functions nor with ACE software. My tries were returning the same values in both cases, but they were always wrong (and they were always the same values). That was very odd. 

    When I started to work to try to provide you with additional measurements, I realized something. As I was mounting the setup from scratch, I tried to perform a silly reading with ACE and, to my surprise, it was correct. The only difference in the testbench from a week ago was that the oscilloscope was not connected yet. So... yes, the problem was in the oscilloscope, not because it was broken but because I was connecting the probes to the yellow test points TP4, TP3, TP1 and TP2 (red). Specifically, the probes connected to the test points related to data lines (TP2 SDIO and TP1 SDO) were the ones causing trouble in my readings. With them disconnected, ACE via the SDP-S controller performed the readings just OK.

    I said in my first post that the problem seemed to be electrical. I guess that it is related to the input impedance of the probes or something like that. Maybe it was a silly problem from the start, but I didn't realize that this could happen. The solution for me was to directly connect the probes to the P2 connector (green). Doing so I could read properly the results from the reading operations, and I was finally able to debug my custom C functions which now work fine.

    Finally, I would like to add that I have the REV.D version of EVAL-ADF4382A and the problem with 3.3V and 4-wire mode persists. Or at least I could not perform readings that way while I had no problems in the other 3 possible configurations (1.8V in 3W and 4W modes, and 3.3V in 3W mode). It is not a big problem for me, I can work with the other configurations, but I just wanted to leave that written down just in case.

    Best regards, and thank you very much,

    Andrés

Reply
  • Hi   first of all, thank you very much for your answer and your predisposition. I found your reply very complete and promising to start digging in the intricacies of the problem I was having. Also, my apologies for the late response, I was eager to start investigating but I had other work to do so I had to postpone this a little.

    I am writing this post not only to thank you, but also to leave for the record what was the problem I was having in case anyone is having it too. 

    As I said previously, I could not perform a single correct reading from the ADF4382A pll, neither with my own custom C functions nor with ACE software. My tries were returning the same values in both cases, but they were always wrong (and they were always the same values). That was very odd. 

    When I started to work to try to provide you with additional measurements, I realized something. As I was mounting the setup from scratch, I tried to perform a silly reading with ACE and, to my surprise, it was correct. The only difference in the testbench from a week ago was that the oscilloscope was not connected yet. So... yes, the problem was in the oscilloscope, not because it was broken but because I was connecting the probes to the yellow test points TP4, TP3, TP1 and TP2 (red). Specifically, the probes connected to the test points related to data lines (TP2 SDIO and TP1 SDO) were the ones causing trouble in my readings. With them disconnected, ACE via the SDP-S controller performed the readings just OK.

    I said in my first post that the problem seemed to be electrical. I guess that it is related to the input impedance of the probes or something like that. Maybe it was a silly problem from the start, but I didn't realize that this could happen. The solution for me was to directly connect the probes to the P2 connector (green). Doing so I could read properly the results from the reading operations, and I was finally able to debug my custom C functions which now work fine.

    Finally, I would like to add that I have the REV.D version of EVAL-ADF4382A and the problem with 3.3V and 4-wire mode persists. Or at least I could not perform readings that way while I had no problems in the other 3 possible configurations (1.8V in 3W and 4W modes, and 3.3V in 3W mode). It is not a big problem for me, I can work with the other configurations, but I just wanted to leave that written down just in case.

    Best regards, and thank you very much,

    Andrés

Children
No Data

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.