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.

[参考译文] LMK04828:器件配置相关问题

Guru**** 2535150 points
Other Parts Discussed in Thread: LMK04828, LMK04821

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/925418/lmk04828-device-configuration-related-questions

器件型号:LMK04828
主题中讨论的其他器件: LMK04821

我们在单环路模式下使用 LMK04828 (禁用 PLL1)。 不使用零延迟特性。 对于某些应用、我们仅使用 DCLK 输出、而对于其他应用、我们也使用 SYSREF 输出。

 我正在编写一个软件驱动程序、支持该器件的多种用例。

 以下所有参考资料均指向 LMK0482x 数据表(SNAS605AS–2013年3月–2020年5月修订)。

 我有以下问题:

与 SYNC/SYSREF 配合使用的寄存器初始化序列:

a) SYSREF_CLR 控制-数据表(在第9.3.2.1.2节中)指出、它在上电时自动置位(我假设在软件复位之后会自动置位)、并且只需要由软件清除。 另一方面、第9.3.2.1.1节中的编程序列包含该位的显式设置。

软件应何时设置和复位 SYSREF_CLR?

注意:在第9.3.2.1.2节中、数据表指示 SYSREF_CLR 必须保持为1至少15个 VCO 周期。 鉴于所有器件的 VCO 频率始终大于2GHz、上述公式转换为7.5ns。 理论上是否可以将 SYSREF_CLR 设置为7.5ns 或更低? 或者、这可能与需要在对 SYSREF_CLR 进行脉冲之前锁定 VCO 相关?

b)第9.3.2.1.1节中指定的编程序列与第9.5.1节中指定的编程序列有何关系?

我假设第9.3.2.1.1节中的序列包含支持 SYSREF 功能所需的步骤、而不是第9.5.1节中指定的基本功能所需的步骤。 但是、两者之间似乎存在一些重叠。 具体而言、它们都包括设置 DCLKoutx_DDLY_CNTH、DCLKoutx_DDLY_CNTL、DCLKoutx_HS、SDCLKoutY_DDLY。 我是否理解、如果使用 SYSREF、这些寄存器需要进行两次编程?

此外、是否有必要在 SYSREF_CLR 保持为1时对 DCLKoutX_DDLY_CNTH、DCLKoutX_DDLY_CNTL、DCLKoutX_HS 和 SDCLKoutY_DDLY 进行编程?

我了解需要对 SYSREF 相关寄存器进行两次编程、以便首先设置手动同步、然后设置所需的 SYSREF 配置、但上述寄存器会怎么样? 它们是否还应进行两次编程?

注意:我找到了以下文档: e2e.ti.com/.../Key-Points-to-setting-up-SYSREF-on-LMK0482x_5F00_e2e_5F00_2016_2D00_06_2D00_29.pdf 、它似乎没有表明需要对 DCLKoutx_DDLY_CNTH、DCLKoutx_DDLY_CNTL、DCLKoutx_HS、SDCLKoutY_DDLY 寄存器进行两次编程、也没有必要在 SYSREF_CLR 保持为1时对它们进行编程。

请提供建议。

2.外部请求时的连续 SYSREF:

a)根据表1、在这种情况下需要将 SYNC_MODE 设置为0。 假设这对应于图13中 SYNC_MODE 多路复用器的最顶端输入。 在这种情况下、SYNC 输入不能以任何方式影响 SYSREF 的生成。 在这种情况下、SYNC_MODE 的设置是否正确?

b)根据第9.3.2.2.3节、在这种情况下不需要为脉冲发生器加电、但在表1中、对于外部 SYSREF 请求案例、它显示"Pulser 加电"。 此外、在 SYSREF_REQ_EN (寄存器0x16a)的说明中、它说在使用此功能时启用脉冲发生器。

哪一项是正确的?

3.我们使用的是单环路模式,因此必须使用表8中定义的设置。 另一方面、为了将 CLKout6路由到 OSCout、我们希望使用 FB 多路复用器。 这是可行的(在单环路模式下)吗? 如果是、我假设为此我们需要将 FB_MUX_EN 设置为1。 我是对的吗?

SDCLK 与 DCLK 同步(数据表第9.3.4节) –假设我们希望同步 SDCLK 和 DCLK、 假设我们希望能够使用 DCLKout 和 SDCLKout 数字延迟值的最大可能范围、在给定方程式1和2的情况下、我似乎应该在所有情况下将全局 SYSREF 延迟(SDCLK_DDLY)设置为可能的最小值。 我是对的吗?

