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.

[参考译文] ADS1298ECGFE-PDK:从通道1至8读取数据时出现问题

Guru**** 2964790 points

Other Parts Discussed in Thread: ADS1298, ADS1298ECGFE-PDK, ADS1198, ADS1292

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/955335/ads1298ecgfe-pdk-problem-reading-data-from-channels-1-through-8

器件型号:ADS1298ECGFE-PDK
主题中讨论的其他器件:ADS1298、 ADS1198、 ADS1292

您好!

从通道1至8读取数据时遇到问题、需要一些帮助来确定原因。

我在 SBAS459K 的第10.1.1章中运行测试的前半部分–2010年1月–2015年8月修订版、其中输入短路、
我希望数据大约为+/- 0、即0x00 0x00 0x0? 和0xFF 0xFF 0xF? 宽度最低有效位数的一些变化、如下例所示:
0xC0 0x00 0x00
0xFF 0xFF 0xFD
0x00 0x00 0x02
0xFF 0xFF 0xFD
0x00 0x00 0x03
0xFF 0xFF 0xFC
0x00 0x00 0x06
0xFF 0xFF 0xFF
0x00 0x00 0x01

相反、我会得到如下所示的结果:
0xC0、0x0、0x0            //对我来说似乎可以。
0xDD、0x64、0x8E         //在输入短路时变为大负值。
0x80、0x0、0x0            //我没有想到"-0"这样的值,它们看起来有点稳定。
0x80、0x0、0x0
0xBF、0x9F、0xFB
0x80、0x0、0x0
0x80、0x0、0x0
0x80、0x0、0x0
0x80、0x0、0x0
有关更多数据、请参阅随附的日志文件。

状态数据0xC0和0x00 0x00的初始位看起来不错、但其余数据对我来说似乎是错误的。

值为 0x80、0x0、0x0的通道在我看来也是奇数的、两个通道值 为0xDD、0x64、0x8E 和 0xBF、0x9F、0xFB 似乎也有故障。

您能否确认我对数据是否正确、或者为什么数据不正确?

Belov 是我的测试设置的简短描述。
带隙
急动
这就是我通过固件配置电路板的方法:
应用:ADS1298_drv.c (182)完成 ADS1298的复位。 //
应用程序:Hello World 开始
应用:ADS1298_drv.c (269) ADS_SDATAC。
应用:ADS1298_drv.c (284) WREG CONFIG1 0x86。
应用:ADS1298_drv.c (291) WREG CONFIG2 0x00。
应用:ADS1298_drv.c (255) WREG CHnSET 0x88 0x0 0x1用于所有八个通道//配置0x81 - 0x88
应用:ADS1298_drv.c (300) ADS_START。
应用:ADS1298_drv.c (304) RDATAC。
应用:ADS1298_drv.c (308) ADS_SDATAC。
有关更多数据、请参阅随附的日志文件。
我使用的是来自 Nordic 的 nRF52840-DK、我通过 SPI 连接到 ADS1298ECGFE-PDK、如下所述:
#define SPI_SCK_PIN 3 //从 P0.3连接到 J3:3
#define SPI_MOSI_PIN 4 //从 P0.4连接到 J3:11
#define SPI_MISO/PIN 28 //从 P0.28连接到 J3:13
#define SPI_SS_PIN 29 //从 P0.29连接到 J3:7
#define SPI_DRDY_PIN 30 //从 P0.30连接到 J3:15
#define ADS_RESET_PIN 31 //从 P0.30连接到 J3:8
J4:5连接到 GND
J4:9连接到+3V3
J4:10连接到+5v0
ADS1298ECGFE-PDK 上的跳线设置如下:
JP15 2-3、JP1 1-2、 JP26 - JP33 1-2、JP5 NC、JP10 2-3、JP18 2-3、
JP19 1-2、JP4 1-2、JP2 1-2、JP20 2-3、 JP21 2-3、 JP22 2-3、 JP23 1-2

