大家好、我使用的是控制器与 ADS1258的接口、我使用的是内部 SPI。 仅跟踪 SPI 工作、初始化看起来正常。 但我无法读取通道。 我的应用是以1k SPS 的速率逐个读取所有16个通道。 下图是原理图。 让我知道我错了哪里。
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.
嗨、Himanshu Sharma、
感谢您发送随附的逻辑分析仪图
在 MOSI 上、您将发送0x50 0x00、这是对寄存器0的寄存器读取。 但您将 MUL 位设置为高电平、这意味着您要读取多个寄存器、而这是单个寄存器命令
为什么要使用这些命令读取数据? 单个寄存器的寄存器读取值应为0x4r、其中 r =您尝试读取的寄存器。 例如、0x40表示对单个寄存器(即寄存器0)的寄存器读取
-Bryan
嗨、 Himanshu Sharma、
这是您将运行的初始化代码:
这将写入所有寄存器、并将它们设置为存储在"initRegisterMap"中的值。 然后、您将读回所有寄存器以确保 WREG 正确。
你结束的第一个命令为0x70h = 0111 0000b:
ADS1258数据表的下表中显示了这一情况。
然后开始发送寄存器数据。 例如、0x41是第二次寄存器写入、即第二次寄存器= CONFIG1。 设置0x41h = 0100 0001b (它会选择待机模式作为空闲模式)、将开关延时时间设置为100b = 64微秒、关闭传感器偏置电流源、并将数据速率设置为7813SPS。
但是、在第7个寄存器数据之后、需要将 CS 置为高电平-我在下图中展示了这一点。 这会立即结束命令、因此您发送的下一个字节毫无意义。 您知道为什么将 CS 设置为高电平吗? 它不是 WREG 功能的一部分。
-Bryan