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.

[参考译文] ADS131M04EVM:初始化 ADS131 和放大器失败;在 DRDY 引脚上获得中断

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1521858/ads131m04evm-failure-in-initialising-of-ads131-getting-interrupt-on-drdy-pin

器件型号:ADS131M04EVM
主题中讨论的其他器件:ADS131M04

工具/软件:

尊敬的团队:

我通过以下硬件连接将 ADS131m04 与 MCU 连接、唯一的问题是

1.来自连接器的 ADS131 的 CLKIN 引脚保持开路、因为我需要本地振荡器提供该引脚。 我是否应该从 JP6 到 CLKIN 进行外部连接?

2. SYNC/RESET 与 DRDY、我已将其连接到 GPIO、以下是 MCU 侧的 GPIO 配置

   对于 DRDY、配置为数字输入引脚的 GPIO、启用上拉、快速压摆率、禁用无源滤波器、低驱动强度、在下降沿启用中断。

   对于 SYNC/RESET、 配置为 数字输出引脚的 GPIO、启用上拉电阻、快速压摆率、禁用无源滤波器、低驱动强度。

SPI 初始化完成。

未发生 ADC 初始化、DRDY 引脚只中断一次、之后该引脚始终保持低电平。 在这里、如果我监控示波器上的 DRDY 引脚、在启动时我获得 DRDY 为高电平 (1.2V)、然后只有一个中断上升、引脚状态从 1.2V 变为 1V、并保持稳定在 1V、稍后在该引脚上没有观察到中断。

在 SPI 线路上、我可以在 MOSI 上看到一些数据、但在 MISO 上看到一些数据。

这里有什么遗漏的吗?

ADC 启动、下面附上了 lib 文件

.e2e.ti.com/.../ads131m0x.he2e.ti.com/.../ads131m0x.c

谢谢、

