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.

No ACK from DAC121C081

Other Parts Discussed in Thread: DAC121C081, LM4132

Hello –

 

I am having trouble writing to a DAC121C081.  Waveforms are attached.

Channel 1 is SCK, Channel 2 is SDA, and Channel 3 is VOUT.

SCK frequency is 100 kHz exactly.  I’m running a test loop with a PIC16F1829 that writes the DAC address (0x0D – I’m using the TSOT package with ADR0 grounded), followed by a DAC value that increments from 0 to 0x0FFF repeatedly.  The software waits about 500 microseconds between writes.  I’ve verified that the outputs are all open-drain.  Pullups are 4.7kOhm.  I’ve also tried replacing the DAC, with no effect.  I’ve also isolated the DAC output in case there was a short to ground on the output.

 As you can see, the DAC never responds to the address write with an ACK.  (The scope interprets the 0x0D address, shifted left, with the Write bit as LSB as 0x1a in the screen shot.)  Same with the data writes.  The output stays stuck at 0V.  The last thing I’ve tried is commanding an I2C read at address 0x7F (result is 0xFF on SDA) ten times at startup in an attempt to “flush the bus.”  No effect.

 

Any ideas?  Thanks!

  • Hi Bill,

    Is it possible for you to provide a schematic or description of your DAC121C081 hardware?

  • Well, this is embarrassing, but I might as well post it as a cautionary tale.  Nothing like a weekend to get some new thoughts!

    I'm powering the DAC121C081 with an LM4132 voltage reference, rather than the non-precision supply that powers the digital portion of the board.  The LM4132 has an enable pin.  I don't remember whether I made the symbol, or I used the Altium symbol, but the enable pin on my schematic has a bubble on it, so when I did the schematic, I tied it to ground.  The result of this was that the LM4132 was permanently shut down, so the DAC wasn't getting power.  Fixing it just required tying the enable pin high, so now everything is fine.

    Naturally I wasn't thinking about any of this when I was having problems.  I was working on software, and the board had power, so I **assumed** that all problems had to be software-related. 

    As Einstein said, “The difference between genius and stupidity is that genius has its limits.”

  • Thank you for the follow up Bill!  We're happy to hear that you've resolved the issue!