信号链基础知识#54 谁是音频时钟的“老板”,谁是主,谁又是从呢?
传统
I2S—
为何要包括系统时钟?
大多数人认为
I2S有三种信号:
- 数据:输入或者输出数据
- 位时钟(Bitclock,BCK):确立数据流中两个相邻位之间边界的信号
- 左/右时钟 (LRCK)/字时钟 (Wordclock):一个在采样速率下运行、占空比为50%的慢时钟,它确立数据流中两条相邻通道(左和右)之间的边界。
I2S 的幕后英雄是主时钟 (
MCK),也称作系统时钟 (
SCK),它常常被数字信号处理器 (
DSP) 程序员和其他处理器爱好者们忽略。主时钟 (
MCK/
SCK),通常为一个64、128、256 和 512 倍采样速率 (FS) 的时钟。它可以由一个输入引脚直接提供,也可以通过一个锁相环路 (
PLL) 在某些器件内部产生。
如果您能暂时将注意力从您的处理器上移开,您会发现音频主时钟重要得多。大多数
MCK/SCK输入的音频转换器,都要求时钟同步,而有一些则允许异相位。这就意味着,它们需要由相同的高速时钟来提供,然后被除小。我接触过的一些客户会突发灵感地告诉我:“我的
ADC需要一个
MCK,但它离我的
DAC太远。因此,我要在每个转换器旁边放置一个晶体……”有这种想法可以理解,但请您“千万别这么做!”
您在购买晶体时,无法保证它刚好为 48.000 kHz。您的模数转换器 (ADC) 晶体的运行精确度可能会为 +5%,而数模转换器 (
DAC) 的运行精确度可能为 –5%。这样的精确度,会给您的设计带来灾难性的后果!这是为什么呢,下面将为您娓娓道来。
用于
I2S
用于音频
ADC
的主时钟
当
ADC运行在主模式(生成
BCK和
LRCK,作为输出)下时,ADC 只是对
MCK/SCK进行划分,产生
LRCK和
BCK信号。这就对啦!LRCK/BCK 和主时钟被同步—相位也可能同步(除非它是一个特殊分割器)。
图
1
通用
ADC
结构图
如果作为一个从器件,并且主时钟不同步,则它产生的数据会过多或者过少,以至于数字抽取器无法刚好适合于输出字。在这种条件下,许多
ADC会拒绝流传输数据。
DAC也是如此。
图
2显示了一个高级
DAC结构图。此处,需要通过
MCK/SCK运行内插器,而
MCK/SCK同时还驱动
△
∑
调制器。如果
MCK/SCK不是采样速率的整倍数 (64/128/256/512),则在 △∑ 调制器输出端可能会出现错误数据。
图
2
通用
DAC
结构图
我在哪里
/
如何生成
MCK/SCK
呢?
另外,我建议,如果在晶体源驱动
ADC或是
DAC两者之间选择,请您选择通过一个晶体产生源来运行
ADC。如果输入很糟糕,那么您做什么都于事无补!(就像您不可能把烂泥打磨光亮!)
因此,我的建议遵循的原则是:
- 如果转换器为一个I2S从器件,则您必须通过相同源(如果转换器带有,则可以依靠内部PLL),提供所有三个I2S时钟(MCK、BCK 和LRCK)。
- 如果转换器为一个I2S主器件,则请确定能够提供一个可靠的无抖动MCK源。然后,让转换器自己分配。在可能的情况下,让ADC通过一个可靠的低抖动MCK源在主模式下运行。这样做可以确保最低抖动和最小高频失真。
建议参阅资料:
《
关于抖动》,作者:Dan Lavry,Lavry 工程公司,版权所有
1997。
本文引用地址://m.amcfsurvey.com/article/201706/347174.htm
评论