DAC80508: Initial configuration settings

Prodigy 40 points

Replies: 6

Views: 139

Part Number: DAC80508

Hi. I've been attempting to work with the DAC80508, as of yet to no success. I've got a few quick questions to hopefully find where I'm going wrong.

  1. Is there any initialization code that needs to be sent to the DAC prior to writing data to the output registers?
  2. Is CRC enabled or disabled by default? If it's enabled, is there any easy way to disable just that without changing any of the other configuration settings?
  3. The documentation says that SDI data is to be clocked on the falling edge of the clock (as in SPI modes 0 & 3), yet doesn't specify weather the clock polarity should be set to start high or low. Does that matter?
  4. The specifications document leaves the minimum clock frequency blank. Might it be an issue to run the product significantly (~20x) below the listed maximum frequency?
  5. If none of these would be an issue, is there any other obvious issue that would cause the device just to output the startup voltage and to not respond to commands? Even an idea of where to start looking to diagnose it would be supremely helpful!

Thanks so much for your time, and sorry about the more vague nature of this post!

6 Replies

  • Hi Fraser,

    My colleague Uttam will be able to help you with this.  For starters, can you also share the schematic?  What are you using for the DAC reference?

    Thanks,

    Paul

  • In reply to Paul_Frost:

    Hi Paul, thanks so much! I'm just using the internal reference for the DAC, and when I measure it with my multimeter it's reading at a clean 2.5V. As for the schematic, I could throw something together, but it's hardly worth bothering. As of yet I'm just testing it before finalizing my circuit, so it's just wired directly to my microcontroller. Thanks!

  • In reply to Fraser Lee:

    Hi Fraser,

    Thank you for your query. One quick question: are you using a 3.3V VDD or a 5V VDD. Note that there is a headroom requirement for the reference. With the internal 2.5V VVREF, we need to set the REFDIV bit in divide/2 configuration. For specific answers to your questions, please find my comments below:

    Q1. Look at REFDIV and GAIN bits and set them appropriately. You can start with REFDIV=1 and GAIN=1

    Q2. The CRC (enabled by the CRC-EN bit) is disabled by default

    Q3. You can use SPI mode 1 (CPOL=0, CPHA=1) to start with. 

    Q4. The SPI implementation is mainly a shift register and hence, the minimum clock frequency won't matter

    Q5. Please look at the above points and let me know if you are able to fix the problem

    Regards,

    Uttam Sahu

    Applications Engineer, Precision DAC

  • In reply to Uttam Sahu:

    Hi Uttam, thanks so much for the response! I've tried to test the device using loads of permutations on the settings you've suggested, and still am unable to get it to respond. My process is as follows:

    1. Set CS low
    2. Transfer 0x040000 to sdi, which should set GAIN and REFDIV to 1 while leaving all other values in the gain register at their default values
    3. Set CS high
    4. Delay a few miliseconds
    5. Set CS low
    6. Transfer 0x080000 to sdi, which should set the DAC0 register to a value of 0
    7. Set CS high

    After this the OUT0 pad still reads at 2.5V, the default value.

    Among other things, I've also tried the following:

    1. Instead first transferring 0x041000, to prevent the chip clearing, although mine doesn't even have a clear pin.
    2. After attempting to set the DAC0 register, transferring 0x06FFFF, forcing an update through the broadcast register (which shouldn't even matter as the channel's haven't be set that way through the sync register)
    3. Setting every value in every register to the default specified to try to coax some life out of it

    All to no avail.

    Also to your question, I've been using 5V VDD through my circuit, so that shouldn't be an issue.

    So my next question would be if there's any way to determine if this chip is even alive, or if it's possible this 2.5V behavior is just the last sign of life in an otherwise dead chip?

    Thanks so much for helping me narrow down what this problem could be, and that it's not an issue with the voltage I'm using or the wrong SPI mode!

    Fraser

  • In reply to Uttam Sahu:

    Hi again. So I've spent today attempting to get my debug Arduino to read something from the DAC's MISO, specifically when sending 0x81 0x00 0x00 through MOSI (which should trigger the dac to send me the contents of the device ID, including bits 6:2, reserved as 00101), and yet the MISO line remained low. Is there anything I can do to dispel my (increasingly more likely) concerns, that this thing is dead? I'd definitely try to test another unit if that were the case. This DAC really is perfect on paper, so I'd hate to try to look for an alternative, but I'm running out of time.

    Thanks for all your help, and I'm so sorry to keep pestering you with questions about an almost certainly dead unit :)

    Fraser Lee.

  • In reply to Fraser Lee:

    Hi Fraser,

    I think at this point a few things will be needed to debug this:

    1. A schematic - this can be a "back of the napkin" type drawing, but it is important to clarify that your setup is valid.  It is a good exercise to go through, as usually, these issues breadboard systems are simple wiring problems.

    2. You should verify your communication with a digital logic analyzer or oscilloscope.  This is the fastest way to confirm if your SPI clock phase and polarity are correct.  

    Thanks,

    Paul