0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

传统I2S—为何要包括系统时钟

电子设计 来源:网友电子设计发布 作者:网友电子设计发布 2021-11-23 10:31 次阅读

传统 I2S—为何要包括系统时钟

过去,我们在讨论音频话题时,偶尔会提及 I2S。我在以前的一些文章中提到过 I2S,其他人在做音频研究时也都会提到它。简而言之,它是一种将立体声数据从一端传输至另一端的同步方法。

大多数人认为 I2S 有三种信号

数据:输入或者输出数据

位时钟 (Bitclock,BCK):确立数据流中两个相邻位之间边界的信号

左/右时钟 (LRCK)/字时钟 (Wordclock):一个在采样速率下运行、占空比为 50% 的慢时钟,它确立数据流中两条相邻通道(左和右)之间的边界。

I2S 的幕后英雄是主时钟 (MCK),也称作系统时钟 (SCK),它常常被数字信号处理器DSP程序员和其他处理器爱好者们忽略。主时钟 (MCK/SCK),通常为一个64、128、256 和 512 倍采样速率 (FS) 的时钟。它可以由一个输入引脚直接提供,也可以通过一个锁相环路 (PLL) 在某些器件内部产生。

一般而言,DSP 不需要音频主时钟,因为它们能够以一种完全不同的速率对数据进行处理,然后在 BCK 和 LRCK 的驱动下,让数据以某种速率进入输出缓冲器(或者通过输入缓冲器接收数据)。

如果您能暂时将注意力从您的处理器上移开,您会发现音频主时钟重要得多。大多数 MCK/SCK 输入的音频转换器,都要求时钟同步,而有一些则允许异相位。这就意味着,它们需要由相同的高速时钟来提供,然后被除小。我接触过的一些客户会突发灵感地告诉我:“我的 ADC 需要一个 MCK,但它离我的 DAC 太远。因此,我要在每个转换器旁边放置一个晶体……”有这种想法可以理解,但请您“千万别这么做!”

您在购买晶体时,无法保证它刚好为 48.000 kHz。您的模数转换器ADC) 晶体的运行精确度可能会为 +5%,而数模转换器 (DAC) 的运行精确度可能为 –5%。这样的精确度,会给您的设计带来灾难性的后果!这是为什么呢,下面将为您娓娓道来。

用于 I2S

用于音频 ADC 的主时钟

如图 1 所示,高速主时钟(例如:24.576 MHz 时钟)用于驱动 ADC 的过采样调制器。之后,来自过采样调制器的数据被消减分解成 LRCK 给定的采样速率。

当 ADC 运行在主模式(生成 BCK 和 LRCK,作为输出)下时,ADC 只是对 MCK/SCK 进行划分,产生 LRCK 和 BCK 信号。这就对啦!LRCK/BCK 和主时钟被同步—相位也可能同步(除非它是一个特殊分割器)。

如果作为一个从器件,并且主时钟不同步,则它产生的数据会过多或者过少,以至于数字抽取器无法刚好适合于输出字。在这种条件下,许多 ADC 会拒绝流传输数据。

DAC 也是如此。图 2 显示了一个高级 DAC 结构图。此处,需要通过 MCK/SCK 运行内插器,而 MCK/SCK 同时还驱动 △∑ 调制器。如果 MCK/SCK 不是采样速率的整倍数 (64/128/256/512),则在 △∑ 调制器输出端可能会出现错误数据。

我在哪里/如何生成 MCK/SCK 呢?

在当今的工业应用中,CMOS 振荡器由许多晶体振荡器支持,并紧靠这些晶体振荡器。它们都拥有非常好的精确度和较低的抖动。偶尔会用到压控振荡器(VCO),但它们会受到其输出抖动的困扰。

许多现代的音频转换器现在都集成了一个 PLL,以通过慢 BCK 产生 MCK。这样做很有效。但是,您应该注意,使用 PLL 时始终都会有产生抖动的可能,从而降低了音频性能。

另外,我建议,如果在晶体源驱动 ADC 或是 DAC 两者之间选择,请您选择通过一个晶体产生源来运行 ADC。如果输入很糟糕,那么您做什么都于事无补!(就像您不可能把烂泥打磨光亮!)

因此,我的建议遵循的原则是:

1、如果转换器为一个 I2S 从器件,则您必须通过相同源(如果转换器带有,则可以依靠内部 PLL),提供所有三个 I2S 时钟(MCK、BCK 和 LRCK)。

2、如果转换器为一个 I2S 主器件,则请确定能够提供一个可靠的无抖动 MCK源。然后,让转换器自己分配。在可能的情况下,让 ADC 通过一个可靠的低抖动 MCK 源在主模式下运行。这样做可以确保最低抖动和最小高频失真。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 振荡器
    +关注

    关注

    28

    文章

    3812

    浏览量

    138865
  • adc
    adc
    +关注

    关注

    98

    文章

    6430

    浏览量

    544071
  • 模拟
    +关注

    关注

    7

    文章

    1420

    浏览量

    83895
