主题中讨论的其他器件:TLV320AIC3106
工具/软件:Code Composer Studio
您好!
我不熟悉 DSP 开发、我使用 StarterWare McASP 环回示例。 我想将 TDM 时分配置为让 TLV320AIC3106编解码器在不同的时隙上进行传输(将来、我们将有8个编解码器连接到同一总线)。 在给定的示例中、我将更改以下代码(8kHz、160个样本):
/*发送和接收部分都将使用的采样率*/
#define SAMPLING_RATE (8000u)
/*每个音频缓冲器要使用的样本数*/
#define NUM_SAMESS_PER_AUDIO_BUF (160u)
通过这种更改、音频回送正常。 要激活音频编解码器上的 TDM、我已将文件 aic31.c 更改为使用256时钟传输(函数 AIC31DataConfig):
原始代码:
/*写入数据类型和 插槽宽度*/
CodecRegWrite (baseAddr、AIC31_P0_REG9、(数据类型|插槽));
修改了代码(在 P0 REG9上添加了256时钟位激活):
/*写入数据类型和 插槽宽度*/
CodecRegWrite (baseAddr、AIC31_P0_REG9、(数据类型|插槽| 0x08));
在主文件中、我更改了以下代码:
在 AIC31I2SConfigure 函数上(我们将有8个编解码器、对 R&L 通道进行采样、因此每个 TMD 帧有16个插槽、我希望编解码器在插槽2和3上传输、而不是像原来那样在0和1上传输、因此我已将偏移更改为从位32开始):
/*配置数据格式和采样率*/
//原始代码:AIC31DataConfig (SOC_I2C_0_regs、AIC31_datatype_I2S、SLOT_SIZE、0);
AIC31DataConfig (SOC_I2C_0_regs、AIC31_datatype_I2S、SLOT_SIZE、32);
在""函数中、我已将 McASP 配置更改为使用16个插槽并在插槽2和3上处于活动状态(不是最初的0和1):
/*配置帧同步。 I2S 应采用 TDM 格式、具有2个插槽*/
//原始代码:McASPRxFrameSyncCfg (SOC_MCASP_0_CTRL_regs、2、MCASP_RX_FS_WIDTH_WORD、
// MCBSP_RX_FS_EXT_BEGIN_ON_FRAGE_EDGE);
//McASPTxFrameSyncCfg (SOC_MCASP_0_CTRL_regs、2、MCASP_TX_FS_WIDTH_WORD、
// MCBSP_TX_FS_EXT_BEGIN_ON_RIS_EDGE);
//配置16个插槽
McASPRxFrameSyncCfg (SOC_MCASP_0_CTRL_regs、16、MCASP_RX_FS_WIDTH_WORD、
McASP_RX_FS_EXT_BEGIN_ON_FALL_EDGE);
McASPTxFrameSyncCfg (SOC_MCASP_0_CTRL_regs、16、MCASP_TX_FS_WIDTH_WORD、
McASP_TX_FS_EXT_BEGIN_ON_RIS_EDGE);
/*启用发送器/接收器插槽。 I2S 使用2个插槽*/
//原始代码:McASPRxTimeSlotSet (SOC_MCASP_0_CTRL_regs、I2S_SLOTS);
//McASPTxTimeSlotSet (SOC_MCBSP_0_CTRL_regs、I2S_SLOTS);
//将插槽2和3设置为在 McASP 串行器上处于活动状态
McASPRxTimeSlotSet (SOC_MCBSP_0_CTRL_regs、0x000000C);
McASPTxTimeSlotSet (SOC_MCBSP_0_CTRL_regs、0x0000000C);
我不知道我在配置中缺少什么、因为它不起作用、因此欢迎您提供任何帮助(我已经尝试过其他传输格式、例如左对齐格式或 DSP、结果是相同的)。
此致、
埃伊洛伊

