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.

[参考译文] MSP430FR5969:从中断到 ADC 读取的最小延迟

Guru**** 2482105 points


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

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/1262981/msp430fr5969-min-latency-from-interrupt-to-adc-read

器件型号:MSP430FR5969

尊敬的 E2E 支持:

您可以帮助说明从中断触发、获取 ADC 读取的最短可能时间是多少?

µs、目标是通过中断捕捉短(几百 μ V)电压变化。

此致、

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

    您好!

    好的、我认为这有两个部分。  第一个参数是 ADC 测量和转换所需的时间、第二个参数是中断以及存储或处理数据所需的时间。   

    对于 ADC、从技术角度而言、绝对最短的采样保持时间约为1us、对话最大值至少为2.6us。  采样和保持时间实际上取决于输入信号的阻抗、您需要为内部电容器和电阻器提供充电时间。  数据表屏幕截图中有一个示例、但通常情况下、为了实现准确测量、该时间将长于1us。    

    我们将 ADC12宣传为200ksps、因此我们将其四舍五入到每个样本的最小5us、如果您在重复模式下运行它、它将继续采样并转换回。   

    至于中断、假设我们在每次转换后每5us 得到1个、并且我们正在以16MHz 的最高速度运行器件、这样在中断之间可以得到80个 CPU 时钟周期。  这是足够的,但不是很多。  我不记得确切的数字、但可能需要10-15个时钟周期才能跳转到中断并在最后返回。  可能剩下60个时钟周期才能实际工作。  

    实际上、这可能只有足够的时间将数据存储在缓冲区中并进行非常小的阈值比较、这可能适合您的用例。  另一种方法是设置 DMA、使其自动移动和存储数据、然后在以后对数据进行分块处理。   

    希望这对您有所帮助。   

    JD

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

    您好、JD:

    感谢所有这些细节。

    如果我很好地理解了客户案例、他的需要更多地是中断到 ADC 读取的转换时间:

    该系统在发生外部事件时触发(通过我们的中断输入之一)、以获取电压值。

    从中断中驱动 ADC 所需的最短时间是多少?

    此致、

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

    视情况而定。 最小值远小于1us、但可能长得多。

    延迟列为六个周期、但这个是变量、因为 CPU 必须完成当前执行的指令。 从单个周期到超过六个周期存在差异。 (例如、pushm.A 的 n 为16)

    显然取决于 MCLK。 如果您使用低功耗模式、则启动时间。

    如果启用了其他中断、则可能会有延迟、直到这些中断得到处理。