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.

AUDK2G: AUDK2G Daughter Card: DAC (PCM1690IDCARQ1) Digital attenuation (dB) is not responding/working

Part Number: AUDK2G
Other Parts Discussed in Thread: 66AK2G12, PCM1690

Hello

I am struggling to configure AUDK2G DC DAC as required but failed. Here is the overall DAC settings -


DAC clock settings - SCKI= 22.5792MHz, BCK = 11.2896MHz and LRCK = 176.4kHz.
DAC register settings - Sampling Mode = Quad Rate, Audio Interface Format = 16/20/24/32-bit I2S, Operation Control = Normal, Digital Filter = Sharp Roll-Off
Output = Normal, Mute = Disabled, Digital Attenuation Mode = Wide step(1 dB), De-emphasis = Disabled,
Digital Attenuation Level Setting (all channel) = 0dB (0xFF) or -1dB(0xFE) or -2dB(0xFD) etc.

The McASP and ADC register settings are okay as we required. The passthrough (Audio In -> Audio out) is working great. (1kHz 1.92Vpp sine outs 1kHz 2.04Vpp sine)

For our project requirement, we need to attenuate the output volume to around -1dB. I set different attenuation level settings but there is no change in
DAC output volume. It seems the DAC is not responding as the register configured. I have also tested different channels of DAC0 and DAC1 but the result is the same.
For debug help, following is the DAC register values printed when running. Please help me to resolve the issue.

====================== DAC0(4C) Register Value ======================
0x40 = 0xc3
0x41 = 0x00
0x42 = 0x00
0x43 = 0x00
0x44 = 0x00
0x46 = 0x80
0x48 = 0xfd (Expects -2dB attenuation but volume is not reduced)
0x49 = 0xfd
0x4a = 0xfd
0x4b = 0xfd
0x4c = 0xfd
0x4d = 0xfd
0x4e = 0xfd
0x4f = 0xfd
====================================================================

Thanks in advance,
Ruhul

  • Ruhul, thank you for submitting the question. I am forwarding this to the Analog team responsible for the DAC. 

    Best,

    Andrei 

  • Ok, I will take a look at it. Most probably another register is preventing the volume control  settings. I will look at it by monday.

    Regards,

    arash

  • Hello Andrei,

    I looked at your code and verified everything is correct in your script based on DS tables. The only suggestion that i have is to read the registers back just to make sure you are indeed writing to the attenuator registers.

    Regards,

    Arash 

  • Hello Arash,

    Thanks for your reply. For your kind information, the DAC registers values I have shared are just after the read back. I have also made sure that the registers are set appropriately from reading back and printing to the console. The only concern from my side is that all the registers settings are okay but the DAC is not reducing volume as expected seems other components may be responsible.

    Thanks,

    Ruhul

  • Hello Ruhul,

    Thanks for confirming the registers are reading back correctly. Is it possible to check some other options, such as mute or something else to see if DAC is responding correctly to its registers. You mentioned that you suspect other components might be responsible. Can you elaborate on that? Maybe you can share your schematics and we can take a look at it.

    Regards,

    Arash

  • Hi Arash,

    Thanks for your reply. For your kind information, I am using AUDK2G audio daughter card with a 66AK2G12 development board. The schematic of AUDK2G is https://www.ti.com/lit/df/sprr310/sprr310.pdf?ts=1647323724791 .
    Regarding the mute test, I have used hardware switches SW2 and SW4 to mute DAC0 and DAC1 which worked perfectly. I have configured/written DAC registers to have the mute effect, verified configuration from read-back but it has no effect on DAC operation. It seems DAC doesn't respond to any register settings. If it is possible to test AUDK2G DAC on your side, it will be more clear I believe.
    Thanks

  • Thanks Ruhul,  Since you are using the original schematics of the board, I don't need to check the DAC's connections/components.

    The fact you can not even mute it via registers confirms the issue is with DAC responding to registers in general. I might be able to find the EVM for the DAC itself and test it which  may not  show the problem by itself. I do not have the AUDK2G audio daughter card , and I have not worked with it  . Even though you mentioned the DAC is working fine with your configuration, is it possible to check with a different configuration such as fs of 48k. If it is still showing problem I need to discuss it with other colleagues.

    regards,

    Arash

  • Thanks, Arash. Instead of 48K, I have checked for Fs = 44.1k (176.4k/4) but the result is the same (DAC doesn't respond to register configuration).
    I believe the picture you shared is of the DAC parameter setting tool like the TI clock tool. In the snippet Clocks segment, Frame Clock(Fs) is 176.000kHz which is in my case 176.4kHz. By the way, I am curious about the above tool. Could you please share the link or the package of the above DAC tool to be able to test on my side too?

  • Hi Ruhul,

    One thing that you have to be sure is that you are writing to the correct device.  In the registers  value list you sent , everything seemed to be  correct , just make sure you are writing to the correct device. if you are writing into the right device, have you tried the register value changing followed by a  power down and up and recheck ( as opposed to on the fly changes).

    The above is a screen shot of Audio Precision gui that we use for all our audio testing. you can learn more about it at www.ap.com.

    I also often use its  gui to quickly calculate the BCK, SCLK based on fs, word length and number of channel  and so on.  Note how it could not calculated the clock based on the info that I was giving it  in one case , but with adjustment it did it next

      

    Regards,

    Arash

  • Hi Arash,

    Thanks for your reply and support.
    I am writing to the right devices (DAC0 - I2C Address = 4C). 

    As you know, on power-up all registers are set to their default settings. After initialization, my code writes the target values. You can see those below -


    Is it possible to check the DAC attenuator response from the PSIA instrument on your side?

    For your kind information, I don't have a PSIA instrument to check the DAC settings from the GUI. Therefore, I print the values in the CCS console at various stages in code as shown by the above image.

    Considering the McASP0 as Transmitter and DAC0 as a receiver the following is the whole scenario from my side. 

    Could you please test with the above setting and confirm me it works or not?
    Please inform me if needs more information.

    Thanks,

    Ruhul

  • Hello Ruhul,

    I have to see if I have the evm for PCM1690 available to test it under your conditions, that can be done sometimes by mid next week. I will let you know.

    Regards,

    Arash

  • Hello Ruhul,

    I have been out of office for a while . Also I could not find the EVM for testing it.  Were you able to resolve the issue? 

    Regards,

    Arash