您好,
我们正在尝试正确设置此芯片,以便与我们的FPGA进行通信。 我们在FPGA和TLV320DAC3120之间实现了I2C通信。 我们还可以在示波器上看到我们的I2S输出信号是正确的。 我们希望 将TLV320DAC3120配置为从属设备,以便BCLK和WCLK成为输入。 MCLK未连接到任何设备。
I2S BCLK - 1.4112 MHz
WCLK - 44.1 kHz
下面列出了我们写入的寄存器及其值。
PX_RX =页码X,后跟注册号X
P0_R0 =0 (默认为第0页,但如果 TLV320DAC3120未关机,请转至第0页)
P0_R1 =1 (软件重置)
延迟至少1毫秒
P0_R4 = 0x07 (PLL_CLKIN为BCLK,CODEC为PLL_CLKIN为PLL_CLK
P0_R5 = 0x96 (PLL已通电,P = 1,R-VAL = 6)
延迟至少10毫秒
P0_R6 = 0x0A (J-VAL = 10)
P0_R7 = 0x00 (D-VAL MSB =0)
P0_R8 = 0x00 (D-VAL LSB =0)
P0_R11 = 0x85 (NDAC_VAL = 5且NDAC分压器通电)
P0_R12 = 0x83 (MDAC_VAL =3且MDAC分配器已通电)
P0_R13 = 0x00 (DOSR MSB =0)
P0_R14 = 0x80 (DOSR LSB = 128)
P0_R25 = 0x03 (CDIV_CLKIN = PLL_CLK)
P0_R26 = 0x81 (CLKOUT除法器M =1)
P0_R27 = 0x00 (I2S,16位字长,BCLK为输入,WCLK为输入)
P0_R51 = 0x10 (GPIO1输出= CLKOUT输出)
P0_R63 = 0x94 (DAC通电,DAC数据路径=左数据,保留位,DAC通道音量控制软步进在每个采样周期中启用一步)
P0_R64 = 0x04 (DAC未静音)
P0_R65 = 0x00 (DAC数字增益= 0 dB)
P0_R0 = 0x01 (切换到第1页)
P1_R32 = 0x86 (D类输出驱动程序已通电,保留位)
P1_R35 = 0x40 (DAC被路由至混合放大器)
P1_R38 = 0x80 (模拟音量控制输出路由到D类输出驱动器,音量= 0 dB)
P1_R42 = 0x04 (增益=6 dB,D类驱动器未静音)
P3_R16 = 0x08 (使用内部示波器,除以8表示~1 MHz延迟计时器)
通过这些设置,我们应该可以看到GPIO1上的PLL_CLK,我只能看到输出保持高电压。 如果我将BCLK路由到GPIO1且M = 1,则我会看到时钟输出与BCLK输入时钟完全相同,这很好。 但由于某种原因,PLL块似乎未通电。 即使在P0_R5位D7 =1中也是如此。
为了进一步测试这一理论,我们将BCLK连接到CODEC_CLKIN,而不是PLL_CLK,以查看我们是否可以使用NDAC生成DAC_CLK,并使用MDAC生成DAC_MOD_CLK。 因此,将DAC_CLK连接到GPIO1时,我们确实看到BCLK / NDAC作为输出,因此我们知道NDAC已通电。 然后,我们将DAC_MOD_CLK连接到GPIO1以测试MDAC是否通电,我们发现输出时钟等于BCLK/( NDAC * MDAC ),这是正确的。
使用BCLK仍然是codec_CLK的来源,我们尝试发送一些数据,只是为了看看我们是否可以在输出上产生垃圾,但我们没有。
我可能只是缺少了一些设置或某些内容。 有人知道缺件是什么吗?
编辑:对于有类似问题的任何人,请确保您有HPVDD和HPVSS,即使您没有使用耳机输出。 这就是我们无法让PLL正常工作的原因。