亿加合和智能车制作

标题: HCS12(X)单片机AD的深层次的一些东西 [打印本页]

作者: whut_wj    时间: 2009-11-26 20:03
标题: HCS12(X)单片机AD的深层次的一些东西
本帖最后由 whut_wj 于 2009-11-26 20:04 编辑

关于AD,一直有人问一些东西,应该是属于AD比较深的东西,答应总结一个贴子.
大部分来自中电网陈刚版主的精典问答,如果要用加速度传感器,请看完下面的,如果想用好多路AD转换请看完下面的.
以于小车可能不需要,因为一般用的是单次转换单通道无FIFO模式.

1为什么要多次转换?

ATD模块有8个结果寄存器,所以它的AD转换有这样的功能,就是对一个或多个通道连续进行转换,将结果顺序放入这8个结果寄存器中。这样用户如果要取一个通道的平均值,或取多个通道的值,都很方便了,就不用软件一次一次地去转换了

2 ATDCTL3 那个S8C、S4C等决定的转换序列长度是什么意思?
ATDCTL3中的S8C~S1C决定了一个转换序列的长度,即一个转换序列共转换多少次。你可以选择做一次AD转换的过程,是对一个通道连续转换多次,还是对多个通道连续进行转换,这由ATDCLT5的MULT位决定。



3 如果选择了多通道,MULT=1,那么CC、CB、CA、只是控制第一个转换的通道那么我就没有找到该如何制定具体由哪几个通道转换的控制字。。。比如光要0、1、3三个通道转换。。。难道本身转换就是8个通道全部转一遍的?
S8C~S1C就控制每轮进行多少次转换,最多为8。比如可以选择为6,那么每6次转换称为一个序列。 如果选择了多通道转换,那么CC、CB和CA选择首个转换的通道,后面的通道按通道号排列。比如S8C~S1C选择转换数为6,MULT设为1,而CC、CB和CA选择通道4,那么转换开始后,AD模块将按通道4、通道5、通道6、通道7、通道0、通道1的顺序依次进行转换,并将转换结果依次放入6个结果寄存器中。要注意并不能间隔选择通道。
4 在HC12系列单片机中,当控制寄存器5中S8CM=0(即一个转换序列转4次),MULT=0(即单通道转换)时,是在一个转换序列中对一个通道连续转换四次;而在S12系列中,当转换序列长度设置为1,MULT=0时,每进行一个序列的转换是对该通道转换一次,还是转换四次?
在S12系列中,当转换序列长度设置为1(S8C:S1C=0001),MULT=0时,只对一个通道进行一次转换。
5 关于控制寄存器ATD0CTL3中FIFO的使用
假定要转换的序列为3,即通道3、4、5,转换模式为连续转换(SCAN=1)
(1)当FIFO=0时,转换结果是存储在ATD0DR0-ATD0DR2中,还是存储在ATD0DR3-ATD0DR5中?
当一个序列转换结束后,下一个转换序列的结果还是存储在这几个对应寄存器中,对吗?
(2)当FIFO=1时,转换结果是存储在ATD0DR0-ATD0DR2中,还是存储在ATD0DR3-ATD0DR5中?

当一个序列转换结束后,下一个转换序列的结果是存储在紧接其后的几个对应寄存器中,循环存储(即存储到ATD0DR7后,返回ATD0DR0,在从ATD0DR0-ATD0DR7存储),对吗?

假定要转换的序列为3,即通道3、4、5,转换模式为连续转换(SCAN=1)
(1)当FIFO=0时,转换结果是存储在ATD0DR0-ATD0DR2中;当一个序列转换结束后,下一个转换序列的结果还是存储在这几个对应寄存器中。
(2)当FIFO=1时,第一次转换结果存储在ATD0DR0-ATD0DR2中;当一个序列转换结束后,下一个转换序列的结果是存储在紧接其后的几个对应寄存器中,循环存储(即存储到ATD0DR7后,返回ATD0DR0,再从ATD0DR0-ATD0DR7存储)。

6 通道转换是不是通过设置这二个寄存器,ATDCTRL3中转换序列的长度来采集设置需要的通道数.还有ATDCTRL5中的MULT来设置启动多通道转换?
是的,ATDCTRL5设置成多通道转换后,ATDCTRL3设置采集的通道数,此外ATDCTRL5中还需要设置多通道采集的起始通道。比如采集7个通道,起始通道是1,那么就采集从1-7通道,如果起始通道是2,就采集2-7,还有0通道。

