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.

[参考译文] TLV320ADC6140:FSYNC/BCLK 边沿时序

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1275695/tlv320adc6140-fsync-bclk-edges-timings

器件型号:TLV320ADC6140

您好!
我正在以连接到 STM32处理器的从模式使用 TLC320ADC6140。 TDM 模式、2个32位时隙、无 TX 偏移、FS、BCLK 的默认极性。 FSYNC 速率48kHz 和 BCLK 3.08MHz。
首先、测试效果很好、结果符合预期。

在示波器屏幕上、我们可以看到 FSYNC 在 BLCK 边沿后约15ns 上升。 我们可以在屏幕上看到、TLV 开始在 BCLK 边沿上将其输出更新为0 (void fill)、 但15ns 后、当 DOUT 信号仍下降为0时、会出现 FSYNC 边沿、输出立即更新为时隙0的 MSB 值。
蓝色= FSYNC、绿色= BCLK、红色= SDOUT。

我们可以阅读第8.3.1.2.1节:
"在 TDM 模式、也称为 DSP 模式中、FSYNC 的上升沿首先从时隙0数据开始数据传输。 {...} FSYNC 和每个数据位(TX_OFFSET 等于0时、时隙0的 MSB 除外)在 BCLK 的上升沿发送"
说明 SDOUT 信号在 BCLK 的上升沿更新、时隙0的 MSB 除外、但没有更多说明。 FSYNC 的上升沿似乎覆盖了 BLCK 边沿并强制 SDOUT 更新、我说得对吗?

但我不确定 FSYNC / BCLK 边沿计时的裕度。 TLC 数据表未提供很多同步记录、仅提供了当 BCLK_POL = 1时 TDM 模式的时钟、不知道如何在 BCLK_POL  = 0时将其与 FSYNC 边沿相关联。
如果 FSYNC 边沿在 BLCK 边沿之后过早 出现或在 BLCK 边沿之前出现(设备或布局容差),会发生什么情况? 是否有释放时隙0的 MSB 的风险(它将在 FSYNC 边沿上传输、但在下一个 BLCK 边沿上被下一个数据位取代)?
如果我在 FSYNC 上添加一个较小的 RC 以确保 BCLK 上升和 FSYNC 上升之间的最小延迟(每条线路上已经有100R+22pF 的延迟),我是否应该处于一个更安全的条件?

谢谢!
奥勒良

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

    首先,我建议尝试通过在 BCLK DOUT 和 FSYNC 上放置一个22欧姆的串联电阻进行所有测量。 不需要电容

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

    您好!

    我不知道更换所有线路上的电阻器会获得什么样的信息。 这只会产生更快的斜率、但时序是相同的(我们看到 FSYNC 在 BCLK 边沿后~15ns 内被驱动)。

    我只需要了解在 ADC 中是如何处理边沿的、如果两个边沿之间的延迟较小、或者即使边沿顺序反转、会发生什么情况。

    奥勒良

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

    数据表 指定了一个时间 td (Fsync)  

    虽然此规格用于主模式、但也可用于 Salve 模式。 您的系统是否有可能进入 BCLKPOL = 1。 它使用 BCLK 的下降沿来获取数据。 如果这样做、BCLK 的开关边沿会与 FSYNC 的上升边沿分离。

    此外、我们通常建议在数字输出源附近使用22 Ω 串联电阻。 通常不使用电容器。

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

    您好!
    我不确定切换到 BCLK_POL = 1会有所帮助、因为它只是反转时钟、但我有关于 BCLK 上升沿和 FSYNC 上升沿的问题、BCLK_POL = 0 (数据在 SDOUT 上 BCLK 上升沿和 FSYNC 上升沿进行更新)、 将与 BCLK 下降沿和 FSYNC 上升沿完全相同(数据将在 BCLK 下降沿和 FSYNC 上升沿更新)、如图26所示。

    我简单介绍了将数据表的时序与最小/最大值相合并的情况。 由于图示中选择的 BCLK 和 FSYNC 极性差异、因此一目了然地比较两个时序并不容易。


    下面是在 Rs=22R 的条件下对所有线路测量的一些信号测量值、并且示波器上没有 BW 限制。

    全视图:

    帧中间的 BCLK 到 SDOUT:  

    FSYNC 到 SDOUT 不会滑动:  

    由于上一个 BCLK 边沿, FSYNC 到 SDOUT 的滑动:  

    您确认一切正常吗?

    谢谢!

    奥勒良

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

    我在这里推测:可能不正确

    在来自 MSB 的 FSYNC 上升沿的8ns (TSU FSYNC)之后启用数据。

    在我看来、该帧中 BCLK 的最后一个上升沿写入了一个0。 在 FSYNC 上升沿后约8ns 时、MSB 会替换此位。 此处的风险可能是帧的最后一个位可能会存在很短的时间供 SOC 读取。

    有一个名为 TX_Edge 的 I2C 位、

    该位上的1应将数据锁存移至 BCLK 的下降沿。 我认为数据输出应出现在红色箭头所示的点。这将为帧上的最后一个数据提供一个相当长的时间。

    也许可以尝试切换此位。

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

    你好
    我认为对这种干扰存在误解。
    我捕获了一个完整的帧、抱歉分辨率、它的范围、但它足以让我理解整个画面。

    SDOUT 数据在 FSYNC 的上升沿以第一个时隙的 MSB 更新
    2。下一位在下一个 SCLK 边沿更新
    3.这是使用第二个插槽的 LSB 来更新 SDOUT 的 SCLK 边沿
    4.此 SCLK 边沿使用"0"更新输出、而且在这里发送的始终是"0"、它不是数据位、它是"0"位、因为我配置 ADC 在 SDOUT 上强制为0 (而不是 Hi-Z)时超出时钟周期。
    5.我的 MCU 接口在 SCLK 的下降沿采样数据(我在箭头的位置出错,它指向上升沿,而我在这里谈论下降沿!)
    6.我们可以看到在 FSYNC 上升前的 SCLK 上升沿的滑移、并使用第一个时隙的 MSB 触发 SDOUT 的更新。 干扰始终处于0电平、如第4点所述

    这样、我不会丢失任何数据、而且我的 MCU 界面无法看到干扰...

    奥勒良

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

    由于您的 MCU 在 BCLK 的下降沿捕获数据、因此您应该没有问题。