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.

[参考译文] TAS2505:使 WCLK 和 BCLK 作为输出工作时出现问题

Guru**** 2382630 points
Other Parts Discussed in Thread: TAS2505
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1356420/tas2505-problem-getting-wclk-and-bclk-as-output-working

器件型号:TAS2505

您好!

我正在尝试使 TAS2505正常工作。  

I2C 可以正常工作(读取/写入)、我已经将默认脚本更改了一位、以将 WCLK 和 BCLK 作为输出、但在这些端口上看不到任何输出。

我已将 CLKOUT 重定向到 GPIO 、并且在示波器上看到了预期输出。

我已经检查了是否所有寄存器都具有预期值、它们确实具有预期值。

脚本:


// MCLK = 12MHz
// DAC fs=43.8KHz
//位2 x 16
// P 1正常
// R 1正常
// J 7正常
// D 0正常

I2C1_Write1ByteRegister (0x18、0、0);
//使软件复位生效(P0、R1、D0=1)
I2C1_Write1ByteRegister (0x18、1、1);
//#页切换到页1
I2C1_Write1ByteRegister (0x18、0、1);
//# LDO 输出编程为1.8V、电平位移器加电。 (P1、R2、D5-D4=00、D3=0)
I2C1_Write1ByteRegister (0x18、2、0);
//#页切换至页0
I2C1_Write1ByteRegister (0x18、0、0);
//# PLL_CLKIN = MCLK、CODEC_CLKIN = PLL_CLK、MCLK 应为12 MHz (P0、R4、D1-D0=03)
I2C1_Write1ByteRegister (0x18、4、3);
//#上电 PLL、设置 P=1、R=1、(页0、寄存器-5)
I2C1_Write1ByteRegister (0x18、0x05、0b10010001);// 0x91
//#设置 J=7、(页0、寄存器6)
I2C1_Write1ByteRegister (0x18、0x06、0b00000111);//0x04 j=7
//# D = 0000、D (13:8)= 0、(页0、寄存器7)
I2C1_Write1ByteRegister (0x18、0x07、0x00);
//# D (7:0)= 0、(页0、寄存器8)
I2C1_Write1ByteRegister (0x18、0x08、0x00);

//添加 PLL 锁定的15ms 延迟
WAIT_15ms ();
/*
NDAC 5正常
MDAC 3正常
DOSR 128正常
*/
// DAC NDAC = 5
I2C1_Write1ByteRegister (0x18、0x0B、0b10000101);//0x85

//# DAC MDAC 加电、MDAC=3 (P0、R12、D7=1、D6-D0=0000011)
I2C1_Write1ByteRegister (0x18、0x0C、0x83);

//# DAC OSR (9:0)-> DOSR=128 (P0、R12、D1-D0=00)
I2C1_Write1ByteRegister (0x18、0x0D、0x00);

// DAC OSR (9:0)-> DOSR=128 (P0、R13、D7-D0=10000000)
I2C1_Write1ByteRegister (0x18、0x0E、0x80);

// CLKOUT M 上电 M=10
I2C1_Write1ByteRegister (0x18、0x1A、0b10001010);
// GPIO/DOUT GPIO 输出为 CLKOUT
I2C1_Write1ByteRegister (0x18、0x34、0b00010000);

//编解码器接口控制字长= 16位,BCLK&WCLK 输出,I2S 模式。 (P0、R27、D7-D6=00、D5-D4=00、D3-D2 =11)
//I2C1_Write1ByteRegister (0x18、0x1B、0x00);
I2C1_Write1ByteRegister (0x18、0x1B、0b01100);// 0x0C

//数据时隙偏移00 (P0、R28、D7-D0=0000)
I2C1_Write1ByteRegister (0x18、0x1C、0x00);
// DAC 指令编程 PRB #2,用于单路由。 类型内插(x8)和3个可编程双二阶滤波器。 (P0、R60、D4-D0=0010)
I2C1_Write1ByteRegister (0x18、0x3C、0x02);
//页切换到页0
I2C1_Write1ByteRegister (0x18、0x00、0x00);
// DAC 上电,每个 Fs 软步进1。 (P0、R63、D7=1、D5-D4=01、D3-D2 =00、 D1-D0= 00)
I2C1_Write1ByteRegister (0x18、0x3F、0x90);

