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.

[参考译文] LMX2581EVM:如何读取部件ID和寄存器?

Guru**** 2535150 points
Other Parts Discussed in Thread: LMX2581EVM, LMX2581

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

https://e2e.ti.com/support/clock-timing-group/clock-and-timing/f/clock-timing-forum/667287/lmx2581evm-how-to-read-part-id-and-registers

部件号:LMX2581EVM
主题中讨论的其他部件: LMX2581

我已将LMX2581EVM连接到Xilinx ZCU102 UltraScale板。  我可以通过写入消息

LMX2581的标准Linux SPI接口,并配置合成器。  但我很难回头阅读  

零件标识和登记。  我已按照回读中的说明使用MUXOUT选择并接线

MUXout引脚连接到LE。  我还阅读了Linux的CS high。  我尝试了不同的序列,但无法读取

返回我需要的数据。  是否有人从Linux或其他SPI主控器成功完成了此操作?  有人能告诉我吗  

为了读取部件ID而发送至LMX2581的消息序列的工作示例?  零件标识为

应该是以下序列之一:0x0.05万,0x0.051万,0x0.052万,0x0.053万。  在我的努力中,我总是

发送我的消息序列后,请重新阅读0x0.028万。

谢谢!

tw

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

    0x280 = 0b0.101万000000</s>0万
    0x500 = 0b1.01万000000</s>0万

    您的部件ID回读(0x280)的结果是0x500偏移一位。 这表示您的回读功能可能会延迟回读。 您可以确认吗?

    检查的一种方法是将设备置于寄存器回读模式并读取任何寄存器,同时注意最后四位。 在寄存器回读模式中,回读值的最后四位始终是寄存器地址。 例如,对于寄存器9:r9[3:0]= 0b1001 = 0x9。

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

    车道:

    非常感谢您的快速响应。 实际上,您对偏移值的看法是正确的。 今天上午,我尝试读取PartID并再次注册。 我在回读值上转换了1位,然后我将写回寄存器的所有值都恢复了。 包括部件ID在内的值正是我写入寄存器的值-偏移1位,即。 此外,返回的值不包含低位中的寄存器号;它们始终为0。  


    您提供的信息让我省了很多头痛。 我真的很感激。 我将在有线网络上放置一个逻辑示波器,以了解为什么会发生变化。


    对于可能感兴趣的人,我使用以下顺序来读回寄存器:


    我使用以下序列配置LMX2581EVM:

    0x021FE80F # R15
    0x4082C10D # R13
    0x21.005万CA # R10
    0x03C7C039 # R9
    0x207DDBF8 # R8.
    0x8.2317万 # R7
    0x5C0.4446万 # R6
    0x0010A005 # R5
    0x0.0004万 # R4
    0x2000F3C3 # R3
    0x0C0.0012万 # r2.
    0xC400.0051万 # R1
    0x84E2万 # R0

    我编写此序列以设置读取:

    0x5C0044A6 # R6我正在通过指定A读取寄存器5
    0x04E2万 # R0

    回读值为0x0010a000 (向左移动1位后)

    如果我想读取部件ID,我首先写

    0x84E2万 # R0

    换档后的回读值为0x0.05万。