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.

[参考译文] ADS1292:PGA 噪声阻碍起搏脉冲检测

Guru**** 2546290 points
Other Parts Discussed in Thread: TIDA-010005, ADS1292, ADS1292R

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/913234/ads1292-pga-noise-impeding-pacing-pulse-detection

器件型号:ADS1292
主题中讨论的其他器件:TIDA-010005

我的应用使用的设计与 TIDA-010005参考设计(http://www.ti.com/tool/TIDA-010005)非常相似

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

    原始问题已被截断...

    我的应用使用与 TIDA-010005参考设计(www.ti.com/.../TIDA-010005)非常相似的设计 来检测由 ADS1292采样的 ECG 内的起搏脉冲。 问题是、当使用 ADS1292上的 START 引脚触发单次转换时、我们从 PGA 电容器上获取起搏脉冲信号的信号有时(并非总是)会出现急剧尖峰。 显然、这种尖峰很难与真正的起搏脉冲区分开来。 当转换由 SPI 命令触发且 START 保持高电平时、不会观察到该尖峰。 由于我们的设计中的采样时间限制、使用连续采样模式或 SPI 命令来触发采样是不可行的。 我们必须使用 START 引脚。 请帮助!

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

    你好 Jonathan、  

    感谢您的发帖。

    您能否布置一些示波器截图、以显示 PGA 输出电容器上的脉冲? 听起来这是从 START 引脚信号直接耦合的。

    此致、

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

    下面是一个示例、显示了 PGA 电容器上的启动噪声尖峰以及"真正"的起搏脉冲以及标度。 开始尖峰不会在每个 START 命令中出现、而是在看起来是随机的倍数处出现。

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

    使用 SPI 命令启动(0x08)的进一步实验表明、可以在不使用 ADS_START 引脚引起噪声尖峰的情况下完成单次采样。 但是、ADS_DRDY 在此模式下不起作用。 无论 CS、SPI_CLK 如何、ADS_DRDY 都始终为低电平。 SPI RDATA (0x12)命令被正确解释、不管如何、有效数据都会随时钟移出。 这是通过设计实现的吗? 请提供建议。  

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

    上面显示了 ADS_IN 上的 ADS_START 尖峰以及 ADS_START 的布线。 "真"起搏脉冲接近 ADS_IN 线路的中间。 对于每个非常混乱的 ADS_START 命令、都不会看到尖峰。

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

    您好、Jonathan、

    感谢您的更新和屏幕截图。  

    1. 当使用单次模式时、/DRDY 引脚将被屏蔽、同时数字 SINC3滤波器稳定。 表13中列出了该稳定时间。
    2. 从连续模式切换到单次模式时、建议先停止转换。 如果 START 引脚为高电平、则必须将其恢复为低电平。 如果您之前发送了 START SPI 命令、并且看到/DRDY 脉冲、请在更改转换模式之前先发送 STOP 命令。

    我知道使用启动操作码不是您的解决方案、因此我们仍需要找到一种方法来隔离瞬变与从 START 引脚耦合到模拟输入的情况。 这只能通过布局来改进。 是否直接由 GPIO 驱动? 您在线路上是否有上拉电阻器?

    此致、

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

    如果我们能够同时向两个 ADS 芯片发出启动操作码、则可以使用启动操作码。 我们尝试了以下几种方法:

    a)按顺序向每个 ADS 芯片发送启动操作码、使 START 引脚保持低电平。 ADS 芯片采样和收集数据、具有 DRDY 功能。 但是、两个 ADS 芯片的采样不是同时进行的。

    b)通过将两个 CS 引脚设置为低电平、同时向两个 ADS 芯片发送启动操作码。 START 引脚保持低电平。 ADS 芯片不会采样和收集数据。 当顺序发出 RDATA 命令时、使用0xC00000000进行响应。 DRDY 始终处于高电平。

    c)通过将两个 CS 引脚设置为低电平、同时向两个 ADS 芯片发送启动操作码。 START 引脚保持高电平。 ADS CHIPS 采样和收集数据。 DRDY 始终处于低电平。

    关于起始引脚、它们直接连接到 uProcessor GPIO、没有上拉或下拉电阻。 添加串联电阻不会消除由于 START 引脚转换而产生的尖峰。

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

    你好 Jonathan、

    b)是使用 start 命令的正确方法。 为了使转换与 START 命令同步、两个器件必须使用相同的主 CLK 信号并同时接收 START 操作码。 您是否共享一个 CLK 源? 两个器 件都需要连接到同一个外部 CLK、或者一个器件的内部 CLK 必须输出到第二个器件。 要使用启动操作码、两个器件将共享 DIN、并且两个启动引脚都保持低电平。  

    您提到了使用 RDATA 命令从器件发出的数据以0xC00000开头。 这是预期的。 前24位是状态字、位于任何通道数据之前。 请记住在使用 RDATA 命令之前发送 SDATAC。

    了解了 START 引脚连接。 听起来好像在接地层上耦合了一些明显的噪声。 如果无法通过任何 R-C 滤波来缓解这种情况、我建议坚持使用 SPI 命令。

    按照初始上电复位启动顺序执行操作后、设置系统的操作顺序如下:

    1. 保持 START 引脚为低电平
    2. 将 SDATAC (11h)发送到两个器件
    3. (如有必要)重新配置器件1的 CLK 引脚以输出内部时钟信号并将其连接到器件2 (CONFIG2[3]= 1)。 器件1必须使用 CLKSEL=1来选择内部时钟、而器件2必须使用 CLKSEL=0来使用外部时钟。
    4. 将两个器件的模式更改为单次触发(CONFIG1[7]= 1)
    5. 将 START (08h)发送到两个器件
    6. MONITOR /DRDY 下降沿(任一器件)
    7. 发送 RDATA (12h)以读取数据。 如果一个设备与主机共享相同的 DOUT 连接、则在从另一个设备读取时需要取消选择该设备。

    此致、

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

    这两个器件共用 DIN 和 DOUT、但都独立使用内部时钟。 为什么共享时钟是必需的? 似乎只要我们可以在两个时钟之间的误差范围内同时采样、我们就可以了。 通过两个 CS 引脚均为低电平的共享 SPI_CLK 在启动操作码(08h)中计时似乎是有效的。 但它不会。

    为了澄清这一点、我打算以固定速率重复步骤5、6和7、以有效控制系统采样率。 同时保持启动低电平。 是这样吗?

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

    我已经按照建议配置了芯片、包括将 ADS1设置为将 CLK 输出到 ADS2。 行为不变。 当 RDATA 被发出且 DRDY 在任何时候都为高电平时、两个芯片都以0xC00000000进行响应。

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

    如果在发出启动操作码时仅为 ADS1拉低 CS、而不是为两个 ADS 芯片拉低 CS、则在发出 RDATA 时 ADS1将发送0xC00000000、但 ADS2 未发出的任何 START 命令将在发出 RDATA 时以看似随机的数据进行响应。 此外、两个芯片都不会将 DRDY 置为有效。 有什么建议吗?

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

    以下是用于单独发送 START 命令的逻辑分析仪跟踪、其中 DRDY 置位、RDATA 收集真实读数。

    这是一条逻辑分析仪走线、将两个 CS 引脚拉至低电平。 没有 DRDY 置位、所有 RDATA 命令返回0xC00000000。

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

    您好、Jonathan、

    首先、为了同步转换、共享两个时钟是绝对必要的。 如果两个器件使用具有相同频率的时钟、并且两个器件具有相同的寄存器设置来配置 Δ-Σ 调制器和数字滤波器 OSR、则数据速率将相同。 那么您是正确的-数据速率的唯一差异将来自时钟频率容差。 但是、这不是我们所说的同步器件。 同步器件将在精确的同时完成其转换(即@ 500SPS)。

    调制器以 FMod = fCLK/4的速率对输入进行采样。 数据速率的计算方法为 FDR = Fmod / OSR。  例如、如果您使用512的 OSR、则每个样本将有512 x 4 = 2048个时钟周期。 假设时钟频率为默认的2.048MHz、两个器件的采样间隔可能为1ms。 START 引脚或命令的目的是将两个器件的转换同步到同一时钟边沿。 因此、两个器件必须同时接收命令或引脚信号。

    我需要您确认您遵循了我之前提供的启动建议。 我们必须验证在上电时器件是否处于正确的默认状态。 您可以发送 SDATAC 命令并从每个器件读回寄存器映射来验证这一点。 图44显示了一个例程示例。 如果您可以启动两个器件、将其启动引脚拉至高电平、并在两个器件上观察/DRDY、我们知道它们仍在运行。 然后、您可以通过发送 START 命令并等待/DRDY 跟随、继续停止转换、将模式更改为单次触发、并测试单次转换。 请记住、在执行命令后等待所需的 tSETABLE、然后等待/DRDY 下降沿。

    我也不明白为什么您只读取36位而不是完整的72位。 每个器件输出24位状态、24位 CH1和24位 CH2。

    此致、

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

    我不关注两个 ADS1292芯片上独立时钟采样的潜在1ms 延迟。 两个芯片将通过同一 SPI 时钟提供启动操作码、并且在接收到操作码后将在其内部512kHz 时钟上独立运行。 稳定时间和过采样时间将是每个芯片上独立时钟之间差异的函数、并且不必相互等待。 例如、当使用 START 引脚使用独立的内部512kHz 时钟触发两个 ADS 芯片时、每个将 DRDY 置为低电平的 ADS 芯片之间观察到的典型差异为3uS。 对于操作码、我会期望类似的结果。 实际上、我们使用操作码观察到 DRDY 低电平之间的增量小于3us。

    这促使我宣布我们已经成功(我们希望!) 通过启动操作码解决了在两个 ADS 芯片上触发采样的问题。 我们原型平台上的其中一个 ADS 芯片"变差"、运行不正常、这极大地阻碍了故障排除工作。 我们通过将固件回滚到"已知正常"的顺序 SPI 触发代码来发现这一点。 在根据您的时序和寄存器配置建议仔细检查我们的代码时、我们能够使双启动操作码采样方法按您的预期工作。

    然而、在发出 START 引脚转换时、PGA 电容器上的噪声尖峰问题仍然存在。 从起搏脉冲检测的参考设计中、您的工程师似乎没有发现此问题、这可能是我们布局的一个函数。  

    我感谢您(以及更大的 e2e 社区)在这一问题上提供及时的专家帮助。 它对这项设计和其他设计工作非常宝贵。 这是我继续在专业和个人项目中使用和指定 TI 器件的一个重要原因。 谢谢!

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

    您好、Jonathan、

    我希望你在7月4日的周末有安全和愉快的时光。

    我很高兴听到您能够解决这个问题! 就可能的1ms 延迟而言、我认为我的工作条件是假设两个器件的 CLK 和 START 信号都是独立的(即 CLK1和 Start1与 CLK2和 Start2)。 我意识到这是一个愚蠢的错误、因为您的整个努力涉及到一个共同的启动脉冲或命令。 鉴于同时接收到 START 信号、唯一的延迟差异应来自每个器件识别 START 脉冲/命令的时间、最坏情况下该时间不应超过一个 CLK 周期。

    如果您将来需要更多帮助、请告诉我们。 祝您好运!

    此致、

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

    最后一个问题。 如前所述、我们在主机处理器 SPI 总线 MISO 线路上共享了两个 ADS 芯片的 DOUT。 我们实施的权变措施是强制两个 ADS 芯片的 CS 处于低电平、以便在 SPI 启动操作码中计时、这两个器件同时通过 DOUT 引脚在 MISO 线路上发出数据、从而导致冲突。 在按顺序完成时、启动操作码期间发出的数据似乎有些随机(每个 CS 引脚依次拉低) 这样、当两个 CS 引脚同时处于低电平时、ADS 芯片可能会在 DOUT/ MISO 上发生碰撞、并尝试将 MISO 拉为高电平或低电平。 这是否会损坏 DOUT? 实际上、它没有、我们也不关心在启动操作码期间 MISO 上的数据。 有什么建议? 在下一个电路板开发中、我们有机会进行硬件更改、哪种首选解决方案不需要额外的控制线? 限制电流的大串联电阻会影响反射/振铃、二极管可能会影响线路电压。 如果 ADS DOUT 引脚能够承受类似的总线冲突、是否可以保持原样?是否预计会出现长期故障? 谢谢!

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

    您好、Jonathan、

    我认为总线争用问题不会对器件造成任何损坏、但我无法肯定。 这不是我们长时间测试的结果。 我们确实在+/- 500uA 测试了数字输出逻辑电平。 如果连接了两个 DOUT 引脚并瞬间处于争用状态、则可能存在至少500uA 的电流从一个引脚流向另一个引脚。 这不违反绝对最大额定值(100mA)。 瞬时)。 在某些情况下、DOUT 引脚的输出级将受到其可拉/灌电流的限制、电压将下降到 VOH 和 VOL 之间的电平。

    在不添加控制信号的情况下、理想的解决方案是以菊花链形式连接输出数据。 这将仅使用控制器上的一条 MISO 线路。 这两个器件始终由相同的/CS 和 DIN 信号控制、用于发送启动信号、写入寄存器和读取数据。

    此致、

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

    不幸的是,我们宣布胜利为时过早。 由于硬件仪表限制、我们在验证 DRDY 功能之前观察到 PGA 电容器上的纯净信号、并且 DRDY 功能正确后、假设 PGA 信号仍然纯净、我们尚未进行 PGA 电容器测量。 并非如此。

    是的、我们已强制两个 ADS 芯片(ADS1=ADS1292、ADS2=ADS1292R)按数据表中所示运行、每个芯片通过拉低两个 CS 引脚来正确地将 DRDY 置为有效、以响应通过 SPI 传输的同步启动操作码。 但是、与使用 START 引脚执行相同操作时一样、PGA 电容器上会出现与 START 操作码一致的尖峰。 实际上、既然我们已经消除了限制操作码正确 SPI 通信的代码问题、我们就恢复到了顺序启动操作码方法、该方法也在 PGA 上提供了尖峰。 几个要点:

    当 CS 时序太快时、依次发送启动操作码(ADS1、然后是 ADS2)、ADS1将不会正确将 DRDY 置为有效、但会继续通过 RDATA 操作码转换和发送真实、正确的数据样本。 未观察到 PGA 尖峰。

    2.当按顺序发送启动操作码(ADS1和 ADS2)时、CS 时序足够时、两个 ADS 芯片将 DRDY 正确置位。 观察到 PGA 尖峰。

    3.当 CS 时序足够时、顺序发送启动操作码(ADS2和 ADS1)时、两个 ADS 芯片将 DRDY 正确置位。 观察到的 PGA 尖峰行为更糟。

    4. 当按顺序发送启动操作码(ADS2、然后是 ADS1)时、CS 时序过快时、ADS2将不会正确地将 DRDY 置为有效、但会继续通过 RDATA 操作码转换和发送真实、正确的数据样本。 观察到的 PGA 尖峰行为更糟。

    4.当发送启动操作码时同时将 CS 置为有效时、确保两个 ADS 芯片正确将 DRDY 置为有效、观察到 PGA 尖峰。

    想法? 当 ADS 未将 DRDY 置为有效、但在发出 RDATA 操作码(单次触发、SDATAC)时以看似真实的数据进行响应时、ADS 会发送什么? 为什么 ADS1或 ADS2的阶数会影响噪声? 几乎看起来 ADS1是噪声源、可能是不良的。 但是、我们也观察到其他电路板上的噪声尖峰、因此它必须是 ADS1292和 ADS1292R 之间的差异或电路板设计。 这是一个很难固定的问题。 我们欢迎您提出任何其他想法。