This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号:AICPUREPATH_STUDIO
工具/软件:Code Composer Studio
我最初使用 CC3220SF-LAUNCHXL Launchpad 和 CC3200AUDBOOST Booster Pack 开发音频应用。 我需要 VOX 功能、因此创建了一个流程、以便在 PurePath Studio 中提供该流程。
我创建了一个工艺流程、并在 TLV320AIC3254EVM-K 开发板上成功测试了该流程。
然后、我按照 https://www.ti.com/lit/an/slaa605a/slaa605a.pdf 中的说明、获取了由 PurePath Studio 创建的头文件的内容、并尝试将其整合到 CC3220SF SDK 中包含的 i2secho 示例中 、但除了启动时几次点击之外、我没有任何音频。
这是我创建的流程。 我实际需要生产的唯一部件是从左侧输入到左侧 I2S 输出的路径、其他元件仅用于测试目的。
使用 TLV320AIC3254EVM-K、当 VAD 在左耳触发时、我会在右耳上不断获得音频和音频。 我的示波器显示了当 VAD 触发时从 EVM-K 发出的 I2S 数据。
在 i2secho 示例中、我已将 AudioCodec_config 方法替换为对 AIC_Init(0x30)的调用、并已更改命令以从控制 i2c
GPIO_I2C_Write (address、data[i].reg_off、data[i].reg_val)(在中使用)
i2secho 示例使用的 AudioCodec_regWrite (data[i].reg_off、data[i].reg_val)。
I2S 读取回调中没有音频和数据
提前感谢
Chris
尊敬的 Chris:
如果您有与 EVM-K 板一起工作的流程、并且在将设置导出到另一个板时不工作、则问题可能与时钟差异有关。
请注意、EVM-K 板上的器件从 TAS1020B USB 控制器获取 MCLK、并使用 PLL 和分频器派生所有内部时钟。 该 SimpleLink 板上的 MCLK 可能不同。 如果它们不同、则 PLL 配置寄存器-即 P、R、J、D、NADC、 mAdc、NDAC、MDAC -必须进行更改以适应主时钟频率。
您是否能够检查和确认 SimpleLink 板上器件的输入时钟? 另请列出 EVM-K 的 PLL 配置寄存器 我可以推荐合适的替换器件。
此致。
你好 Diljith
感谢您的回答。
我正在运行采样率为16kHz 的16位音频。 i2secho 示例中的设置如所示
MCLK = BCLK
Fs = 16kHz、BCLK = PLL 输入、BCLK = 512kHz
该示例在以16KHz 采样率运行时不包括 PLL 寄存器的任何其他设置、但是否将它们设置为更高的采样率-我假设对于16KHz、它使用默认值、但我无法确认这一点?
PurePath Studio 创建的设置为
// # REG[0][5]= 0x91;P=1、R=1、J=24 // # REG[0][6]= 0x18;P=1、R=1、J=24 // # REG[0][7]= 0x00;D=0000 (MSB) // # REG[0][8]= 0x00;D=0000 (LSB) // # REG[0][4]= 0x03;PLL_CLKIN = MCLK、CODE_CLKIN = PLL_CLK、PLL 打开 // # REG[0][12]= 0x88;MDAC = 8、分压器加电 // # REG[0][13]= 0x01;DOSR = 384 (MSB) // # REG[0][14]= 0x80;DOSR = 384 (LSB) // # REG[0][18]= 0x02;NADC = 2、分压器断电 // # REG[0][19]= 0x98;mAdc = 24、分压器加电 // # REG[0][20]= 0x80;AOSR = 128 // # REG[0][11]= 0x82;NDAC = 2、分压器通电
此致
Chris
你好 Diljith
只需添加一点更多信息-在 CC3220的 I2S 初始化参数中、MCLK 分频器设置为40:
/*! *@用于将 I2S_Params 结构初始化为默认值的简短函数 * *@param [out] params *的 I2S_Params 结构指针 初始 化* *默认值为 :*@code * params.samplingFrequency = 16000; * params.memorySlotLength = I2S_MEMORY_LENGTH_16位; * params.moduleRole = I2S_MASTER; * params.trueI2sFormat =(bool) true; * params.invertWS =(bool) true; * params.isMSBFirst =(bool) true; * params.isDMAUnused =(bool) false; * params.samplingEdge = I2S_SAMPLING_EDGE_RISING; * params.beforeWordPadding = 0; * params.bitsPerWord = 16; * params.fterWordPadding = 0; * params.fixedBufferLength = 1; * params.SD0Use = I2S_SD0_OUTPUT; * params.SD1Use = I2S_SD1_INPUT; * params.SD0Channels = I2S_CHANNELS; * params.SD1Channels = I2S_CHANNELS; * params.phaseType = I2S_PHASE_TYPE_DUAL; * params.startUpDelay = 0; * params.MCLKDivider = 40; * params.readCallback = NULL; * params.writeCallback = NULL; * params.errorCallback = NULL; * params.custom =空; *@endcode * *@param 参数结构以初始 化*/
此致
Chris
感谢额外的输入。 我将为这种配置确定 PLL 时钟树、并在一天内返回给您。
此致。
你好 Diljith
感谢您提供的额外信息。 我会再看一下 ARG——我以前不会错过任何东西。
您提供的时钟树设置 非常有用、谢谢、现在我已经全部启动并运行了。
非常感谢
Chris