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.

[参考译文] ADS1298:ADS 问题

Guru**** 2864540 points

Other Parts Discussed in Thread: ADS1298

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/772996/ads1298-ads-problem

器件型号:ADS1298

你好、
我想向大家展示一下有关 ADS1298及其正确性能的疑问。 下面是我的原理图:

我的设计由 AVDD=2.5V 和 AVSS=-2.5V 电源供电、总电源电压为5V、并配置为 VREFP=4V。 我已经获得了具有以下结果的 ADS 测试信号:

我的问题是、当我尝试通过8个通道获取 ECG 信号时、它不起作用、我完全没有结果。

寄存器的配置如下:

CONF 1 = 0x86
CONF 2 = 0x00
CONF 3 = 0xEE
LOFF = 0x0F
通道1 al 8 = 0x01
RLD_sp = 0x03
RLD_SN = 0x03
LOFF_SENP = 0xFF
LOFF_SENn = 0x03
LOFF_FLIP = 0x00
CONF 4 = 0x02
WCT1 = 0x09
WCT2 = 0xD0
 
是否有任何建议或建议让我的 ADS 正常工作?

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

    感谢您的发帖、欢迎加入论坛!

    您是否能够正确读取器件 ID?
    您的数据收集例程是什么样的?
    您是否为8个数据通道发送了正确数量的 SCLK?
    e2e.ti.com/.../2856884
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Alexander、感谢您的回答。
    回答您的问题:
    1.是的,我是。 我已读取 ADS ID 记录、通过 ADS1298的地址0x92获得成功的结果。
    这里是数据的屏幕截图。 它是用 Python 编写的、但结构在任何语言中都是相同的、我希望您在本节中发表意见。

    !/usr/bin/python3
    #-*-编码:UTF-8-*-

    输入转储的数据
    将 RPi.GPIO 导入为 GPIO
    导入套接字
    导入 spidev
    导入时间

    #Definiciones del Socket
    #host ='192.168.1.11'
    主机='192.168.43.5'
    端口= 10000
    全球袜子

    正弦警报器 DE GPIO
    GPIO.setwarnings(False)

    configuración ó n de pines y constantes.
    PIN_START = 6
    PIN_RESET = 12
    PIN_DRDY = 24
    PIN_CLKSEL = 23
    RDATA = 0x12
    SDATAC = 0x11
    RDATAC = 0x10
    START = 0x08
    STOP = 0x0A

    #商品贸易和商品销售
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(PIN_START,GPIO.OUT)
    GPIO.setup(PIN_RESET,GPIO.OUT)
    GPIO.setup(PIN_CLKSEL,GPIO.OUT)
    GPIO.setup(PIN_DRDY,GPIO.IN,pull_up_down=GPIO.PUD_UP)

    #IniciAliza SPI

    SPI = spidev.SpiDev()
    SPI.open (0、0)
    SPI.lsbfirst =错误
    SPI.max_speed_Hz=3000000
    SPI.MODE = 1

    变量
    GPIO.输出(PIN_CLKSEL、GPIO.高电平)
    GPIO.输出(PIN_RESET、GPIO.高电平)

    #Envio de datos
    时间睡眠(0.1)
    spi.writebytes ([SDATAC])

    #Iniciacion de Socket
    尝试:
    sock = socket.socket (socket.AF_iNet、sock.stream)
    打印('EL socket se Creo correctamente')
    套接字错误除外:
    打印('EL socket no pudo se creado')

    尝试:
    SERVER_ADDRESS =(主机、端口)
    sock.connect (server_address)
    打印('Conectando al servidor %s、POR el Puerto %s\n'% server_address)

    打印('conexion exitosa!')
    套接字错误除外:
    打印('EL socket no pudo Conectar con el servidor')


    #Funcion de captura
    DEF (通道):
    全局数据
    全球竞争对手
    spi.writeBytes ([RDATA])
    RESP = SPI.readbytes (27)
    datos =转储(RESP)
    打印('Dtos:%s\n'%resp)
    打印('Enviando datos...')
    sock.sendall(datos)
    #contador = contador + 1.


    #inicio de captura
    时间睡眠(0.1)
    spi.writeBytes ([start])

    GPIO.add_event_detect (PIN_DRDY、GPIO.Falling、CAPTura)

    尝试:
    定时休眠(600)
    键盘中断除外:
    sock.sendall(dumps([])
    sock.close()
    最后:
    gpio.clean()
    sock.sendall(dumps([])
    sock.close()

    3、是的、我认为我要发送正确的数据。 我使用 Raspberry Pi 的 SPI 接口来实现它。 我认为数据是正确的、因为我能够同时读取和写入多条记录、此外、我还编译了 ADS1298在8个通道中自行生成的测试数据、修改了寄存器1、2、3和8个通道、 这方面的证据是最后一篇文章的第四幅图像。

    我的问题仍然在于、当我尝试通过8个通道获取 ECG 信号时、我完全没有得到正确的结果、因此我期待您的建议和支持

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

    很高兴能提供帮助!

    我建议仔细查看数据表中的图93、即加电时的初始流程。

    在下面的例程中、我看不到您在发送其他命令之前等待适当时间的位置。 此外、看起来 GPIO.output (PIN_RESET、GPIO.HIGH)正在尝试切换连接到 ADS1298上/RESET 的 GPIO 引脚、但通过查看原理图、我看到/RESET 连接到 DVDD、而不是 GPIO。 如果是这种情况、则必须发出/reset 命令、而不是切换 GPIO。

    #商品贸易和商品销售
    GPIO.setmode(GPIO.BCM)
    GPIO.setup(PIN_START,GPIO.OUT)
    GPIO.setup(PIN_RESET,GPIO.OUT)
    GPIO.setup(PIN_CLKSEL,GPIO.OUT)
    GPIO.setup(PIN_DRDY,GPIO.IN,pull_up_down=GPIO.PUD_UP)

    #IniciAliza SPI

    SPI = spidev.SpiDev()
    SPI.open (0、0)
    SPI.lsbfirst =错误
    SPI.max_speed_Hz=3000000
    SPI.MODE = 1

    变量
    GPIO.输出(PIN_CLKSEL、GPIO.高电平)
    GPIO.输出(PIN_RESET、GPIO.高电平)

    #Envio de datos
    时间睡眠(0.1)
    spi.writebytes ([SDATAC])
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Alexander
    我已经遵循了他的建议(我已经在93页进行了调整、以测试正确的行为、获取测试信号、所有这些都成功了)。

    关于多个命令的发送时间、如第63页所示、在发送多个命令部分中、请指定、如果使用的 SPI 接口符合 tsDECODE、则无需在命令之间发送延迟、ADS 才能正常工作、 在前面的研究中、我确定 Raspberry 系统的 SPI 接口满足此要求、因此我不会按照您的建议发送数据。
    最后、我认为复位确实连接到 DVDD、但电阻为10k、而电阻为10k、因此不连接 ADS GPIO、而是 Raspberry GPIO、这就是我发送指令 GPIO.output (PIN_RESET、GPIO.HIGH)的原因、 此外、我已经尝试发送复位代码、但最终结果会离开待机寄存器、擦除这些变量。
    在您看来、 如果我成功地收集了测试信号、为什么我无法通过所需的 ECG 信号端口进行正确的检测? 什么无法收集真实信号?

    此致、
    Juan Camilo Caicedo España í a。

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

    如果您仍在使用原始帖子中的寄存器设置、则输入在内部短接。 尝试将 ChnSET 寄存器设置为0x00h、而不是0x01h。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Alexander

    非常感谢您关注我的消息。 抱歉、我错误地抄录了我的代码以发布它。 我用0x10而不是0x01、这意味着所有通道在增益为1的情况下都正常工作、但它仍然不工作。

    我已经完成了输入差分输入2的练习、测试信号为1mV、实际上是 RA 和 LA 电极、如下图所示:

    正如我在"预览答案"中向您介绍的、我无法成功获取输入信号、在本例中、输入信号是频率为2Hz 时的1mV 信号之一。 我想问你:为什么? 可能是通道饱和? 如果是、我如何确保存在所述饱和、我如何修复它? 如果它不是饱和、它可能与基准信号相关吗? 在您看来、我是否正确配置了基准信号? 如果没有、我应该如何配置它?

    再次感谢您的帮助、Alexander!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果通道饱和、则会产生满量程输出。 由于您无法获得任何输出、我对此并不太担心。

    CONF3寄存器具有0xEEh。 不能将4V 基准与+/-2.5V 电源配合使用。
    将 CONF3位5设置为0... 0xAEh。 请给这个机会。

    尝试使用方框图和多路复用器开关图跟踪信号路径、以确保信号正确通过。 现在禁用尽可能多的功能也是一个很好的步骤。

    此外、您可能需要检查此帖子以验证您的设备是否正常工作: e2e.ti.com/.../2868597