CLA 的一个重要特性是、它可以"及时"读取 ADC 结果以最大限度地减小电流环路延迟、CPU 的延迟如何? 是否有任何示例?
谢谢。
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.
CLA 的一个重要特性是、它可以"及时"读取 ADC 结果以最大限度地减小电流环路延迟、CPU 的延迟如何? 是否有任何示例?
谢谢。
您好 Howard、
对于"及时"控制循环更新、有几种方法需要考虑。
2a 描述的方法在许多基于系统的评估套件示例中完成、但我不相信我们确实记录了这种方法。
希望这对您有所帮助!
谢谢、
Brett
您好 Howard、
只需添加几位信息即可添加到 Brett 的回答中:
您可以在此处获取确切的 ISR 上下文切换延迟时序(内部中断为14个周期):
processors.wiki.ti.com/.../Interrupt_FAQ_for_C2000
您可以从表5-51中获取 F2837xD 数据表中的确切 ADC 时序。 "12位模式下的 ADC 时序(SYSCLK 周期)"和 表5-52。 " 16位模式下的 ADC 时序"。 还有随附的图表。 由此、您将注意到、在 SYSCLK = 200MHz 和 ADCCLK = 50MHz 的正常使用情况下、时序如下:
12位模式:早期 INT 在1个周期发生、结果在44个周期锁存。 因此、如果您使用早期中断模式、您将需要等待或执行设置操作、时间为44-1-14 = 29个周期。
16位模式: 早期 INT 在1个周期内发生、结果在120个周期内锁存。 因此、如果您使用早期中断模式、则需要等待或执行设置操作、时间为120-1-14 = 105个周期。
对于这两种模式、如果使用延迟中断模式、则在结果锁存后的14个周期内进入 ISR。
现在、在 F28004x 器件系列上、我们添加了一项附加功能、可让您在早期中断模式下将 ISR 生成延迟任意数量的周期。 为此、您需要将器件置于早期中断模式、然后向 ADCINTCYCLE.DELAY 写入一个值。 在上面的12位情况下、你可以向这个寄存器写入29、然后准确地进入 ISR。 如果在需要读取结果之前有6个设置周期、则可以写入29-6 = 23、并且仍然准确准时到达读取操作。