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.

[参考译文] PCM1802:来自PCM1802的噪音

Guru**** 2407510 points
Other Parts Discussed in Thread: PCM1792A, PCM1802

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/688991/pcm1802-noise-from-pcm1802

部件号:PCM1802
主题中讨论的其他部件:PCM1792A

我可能做错了事,但我已经使用我的VHDL代码完成了所有的模拟,我知道我的DAC正在工作(PCM1792a),因为我能够从FPGA生成和输出锯齿波。 当通过PCM1802将正弦波,三角波或锯齿波传递到FPGA并输出到PCM1792A时,输出信号非常嘈杂。 它随着频率的提高而有所改善,但会出现闪烁和不希望听到的噪音。 我的时钟很好,我把所有东西都建立在串行块的基础上,并为此计时。

我的ADC接收器代码如下:

库IEEE;
使用IEEE-STD_LOGIC_1164.ALL;
使用IEEE-std_logic_arith;
使用IEEE-std_logic_unsigned;
使用IEEE-numeric_std.all;



实体I2SRX为
端口( CLK :在STD_LOGIC;中
CL:在STD_LOGIC中;
DIN:在STD_LOGIC中;
LD:输出STD_LOGIC_Vector (23下降到0);
Rd:输出STD_LOGIC_Vector (23下降到0);
FCK:输出STD_LOGIC;
SCK:输出STD_LOGIC;
BCK:输出STD_LOGIC;
LRCK:OUT STD_LOGIC);
END I2SRX;

I2SRX的体系结构行为是
信号CLKDIV:整数范围0至260;
信号CLKDIV 2:整数范围0至1万:= 0;
信号CNTR:整数范围0至24:= 23;
信号CNTR2:整数范围0至50;
信号CNTR3: 整数范围0到4:= 0;
信号d1 :std_logic_vector(23 downto 0);
信号d2. :std_logic_vector(23 downto 0);
信号D1P :std_logic_vector(23 downto 0);
信号D2P : std_logic_vector(23 downto 0);
signal BUF : std_logic;
信号CLK1 : std_logic :='0';
信号CLK2 : std_logic :='0';
信号FME : std_logic :='0';
begin
--BLCK生成
过程(clk, cl)
开始
如果(CL'event and CL ='0'),则
-- buf <= DIN;
如果(CLKDIV2 = 1),则
CLKDIV2 <= 0;
CLK2 <=不是CLK2;
否则
CLKDIV2 <= CLKDIV2 + 1;
结束条件:

如果(CNTR3 = 3),则

CNTR3 <= 0;
否则
CNTR3 <= CNTR3 +1;
结束条件:
结束条件:

--bck <= CLK2;
结束进程;
进程(FME)
开始
如果(FME'事件和FME ='0'),则
如果(CLK1 ='0'),则
D1P <= D1;
否则
D2P <= D2;
结束条件:
END IF;
END PROCESS;
--左时钟生成
过程(clk,CLK2)
开始
如果(CLK2'事件和CLK2 ='0'),则

如果(CLKDIV =31),则--was 31
CLKDIV <= 0;
CLK1 <=不是CLK1;
--LD <= d1;
-RD <= D2;

否则
CLKDIV <= CLKDIV + 1;
结束条件:

END IF;
END PROCESS;
--PROCESS (CLK)
--BEGIN
-- SCK <=CL;
-- IF (CNTR3 = 3)那么
-- BUF <= DIN;
-- END IF;
-- END PROCESS;
PROCESS (CLK,CLK2)
BEGIN
如果(CLK2'事件和CLK2 ='0'),则
如果(CNTR <= 23),则
如果(CNTR /= 0),则
CNTR <= CNTR -1;

否则
FME <='0';

如果(CLKDIV = 0),则
CNTR <=23;
FME <='1';
结束条件:
结束条件:
结束条件:
结束条件:
如果(CNTR <= 23),则
如果(FME ='1'),则
如果(CLK1 ='0'),则
D1 (CNTR)<= DIN;
否则
D2 (CNTR)<= DIN;
结束条件:
结束条件:
END IF;
-- Bck <= CLK2;
END PROCESS;
LD <= D1P;
RD <= D2P;
BUF <= DIN;
LRCK <= CLK1;
Bck <= CLK2;
FCK <= FME;
端部行为; 

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

    你好,Julian,

    欢迎来到E2E,感谢您对我们的产品感兴趣!

    PCM1802是一款非常简单的ADC设备,由于它是硬件控制部件,因此配置非常简单。 需要检查的一件事是确保使用的I²S接口的格式和时钟组合符合ADC规格。 使用时钟的频率是多少?

    是否可以共享PCM1802的示意图进行回顾?

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

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

    很遗憾,我无法提供原理图,甚至无法提供主板布局。 这是在购买时预装配的主板。 格式设置正确,设备已设置为从属设备。 但是,我尝试了主256fs配置(SCK是唯一一个被送入芯片的东西。 LRCK,FMCK甚至bck和数据输出都不会在输出上显示任何内容。 在从属模式下,您已经可以看到输出失真。

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

    你好,Julian,

    如果原理图不可用,则很难确定PCM1802配置是否存在问题。  在主模式下配置并提供有效的SCK信号后,设备本身应生成I²S Ω 时钟。 测试中使用的SCK信号的频率是多少?

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

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

    所以我需要的时钟是24.576MHz时钟,MMCM只能将其调至24.583MHz,而我在引脚处的示波器的读数是24.5832MHz。 (基于FPGA的100MHz时钟。)