【发布时间】:2017-02-10 20:45:18
【问题描述】:
我在这里设置了 adc 采样时间周期:
ADC_RegularChannelConfig(ADC1, ADC_Channel_17, 1, ADC_SampleTime_71Cycles5);
如何从stm32f103中计算ADC的采样率?
【问题讨论】:
我在这里设置了 adc 采样时间周期:
ADC_RegularChannelConfig(ADC1, ADC_Channel_17, 1, ADC_SampleTime_71Cycles5);
如何从stm32f103中计算ADC的采样率?
【问题讨论】:
您没有提供足够的信息来给出确切的数字。但在这里你应该知道什么。 您已选择采样时间为 71.5 个 ADC 时钟周期。 ADC 时钟由 PCLK2 通过 ADC 预分频器生成。 ADC 预分频器位于 RCC_CFGR 寄存器中。 例如,如果 PCLK2 为 72MHz,ADC 预分频器为 6,则 ADC 时钟为 12MHz。采样时间为 71.5 个周期,即 71.5/12 ~ 6us
【讨论】:
每个通道的采样时间可以从 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 总和)
要设置“特定”采样时间,您可以使用带有定时器更新事件的外部触发转换作为触发。
【讨论】: