Thread 中讨论的其他部件:、 LMX2594
我无法通过 SPI 接口从 MUXout 读取任何位。 我可以将寄存器 R0设置为芯片上电和断电、并观察电流消耗的变化、因此我得出结论、SDI、CSB 和 SCK 都正常。
我使用的是连接到第三方模块的 LMX2582EVM 板、该模块能够通过测试垫进行 SPI 通信、并使用 PicoScope 示波器来监控线路。
在这里是加电命令:
这将读取寄存器 R7:
有什么想法、可能会出什么问题?
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.
我无法通过 SPI 接口从 MUXout 读取任何位。 我可以将寄存器 R0设置为芯片上电和断电、并观察电流消耗的变化、因此我得出结论、SDI、CSB 和 SCK 都正常。
我使用的是连接到第三方模块的 LMX2582EVM 板、该模块能够通过测试垫进行 SPI 通信、并使用 PicoScope 示波器来监控线路。
在这里是加电命令:
这将读取寄存器 R7:
有什么想法、可能会出什么问题?
尊敬的 Derek!
这就是我要做的:
在开场白中、我没有提到我从 LMX2582EVM 板上去焊 R40、以使 LED 与 MUXout 线断开。
供参考、我的示波器连接到 MUXout_TP 测试点。
您好、Hinko、
在步骤2中复位芯片后、加载默认寄存器值。 R0[2]的默认值是锁定检测、而不是回读。 因此、您需要发送另一个写入来设置回读寄存器。
下面是我要做的:
我不确定启动时器件中存在哪些值。 在 POR 之后、但在使用 R0[1]进行软复位之前、器件内的许多功能块未初始化、因此没有响应。 需要复位器件以启动内部状态机初始化序列。 由于回读在复位前被禁用、因此启动时寄存器的内容基本上无关紧要。 不过、可保证使用 R0[1]进行软复位、以便为所有寄存器加载数据表7.6.1中的默认值。
此致、
尊敬的 Derek:
[引用用户="Derek Payne"]
重新启用回读:0x00 0x00 0x04
[/报价]
查看数据表7.6.1.1、可读回 MUXout 的值不是 R0[2]= 1、而是 R0[2]= 0。 可以确认吗?
然而、似乎不能期望在 POR 或复位后设置默认值。 通过查看7.6.1.1、我可以看到、复位后 R0应该为0x00 0x22 0x1C、这意味着没有像您说的那样启用回读。
如上所述、我将尝试获取 R7值(只要我们确认 R0[2]位设置以进行读取)。
感谢您确认 Derek!
同时、我已经在执行 SPI 通信的硬件上测试了不同的设置。 尤其是更改影响 MISO/MOSI 线路采样和计时的 CPOL/CCPHA 参数。
通过使用 CPHA=1、我可以在 MUXout 线路上采样一些位、但数据不正确。 因此、我认为 CPOL=0和 CPHA=0的 SPI 协议不适合从 LMX2582读取数据。
我设法澄清了 uWire (MICROWIRE)和 SPI 协议之间的差异。 由于它们在布线和功能上非常相似(实际上根据 Wikipedia、uWire 被视为 SPI 的子集)、它们在一个主要方面确实不同:当 MISO (在我们的案例中为 MUXout)线路的采样被预先建立时。 在第5页、 可以清楚地告诉用户 uWire 协议的主器件在上升沿读取/采样、与写入数据一样。 另一方面、SPI 始终使用相对的时钟边沿。
话虽如此、我将尝试通过我手头上的廉价 FTDI 硬件或 RPi 对整个通信进行比特流、以查看我是否可以按预期读取 MUXout! 遗憾 的是、我无法更改我们指定的仅能执行 SPI (而不能执行 uWire)的硬件、因此我只能使用此 bitbang 方法实现更远的距离。
您好、Hinko、
我认为 LMX2582与 LMX2594具有类似的计时行为。 我们刚刚修订了 LMX2594的数据表、以阐明时序要求。
LMX2594支持 CPHA = 0、CPOL = 0或 CPHA = 1、CPOL = 1。 在时钟的下降沿之后、MUXout 数据被计时输出。 有关详细信息、请参阅 LMX2594数据表的图1和图2及其下的注释。
此致、
Hao