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.

DAC8750: Programming problems.

Part Number: DAC8750

I could program the 8750, but the same program does not work. I have worked with EVM and another prototype board.

#include "mbed.h"
#include "SWSPI.h"
//Address Byte
#define ADDR_NOP 0x00 //No operation (NOP)
#define ADDR_DATA 0x01 //Write DAC data register
#define ADDR_READ 0x02 //Register read
#define ADDR_CTRL 0x55 //Write control register
#define ADDR_RESET 0x56 //Write reset register
#define ADDR_CONFIG 0x57 //Write configuration register
#define ADDR_GAIN 0x58 //Write DAC gain calibration register
#define ADDR_ZERO 0x59 //Write DAC zero calibration register
#define ADDR_WDT 0x95 //Watchdog timer reset
#define CTRL_SET 7 // Control register setup 0-24ma
DigitalOut gpo(D0);
DigitalOut led(LED_RED);
SWSPI dac(D11,D12,D13); // mosi, miso, sclk, ssel
DigitalOut latch(D10);
void sendtodac (int,int);
void sendtodac (int address,int cmd0){
dac.frequency(50000);
int cmd[2];
dac.write(address); // address byte
cmd[0] = cmd0 & 0xFF;
cmd[1] = (cmd0 >> 8);
dac.write(cmd[1]); //MSB
dac.write(cmd[0]); //LSB
latch = 1;
latch = 0;
}
void initdac (void);
void initdac (void){
sendtodac(ADDR_RESET,0x01);
sendtodac(ADDR_CTRL,0x1007);
}

int dacin = 0;
int main()
{
dac.format(8, 3);
dac.frequency(50000);
initdac();
int dacin = 0;
//sendtodac(ADDR_DATA,54613);
while (true) {
gpo = !gpo; // toggle pin
led = !led; // toggle led
wait(1.0f);
sendtodac(ADDR_DATA,dacin);
// sendtodac(ADDR_DATA,54613);
dacin += 5000;
if(dacin > 65000) dacin = 0;
}
}

  • Howdy Quentin,

    And welcome to the e2e forums!  To confirm, has the code worked on the DAC8750EVM in your possession, or are you having difficulty writing to the device?  Can you also explain the code, so we may get an understanding of what tasks you are trying to perform with the EVM.

    Additionally, it would be very helpful if you measure the supply voltages and reference of the device, and provide this information through a follow up post.

    Please let me know if you have any questions.

    Best Regards,

    Matt

  • Hi Quentin,

    Do you have any updates for us on this topic?
  • The software is now working. We are having problems with some DAC8750's that quit outputting current; the current is reduced to 0.05 milliamps. 5 or 6 DAC8750 have been replaced.

    The circuit is the same as the eval board, but with CAP1 = 0.47uf and CAP2 = 0.22uf. The NPN transistor booster circuit is included. The capacitor on IOUT to ground = 0.022uf.  CAP1 and CAP2 are terminated to ground.

    Is the DAC8750 sensitive to power supply sequencing? The 3.3 volt digital supply  startup is slower than the 24 volt analog supply.

    The 3.3 volt supply is derived from the 24 volt supply.

  • Quentin,
    8.3.6 Power-Supply Sequence, Page 22:
    The DAC8750 has an internal power-on reset (POR) circuitry for both the digital DVDD and analog AVDD
    supplies. This circuitry makes sure that the internal logic and power-on state of the DAC power-up to the proper
    state independent of the supply sequence. The recommended power-supply sequence is to first have the analog
    AVDD supply come up, followed by the digital supply DVDD. DVDD can also come up first as long as AVDD
    ramps to at least 5 V within 50 μs.
    For the units that don't seem to be working properly - Please check the ALARM\ pin - if it is pulled low - there is a problem. The Status Register will indicate the possible fault (i.e. temperature, CRC error, Watch-Dog, etc).
    When an alarm occurs, the corresponding ALARM status bit is set (1). Whenever an ALARM status bit is set, it remains set until the event
    that caused it is resolved. The ALARM bit can only be cleared by performing a software reset, a power-on reset
    (by cycling power), or by having the error condition resolved. These bits are reasserted if the alarm condition
    continues to exist in the next monitoring cycle.
    See section 8.6.1.5, page 36 in the datasheet.
    From our phone conversation:
    It sounds like cycling power does not correct the issue. The 24V voltage spike (to >36V) is a problem. I recommend some kind of clamp at the input power pin to help limit this voltage excursion.
    I hope this helps.
  • Hello,

    It sounds like some of this conversation had already begun to occur offline. Perhaps we should continue there?

    If that sounds agreeable perhaps Mark can loop us all in together via email to share the complete background along with a schematic, ideally.
  • Quientin,

    It sounds like the offline communication has occurred partly through one of our Distributors so bridging the off-E2E discussion looks like it is taking a bit longer than I expected. If you'd prefer to continue the discussion here, just respond to this thread.

    There are recommended power supply sequences in the datasheet as Mark pointed out, however violation of these sequences would not lead to severely unexpected results on the output like what has been described in this thread.

    The over-voltage conditions that I was able to see from Mark, however, are very concerning.
  • The over-voltage was not repeatable. I believe it was improper grounding of the scope.

    The ground pad is heavily heat-sinked to the ground plane. The parts were possibly over-heated when soldering. The board will be re-layed out with more thermal relief on the ground pad and/or pins. 

  • Quentin,

    Okay.

    Please keep us posted on your results and any further support you may require.