工具/软件:
使用 ADC 时、AD 计数可能变为 0。
我在调试过程中只能重现问题一次、因此无法确定原因。
当我能够重现问题时、启用转换 (ENC) 已启用、并且还发生了 DL_ADC12_INTERRUPT_MEM0_RESULT_LOADED。
在发生故障时中断可以防止问题再次发生
是否存在可能导致此问题的因素?
对一般问题表示抱歉、但提前感谢。
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.
工具/软件:
使用 ADC 时、AD 计数可能变为 0。
我在调试过程中只能重现问题一次、因此无法确定原因。
当我能够重现问题时、启用转换 (ENC) 已启用、并且还发生了 DL_ADC12_INTERRUPT_MEM0_RESULT_LOADED。
在发生故障时中断可以防止问题再次发生
是否存在可能导致此问题的因素?
对一般问题表示抱歉、但提前感谢。
您好:
时序问题是否已在勘误表或类似内容中报告?
我重现了问题、并确认当 AD 计数为 0 时、MEMRES 数据也为 0。
因此、 通过使用调试操作将 CTL0>ENC 从 OFF 更改为 ON、并将 CTL1>SC 设置为 START、我能够确认 MEMRES 数据符合预期。
ENC 是否可能处于开启状态、但转换在实际就绪之前开始、从而导致问题?
执行 DL_ADC12_enableConversions 后、是否需要实现一个通知我已准备好某些内容的 API?
您好:
解释流程
可以通过下面的 ⑨ μ s 确认 ADC 计数变为 0 的问题。
当 ADC Count 变为 0 时、MEMRES 数据始终为 0。 此时、ENC 处于开启状态。
之后、如果您将调试器寄存器更改为 ENC⇒OFF⇒ON 和 SC⇒START、MEMRES 数据将变为非零值。
①ADC μ s RESET
②ADC 启用电源
③delay 50us
④ADC Ω 禁用
⑤ADC Ω 设置
⑥ADC Ω 启用
⑦ADC 启动
⑧wait ADC MEMRESIFG 设置
⑨ADC 获取数据
⑩clear ADC MEMRESIFG
⑪ Loop ⑧ μ H、⑨ μ H、⑩ μ H
⑫Complete μ s
您好:
感谢您回答我的基本问题。
关于 SCOMP 问题、我们已确定这不是问题的原因、因为正在使用重复模式。
请继续提供以下方面的反馈:
e2e.ti.com/.../5871188
您好:
我通过修改示例工程重现了相同的问题。
这可能很难理解、但您能用它来检查吗?
您好、
很抱歉晚回复。
您的帖子和代码的描述不匹配。 我不知道为什么您在 while 循环中使用不同的设置来调用 DL_ADC12_configConversionMem 两次。 但是、在将 ADC 从 AUTO 触发器修改为软件触发模式后、通过调用 DL_ADC12_setSampleTime0 (ADC12_0_INST、41) 使用更长的采样时间; 我不会在我这边观察到任何问题。
此致、
现金好
尊敬的 Cash Hao:
感谢您的答复
为了便于处理、会调用 DL_ADC12_configConversionMem 两次、如果将其整合到一次调用中、则不会出现问题。
您是否确认了能够通过操作寄存器(ENC 关闭→打开、SC 启动)来检索数据?
您可以通过在第 125 行 DL_ADC12_getMemResult 设置断点来检查此情况。
我想确切地了解问题是什么。
感谢您提出解决方案。
问题仍然不清楚、但为什么更改采样时间和软件触发模式可以解决问题?
您好、
我将在此处分享修改后的测试代码。 您可以比较这一个的差异。
此致、
现金好