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.

[参考译文] LMX2592:SPI上的多个LMX2592 PLL未被连接

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

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/654132/lmx2592-multiple-lmx2592-pll-over-spi-not-getting-confugred

部件号:LMX2592

您好,

我们在 定制硬件中使用PIC18F85K22微控制器。四个LMX2592通过SPI与微控制器通信。

当我们只配置一个PLL时,它将在特定所需频率上锁定。

但当我们尝试配置两个PLL时,将出现不一致(仅配置PLL)。

因此,请帮助我们找出根本原因。

SPI配置:

SSP1BUF = 0;
PLL1_50MHz_LE_SET_Direction=输出;
PLL2_540MHZ_LE_SET_Direction=输出;
PLL3_2700MHZ_LE_SET_Direction=输出;
PLL4_3300MHZ_LE_SET_Direction=输出;
PLL_SDO_SET_Direction=输出;
PLL_SCK_SET_Direction=输出;

SPI1_ENable_PIN =禁用;//禁用SPI端口
SSP1STATbits.smp = 0;
SPI1_RX_TX_buffer =清除;//清除SPI缓冲区
SPI1_INTERRUL_FLAG =清除;//清除中断标志
SPI1_INTERRUL_ENable_bit =禁用;//禁用中断
SPI1_CLOCK_SELECT_BIT = TX_CLOCK_Changes_IDLE_to_ACTIVE;
SPI1_CLOCK_POLICATY_BIT = CLOCK_POLICATY_IDLE_STE_LOW;
SSP1CON1bits.WCOL=0;
SSP1CON1bits.SSPM3 = 0;
SSP1CON1bits.SSPM2 = 0;
SSP1CON1bits.SSPM1 = 0;
SSP1CON1bits.SSPM0 = 0;//对于SCLK = fosc/4
SPI1_INTERRUL_ENable_bit =启用;//启用中断
SPI1_ENable_PIN =启用;

此致,

Biswajit

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

    如何从微控制器路由4个LMX2592中的每一个。 是否有开关可使一次只编程一个LMX2592?

    此致,

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

    我们不是使用开关一次编程一个PLL。由于4个PLL通过 SPI线路与微控制器连接。要一次编程一个PLL,我们使用SPI从属选择引脚。

    步骤:

    1.将PLL1 (LATCH ENABLE)的SLAVE_SELECT_PIN设置为RESET,然后配置PLL1

    PLL1=SET的slaver_select_PIN  

    3.将PLL2的SLAVER_SELECT_PIN设置为RESET,然后配置PLL2

    PLL2=SET的SLAVE_SELECT_PIN  

    此致,

    Biswajit

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

    如果要同时将所有PLL编程为相同的设置,则可以将所有SPI接口连接在一起。 只是为了确保SPI驱动程序具有足够的强度,以便信号完整性不会降低。

    如果每个PLL的设置不同,则可以将所有SCK和SDI引脚连接在一起,但必须将CSB引脚分开。 例如,当您对PLL1编程时,PLL2,3和4的CSB引脚必须为拉高。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,

    非常感谢您的回复。

    我已按照您的建议执行了此操作。例如,将其他PLL的CSB PIN设置为"高",而这些PLL没有进行配置。

    但 问题仍然存在。

    我将再提出一个意见:

    故障案例:

    伪代码:

    主要()

    PLL2_540MHZ_LE=设置;
    PLL3_2700MHZ_LE=SET;
    PLL4_3300MHZ_LE=SET;

    PLL_1_50MHz_Configuration();

    PLL1_50MHz_LE=设置;
    PLL3_2700MHZ_LE=SET;
    PLL4_3300MHZ_LE=SET;

    PLL_2_540MHZ_Configuration();

    }

    如果我尝试按 上述方式配置50MHz PLL1,然后配置54MHz PLL2,则其中一个PLL将获得配置,但不能同时获得两者。

    成功案例:

    主要()

    PLL1_50MHz_LE=设置;
    PLL3_2700MHZ_LE=SET;
    PLL4_3300MHZ_LE=SET;

    PLL_2_540MHZ_Configuration();

    PLL2_540MHZ_LE=设置;  
    PLL3_2700MHZ_LE=SET;
    PLL4_3300MHZ_LE=SET;

    |

    如果我将配置540MHZ PLL2,然后配置50MHz PLL1,则两个PLL都将锁定在所需的频率。

    请告诉我这种情况的根本原因。

    此致,

    Biswajit

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

    在故障情况下,PLL1是否已锁定? 编程PLL2后,哪个PLL未锁定?
    您是否可以对此问题进行更详细的调试,例如使用范围来监视SPI活动;降低SPI速率;或者在配置第二个PLL时,逐个写入每个寄存器并观察第一个PLL的响应。 我需要更多信息才能找出根本原因。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Noel,
    非常感谢您的意见。因为它的行为不同,所以我几乎没有犯过错误。
    现在所有PLL都以所需的频率锁定。但当我硬重置硬件时,只有一个PLL(3300MHZ)被锁定,其他PLL未被锁定。我需要编程才能锁定。
    请告诉我硬重置时是否需要任何特定的配置或设置。

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

    硬重置的含义是什么? 您是否先将CE拉低,然后再拉高?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Noel,

    我想说,如果我完全关闭主板(没有电源),然后再打开主板,只有一个PLL被锁定。

    要锁定其它PLL,我需要再次加载并运行 程序。

    此致,

    Biswajit

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

    哪个PLL被锁定? 最后编程的PLL?
    接通电源后,在编程前,确保Vcc (PLL的参考时钟)正常工作且稳定。