5. PLL2_DLD_COUNT 设置–设置此值时需要考虑哪些注意事项? 我可以安全地使用默认值(8192)吗? 这就是 TICS Pro 所做的工作。

6. PLL2预分频器(PLL2 P):

a)在什么条件下、可以将其设置为除最小值以外的任何值? 有效 N 值大于262143?

b)预分频器可被断电(寄存器0x173中的 PLL2_PD)。 当它断电时、这是否意味着它被旁路(即有效的 PLL2 N 值是 PLL2_N x 1)? 使用 PLL2时、是否可以将其断电?

注:我尝试在 TICS Pro 软件中将其断电,但它似乎没有更改预分频器值和 VCO 频率。

(可能是因为我在计算机上使用的是 TICS Pro 而没有连接到任何硬件?)

7.数据表在许多地方提到了 DAC。 仅为了我的理解、这是什么? 它是指驱动 CPout1引脚的内部 D/A 转换器吗?

谢谢、

贝尼福尔克

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

    您好、贝尼、

    1. (笑声)
      1. 只要 SYSREF 分频器被同步、SYSREF_CLR 应该首先在15个时钟分配路径周期内被置为有效。 POR 和 RESET 会自动将 SYSREF_CLR 置为有效、因此只有在每次 POR /复位必须同步多次的 SYSREF 分频器时、才需要明确地将 SYSREF_CLR 设置为高电平15个时钟分配路径周期。 也就是说、编写一个明确设置 SYSREF_CLR、等待至少15个时钟分配路径周期并将 SYSREF_CLR 置为无效的单个同步过程很容易;并且在 SYSREF_CLR 已设置时(在 POR /复位后可能会发生这种情况)显式设置 SYSREF_CLR 不会受到影响。

        SYSREF_CLR 必须在超过15 个时钟分配路径周期内有效、这些周期可以是 VCO 或 CLKin1上提供的外部时钟/VCO。 如果您的应用使用内部 VCO、您可以写入 SYSREF_CLR=1并立即写入 SYSREF_CLR=0。 但是、如果时钟分配路径由外部馈送、例如1kHz 时钟、则 SYSREF_CLR 必须置位超过15ms。 在大多数情况下,>15时钟分配路径周期要求是三倍满足的。

      2. 9.3.2.1.1中每个到2D 的步骤都可以作为9.5.1中建议的编程序列的一部分执行。 SYNC_POL、SYNC_MODE、SYSREF_MUX、DCLKoutX_DIV、SYSREF_DIV、 SYSREF_PD、SYSREF_DDLY_PD、DCLKoutX_DDLY_CNTL、DCLKoutX_DDLY_CNTH、SYSREF_DDLY、 SDCLKoutY_DDLY、DCLKoutX_HS、SDCLKoutY_HS、DCLKoutX_MUX 和所有模拟延迟设置只能在9.5.1中的初始编程期间进行一次编程。

        从2e 开始的同步步骤通常在9.5.1完成并且 PLL 被锁定后执行。 因此、有些寄存器会被写入两次:SYNC_POL、用于切换同步输入状态; SYNC_DISx、用于关闭同步事件、以便 SYSREF 分频器输出不会复位器件时钟或 SYSREF 分频器(或在后续同步事件中、允许同步事件复位这些分频器); SYSREF_CLR、专门用于在 SYSREF 分频器同步时将 SYSREF_DDLY 计数器重置为0;SYNC_MODE 和 SYSREF_MUX、用于选择同步源或将 SYSREF 输出重新路由至 SDCLKoutY 输出。

        SYSREF_CLR 仅连接到 SYSREF_DDLY、SYSREF_PD 和 SYSREF_DDLY_PD。 只要 SYSREF_PD=0且 SYSREF_DDLY_PD=0、就可以随时对 SYSREF_CLR 状态进行编程(同步事件之后的 SYSREF_DDLY 时钟周期除外)。 DCLKoutX_DDLY_CNTH/CNTL、DCLKoutX_HS 和 SDCLKoutY_DDLY 都可以在任何时间写入、而不受 SYSREF_CLR 状态的影响。

    2. (笑声)
      1. 设置 SYSREF_REQ_EN=1将 SYNC 引脚连接到 SYSREF_MUX、覆盖当前状态并同步将 SYSREF_MUX 置于状态0x3 (连续模式)。 设置 SYNC_MODE=0只能确保 SYNC 引脚不会生成同步事件或在发生这种情况时触发 SYSREF 脉冲器、因此 SYNC_MODE=0是正确的。

      2. 脉冲发生器无需通电。 SYSREF_MUX 应从任何状态切换至连续模式、包括0x2 (脉冲发生器模式)-即使在 SYSREF 脉冲发生器断电时也是如此。 因此、您应该能够关闭脉冲发生器并使 SYSREF_MUX 处于除0x3之外的任何状态。

    3. 您可以启用反馈多路复用器并将 CLKout6路由到 OSCout - FB_MUX_EN 应设置为1、OSCout_MUX 应设置为反馈多路复用器输出。 只要 PLL2_NCLK_MUX 选择 N 预分频器反馈、PLL 将继续正常运行(单环路、无零延迟)。  

    4. 全局 SYSREF 数字延迟为 SYSREF_DDLY;本地 SYSREF 数字延迟为 SDCLKoutY_DDLY。 在许多情况下、全局 SYSREF_DDLY 可以毫无问题地设置为最小值(8)、并且可以使用本地 SDCLKoutY_DDLY 执行所有器件时钟到 SYSREF 的对齐。 有时会出现器件时钟频率特别低的情况、例如在12.288MHz 下使用 LMK04821 (在 VCO1上具有额外 ­÷8预分频器的相同器件)... 在这种情况下、要将 SYSREF 与器件时钟下降沿对齐、需要更大的全局 SYSREF_DDLY。 否则、最大可用范围取决于所有其他器件时钟数字延迟设置、并且全局 SYSREF_DDLY 应设置为 SDCLKoutY_DDLY = 0x1 (2个周期)对应于调整范围的"底部"-我认为这与您的"最小可能值"相同。

      快速说明、数据表的最新修订版本(2020年5月、SNAS605AS)在9.3.4中有一个拼写错误、公式2 DCLKoutX_MUX_ADJUS_ADJUST 应为:
      如果(禁用占空比校正)或0、DCLKoutX_MUX_ADJUST_ADJUST = 1

    5. 有关 PLL2_WND_SIZE 和 PLL2_DLD_CNT 设置的详细说明、请参阅数据表第10.2节。 实际上、更大的 PLL2_DLD_CNT 会导致更高的 PPM 锁定检测精度、但测量时间更长(相位检测器时钟周期更多)。

    6. (笑声)
      1. 一个很好的示例是除法是奇数。 除非 PLL2预分频器被设定为3、否则27分频不能被实现;除非 PLL2预分频器被设定为5、否则25分频不能被实现。

      2. 将预分频器断电会禁用预分频器输出、并且不是一个旁路选项。 如果 PLL 使用预分频器反馈路径、则预分频器无法断电。 在 VCO 校准后、预分频器断电仅在零延迟模式下才有意义。 如下所示:
        1. 按照9.5.1的编程顺序、设置 PLL2_PRE_PD=0和 PLL2_N_CAL、以便 PLL 可以使用预分频器路径锁定。
        2. 当 PLL N 分频器被写入时、VCO 将校准(以消除温度影响)、替换 PLL2_N_CAL 的值并使用预分频器反馈路径。
        3. 校准后、PLL2_NCLK_MUX 切换回反馈多路复用器路径、N 分频器返回到 PLL2_N 中的编程值
        4. 只要不需要重新校准 VCO (频率无变化、允许的温度范围外无偏移)、就可以将 PLL2_PRE_PD 设置为1以实现额外的节能效果。

    7. 通常、CPout1由相位检测器和电荷泵驱动。 在保持模式下、相位检测器的输出无效、因此电荷泵为三态、CPout1电压由10位 DAC 设置。 这样、即使时钟输入由于某种原因而丢失、DAC 也可以设置输出电压来控制 PLL1 VCXO 的调谐引脚、防止 VCXO 崩溃进入其中一个电源轨并使 PLL2降低频率。 还有一个基本的采样和比较环路、可跟踪 CPout1电压、从而在 PLL1锁定时自动将 DAC 值更新为最接近的阶跃值。 用户可以根据该温度下 VCXO 的已知值或某些外部 PPM 补偿/时间戳方案手动设置 DAC 值;或者、用户可以设置 TRACK_EN=1、DAC 值将近似于切换至保持模式之前采样的实际 CPout1值。

    此致、

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

    Derek、

    非常感谢您提供了极其快速和详细的答案。 您的支持非常出色。

    此致、

    贝尼福尔克