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.

[参考译文] LMK04832-SP:SPI 三线制时序-在 CS&#39之前/之后的读取模式中 SDIO 三态;变为高电平

Guru**** 2553450 points
Other Parts Discussed in Thread: LMK04832-SP

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1051360/lmk04832-sp-spi-3-wire-timing---sdio-tristated-in-read-mode-before-after-cs-goes-high

器件型号:LMK04832-SP

大家好、

我对  LMK04832-SP 的 SPI-IF 有3个问题:

1) 1)数据表"SNAS698B–2020年5月–2020年12月修订版"未提及 在 CS 变为高电平之前/之后 SDIO 的读取模式下的任何时序参数。
或者换句话说:在与 CS*上升沿(在 CS*变为高电平之前或之后)相关的读取模式(从 OUT 切换到 IN)中,SDIO 何时会变为三态?  
“CS*变为高电平时 SDIO-tristate”是否有专用的时序参数?

2) 2)这可能是本论坛中已经提出的问题:"tdv"的最短时间是多少(最大120ns)。 我假设"tdv"的最短时间为0ns?

3) 3)在读取模式下: LMK04832-SP 何时将 SDIO 线路从 IN 切换到 OUT?
我假设它将恰好在下降沿之后、在 SDIO 上放置"D7"(假设 tdv_min = 0ns)?

提前非常感谢!
此致
Bdo Rauhut

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

    BBodo、

    1. 我们没有在数据表中指定 SDIO->tristate 时序,但将其视为等于 tDV:从 CS*变为高电平到 SDIO 三态的最大值为120ns。 实际上、有一个未公开的 SPI 流功能、它允许我们在最初的24位事务之后继续发送时钟、LMK04832-SP 将开始输出下一个寄存器数据(即时钟上升沿25从 R0[0]转到 R1[7])。 由于我们可以保留流式传输寄存器,因此在时钟周期触发器上对输出进行三态是没有意义的;它完全基于 CS*变为高电平。
    2. 理论上、最小 tdV 为0ns…… 实际上、通过触发器和逻辑的最小延迟通常约为10-20ns。
      1. "这需要很长时间才能通过一些逻辑门"、您可能会想到、您是正确的... 但这是 LMK04832-SP、它使用抗闩锁的数字电路、因此底层电路要大得多且慢得多。 相比之下、商用器件通常远小于10ns。
    3. SDIO 在地址[0]和数据[7]之间的下降时钟边沿上从输入切换到输出、这与您描述的时刻相同。 同样、假设最小 tDV 实际上是10-20ns。

    如果不清楚、您实际上可以禁用3线 SPI 模式、并使用4线通信(如果您的系统更容易)。 R0中的 SPI_3Wire_DIS 位控制 SDIO 是否在读取事务期间切换到输出;同时、STATUS_LDx、RESET 或 CLKIN_SELx 等 GPIO 可切换到4线模式、通过单个寄存器写入可将 CLKIN_SELx_TYPE 切换到输出、并将 CLKIN_SELx_MUX 切换回 SPI 读回。

    此致、

    Derek Payne

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

    尊敬的  Derek:

    非常感谢您的回答!
    我对您的回答有两个答复:

    1) 1)如何激活此"未披露的 SPI 流功能"?
    在 正常功能运行条件下激活此 SPI 流功能是否存在"风险"?

    2) "tDV = 120ns 最大值、从 CS*变为高电平到 SDIO 三态"
    -->换句话说, 在我再次激活 SDIO 的输出功能(从 下一个 SPI 周期开始)之前,我必须至少等待 tDV = 120ns
    -->这也会影响 CS*=高电平的最短时间  
    -->在这种情况下 ,CS*=高电平的最短时间也是 tDV = 120ns
    -->这是正确的,还是有另一个(定时)要求,要求 CS*=高电平的时间比 tDV = 120ns 长?

    提前感谢您的回答!
    此致
    BBodo

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

    BBodo、

    1. 从技术上讲、SPI 流功能始终处于开启状态。 R0寄存器中有两个影响 SPI 流的位:R0[2]控制地址增量(1)还是递减(0);R0[3]防止地址在置位时自动递增或递减、与 R0[2]状态无关。 如果您按照数据表中的建议、一次使用一个24位的 SPI 总线事务、 然后、此 SPI 流功能完全透明、您在实践中永远不会看到它、因为您将始终手动配置要写入的寄存器地址、并且永远不会自动转到后续寄存器。 我可能预见的唯一"风险"是、如果您在 SPI 事务期间以某种方式写入/读取一个额外的字节、在这种情况下、默认情况下、您将向默认情况下较低的寄存器一个地址写入/读取最后一个字节。 我以前有一些客户由于其总线控制器上的外设限制而无法为24位写入/读取配置 SPI、但他们可以使用32位 SPI; 为了避免32位写入/读取错误、他们需要意识到这种行为、以正确处理最终字节。 如果您可以为24位事务配置控制器的 SPI 外设、则可以忽略此边沿情况。
    2. 推理正确,最小 CS*高电平时间是 SDIO 周转时间的结果,为120ns。

    此致、

    Derek Payne

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

    尊敬的 Derek:

    非常感谢您的回答!
    我对您的最后一个答案有两个答复:

    1) 1)"SDIO 在地址[0]和数据[7]之间的下降时钟边沿上从输入切换到输出、"
      ->问题:在我的应用(FPGA)中、我想从切换 SDIO 引脚
         在 地址[0]和数据[7]之间的下降时钟边沿向 IN 发送数据、
         您认为这是否足以避免 SDIO 上的任何总线冲突、
         还是应更早地从 OUT 切换到 IN?
    2) 2)是否有任何具有相同3线 SPI-IF 的"器件兼容"商用器件(可能也带有 EVAL 板)?
         (对于此 "器件兼容"器件、实际上并不需要 JESD-204B)

    提前感谢您的回答!
    此致
    BBodo

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

    BBodo、

    1. 在地址[0]和数据[7]之间的下降沿右侧在 FPGA 上切换 SDIO 应该是可以的、前提是 FPGA 能够在远小于120ns 的时间内将总线翻转过来(我想说如果可能的话、速度会更快)。 如果 FPGA 总线周转时间更长、您还可以包含一个串联电阻器来限制流入或流出 I/O 的电流。 最大总线速度仅为2.5MHz、因此即使使用可能大于所需的1kΩ Ω 电阻器和100pF 负载、信号在2.5MHz 时仍然相当平方。
    2. 我不确定我是否理解您对这个问题的理解。 您是否在询问可用作此类3线接口的 SPI 控制器的器件? 我希望可以通过将控制器的 SDI/SDO 连接在一起并使用开漏接口(LMK04832-SP 也支持开漏接口、包括3线模式)来解决这一问题。 如果控制器可以在下降沿触发器上对其自己的输出引脚进行三态处理、即使是推挽 I/O 级也可以让控制器连接 SDI/SDO 线路。 我不知道有什么专门支持3线 SPI 的控制器;实际上、在开发商业器件时、特定客户要求使用此功能来减少他们自己系统中的 I/O 布线、他们还使用 FPGA 来管理 SPI 接口。 由于(正如我前面提到的)经典4线模式可通过单个寄存器写入来启用、因此从设计角度而言、保持航天级器件中的3线功能被认为是最少的工作。

    此致、

    Derek Payne