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.

[参考译文] ADS1293:ADS1293与放大器的垃圾输出;Arduino 接口

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1166486/ads1293-garbage-output-from-ads1293-arduino-interfacing

器件型号:ADS1293

您好!

我们已将 ADS1293原型模块与 Arduino 相连接。 我们已经尝试了 TI 推荐的所有方法、但输出看起来像是一个垃圾值。

我知道 TI 不支持其他控制器、但应该有关于如何将 ADS1293与控制器连接的任何信息。  

大家都在问这个问题、因为它不能直接连接到 ads1293与其他控制器。  

请建议解决此问题的任何方法。

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

    您好!

    我是否可以问您是否碰巧拥有评估套件/评估板(EVM)?

    此外、是否已检查 ADS1293是否满足数据表中列出的功率要求

    7.1绝对最大额定值和 7.3建议运行条件?

    Arduino 是带有微控制   器的电路板、最有可能来自 AVR、Atmel 或 Microchip Technology 的 ATMega 微控制器。

    问题 可能是客户是否可以使用 Adurino 提供的库或创建代码来操作 Arduino 板上的 MCU 以满足时序图(例如 SPI)和/或数据表中指定的要求、并从寄存器读取或写入值。

     

    首先要检查的是、您是否能够使用 Arduino 与 ADS1293进行通信。  使用数据表图29中所示的协议、您是否能够从寄存器正确读取默认值?  

    一些可能尝试使用其默认值的寄存器为

    图82. REVID:版本 ID

    然后查看客户是否可以写入 8.6.2输入通道选择寄存器图33中所示的寄存器。 Flex_CH1_CN:通道1的灵活路由开关控制

    以将其配置为测试信号并从通道读取测试信号。

    然后、  

    您是否使用 了任何 ECG 模拟器、电极和电缆? 确保它们都很好。

    建议一次送入一个通道/向其中一个通道注入已知正常信号(KGS)、并尝试一次只读取一个通道。

    谢谢

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

    您好!

    感谢您的回复和时间。

    1.不 我在两块电路板上进行测试。 a) Protocral 模块 B)我们自己的 PCB  

    2.我已经从数据表中检查了7.1和7.3,我确信所有的电源要求都已满足。

    3.我已经检查了 REVID 的默认值、并且我得到正确的输出作为"1"。

    4.当我根据9.2.1.2写入值、然后读回相同的值时、我将得到正确的结果。

    5.我正在使用 Arduino 的串行监视器查看输出。 此外、我还确保使用的电极和电缆都良好。

    我不知道如何 "一次送入一个通道/向其中注入已知正常信号(KGS)、并尝试一次只读取一个通道。"

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

    您好!

    原因

    "

    1. 您遇到问题的模块是哪一个?"

    如果您在主板上遇到问题、您可能需要联系"ProtoCentral"。

    "

    原因

    "

    5.我正在使用 Arduino 的串行监视器查看输出。 此外、我还确保使用的电极和电缆都良好。

    我不知道如何 "一次送入一个通道/向其中注入一个已知正常信号(KGS)、并尝试一次只读取一个通道。

    "

    您可以先尝试 ADS 内部测试信号、然后查看是否可以正确读取内部测试信号。 之后、强烈建议使用 ECG 仿真器注入任何 ECG 或正弦波形进行检查。

     在尝试上述操作项目5后、是否可以提供一些波形或图?

    同时、我们可以查看此线程以确保 SPI 通信满足时序要求-

    https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/775262/faq-ads129x-i-m-having-trouble-communicating-with-my-ads129x-device-via-spi-what-debug-steps-i-should-try/2868427#2868427

    谢谢

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

    您好!

    1.我已经联系过交通枢纽团队。 他们在自己的设施中测试了整个设置、并获得了 ECG 信号。 但当我们测试@我们的设施时、它不起作用。 它具有某种优势。  

    2.我的问题仍然是如何读取内部测试信号? 我可以从互联网上获取有关这方面的信息。  

    我已经查看了 SPI 通信时序图。  

    感谢你的帮助

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

    您好!

    1.我已经联系过交通枢纽团队。 他们在自己的设施中测试了整个设置、并获得了 ECG 信号。 但当我们测试@我们的设施时、它不起作用。 它具有某种优势。  

    注释:您能问我设置或配置的区别是什么? 或者、您是否考虑获取 TI 评估板/套件(EVM)?

    2.我的问题仍然是如何读取内部测试信号? 我可以从互联网上获取有关这方面的信息。  

    注释:您的 SPI 线路信号是否符合数据表中的时序图?

    如果是、您是否能够将相同的值写回 8.6.2输入通道选择寄存器(从8.6.2输入通道选择寄存器中读回)图33。 Flex_CH1_CN:通道1的灵活路由开关控制?

    谢谢

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

    您好!

    1.他们的设置或组件与我的相同、但仍然有输出、我没有得到输出。 实际上、TI 评估板对我来说并不是一种优势、因为我正在制造小型器件。

    2.我能够向  Flex_CH1_CN 写入和读取值: 通道1的 Flex 路由开关控制。 但是、当我从0x37、0x38、0x39读取通道1时、我 无法获得正确的输出。  

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

    您好!

    因为、"它们具有与我相同的设置或组件、但它们仍具有输出、我无法获得输出。 实际上、TI 评估板对我来说并不是一种优势、因为我正在制造小型器件。"

    TI EVM 可能不是制造微型器件的理想选择、但它是用于调试/故障排除以及了解如何提供正确电源和通信信号(例如 SPI)是使主机和器件正常工作。

    换言之、如果您有 EVM、则可以检查电路板布线、所需的最低寄存器设置和通信信号是否正确、并可以在电路板和 EVM 电路板上重现问题。

    或者、您是否会问  "ProtoCentral" 它们的寄存器设置是什么、以便它们在电路板上工作、因为寄存器设置也取决于电路板设计和/或组件。

    对于2、

    您能否阅读0x40 图82。 REVID:版本 ID 是否正确?

    如果是、请继续执行以下操作-

    然后、当您说"...未获得正确的输出..."时、 读取 0x37、0x38、0x39 图79。 DATA_CH1_ECG:通道1 ECG 数据。

    这是什么意思?

    您的信号源是什么?

    您能否尝试配置0x01  图33。 Flex_CH1_CN:通道1的柔性路由开关控制、用于向通道1提供测试信号?

    您能尝试一下

    8.6.1工作模式寄存器0x00h 位0至1?

    谢谢

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

    您好!

    对于2、  

    当我说在读取 0x37、0x38、0x39 时无法获得正确的输出时、如图79所示。 DATA_CH1_ECG:通道1 ECG 数据、意味着根据数据表、我们将通过读取这些寄存器来获得 CH1输出。

    信号源将在我连接到人体时。  

    我已经根据数据表配置了所有寄存器、并通过读取它们进行了验证。  

    寄存器0x00配置为值"1"。  

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

    您好!

    您能否阅读0x40 图82。 REVID:版本 ID 是否正确?

    如果是、那么让我们尝试一下、在转到外部输入信号之前、是否可以先读取内部测试信号-

    您能否尝试配置0x01  图33。 Flex_CH1_CN:通道1的柔性路由开关控制、用于向通道1提供测试信号?

    您是否可以尝试 8.6.1操作模式寄存器0x00h 位0至1?

    您能否正确读取内部测试信号?

    在调试和故障排除阶段、您是否可以使用 ECG 模拟器并首选右腿(RL)节点、而不是人体?

    谢谢

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

    您好!

    1.当我读取0x40 REVID 时、我得到了"1"作为答案。  

    2.您能告诉我如何读取内部测试信号吗?

    3.我已经将0x00h 位配置为"1"。

    感谢你的帮助。

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

    您好!

    您是否验证并检查了寄存器值 Read & Write All 是否正常工作?

    ----------------------------------------

    如果是、则在加电和正确复位后、请遵循数据表9.2.1 3导联 ECG 应用和9.2.1.2详细设计流程
    但是/但是、对于地址  

    0x01h 位7:6、请尝试写入01或10、或 如8.6.2输入通道选择寄存器中所述的11

    0x02h 位7:6、请尝试写入01或10、或 如8.6.2输入通道选择寄存器中所述的11

    然后 、将 8.6.1运行模式寄存器0x00h 位0配置为1。

     8.3.3测试模式中提到了预期的 ADC 输出代码。

    谢谢

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

    您好!

    1.是的。 我已经通过写入和读取来检查所有寄存器值。 它符合9.2.1.2。  

    2.我已将0x01h 更改为0x40h、将0x02h 更改为0x80。 也将0x00h 配置为"1"。

    对于第2种情况、输出为连接状态。    

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

    建议转换为电压并绘制图、以及 查看/查看和比较。

    请确保  图37为0x05h。 Flex_VBAT_CN:用于电池监控 的灵活路由开关 VBAT_MONI_CHX iaRESET 为0

    对于0x01h 位7:6和 0x02h 位7:6、尝试写入01或10或11并绘制信号图、以查看是否可以看到正、负和零(内部短路)测试信号。

    尝试将所有0写入0x01h 图33。 Flex_CH1_CN:通道1的灵活路由开关控制、应仅提供随机浮动噪声。

    谢谢

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

    您好!

    我要将值转换为电压、但这并不有用。 因为我得到的输出根本不是 ECG 波形。

    我已经尝试过以上所有操作。 这是输出。

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

    您好!

    我们还没有实现。

    从前面的讨论中、我们需要进行一些测试、以查看是否可以正确读取内部测试信号。

    请告诉我-

    请确保  图37为0x05h。 Flex_VBAT_CN:用于电池监控 的灵活路由开关 VBAT_MONI_CHX 设置为0

    对于0x01h 位7:6和 0x02h 位7:6、尝试写入01或10、或11并绘制信号图、以分别查看是否可以看到正 极或负极或零(内部短路)测试信号?

    请参阅数据表 8.3.3测试模式以验证您的 ADCout 代码或电压读数。

    尝试将所有0写入0x01h 图33。 Flex_CH1_CN:通道1的灵活路由开关控制、应仅提供随机浮动噪声。

    只有在验证了上述内容后、才尝试连接 ECG 模拟器(例如 RA 和 LL)连接到通道1输入。

    谢谢

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

    您好!

    以下是方案的输出"  

    请确保  图37为0x05h。 Flex_VBAT_CN:用于电池监控 的灵活路由开关 VBAT_MONI_CHX 设置为0

    对于0x01h 位7:6和 0x02h 位7:6、尝试写入01或10、或11并绘制信号图、以分别查看是否可以看到正 极或负极或零(内部短路)测试信号?"

    答案:  

    这是我获得的输出。

    2. 尝试将所有0写入0x01h 图33。 Flex_CH1_CN:通道1的灵活路由开关控制、应仅提供随机浮动噪声。

    这是输出

    值正在变化、但由于相对于值的变化很小、我们只看到直线。  

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

    您好!

    对于您发布的第1幅图/图、我看到了三行、它们对应/对应于"0x01h 位7:6和 0x02h 位7:6、01或10、或11"的不同设置吗?

    您能否将它们转换为电压?

    对于第二个图形/图、您是否也可以将其转换为电压?

    ----------------------------------------------------

    请注意、ADCmax 取决于 ODR 集

    图51。 AFE_RES、

    图67. R1_RATE、

    图63。 R2_RATE 和

    图64。 R3_RATE 通道  

    数据表8.3.7可编程数字滤波器和第33页第8.4.1节中提到的特性。

    --------------------------------------------------

    您的"图51。 AFE_RES"设置?

    您的"图67。 R1_RATE:R1抽取率"设置?

    您的"图63。 R2_RATE:R2抽取率"设置?

    您的"图64. R3_RATC_CHX: 通道 x"设置的 R3抽取率?

    ------------------------------------

    因此、根据上面选择的组合、

    ADCmax 可能如下所示-

    0x800000 = 十进制8、388、608 = 24b 1000 0000 0000 0000 0000 0000

    0xF30000 =十进制15925248 =   24b  1111 0011 0000 0000 0000 0000

    等等

    例如、如果上述设置均为默认值、则 ADCmax 应为 0x800000 = 十进制8、388、608 = 24b 1000 0000 0000 0000 0000 0000 0000 0000、ODR 25Hz。

    因此、请检查上述寄存器设置并使用表来查找正确的 ADCmax 和 ODR。

    谢谢

    谢谢

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

    您好!

    1。  

    对于您发布的第1幅图/图、我看到了三行、它们对应/对应于"0x01h 位7:6和 0x02h 位7:6、01或10、或11"的不同设置吗?

    您能否将它们转换为电压?

    对于第二个图形/图、您是否也可以将其转换为电压?

    第1幅图表示0x01h 位7:6为01、0x02h 位7:6为10。 您可以看到蓝色和红色两条扁平线对应于0x01h 和0x02h。

    我有疑问。  

    我使用以下值:

    AFE_RES - 0

    R1_RATE - 0

    R2_RATE - 2.

    R3_RATCH_CH1 - 2

    您能否给出一些将代码输出转换为电压输出的示例。

    2.  

    您的"图51。 AFE_RES"设置?

    您的"图67。 R1_RATE:R1抽取率"设置?

    您的"图63。 R2_RATE:R2抽取率"设置?

    您的"图64. R3_RATC_CHX: 通道 x"设置的 R3抽取率?

    AFE_RES - 0

    R1_RATE - 0

    R2_RATE - 2.

    R3_RATCH_CH1 - 2

    根据上述设置、我认为我的 ADCmax = 0xB964F0、ODR = 853、BW = 175。

    正确吗?

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

    您好!

    对于"第1张图用于0x01h 位7:6为01、0x02h 位7:6为10。 您可以看到蓝色和红色两条扁平线对应于0x01h 和0x02h。"

    它们的 ADC 代码值是多少?  只需从每个通道报告1个值即可、或者从同一通道内的多个样本中获取一个中值。

    --------------------------------------

    您可以设置0x01h 位7:6、01 (正)、11 (零)和10 (负)吗? 然后、检查您是否可以分别从 High (正)、Zero (中间)和 Low (负)查看数据?

    如果没有、我们需要检查 MCU 时钟和/或解码/解析 ADC 代码的方式。

    ----------------------------------------

    原因

    AFE_RES - 0 、即102.4KHz

    R1_RATE - 0  、即 R1 = 4:标准 PACE 数据速率

    R2_RATE - 2 、即 0010:5

    R3_RATCH_CH1 - 2、即 00000010:6

    因此、请参阅第33页 的表8。 SDM 以102.4kHz 运行和标准步速数据速率运行时的通道参数(R1 = 4)

    ECG 通道

    ADCmax、   ODR     BW 为  

    0xB964F0   853      175.

    0xB964F0 = b'1011 1001 0110 0100 1111 0000 = 12150000

    ----------------------------------------------------

    请问 您的 Vref 可能是什么? 您是否选择2.4V 电压?

    ----------------------------------------------------

    '如果使用内部基准电压发生器、则 Vref 等于2.4V、ADCMAX 表示 ADC 的最大输出代码、这将对应于 Σ-Δ 调制器输入端的理论2.4V 信号。'

    测试信号电压取决于所选的 Vref; vtest = VREF/12。

    因此、 如果 Vref 选择为2.4V、

    根据    上述寄存器设置、如果 ADCmax 为0xB964F0 = b'1011 1001 0110 0100 1111 0000 = 12150000、则2.4V 应约为 ADCmax 代码

    0xB964F0=   12150000。

    然后、Vtest 应在2.4V/12 = 0.2V  正电压或负电压附近保持稳定、具体取决于 上述位7:6中设置的值。

    --------------------------------------------------

    您可以尝试将 通道的位7:6设置为11吗?

    '当 TSTx = 11时、通道中仪表放大器的输入可被短接以提供一个零测试信号。 预期的 ADC 输出代码公式可简化为:"

    ADCout = ADCmax 的1/2、因此如果基于上述设置的 ADCmax 为 0xB964F0 = 12150000、则零伏或输入短路测试应给出大约 12150000/2 = 6、075、000的 ADCout 代码。

    谢谢

    谢谢

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

    请找到我的 ADC 值图。

      0x01h 位7:6的图为01:

     0x01h 位7:6的图为10

     0x01h 位7:6的图为11

    5.我正在对 ADS1293模块应用3.3V 电压。 那么、它是 Vref 值吗?

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

    请问 您的 Vref 可能是什么? 您是否选择2.4V 电压?

    VREF 取决于您的电路板是选择/使用内部基准电压还是外部基准电压。

    您能否检查电路板上的 VREF 引脚是否连接了任何东西?

    并且、寄存器0x11位0 SHDN_REF 值是多少?

    SHDN_REF 关断内部2.4V 基准电压

    0:内部基准电压为 ON (默认值)

    1:关闭内部基准电压

    注意:启用此位可在 CVREF 引脚上使用外部基准电压驱动 IC。 断电模式自动关闭内部2.4V 基准电压。

    谢谢

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

    您好!

    我认为我选择了2.4V 内部电压基准。 我的0x11位0值为0、因为我尚未配置它、当我读取该寄存器时、它仅显示0。  

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

    您好!

    由于美国的感恩节假期、我们的回应将会延迟。  在11月28日的一周内、Chien 将返回您的位置。 感谢您的耐心等待。

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

    您好!

    如果您将 Vref 设置为内部2.4V。

    因此、根据先前的讨论/来自之前的讨论-

    请 参阅第33~36页的表8~11、根据您的设置查找您的"ADCmax"(例如 SDM、R1、R2、R3)

    然后、按照第8.4.3节输出代码(ADCOUT) 计算适当的 ADCout 并将其转换为电压

    '如果使用内部基准电压发生器、则 Vref 等于2.4V、ADCMAX 表示 ADC 的最大输出代码、这将对应于 Σ-Δ 调制器输入端的理论2.4V 信号。'

    测试信号电压取决于所选的 Vref; vtest = VREF/12。

    因此、 如果 Vref 选择为2.4V、

    您查找到的 ADCmax 代码应等效于2.4V、然后、vtest 应约为2.4V/12 = 0.2V;正或负、具体取决于 上述位7:6中设置的值。

    例如、ADCout 代码=(3.5*(0.2V)/(2*2.4V)+ 1/2)* ADCmax

    --------------------------------------------------

    在进行上述计算后、

    进行了比较

    "

    对于"第1张图用于0x01h 位7:6为01、0x02h 位7:6为10。 您可以看到蓝色和红色两条扁平线对应于0x01h 和0x02h。"

    什么是 ADC 代码和转换后的电压值? 它们是否合理、例如+0.2V 或-0.2V 或接近0V?

    例如、ADCout 代码=(3.5*(0.2V)/(2*2.4V)+ 1/2)* ADCmax;您应反向计算从 ADCout 代码和 ADCmax 到输入电压的输入电压。

    您可以设置0x01h 位7:6、01 (正)、11 (零)和10 (负)吗? 然后、检查您是否可以分别从高(正)、零(中)和低(负)处查看数据?"

    您可以尝试将 通道的位7:6设置为11吗?

    '当 TSTx = 11时、通道中仪表放大器的输入可被短接以提供一个零测试信号。 预期的 ADC 输出代码公式可简化为:"

    ADCout = ADCmax 的1/2、因此零伏或输入短路测试应给出 ADCmax/2附近的 ADCout 代码。

    --------------------------------------------------

    如果 ADCout 代码和转换后的电压不正确、我们需要检查 MCU 时钟的方式和/或 SPI 和软件如何解码/解析数字输出和 ADC 代码。

    顺便说一下、

    Arduino 不是 TI 产品、因此 我们提供的支持非常有限。

    谢谢