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.

[参考译文] LMK03318:如何使用 Uboot I2C 命令将.tcs 文件加载到时钟发生器

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/1241866/lmk03318-how-to-load-the-tcs-file-into-clock-generator-using-uboot-i2c-commands

器件型号:LMK03318
主题中讨论的其他器件: USB2ANY

您好!

使用 TICS Pro 软件、可以正确配置时钟频率。

在此图像中、使用连接到 LMK03318 I2C 的 USB2ANY 转换器也能够配置时钟。

现在、在量产线中、不适合将 I2C 线路暴露在外部。 因此,计划从 U-boot 加载此.tcs 文件(最好使用命令)。

我可以这样做吗?
请推荐我可以参考的一些资源。

谢谢。

S·M·谢蒂

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

    尊敬的 Sameeksh:

    TCS 文件是一个配置文件、供 TICS Pro 软件解释使用。 器件只需要知道与该配置相关的寄存器设置、可通过 TICS Pro 中的"File"->"Export hex register values"获取。  在十六进制寄存器值文件中、每行均指 LMK03318中的特定寄存器(例如 R0)、并具有十六进制值。 前两个十六进制数字是寄存器十六进制地址、后两个十六进制数字是寄存器值。

    我假设您要在生产线上对器件进行一次编程、然后让其进行自我管理。 然后、您需要将寄存器信息编程到器件的 EEPROM 中、从而每次都以该配置启动。 我将介绍用于手动 EEPROM 编程的步骤。

    • 我不熟悉 U-boot、但它能够执行 I2C 事务(这是我在互联网上找到的教程: https://www.gibbard.me/uboot_i2c/)。 用户应 检查是否可以找到该器件并向其发出读取命令。 如果读取命令成功、则 U-boot I2C 接口应与 LMK03318兼容、用户可以继续操作。
    • 第一步是使用配置中的值加载器件寄存器。 对于十六进制寄存器文件中的每个寄存器、发出相应的写入命令。 完成后、应将正确的配置设置加载到器件寄存器中。 如果您重启器件电源、这些更改将丢失、因此 我们尚未完成。
    • 接下来、按照数据表10.5.4节中的"写入 SRAM"过程进行操作。 SRAM 是将寄存器设置编程到 EEPROM 之前寄存器设置的临时保存位置。  请确保对与设计中使用的 EEPROM 页面相对应的正确 SRAM 页面进行编程。
    • 最后、请遵循第10.5.5节中的"写入 EEPROM"流程。 应用和实现部分。  完成该操作后、重启器件、并验证其行为是否符合预期以及寄存器是否与您编程的相同。

    如果您对该过程有更多疑问、敬请告知、我可能无法为 U-boot 提供更多帮助。

    此致!

    Evan Su

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

    尊敬的 Evan Su:

    需要了解更多有关 TICS Pro 中输出驱动器选择的信息。

    在 TICS Pro 中、输出部分的"DIFF/1.8V LVCMOS 输出驱动器"块要求为生成的频率选择正确的输出电压信号标准。  


    在本例中、电压如下:

    OUT0 = 1.8V (ADC-1)                 

    OUT1 = 1.8V (ADC-2)

    OUT2 = 1.8V (FPGA)

    OUT 3 =禁用

    OUT4 = 1.8V (以太网交换机)

    Out5 = 3.3V (A9处理器)

    OUT6 =禁用

    OUT7 = 1.8V (USB 2.0)

     

    您能否告诉我、哪些电压标准适用于上述输出电压?

    如果您有任何与此相关的资源、请也分享。

    谢谢。

    S·M·谢蒂

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

    Sameeksh,

    在输出电源上使用1.8V、2.5V 或3.3V 之间的唯一区别是将要消耗的电流量。 任何输出格式都可用于这些电源引脚电压中的任何一种。  

    请参阅此数据表摘录:

    请注意、LVCMOS 输出始终为1.8V -状态引脚可用于3.3V LVCMOS 输出。

    否则、任何输出格式类型都可以与任何允许的电源电压一起使用。

    谢谢。

    卡德姆

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

    尊敬的 Sameeksh:

    更加明晰、如果您想了解如何在 TiCS Pro 中选择不同的输出格式(AC-LVPECL、AC-LVDS、HCSL 等)、则应根据每个端点(ADC、开关、处理器、USB)的具体要求做出决定; 其数据表应提供所需的输入时钟类型。

    从电气信号的角度来看、差分格式(LVPECL、LVDS、HCSL、CML)将指定特定的 共模电压和特定的电压摆幅。 该摆幅会因格式而异、但与输出驱动器、接收器或端点的电源电压无关。 因此、如果 FPGA 以1.8V 的电压运行、这并不能告诉我它需要哪种类型的输入时钟。 单端 CMOS 格式很特殊、因为它具有轨到轨摆幅、因此输出驱动器的电源电压需要与接收器的电源电压相匹配。

    我昨天为您提供的配置已将所有器件设置为 AC-LVPECL、但我不知道是否所有接收器都需要 AC-LVPECL 时钟。 如果没有、请在配置中进行适当的更改。 您可能还需要查看设计原理图、以验证每种格式的端接方案是否正确。 如果您有具体问题、敬请告知。

    此致!

    Evan Su  

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

    Sameeksh,

    为方便起见、我在下面提供了差分输出格式的摆幅信息(HCSL 输出将专门用于 PCIe 应用):

    谢谢。

    卡德姆

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

    尊敬的 Evan:

    您在此建议的方法可能非常有用。

    我有一个关于 I2C 块寄存器的写入/读取的问题。 通过 I2C 传输数据时遵循一种特定的格式。

    参考号:-https://www.ti.com/lit/ds/symlink/lmk03318.pdf?ts=1688015590403&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FLMK03318%252Fpart-details%252FLMK03318RHSR

     你在谈论如何写入单个寄存器之前共享的链接。但在这种情况下、我需要写入一个寄存器块(有些递归)

    您可以建议可以帮助我完成此任务的参考资料吗?

    谢谢。

    S·M·谢蒂

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

    尊敬的 Sameeksh:

    在编程过程中、可以通过一系列单独的寄存器写入来执行所有操作、您应该不需要在一个 I2C 事务中写入多个寄存器。 我认为数据表中讨论的"块"读取/写入功能完全能够寻址单个寄存器。 该名称可能源于这样一个事实:您可以向一个起始地址写入多个字节(我不建议使用该起始地址、因为这可能会引起混淆)。

    我同样没有 U-boot 的相关经验、但如果您尝试使用它读取器件中的各个寄存器并且结果正确、那么 I2C 事务应该会被格式化正常、您可以继续。

    此致!

    Evan Su

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

    尊敬的 Evan:

    继续对话、正如您之前所说的、从 TICS Pro 软件导出的 hex 文件包含有关寄存器的信息以及要写入这些寄存器的相应值。

    在本例中导出的十六进制文件包含 R169、R172、R173实例。

    但 LMK03318的寄存器映射中不存在这些寄存器。

    寄存器映射中存在一些寄存器、但生成的十六进制文件中缺失了这些寄存器。

    我该如何处理?

    此致、

    S·M·谢蒂

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

    尊敬的 Sameeksh:

    但这些寄存器不在 LMK03318的寄存器映射中。

    有时 TICS 会有器件中不存在的寄存器、用作存储配置信息的位置。 我不认为编程它们有任何伤害,因为这是软件做的,但在理论上,你可以把它们排除出来没有问题。 我会让 Kadeem 对此进行评论、因为他比我更熟悉此设备。

    寄存器映射中存在一些寄存器,但生成的十六进制文件中缺少这些寄存器。

    相反、TICS 有时会隐藏显示在数据表中的寄存器。 其原因是某些数据表寄存器只很少被使用、并且/或者在配置错误时有可能导致主要问题、所以我们不会将它们包含在 GUI 中。 对于大多数客户、他们应保留为默认出厂状态、因此我不建议对其进行编程。

    此致!

    Evan Su

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

    您好、Evan:

    定制板现已问世、其中已集成 LMK03318 IC。 在第一次下电上电时,存储在 ROM/EEPROM 中的值将用于配置输出频率。

    在从 TICS 软件加载寄存器配置之前,我需要进行硬件更改,为 HW_SW_CTRL、REFSEL1和 GPIO[5:0]选择合适的状态 ,这样当我给电路板加电时(第一次) 时钟发生器输出频率处于所连接器件的安全限制范围内。 您能不能为我提供一些适合于所需频率的配置?

    OUT0 = OUT1 = OUT2 = 40MHz

    OUT3 =已禁用

    OUT4 = 25MHz

    Out5 = 33.3333MHz

    OUT6 =禁用

    OUT7 = 24MHz

    该 SNAP 展示了具有预期频率的时钟发生器。它还展示了 GPIO、HW_SW_CTRL 和 REFSEL1的配置。



    此致、

    S·M·谢蒂

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

    尊敬的 Sameeksh:  

    芯片上没有存储的 EEPROM/ROM 配置、从而提供与上面列出的输出接近的输出。 最小输出频率为100MHz。

    我想大家可以这样做、就是让 REFSEL 使用不  可用的输入。 这样、上电时不会生成任何输出频率;然后、您可以对器件的 EEPROM 进行编程、以存储所需的配置。 如果没有可用的输入、PLL 将被解锁、因此输出应静音。  

    此外,你能附上一份 pdf 吗,附加的图片是非常模糊的

    此致、  

    维森特

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

    您好、Vicente:

    我将在一两天内上传 PDF、目前我没有访问该机器的权限。  

    继续讨论,你建议的方法是非常好的想法,我会给它一个尝试。 我认为这是在电路板的第一次下电上电期间进行的正确方法。
    完成这一部分后、我计划使用 TICS 软件将配置写入 EEPROM 的第一页。 对于时钟发生器 IC ,选择此页面,  HW_SW_CTRL、REFSEL1和 GPIO[5:0]的状态应该是什么?

    由于我希望 IC 从 EEPROM 读取页面、因此我需要保持 HW_SW_CTRL = 1
    IC 上连接了一个主参考时钟、在这种情况下、 将在 TICS Pro 中选择 Insel_PLL。 因此不需要 REFSEL1。

    但是 GPIO[5:0]的状态应该是什么? 您能不能指导我如何根据 GPIO 选择 EEPROM 的每个页面。

    此致、
    萨梅克什

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

    尊敬的 Sameeksh:  
    我明白没有问题。

    上电后、要选择 EEPROM 的第1页、请执行 LMK03318 DS 编程部分下列出的以下步骤:  

    R145[3]应设置为1'b 以选择 page1。  

    在加电时检查 GPIO 引脚、仅用于选择要加载的 EEPROM/ROM 配置。 器件开启后、用户可以如上所述对其进行编程。  

    此致、  

    维森特  

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

    对 EEPROM 第1页进行编程后、假设您始终要在下电上电时加载此配置、请参阅下表:  

    HW_SW_CTRL = 0;GPIO[3]= LO;GPIO[2]= MID

    此致、  

    维森特