【问题标题】:stm32f103 ADC sampling ratestm32f103 ADC采样率
【发布时间】:2017-02-10 20:45:18
【问题描述】:

我在这里设置了 adc 采样时间周期:

ADC_RegularChannelConfig(ADC1, ADC_Channel_17, 1, ADC_SampleTime_71Cycles5);

如何从stm32f103中计算ADC的采样率?

【问题讨论】:

    标签: stm32 adc


    【解决方案1】:

    您没有提供足够的信息来给出确切的数字。但在这里你应该知道什么。 您已选择采样时间为 71.5 个 ADC 时钟周期。 ADC 时钟由 PCLK2 通过 ADC 预分频器生成。 ADC 预分频器位于 RCC_CFGR 寄存器中。 例如,如果 PCLK2 为 72MHz,ADC 预分频器为 6,则 ADC 时钟为 12MHz。采样时间为 71.5 个周期,即 71.5/12 ~ 6us

    【讨论】:

      【解决方案2】:

      每个通道的采样时间可以从 ADC CLK 计算,如参考手册的“逐通道可编程采样时间”部分所述:

      ADC 在多个 ADC_CLK 周期内对输入电压进行采样,这些周期可以 使用 ADC_SMPR1 和 ADC_SMPR2 中的 SMP[2:0] 位进行修改 寄存器。可以使用不同的采样时间对每个通道进行采样。 总转换时间计算如下: Tconv = Sampling 时间 + 12.5 个周期 示例:ADCCLK = 14 MHz 和采样 1.5 个周期的时间:Tconv = 1.5 + 12.5 = 14 个周期 = 1 μs

      在扫描模式下,一个 ADC 的采样率为:

      1/(每个启用通道的 Tconv 总和)

      要设置“特定”采样时间,您可以使用带有定时器更新事件的外部触发转换作为触发。

      【讨论】: