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.

[参考译文] ADS7066:自动序列模式读取数据帧大小? 12位? 16位?

Guru**** 2468460 points
Other Parts Discussed in Thread: ADS7067

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1354505/ads7066-auto-sequence-mode-reading-data-frame-size-12bit-16bit

器件型号:ADS7066
主题中讨论的其他器件: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。

那么、自动序列读取命令到底是什么呢?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Joe、您好!

    感谢您的发帖。

    要为自动序列模式选择通道、必须将 AUTO_SEQ_CH_SEL 寄存器中的相应位设置为1b。 将0x00写入地址12h 将禁用所有通道。

    此致、

    瑞安

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    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个通道的读数都是正确的。

    谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Joe!

    感谢您的反馈、很高兴您找到了它! 知道这一点非常有帮助。 我会将反馈提交给我们的系统团队、以便它可以包含在下一个数据表修订版中。

    此致、

    瑞安