0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

詳解I2S時序

FPGA研究院 ? 來源:FPGA研究院 ? 2024-11-26 17:16 ? 次閱讀

01

整體概括

最近調(diào)試了一款音頻采集芯片wm8731,包含兩路音頻輸入(ADC)和一路音頻輸出(DAC),音頻芯片與主控芯片通過I2S接口傳輸ADC采集的數(shù)據(jù)和DAC驅(qū)動數(shù)據(jù)。

本文簡要講解一下I2S協(xié)議,該協(xié)議包含ADCRC(ADC采集數(shù)據(jù)的左右聲道指示信號)、DACRC(DAC采集數(shù)據(jù)的左右聲道指示信號)、BCLK(位數(shù)據(jù)對齊時鐘)、ADCDAT(ADC輸出數(shù)據(jù))、DACDAT(DAC采集數(shù)據(jù))共五個信號。

WM8731通過ADCRC、BCLK、ADCDAT三個信號傳輸ADC采集的數(shù)據(jù),DACRC、BCLK、DACDAT三個信號傳輸驅(qū)動DAC的數(shù)據(jù),ADC和DAC的數(shù)據(jù)通道共用BCLK信號。ADCDAT和DACDAT均在BCALK的下降沿變化,在BCLK上升沿保持不變。

WM8371的I2S接口包含主機(jī)和從機(jī)兩種模式,兩種模式的區(qū)別在于時鐘(BCLK)和聲道指示信號(ADCLRC、DACLRC)由主控芯片還是WM8371提供。

圖1是WM8371的主機(jī)模式,時鐘和聲道指示信號均由WM8371提供。

圖1 主機(jī)模式

下圖是WM8731的從機(jī)模式,時鐘和聲道指示信號均由WM8371提供,通過配置內(nèi)部寄存器實現(xiàn)模式選擇,使用FPGA作為主控時,兩種模式均可使用,后續(xù)詳解。

圖2 從機(jī)模式

02

I2S協(xié)議的四種模式

I2S總線根據(jù)ADCDAT和DACDAT的數(shù)據(jù)變化,分為左對齊,右對齊,I2S及DSP共四種模式,其實就是四種數(shù)據(jù)傳輸時序,推薦使用左對齊模式或者I2S模式。

2.1左對齊模式

對應(yīng)時序如下所示,ADCDAT在ADCLRC高電平時傳輸左聲道的數(shù)據(jù),ADCDAT在ADCLRC低電平時傳輸右聲道數(shù)據(jù),ADCDAT先傳輸高位數(shù)據(jù)。ADCLRC的頻率等于配置的ADC采樣頻率fs。

ADCDAT在BCLK的前n個時鐘的下降沿傳輸數(shù)據(jù),n表示ADC采集數(shù)據(jù)的位寬。

圖3 左對齊模式

注意BCLK的頻率必須大于等于ADC采樣率乘以ADC數(shù)據(jù)位寬乘以2。當(dāng)WM8371作為主機(jī)時,BCLK由WM8371提供,用戶不能設(shè)置其頻率。當(dāng)WM8371作為從機(jī)時,BCLK由用戶提供,必須滿足頻率關(guān)系。

注意BCLK的下降沿與ADCLRC/DACLRC的跳變沿對齊,而DACDAT/ADCDAT的第一個數(shù)據(jù)(MSB)在BCLK下降沿開始傳輸,即DACDAT/ADCDAT與ADCLRC/DACLRC左邊對齊,因此被稱為左對齊模式。

在實測主機(jī)模式時發(fā)現(xiàn)BCLK的周期可能存在占空比不是百分之五十的情況,在設(shè)計時需要注意。

2.2右對齊模式

因為BCLK的頻率滿足大于等于ADCLRC/DACLRC頻率乘以ADC/DAC數(shù)據(jù)位寬乘以2即可,導(dǎo)致BCLK在ADCLRC/DACLRC高電平或低電平時的時鐘個數(shù)可能大于ADC/DAC數(shù)據(jù)位寬,就存在無效時鐘。

此時數(shù)據(jù)起始位與ADCLRC/DACLRC邊沿對齊,則是左對齊模式,如果數(shù)據(jù)的結(jié)束位置與ADCLRC/DACLRC邊沿對齊,則是右對齊模式,右對齊模式時序如下。

圖4 右對齊模式

DACDAT/ADCDAT依舊在BCLK下降沿先傳輸高位數(shù)據(jù),LSB與ADCLRC/DACLRC邊沿對齊。

