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.

[参考译文] CC1310:CC1310上的 PDM 实现

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/918187/cc1310-pdm-implementation-on-cc1310

器件型号:CC1310
主题中讨论的其他器件:CC1350STK

大家好、

客户希望使用 CC1310实施 PDM 集合。 他参考 了 CC1350STK 的示例"pdmstream"、将 PDM 数据转换为 PCM、并生成了 WAV 音频。 他遇到了以下问题:

1.大声说话时,声音很响。 将 默认 FilterGain 从 12dB 修改 为 0dB 可以稍微缓解这个问题,但不能解决。

2.无论是否有背景噪声。将 PDM 采样率从 16K 修改为8K 会降低采样率。

如何优化这两个问题? 谢谢。

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

    尊敬的 Viki:

    所描述的两个问题似乎是由于麦克风本身、而不是真正的软件。 话虽如此、以下两个想法:

    1-您是否尝试进一步降低默认 FilterGain? 由符号 PDMCC26XX_GAIN_12和 PDMCC26XX_GAIN_0保持的值可被42 (增益为-3dB)甚至21 (增益为-6dB)所替代。  

    2 -麦克风似乎引入了一些噪声。 要验证这一点、您可以通过移除 PDM 麦克风并将数据线保持为0来验证您是否仍有此噪声。 如果这样可以消除噪音,则可能需要对麦克风进行一些优化(我听说有一些嘈杂的电源线,但我不是硬件专家)。
    也可以对 PCM 数据进行滤波、以消除噪声。

    我希望这将有所帮助、

    此致、

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

     您好、Cl é ment、

    MIC 问题已得到解决。 还有另一个。

    通过 I2S[CC1310]播放的语音极有问题。 但在 STM32F4中、声音正常。 客户用逻辑分析仪捕获时钟、发现 CC1310的 MCLK 和 STM32不同- STM32为 2048K、CC1310为2047K。 如何调整 CC1310的 MCLK 以输出2048K?

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

     您好、Cl é ment、

    使用的 SDK 为"simplelink_cc13x0_  SDK_ 3_10_  00_11" ;

    项目计划使用两个 cc1310板、板 A 作为发送板。 主要工作包括收集 PDM 数据并将其转换为 PCM、通过 IIC 与触摸芯片通信以及控制触摸按钮、控制电源管理芯片、通过 RF 将音频数据发送到另一个电路板 B; 另一个板 B 作为接收板、其主要工作是接收板 A 的射频数据、并通过 IIS 将接收到的数据发送到 wm8978;

    目前,我们面临以下两个问题,实验如下:

    问题1:

    1) 1).PDM 的数据由 cc1310的8K 采样记录收集、数据转换为 PCM 格式数据。 STM32或 PC 可以正常播放 PCM 数据、这表明8K 采集和转换的 cc1310代码正常;

    2) 2) STM32中的相同数据播放正常、但 cc1310上通过 IIS 播放的声音会破解语音。 已找到破解语音的原因。 原因是来自 cc1310的 IIS 的数据是右对齐或左对齐的、而来自 STM32 IIS 的数据是标准的一位延迟、即、将会有一个位右移位;

    问题2:

    1) 1)当我们将 cc1310的参数更改为16K 采样时、通过 RF 传输的声音将具有微弱的嘶声(实时)。

    2) 2)在 STM32上、16K 采样获得的数据如图 CC1310的值如图1所示。 从图中可以看出、STM32收集的16K 数据非常规律、而 cc1310的数据找不到规则(此处的规则是奇数列数据都是大小类似的数字、变化很小)。

    3) 3) STM32上以16K 采样记录的语音将保存到 cc1310的存储器中。 如果使用 cc1310进行播放、则不会发出嘶嘶声、并且安装和回放速度正常(非实时)。 如果通过计算机播放 cc1310记录的16K 语音数据,则安装和回放速度将会变得更快和更高(非实时); 如果数据保存到 cc1310的内存并通过 IIS 播放,速度和安装速度也将变得更快和更高(非实时)。

    4)实验现象分析和推测结论如下:cc1310的回放速率与数据采集速率不匹配、回放速率高于采集速率。 从而导致:

        1) 1)在实时射频回放期间、发送板无法向接收板提供足够的数据、从而导致"丢包"。 此处的数据包丢失不是指射频数据包丢失、而是指类似的数据包丢失现象。

        2) 2)在非实时回放期间、由于数据太少、回放音和回放速度变得越来越快。     

    将问题1和问题2的两个实验结果相结合,我们认为有两个问题:

    1. cc1310的破解问题要求将 IIS 中的数据向右移动一位;
    2. cc1310在16K 采样方面有问题、无法提供足够的数据速率、8K 采样正常;
    3. 根据 PDMCC26XX.h(C:\ti\simplelink_cc13x0_sdk_3_10_00_11\source\ti\drivers\PDM)中的注释、第二个问题可能是由于某些数据被丢弃。然而、修改描述中的变量"pdmBufferQueueDepth"不起作用。

    正在等待您的帮助。

    此致。

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

    问题1已修复。

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

    您好!

    因为我已经离开办公室一段时间了、我是否可以要求您总结尚未解决的问题?

    此致、

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

     您好、Cl é ment、

        感谢你的答复。

        您公司的 FAE 将于本周三来到我们公司寻求支持、如果 我们仍然无法解决这些问题、我将向您提供反馈。

        此致、  

        -Maokun.Liang