主题中讨论的其他器件:ADS7067
大家好、我有一个相同的问题。
当我将 ADS7067设置为自动序列模式时、将"SEQ_START"位设置为1、
并将"AUTO_SEQ_CH_SEL"设置为0x00 (所有7个通道在中都设置为"模拟");
无法 从所有7个通道获取任何数据、它始终 为0xFF。


数据表第7.4.4章建议 SDO 的输出数据格式应为16位或20位、
但 表7-15 显示 、SDO 应该 只有12个时钟、即使它是16位 ADC。

那么、自动序列读取命令到底是什么呢?
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.
大家好、我有一个相同的问题。
当我将 ADS7067设置为自动序列模式时、将"SEQ_START"位设置为1、
并将"AUTO_SEQ_CH_SEL"设置为0x00 (所有7个通道在中都设置为"模拟");
无法 从所有7个通道获取任何数据、它始终 为0xFF。


数据表第7.4.4章建议 SDO 的输出数据格式应为16位或20位、
但 表7-15 显示 、SDO 应该 只有12个时钟、即使它是16位 ADC。

那么、自动序列读取命令到底是什么呢?
Ryan、感谢您的回复!
抱歉、我 输入了错误的寄存器名称;
我意思是 将寄存器"PIN_CFG"设置为 0x00 (将所有7个通道配置为模拟输入)、
并将"AUTO_SEQ_CH_SEL"设置 为0xFF (所有7个通道均按扫描序列启用)。
我还将"serial_CFG"的 SEQ_MODE 设置为01b (选择自动序列模式)、
并 在"serial_CFG"之前将" SEQ_START"位设置为1b (启动通道排序)
通过在 SDI 上发送8个16位低电平(0x00、0x00)数据帧来读取 ADC 值。
此外 、我禁用平均滤波器、输入/输出 CRC 和通道 ID/状态标志、
从而使数据帧大小为16 位。
但我仍然 得到 错误的 ADC 读数。
还有什么 我 漏掉的东西吗?
您好、Joe!
感谢您的澄清。 这些寄存器设置和初始化序列看起来是正确的。
参阅表7-4、您可能仍需要发送24个 SCLK、即使 CRC、平均值计算和状态字都处于禁用状态。 您是否可以尝试扩展该帧以在 SDI 上发送3个字节的0x00? 我还可能建议暂时启用通道 ID 状态、以确保内部多路复用器按预期循环通过通道。
您能否分享一个原理图以便我们查看全部连接到 I/O 线路的器件?
此致、
瑞安
您好、Ryan、
我明白了!
我的 寄存器设置都正确、并且16位0x00命令也有效。
真正的问题是、我无法区分哪个数据 帧与哪个通道对应、因为我没有将4位通道 ID 附加到数据帧中。
这就是我认为读取到错误值的原因。
另外、我认为表7-15中显示的"12个时钟"一词实际上是指"读取12位数据并将其丢弃。 "、 数据表中没有提到这一点。
同样、错误地将该12位数据误认为是对八个 通道之一的读取。
因此、我遵循您的建议发送3个字节的0x00、 并启用4位通道 ID。
在将"SEQ_START"位设置为1后读取并丢弃12位数据。
现在全部8个通道的读数都是正确的。
谢谢!