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.

[参考译文] LMX2594:使用mash_seed减少运行中的输出相位

Guru**** 2553260 points
Other Parts Discussed in Thread: LMX2594

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/662727/lmx2594-decrementing-the-output-phase-on-the-fly-using-mash_seed

部件号:LMX2594

你好。  

我正在使用mash_seed寄存器调整LMX2594设备的输出相位。  

数据表指出"每次对mash_seed字段进行编程时,它都会将此mash种子添加到现有的mash种子"。 所以我可以通过连续将1写入mash_seed寄存器来逐步前进。

在我的应用程序中,我想动态平稳地调整输出相位。  为此,是否有方法减少mash_seed?  是否可以将2的补码-1写入mash_seed寄存器以调整另一方向的相位?

我希望能够使用输出上的最小"故障"来增加和减少LMX2594的输出相位。  我认为我不能编写mash_seed和切换mash_reset_N,因为我认为这将"干扰"输出阶段。  

感谢你的帮助。  

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

    经过进一步调查,这似乎是由于芯片内的mash_seed加法器溢出而造成的。

    例如,如果我没有通道划分或包括通道划分,我的输出相位为:

    相位= 360/FRAC_DENOM。

    因此,如果FRAC_DENOM为127,0度为mash_seed =0360度为mash_seed =127。

    例如,如果我当前的mash_seed为126,而我想回到mash_seed为1,那么我需要将内部mash_seed值增加到128。 我可以通过将mash_seed编程为2来实现此目的,这将使mod(126+2127)=1。

    TI是否能够确认支持此方法?   我不知道芯片工作原理的细节,但这种方法似乎没有任何问题。  

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

    是的,支持此操作。

    具体来说,mash_seed是累积的。  如果从初始状态对mash_seed=1进行编程,则状态为1。  但如果您再次对mash_seed=1进行编程,则您得到mash_seed=1+1=2 ,这是设计中有意使用的。  现在,如果您切换mash_RST_N,它将重置为1状态。

    在表27中,在mash_seed描述下,它说明:

    第一个蓄能器的土豆泥发动机的初始状态。 可以

    用于移动相位或优化分数spurs。 每次

    mash_seed字段已编程,它将此mash seed添加到

    现有的一个。 要重置它,请使用mash_reset_N位。

    此致,

    Dean

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

    您好,Dean。

    感谢您提供信息。

    不幸的是,我不想使用mash_reset_N,因为这(和编程)将导致相位的大跳和输出出现故障。

    例如,假设我位于mash_seed 50,并想转到45,假设PLL_den = 127,PLL_NUM = 0。

    如果我遵循您建议的方法:

    1)我将mash_seed编程为45。
    2) LMX2594内置土豆泥种子从45跳至95 (50 + 45)。 (输出相位的大幅跳跃)
    3)我使用mash_reset_N,mash种子从95变为45 (再次在输出相位中跳大)。

    我感兴趣的是,是否可以通过以下方式在不使用mash_reset_N的情况下执行相同操作:

    1)我将mash_seed编程为122。 这将当前种子50的值相加122 = 172。mod(17.2127万)为45,这是我所需的mash种子值。 不会出现(希望)相位中的大跳跃。

    我对TI是否支持此操作模式感兴趣。 我没有违反PLL_DEN > PLL_NUM + MUS_SEED,AS 127 > 0 + 122。

    感谢你的帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    假设累加器状态为50,并且要转到55状态。 然后,您只需要程序mash_seed=5而不重置,即可完成此操作。

    假设您处于50状态,并且您对127的mash_seed进行了编程而不进行重置。 由于这是一个完整的时期,我预计也将进入同样的阶段。

    现在,假设累加器状态为50,而您要转到状态45。 不能对负值进行编程,如果在122中编程,则理论上(50+122) mod 127 = 45,则应得到结果45。

    是的,这应该是有效的。

    如果您使用的是我们的TICSPro软件,您可以对mash_seed进行编程并将光标放在框中。 然后,您只需按Enter即可看到阶段前进。

    此致,
    Dean
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢Dean。 感谢您确认该方法有效且我的理解正确。 如果我看到任何奇怪的行为,我会告诉你。