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<<5) + (ADC_SPEED<<0);
ADCTIM = (CSSETUP<<7) + (CSHOLD<<5) + (SMPDUTY<<0);
</code></pre>
<p>sysclk/((2*(speed+1)*(Cssetup+1+CsHold+1+Smpduty+1+10)))</p>
<p>=></p>
<p>30000000/((2*(15+1)*(1+1+3+1+31+1+10)))=19531.25hz</p>
<p>按这个参数在ISP软件上计算的结果是18.75 KSPS,不知道是哪不对?</p>
对于12位ADC:
主频30MHz,ADC时钟=30/2/(15+1)=0.9375MHz。
ADC时钟数 = 2+4+21+12=39.
则ADC转换时间 = 39/0.9375=41.6us,最快24KHz。
页:
[1]