可以采取以下操作来在无线网络上实现在两个方向都相同的恒定音频延迟(从一个 CC13x2 和 CC26x2 器件平台上的 I2S 引脚到另一个 CC13x2 和 CC26x2 器件平台上的 I2S 引脚):
- 必须将一个节点定义为音频时钟主器件,将另一个节点定义为音频时钟从器件。从器件必须使用速率可调的外部音频时钟源。
- 对于这两个节点,设置 I2S:STMPWPER = N × (I2S:AIFDMACFG.END_FRAME_IDX + 1),其中 N 为整数。
- I2S:STMPWPER 的值等于以帧数表示的音频延迟。
- I2S:STMPWPER 的值也等于以样本数表示的存储器缓冲区大小。
- 当主器件发送射频数据包同步字时,对其执行采样时间戳捕获,并将定点采样时间戳的值包含在发送的数据包中。
- 当从器件收到射频数据包同步字时,对其执行采样时间戳捕获,并将主器件的采样时间戳存储到射频数据包中。计算主器件和从器件的采样时间戳值之差,用于:
- 初步偏移从器件的 I2S:STMPWCNT 计数器,使其与器件的采样时间戳值匹配。
- 运行时,调整外部音频时钟源速率,使从器件和主器件的采样时间戳值之差趋近于 0。
- 对于这两个节点,设置 DMA 指针和 DMA 启动触发条件,以便 STMPWCNT 的值表示当前帧在 ADx 引脚上的输入和输出缓冲区位置。