【TAS6424和TAS6584音频数据格式】

一、TAS6424 Serial Audio Port

串行音频端口(SAP)接收I2S、左对齐、右对齐或TDM格式的音频。端口的设置在SAP控制寄存器中编程(地址= 0x03)[默认值= 0x04]。
下图展示了8通道系统的I2S和TDM8模式的数字音频数据连接。
在这里插入图片描述

1. I2S模式

I2S时序使用FSYNC引脚来定义何时将数据传输到左通道,何时将数据传输到右通道。FSYNC引脚低为左通道,高为右通道。SCLK运行在32fs或64fs并用于同步数据。从FSYNC信号改变状态到数据线上的第一个数据位有效有1个位时钟延迟。数据以MSB形式传输,该数据在位时钟的上升沿有效。
在这里插入图片描述

2. Left-Justified模式

左对齐(LJ)时序也使用FSYNC引脚来定义何时将数据传输到左通道,何时将数据传输到右通道。FSYNC引脚高为左通道,低为右通道。SCLK运行在32fs或64fs并用于同步数据。第一个数据位在FSYNC切换的同时出现在数据线上。数据以MSB优先,在SCLK的上升沿有效。数据字可以是16bit或24bit宽,并在左右(L/R)帧中用0填充任何未使用的尾随数据位。
在这里插入图片描述

3. Right-Justified模式

右对齐(RJ)时序也使用FSYNC引脚来定义何时将数据传输到左通道,何时将数据传输到右通道。FSYNC引脚高为左通道,低为右通道。SCLK运行在32fs或64fs并用于同步数据。在FSYNC引脚切换后,第一个数据位出现在数据8位时钟周期上(对于24位数据)。在RJ模式下,数据的LSB总是由FSYNC引脚转换前的最后一位时钟进行时钟处理。数据以MSB优先,在SCLK上升沿有效。设备用零填充L/R帧中未使用的前导数据位位置。

4. TDM模式

TDM模式支持4或8通道,当TDM时钟存在时自动选择TDM模式,支持16bit、24bit和32bit输入数据长度。
在TDM模式下,SCLK必须是128fs或256fs,取决于TDM slot大小。SCLK和MCLK可以连接在一起,如果SCLK和MCLK连接在一起或者SCLK的频率和MCLK相等,FSYNC应该至少有2个MCLK脉冲长度。
在TDM模式下,SDIN1用来传输数字音频数据。TI建议连接未使用的SDIN2接地。下表列出了TDM通道选择的寄存器设置。
在这里插入图片描述
其中:
0x03 bit5—0:前4个TDM slots 1:后4个TDM slots
0x03 bit3—0:Normal 1:Swapped
在这里插入图片描述

5. 支持的时钟速率

支持MCLK速率为128fs、256fs或512fs。
支持SCLK速率为:在I2S/LJ/RJ格式下32fs或64fs,在TDM模式下128fs或256fs。
支持FSYNC速率为:44.1k、48k或96k。
最大时钟速率是25MHz。因此,对于96k的FSYNC,最大的MCLK速率为256fs。
对于128xFSYNC需要50%的占空比,对于256x和512x不需要50%的占空比。

二、TAS6584 Serial Audio Port

串行音频端口(SAP)接收I2S、左对齐或DSP格式的音频。另外,可以实现TDM以支持高达TDM16的多通道操作。
引脚SDIN1和SDOUT1可用于数据传输。如果需要,任何GPIO引脚都可以分配为SDIN2和SDOUT2。

1. I2S模式

I2S时序使用FSYNC引脚来定义何时将数据传输到左通道,何时将数据传输到右通道。在I2S模式下,左通道的MSB在FSYNC下降沿之后的SCLK的第二个上升沿有效。同样,右通道的MSB在FSYNC上升沿之后的SCLK的第二个上升沿有效。可以配置通道偏移量,并且在所有通道上都是相同的。
要配置I2S模式,在ASI_CTRL1 Register (0x21)的bit2-3设置数据格式为I2S模式,在ASI_CTRL3 Register (0x23)的bit2-3设置通道1和2,bit0-1设置通道3和4的数据长度,在ASI_CTRL7 Register (0x27)的bit6-7和 ASI_CTRL8 Register (0x28)配置可选的10bit偏移量。
在这里插入图片描述
在这里插入图片描述

2. Left-Justified模式

左对齐(LJ)时序使用FSYNC引脚来定义何时将数据传输到左通道,何时将数据传输到右通道。左通道的MSB在FSYNC上升沿之后的SCLK上升沿有效。同样,右通道的MSB在FSYNC下降沿之后的SCLK时钟上升沿有效。可以配置通道偏移量,并且在所有通道上都是相同的。
要配置LJ模式,在ASI_CTRL1 Register (0x21)的bit2-3设置数据格式为LTJ模式,在ASI_CTRL3 Register (0x23)的bit2-3设置通道1和2,bit0-1设置通道3和4的数据长度,在ASI_CTRL7 Register (0x27)的bit6-7和 ASI_CTRL8 Register (0x28)配置可选的10bit偏移量。
在这里插入图片描述
在这里插入图片描述

