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.
工具与软件:
您好!
我正在将 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个样本。
感谢您的支持和帮助我找到此问题!
此致、
亚伦