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.

[FAQ] [参考译文] [常见问题解答] LMH1297:介绍了编程原始命令语法

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/897323/faq-lmh1297-programming-raw-command-syntax-explained

器件型号:LMH1297

不同的器件编程指南使用原始命令语法来修改寄存器。 此命令语法及其参数的详细说明是什么?

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

    编程指南命令语法使用特定格式更改器件寄存器。 下面的说明进行介绍
    详细介绍了如何完成此操作。

    本质上、有两种方法可更改器件寄存器设置:

    a)。 读取/修改写入操作
    b)。 只写操作

    a)。 让我们首先讨论读取/修改写入操作:

    例如、以下寄存器设置选择器件寄存器0xFF 和0x69的特定部分、然后进行修改
    寄存器中的位。 为了清楚说明这一点、让我们回顾以下几个示例:

    原始 FF 05 07 //更改0xFF[2:0]=101’b
    原始69 10 30 //更改0x69[5:4]=01'b

    RAW:标识寄存器操作
    0xFF 或0x69:指示需要更改的寄存器地址
    0x05或0x01:使用下一个操作数的屏蔽表示寄存器内容的变化。
    0x07或0x30:表示需要更改的屏蔽或寄存器位。
    例如、MASK = 0x07表明需要更改寄存器0xFF 的位2到位0。 出于同样的原因、
    0x30的屏蔽表示寄存器0x69的位5到位4将被改变。

    现在我们已经很好地了解了命令语法、接下来让我们更深入地了解如何实现这一点。
    原始命令语法使用读取/修改格式。 此命令执行三个差分运算:
    1)。 首先、我们读取寄存器0xFF 或0x69的内容。
    2)。 根据需要使用掩码来更改寄存器设置。
    3)。 最后、写回更改后的值。
    例如、RAW FF 05 07意味着我们必须执行以下操作:
    1)。 读取寄存器0xFF 的内容。 例如、假设我们读回0x04的值
    2)。 由于屏蔽为0x07、FPGA 或微控制器保留位7至3并与更改的位2至0串联。
    在我们的示例中、由于我们回读0x04、这意味着在位操作后、我们将具有0x05。
    3)。 回写该值。 在本示例中、我们将把0x05写回寄存器0xFF。 寄存器0x69或其他寄存器也采用相同的过程。

    b)。 只写操作:
    接下来、我们将讨论如何使用只写操作更改寄存器设置。
    与之前的方法不同、我们使用单个写入命令来根据更改更新寄存器。 但是、鉴于存在某些情况
    寄存器中保留位的位我们必须保留这些位、并且只需进行更改即可更新寄存器位
    进行的。 很明显、让我们使用前面使用的两个示例:

    原始 FF 05 07 //更改0xFF[2:0]=101’b
    原始69 10 30 //更改0x69[5:4]=01'b

    语法/含义与前面提到的相同。 因为我们需要更改寄存器0xFF[2:0]和
    仅限寄存器0x69[5:4]、我们应保留位0xFF[7:3]、0x69[7:6]和0x69[3:0]。 现在、问题是
    如何知道这些位的默认设置或寄存器设置是什么? 有两种方法:
    1)。 在开发过程中、读取寄存器内容、然后更改仅需要的寄存器位。
    2)。 请参阅编程指南并注意默认设置、然后根据需要更改位。
    例如、读取 LMH1297编程指南可分别为寄存器0xFF 和0x69指定0x00和0x10的值。
    因此、我们可以执行单次写入、并直接设置寄存器0xFF = 0x05和0x69=0x10。

    注:如果寄存器中没有保留或动态位、则可以执行直接写入操作。

    总之、有两种方法可以修改寄存器内容:

    读取/修改写入:
    在本例中、对于每个原始操作、我们需要执行三个操作:
    1)。 使用 FPGA 或微控制器从器件读取寄存器值
    2)。 使用 FPGA 或微控制器根据掩码设置更改寄存器值
    3)。 最后将该值写回器件寄存器

    直接写入操作:
    此方法直接从器件或编程指南中读取寄存器内容。 然后、我们只修改寄存器位
    在 FPGA 或微控制器端根据需要写回该值。 请注意、如果是、则可以使用此方法
    寄存器没有动态或保留位。 请参阅编程指南器件寄存器表
    以了解有关每个寄存器和位定义的详细信息。