這種模式不好編寫適配多種采樣率的發(fā)送驅(qū)動,因為主機(jī)模式下不同采樣率時ADCLRC/DACLRC電平對應(yīng)的BCLK個數(shù)不同,通用的驅(qū)動會比較麻煩,因此一般不推薦使用這類驅(qū)動時序。該模式不支持32位ADC和DAC數(shù)據(jù)位寬。

2.3I2S模式

I2S模式時序如下所示,與左對齊模式類似,但ADCDAT/DACDAT在ADCLRC/DACLRC邊沿后的第一個BCLK不傳輸數(shù)據(jù),從BCLK的第二個下降沿傳輸最高位數(shù)據(jù)。

圖5 I2S模式

該模式使用起來也比較方便,推薦使用。

2.4DSP模式

DSP模式時序如下圖所示,每次傳輸數(shù)據(jù)LRCLK只持續(xù)一個BCLK周期,其余時間保持電平。

LRCLK的下降沿與BCLK的下降沿對齊,ADCDAT/DACDAT開始傳輸n位左聲道數(shù)據(jù),然后傳輸n位右聲道數(shù)據(jù),ADCDAT/DACDAT在剩余的BCLK周期無效。

圖6 DSP模式

四種模式下LRCLK和BCLK的頻率都是遵守相同規(guī)則的,且ADCDAT/DACDAT均在BCLK的下降沿傳輸數(shù)據(jù),在BCLK上升沿期間數(shù)據(jù)保持不變。

03

WM8371的時序參數(shù)

WM8731的ADC和DAC的數(shù)據(jù)位寬始終為24位,但在I2S或左對齊模式下,數(shù)字音頻數(shù)據(jù)可編程為16位、20位、24或32位。即寄存器編程音頻數(shù)據(jù)位寬為16位時,ADCDAT會將ADC采集的高16位數(shù)據(jù)輸出,低8位數(shù)據(jù)舍棄。如果寄存器編程音頻數(shù)據(jù)位寬為32位時,ADCDAT會把ADC采集的24位數(shù)據(jù)作為高位,低八位補(bǔ)零,達(dá)到32位數(shù)據(jù)輸出。

主機(jī)模式下的時序參數(shù)如下所示,需要重點關(guān)注下圖紅框中的兩個時序參數(shù)。

圖7 主機(jī)模式時序參數(shù)

兩個時序參數(shù)如下表所示,DACDAT必須在BCLK上升沿前后至少10ns內(nèi)保持穩(wěn)定。

圖8 時序參數(shù)

從機(jī)模式的時鐘信號和聲道指示信號都由主控芯片提供,相關(guān)的時序參數(shù)會多一些,如下圖所示。

圖9 從機(jī)模式時序參數(shù)

BCLK的最小周期為50ns,即接口數(shù)據(jù)傳輸?shù)淖畲箢l率為20MHz,另外DACLRC/ADCLRC和DACDAT在BCLK上升沿前后的10ns內(nèi)必須保持不變,WM8731才能穩(wěn)定采集對應(yīng)信號的狀態(tài)。

圖10 時序參數(shù)

本文主要講解I2S時序,文中圖片均來自WM8371芯片手冊

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 時序
    +關(guān)注

    關(guān)注

    5

    文章

    387

    瀏覽量

    37331
  • I2S
    I2S
    +關(guān)注

    關(guān)注

    1

    文章

    64

    瀏覽量

    41926
  • wm8731
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    3318

原文標(biāo)題:詳解I2S時序

