主题中讨论的其他器件:TLV320AIC3254、 BOOSTXL-AUDIO、 CC2652R、CC3200AUDBOOST
您好、专家!
我一直使用 CC2640R2开发射频应用。 现在、TX 和 RX I2S 时钟存在差异的问题。 如何同步 TX 和 RX I2S 时钟?我发现用户 guider 具有有关 I2S 采样放大器发生器功能的描述、它看起来可以实现同步功能。 但我找不到任何描述如何实现它的示例代码或应用节点。 您可以帮助提供一些执行此操作的示例代码。 谢谢!
此致。
亚历克斯
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.
您好、专家!
我一直使用 CC2640R2开发射频应用。 现在、TX 和 RX I2S 时钟存在差异的问题。 如何同步 TX 和 RX I2S 时钟?我发现用户 guider 具有有关 I2S 采样放大器发生器功能的描述、它看起来可以实现同步功能。 但我找不到任何描述如何实现它的示例代码或应用节点。 您可以帮助提供一些执行此操作的示例代码。 谢谢!
此致。
亚历克斯
尊敬的 Alex:
感谢您与我们联系。
I2S 采样放大器发生器可用于略微改变音频器件的音频时钟。 但是、要做到这一点、应从 PLL 获取音频时钟、以便可以将时钟更改0.01%以下。
在这种情况下、接收器器件可以定期读取采样戳、以检查其采样速度是快于还是慢于发送器。 然后、接收器可以通过小步长来改变音频时钟。
如果没有可用的 PLL、要实现的系统可能会稍微复杂一些。 如果是您的情况、我们可以看到、例如、如果您的系统具有可用作 PLL 的硬件音频编解码器...
此致、
尊敬的 Alex:
我以前使用这个精确的音频编解码器完成了类似的操作、但使用了不同的 SimpleLink 器件(我使用的是 CC2652R)。 我找不到我的代码(那是3年前的代码)、但我希望不管怎样都能让您感兴趣。
解决方案摘要

在我们的例子中、只使用两个频率、即"初始频率"和最接近的可达到的较高或较低频率。
解决方案实现
首先、TLV320AIC3254应配置为 I2S 主器件(CC2640R2F 为 I2S"从器件")。 这意味着 CC2640R2F 必须向 TLV320AIC3254输入高频 MCLK 时钟。 我建议使用 CC2640R2F 计时器生成该时钟。
注1:SimpleLink 音频插件针对 CC26x2展示了该功能。 我建议您查看一下。 请参阅 https://dev.ti.com/tirex/explore/node?node=A__AFfZCYCdhZoqa2UTNzEQxg__com.ti.SIMPLELINK_AUDIO_PLUGIN__RW99gST__LATEST
注释2:带有 TLV320AIC3254 (我认为 CC3200AUDBOOST)的电路板需要修改硬件(移除 CAPA 并添加跳线)才能实现此功能。 请参阅 https://dev.ti.com/tirex/content/simplelink_audio_plugin_3_30_00_06/docs/I2S.html#hardware-setup (位于"(可选) Quick_Start_Guide 从模式"下
其次、配置 TLV320AIC3254的 PLL、以便要求 CC26x2/CC13x2器件提供可能的最低时钟频率。 这样、两个频率之间的阶跃就会尽可能小。
在我的示例中、输入到 TLV320AIC3254的时钟为250kHz。 最接近的可达到较高频率为252.6kHz。 最接近的可达到下限频率为247.4kHz。
注3:在此阶段、您的系统应具有与之前相同的性能(即时钟漂移问题仍然存在、但音频质量应相同)。
第三步、实施帧计数逻辑。
第四、实现一种稍微修改 MCLK 频率的方法。 可以通过增加/减少定时器的预分频器值来修改 MCLK 频率。 平均频率是在10,000帧的样本(即60,000个样本、或44.1kHz 下为1.36秒)上完成。 MCLK 频率可以在每一帧开始时更改。 在实践中、我们将 MCLK 频率更改为每10,000帧最多2倍。 我们使用一个从10000到0的计数器–当计数器达到0时、该计数器会重新设置到10000。 在10,000数量的 OfCyclesModified 周期内、MCLK 频率为250kHz。 在 numberOfCyclesModified 剩余周期内、MCLK 频率为252.6kHz 或247.4kHz–基于 directionOfModification 的值。
我希望这将有所帮助、
此致、
你好,克莱门特,
感谢你的帮助。 这对我来说是一个有用的解决方案。 现在我已经明白了。 对于代码实现、我可以在 SDK 中找到 I2S 驱动程序代码、但没有找到任何示例来说明如何使用此 I2SSampleStamp 模块、更不用说如何将其与射频 RX 或 TX 关联。 您能告诉我哪个 SDK 可以找到 I2SSampleStamp 的使用示例代码吗? 如果存在将 I2SSampleStamp 与 RF 结合使用的引导程序代码、我相信我可以根据您的解决方案实现这一功能。 您能提供吗? 谢谢!
BTW、我的应用需要两个 TX 和一个 RX、因此我必须在 TX 端修改 PLL 频率。 根据您的解决方案、我认为我的用例稍微发生了变化。
亚历克斯
此致。