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

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

3天内不再提示

详解I2S时序

FPGA研究院 来源:FPGA研究院 2024-11-26 17:16 次阅读

01

整体概括

最近调试了一款音频采集芯片wm8731,包含两路音频输入(ADC)和一路音频输出(DAC),音频芯片与主控芯片通过I2S接口传输ADC采集的数据和DAC驱动数据。

本文简要讲解一下I2S协议,该协议包含ADCRC(ADC采集数据的左右声道指示信号)、DACRC(DAC采集数据的左右声道指示信号)、BCLK(位数据对齐时钟)、ADCDAT(ADC输出数据)、DACDAT(DAC采集数据)共五个信号。

WM8731通过ADCRC、BCLK、ADCDAT三个信号传输ADC采集的数据,DACRC、BCLK、DACDAT三个信号传输驱动DAC的数据,ADC和DAC的数据通道共用BCLK信号。ADCDAT和DACDAT均在BCALK的下降沿变化,在BCLK上升沿保持不变。

WM8371的I2S接口包含主机和从机两种模式,两种模式的区别在于时钟(BCLK)和声道指示信号(ADCLRC、DACLRC)由主控芯片还是WM8371提供。

图1是WM8371的主机模式,时钟和声道指示信号均由WM8371提供。

图1 主机模式

下图是WM8731的从机模式,时钟和声道指示信号均由WM8371提供,通过配置内部寄存器实现模式选择,使用FPGA作为主控时,两种模式均可使用,后续详解。

图2 从机模式

02

I2S协议的四种模式

I2S总线根据ADCDAT和DACDAT的数据变化,分为左对齐,右对齐,I2S及DSP共四种模式,其实就是四种数据传输时序,推荐使用左对齐模式或者I2S模式。

2.1左对齐模式

对应时序如下所示,ADCDAT在ADCLRC高电平时传输左声道的数据,ADCDAT在ADCLRC低电平时传输右声道数据,ADCDAT先传输高位数据。ADCLRC的频率等于配置的ADC采样频率fs。

ADCDAT在BCLK的前n个时钟的下降沿传输数据,n表示ADC采集数据的位宽。

图3 左对齐模式

注意BCLK的频率必须大于等于ADC采样率乘以ADC数据位宽乘以2。当WM8371作为主机时,BCLK由WM8371提供,用户不能设置其频率。当WM8371作为从机时,BCLK由用户提供,必须满足频率关系。

注意BCLK的下降沿与ADCLRC/DACLRC的跳变沿对齐,而DACDAT/ADCDAT的第一个数据(MSB)在BCLK下降沿开始传输,即DACDAT/ADCDAT与ADCLRC/DACLRC左边对齐,因此被称为左对齐模式。

在实测主机模式时发现BCLK的周期可能存在占空比不是百分之五十的情况,在设计时需要注意。

2.2右对齐模式

因为BCLK的频率满足大于等于ADCLRC/DACLRC频率乘以ADC/DAC数据位宽乘以2即可,导致BCLK在ADCLRC/DACLRC高电平或低电平时的时钟个数可能大于ADC/DAC数据位宽,就存在无效时钟。

此时数据起始位与ADCLRC/DACLRC边沿对齐,则是左对齐模式,如果数据的结束位置与ADCLRC/DACLRC边沿对齐,则是右对齐模式,右对齐模式时序如下。

图4 右对齐模式

DACDAT/ADCDAT依旧在BCLK下降沿先传输高位数据,LSB与ADCLRC/DACLRC边沿对齐。

这种模式不好编写适配多种采样率的发送驱动,因为主机模式下不同采样率时ADCLRC/DACLRC电平对应的BCLK个数不同,通用的驱动会比较麻烦,因此一般不推荐使用这类驱动时序。该模式不支持32位ADC和DAC数据位宽。

2.3I2S模式

I2S模式时序如下所示,与左对齐模式类似,但ADCDAT/DACDAT在ADCLRC/DACLRC边沿后的第一个BCLK不传输数据,从BCLK的第二个下降沿传输最高位数据。

图5 I2S模式

该模式使用起来也比较方便,推荐使用。

2.4DSP模式

DSP模式时序如下图所示,每次传输数据LRCLK只持续一个BCLK周期,其余时间保持电平。

LRCLK的下降沿与BCLK的下降沿对齐,ADCDAT/DACDAT开始传输n位左声道数据,然后传输n位右声道数据,ADCDAT/DACDAT在剩余的BCLK周期无效。

图6 DSP模式

四种模式下LRCLK和BCLK的频率都是遵守相同规则的,且ADCDAT/DACDAT均在BCLK的下降沿传输数据,在BCLK上升沿期间数据保持不变。

03

WM8371的时序参数

WM8731的ADC和DAC的数据位宽始终为24位,但在I2S或左对齐模式下,数字音频数据可编程为16位、20位、24或32位。即寄存器编程音频数据位宽为16位时,ADCDAT会将ADC采集的高16位数据输出,低8位数据舍弃。如果寄存器编程音频数据位宽为32位时,ADCDAT会把ADC采集的24位数据作为高位,低八位补零,达到32位数据输出。

主机模式下的时序参数如下所示,需要重点关注下图红框中的两个时序参数。

图7 主机模式时序参数

两个时序参数如下表所示,DACDAT必须在BCLK上升沿前后至少10ns内保持稳定。

