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.

[参考译文] ADS8688:启动转换时出现问题。

Guru**** 2390755 points
Other Parts Discussed in Thread: ADS8688

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/772785/ads8688-problems-starting-conversion

器件型号:ADS8688

我正在尝试将 ads8688与 BeagleBoard 配合使用。 该器件会响应寄存器的设置/读取、但开始转换是一个不可执行的操作。 AVDD 为5V、DVDD 为3.3V。

这是我编写的 python 脚本:

#!/usr/bin/python

来自 Adafruit_BBIO.SPI 导入 SPI

def ad_wreg (reg、d):
R = SPI.xfer2 ([reg*2+1、d、0])
如果 r[2]!= d:
引发异常('error writing reg')

def ad_rreg (reg):
R = spi.xfer2 ([reg*2、0、0])
返回 r[2]

def ad_cmd (cmd):
R = spi.xfer2 ([cmd、0、0、0]);
返回 r[2:]

#- main ----=

SPI ad_cmd (cmd)(cmd)范围







内的复位#0x85 (SPI = 1、SPI.r.0、SPI.c (r1、SPI.c)。 #转储寄存
器如果 i =4:继续#无寄存器4
打印十六进制(i)、十六进制(ad_rreg (i))

ad_cmd (0xa0)# auto_rst
打印'tarting auto"
打印'cmd'、hex (ad_rreg (0x3f))#命令回读

范围(8):
打印 i、spi、auto_0、swap0 (0、swap0、swap0)(0、swap0)


代码生成以下输出:

0x1 0xff
0x2 0x0
0x3 0x3
0x5 0x0
0x6 0x0
0x7 0x0
0x8 0x0
0x9 0x0
0xA 0x0
0xb 0x0
0xC 0x0
正在自动启动
CMD 0x0
0 [0、0、255、255、255、255、 128]
1 [0、0、255、255、255、255、 128]
2 [0、0、255、255、255、255、 128]
3 [0、0、255、255、255、255、 128]
4 [0、0、255、255、255、255、 128]
5 [0、0、255、255、255、255、 128]
6 [0、0、255、255、255、255、 128]
7 [0、0、255、255、255、255、 128]

我已经使用示波器验证了 SPI 信号。 一切看起来都很好。 此外、为了排除 SPI 干扰、我已将寄存器1 (AUTO_SEQ_EN)设置为每一个可能的8位值、并将其读回以进行验证。 例如:

对于 I IN 范围(0x100):

 ad_wreg (1、I)

 如果 i!= ad_rreg (1):

   提出异常('err')

我已经这么做了数千次、没有错误。

因此、寄存器写入/读取正常、但是如果使用0xa0或0xcx (例如0xcc)启动转换、则始终会产生上述输出。 回读命令始终返回0。 因此、乍一看、芯片将不会开始转换。 然而、检查额外的特性数据(在16位结果之后)似乎表明更多的事情是错误的。 通道地址应在自动模式下更改、但不会更改。 但没关系、这可以通过芯片不进入自动模式来解释。 器件地址位应该是 B00、因为功能寄存器是0x03、它们是 B11。 输入电压范围的 LSB 应为 b000、因为所有通道的范围都是 b0000、它们是 B111。

如果我将功能设置为0、器件将输出:

[0、0、255、255、0、 0]

所有通道。

如果我将功能设置为1、器件将输出:

[0、0、255、255、240、 0]

所有通道。

SPI 模式正确、我已经尝试了所有其他模式。 模式0和3在寄存器写入/验证功能立即失败、模式2的工作方式与模式1相同。

我现在花了3天的时间来尝试解决这个问题、但我运气不好。 我可以得出芯片故障的结论。 请提供帮助。

哦、和命令确实起作用、即、如果我设置一些寄存器、然后发出0x85命令、寄存器将返回默认值。

谢谢、

STEWie

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Stewie、
    要解决您遇到的问题、请从手动模式开始转换特定的输入通道、方法是在命令寄存器中写入有效的手动通道 n 选择命令(MAN_Ch_n)、如图83/84所示、请查看第8.4.2.6和8.5.1节中的详细信息。
    使用示波器捕获的/CS/SCLK/SDI/SDO 时序图将非常有用、谢谢。
    此致
    戴尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅 TI.com 上的示例代码、网址如下所示:
    git.kernel.org/.../ti-ads8688.c

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

    您好 Dale、

    感谢你的帮助。

    正如最初发布的那样、MAN_Ch_n 命令生成相同的输出。 这里是 MAN_Ch_0 (0xc0)的波形图、它的电压大约为1.7V (3.3V 半除以2个10k 电阻器)、其他通道接地。 这不是第一个0xc0命令、而是一个多个命令序列中的一个命令、即数据位来自之前的0xc0、而不是某些未知通道。 此外、0xc0后跟 NO_OP 会产生相同的结果。

    我之前已经看过 ti-ads8688.c、与我正在做的事情没有什么明显的区别。

    REFCAP 为4.0953V。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Stewie、
    除了 SDI 上的一些奇怪尖峰之外、您的时序看起来很干净、是否正在使用虚拟示波器? 您能否使用实验室示波器进行检查? 您能否将原理图发送给我进行检查? 您的 SPI 模式1正确、因为该 ADC 需要对 SPI 接口进行配置(CPOL = 0、CPHA = 1)。
    此致
    戴尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Dale、

    我使用了 Agilent DSO1024A、将信号导出至 csv、转换为 VCD 并在 GtkWave 中打开、您可以看到屏幕截图。

    这些是我的 ads8688子板的原理图和电路板视图。 其中四个插头插入载板、

    将所有子板的 RST 连接到高电平。

    2.在电路板之间布线菊花链。

    3.为 Vdd (模拟电源)提供+5V 电压,为 Vcc (数字电源)提供+3.3V 电压

    4.接地短路和接地短路。

    5.通过100 Ω 电阻器将子板的 SPI 引脚连接到 BB 的 SPI。

    这是我的设置照片。 载板安装在 BB 上、带有一个 ads8688子板(最后一个位于链中)。 蓝白线将单个子板的菊花链连接到 GND。 铜线残桩是我连接 DSO 探针的位置。 背景中的两个板是两个十进制电阻器板、当前设置为10k、如上所述。

    谢谢、

    STEWie

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Stewie、
    我将检查并尽快将其返回给您、谢谢。
    此致
    戴尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Dale、

    好的、那么我使这个东西工作了。 Adafruit 图书馆是罪魁祸首。 它在事务之间以假方式降低/CS、我认为这会导致芯片进入帧中止条件。这很难找到、因为我到目前为止只查看了单个帧、而不是两个帧之间的帧。 我已经尝试过另一个名为 python 外围设备(github.com/vsergeev/python-periphery)的库、它可以立即正常工作。

    感谢你能抽出时间。

    STEWie

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

    您好、Stewie、

    感谢您的更新和澄清。 如果 您需要进一步的支持、请告诉我。

    此致

    戴尔