Sn

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

    您好 Shraddha naik、

    对于 CLKIN、您可以通过在 EVM 上的 JP6 上插入跳线来使用振荡器 (Y1) 的本地时钟、也可以从 JP6 中移除跳线、但您必须为 EVM 上 B04 ADC 的 CLKIN 提供外部时钟。

    我建议您使用/CS 作为起点。 /CS 信号用于确定帧的开始和结束位置、以便 ADC 可以正确解码命令。 如果您不使用 ADC 上的/CS、则必须更加注意您发送到 ADC 的 SCLK 数量、否则通信将会混乱。

    遵循我的建议后、请分享使用逻辑分析仪捕获的寄存器读取或数据读取的时序、以便我可以为您进行检查。

    BR、

    Dale

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

    尊敬的 Dale Li:

    我已连接 JP6 的引脚 1-2、J6 的 CLKIN 为开路。 这是不是真的

    接下来、我目前正在使用 ADS131m04.exe 只是为了进行实验、Device(ADS 电路板)正在建立连接。 我尝试了从该 GUI 发送复位、待机和唤醒命令、但器件没有响应。 我尝试在示波器上监控 MOSI/MISO 信号、只有 MOSI 信号 I 获得正确数据、MISO 信号(响应)不符合预期。

    您能就此提供帮助吗?

    此致

    Sn

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

    您好 Shraddha naik、

    时钟连接没有问题。

    您能否向我发送一个逻辑分析仪图、其中显示了来自 ADC 的通信信号或发送到 ADC 的通信信号?

    BR、

    Dale

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

    尊敬的 Dale:

    我已附加重置、待机和唤醒命令的快照。 反应不符合预期、每次试验都有变化。

     

    BR、

    Sn

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

    尊敬的 SN:

    应该会对下一帧的第一个字(而不是您发送命令的同一帧)做出响应、请参阅正确的时序示例如下:

    第 1 帧:发送待机命令 (0x0022)

    第 2 帧:请参阅 M04 ADC 对第一个字的响应 (0x0022)

    -戴尔

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

    尊敬的 Dale:

    我尝试捕获的时间更长、但除非我再次发送命令、否则不会出现第二个帧响应。

    因此、根据我的观察、我必须发送复位或任何其他命令 2 次、在第一条命令中、MISO 是虚拟数据、在第二条命令中我得到正确的 resposne。

    正确吗? 所以我应该发送 2 次吗??

    BR、

    Sn

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

    您好、

    您无需发送两次命令。 您是否能够正确地从 ADC 读取任何寄存器?

    -戴尔

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

    尊敬的 Dale:

    从 ADSEVM、现在我在执行下一条命令时得到正确的响应。

    现在、当我将 EVM 与 MCU 连接时、我在初始化方面遇到了挑战。 以下是我的代码流:

    1.时钟初始化

    GPIO 初始化

    3。SPI init- 8MHz、每个 FAME 16 位

    4. ADC Init--ADC library 我从以下链接获取: https://github.com/TexasInstruments/precision-adc-examples/tree/main/devices/ads131m08

    在 adcstartup 期间、我在 MISO 线路上没有看到器件响应

    以下代码片段显示了写入单寄存器- Mode_Address 和模式默认值-

    dataTx={0x61、0x0、0x05、0x11、0x0}

    浅蓝色 — CS

    有什么遗漏的吗?

    BR

    Sn

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

    您好:

    您正在以 16 位格式发送命令、如时序中所示、命令应使用 24 位作为字长、您可以在上一篇文章中看到我与您分享的时序。 此外、使用/CS 信号作为帧的开始和结束。

    -戴尔

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

    尊敬的 Dale:

    我们无法发送  16 位格式的命令?如 ADS 数据表中所述、字大小可配置为 16 位。 我的 MCU 支持每帧最多 16 位用于 SPI 通信。

    作为替代方法、我尝试使用 MCU SPI 设置每帧 8 位并逐字节发送命令。 如下面的屏幕截图所示、2 字节之间存在~3us 的延迟、同时 MISO 上没有响应。

    待机

    唤醒

    BR

    Sn

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

    尊敬的 SN:

    我认为您使用的是 24 位字长、只要将 MODE 寄存器中的 WLENGTH[1:0]设置为 01b、就可以使用 16 位字长。

    可以在下一帧中看到 ADS131M04 ADC 的响应、而不是在 发送命令的同一帧中看到。 以下是我刚刚捕获的时序:

    第 1 帧:在 M04 ADC (MOSI) 的 DIN 上发送待机命令 (0x22)。  

    第二 帧:待机命令的响应 (0x22) 在 M04 的 DOUT (MISO) 上显示在该  帧的第一个字中,也在同一帧的 M04 ADC (MOSI) 的 DIN 上发送唤醒命令 (0x33)。

    第 3 帧: 唤醒命令的响应 (0x33) 在  M04 的 DOUT (MISO) 上显示在此帧的第一个字中、同时在 M04 ADC (MOSI) 的 DIN 上发送 NOP(全 0)以读取同一帧中的数据。

    BR、

    Dale

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

    尊敬的 Dale:

    对于 ADS131、默认情况下、 WLENGTH[1:0]在  复位后设置为 24 位字长。 我无法将其更改为 16 位、因为我的 SPI 通信目前不起作用。  

    因此、我的怀疑是 WLENGTH[1:0]是否 设置为 24 位字长、如果我的 MCU SPI 配置为每帧 16 位数据(如下面的快照所示)、ADC 应至少响应待机/唤醒命令。 对吗? 请澄清。

    如果没有、如何在复位后将 ADC 的 WLENGTH[1:0]更改为 16 位字长?

    从 MCU 端、我尝试将 24 位帧拆分为 16 位和 8 位、但 2 个帧之间存在间隙、如下面的快照所示、在这种情况下 ADC 仍然应该响应? 请澄清

    BR

    Sn

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

    尊敬的 SN:

    如果字长为 24 位、则必须向 ADC 发送 24 位命令。

    具有 3 个字节的命令是不错的、即使 它们之间存在间隙也是如此。  如上一张图像所示发送命令时、是否在下一帧中检查了 MISO 上的数据?

    BR、

    Dale

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

    尊敬的 Dale:

     当您发送最后一张图片中所示的命令时、您是否在下一帧中检查了 MISO 上的数据?

    MISO 上没有我能看到的数据。

    我想我无法从 MCU 端连接到 ADC 本身。 当我尝试通过 ADSSoftware 工具连接时、可以在成功通信后在 MIS MOSI 上看到一些帧、但在尝试从 MCU 连接时看不到任何帧。 仅观察 MISO 上的时钟和数据

    一旦 GPIO 初始化完成,我调用 adcStartup ()。 下面是片段

    void adcStartup(void)
    {
    	uint16_t response;
    
    	/* (OPTIONAL) Provide additional delay time for power supply settling */
    	delay_ms(50);
    
    	/* (REQUIRED) Set nRESET pin high for ADC operation */
    	setSYNC_RESET(HIGH);
    
    	/* (OPTIONAL) Toggle nRESET pin to ensure default register settings. */
    	/* NOTE: This also ensures that the device registers are unlocked.	 */
    	toggleRESET();
    
        /* (REQUIRED) Initialize internal 'registerMap' array with device default settings */
    	restoreRegisterDefaults();
    
        /* (OPTIONAL) Validate first response word when beginning SPI communication: (0xFF20 | CHANCNT) */
    	response = sendCommand(OPCODE_NULL);
    
    	/* (OPTIONAL) Define your initial register settings here */
        writeSingleRegister(CLOCK_ADDRESS, (CLOCK_DEFAULT & ~CLOCK_OSR_MASK) | CLOCK_OSR_256);
    
        /* (REQUIRED) Configure MODE register settings
         * NOTE: This function call is required here for this particular code implementation to work.
         * This function will enforce the MODE register settings as selected in the 'ads131m0x.h' header file.
         */
        //resetDevice();
        writeSingleRegister(MODE_ADDRESS, MODE_DEFAULT);
    
    	response = sendCommand(OPCODE_STANDBY);
    	response = sendCommand(OPCODE_WAKEUP);
    	response = sendCommand(OPCODE_NULL);
        /* (OPTIONAL) Read back all registers */
    
    	/* (OPTIONAL) Check STATUS register for faults */
    }

    ADC 发出的任何命令都没有响应。

    我需要从 ADC 电路板侧检查任何测试点?

    BR、

    Sn

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

    尊敬的 Shraddha naik:

    Dale 今天不在办公室、请预计下周会有回复。 感谢您的耐心

    -布莱恩

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

    尊敬的 SN:

    你说:“没有数据,我可以看到关于 MISO“。 您能否 向我展示 包括第 1 帧和第 2 帧在内的时序?

    您是否还能用 24 位字(3 字节)分享这些代码的时序?

    • writeSingleRegister (mode_address、mode_default);
    • Response = sendCommand (opode_standby);
      响应= sendCommand (opode_wakeup);
      响应= sendCommand (opode_NULL);

    如果我的理解正确、您是 使用飞线将 TI 的 ADS131M04EVM 上的 ADC 连接到您的 MCU 吗? 如果您仍然看到“DRDY 引脚只中断一次、并且该引脚之后始终保持低电平“、则说明连接出现了问题 、因为默认情况下、您应该能够在 ADS131M04 ADC 上电后看到持续的/DRDY 脉冲。 您可以 检查您的硬件连接、或者让我知道您所做的所有连接。  

    BR、

    Dale

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

    尊敬的 Dale:

    如果我的理解正确、您是 使用飞线将 TI ADS131M04EVM 上的 ADC 连接到您的 MCU?

    是、我已将 TI EVM 上的 ADC 连接到 MCU:

    TI'S EVM          代替

    1.接地---------------- > GND

    2. dout----- > MISO

    3. DRDY > 下降沿的 GPIO 输入中断

    4. SCLK----- > SPI CLK

    5. CS --------------------   > GPIO 输出

    6.DIG.CLK----- >未连接

    7.DIN -------------------- > MOSI

    8.复位/同步----- > GPIO 输出   

    当我将 EVM 连接到 ADS 软件工具时、DRDY 脉冲会到来、但当我通过 MCU 连接时、DRDY 上没有信号变化或脉冲(还在示波器上进行检查,其持续低电平)。我只得到一次中断是在 ADC INIT 调用之前。 如果我在 ADC 初始化之后启用全局中断、则 DRDY 上没有中断(信号无变化)。

    下面是时序信号。

    使用 24 位字(3 字节、使用 8 位帧):  

    1.回复 writeSingleRegister (mode_address、mode_default);

    2.回复 Response = sendCommand (opode_standby);

    3.回复  响应= sendCommand (opode_wakeup);

    4.回复  响应= sendCommand (opode_NULL);

    使用 24 位字(3 字节、包含 2 个 16 位和 1 个 8 位帧):  

    1. writeSingleRegister (mode_address、mode_default) 的响应;

    2.回复  Response = sendCommand (opode_standby);

    3.的答复  响应= sendCommand (opode_wakeup);

    4.  阶跃响应  响应= sendCommand (opode_NULL);

     

    BR、

    Shraddha

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

    尊敬的  Shraddha:

     在使用 MCU 时、您是移除了 PHI 控制器卡还是将其连接到 EVM 上的 J5? JP6 上是否有跳线? 您是如何为 M04 ADC 提供电源 (AVDD 和 DVDD) 的?

    BR、

    Dale

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

    尊敬的 Dale:

    在 使用 MCU 时、您是移除了 PHI 控制器卡还是连接到了 EVM 上的 J5?

    没有、我还没有移除 PHI 连接器、即使我与 MCU 连接、ADS 电路板也通过 USB 通电。

    JP6 上是否有跳线? [/报价]

    是、在 JP6 上、引脚 1-2 上连接跳线。

    在 JP9 上、3V3 LDO、JP7 上的跳线断开。

    BR、

    Shraddha

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

    尊敬的  Shraddha:

    您必须移除 PHI 卡、移除 SPI 总线上的串联电阻器和 EVM 上的控制信号、并将这些信号从 ADC 直接连接到 MCU。 否则、ADC 将由 MCU 和 PHI 控制器卡上的 FPGA/处理器连接。 PHI 卡可以强制 SPI/控制信号达到不同电平、并混淆 MCU 的时序。 当您使用自己的 MCU 时、不需要 PHI 控制器卡、但 必须为 EVM 提供外部电源。

    - Dale

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

    谢谢 Dale。

    移除 PHI 控制器卡并为 ADC EVM 板提供外部电源后、它对我来说很有用。

    BR

    Shraddha

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

    尊敬的  Shraddha:

    感谢您的更新。 我很高兴该问题已被确定并得到解决。  如果您有任何其他问题、可以在 E2E 论坛上创建新主题。

    BR、

    Dale