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.

[参考译文] ADS8681:从 ADC 读取转换数据

Guru**** 1826070 points
Other Parts Discussed in Thread: ADS8681, ADS7038
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1397626/ads8681-reading-conversion-data-from-adc

器件型号:ADS8681
主题中讨论的其他器件: ADS7038

工具与软件:

您好、我正在尝试从  ADS8681读取转换数据、但一直得到0xFF。  我的 MCU 是 M0系列。  我是否缺少任何具体要求? 谢谢。

伪代码:

1)将 CONVST 设置为低电平
2) 2)延迟10us
3) 3) 将 CONVST 设置为高电平(使转换开始)
4) 4)延迟~20us (以满足 tconv_max minimal=665ns)
5) 5)将 CONVST 设置为低电平(以 启动数据传输帧)

6) 6)通过 SPI 发送4个字节(0x0、0x0、0x0、0x0)作为 NOP 命令

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

    嗨、您好!

    伪代码看起来正确。  您能否通过屏幕截图进行发送并告诉我们您选择的范围以及如何配置基准(内部或外部)?

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

    您好、Tom、

       我将写入 RANGE_SEL_REG (0x14)= 0xb、因此我将使用"ADC"和1.25 × VREF 内部基准"=启用。  因此、AIN 范围= 0至5.12V

    此外、
    1) 1)是否需要发送4个字节 NOP 命令(0x0 0x0 0x0 0x0) 获取转换数据?   
    2) 2)我们是否需要  在 ADC 芯片将转换后的数据发送到 SDO 线路之前将 CONVST/CS 引脚拉至高电平?

    谢谢

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

    嗨、您好!

    您能提供我要求的计时屏幕截图吗?

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

    这张屏幕截图在 CONVST/CS 信号拉至低电平后、只需从 SPI 读取2字节 NOP (0x0、0x0)、但16位转换数据仍为0xFFFF。   

    此外、 我已验证当我在 DATAOUT_CTL_REG 寄存器(10h)中仅设置 RANGE_INCLUDE 位[8]时、我确实会在输出 数据的位[15:12]中看到"ADC 输入范围"、因此这会确认0xFFFF 是来自 ADC 芯片的实际转换数据(位31:16)。

    0xFF 0xFF 0xB0 0x00

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

    上面的黄色迹线是什么?

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

    这是 ADC 的 CONVST/CS 信号。

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

    好的-谢谢。  那么、当 CONVST/CS 在该捕获中处于高电平时、时钟和数据是多少?  以下是包含 SDO_0数据的命令示例:

    下面是另一个使用16位 NOP 命令读取转换结果的日志:

    您能否将轨迹与捕获区分开来、并可能放大一点?  上述抓图采用单个 SDO、范围设置为0.625*VREF (双极)且 AIN 具有1V 直流输入。

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

    您好、Tom、

      该时钟和数据用于另一个片选引脚上的 SPI 器件(与 ADS8681无关)。  我再也不能接触到痕迹了。

      计算得出的  0xB295 ADC  转换数据似乎来自12位 ADS7038。
      您或任何 TI 支持 SME 是否有权访问16位 ADS8681?

    谢谢。

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

    嗨、您好!

    不要因为屏幕截图中的文件名而分心。  即来自 ADS8681的16位数据。

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

    好的、感谢您的澄清。

    a)在第一次捕获时、您将发送0xD00E0000 (4字节命令)。  是否需要执行该过程才能读取转换结果?

    b)您是否可以捕获范围设置为"1011b = 1.25 × VREF "的转换数据?

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

    对于 a)否、不需要该命令。  b)确定!  请告诉我您也是如何设置其余寄存器的。

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

    我仅设置这2个寄存器。  所有其他项均为默认值。

    RANGE_SEL_REG 寄存器(地址= 14h)   = 0xB (用于设置 1.25 × VREF)
    DATAOUT_CTL_REG 寄存器(地址= 10h)= 0x10 (因此我可以看到 SDO-x 输出流中的4位输入范围设置(RANGE_SEL[3:0]))

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

    您是:

    我在捕获中包含了 SDO_2、以便您可以看到我将得到0xFFFF、就像您之前看到的一样。  0x32A8的实际转换结果位于 SDO_1上。  其中、将1V 直流电源施加到 AIN。

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

    您好、Tom、

       我们只有一个 SDO (这是 MISO 线路)、对 SDO_CTL_REG 寄存器(0xC)没有任何更改。  您如何在一个 SDO 上获得数据0xFFFF、在另一个 SDO 输出上获得数据0x32AB?  您是否建议我需要设置  SDO_CTL_REG 寄存器(在之前的 PCB 中我们不必触摸此寄存器)?

    谢谢。

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

    很抱歉混淆、我想这是来自 ADS8681的 SDOS -我再次查看、它看起来像是 MISO 和 MOSI:

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

    那么、在单个 SDO 默认设置下、您是否能够获得 类似于  1V 直流电源的0x32A8的 ADC 转换数据?  谢谢。

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

    是的、是这样。

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

    尊敬的 Tom、在将 CS 引脚拉至低电平之后、我们在发送 NOP 命令之前必须等待多长时间才能读取转换数据?

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

    这将是 Tsu_CSCK 参数、请参阅数据表第9页的第6.8节。

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

    您好、Tom、

       您能否仅使用用于 ADS8681的2字节 NOP 命令(0x0000)发布读取 ADC 转换结果的示例代码?

       当 我首先在帧 F 中输入0xD00C0000、然后在帧(F+1)中输入0x0000时、该操作对我唯一有效

    谢谢你。

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

    我会尝试的。

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

    谢谢你。

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

    嗨、您好!

    对于采用16位(2字节) NOP 的捕获、在代码方式上真的没有太多要共享的内容。  我使用 Digilent "数字发现"定位盘来生成/CS、SDI 和 SCLK。  在这个工具的背景之外、我认为它对您没有太大帮助。

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

    尊敬的 Tom、我认为您使用  ADS8681-EVM 进行测试、并且具有一些测试代码来读取转换数据。

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

    嗨、Heip:

     实际上、我将这两种 EVM 都使用、只是很难让您基于我们的 GUI 获取代码、因为它本质上是一个在 FPGA 上运行的图形发生器、所以不需要提供任何"C"源。  ADS8681EVM 的 GUI 也不允许我自定义要尝试的任何命令、例如、将您执行的相同操作写入器件。  使用 Digital Discovery、我可以更好地控制通信、只是不能全速运行部件。