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.

[参考译文] AWR2944:TI AWR 2943 SDK - ADC 问题

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

https://e2e.ti.com/support/sensors-group/sensors/f/sensors-forum/1359390/awr2944-ti-awr-2943-sdk---adc-issue

器件型号:AWR2944

您好支持

我们在集成了  AWR294x MCU SDK 09.00.00的雷达工程中发现了 ADC 问题。  
问题在于、当外部温度和电压保持不变时、获得的温度和电压 ADC 值会发生跳变。
详细信息:  
1.温度  
您可以看到 DSP/HW/HSM 温度突然跳至一个非常不可思议的值。 但外部温度是固定的。  

 在 APP 中读取温度的逻辑部分
我们发现值 tempVal = GPADC_calculateTemp (gpadcCode、index2)不正确。  在函数 GPADC_readTemperature 中调用了该函数。
2.电压  
输入电压为18V、但我们在测试时得到的值为32V。
读取 APP 中电压的逻辑部分  

那么、您能帮助我们分析这种异常值的原因吗?  我们需要在上述逻辑(如上述调用函数的顺序)中考虑哪种情况?  
备注:
我们尝试检查 GPADC_OPEN/GPADC_readTemperature/GPADC_startSingalChannelCoversion 的 retVal、但失败了。  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您是每次看到此行为、还是仅发生一次?

    BR、

    Anand 的 Animesh

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

    下面的屏幕截图 是 CAN 跟踪、测试总时间约为18小时。

     

    注释  

    Saswat 在我发送的支持电子邮件中提出的问题

    1.您首先能否确认您所指的 SDK 是:mcu_plus_sdk_awr294x_09_00_00_15?
    => 09.00.00
    2.能否确认是在一个器件还是多个样片中观察到?
    =>多个样本、而不仅仅是一个样本。
    3.这是您使用的定制电路板还是您尝试使用的 EVM?
    =>什么是定制 电路板 EVM? 我们将在雷达 ECU 中使用该 SOC。  
    4.是在所有温度范围内还是只在特定温度下发生这种情况?
    =>所有温度范围。  
       虽然该问题是在高温测试期间发生的、但我们也在室温下重现了该问题。
    5.这是一个零星的问题吗? 或者、它是否始终在特定的读数/时间提供错误的输出?
    =>非零星的、在8-10小时的测试期间、会发生2-3次。
    6.您是否有任何测试应用程序,我们可以尝试重现与(任何单元测试案例)相同的行为?
    =>否
    7.出错时的温度值是否始终相同?
    =>否  
    这次最大值为23593、有时约为30,000以上(现在无法记住详细数据)。  
    MIN 始终为0、因为我们输出的数据低于-40°C 作为0°C (将重新测试以输出实际的 MIN 温度)。
    8.如果这是一种可预测的行为,是否可以在发生错误时向我们提供 GPADC 寄存器,在正常情况下提供一个?
    =>会重新测试该函数、但我们想知道要获取的详细寄存器。 请将它们全部列出给我们。  
    9.如果您有任何跟踪系统、我们可以获取整个函数调用图和值以追溯问题?
    =>否 使用自动存储器操作系统时、这些函数由10ms 周期任务调用
    例如:当这个10ms 周期任务运行时、它将首先读取电压值;  
        然后、下次运行这个10ms 周期时、它将读取温度值;μ V
        然后反复重复上述步骤。  
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Jason、您好!

    此外、我们可以在代码中设置断点来尝试捕获错误吗?
    正如我们知道寄存器可以给出的值、如果值超出范围、我们可以将其暂停在 while 循环中、看看寄存器的值是多少。
    比如寄存器本身提供了错误的值、或者软件会覆盖它。 这将有助于分离是软件还是硬件。
    在这种情况下、您可以提取寄存器: MSS_GPADC_DATA_RAM 、MSS_GPADC_REG、 MSS_GPADC_PKT_RAM

    此致、
    Saswat Kumar

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

    Saswat、您好!

    我在数据手册中查看了这三个寄存器、只找到了基地址和大小。 您是否希望从基址开始读取相应大小的数据、因为 MSS_GPADC_DATA_RAM 和 MSS_GPADC_PKT_RAM 这两个寄存器的数据大小是2k 字节、数据量非常大。 是否必须输出所有这些数据?

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

    温斯顿、您好!

    在步骤1中、您可以  在执行此调试时仅提供 MSS_GPADC_REG 中的所有寄存器:

    [报价 userid="528432" url="~/support/sensors-group/sensors/f/sensors-forum/1359390/awr2944-ti-awr-2943-sdk---adc-issue/5188560 #5188560"]如果我们知道它能够给出的值并且如果我们有一个超出范围的值、我们可以将它暂停在 while 循环中、然后查看寄存器的值是多少。


    此致、
    Saswat Kumar

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

    Saswat、您好!

    抱歉、在此期间我一直忙于其他事情。

    我们根据您所说的内容对其进行了测试。 当收集到的电压值不正确时、将执行 while1、然后连接 CCS 以导出寄存器值。 请检查、

    (GPADC_startSingleChannelConversion()获取 AD 采样值、然后将其转换为*1800*11/1024)
    6.12、电压收集数据大于50000 mV

    6.13、电压收集数据大于60000 mV

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

    https://drive.google.com/drive/folders/1p9wMmd5HRcOkBWd4ZT1TLTg8XY_2YzXU

    我不知道您是否可以访问此网站。 我无法将文件上传到此聊天。 是否有上传文件的方法?

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

    温斯顿、您好!

    如果我没有错、您可以将.zip 文件上传到 e2e。 因为我不能使用谷歌驱动器。

    此致、
    Saswat Kumar

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

    e2e.ti.com/.../Voltage-AD-sampling_5F00_log.zip 供参考

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

    温斯顿、您好!

    我打开了您的日志、在 MSS_GPADC_REG 中该寄存器完全没有任何读数(BAD0BAD0)?
    为什么这个寄存器不可读是有原因的吗? 整个空间寄存器没有该值。
    我需要向我的模拟团队检查此寄存器、因此这是必需的。

    此致、
    Saswat Kumar

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

    Saswat、您好!

    可能是当时的测试环境导致的。 6.12测试的数据由另一个人进行测试。 我发现数据也异常。 温度值为65535。 您可以检查6.13的日志文件。 寄存器都具有数据。

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

    温斯顿、您好!

    唯一存在的文件是我分析过的日志文件。
    为了精确起见、我需要寄存器的寄存器值:

    因为我需要了解器件是生成错误数据、还是由软件生成。
    基于这些信息、我需要联系正确的团队。
    下面提到的这个实验将帮助我正确地找出原因:


    lso、我们可以在代码中设置断点来尝试捕捉错误吗?
    正如我们知道寄存器可以给出的值、如果值超出范围、我们可以将其暂停在 while 循环中、看看寄存器的值是多少。
    比如寄存器本身提供了错误的值、或者软件会覆盖它。 这将有助于分离是软件还是硬件。
    在这种情况下、您可以提取寄存器: MSS_GPADC_DATA_RAM 、MSS_GPADC_REG、 MSS_GPADC_PKT_RAM[/报价]

    您能帮助我找到您提到的正确日志吗?

    此致、
    Saswat Kumar