LFB 发表于 2024-12-19 11:53:06

ADC转换速度计算问题

<p>ADC转换速度与ISP上的结果不同</p>
<pre><code>
#define RES_FMT                     (1)         // 0:左对齐,1右对齐
#define ADC_SPEED                   (15)      // 0~15, ADC时钟 = SYSclk/2/(n+1)
#define CSSETUP                     (1)         // 0~1,ADC通道选择时间      0: 1个ADC时钟, 1: 2个ADC时钟,默认0(默认1个ADC时钟)
#define CSHOLD                      (3)         // 0~3,ADC通道选择保持时间(n+1)个ADC时钟, 默认1(默认2个ADC时钟)
#define SMPDUTY                     (20)      // 10~31, ADC模拟信号采样时间(n+1)个ADC时钟, 默认10(默认11个ADC时钟)


    ADCCFG = (RES_FMT&lt;&lt;5) + (ADC_SPEED&lt;&lt;0);
    ADCTIM = (CSSETUP&lt;&lt;7) + (CSHOLD&lt;&lt;5) + (SMPDUTY&lt;&lt;0);
</code></pre>
<p>sysclk/((2*(speed+1)*(Cssetup+1+CsHold+1+Smpduty+1+10)))</p>
<p>=&gt;</p>
<p>30000000/((2*(15+1)*(1+1+3+1+31+1+10)))=19531.25hz</p>
<p>按这个参数在ISP软件上计算的结果是18.75 KSPS,不知道是哪不对?</p>

梁工 发表于 2024-12-20 12:10:17

对于12位ADC:
主频30MHz,ADC时钟=30/2/(15+1)=0.9375MHz。
ADC时钟数 = 2+4+21+12=39.
则ADC转换时间 = 39/0.9375=41.6us,最快24KHz。
页: [1]
查看完整版本: ADC转换速度计算问题