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.

[参考译文] TMS570LS3137:HalCoGen ADC 设置

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1385548/tms570ls3137-halcogen-adc-settings

器件型号:TMS570LS3137
主题中讨论的其他器件: HALCOGEN

工具与软件:

您好!

我正在将 HalCoGen 中的以下设置用于我的 TMS570LS3137 MCU 的 ADC2:

(不使用事件组和组2)。

据我了解、在 ADC 上启动连续转换后、FIFO 缓冲区将在大约10ms (4个通道的总转换时间~1ms、40个样本为10ms)之后被填满。 但当我以10ms 的周期运行 adcGetData 时、很少会从缓冲区中读取40个样本。

我是在这里误解什么,还是有一些额外的延迟,我没有说明什么地方?

谢谢。此致、

亚伦

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

    大家好、Aaron:

    [quote userid="553077" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1385548/tms570ls3137-halcogen-adc-settings 我是不是在这里误会了什么东西、还是有一些额外的延迟、我没有在某处说明?

    不,你不是误会。

    根据您对每~1ms 转换一次4个 ADC 通道的设置、在10ms 后、我们应该可以得到40个 ADC 样本。

    是否可以共享您的代码、我想看看您是如何创建10ms 超时的以及如何对其进行验证的。

    ——
    谢谢、此致、
    Jagadish。

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

    大家好、Aaron:

    我想再提一点:

    (+) TMS570LS0714:其中一个输入信号的 ADC 采样时间-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛

      配置窗口中显示的 tScan 总量仅适用于  所有 ADC 通道的单次转换、但如果启用连续转换、最后一个通道到第一个通道之间的切换时间也应增加一个。  

    因此、根据您的配置、每次切换将需要62.5ns (187.5/3)、所以在连续模式下转换所有通道的总转换将为965.3875+62.5 = 965.4、

    但它仍然小于1ms、因此在10ms 时间内、我们理论上应该得到40个样本。 我以前从未在实际中进行过此验证、但我想确保没有出现任何代码错误、因此为了确认这一点、我请求您提供您的代码。 你可以创建一个最简单的项目,并可以通过私人聊天窗口与我分享。

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    感谢您的答复和确认。

    我使用专有的 RTOS (我不能分享)进行10ms 的任务调度、我非常确信计时正确。 在任务内、我只需运行以下代码:

    adcData_t conversionDataBufferAdc2[40] = {0};
    const uint32_t conversionDataCountAdc2 = adcGetData(adcREG2, adcGROUP1, conversionDataBufferAdc2);

    检查时、返回的转换计数与预期的40个不匹配、而是大约7或8个样本。 我想知道它是否与 用于控制 ADC FIFO 缓冲区溢出的 OVR_RAM_IGN 位相关。 我在 HalCoGen 配置中找不到控制这个位的任何选项。

    您有什么其他想法、这里可能会出错吗?

    谢谢。此致、

    亚伦

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

    大家好、Aaron:

    我正在使用专有 RTOS (我无法分享)进行10ms 的任务调度、并确信时间安排正确。

    好的、没问题。

    您有什么其他想法可能会造成此处的错误吗?

    首先、我想在没有 RTOS 的情况下使用裸机代码在我的板上测试此场景、并想看看我们是否可以获得40个 ADC 样本。 我将尽快更新此文件。

    ——

    谢谢、此致、
    Jagadish。

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

    大家好、Aaron:

    您在下面突出显示的字段中配置了多少个字

    您还应该在此处配置最低40 ADC 转换、以获得40 ADC 转换。

    您能检查一下并告诉我吗?

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    感谢您的更新。 我将 BNDB 长度配置为40、所以我认为这也没有问题。

    此致、

    亚伦

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

    大家好、Aaron:

    我将 BNDB 长度配置为40、因此我认为这样也可以。

    您的意思是、即使将 BNDB 长度配置为40之后问题仍然存在?

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    抱歉、我的消息不清楚。 我在测试期间正确配置了 BNDB 长度、因此在 BNDB 长度设置为40的情况下问题确实仍然存在。

    此致、

    亚伦

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

    大家好、Aaron:

    我在 LS3137板上创建了一个示例项目、其中 RTI 中断持续10ms、其余配置与您的配置类似、每次都可以获得40个 ADC 样本。

    您能否使用您的代码验证此代码和 HALCoGen 设置?

    下面是我的完整项目:

    e2e.ti.com/.../ADC_5F00_10mS_5F00_40_5F00_Samples_5F00_Issue_5F00_LS3137.zip

    ——
    谢谢、此致、
    Jagadish。

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

    尊敬的 Jagadish:

    感谢您的示例项目、它确实能按预期工作。

    这让我对项目中使用的 RTOS 的配置提出了疑问、并发现任务时序不正确... 修复了这个问题、现在我在10ms 的周期内得到40个样本。

    感谢您的支持和帮助我找到此问题!
    此致、

    亚伦