在给出AD的转换速率之前先普及下知识,好多初手容易混淆AD模块的转换时钟和转换速率这两个概念,前者是AD模块的工作时钟(数字系统,少不了时钟)而后者则是由若干个转换时钟构成的,也就是说AD模块转换一次数据需要若干个阶段而每个阶段则花费一个或多个转换时钟的时间来完成。拿本篇的主角Kinetis来说,它的时钟是ADICLK(最高允许18MHz,不过在16位转换精度下建议这个时钟小于10MHz以保证转换的精度),而它的转换时间则通过以下公式来计算: Conversion time = SFCAdder + AverageNum*(BCT + LSTAdder + HSCAdder) 而上面的每个参数都是通过ADC模块相应的寄存器来设置的,由若干个时钟组成,其中SFCAdder(即single or first continuous time adder,这个我虽然理解但是翻译不好,有英语好的博友欢迎下面留言解释一下),AverageNum(即硬件平均数,Kinetis自带的功能,搞过KinetisAD的都懂的),BCT(即Base Conversion time),LSTAdder(即Long sample time adder,长时间采样,通过设置寄存器可选),HSCAdder(即High Speed Conversion time,同样通过设置相应寄存器可选)。嘿嘿,这几个参数都解释了一遍,那下面就让我们看看这几个参数都包括了多少个时钟吧,上图了:
|