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.

[参考译文] TMDSLCDK6748:6748LCDK 音频处理:McASP 示例处理器 SDK RTOS

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1035279/tmdslcdk6748-6748lcdk-audio-processing-mcasp-example-processor-sdk-rtos

器件型号:TMDSLCDK6748

您好!

我目前正在处理6748LCDK 板上 RTOS 中提供的 McASP 示例。 我对代码有疑问:

1) 1)是否可以一次只从输入/麦克风端口获取一个样本、立即对其进行处理并将其转发到输出扬声器/音频端口? 如何做到这一点? 目前、代码被设置为将128个样本(总共128*4 = 512字节、因为每个样本是32位字)传入 Rx 缓冲区、并将相同数量的字节写入输出缓冲区。 如何将其更改为每次仅采样一次、即在缓冲器中一次只采样4个字节或32个位?

2) 2)我需要清楚地了解音频任务的控制流程。 我目前的理解是、McASP 从音频编解码器获取样本、并将其写入512字节存储器 Rx 缓冲器。 只有当这个缓冲器被512字节填满时、音频任务才能够处理采样并输出到 TX 缓冲器。 一旦512字节输出缓冲器被填满、McASP 为 TX 缓冲器提供服务并将样本发送到编解码器以将其输出到扬声器。 我不确定这是否正确。 但是、如果确实如此、则意味着必须先填充 Rx 缓冲器、然后才能处理样本、并且必须填充 TX 缓冲器才能输出样本。

现在、当我使用时间戳来确定将输入/ Rx 缓冲器复制到输出/ TX 缓冲器的每个周期所需的时间时、结果是2.73毫秒。 然而、鉴于采样率为44100Hz、128个采样应该至少需要2.9毫秒(128/44100)+一些开销才能将这些采样写入内存。 这里似乎存在差异。 我对事物工作方式的理解是否不正确? 即使在128个样本被写入缓冲存储器之前、Rx 缓冲器也开始被处理吗?

如果有人能为我提供准确的详细信息、那会更好。

谢谢。