I2S ==== 概述 -------- I2S(Inter-IC Sound Bus) 是为数字音频设备之间的音频数据传输而指定的一种总线标准,广泛应用于各种多媒体系统。I2S 主要有以下 3 种信号: - 串行时钟信号 BCK:每一位串行数据都有一个BCK脉冲对应。 - 声道选择信号 WS:用于指示左右声道的数据。WS为 "0" 默认表示正在传输的是左声道数据,为 "1" 表示正在传输的是右声道数据。 - 串行数据信号 SDATA:实际音频数据。 WQ7036 有 2 个 I2S 模块,可以工作在不同的时钟频率。 功能特性 ------------------- I2S 模块支持: - 支持 2 个 I2S,包括 2 个 Tx, 2 个 Rx - 支持每个 Tx/Rx 最大8 channel 数据 - 支持双通道/单通道的 16 bit,24 bit,32 bit 数据格式 - 支持 标准 Philips 和非 Philips 模式(左右对齐) Standard Philips 格式:数据信号与 WS 信号相比有一个位的位移。WS 信号的占空比为 50% .. image:: ../../../_static/Standard_Philips_I2s_mode.png :align: center Left justified 格式:与 Standard Philips 格式基本相同,但其数据没有位移。 .. image:: ../../../_static/Left_justified_I2s_mode.png :align: center Right justified 格式:数据有一个位的位移,同时 WS 信号变成脉冲,持续一个 BCLK 周期。 .. image:: ../../../_static/Right_justified_I2s_mode.png :align: center - 支持 TX/RX 分别配置成 master 或者 slave 模式 - I2S 收发数据过程支持 DMA 传输 - 支持最高 49.152 MHz Bclk - 支持 WS 脉冲形式, 1 slot 模式, 50% 占空比模式 - 支持 STANDARD/TDM/PCM 模式 - 支持 4 条数据线同时工作 - 支持外部时钟或多种内部时钟选择 - 支持 16 k, 24 k, 32 k, 48 k, 62.5 k, 96 k, 125 k, 128 k, 192 k, 256 k 等多种采样率配置 (需选择不同 AUDIO 时钟源) - 最大支持上行 16 路channel、下行 8 channel 同时工作 内部时钟源选择:XTAL_CLK, APLL_CLK - XTAL_CLK: 32 MHz - APLL_CLK: 主要为307.2 MHz 数据流 --------- I2S 收发数据流如下图所示。 .. image:: ../../../_static/I2S_data_flow.png :align: center .. centered:: I2S 收发数据流 API 介绍 ------------ .. doxygenfile:: wq_i2s.h .. doxygenfile:: wq_i2s_declare.h