图8 时序参数

从机模式的时钟信号和声道指示信号都由主控芯片提供,相关的时序参数会多一些,如下图所示。

图9 从机模式时序参数

BCLK的最小周期为50ns,即接口数据传输的最大频率为20MHz,另外DACLRC/ADCLRC和DACDAT在BCLK上升沿前后的10ns内必须保持不变,WM8731才能稳定采集对应信号的状态。

图10 时序参数

本文主要讲解I2S时序,文中图片均来自WM8371芯片手册

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

    关注

    5

    文章

    387

    浏览量

    37293
  • I2S
    I2S
    +关注

    关注

    1

    文章

    64

    浏览量

    41860
  • wm8731
    +关注

    关注

    0

    文章

    2

    浏览量

    3312

原文标题:详解I2S时序

文章出处:【微信号:FPGA研究院,微信公众号:FPGA研究院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    音频总线I2S协议:I2S收发模块FPGA的仿真设计

    1 概述 I2S(Inter—IC Sound)总线, 又称 集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专门用于音频设备之间的数据传输,广泛应用
    的头像 发表于 12-14 17:34 8501次阅读
    音频总线<b class='flag-5'>I2S</b>协议:<b class='flag-5'>I2S</b>收发模块FPGA的仿真设计

    全面解析I2S、TDM、PCM音频总线

    I2S是比较简单的数字接口协议,没有地址或设备选择机制。在I2S总线上,只能同时存在一个主设备和发送设备。主设备可以是发送设备,也可以是接收设备,或是协调发送设备和接收设备的其它控制设备。
    发表于 09-20 10:58 1.2w次阅读

    aic3253的I2S完整的时序图及接口协议如何设置?

    我想用stm32来控制aic3254,通过i2s接口来接收数据,i2s协议标准一般有Phillips标准、左对齐、右对齐等区别,但是在aic3254中没有看到此类描述,也没有完整的时序图。想来询问一下aic3253的
    发表于 10-29 07:29

    #硬声创作季 #STM32 手把手教你学STM32-084 I2S录音简介-1

    I2S
    水管工
    发布于 :2022年10月29日 15:07:15

    #硬声创作季 #STM32 手把手教你学STM32-084 I2S录音简介-2

    I2S
    水管工
    发布于 :2022年10月29日 15:07:40

    #硬声创作季 #STM32 手把手教你学STM32-084 I2S录音简介-3

    I2S
    水管工
    发布于 :2022年10月29日 15:08:07

    音频接口I2S实验

    实验目的 1.掌握有关音频处理的实验原理及说明;2.通过实验了解I2S(Inter–ICSound)音频接口的工作原理;3.通过实验掌握对处理器S3C2410中I2S模块电路
    发表于 12-29 00:07 116次下载

    基于FPGA和AD1836的I2S接口设计

    I2S(Inter IC Sound Bus)是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,它既规定了硬件接口规范,也规定了数字音频数据的格式。I2S有三个主要的信号:
    发表于 03-29 11:02 6564次阅读
    基于FPGA和AD1836的<b class='flag-5'>I2S</b>接口设计

    CAN、I2SI2C、SPI、SSP总线的介绍和比较

    CAN、I2SI2C、SPI、SSP总线的介绍和比较。
    发表于 07-14 16:20 53次下载

    几种常见的I2S数据格式

    I2S总线简单有效,可以有效提升输出数据的质量,在各种嵌入式音频系统中有广泛应用。但是在嵌入式音频系统设计中,并不是所有的MCU都支持I2S总线格式,再加上I2S还没有统一的接口标准,不同的厂家生产的设备接口也是五花八门
    发表于 01-29 19:18 1.2w次阅读
    几种常见的<b class='flag-5'>I2S</b>数据格式

    基于MM32F5270控制器的I2S音频播放

    MM32F5270 系列控制器支持 I2S 总线接口,本章节在接下来会对 MM32F5270 I2S进行介绍,并使用 MM32F5270 和 CS4344 芯片进行 I2S 通信来演示播放一段声音。
    的头像 发表于 09-16 10:39 2258次阅读

    I2S、TDM、PCM音频总线

    I2S包括两个声道(Left/Right)的数据,在主设备发出声道选择/字选择(WS)控制下进行左右声道数据切换。通过增加I2S接口的数目或其它I2S设备可以实现多声道(Multi-Channels)应用。
    的头像 发表于 09-20 11:01 4826次阅读

    雅特力AT32 MCU SPI/I2S入门指南

    AT32的SPI接口提供软件编程配置选项,根据软件编程配置方式不同,可以分别作为SPI和I2S使用。 本文将分SPI和I2S分别介绍SPI接口作SPI或I2S的功能特性以及配置流程。
    的头像 发表于 03-08 13:18 5531次阅读
    雅特力AT32 MCU SPI/<b class='flag-5'>I2S</b>入门指南

    基于MM32F5270的I2S音频播放

    基于MM32F5270的I2S音频播放
    的头像 发表于 10-30 17:13 1131次阅读
    基于MM32F5270的<b class='flag-5'>I2S</b>音频播放

    基于MM32F3270 I2S使用

    基于MM32F3270 I2S使用
    的头像 发表于 09-27 15:50 769次阅读
    基于MM32F3270 <b class='flag-5'>I2S</b>使用