收藏 人收藏

    评论

    相关推荐

    AIC3254做master可以同时带I2S输入和I2S输出吗?

    请问AIC3254做master可以同时带I2S输入和I2S输出吗?I2S输入和输出不是同一设备。 另外,请问purepath studio目前的最新版本是什么?如何获取?
    发表于 10-28 07:02

    pcm1865的i2s协议2单通道已经实现,pcm1865实现4通道是不是就不能用i2s协议了,必须要pcm实现?

    pcm1865的i2s协议2单通道已经实现,pcm1865实现4通道是不是就不能用i2s协议了,必须要pcm实现?如果需要pcm协议来实现,那么在
    发表于 10-25 06:06

    配置I2S以从编解码器设备生成BCLK

    电子发烧友网站提供《配置I2S以从编解码器设备生成BCLK.pdf》资料免费下载
    发表于 10-21 10:30 0次下载
    配置<b class='flag-5'>I2S</b>以从编解码器设备生成BCLK

    I2S器件与MSP430器件连接起来

    电子发烧友网站提供《将I2S器件与MSP430器件连接起来.pdf》资料免费下载
    发表于 10-18 09:31 0次下载
    将<b class='flag-5'>I2S</b>器件与MSP430器件连接起来

    请问PCM4204是I2S接口吗?

    .请TI工程师确定一下 PCM4204是I2S接口?。如果是I2S,如果与STM32F407连接,是不是PCM的M_CLK对应I2S的MCLK,PCM的LRCK对应I2S的MS,PC
    发表于 09-27 09:13

    I2S总线的定义和特点

    I2S(Inter-IC Sound)总线,又称为集成电路内置音频总线,是飞利浦公司(现为恩智浦半导体)为了数字音频设备之间的音频数据传输而制定的一种总线标准。它广泛应用于音频设备、音频编解码器以及数字音频接口等领域,是音频领域中的重要通信技术之一。以下将详细阐述I2S
    的头像 发表于 09-03 14:08 777次阅读

    使用esp32 i2s驱动es7144s芯片,I2S0_CLK作为es7144s芯片的时钟源,请问应该如何配置呢?

    使用esp32 i2s驱动es7144s芯片,I2S0_CLK作为es7144s芯片的时钟源,请问应该如何配置呢?
    发表于 06-21 07:28

    i2s使用并口,i2s_parallel PLL_D2_CLK APLL_CLK频率怎么设置?

    //Initialize I2S parallel device. //并行数据引脚,数位宽度,时钟等等 i2s_parallel_config_t i2scfg={ //.gpio
    发表于 06-14 06:15

    ESP32输出的I2S数据移位的原因?

    ESP32 PICO D4 ESP-IDF 4.3-rc 我在 ESP32 中使用 i2s 向 codec 芯片推送数据的时候,用逻辑分析仪抓 esp32 输出的数据,再对比标准 i2s 协议
    发表于 06-14 06:12

    STM32F1 I2S用DMA方式传输的时候,I2S的四条线是没有信号输出的,为什么?

    之前I2S一直采用DMA方式没有发现问题,现在改成非DMA方式,MCK只有在有数据通信时候才有,也就是没有数据传输的时候,I2S的四条线(包括MCK)是没有信号输出的,这个能改成MCK一直输出模式吗?谢谢
    发表于 04-23 08:21

    如何停止STM32的I2S

    如题,如何停止STM32 的I2S
    发表于 04-16 08:03

    如何通过HCI在CYW20706上配置I2S

    ); I2S 接头上没有 PCM/I2S 时钟,CYW920706CDEVAL 上没有 J23 时钟。 使用同样的命令,我们从 Laird Technologies 那里获得
    发表于 03-01 10:23

    基于I2S接口的Linux内核音频技术

    I2S是飞利浦定义的数字音频传输标准,用于数字音频数据在系统内部器件之间传输。
    发表于 02-27 14:00 2744次阅读
    基于<b class='flag-5'>I2S</b>接口的Linux内核音频技术

    ADAU1701输入采用I2S,输出采用TDM8方式,为什么数据无法同步?

    因1452的数字接口太少,而目前设计的系统有太多的I2S接口芯片,故想到用1701作一次I2S转TDM8扩展, 目前想法是将1701的4组输入时钟设置成
    发表于 11-29 06:49

    ADAU1701的I2S主从机的问题求解

    时钟信号。 有两个问题请教 1.如果我们坚持使用ADAU1701(2006)号芯片,将ADAU1701(2006)号的I2S输出设置为主机,输出的LRCK和BCK接到ADAU1701(2006)号
    发表于 11-28 07:05