7 多通道转换应该是同时进行的吧?各个通道的转换结果分别放在哪个数据寄存器(这一点我非常困惑)?
多通道转换也不是同时的,可以看AD的系统框图,只有一个采样保持电路,前面通过8通道选择器来选择通道,所以不能同时,只是多通道一次采集过程可以连续连续采集多个通道。每个通道的结果都保存在各自的结果寄存器reslut registers中

8 MC9SDg128上面有16个AD通道,而寄存器上好像只能启动8个通道吧?另外8个通道该如何使用?
DG128是两个8通道的AD,看dg128的数据手册总的memory map,AD0的寄存器在基址的$0080-$009F 32个字节的地方, AD1的寄存器在基址的$0120-$013F 32个字节的地方。

作者: ssg322    时间: 2009-11-26 21:01
回复 1# whut_wj


    顶      
作者: ryan1984    时间: 2009-11-26 22:23
真好人啊
作者: 50833713    时间: 2009-11-27 11:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: Michael_Fei    时间: 2009-11-27 11:27
必须顶起
作者: lhl3108003039    时间: 2009-11-27 12:09
总结的  很好!
作者: 武当奇人    时间: 2009-11-28 17:43

作者: xbsf-写轮眼    时间: 2009-11-29 17:51
学习!
作者: 金刚小白    时间: 2009-12-3 14:36
好人!!
作者: changhao    时间: 2009-12-6 19:36
讲的确实很清楚 顶!
作者: daichao8715    时间: 2009-12-7 20:01
恩,明白了不少!呵呵1xiexie
作者: ryan1984    时间: 2009-12-16 15:05
上次是路过 这次是来学习的
作者: studywhr    时间: 2010-1-2 23:26
此贴必顶!
作者: gwjxb008    时间: 2010-1-9 16:39
谢谢分享
作者: huhang1    时间: 2010-1-10 13:11

作者: wk_star    时间: 2010-3-18 11:13
顶,学习了!!
作者: fifa_ke    时间: 2010-3-24 21:05
很好 谢谢
作者: 时代还怪    时间: 2010-3-25 10:29
现在还有点不懂!
作者: 孟德    时间: 2010-3-25 11:30
谢谢
作者: xiaokk    时间: 2010-3-25 17:12
此贴太NB了!
作者: zhangqlls    时间: 2010-3-25 20:59
我有一个问题,多通道时用到的每个AD口都要接视频信号吗
作者: 北方阿斗    时间: 2010-3-26 16:55
非常感谢!
作者: ning204    时间: 2010-3-29 16:12
好人啊!!!可以好好学习下勒
作者: 342916739    时间: 2010-4-30 23:01
写的比书本更仔细 谢谢了~~
作者: 云飞扬    时间: 2011-4-7 16:00
很有收获!
作者: 放开那女孩    时间: 2011-6-16 08:59
佩服
作者: vgjkl    时间: 2011-6-23 00:36
谢谢分享
作者: vgjkl    时间: 2011-6-23 00:36
学习了
作者: 风中的帆    时间: 2011-6-26 22:20

作者: 圣徒    时间: 2012-4-25 17:44
学习了

作者: 秋天01号    时间: 2012-5-4 13:07
顶起!!!!!
作者: guichuqing    时间: 2012-5-20 10:58

作者: 87外泄    时间: 2012-5-26 15:28

作者: 一叶扁舟111    时间: 2012-9-23 10:09
好!
作者: vgonlan    时间: 2012-10-1 09:09
加油啊!!!!顶哦!!!!!
作者: ……    时间: 2012-11-18 14:01
多谢,帮我大忙了
作者: ……    时间: 2012-11-18 14:01
多谢,帮我大忙了
作者: ……    时间: 2012-11-18 14:01
多谢,帮我大忙了不顶不行啊
作者: ……    时间: 2012-11-18 14:01
再顶 顶~~~~~~~
作者: 我是LGB191    时间: 2012-11-23 00:17

作者: 遥望星空    时间: 2012-12-18 20:14
多通道采集的是同一数据吗

作者: 穆旦阿斗    时间: 2013-1-18 17:44
我顶!!!!!
作者: 夏小凉    时间: 2013-1-22 19:48
写的很好 受教了
作者: 瓜豪gh    时间: 2013-2-27 17:53
超赞
作者: smartcarkh    时间: 2013-8-11 21:41

作者: WD2012WD    时间: 2013-8-12 07:35
顶   




欢迎光临 亿加合和智能车制作 (http://www.znczz.com/) Powered by Discuz! X3.2