文章出處:【微信號:FPGA研究院,微信公眾號:FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    音頻總線I2S協(xié)議:I2S收發(fā)模塊FPGA的仿真設(shè)計

    1 概述 I2S(Inter—IC Sound)總線, 又稱 集成電路內(nèi)置音頻總線,是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn),該總線專門用于音頻設(shè)備之間的數(shù)據(jù)傳輸,廣泛應(yīng)用
    的頭像 發(fā)表于 12-14 17:34 ?8603次閱讀
    音頻總線<b class='flag-5'>I2S</b>協(xié)議:<b class='flag-5'>I2S</b>收發(fā)模塊FPGA的仿真設(shè)計

    全面解析I2S、TDM、PCM音頻總線

    I2S是比較簡單的數(shù)字接口協(xié)議,沒有地址或設(shè)備選擇機(jī)制。在I2S總線上,只能同時存在一個主設(shè)備和發(fā)送設(shè)備。主設(shè)備可以是發(fā)送設(shè)備,也可以是接收設(shè)備,或是協(xié)調(diào)發(fā)送設(shè)備和接收設(shè)備的其它控制設(shè)備。
    發(fā)表于 09-20 10:58 ?1.2w次閱讀

    aic3253的I2S完整的時序圖及接口協(xié)議如何設(shè)置?

    我想用stm32來控制aic3254,通過i2s接口來接收數(shù)據(jù),i2s協(xié)議標(biāo)準(zhǔn)一般有Phillips標(biāo)準(zhǔn)、左對齊、右對齊等區(qū)別,但是在aic3254中沒有看到此類描述,也沒有完整的時序圖。想來詢問一下aic3253的
    發(fā)表于 10-29 07:29

    #硬聲創(chuàng)作季 #STM32 手把手教你學(xué)STM32-084 I2S錄音簡介-1

    I2S
    水管工
    發(fā)布于 :2022年10月29日 15:07:15

    #硬聲創(chuàng)作季 #STM32 手把手教你學(xué)STM32-084 I2S錄音簡介-2

    I2S
    水管工
    發(fā)布于 :2022年10月29日 15:07:40

    #硬聲創(chuàng)作季 #STM32 手把手教你學(xué)STM32-084 I2S錄音簡介-3

    I2S
    水管工
    發(fā)布于 :2022年10月29日 15:08:07

    音頻接口I2S實驗

    實驗?zāi)康? 1.掌握有關(guān)音頻處理的實驗原理及說明;2.通過實驗了解I2S(Inter–ICSound)音頻接口的工作原理;3.通過實驗掌握對處理器S3C2410中I2S模塊電路
    發(fā)表于 12-29 00:07 ?116次下載

    基于FPGA和AD1836的I2S接口設(shè)計

    I2S(Inter IC Sound Bus)是飛利浦公司為數(shù)字音頻設(shè)備之間的音頻數(shù)據(jù)傳輸而制定的一種總線標(biāo)準(zhǔn),它既規(guī)定了硬件接口規(guī)范,也規(guī)定了數(shù)字音頻數(shù)據(jù)的格式。I2S有三個主要的信號:
    發(fā)表于 03-29 11:02 ?6594次閱讀
    基于FPGA和AD1836的<b class='flag-5'>I2S</b>接口設(shè)計

    CAN、I2S、I2C、SPI、SSP總線的介紹和比較

    CAN、I2S、I2C、SPI、SSP總線的介紹和比較。
    發(fā)表于 07-14 16:20 ?53次下載

    幾種常見的I2S數(shù)據(jù)格式

    I2S總線簡單有效,可以有效提升輸出數(shù)據(jù)的質(zhì)量,在各種嵌入式音頻系統(tǒng)中有廣泛應(yīng)用。但是在嵌入式音頻系統(tǒng)設(shè)計中,并不是所有的MCU都支持I2S總線格式,再加上I2S還沒有統(tǒng)一的接口標(biāo)準(zhǔn),不同的廠家生產(chǎn)的設(shè)備接口也是五花八門
    發(fā)表于 01-29 19:18 ?1.2w次閱讀
    幾種常見的<b class='flag-5'>I2S</b>數(shù)據(jù)格式

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

    MM32F5270 系列控制器支持 I2S 總線接口,本章節(jié)在接下來會對 MM32F5270 I2S進(jìn)行介紹,并使用 MM32F5270 和 CS4344 芯片進(jìn)行 I2S 通信來演示播放一段聲音。
    的頭像 發(fā)表于 09-16 10:39 ?2381次閱讀

    I2S、TDM、PCM音頻總線

    I2S包括兩個聲道(Left/Right)的數(shù)據(jù),在主設(shè)備發(fā)出聲道選擇/字選擇(WS)控制下進(jìn)行左右聲道數(shù)據(jù)切換。通過增加I2S接口的數(shù)目或其它I2S設(shè)備可以實現(xiàn)多聲道(Multi-Channels)應(yīng)用。
    的頭像 發(fā)表于 09-20 11:01 ?4999次閱讀

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

    AT32的SPI接口提供軟件編程配置選項,根據(jù)軟件編程配置方式不同,可以分別作為SPI和I2S使用。 本文將分SPI和I2S分別介紹SPI接口作SPI或I2S的功能特性以及配置流程。
    的頭像 發(fā)表于 03-08 13:18 ?5827次閱讀
    雅特力AT32 MCU SPI/<b class='flag-5'>I2S</b>入門指南

    基于MM32F5270的I2S音頻播放

    基于MM32F5270的I2S音頻播放
    的頭像 發(fā)表于 10-30 17:13 ?1208次閱讀
    基于MM32F5270的<b class='flag-5'>I2S</b>音頻播放

    基于MM32F3270 I2S使用

    基于MM32F3270 I2S使用
    的頭像 發(fā)表于 09-27 15:50 ?810次閱讀
    基于MM32F3270 <b class='flag-5'>I2S</b>使用