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.

[参考译文] LMK05318B:DLL 未锁定

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1314253/lmk05318b-dll-not-locking

器件型号:LMK05318B

您好!

请参阅我之前的相关帖子、该帖子已关闭、但未提供答案。

我正在尝试使用 DLL 将 PLL1锁定到 PRIREF 或 SECREF 上的外部基准。

上一篇文章,我尝试了一个正弦10MHz 在 PRIREF 上,DLL 似乎锁定有时,但不在稳定的方式。

我发送了寄存器转储以供 TI 审核。

鉴于有人担心正弦波的上升时间过长、现在我还要尝试将 LVDS 10MHz 信号连接到 SECREF。

I 已将 SECREF 输入配置为交流耦合、50mV 迟滞。

我为寄存器 R48 (STAT0_SEL = SECREF 监视分频器输出、DIV-2")选择了值0E 以监视在 SECREF 处实际接收到的内容。
STAT0上没有波形、这意味着没有接收到信号?

请注意 SECREF_VALSTAT = 1、但是 DLL 不锁定。  

LVDS 输入的正确配置是什么?

谢谢

安德烈亚

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

    尊敬的 Andrea:

    我不知道为什么它关闭了、抱歉!

    1. 您能否共享您的原理图片段?
    2. 您是否正在使用 LMK05318BEVM (TI 评估板)?

    此致、

    珍妮弗

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

    Jennifer、您好!

    很高兴再次见到您。

    e2e.ti.com/.../LMK05318B_5F00_inputs.pdf

    我附上了 LMK05318B 的输入原理图。 根据前面的消息、我们使用的是定制板。

    如您所见、PRIREF 连接到同轴连接器、我们尝试在此处使用正弦10MHz 基准。

    它几乎可以工作,但 DLL 永远不会完全锁定,保持不起作用,因为调谐字永远不会存储。  

    SECREF 连接到 FPGA_REF 差分 LVDS 输出。 这样、我就可以使用 FPGA 生成方波10MHz 信号进行测试。

    我正在尝试使用 STATUS0和 STATUS1引脚来检查是否正确接收这些基准、并将 R48/R49配置为0x0D/0x0E。

    SECREF 上的 LVDS 10MHz 将 R411 SECREF_VALSTAT 提供为1、但 ON STATUS1信号恒定为低电平。 DLL 不会锁定、也没有同步。

    安德烈亚

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

    尊敬的 Andrea:

    看起来前一个线程已锁定、不知道为什么。 但我可以找回转储寄存器文件进行查看。 浏览一下原理图、它看起来很好。 让我在我的工作台上复制转储文件的问题并进行检查。

    -Riley

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

    Riley、您好!

    感谢您的帮助。

    DLL 是系统的一个精细部分。  手册上几乎所有相关的寄存器都标记为"保留"、因此无法很好地了解它的工作原理。 除此之外、确定该值的唯一方法是使用 TICS、但在我们的计算机中、与 DLL 相关的部分不起作用(我的意思是 Matlab 脚本未按预期执行、只是永久挂起)。

    假设我们需要为 LMK 开发一个控制 API、该 API 可在具有 ARM 内核的定制板上运行、 此外、由于灵活性方面的原因、我们不能使用静态配置(例如、在 EEPROM 中写入)、我们必须准确了解整个芯片的工作原理。  

    是否可以收到 完整的文档?我的意思是对所有寄存器都进行了很好的描述?  这肯定会在调试方面有帮助很大。
    如果 需要、我们可以签署 NDA (可能我们已经为其他 TI 产品签署了该协议)。

    请告诉我。

    谢谢

    安德烈亚

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

    尊敬的 Andrea:

    请查看 LMK05318B LMK05318B 的 编程指南

    -Riley

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

    Riley、您好!

    当然是这样!

    问题是:与 DLL 相关的段根本未描述、或者几个寄存器的所有位都标记为保留。 如果你不明白自己在做什么、调试是相当困难的、不幸的是、"已经煮熟"的配置表 TICS 有一些弱点...

    在这方面有什么帮助吗?

    安德烈亚

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

    尊敬的 Andrea:

    "LMK05318B_dump.txt"的十六进制寄存器显示了 DPLL 正在调优2550MHz 处的 BAW VCO、因此 BAW_LOCK = 0 (R80 0x005000)。

    使用10MHz PRIREF/SECREF  时、要调整2500MHz 处的 BAW VCO、DPLL 设置为:

    DPLL_REF_FB_PRE_DIV = 5

    R304 0x013003

    DPLL_REF_FB_DIV = 25

    R305 0x013100
    R306 0x013200
    R307 0x013300
    R308 0x013419

    DPLL_REF_DEN = 2^40

    R314 0x013A00
    R315 0x013B00
    R316 0x013C00
    R317 0x013D00
    R318 0x013E00

    DPLL_REF_NUM = 0

    R309 0x013500
    R310 0x013600
    R311 0x013700
    R312 0x013800
    R313 0x013900

    您的设置为 R309 0x013580、这会设置  DPLL_REF_NUM = 549755813888 => BAW VCO = 2550MHz。

    另外、在 APLL2设置中、您使用的是分频器306 + 9/10。

    但是、R136和 R138 (PLL2_NUM)保留在值中:

    R136 0x008809
    R137 0x008900
    R138 0x008A00

    ->这设置 PLL2_NUM = 589824

    R136 0x008800
    R137 0x008900
    R138 0x008A09

    ->这将 PLL2_NUM 设置为9

    类似地、R333和 R335 (PLL2_DEN)保留在值中。 使 PLL2_DEN = 10的正确设置为:

    R333 0x014D00
    R334 0x014E00
    R335 0x014F0A

    希望这对您有所帮助。

    -Riley

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

    尊敬的 Riley:

    您对 R309是正确的、它确实是一个拼写错误。

    使用校正后的值 I 设法锁定到 SECREF 上提供的10MHz LVDS 参考。  

    我验证了此锁定条件、将 SECREF 与 OUT7 (也包括10MHz、源自 APLL1)进行比较、在达到 LOCK 后、两个波形不会相互滚动。

    但是、检查锁定寄存器仍有问题:

    状态@ 50:0x00
    BAW_LOCK:0
    STATUS @ 0D:0x0040
    LOS_FDET_XO:0
    LOS_PLL2:0
    LOS_PLL1:0
    LOS_XO:0
    LOPL_DPLL:0
    LOFL_DPLL:1
    历史记录:0
    HLDOVR:0
    REFSWITCH:0
    LOR_MISSCLK:0
    LOR_FREQ:0
    LOR_AMP:0
    Status @ 19B:0x08
    PRIREF_VALSTAT:0
    SECREF_VALSTAT:1

    BAW_LOCK 在 DLL 断开(锁定到本地 XO)时为1、在启用 SECREF 且 DLL 开始锁定时变为0。 这是正确的、因为 SECREF 上的外部10MHz 不是很精确。

    SECREF_VALSTAT 位变为1、所以 SECREF 被验证

    LOPL_DPLL 变为0、因此 DLL 被锁相。

    不过、LOFL_DPLL 永远不会变为0、因此频率调谐字永远不会保存、并且在 SEREF 基准被禁用的情况下、APLL1恰好与禁用 DPLL 时的频率相同(调谐字0)。

    这与我在正弦波10MHz 连接到 PRIREF 时遇到的情况相同、由于上升时间过长、该情况被认为不是很好(请参阅前面的文章)。

    因此、DPLL 保持功能实际上仍然不起作用。

    DPLL 无法锁定频率的原因可能是什么?

    谢谢

    安德烈亚

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

    尊敬的 Andrea:

    对于 DPLL 频率锁定、您可能希望增大锁定检测阈值。 这可以通过 GUI 页面来完成、增加 Lock ppm 并将 Unlock ppm 转换为更高的数字、然后在锁定后、您可以减小至较小的阈值。

    或者、您可以更改 R321和 R331。 请注意、十六进制值的增量为0.1ppm

    -Riley