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.

[参考译文] TMS320C6746:如何确保音频相位与连接到 C674x McASP 的多个 ADC 通道一致

Guru**** 2538960 points
Other Parts Discussed in Thread: TLV320ADC3101, SYSBIOS, PCM1864

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/955467/tms320c6746-how-to-guarantee-audio-phase-alignment-with-multiple-adc-channels-connected-to-a-c674x-mcasp

器件型号:TMS320C6746
主题中讨论的其他器件:TLV320ADC3101SYSBIOSPCM1864

我们有一个将麦克风阵列连接到 C674x 的硬件设计、我们在保持麦克风数据的相位对齐方面存在间歇性问题。 麦克风以 TDM 的方式通过多个立体声 ADC (TLV320ADC3101)连接到 DSP、并且一个或多个 ADC 的音频间歇性延迟一个采样、而不是其他 ADC。

在我们的 DSP 启动过程中、McASP 和连接的硬件通过一个固定的启动序列进行配置、此启动序列源自 TI 参考-例如 pspdrivers 中的 McASP 启动示例和 SLAA508A 等应用手册中提供的指南。 重复启动测试后、可以评估相位对齐情况、并且特定的 DSP 编译/映像会落入三种情况之一- 1)它始终以正确的相位对齐启动、2)它永远不会以正确的相位对齐启动或3) 有时、它是相位对齐的、在某些重新启动后、它不是相位对齐的。 目前、每当我们有一个属于案例2或3的 DSP 构建时、我们都会调整 McASP 和 ADC 启动序列中的任务延迟值、以使相位对齐恢复到案例1、这是一个有点任意的过程、而不是一个非常有条理的过程。 那么、问题就是这样、我们如何在启动时有条不紊地配置 McASP 和 ADC 以确保麦克风数据的相位对齐?
 
此处列出了一些相关的注意事项和观察结果:

a)我们使用具有 DSP BIOS 5.41.10.36的 CCS4.2工具链。
b)所有 ADC 采样都由来自 McASP 的单帧脉冲(@16KHz 速率)控制、因此 ADC 中的瞬时采样数据应该是正确的。
c)我们调用 McASP 串行器、以将每个 TDM 帧的采样数据收集到2ms 缓冲区中、以进行 DSP 处理。
d)我们的 DSP 映像足够大、我们必须将大量代码放入外部 DDR 存储器中、包括一些 DSP BIOS 和 PSP/EDMA 驱动程序。
e)当代码更改与 McASP/ADC 启动过程无关时、仅对 DDR 存储器映射进行简单的重新排列后、我们就遇到了相位对齐中断的情况。 在这些情况下、假设 DDR 页边界或高速缓存行填充过程会影响 McASP 和 ADC 硬件启动序列中的时序、从而导致问题。

底线是在不对 DSP 子系统中的时序有任何此类敏感性的情况下启动 DSP、并确保麦克风/ ADC 数据的相位对齐。 也许我们不知道有刷新/重新同步序列、以确保正确对齐 McASP/串 行器?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Roger、

    我们目前仅支持用于新开发的基于 SYSBIOS 的 Processor SDK RTOS 软件。 DSP BIOS 和 pspdrivers 不再处于活动开发和支持状态。

    对于采用多麦克风设置的 MCASP 设置、我们有一些演示在 C6746上以从模式使用 PCM1864和 MCASP。 应用手册中介绍了设置和代码、如下所示:

    https://www.ti.com/tool/TIDEP-0099

     此致、

    Rahul

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rahul、

    关于 C6746演示、我已经看过、但似乎找不到用于系统启动的源代码。 视频和幻灯片介绍了如何加载.out 文件、因此它可能只是作为可执行文件提供的。 我对启动时设置 ADC 和 McASP 的代码特别感兴趣。 这是在某个地方提供的、还是可以提供?

    谢谢、

    Roger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rahul、

    我可以对这个问题进行重新措辞。 连接到多个 ADC 以确保音频相位对齐时、初始化 C674x McASP 和串行器的建议编程序列是什么? 我们似乎在 C674x 芯片本身中遇到了相位对齐方面的问题、因此能否独立于工具链或 SDK 环境提供建议的启动过程?

    谢谢、

    Roger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    该示例在 适用于 OMAPL137的 Processor SDK RTOS(超集 ARM9+C674x DSP)中以完整源代码提供

    https://software-dl.ti.com/processor-sdk-rtos/esd/docs/06_03_00_106/rtos/index_examples_demos.html#audio-pre-processing-demo