完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
飞思卡尔官方推荐KL25 ADC模块详细介绍。
首先先解释下分辨率和精确度的区别。 简单点说,“精度”是用来描述物理 量的准确程度的,而“分辨率”是用来描述刻度划分的。之前在网上看见一个例子举得很通俗:有这么一把常见的塑料尺,它的量程是10厘米,上面有100个刻度,最小能读出1毫米的有效值。那么我们就说这把尺子的分辨率是1毫米,或者量程的1%;而它的实际精度就不得而知了(算是0.1毫米吧)。当我们用火来烤一下它,并且把它拉长一段,然后再考察一下它。我们不难发现,它还有有100个刻度,它的“分辨率”还是1毫米,跟原来一样!然而,您还会认为它的精度还是原来的0.1毫米么? 分辨率是由AD的位数决定的,比如说KL25的AD是16位,以VDD的最大值3.6v那么它的分辨率就是3.6/2^16=54.9uV。而精度主要用这个值来表示:INL:Interger NonLiner——积分非线性度,他表示了ADC器件在所有的数值点上对应的模拟值,和真实值之间误差最大的那一点的误差值。也就是,输出数值偏离线性最大的距离。单位是LSB。 LSB这一术语有着特定的含义,它表示的是数字流中的最后一位,也表示组成满量程输入范围的最小单位。对于12位转换器来说,LSB的值相当于模拟信号满量程输入范围除以2^12 或 4096的商。如果用真实的数字来表示的话,对于KL25(12位模式)满量程输入范围为3.6V的情况, 12位转换器对应的LSB大小为0.88mV。它的INL典型值为正负1.0LSB(12位模式),所以在12位模式下,KL25的精度为0.88mV*1=0.88mV。 还要特别提一下基准源。基准源是测量精度的重要保证。基准的关键指标是温飘,一般ppm/K来表示。假设某基准30ppm/K,系统在20~70度之间工作,温度跨度50度,那么,会引起基准电压30*50=1500ppm的漂移,从而带来0.15%的误差。温漂越小的基准源越贵,比30ppm/K的431,七毛钱;20ppm/K的385,1块5;10ppm/K的MC1403,4块5;1ppm/K的LM399,14元;0.5ppm/K的LM199,130元 接下来贴上一张ADC的模块框图,这张图对于我们理解ADC模块很重要。我在图上加了一些注解,便于大家对各个部分有个了解。KL25的ADC模块是16位的,但是有效位数在13-14位左右。转换速率为37.037-461.467ksps(16位模式,硬件均值关闭,持续转换开启)。
KL25的ADC模块有4个时钟源可以选择,通过设置CFG1[ADICLK]可以进行选择,分别是: 1 总线时钟:复位之后默认的选择 2 总线时钟2分频: 3 可选时钟:在K60中,可选时钟设置为OSCERCLK。但是在KL25中并没有说明。 4 异步时钟:这个时钟是由ADC模块内部的时钟源产生的(框图右上部分)。这个时钟有点奇怪,你在转换之前不打开它也是可以使用的,在每次转换开始时它会自动启动,在转换结束时会自动关闭,但是这样的话会在每次这个时钟启动的时候导致延时。所以为了避免这种情况,在初始化传输之前最好就打开它(CFG2[ADACKEN]=1)并等待5us(最坏启动情况)。 如果选择的时钟频率比较高的时候,通过设置CFG1[ADIV]可以设置到8分频。无论选择哪个时钟,都要在ADCK的频率范围2MHz-12MHz(16位模式)内。 2 参考电位选择 参考电压在两对电压对中选择:(VREFH and VREFL)和(VALTH and VALTL)。由SC2[REFSEL]来选择。参考电压正必须在Ref Voltage High的最小值和VDDA之间,参考电压负必须和VSSA相同的电位(在上图中我们也可以发现)。但是在芯片手册中并没有发现VALTH and VALTL相关的信息。 3 触发方式 硬件触发和软件触发 3.1 软件触发时 只要SC1A被写入就会触发转换。 3.2 硬件触发时 如果转换在处理时一个硬件触发过来,将会被忽略,所以当硬件触发事件在转换过程中发生时,必须要保持被置位直到当前的转换结束,接受这个事件信号来触发一个新的中断。 ADC的控制寄存器有SC1A, SC1B,虽然芯片手册上说SC1B~ SC1n,但是搜了下只有SC1A, SC1B,SC1A可以用于软件和软件触发模式,为了让ADC允许被内部外设触发连续转换,就有了SC1B的用武之地,但是仅限于硬件触发。这些SC1n寄存器有相同的字段,以"ping pong"的方法(这个方法不太清楚)来控制ADC操作(P461 Chapter 28 Analog-to-Digital Converter (ADC))。在每一个时间点,只有一个SC1n控制转换,如果你在SC1A在控控制某次ADC转换时更新了SC1A寄存器,也是可以的,但是这样的话,在软件触发模式下,如果通道值有值得话就会触发一次新的传输。如果更新的是SC1B~ SC1n的话就无所谓了,因为在软件触发模式下SC1B~ SC1n寄存器没用。 4 校准 如果设置的软件触发,设置SC3[CAL]之后校准就会自动开始。如果是硬件触发,错误标志会被置位。在校准时不要有其他写寄存器,模式切换等操作,否则会呆滞校准失败。 一般校准周期有14k个ADCK周期加上100个总线周期,具体时间取决于你所选的时钟源了。8MHz的时钟源的大概校准周期到1.7ms。为了减少这个时间,偏移,增益值等等这些校准值可以在初始化校准结束的时候存到flash中,这样在传输之前就可以从flash中恢复出来。这样的话可以减少校准减少到20个寄存器存储操作时间。 5 采样周期 采样时间和配置的关系如下图:
6 转换时间 总共所需的转换时间由下面这个公式决定:如果需要计算转换时间,只需要根据设置的参数带入公式计算就可。
SFCAdder:单个或者连续转换中第一个增加的时间。
a 整个转换时间取决于: b 采样时间 c 总线频率 d 转换模式(单端还是差分) e 转换速度(正常还是高速转换) f 转换时钟的频率fADCK 7 初始化顺序 ADC模块的初始化顺序基本如下图所示。
8 温度传感器 顺带介绍下ADC模块自带的一个温度传感器。这个温度传感器和ADC的一个输入相连。计算公式如下:
评分 |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1902个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36323 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4390 浏览 0 评论
6037 浏览 1 评论
6756 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4203 浏览 0 评论
612浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
609浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
597浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
688浏览 2评论
786浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 05:32 , Processed in 1.030375 second(s), Total 83, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号