3. DSP模式

DSP模式使用FSYNC引脚来定义音频数据的开始,但不区分通道。FSYNC的上升沿首先开始传输左通道数据,紧接着是右通道数据。每个数据位在SCLK的上升沿有效。可以配置10位通道偏移量,并且在所有通道上都是相同的。
要配置DSP模式:
(1) 在ASI_CTRL1 Register (0x21)的bit2-3设置数据格式为DSP格式;
(2) 在ASI_CTRL3 Register (0x23)的bit2-3设置通道1和2,bit0-1设置通道3和4的数据长度;
(3) 在ASI_CTRL7 Register (0x27)的bit6-7和 ASI_CTRL8 Register (0x28)配置可选的10bit偏移量;
(4)如果FSYNC脉冲小于8×SCLK,设置ASI_CTRL1 Register (0x21) [Reset = 0x00] bit0-1为“01”。
在这里插入图片描述
在这里插入图片描述

4. TDM模式

TDM模式支持4、8或16路音频数据传输。数据可以通过单个引脚接收,也可以跨SDIN1和SDIN2分割。数据格式遵循DSP模式。TDM模式除了用于传输通道1-4的音频之外,还包括Low Latency通道1-4(默认未使能)。可以通过ASI_CTRL18 Register (0x32)使能。
在这里插入图片描述要配置TDM模式:
(1) 在ASI_CTRL1 Register (0x21)的bit4使能TDM模式;
(2) 在ASI_CTRL1 Register (0x21)的bit2-3设置数据格式为DSP格式;
(3) 在ASI_CTRL3 Register (0x23)的bit7(Audio通道)和bit6(Low latency通道)为每个适用的通道组设置SDIN1和SDIN2;
(4) 在ASI_CTRL3 Register (0x23)的bit2-3设置audio通道,bit0-1设置Low latency通道的数据长度;
(5) 为每个适用的通道组添加一个10位偏移量,以确定时序并避免数据重叠。偏移量可以设置在:
Audio Ch1-4:ASI_CTRL7 Register (0x27) (MSB) 的bit6-7和 ASI_CTRL8 Register (0x28) (LSB)。The default offset is 0。
Low Latency Ch1-4:ASI_CTRL7 Register (0x27) (MSB) 的bit4-5和 ASI_CTRL9 Register (0x29) (LSB)。The default offset is 96。
(6) 某些TDM控制器可以在FSYNC和通道数据的第一位之间使用一个默认的SCLK周期偏移,这个将导致通道数据超过FSYNC/SCLK比率(如图8-11)。此时ASI_CTRL19 Register (Address = 0xA4)的TDM shift bit6-7必须被设置。如果audio通道数据使用帧slot超过帧length设置为"01";如果low latency通道数据使用帧slot超过帧length设置为"10"。如果FSYNC/SCLK比率之外的数据位数超过1,则设备将忽略任何后续位。
(7) 如果FSYNC脉冲小于8×SCLK,设置ASI_CTRL1 Register (0x21) [Reset = 0x00] bit0-1为“01”。
给定通道组中的slots是连续的。对于BTL配置中的音频数据,这意味着通道1数据将在该通道组的第一个slot中;通道2数据在第二个slot;通道3数据在第三个slot;通道4数据在第四个slot。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TAS2110芯片的初始化通常需要同时使用初始化数据和代码。初始化数据是指芯片的寄存器配置等静态数据,而初始化代码是指在芯片上运行的动态代码,用于配置一些需要动态计算或交互的参数。以下是一个示例TAS2110芯片的初始化代码和数据: ```c // 引入TAS2110驱动程序头文件 #include "TAS2110.h" // TAS2110芯片的初始化数据 const uint8_t TAS2110_Init_Data[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, // ... 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF }; // 初始化TAS2110芯片 void TAS2110_Init(void) { // 配置TAS2110芯片的I2C接口 TAS2110_I2C_Config(); // 加载TAS2110芯片的初始化数据 TAS2110_LoadInitData(TAS2110_Init_Data, sizeof(TAS2110_Init_Data)); // 设置TAS2110芯片的工作模式 TAS2110_SetMode(MODE_NORMAL); // 配置TAS2110芯片的数字音频输入接口 TAS2110_SetDigitalInput(DIGITAL_INPUT_I2S, I2S_STANDARD_PHILIPS); // 配置TAS2110芯片的输出功率 TAS2110_SetOutputPower(OUTPUT_POWER_10W); // 设置TAS2110芯片的音量 TAS2110_SetVolume(50); // ... } ``` 上述代码首先定义了一个名为`TAS2110_Init_Data`的常量数组,其中包含了TAS2110芯片的初始化数据。然后通过调用TAS2110驱动程序提供的函数`TAS2110_LoadInitData()`来加载初始化数据。接着通过调用其他TAS2110驱动程序提供的函数来配置芯片的工作模式、数字音频输入、输出功率、音量等参数。需要注意的是,TAS2110的初始化代码和数据可能因不同的应用而异,上述代码仅供参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值