e2e.ti.com/.../ads1298.log

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

    您好 Jerker、

    欢迎访问 E2E 论坛。 感谢您使用 ADS1298ECGFE-PDK 进行评估。

    对于输入短路测试、您应该在所有通道上获得大约+/-500uV (偏移误差)的输出。 您获得的输出(0x800000)可转换为-Vref 的输入电压、对于输入短路测试而言该电压不正确。

    要确定问题出在哪、您可以先将 EVM 与 GUI 一起使用、以确保 EVM 的所有设置都正确、然后再使用 nRF52840-DK 和您自己的软件进行数据采集。  ADS129x BIOFAQ 中有 一个分步调试过程、可确保器件和 EVM 正常工作。 我列出了以下链接供您参考。

    https://e2e.ti.com/support/data-converters/f/73/p/775288/2868597#2868597

    我希望这将对您的调试有所帮助。  

    谢谢。

    -TC

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

    感谢您的建议 TC。

    我的同事有主板、当我们将主板连接到母板时、EVM 按预期工作。

    但是、当我重新连接 EVM 时、nRF52840-DK 会在 DRDY 引脚上挂起。

    以下是寄存器设置:
    0x11
    0x81、0x00、0xA5
    0x82、0x00、0x12
    0x85 0x0 0x11
    0x86 0x0 0x11
    0x87 0x0 0x11
    0x88 0x0 0x11
    0x89 0x0 0x11
    0x8A 0x0 0x11
    0x8B 0x0 0x11
    0x8C 0x0 0x11
    0x08
    0x10
    0x11

    //此处 FW 在 DRDY 引脚上挂起。

    1.您是否有建议要求 MCU 处理 ADS1298的哪些引脚?
    2.跳线设置中是否有任何需要更改的内容?
    此外、还必须进行哪些寄存器设置、是否遗漏了任何内容?

    下面是目前配置的详细说明。

    带隙

    急动

    现在、我已经像这样连接了 EVM 的引脚:

    J4:5 - GND
    J4:9 - 3V3
    J4:10 - 5v0

    J3:1 - GND //开始
    J3:3 - SPI_SCK_PIN
    J3:7 - SPI_SS_PIN
    J3:11 - SPI_MOSI_PIN
    J3:13 - SPI_MISO/PIN
    J3:15 - SPI_DRDY_PIN
    J3:8 - ADS_RESET_PIN

    在与主板进行会话后、跳线现在按如下方式设置
    JP15 2-3 // 屏蔽驱动器打开
    JP1 1-2  // RLD 反馈
    JP17 -- //未安装接头,ECG 屏蔽驱动器
    JP3 --   //未安装接头,未连接外部 Vref 缓冲器
    JP25 --//未安装割台,未选择外部参考
    JP24 2-3 // DVDD 电源= 3.3V
    JP18 2-3 // CLK 连接到 OSC1
    JP19 1-2 // OSC1被启用
    选择 JP2 1-2 // AVDD 进行双极电源操作(AVDD =+2.5V)
    选择 JP20 2-3 // AVSS 进行双极电源操作(AVSS =-2.5V)
    JP4 1-2 // EVM +5V 由 J4提供(电源接头)
    JP21 1-2 // CS 通过 J3.1连接到 DSP
    JP22 2-3 //开始来自 J3.14请注意:由于我从 FW J3:14写入开始寄存 器、因此连接到 GND。
    JP23 1-2 // CLKSEL 设置为0 (ADS1198使用外部主时钟(OSC1))
    并安装了所有跳线 JP26a 至 JP33b。

    下面列出了由 FW 完成的设置:

    首先、重置处理:
    NRF_GPIO_PIN_SET (ADS_RESET_PIN);
    NRF_DELAY_ms (100);
    NRF_GPIO_PIN_CLEAR (ADS_RESET_PIN);
    NRF_DELAY_ms (100);
    NRF_GPIO_PIN_SET (ADS_RESET_PIN);
    NRF_DELAY_ms (2500);

    那么、我从 FW 控制的引脚配置:
    SPI_CONFIG.ss_Pin = NRF_DRV_SPI_PIN_NOT_USDED;// CS 引脚的手动控制、将从器件选择引脚设置为不使用。
    SPI_CONFIG.Mio_Pin = SPI_MISO/PIN;
    SPI_CONFIG.MOSI_Pin = SPI_MOSI_PIN;
    SPI_CONFIG.SCK_Pin = SPI_SCK_PIN;
    spi_config.frequency = NRF_DRV_SPI_FREQ_500K;//确保 ADS1292/8的时钟周期小于4个 clk 周期}
    SPI_CONFIG.BIT_Order = NRF_DRV_SPI_BIT_ORIG_MSB_FIRST;
    SPI_CONFIG.MODE   = NRF_DRV_SPI_MODE_1;

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

    您好 Jerker、

    您的 EVM 跳线设置看起来正常。 您是否按照数据表中图93所示的加电顺序进行操作? 我不确定如何读取您在上面发布的寄存器设置。 您可以执行的另一项测试是在上电序列后将 START 引脚拉至高电平、然后查看您是否在示波器上获得 DRDY 信号。   

    谢谢。

    -TC

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

    Thx 代表您的重播 TC。

    很高兴听到跳线设置看起来正常。

    我将 J5:5 (!PWDN)连接到 MCU 上的 GPIO 引脚、以便我可以对其进行控制(为此目的、JP5保持断开状态)。

    START 引脚(J2:14)永久连接至3V3。

    由于我使用连接到 OSC1的外部时钟、因此 CLK_SEL 引脚设置为0 (JP23 1-2)。

    这是我使用的 Know 寄存器的配置。 我对它进行了一些更改、因为我发现它与图93中的流程图有一些偏差。

    所有寄存器写入(0x8x)的中间字节设置为0x00、表示每个寄存器中应该写入1个字节、
    9.5.2 SPI 命令定义。

    0x11             SDATAC -停止数据继续模式
    0x81、0x00、0xA6  WREG CONFIG1设置为高分辨率、启用 OSC1、数据速率110注意:我在此假设图93中建议的0x86是使用内部时钟设置。)
    0x82、0x00、0x00  设置为 斩波频率的 WREG CONFIG2会发生变化、 测试信号从外部驱动、测试幅值1×–(VREFP–VREFN)/2400V、fCLK / 2^21时的测试频率脉冲
    0x85 0x0 0x1      通道5至的 WREG CHnSET  12.设置为正常工作、PGA 增益6、输入短路
    0x86 0x0 0x1
    0x87 0x0 0x1
    0x88 0x0 0x1
    0x89 0x0 0x1
    0x8A 0x0 0x1
    0x8B 0x0 0x1
    0x8C 0x0 0x1
    0x08            START -启动/重新启动转换
    0x10            RDATAC -恢复数据继续模式
    0x11            SDATAC -停止数据继续模式

    在这里、代码等待 DRDY、但从未发生过。

    我已使用 DRDY 上的示波器进行检查、但无法看到 DRDY 变为低电平然后变为高电平。
    它一直很高。

    带隙

    急动

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

    我测量了 J3:13、SPI_OUT 的输出、信号弱以进行解读。

    红色信号在 J3:11、SPI_IN 上测量、蓝色信号在 J3:13、SPI_OUT 上测量。

    SPI_OUT 弱得多。

    EVM 上的跳线设置是否会影响 SPI 信号?

    SPI 主器件的硬件要求是什么?

    带隙

    急动

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

    您好 Jerker、

    在使用自己的 NRF 控制器时、您是否仍在将 MMB0主板连接到 EVM? 您可能需要将您使用的所有 SPI 和控制信号与 MMB0隔离、以便两者之间没有争用。 您能否在上电序列后读取所有寄存器设置、以便我们知道所有器件设置都正确?   

    谢谢。

    -TC

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

    尊敬的 TC:

    否该 EVM 未连接到 MB、仅连接到 NRF 开发套件。

    我最终得到了器件 ID 的读取、以使其正常工作。 我必须重试一次才能获得数字。
    FW 读回0x92、我将其解释为正常、因为我正在使用1298器件。

    当我读取全部25个寄存器时、我得到以下结果、这是一个意外的情况。
    为什么寄存器0x0和0x1设置为0x0、器件 ID 放置在寄存器0x2中?
    我希望它位于寄存器0x0中、似乎所有寄存器都具有+2的偏移量!
    因此、我读取了27个寄存器、而不是25个、希望获得所有寄存器设置。

    应用:ADS1298_drv.c (259)寄存器0x0 = 0x0 <--我预期的 ID 将在这里
    应用:ADS1298_drv.c (259)寄存器0x1 = 0x0 <--和此处的配置1。
    应用:ADS1298_drv.c (259)寄存器0x2 =  0x92 ID
    应用:ADS1298_drv.c (259)寄存器0x3 = 0x85配置1
    应用:ADS1298_drv.c (259)寄存器0x4 = 0x0  配置2
    应用:ADS1298_drv.c (259)寄存器0x5 = 0x40配置3
    应用:ADS1298_drv.c (259)寄存器0x6 = 0x0  VLED_OFF
    应用:ADS1298_drv.c (259)寄存器0x7 = 0x1 CHN1SET
    应用:ADS1298_drv.c (259)寄存器0x8 = 0x1 CHN2SET
    应用:ADS1298_drv.c (259)寄存器0x9 = 0x1 CHN3SET
    应用:ADS1298_drv.c (259)寄存器0xA = 0x1 CHN4SET
    应用:ADS1298_drv.c (259)寄存器0xB = 0x1 CHN5SET
    应用:ADS1298_drv.c (259)寄存器0xC = 0x1 CHN6SET
    应用:ADS1298_drv.c (259)寄存器0xD = 0x1 CHN7SET
    应用:ADS1298_drv.c (259)寄存器0xE = 0x1 CHN8SET
    应用:ADS1298_drv.c (259)寄存器0xF = 0x0  RLD_SENSP
    应用:ADS1298_drv.c (259)寄存器0x10 = 0x0 RLD_SENSN
    APP:ADS1298_drv.c (259)寄存器0x11 = 0x0 LOFF_SENSP
    应用:ADS1298_drv.c (259)寄存器0x12 = 0x0 LOFF_SENSN
    应用:ADS1298_drv.c (259)寄存器0x13 = 0x0 LOFF_FLIP
    应用:ADS1298_drv.c (259)寄存器0x14 = 0x0 LOFF_STATP
    应用:ADS1298_drv.c (259)寄存器0x15 = 0x0 LOFF_STATN
    应用:ADS1298_drv.c (259)寄存器0x16 = 0xF GPIO
    APP:ADS1298_drv.c (259)寄存器0x17 = 0x0 PACE
    应用:ADS1298_drv.c (259)寄存器0x18 = 0x0 RESP
    应用:ADS1298_drv.c (259)寄存器0x19 = 0x0 CONFIG4
    应用:ADS1298_drv.c (259)寄存器0x1A = 0x0 WCT1
    应用:ADS1298_drv.c (259)寄存器0x1B = 0x0 WCT2

    噪声读数看起来也很尴尬、我希望它的值要低得多。
    状态字节以0xC0开头、我认为这是正确的。

    APP:0xC0、0x0、0x0
    APP:0x24、0xA4、0x63
    APP:0x26、0x4、0x1
    APP:0xC、0xA3、0xB7
    APP:0x28、0x2D、0x51
    APP:0x4、0x5D、0xE8
    APP:0x4、0x9B、0xB8
    APP:0xF、0xF3、0xD5
    应用:0x18、0xB8、0xBE

    那么、当我读取寄存器值时、为什么我获得偏移2
    为什么从 ADC 通道读取的值与它们相同?
    除了偏移之外、我的寄存器设置中是否存在故障?

    带隙
    急动

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

    您好 Jerker、

    在使用 RREG 命令发送前2个操作码时、FW SPI 是否也捕获 DOUT 数据? 为了进行调试、您可以使用示波器探测 SPI 信号、以确保从 FW 发送的内容正确。 对于 ADC 通道数据、我建议您使用内部测试信号作为起点、以确保所有 SPI 功能都正确、并且您可以捕获正确的内部测试信号波形、如 EVM 用户指南的图31所示。

    谢谢。

    -TC

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

    感谢您的回答 TC!

    我现在可以从数据输出中读取 ADC 输出、并正在努力获得足够好的信号。 如果需要、我将开始一个新的胎面。

    问题的解决方法是、我的启动顺序有问题。 重新查看何时执行重置后、问题迎刃而解。

    [引用 USER="TCT]]使用 RREG 命令发送前2个操作码时、FW SPI 是否也捕获 DOUT 数据? 出于调试目的、您可以使用示波器探测 SPI 信号、以确保从 FW 发送的内容正确无误。[/quot]

    我将调用此调用、并尝试找出问题的根本原因。 如果需要,我将启动有关此问题的新主题。

    带隙

    急动