查看: 7016|回复: 12

[分享] KL25 ADC模块详细介绍

[复制链接]

该用户从未签到

21

主题

62

帖子

0

中级会员

Rank: 3Rank: 3

积分
330
最后登录
1970-1-1
发表于 2013-8-29 11:16:08 | 显示全部楼层 |阅读模式
blog.chinaaet.com/detail/33602.html
因为与非网的博客写起来比较麻烦,不能用windows live writer ,所以就只能搬过来给个链接了。
 
帮忙把lz的原文帖过来了_0: (by 小七)
 
 首先先解释下分辨率和精确度的区别。

简单点说,“精度”是用来描述物理量的准确程度的,而“分辨率”是用来描述刻度划分的。之前在网上看见一个例子举得很通俗:有这么一把常见的塑料尺,它的量程是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位模式,硬件均值关闭,持续转换开启)。
 
11.png
 
 1 时钟源选择

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 采样周期

采样时间和配置的关系如下图:
 
12.png
 
CFG1[ADLSMP]配置的是长/短采样,0为短采样,1为长采样。基准采样周期是4个ADCK cycles。如果是配置为短采样,那么在第一次转换时会有2个额外的周期也就是6个ADCK cycles。如果配置为长采样,CFG2[ADLSTS]配置的长采样的时间选择,如下。
 
13.png
 
 CFG2[ADHSC]配置的是高速转换。0是正常模式,1是高速模式。高速模式下转换顺序改变了故每次转换都需要增加额外的2个ADCK cycles。
回复

使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    11063
    最后登录
    2019-1-27
    发表于 2014-3-19 17:41:09 | 显示全部楼层

    回复:KL25 ADC模块详细介绍

    继续帮lz贴文_1:
     
     6 转换时间

    总共所需的转换时间由下面这个公式决定:如果需要计算转换时间,只需要根据设置的参数带入公式计算就可。
    14.png
     下面是对每一项的说明:

    SFCAdder:单个或者连续转换中第一个增加的时间。
    15.png
    AverageNum:就是平均采样次数因子。由SC3[AVGE]和SC3[AVGS]决定。:
    16.png
     
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    11063
    最后登录
    2019-1-27
    发表于 2014-3-19 17:42:46 | 显示全部楼层

    回复:KL25 ADC模块详细介绍

    继续帮lz贴文_2:
     
    BCT:Base Conversion time,基准转换周期
    17.png
    LSTAdder:长采样还是短采样增加的时间(短采样就第一个周期增加2个ADCK cycles,所以忽略)
    18.png
    HSCAdder:高速转换增加的时间(2个ADCK cycles)
    19.png
     总结一下:

    a 整个转换时间取决于:

    b 采样时间

    c 总线频率

    d 转换模式(单端还是差分)

    e 转换速度(正常还是高速转换)

    f 转换时钟的频率fADCK

    g 初始化顺序
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    11063
    最后登录
    2019-1-27
    发表于 2014-3-19 17:42:57 | 显示全部楼层

    回复:KL25 ADC模块详细介绍

    继续帮lz贴文_3:
     
    ADC模块的初始化顺序基本如下图所示
    20.png
     
     8 温度传感器

    顺带介绍下ADC模块自带的一个温度传感器。这个温度传感器和ADC的一个输入相连。计算公式如下:
    21.png
     
    Temp就是所要测的得的温度。Vtemp就是在当前温度下的电压,Vtemp25表示在25度时的电压值,m是这个传感器的斜率。这些参数我在数据手册中截出来如下:
    22.png
     
    如上图所示,Vtemp25=719mv,m=1.715mv/°C。
     
     
    The End
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13

    主题

    62

    帖子

    0

    注册会员

    Rank: 2

    积分
    161
    最后登录
    1970-1-1
    发表于 2014-3-25 09:12:26 | 显示全部楼层

    回复:KL25 ADC模块详细介绍

    很好。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    17

    帖子

    0

    新手上路

    Rank: 1

    积分
    43
    最后登录
    1970-1-1
    发表于 2014-4-1 09:54:36 | 显示全部楼层

    RE:KL25 ADC模块详细介绍

    正好在学习,感谢分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-30 08:51
  • 签到天数: 1 天

    [LV.1]初来乍到

    4

    主题

    138

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    202
    最后登录
    2022-7-7
    发表于 2014-4-27 23:43:58 | 显示全部楼层

    RE:KL25 ADC模块详细介绍

    弱弱的问一句。。。KL25的差分AD可以作为普通单端输入AD使用吗?应该怎样配置呢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    66

    帖子

    0

    注册会员

    Rank: 2

    积分
    151
    最后登录
    1970-1-1
    发表于 2014-5-3 23:30:49 | 显示全部楼层

    RE:KL25 ADC模块详细介绍

    积分非线性度,他表示了ADC器件在所有的数值点上对应的模拟值,和真实值之间误差最大的那一点的误差值。也就是,输出数值偏离线性最大的距离

    这个还不是很清晰
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11

    主题

    354

    帖子

    0

    高级会员

    Rank: 4

    积分
    672
    最后登录
    1970-1-1
    发表于 2014-5-6 14:11:18 | 显示全部楼层

    RE:KL25 ADC模块详细介绍

    学习一下ADC模块
    感谢楼主的详细介绍
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    351

    帖子

    0

    高级会员

    Rank: 4

    积分
    868
    最后登录
    1970-1-1
    发表于 2014-5-19 21:19:11 | 显示全部楼层

    回复:KL25 ADC模块详细介绍

     学习了
    谢谢楼主分享
    有这些中文注释看起来清晰多了
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-26 22:16 , Processed in 0.147880 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表