工具与软件:
您好,在数据表的第42页,如果我们发送0x22(待机)我们应该接收(0x22)但实际上我正在得到0x94,因为你可以从下面的屏幕截图看到:我们首先发送0x22,然后空读取响应

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.
您好、Saad、
似乎您正在使用16位 SPI 帧。 为了使用16b SPI 帧、必须在 MODE 寄存器中将字大小设置为16b 并禁用时钟寄存器中的所有 ADC 通道。 否则、上电后、每个帧的长度应为10个字、每个字等于24b。
上电默认后发送待机状态的正确 SPI 帧如下所示:
1. 在 nCS 为低电平时启动帧。
发送 STANDBY 命令0x002200h、后跟另外9个24b 字全部为零(假设禁用了 SPI 输入 CRC)。 SCLK 的总数将为240。
3. nCS 处于高电平时的结束帧。
4. 发送下一帧、240个 SCLK。 第一个字的响应应为0x002200h、然后是另外9个字。
对于大多数命令、一个帧中有十个字。 在 DIN 上、主机提供命令、命令 CRC (如果启用了输入 CRC)或零字(如果禁用了输入 CRC)、以及八个额外的零字。 同时在 DOUT 上、该器件输出对前一帧命令的响应、表示八个 ADC 通道的八个 ADC 数据字以及一个 CRC 字。 图8-18所示为典型命令帧结构。

此致、
Keith Nicholas
精密 ADC 应用
你好 Keith ,你的意思是在加电时的默认位数是24位,所以我们必须发送24位长字。 这听起来合乎逻辑。
但为什么我们需要发送10 x 24位?!
如果这是强制性的,我们是否总是发送10字来写任何命令?
我们是否可以 在不进入待机模式的情况下直接开始设置模式寄存器(或任何其他寄存器)? 如果我们将其设置为16位,我们是否会发送10x16位帧以始终写入命令?
此设置是否会影响数据读取?
抱歉有多个问题。 产品说明书不清楚
您好、Saad、
经过进一步审查、我确认您可以仅发送24b 命令作为待机模式、但典型的 SPI 帧将包含10个字、每个字的大小在上电后默认为24b。
我们建议在写入其他配置寄存器之前发送 STANDBY 命令来停止 ADC 转换。 进入待机模式后、您可以配置器件的16位字。
在待机模式下、您可以更新寄存器并使用完整的10字帧、或者由于 ADC 被禁用而使用短帧。
通过发送 WAKEUP 命令开始转换后、应始终使用10个字、或160个 SCLK 并选择16位字大小。
此致、
Keith
您好、Saad、
您需要发送0x003300h 以执行唤醒命令和默认字大小24b。 此外、SPI 帧总大小不应超过10个字、但 RREG 和 WREG 情况除外、在这种情况下、多个寄存器读取/写入超过10个字的限制。
我还建议您直接查看 ADS131M08引脚上的 SCLK 信号、以验证它是否为干净信号。 如果信号上出现大量振铃、ADS131M08可能会将此解释为多个时钟、在这种情况下、通信会损坏。
此致、
Keith