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.

[参考译文] ADS1261EVM:MISO 回波上的低位不正确

Guru**** 2393725 points
Other Parts Discussed in Thread: ADS1261, ADS1235

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

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1057304/ads1261evm-low-bit-incorrect-on-miso-echo

器件型号:ADS1261EVM
主题中讨论的其他器件:ADS1261ADS1235

我使用具有单独 ESP32处理器的 EVM 来驱动电路板。

按照手册中的说明、我将 JP1置于三态。

一切都很好 几乎。

我发送0x06命令、"ECHO"在 MISO 上返回0x07。

示波器轨迹显示了这一故事。

第一条轨迹是“概述”。 发送0x06并接收(应该是)返回0x06。

第二条迹线是最后一位的特写。 显示 ESP 仅需40ns 即可到达零。 它会得到1、这就是我返回0x07的原因。

ADS1261只允许在最后一位上40ns、而不是"正常"半时钟。

这对于 ESP32来说似乎太快。

我有什么问题吗?

时钟为1MHz;MSB 在前;mode1

示波器图像上的跟踪顺序是、

时钟(黄色)、MISO (紫色)、MOSI (蓝色)。

谢谢、Tom

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

    您好、Tom、

    耦合到 DOUT 和 DIN (最明显的是 DIN)的 SCLK 线路上似乎有一些相当显著的噪声。 这肯定会导致数字通信问题。

    我会尝试隔离该噪声的来源并将其清理干净。 此外、确保两个板之间具有牢固的接地连接、否则会发生通信错误。

    布莱恩

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

    Bryan、

    感谢您的回复。

    我有一个星形地(示波器、esp32、ADS1261)..

    我可以尝试把它加一点。

    但这不能解决40ns 问题。

    时钟下降沿之后、我保证 MISO 上的有效低电平位存在多长时间?

    示波器仅在40ns 内显示。

    问题的一部分似乎是 DOUT 的双占空比。

    数据表中的说明。

    传播延迟时间、最后一个 SCLK 下降沿到有效的时间
    DOUT/ DRDY 上的数据就绪功能--> 110ns

    这意味着我必须对最后一个实数 MISO 位进行采样的最长时间为110ns。 但最短时间是多少? 。 我的 SPI 驱动器必须具有多快?

    如果我在 ESP32上以40ns 的速度工作.. 如果我们更改为具有不同驱动程序的替代平台、会发生什么情况?

    期待收到响应。

    Tom

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

    您好、Tom、

    在此序列中、您要尝试完成哪些任务? 您正在发送 RESET 命令(0x06)、但也必须运行转换。 在此期间、您是否将 START 引脚保持在高电平? 在为 RESET 命令计时后、必须触发某个事件以使 DRDY 变为高电平、这通常是新转换的开始。

    您还可以打开 CRC 以检查通信是否正确传输。

    是否可以仅使用专用 DRDY 引脚?

    下面显示了在 DOUT/DRDY 模式下数据失效前、最短超时最后一位的时序。

    布莱恩

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

    Bryan、

    再次感谢快速响应。

    有所改进、但低位仍有错误。

    如果我使用 FPGA 读取它、则15ns 可以正常工作、但使用固件驱动程序时、这似乎是一个问题。 我已经尝试过 DMA、位 bang (ESP32处理器以240Mhz 运行)。 我还没有尝试汇编器。

    我做了以下改进。

    -将地面从地面上看。

    ~事务后 CS μ s 处于低电平的时间延长。

    -确保 START 为低电平。

    -我连接了 Saleae 逻辑分析仪、它与我的低位问题相匹配。 它会得到相同的错误.. 大部分时间... 但并非总是如此。 它有两种方法:我得到 了正确的位、它出错了、它是错误的、我是正确的、我们都得到了错误的低位、或者我们都得到了良好的低位。 侧注. 在复位命令中、MISO 在20ns 后变为高电平、并在大多数 TME 中获得不良回波(0x07)、 但在寄存器读取 MISO 时、MISO 在40ns 后变为高电平(这些在大多数时间都正常工作;请参阅下文)。

    -调整 SCLK 频率。 低于7MHz 时始终失败... 高于10MHz 时始终失败。 8MHz 的工作时间为95%(到目前为止)。 我通常可以在8MHz 时正确读取所有寄存器(95%)。

    似乎没有一件事让它变得更好.. 所有的人都参加了这次活动。。。

    这有点吓人、因为我不想花很多时间(在最终应用中)处理 CRC 错误。

    我现在正在尝试进行实际转换、以便我可以认为我正在取得进展。

    这些文档说:“命令在第16个下降时钟边沿上生效(无 CRC)。 所有命令? 只使用 start 命令? 这是否位于表19中显示的命令序列的顶部?

    所以、

    1)由于 Saleae 与我的驱动器匹配(有点)、是否还有其他考虑了低位 PROB?

    2) 2)有关"命令生效..."的任何帮助 非常感谢

    谢谢、

    Tom

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

    您好、Tom、

    其他命令是否表现出相同的行为?

    此外、您能否确认复位命令是否实际生效? 如果命令处理正确、寄存器值应重置为默认值、以便您可以更改某些寄存器、发出命令、然后读回寄存器以查看它们是否返回到默认值(还应检查您的初始 WREG 是否正确发生)。

    是否可以在系统中使用专用 DRDY 引脚而不是组合引脚? 这将解决您看到的问题、假设您可以进行此更改。

    关于命令何时生效的问题、这适用于所有命令。 因此、基本上在表16中的命令的字节2 (无 CRC)之后或字节4 (CRC)之后。

    布莱恩

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

    Bryan、

    进度更新...

    1)事情开始工作。 令人沮丧的是、我不确定原因。 我已备份我尝试过的所有内容、接地稳定、在 CS 上升之前增加延迟等 它仍然工作正常。 感谢您的帮助。。

    2) 2)良好、几乎可以正常工作。 我从斩波稳定转换为交流激励。 而且情况有1/3的不好 ... 大约每三次读数都会损坏。 MSB 在正常时为0x52、在不良时为0xB2。 读数在 LSB 中波动、但 MSB 为0xB2或0x52。 Saleae 同意我的代码0xB2、0x52。

    那么、我尝试了什么、

     -按照数据表第74页上的5个步骤操作。

    -将转换延迟增加到17.8ms (我尝试了几个其他值,即300+us)

    -使用 AIN4和 AIN5验证示波器(请参阅所附的图像)。 前面有垃圾、但我认为转换开始延迟应该会超过该延迟。

    -我更改/添加了各种延迟。

    -我将 SPI 频率从1MHz 改为7MHz

    -我 偶尔会切换回"斩波"模式、一切都正常。

    -我尝试了一次性转换模式和连续转换模式。 没有区别。

    -无论我尝试什么、0xB2的速率都不会改变、更不用说解决问题了。

    我没有尝试过的、

    -添加 CRC .. 我希望避免这种情况,希望你能找到我所做的愚蠢的事情。

    这些寄存器如下所示。 良好的(带斩波器)和不良的(带交流激励)。

    这些是斩波器 Init Regs。 这些都很好!

     spiCommand (hspi、0x06);         //重置
     delayMicroseconds (1000);
     WritspieReg (hspi、0x02、0x23);   // 20sps .. 新4.
     WritspieReg (hspi、0x03、0x21);   //连续转换.. 50us 启动延迟
     WritspieReg (hspi、0x04、0xC0);   // GPIO
     WritspieReg (hspi、0x05、0x04);   //无状态.. 无 CRC
     WritspieReg (hspi、0x06、0x10);   //内部参考。
     delayMicroseconds (2000);
     WritspieReg (hspi、0x10、0x07);   // PGA 打开... 增益128
     WritspieReg (hspi、0x11、0x12);   // Mux。 AIN0正极、AIN1负极
     digitalWrite (START_Pin、HIGH);//开始自动转换


    这是 AC 激励 Init Regs。 这些故障是1/3时间的故障

     spiCommand (hspi、0x06);         //重置
     delayMicroseconds (1000);
     WritspieReg (hspi、0x02、0x24);   // 20sps .. FIR
     WritspieReg (hspi、0x03、0x6D);   //连续转换。 17.8ms 启动延迟
     WritspieReg (hspi、0x04、0xC0);   // GPIO
     WritspieReg (hspi、0x05、0x04);   //无状态.. 无 CRC。
     WritspieReg (hspi、0x06、0x10);   //内部参考。 POS 内部、Neg 内部
     delayMicroseconds (2000);
     WritspieReg (hspi、0x10、0x07);   // PGA 打开... 增益128
     WritspieReg (hspi、0x11、0x12);   // Mux。 AIN0正极、AIN1负极
     digitalWrite (START_Pin、HIGH);//开始自动转换

    感谢您的任何帮助、

    Tom

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

    Bryan、

    进度更新...

    1)事情开始工作。 令人沮丧的是、我不确定原因。 我已备份我尝试过的所有内容、接地稳定、在 CS 上升之前增加延迟等 它仍然工作正常。 感谢您的帮助。。

    2) 2)良好、几乎可以正常工作。 我从斩波稳定转换为交流激励。 而且情况有1/3的不好 ... 大约每三次读数都会损坏。 MSB 在正常时为0x52、在不良时为0xB2。 读数在 LSB 中波动、但 MSB 为0xB2或0x52。 Saleae 同意我的代码0xB2、0x52。

    那么、我尝试了什么、

     -按照数据表第74页上的5个步骤操作。

    -将转换延迟增加到17.8ms (我尝试了几个其他值,即300+us)

    -使用 AIN4和 AIN5验证示波器(请参阅所附的图像)。 前面有垃圾、但我认为转换开始延迟应该会超过该延迟。

    -我更改/添加了各种延迟。

    -我将 SPI 频率从1MHz 改为7MHz

    -我偶尔会切换回"斩波"模式、一切都正常。

    -我尝试了一次性转换模式和连续转换模式。 没有区别。

    -无论我尝试什么、0xB2的速率都不会改变、更不用说解决问题了。

    我没有尝试过的、

    -添加 CRC .. 我希望避免这种情况,希望你能找到我所做的愚蠢的事情。

    这些寄存器如下所示。 良好的(带斩波器)和不良的(带交流激励)。

       这些是斩波器 Init Regs。 这些都很好!

         spiCommand (hspi、0x06);         //重置
         delayMicroseconds (1000);
         WritspieReg (hspi、0x02、0x23);   // 20sps .. 新4.
         WritspieReg (hspi、0x03、0x21);   //连续转换.. 50us 启动延迟
         WritspieReg (hspi、0x04、0xC0);   // GPIO
         WritspieReg (hspi、0x05、0x04);   //无状态.. 无 CRC
         WritspieReg (hspi、0x06、0x10);   //内部参考。
         delayMicroseconds (2000);
         WritspieReg (hspi、0x10、0x07);   // PGA 打开... 增益128
         WritspieReg (hspi、0x11、0x12);   // Mux。 AIN0正极、AIN1负极
         digitalWrite (START_Pin、HIGH);//开始自动转换


       这是 AC 激励 Init Regs。 这些故障是1/3时间的故障

         spiCommand (hspi、0x06);         //重置
         delayMicroseconds (1000);
         WritspieReg (hspi、0x02、0x24);   // 20sps .. FIR
         WritspieReg (hspi、0x03、0x6D);   //连续转换。 17.8ms 启动延迟
         WritspieReg (hspi、0x04、0xC0);   // GPIO
         WritspieReg (hspi、0x05、0x04);   //无状态.. 无 CRC。
         WritspieReg (hspi、0x06、0x10);   //内部参考。 POS 内部、Neg 内部
         delayMicroseconds (2000);
         WritspieReg (hspi、0x10、0x07);   // PGA 打开... 增益128
         WritspieReg (hspi、0x11、0x12);   // Mux。 AIN0正极、AIN1负极
         digitalWrite (START_Pin、HIGH);//开始自动转换

       感谢您的任何帮助、

       Tom

    AIN4 and AIN5 at Terminal Block

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

    您好、Tom、

    您是否使用交流激励测量电桥? 如果是、电桥的特性是什么(或者更好的问题是电桥的预期输出电压是多少)?

    您是否曾尝试探测模拟输入上的电压以查看它是否是开关极性?

    您能否发送从 ADC 接收到的数据? 如果您有 Saleae 捕获、您可以发布它、以便我可以查看 SPI 信号的所有数据。

    您能否给我发送一张系统照片、包括电桥的连接方式以及主板如何连接到 EVM?

    布莱恩

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

    Bryan、

    情况正在改善。

    我使用的是 ESP32、它通过 J1跳线连接到 EVM 板。

    回忆一下、


    1) 1)斩波模式工作良好。


    2) 2)使用交流激励时、我得到的半字节最大为"B"或"5"(约为50/50)。


    我实施了 CRC、以确保返回的数据是良好的、这是正确的。
    阅读 TI 的《应用简介》、使用 ADS1235和 ADS1261中的交流激励模式减少电桥测量偏移和漂移并阅读 EVM 原理图上的精稿后,我将从2线更改为4线(即使驱动器只有两条导线....)

    它现在可以正常工作、几乎至少不再 交替使用"B"和"5"。

    正如预期的那样、采样率会降低、但返回的计数是我在斩波模式下得到的值的一半。


     在 Chop 模式下、罗勒值为0x00、0x42、0xF7 (17143)
     在交流输出模式下、Basil 值为0x00、0x86、0x50 (34386)


     几乎正好是2:1 (2.06:1)

    根据文档、这毫无意义。

    那么,这次我出了什么问题?

    我将包括我的接线图和交流激励模式的寄存器设置。

    提前感谢

    提前感谢、


    Tom

     spiCommand (hspi、0x06);         //重置
     delayMicroseconds (1000);       //等待一位
     WritspieReg (hspi、0x05、0x20);   //为后续命令设置 CRC
     WritspieRegCRC (hspi、0x02、0x23);// 20sps .. 新4.
     WritspieRegCRC (hspi、0x03、0x67);// 4线-连续- 328us
     spiWriteRegCRC (hspi、0x04、0xC0);// GP3 -> AIN5、GP2 -> AIN4、两者都输出
     WritspieRegCRC (hspi、0x05、0x20);//无状态.. CRC
     WritspieRegCRC (hspi、0x06、0x0A);//无内部参考。 AIN0外部、AIN1外部
     WritspieRegCRC (hspi、0x10、0x07);// PGA 打开... 增益128
     WritspieRegCRC (hspi、0x11、0x34);// Mux。 AIN2正极、AIN3负极

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

    Bryan、

    抱歉、我忘记了包含激励波形(EXC+和 EXC-)。

    中间的线迹是数学 A 减去 B (加载单元看到的内容)。

    对我来说还行,但你可能会有所不同:-)

    Tom

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

    您好、Tom、

    您如何确定计数? 这基于数据集的峰间噪声。 您是否获取足够的数据来确定噪声?

    您可以向我发送从 ADC 检索到的数据、以便我们进行比较。

    布莱恩

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

    Bryan、

    >如何确定计数?

    我只是在执行 RDATA。

    >您是否获取了足够的数据来确定噪声?

    超过200个样本、其中3 σ 约为交流激励技术的3个计数、3西格玛约为6的斩波技术。 AC EXC 和 Chop 之间的计数几乎完全是2:1。

    >您可以向我发送从 ADC 检索到的数据、以便我们进行比较。

    我可以在今天晚些时候发送数据,但出于我自己的理智...

    1)连接是否正确(参见上一张图)?

    2) 2)寄存器设置(请参阅上一帖子)是否适用于交流激励?

    3) 3)激励波形(请参阅前一示波器波形)是否正常?

    提前感谢、

    Tom

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

    Bryan、

    >如何确定计数?

    我只是在执行 RDATA。

    >您是否获取了足够的数据来确定噪声?

    超过200个样本、其中3 σ 约为交流激励技术的3个计数、3西格玛约为6的斩波技术。 AC EXC 和 Chop 之间的计数值几乎正好是2:1。

    >您可以向我发送从 ADC 检索到的数据、以便我们进行比较。

    我可以在今天晚些时候发送数据,但出于我自己的理智...

    1)连接是否正确(参见上一张图)?

    2) 2)寄存器设置(请参阅上一帖子)是否适用于交流激励?

    3) 3)激励波形(请参阅前一示波器波形)是否正常?

    提前感谢、

    Tom

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

    您好、Tom、

    寄存器设置看起来正确(至少说明、我没有检查您发送的实际字节)。 最好使用 RREG 命令进行确认。

    这将有助于查看电路板的实际图片、以便我可以查看 EVM 上的连接位置。 此 EVM 有一些子关系、您的绘图无法进行通信。

    我看不到您发送的图的形状有什么问题、根据您选择的数据速率和滤波器类型(20SPS 和 sinc4)、它们看起来频率合适。 在图中很难看到、但输出中似乎存在一些噪声、因为波形看起来非常"厚"。 您可能会放大一点、以查看正在发生的情况。 假设使用比例式测量、理想情况下噪声应消除、但如果输入和基准之间的滤波不同、情况可能并非如此。

    我询问如何确定无噪声计数的原因是、2倍的比例因子通常意味着计算误差。 如果差异是随机的、则可能是某个地方的模拟问题、或者噪声可能会引入系统。

    布莱恩

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

    您好、Tom、

    了解您实际施加到 ADC 输入端的电压也会有所帮助。 当 VREF = 5V 且 PGA = 128时、ADC 代码值为34386、对应的电压为160uV。 这是您打算测量的结果吗?

    布莱恩

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

    Bryan、

    谢谢!

    我非常感谢详细的回应、并为该项目注入了活力!

    我将根据您的请求添加一个图像。

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

    Bryan、

    在包括图像之后,论坛似乎接受了我的信息的一部分。

    这里是其余的。。。

    明天我将尝试设置160uv 源、以便我们可以实际看到斩波和交流模式下的计数。

    我在斩波模式和交流激励模式之间运行了热漂移测试、结果表明、交流激励下的 value_delta /度比交流激励低4倍。 我假设这是预期的(也很好)。

    此外,数据表中用于将计数转换为摄氏度的公式似乎与我的计数不匹配。 我在室温下得到719摄氏度。 对于漂移测试、我对其进行了一些攻击、以接近摄氏度。

    我想 我们即将获得一个完全正常运行的系统!

    提前感谢、

    Tom

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

    感谢更新、Tom。

    让我知道您还会发现什么

    布莱恩

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

    Bryan、

    一切都很好!

    1) 1)斩波模式与交流模式之间的差异...

     -我的螺钉向上.. 我将 Ref 设置为内部一种模式、而外部另一种模式。

    2)温度计问题

    -我的螺钉向上.. 我忘记了方程、希望不计算 UV。

    我正在退出工程、成为复印机销售员。

    感谢您的帮助、

    Tom

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

    您好、Tom、

    很高兴您能正常工作、至少这是相对较小的问题、不是全盘的硬件或固件更改。

    布莱恩