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.

[参考译文] PCM5142:自动发布?数据被定期强制为0

Guru**** 2481035 points
Other Parts Discussed in Thread: PCM5142

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/829511/pcm5142-automute-issue-data-forced-to-0-periodically

器件型号:PCM5142

大家好、我叫 Pierre。

在我的项目中、我将使用 PCM5142来生成低振幅信号(mV 至 µV μ V 缩放)。 DAC 连接到 STM32 MCU。 MCU 为 DAC 提供所有 I2S 时钟(因此没有 PLL)。 时钟 设置为:
  

LRCK 16kHz
1024 kHz
SCK 4096 kHz


在示波器和逻辑分析仪上检查时,我发现 I2S 帧正常:频率有效,数据被发送到 DAC。

我的代码包括从 SD 卡读取数据、将其存储在缓冲区中、然后连续发送到 DAC。 DAC 以16KHz 运行、我要读取的数据长16000点(1s 周期)、存储在16位中。 我的 DAC 配置如下:

寄存器 原因  
4. 0 无需 PLL、系统时钟由 MCU 提供
14. 0x30 系统时钟是 DAC 源
40 0x00 数据宽度为16位
43. 0x07 无去加重功能的低延迟滤波器
59. 0x77 不需要自动、因此为两个通道设置最长延迟
8. 0x0C GPIO 使能
82. 0x04 在 GPIO3上查找左通道的自动静音标志
83. 0x05 在 GPIO4上查找右通道的自动静音标志
65 0x04 禁用自动静音

在 MCU 中运行的代码非常值得:


有时 DAC 的输出信号是可以的:这是它看起来的样子: (很抱歉,我只有旧的模拟示波器,所以它从我的手机上发出)


但是,每次启动时,32秒后输出波形都会发生变化,并“强制为0 /静音”随机延迟(最多1个周期)。我拍了一些照片,但这里的延迟各不一样,下面是几个示例:

(时间已静音:65

(静音时间为220ms)


有时我在启动时看到"截断信号"、它变为另一个截断波形("平坦度"的不同延迟)、甚至整个波形也被截断(0V 输出)。
我打赌的是一个自动静音问题,因为这种现象每32秒出现一次(根据8.3.2.3:数据表中的零数据检测,自动静音的预期延迟为16 kHz),但我可能是错的。 当在 GPIO 上寻找自动静音标志时、我看不到任何东西(始终为0V)。当信号"平坦"时、我还尝试将信号移动1V、以查看输出是1V 还是0V。平坦时的输出值是1V、因此它可能不是自动静音问题。

对问题根源有什么看法? 它是不是错误的 DAC 配置吗? MCU 的软件问题?

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


    这篇文章的原因:我在前一篇文章上的一些照片没有显示。 第一张图片是我的预期波形:

    这些图片是截断/平坦信号的其他示例,具有不同的延迟:

     (650ms)

     (约200ms)

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

    您好、Pierre、

    我怀疑这实际上是一个时钟同步问题。  所有时钟是否都来自相同的时钟源? 时钟分频器是否准确? 时钟路由是否干净?

    谢谢、
    Paul