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.

[参考译文] MSPM0G3519:MSPM0G3519:ADC 转换时间

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1610836/mspm0g3519-mspm0g3519-adc-conversion-time

器件型号: MSPM0G3519

尊敬的 TI 团队:

我为我的工程研究了 ADC 主题(10 位分辨率)、 目前、我使用的是 ULPCLK 40MHz、MCLK 使用的是 SYSOSC、频率为 32MHz。 SCOMP0 的值= 2 且 SCLKDIV = 3 =>这意味着总共 8x2 = 16 采样时钟周期。

然后、使用 FRANGE 配置、需要额外的 8 个周期  

=>我认为它总共需要大约 24-25 个 ADC 时钟周期。

我的实施如下所示:

我启动 ADC 转换、并在 while 循环中检查 RIS。 将有一个超时计数器。 如果检查 RIS、且当它等于 0 时、每次都会降低该值。 它会断开环路

如果 MEM0 的 RIS 升高、则意味着 ADC 转换已完成、我可以获得结果。

我的问题是为什么结果太快? 我的超时计数器只需 2 个减小值即可接收 RIS 标志。 所以我想我的计算是不正确的?

如何计算 ADC 的转换时间?

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

    尊敬的 Khanh:

    计算 ADC 转换时间的方法(包括采样时间和转换时间)非常适合我。

    我在这里有两条评论:

    #1 时钟配置“ULPCLK = 40MHz、MCLK = SYSOSC = ULPCLK“无法实现、因为将始终等于或高于 32MHz。  

    #2 在轮询 ADC 转换结果的 while 循环中、您是否正在使用软件计数器变量? 因为在 while 循环周期中、CPU 实际上有多个指令要运行、例如检查 while 条件、读取 RIS 寄存器值、对计数器变量进行加法操作、因此需要一个 while 循环周期。 假设您使用的是 32MHz ADC 时钟、25 ADC 时钟周期约为 0.78us、时间很短、我认为在这种情况下计数器值 2 是可能的。   

    此致、
    Pengfei

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

    是的、我使用的是软件计数器。 感谢您的答复。