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.

[参考译文] PGA460:为 PGA460上的物体检测读取了错误的值

Guru**** 2587365 points
Other Parts Discussed in Thread: PGA460, PGA460-Q1, ENERGIA

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/647930/pga460-wrong-values-read-for-the-object-detection-on-pga460

器件型号:PGA460
Thread 中讨论的其他部件:, ENERGIA

大家好、

我目前正在使用 PGA460。 我的应用是空气范围传感器。 我使用 Airmar ATK75换能器(75kHz)。

当我尝试读取距离信息时、我会遇到一些问题。 实际上、所有返回的值(8个对象)永远不会更新、并且与我在 PGA460的 TEST 引脚上看到的类似信号不相干。 我已经阅读了有关此案例的常见问题解答、并更改了阈值的值、但没有成功。

因此、我实现了数据转储模式、以便更精确地查看发生了什么。 实际上、数据转储时的初始突发峰值大于模拟输出时的峰值。 加上信号在初始突发后(持续几毫秒)一直保持为0。 即使我提高了最大输出端的增益值、也会一直保持为0。 之后(在记录结束时)、我可以看到有效信号、其峰值对应于实际物体。

我还注意到另一件奇怪的事情、当我更改阈值时、会在数据转储数据上修改初始突发峰值的形状。

如果您有任何线索帮助我找到解决方案、欢迎您。

