Other Parts Discussed in Thread: LMK05318B
器件型号: LMK05318B
您好:
我们能够使用“任何“PRIREF 频率(和相关带宽)配置我们产品中采用的 LMK05318B。
我们需要了解如何计算带宽配置。
基本上、我们需要知道 TICSPro 调用的 Matlab 脚本是如何工作的、如果它需要 NDA、我们就不会有任何问题。
对此有何帮助?
谢谢
Andrea
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.
您好、Andrea、
遗憾的是、我们无法共享 DPLL 计算/ Matlab 脚本的源代码。 计算 DPLL 环路滤波器参数的唯一方法是通过 TICS Pro GUI。
对于类似类型的应用、我建议生成一个查找表、其中包含您希望在应用中使用的输入频率范围内的 DPLL 参数和 DPLL LBW。 DPLL LBW 对 TDC 频率不是很敏感、 我们可以看到 TDC 频率大约可以变化+/- 10%、而不会对滤波器的截止频率产生重大影响。 您还可以通过增大 R 分频器来获得更大的输入频率、从而减小解决方案的大小、将可能的 TDC 频率保持在更窄的范围内。 例如、如果将 TDC 频率限制为 1kHz-10kHz、则可以使用 25 个离散点实现偶数对数间距、从而实现小于 10%的误差。 从 1kHz 到 26MHz 最大值的任何输入频率都应该能够分频为这些频段之一。 当然、为了实现更快的锁定时间、通常首选更大的 TDC 频率。
采用这种方法时、您还需要更新每个输入频率的基准 R 分频器、TDC N 分频器和基准验证阈值。 但与 DPLL 参数相比、这些计算更加简单。 如果您对此有任何其他问题、请告诉我。
尊敬的 Connor:
感谢您的解释、我理解技术要点。
事实上、由于我们正在开发的产品类型、需要能够针对同样非常不同和不可预测的频率(例如 1PPS、10MHz 或 125MHz 等)重新配置器件。 此外、产品要求基准和生成的时钟之间具有完美的一致性、即 APLL 和 DPLL 应以准确的方式配置生成的频率、不会因小数部分的截断而近似计算:时钟应仔细确定为有理数、因此 R 分频器也可用于管理分母上的因素。 因此、只有能够在器件板上执行这些计算才能确保完全可重新配置。
老实说、从商业角度来看、我不理解 TI 之所以不披露有关滤波器操作的信息、即使存在已签名的 NDA ... 您是否绝对确定不能再考虑这一点?
谢谢
Andrea
您好、Andrea、
关于输入/输出时钟相干、这应该是可行的、因为 DPLL 和 APLL 都有 40 位分数 N 分频器。 您是否知道您的应用需要支持哪种类型的输出时钟频率?
DPLL 滤波器脚本包含专有信息、 即使在签订了 NDA 时、也需要清除/滤除这些信息。 如果我们选择在外部披露源代码、还需要考虑长期应用程序支持、验证、维护等、因为我们有软件支持的内部标准。 使用环路滤波器参数查找表的方法是否存在任何限制?
尊敬的 Connor:
为了实现一致性、我的意思是您必须使用系统中所有 PLL 再现的精确频率。
这不是一个位数的问题,而是正确选择的除法因子,在方式上,每一个因子都是无错误的再现。
例如、假设必须使用 PLL 生成 100/3 的乘法。 如果不消除分母处的 3、即在 R 中放置 3、则只能获得截断解:当 R=1 时、N 为 33.3333333(无限位数)。 根据位数、您可以获得误差非常小的频率、但从不为 0;这意味着、即使是非常小的时频误差也会增加相位误差、从而打破相干要求。
基本上、唯一的解决方案是使用 R 来处理与分子相关的分母原子因子、但这样 R 就不能自由使用、来确定查找表所需的 TDC 频率。
当然、查找表是一些东西、但肯定不是可重新配置的最佳选择。
我们还对设备的存储空间有严格的限制、因此节省大量表是不可行的。
因此、直接计算方法成为真正优选方法的原因。
此外、目前 TI 仅提供 TICS 软件作为编程器支持、而寄存器文档缺少有关详细信息的说明。
事实上、TICS 为在单个配置中使用 LMK 芯片并将其视为黑盒的人员提供了一个良好的解决方案、从而对 EPROM 进行编程或向寄存器写入二进制块。 我认为,对程序员更有效的支持将是一个完整的 API 库(在 C / C++中),允许在运行时、任何硬件平台上对参数进行完整的管理,而不会有任何麻烦!
LMK 芯片在技术上非常好,但缺少的 API 是一个严重的陷阱,采用他们... 这是我的看法。
您理解,目前有关大多数寄存器的详细信息必须通过阅读 TICS 中的 python / ini 文件来理解,并尝试找出东西如何在内部工作:这更是一种复古工程方法... 为错误和错误解释留出了大量空间、需要大量时间。 所以,说实话,我不认为真正的问题是代码清洁... 不是吗? 如果需要努力使用芯片、至少请不要隐藏 TICS 源文件!
总之、现在我确实需要非常快速地完成 LMK 的专有 API、至少在初始版本中可重配置性有限。 我试图了解与 DLL 滤波器相关的寄存器范围应该存储在查找表中、从而避免了任何不必要的事情。 比较十六进制文件时、我发现差异存在于无文档记载的寄存器范围内、该范围存在于 TICS 软件的 ini 文件中。
您能否指定寄存器的确切范围?
谢谢
Andrea
您好:
考虑到 DPLL 滤波器无文档记载的寄存器定义、我正在分析 LMK05318B.ini 文件。
我想我在寄存器定义中发现了错误:在 R303 中、我找到以下字段:
- DPLL_TDC_DLY_STEPSIZE2X_EN、位 0
- DPLL_CLK_FB_DIV、位 4:0
- DPLL_CLK_FB_DIV_RSTn、位 7
因此、字段 DPLL_TDC_DLY_STEPSIZE2X_EN 和 DPLL_CLK_FB_DIV 是重叠的!
在 LMK05318B_wizard.py 上、 设置了 DPLL_TDC_DLY_STEPSIZE2X_EN 值、我认为它正在写入错误的寄存器…… 请您验证一下吗?
谢谢
Andrea
您好、Andrea、
感谢您的反馈、我会将这些信息传达给我们团队的其他成员。 一般来说、我们可以看到、这些同步器器件针对绝大多数用例与静态配置一起使用、并且需要动态重新配置输入的应用实际上有些罕见(至少在我的经验中是这样)。 基于此、我们选择了使用 TICS Pro GUI(假设大多数应用会使用单一配置)进行开发的优先级、以实现易用性、而不是更灵活的 API 解决方案。
关于 DPLL 寄存器、该脚本 可能会更新以下寄存器: R269、R270、R271、R272、R273、 R274、R275、R276、R277、R278、 R279、R280、R281、R282、R283、 R286、R287、R288、R289、R296、 R297、R298。 其中包含稳态、快速锁定 1 和快速锁定 2 的环路滤波器参数。 如果您计划禁用快速锁定、则只寄存器 R269、R270、R271、R272、R275 R278、R281、R296 应更新。
DPLL_TDC_DLY_STEPSIZE2X_EN 和 DPLL_CLK_FB_DIV 字段中存在一些重叠、但 DPLL_CLK_FB_DIV 应始终设置为 0。 目前在向导中 DPLL_TDC_DLY_STEPSIZE2X_EN 硬编码为 1、但我们实际上发现、这对于低频输入来说并不是最优选择。 在下一次 TICS Pro 更新中、我们将更新逻辑、 在 TDC 频率< 2kHz 时设置 DPLL_TDC_DLY_STEPSIZE2X_EN = 0、在 更高的频率下设置 DPLL_TDC_DLY_STEPSIZE2X_EN = 1。
尊敬的 Connor:
我相信大家都非常了解该产品的常见用例、因此我不会判断您是否选择提供 TICS 作为配置解决方案。
但在我这边、我必须为我们的特定情况找到解决方案、即使很少见、因为在这种情况下、基准频率以前并不总是已知的、并且还必须满足与 VCO1 频率的精确合理比率、因此可重新配置性非常重要。 这对我们来说是完美的,即使它需要开发时间,但也隐藏部分源代码/文档的选择不允许这一点...
请帮助我解决这个问题、否则我可能被迫找到不同的解决方案。
谢谢
Andrea
您好、Andrea、
您能否定义 API 开发需要哪种支持?
我想从具有所需频率计划基本功能的基线配置开始。 然后、您可以使用查找表方法、为给定的输入频率选择有效的 DPLL 环路滤波器、其中的环路滤波器参数已使用 TICS Pro 进行了预先计算。 对 R 分频器、DPLL N 分频器、APLL N 分频器、输出配置等进行编程应该相对简单、我假设实现 DPLL 滤波器查找表是最困难的方面。
尊敬的 Connor:
API 的第一个版本即将完成。
以 TICS 的 Python 代码为例、花一些时间可以了解工作原理、
仪表和锁定检测器等的设计注意事项。
缺少的部分完全与由 Matlab 脚本计算的 DPLL 寄存器相关。
正如我尝试解释的、我们在设计阶段无法预先确定 10%范围的 TDC 频率、
因为客户可以选择在较宽的工作范围内运行器件、例如 0.1Hz - 125MHz……
此外,这些都是严格的考虑,准确地选择合理的分管,因此必须选择 R
取决于分母因子、而不是为了尝试匹配查找表中的项目!
因此、除非您在任何 TDC 频率下构建一个非常大的表、否则极不可能使用查找表
从 0.1Hz 到至少 1MHz、步长为 10%…
需要明确的一点是:为了完全满足我们的要求、我们需要在不使用 TICS 的情况下配置芯片。
所以、我的问题是很清楚的:这是否可行?
如果没有,正如我从前面的答案得到的,那么现在花了很长一段时间后,我们终于有了一个问题!
我的建议是:请在数据表中添加有关这种严重限制的明确信息!
老实说,如果我一开始就知道这一点,我就选择了另一个组件。
希望您了解我的立场、因为我不了解 TI 关于限制产品可配置性的立场。
很抱歉、我想很诚实。
Andrea
您好、Andrea、
我与管理层讨论过这一点、我们可以共享 Matlab 源代码、但我们无法协助转换到您的自定义 API 中。 我认为 将其移植到 C/C++环境会很难、因为该脚本使用 Matlab 的控制系统工具箱来解决传递函数方程等问题。 此外、没有任何 DPLL 脚本的支持文档。 我仍建议您研究查找表方法的可行性或限制允许的用户输入范围、以使其更易于管理。 我们理解选择 R 分频器以实现精确有理除数的要求、但我认为应该可以将必要的 R 分频器乘以某个整数值、从而使 TDC 处于查找表定义的范围内。 最大 R 分频器为 65535 (2^16 - 1)、因此即使最大输入频率为 125MHz、理论上也可以支持任何输入频率、最大 TDC 频率为 2kHz。 如果定义了某些参数(最小/最大输入频率、DPLL LBW 等)、我们还将能够支持查找表生成。
如果您愿意、我们可以继续发送 DPLL 脚本源代码以进行 API 开发。 您是否已分配 TI FAE 或销售代表? 他们可以帮助获得 NDA 的后勤工作。