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 内核的多个 SOC 的多个 EOC 信号来生成单个中断。
我正在使用芯片的全部三个 ADC 内核(A、B 和 C)
我设置了采样和转换配置、因此它们没有问题。
总共有9个采样和转换。
我希望在所有转换完成后生成一个中断。
对于每个 ADC 内核、我可以为同一中断生成3个 EOC 触发、但在这种情况下、我想我不能知道每个内核的所有转换是否都已完成。 因为所有 ADC 内核同时运行、且内核之间可能存在细微差异、并且可以更早地设置其中一个 EOC。
我想象一下、如果我可以将来自每个内核的三个 EOC 信号插入逻辑中、操作者的输出可以是中断源。 但我不知道这是否可行。
如何为我的需求创建解决方案?
此致、
Gökhan μ A。
尊敬的 Gokhan:
我认为 解决此问题最简单的方法是让全部三个 EOC 信号触发中断、但您需要在执行 ISR 计算之前检查其他中断是否被触发。 例如、您可以在每次触发中断时递增某些全局变量、如下所示。
执行此类操作的 CPU 开销应该非常低。
example_interrupt(){
if (global_var=2){
do_computation();
global_var = 0;
}
否则{
global_var++;
}
}
此致、
Ben Collier
Ben、您好!
感谢您的回答。
如果我不错、您是说每个 EOC 触发相同的中断对吧?
如果是、我想知道如果一个 EOC 触发中断、而在检查条件&增大全局变量时、第二个 EOC 触发中断会发生什么情况。 由于第一个中断未被清除、第二个中断触发将发生什么情况?
这三个 EOC 将同时生成。 可能在1-2个时钟周期内、因为其相关的 ADC 内核并行运行。
另外、单独输入和存在三个中断(即使相同)也会导致执行时间。 是否可以组合三个 EOC 并触发单个中断?
您好!
此图像来自 TRM:
每个 ADC 有4个中断、我曾建议您对每个 ADC 使用不同的中断。
此致、
Ben Collier
Ben、您好!
再次感谢您的支持。
当我看到 C2000ware 5.01中的"ADC_EX10_MULTIPLE_SoC_EPWM"示例时、我注意到只有 ADCA 中断用于 ADCA 和 ADCC 转换结果。 EOC2置位时会触发 ADCA 中断。
那么、我们如何确保在我们处于 ADCA 中断时所有 ADCC 转换都已完成?
此致、
Gökhan μ A。
您好、Gökhan
该专家目前正在休假、到2010年6月为止。 请等待、直至收到回复。 感谢您的耐心!
此致、
Allison
您好!
那么、我们如何才能确保在 soc 中断期间全部完成 ADCC 转换?
该示例依赖于具有相同时序的两个 ADC、大多数情况都是如此。 如果一些软件停止然后恢复其中一个 ADC、则情况将不再是这样。
那么、我们如何才能确保在 soc 中断期间全部完成 ADCC 转换?
我认为唯一的方法就是使用来自 ADCC 的中断标志、该标志由 ADCC 的最后一个 EOC 触发。 即使不为 ADCC 使用 ISR、也可以执行如下操作:
while (来自 ADCC 的中断标志为低电平){
不采取任何措施;
}
然后确保之后从 ADCC 清除中断标志。
此致、
Ben Collier