谢谢你。

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

    感谢您的描述、但我需要看到以下内容来帮助您解决此问题:
    1) 1) TEST 引脚上 AFE 输出的示波器输出以及相应的回波数据转储图。
    3) 3) 10次后续超声波测量结果捕获。
    4)存储器映射寄存器输出文件(.txt)。

    您能否澄清以下内容:
    1) 1)您是否使用 PGA460-Q1 EVM 和 GUI 评估 Airmar ATK75换能器、或者您是否使用自己的硬件和软件?
    2) 2)您是否使用了数字增益乘法器?
    3) 3)您使用的是变压器还是直接驱动模式?
    4) 4)您是否使用了 PGA460的去耦功能之一?

    以下是一些要检查的项目:
    1) 1)如果 EE_CNTRL 寄存器中的 DATAMUMP_EN 位设置为"1"、则仅更新回波数据转储、超声波测量结果不会更改。 如果 DATAMUMP_EN 设置为"0"、则仅更新超声波测量结果、回波数据转储不会更新。
    2) 2)阈值电平的变化不应改变峰值振幅、但如果 SR 和 LR 数字增益乘法器不相同(即 SR=x1、LR=x8)、阈值时序的变化可能会影响回波数据转储输出。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Akeem:

    感谢您的回答。

    首先、请回答您的问题:

    1) 1)     我正在使用 PGA460评估套件、但我使用自己的软件

    2)     否、我不使用数字增益乘法器

    3) 3)     我正在使用变压器模式

    4) 4)     我没有使用任何去耦功能

    关于我的问题,我方面取得了一些进展。

    在每次突发之前,我会更新一些 PGA460的寄存器(增益配置文件、阈值寄存器和一些其他寄存器)。 我需要这样做、因为我想动态修改这些参数。

    我按以下顺序执行命令:更新寄存器、从之前的突发中读取数据、触发突发。 我注意到、我认为是初始突发的数据实际上是我刚刚发送到寄存器的数据。 这就是我更改阈值电平时“初始突发”发生变化的原因。

    然后、我交换对之前突发数据的读取和对寄存器的写入。 现在我的数据转储数据很好。 您对此现象有什么解释吗?

    我还有另外一个问题:

    -         对于阈值1至8、寄存器仅为5位宽。 但在数据表的图8中、该点的符号为0到255之间。 如何在5位宽寄存器和8位宽值之间进行转换?

    谢谢你。

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

    您的新序列是建议的顺序:
    1) 1)写入寄存器以动态更新结果
    2) 2)发送突发+监听命令
    3) 3)获取超声波测量结果或回波数据转储

    但是、即使在旧序列中、回波数据转储和超声波测量结果数据也不应被任何寄存器重新配置命令覆盖。 问题可能与 UART 接收缓冲区在命令之间无法完全清除有关。 在 PGA460 Energia 演示代码(www.ti.com/.../slac741www.ti.com/.../slaa730)中、我定期执行串行刷新命令、以防止每个命令之间的任何残留数据重叠或备份。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Akeem:

    我听从你的建议:

    1) 1)写入寄存器以动态更新结果
    2) 2)发送突发+监听命令
    3) 3)获取超声波测量结果或回波数据转储

    我使用自己的软件来运行回波数据转储、但是、我使用回波数据转储命令、拉动回波转储数据、通过调试读取的数据保持不变、我可能会问是什么导致从 PGA 460读取的回波转储数据保持不变。

     

     

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

    感谢您的回答。

    我需要另一条建议。

    我所说的多个回波存在一些问题。 如果我在传感器前面放置一个大目标、超声波会进行多次往返、从而产生错误回波。 事实上,这不是一个大问题,因为我只需要知道第一个目标的位置。 但是、如果目标离传感器越近、就越接近进入死区。 则 PGA460将读取假回波。 我要做的是、当我的目标位于死区距离时、将测量值冻结在死区距离处。

    你认为这有可能吗? 如果是、您对我有什么建议吗?

    谢谢你。

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

    我有几个问题:

    •回波数据转储在绘制时是否看起来像正确的回波数据转储、或者这些值是随机的?
    •您是否通过探测传感器的正极端子来检查传感器是否实际发生了脉冲?
    •是否在尝试突发+监听之前写入阈值映射?
    •DATADUMP_EN 位是否始终为"1"?

    确保您具有:
    1) 1)至少写入任何阈值寄存器一次以清除 THR_CRC_ERR。 如果 THR_CRC_ERR 值为"1"、则驱动器级不会执行传感器的突发/激励。
    2) 2)设置 DATAMUMP_EN EE_CNTRL 寄存器中的 DATAMUMP_EN 位设置为"1"。 该值在加电时默认为"0"。 如果 DATAMUMP_EN 设置为"0"、则仅更新超声波测量结果、回波数据转储不会更新。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Adrien、

    PGA460常见问题解答(www.ti.com/.../slaa733.pdf)的第5.2节 讨论了如何通过使阈值电平饱和来实现回波屏蔽。 如果您想忽略死区中的活动、我建议您先使阈值饱和、以防止测量不准确。

    5.2如何检测超过八个物体? 我是否可以设置阈值、以便在突发突发后的给定时间内忽略振铃衰减纹波或物体? 如何使用阈值偏移?

    当阈值级别设置为255时、可以将阈值映射设置为在记录窗口的任意点忽略超声波活动。 用户可能需要考虑在初始突发和衰减期间将阈值设置为255。 即使在突发窗口期间或强返回峰值等返回数据饱和时、阈值比较器也不会在最大化阈值时触发。 对于阈值水平1-8、只有当阈值水平最大化到248、且阈值偏移设置为最大正值+7时、才能达到255。 此偏移适用于所有1-8电平。 对于9-12级、偏移不适用、这些级可被独立设定为255。

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

     尊敬的 Akeem:

    (1)我现在已经解决了恒定回波数据的问题,前40个回波数据是正常的,但后来的数据变成了随机值,我想问这个问题的可能原因吗?

    (2)头八个 PGA460s 的阈值寄存器的最大值为248、pga460、在突发命令的实现中、当值为255时将出现、这将导致电流值超过阈值、这将导致判断距离错误、如果是、如何避免?

    (3)我正尝试在爆发后执行系统诊断命令。 根据手册 UART 结构的描述、前面是诊断字节、后面是三个数据、加上一个校验位、它应该是五个数据、但我只收到四个字节的数据、缺少哪一个数据?

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

    回答您的问题:

    (1)确保等待记录长度时间到期。 例如、如果您已将预设记录长度设置为12.288ms、则需要等待12.288ms、然后再尝试读回回回回波数据转储值或超声波测量结果值。 如果您过早读取这些值、则回波数据转储不会完全更新、这就是您可能会在末尾看到随机值的原因

    (2)请参阅 PGA460常见问题解答(www.ti.com/.../slaa733.pdf)的第5.2节 、其中讨论了如何通过使阈值电平饱和来实现回波屏蔽。 您需要将前八个阈值点的电平设置为248、同时将阈值偏移设置为+7、以将最终值设置为255。 这将防止任何回波活动触发阈值比较器。

    (3)请参阅数据表(www.ti.com/.../datasheet)的表3 、了解命令8 (系统诊断命令)的正确 S 至 M 数据 UART 字节、这些字节总共只有四个返回字节:
    •字节0:已归档诊断
    •字节1:传感器频率
    •字节2:衰减周期时间
    •字节3:从器件生成的校验和
    请确保您使用的是数据表的修订版 A。 初始版本包含额外的第三个数据字节(您可能会引用该字节)、这种情况已不再成立。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     尊敬的 Akeem:

    1) 1)我根据您的建议修改了我的软件、我开始尝试测试距离、但现在我的软件有无障碍物、数据为2.25米、我是否可以询问可能的原因? 我根据我的回波数据、8.192ms 的记录时间长度、脉冲数量5设置阈值!

    2) 2)我使用的硬件变压器只能上升到50±2V、无论它是否会影响上述问题!

     

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

    user5127206、

    回答您的最新问题:

    1) 1)确保在发送突发监听命令并读取超声波测量结果之前已将 DATAMUMP_EN 位设置为"0"。 如果 EE_CNTRL 寄存器中的 DATADUMP_EN 位设置为"1"、则仅更新回波数据转储、超声波测量结果不会更改。 如果 DATAMUMP_EN 设置为"0"、则仅更新超声波测量结果、回波数据转储不会更新。

    2) 2)如果您使用 GUI 确认阈值遵循并包装 PGA460常见问题解答(www.ti.com/.../slaa733.pdf)的#5.3所示的无物体突发和监听配置文件、 则超声波测量结果读数应为0xFFFF (对于未检测到物体)。 如果使用回波数据转储输出正确配置阈值、则硬件不会影响超声波测量结果读取的性能。 有关 使用 GUI 设置阈值的示例、请参阅视频 PGA460超声波感应:EVM GUI 数据监视器(training.ti.com/pga460-ultrasonic-sensing-evm-gui-data-monitor)。

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

    尊敬的 Akeem:

    1) 1)我现在已经完成了 PGA460驱动程序、测试距离不是什么问题、但我需要四个 PGA460调试一起、每个 PGA460脉冲间隔多少次不会相互影响?

    2)在单个调试过程中,我们已经烧坏了两个 PGA460,我们测试了硬件,没有问题,那么突发间隔太短,导致 PGA460烧坏? 或其他原因?

     

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

    user5127206、

    回答您的最新问题:

    1) 1)使用多个 PGA460器件时、务必等到每次突发+监听迭代之间的记录长度到期。 例如、如果 PGA460 (1)发送记录长度为12.288ms 的突发+监听命令、则必须等待至少12.288ms、然后才能向 PGA460 (2)发送突发+监听命令。 否则、PGA460 (1)的回波可能会干扰 PGA460 (2)的结果、反之亦然。
    如果所有四个 PGA460器件都使用具有不同频率(中心频率差至少为8kHz)的传感器、则所有传感器同时使用突发+监听命令(通过广播命令)、而不会相互干扰、因为每个频率都与其余频率的带外。

    2) 2)我不确定您的意思。 您能否使用您描述的伪代码流程重复您的陈述? 如果您在同一 USART 或 OWU 总线上使用多达四个 PGA460器件、则每个器件必须具有不同的 UART_ADDR。 您是否在每个器件顶部烧录了不同的 EEPROM 地址? 有关   多地址系统的详细信息、请参阅 PGA460常见问题解答#2.4、4.5.11和5.5。