// DAC 数字增益0dB (P0、R65、D7-D0=00000000)
I2C1_Write1ByteRegister (0x18、0x41、0x00);
// DAC 音量未静音。 (P0、R64、D3 = 0、D2 = 1)
I2C1_Write1ByteRegister (0x18、0x40、0x04);
//页切换到页1
I2C1_Write1ByteRegister (0x18、0x00、0x01);

//主基准上电(P1、R1、D4=1)
I2C1_Write1ByteRegister (0x18、0x01、0x10);
// DAC 设置为0.9V (默认)时的输出共模(P1、R10)
I2C1_Write1ByteRegister (0x18、0x0A、0x00);
//混频器 P 输出连接到 HP OUT 混频器(P1、R12、D2=1)
I2C1_Write1ByteRegister (0x18、0x0C、0x04);
// HP 音量、0dB 增益(P1、R22、D6-D0=0000000)
I2C1_Write1ByteRegister (0x18、0x16、0x00);
//无需启用混频器 M 和混频器 P、AINL 音量、0dB 增益(P1、R24、D7=1、 D6-D0= 0000.000)
I2C1_Write1ByteRegister (0x18、0x18、0x00);
//为 HP 加电(P1、R9、D5=1)
I2C1_Write1ByteRegister (0x18、0x09、0x20);
//使用0dB 增益使 HP 取消静音(P1、R16、D4=1)
I2C1_Write1ByteRegister (0x18、0x10、0x00);
// SPK 衰减 增益=0dB (P1、R46、D6-D0=000000)
I2C1_Write1ByteRegister (0x18、0x2E、0x00);
// SPK 驱动器增益=6.0dB (P1、R48、D6-D4=001)
I2C1_Write1ByteRegister (0x18、0x30、0x10);
// SPK 上电(P1、R45、D1=1)
I2C1_Write1ByteRegister (0x18、0x2D、0x02);

如有任何帮助,将不胜感激。

米歇尔·布隆

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michel:

    我会检查您的寄存器设置、并在接下来的几天内提供进一步的注释。

    此致、
    -Ivan Salazar
    应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michel:

    为了隔离时钟方面的事情、您可以尝试使用随附的脚本吗、您必须将其解析为您使用的格式、语法为:

    • W 表示写入命令
    • 30表示器件地址0x30 (8位、LSB 为0)
    • 第二对数字是十六进制值的寄存器地址
    • 最后一对数字是要写入寄存器的值、也是十六进制值

    w 30 00 00
    w 30 01 01
    w 30 00 01
    w 30 02 00
    w 30 01 10
    w 30 00 00
    w 30 04 03
    w 30 05 91
    w 30 06 07
    w 30 07 00
    w 30 08 50
    
    w 30 0b 83
    w 30 0c 85
    w 30 0d 00
    w 30 0e 80
    
    w 30 19 03
    w 30 1a 8a
    w 30 34 10
    
    w 30 1e 94
    w 30 1b 0c

    这会将器件配置为在 WCLK 上输出43.8kHz 并在 BCLK 上输出1.4016MHz。 在这种情况下、GPIO 将输出8.4MHz。
    与脚本的主要区别在于、我在第0页包含了寄存器0x1E 的命令、以启用 BCLK N 分频器并将其设置为相应的值。 还要为精确的43.8kHz FS 添加 D 分数值。

    此致、
    -Ivan Salazar
    应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    伊凡、您好!

    相应地更改了代码、我看到了一个很好的 BCLK 和 WCLK。

    我将进一步了解其中的差异。    单独更改寄存器0x1E 值并非该任务

    非常感谢、

    米歇尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Michel:

    很高兴听到提供的时钟设置工作正常。
    您还可以检查命令序列是否正确。

    此致、
    -Ivan Salazar
    应用工程师