I2S
示例列表
本章介绍 I2S 示例的详细信息。RTL87x2G 为 I2S 外设提供以下示例。
功能概述
I2S 接口可以支持 I2S、左对齐 (Left-Justified)、PCM 等音频协议。 I2S 可以在 GDMA 模式或 FIFO 模式下操作。 在 GDMA 模式下,根据传输数据的量设置缓冲区大小,或者在 FIFO 模式下直接访问 I2S FIFO 来进行数据的传输和接收。 建议通过 GDMA 自动传输音频数据,因为这样可以减少中断的数量并提高效率。
特性列表
时钟分频
根据以下公式计算 BCLK 的分数分频器:
BCLK = XTAL 40MHz * (I2S_BClockNi / I2S_BClockMi)
。根据以下公式为 LRCK 设置偶数位整数分频器:
LRCK = BCLK / (I2S_BClockDiv + 1)
。其中
I2S_BClockDiv
可以通过以下公式计算:I2S_BClockDiv = (channel width * channel number) - 1
。对于 2 个通道和 32 位通道宽度,推荐的时钟分频器设置如下所示。
BCLK Frequency |
Clock Source |
I2S_BClockNi |
I2S_BClockMi |
I2S_BClockDiv |
Sampling Rate |
0.512 MHz |
XTAL 40MHz |
8 |
625 |
63 |
8 KHz |
0.768 MHz |
XTAL 40MHz |
12 |
625 |
63 |
12 KHz |
1.024 MHz |
XTAL 40MHz |
16 |
625 |
63 |
16 KHz |
1.536 MHz |
XTAL 40MHz |
24 |
625 |
63 |
24 KHz |
2.048 MHz |
XTAL 40MHz |
32 |
625 |
63 |
32 KHz |
3.072 MHz |
XTAL 40MHz |
48 |
625 |
63 |
48 KHz |
6.144 MHz |
XTAL 40MHz |
96 |
625 |
63 |
96 KHz |
12.288 MHz |
XTAL 40MHz |
192 |
625 |
63 |
192 KHz |
2.8224 MHz |
XTAL 40MHz |
441 |
6250 |
63 |
44.1 KHz |
5.6448 MHz |
XTAL 40MHz |
441 |
3125 |
63 |
88.2 KHz |
0.7056 MHz |
XTAL 40MHz |
441 |
25000 |
63 |
11.025 KHz |
1.4112 MHz |
XTAL 40MHz |
441 |
12500 |
63 |
22.05 KHz |
I2S 数据格式
I2S 数据格式分为 I2S 、左对齐 (Left-Justified)、PCM_A 和 PCM_B 格式,可通过 I2S_InitTypeDef::I2S_TxDataFormat
进行设置。
数据格式如图所示:

I2S 格式

I2S 左对齐格式

I2S PCM_A 格式

I2S PCM_B 格式