您好、Joseph:
我已写入 CONFIG 寄存器数据、ON SDI = 0x02、0x00、0x75、0x9A
若要读取 CONFIG 寄存器数据、请写入 SDI = 0x82、0x00、0x00、0xDD
在 SDO 上读取数据为0x04、0x00、0x01、0xBA、但无法将 数据写入寄存器。
我使用逻辑分析仪捕获的数据、供您回顾
您能否在这里为我们提供支持、说明是什么导致了问题导致 写入实际数据?
阿莎 G
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.
您好、Joseph:
我已写入 CONFIG 寄存器数据、ON SDI = 0x02、0x00、0x75、0x9A
若要读取 CONFIG 寄存器数据、请写入 SDI = 0x82、0x00、0x00、0xDD
在 SDO 上读取数据为0x04、0x00、0x01、0xBA、但无法将 数据写入寄存器。
我使用逻辑分析仪捕获的数据、供您回顾
您能否在这里为我们提供支持、说明是什么导致了问题导致 写入实际数据?
阿莎 G
Asha:
在您的逻辑分析仪博文中、我圈出了三件我认为在通信中存在错误的事情。
首先、对于与器件的每次通信、/CS 应返回高电平。 发送到器件的每个字由/CS 转换隔开。
第二和第三、发送到的数据具有错误的 CRC 值。 对于第一个字0x10 0x00 0x00、CRC 应为0xA2而不是0xA3。 对于第二个字0x04 0x00 0x01、CRC 值应为0xAC 而不是0xBA。
我已对照器件响应进行了检查。 从器件发出的 CRC 值是正确的。 我会注意到、您的某些代码应该可以正常运行、或者器件根本不会响应。
约瑟夫·吴
Asha:
我已在 E2E 中向您发送了朋友请求、您可以使用 E2E 页面右上角的消息工具。 您可以使用它来附加文件。
此时、我想您已经接近于通信、但您要么逻辑分析仪存在时序问题、要么与 SPI 相关。 为了解决这个问题、我仍然想查看 Saleae 文件。 例如、在最后一个逻辑分析仪图中、您可以看到写入和读取非常相似。
该误差的大部分是 DOUT 被一个时钟移回。 我猜是 SDO 被 Saleae 误读了。
无论如何,您都可以尝试通过消息传递工具发送文件。
约瑟夫·吴
Asha:
我看了看你的文件,并能够打开它。 我认为现在的问题是您对 SCLK 进行 SDO 设置的方式。 可以在逻辑分析仪图中看到这一点:
此处、SDO 变化与 SCLK 下降沿的 SDO 读取保持一致。 我最初以为默认设置是 SDO 在 SCLK 的上升沿驱动、但这可能是 SCLK 空闲为高电平所导致的。
您可以更改 Saleae 以读取器件、以便在上升沿读取数据、而不是更改 FSDO 设置吗? 这只是为了验证正确的数据输出。 如果微控制器未正确读取该值、则您可能需要将 SCLK 更改为空闲低电平。
约瑟夫·吴