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.

TLV320DAC23: Cannot get data out of an output pin.

Part Number: TLV320DAC23

I am a student at Purdue University using this product in our design. No matter what I seem to try, LOUT, ROUT, RHPOUT, LHPOUT all output ~1.9V. I am interfacing to the DAC with a PIC24 with SPI to set the control registers and I2S. 

My control registers are being set as follows:

writeSPI1word(0x0000);  //left line not muted

writeSPI1word(0x0200); //right line not muted

writeSPI1word(0x047F);  //headphones are not muted

writeSPI1word(0x067F);  //headphones are not muted

writeSPI1word(0x0810); //enable DAC, disable bypass

writeSPI1word(0x0A00); //disable DAC soft mute

writeSPI1word(0x0E0A); //24 bit, I2S

writeSPI1word(0x1080); //sample rate - used the CLKOUT to verify control registers get set

writeSPI1word(0x1201);  //digital interface actovated

writeSPI1word(0x0C06); //turn everything on

I've verified that we are writing to the control registers by verifying that the CLKOUT pin is diving the clock. I've also verified that our I2S data is going into the DAC via oscilloscope probes and is formated as expected. 

Common problems that I've encountered:

1. At one point the CS line was being driven by the DAC. From looking at another forum this seemed to happen by writing to the reset register so I removed that line at the beginning (which fixed it)

2. In the data sheet it says "he line inputs are biased internally to VMID. When the line inputs are muted or the device is set to standby mode, the line inputs are kept biased to VMID using special antithump circuitry." and so I assume that's why our output is hovering 1.9V. From the users manual I found that standby mode was when certain bits of the power register are set and so I've set those accordingly. 

3. Other forums have mentioned the digital interface needing activation and the DAC to be not soft muted which are being set in the control registers.

According to our TA, the data rate of the I2S should've matter too much to at least see an output (though I have the sample rate at 41.7 kHz and the DAC set to 48 kHz). I have tried increasing and decreasing baud rate in an attempt to just see some kind of data.

I did at one time have some data coming out, but after powering down for the night and returning the next day I lost that functionality and can't seem to get it back. Any Ideas on what my problem is?

  • Hi Taylor,

    Welcome to e2e.
    I have noticed something on your SPI writings. Why is it you're writing to register 0x00 then 0x02 and then 0x04? I think you should be writing 0x00, 0x01 then 0x02 and so forth.
    One important register is 0x06 which is apparently 0x7F, this would set OUT and all other power controls to OFF.

    Best regards,
    -Ivan Salazar
    Audio Applications Engineer - Low Power Audio and Actuators
  • First off relative to your question, the data consist of 16 bits where the first 7 are address and the next 9 are data, so the registers are in the order you said they should be, the value of D8 was just 0.

    Also, I solved my problem. For my SPI lines, the CS line was transitioning from low to high as the final bit of the SPI data was clocked in causing the DAC to latch incorrect data. I'm assuming from here that the register digital interface activation bit was never getting written to since it was the final data bit and so I never had output.