Post Go back to editing

AD5758 can't read or use it

Hi,

I am currently trying to test my first circuit base on the AD5758. I am currently an electronics designer trainee. I have written my code base on the example found in the woboq website (a linux base code). I can see with my oscilloscope the Logic analyser and I can confirm I write by SPI the right data within the timing diagram constraint.

What I am trying to do is read registers, but when I check the NOP, nothing comes out on the SDO line. I really don't understand what is going on and I have check pretty much everything. Can someone help me or give me some insight to what I can check? 

Feel free to ask any informations needed to answer me, I don't really know what more I can say to have help.

Thanks for anyone helping me ! 

A student trying to learn Slight smile

Parents
  • Hi Antoine,

    Can you give me a bit more detail?

    1. Are you using the evaluation board?
    2. What logic level are the AD0 and AD1 pins on the AD5758?
    3. What exactly are you writing to get data? You can tell me the hex data you are sending before the NOP.
    4. What condition is the RESET pin in?
    5. Are the writes working? E.G. Have you tried configuring the part and checking the output?

    Valerie

  • Hi Valerie !

    Thanks for your answer.

    1. No, I am using my design, base on the recommended design in the data sheet of the chip AD5758 (at the end).

    2. I am using 0 for both AD0 and AD1 (so they are connect to the ground).

    3. I am trying to use the two stage readback mode. First of all, I am doing these steps:

    • Desactivate the CRC by writing 0x90005c3a on the SDI line.
    • Perform a reset with the two reset keys by writing 0x8815fa00 and 0x88af5100.
    • Desactivate the CRC again with the same Hex from above.
    • Perform a calibration memory refresh by writing 0x88fcba00 on the SDI line.
    • Finally, it is at this point that I am trying to read from a register. I am writing: 0x93000200 before writing the NOP.

    4. I don't use the RESET pin, it is not connect to anything, so floating.

    5. I don't know if the writes work. I was not at this point and was trying to concentrate myself on why I can't read register after the calibration memory refresh (as the linux code do).

    Don't hesitate if you need anything more !

    Thanks again,

    Antoine

  • Hi Antoine,

    There is an internal pull down on the RESET pin which means if it is floating it will be pulled down to ground. The device will never respond in this scenario, I would suggest pulling it up to VLDO with a 10k resistor and checking your code again. 

    Valerie

  • Hi Valerie,

    I am finally able to read from a register !! Thanks very much for your help, that was indeed the RESET pin... Do I need to do the same with the LDAC pin ? Currently it is connected to ground. 

    Now I can see in register 0x14, that I have a CRC error. I don't really understand why, because I desactivate it correctly with the correct CRC code at the end which is 0x3a...

    Thanks,

    Antoine

  • Hi Antoine,

    No, the LDAC is used to update the DAC. So, if you are using the LDAC pin to update the DAC then you would pull the LDAC pin high, write to the DAC Input register and when the LDAC pin is strobed or a software LDAC command is written to the part then the DAC will update. Tying it to ground just means that the DAC will update immediately after writing to the DAC input register.

    Valerie

  • Good morning Valerie,

    Thanks for the answer. I can finally read and write to the registers. ! Now, I have another problem and that is the output. I am currently using the 0-5V DC mode. When I write to the 0x01 register and write the max (0xFFFF), the output is only 3.3V max and do no go to 5V DC. I am thinking that it is my supply, but can't figure why and who cause that.

    I am using 15V for the AVDD1, 5V for the AVDD2, -15V for the AVSS and 3.3V for the LVDO.

    Thanks again for your big help !

    Antoine

Reply
  • Good morning Valerie,

    Thanks for the answer. I can finally read and write to the registers. ! Now, I have another problem and that is the output. I am currently using the 0-5V DC mode. When I write to the 0x01 register and write the max (0xFFFF), the output is only 3.3V max and do no go to 5V DC. I am thinking that it is my supply, but can't figure why and who cause that.

    I am using 15V for the AVDD1, 5V for the AVDD2, -15V for the AVSS and 3.3V for the LVDO.

    Thanks again for your big help !

    Antoine

Children