高手们来讨论下ATD的MULT使用(更新了程序) [已解决][此贴置顶已久麻烦版主取消置顶]
- UID
- 805034
|
高手们来讨论下ATD的MULT使用(更新了程序) [已解决][此贴置顶已久麻烦版主取消置顶]
本帖最后由 mcu2007 于 2010-5-5 15:50 编辑
我用的是9S12XDG128
我看datasheet时发现,这个片子的AD可以自动对单一AD口进行多次采集(真方便,比我用PIC8位爽);但是如果MULT=1时进入多个通道采集模式,然后CC,CB,CA来选择第一个进行转换的通道,如果第一通道转换完成后,如何进入下一通道的(书上说是CC,CB,CA增加来决定,这个说的不清楚)。
问题:
1,第一通道采集完成后,是如何进入下一个通道的,(通过CC,CB,CA重新设置?书上
说是CC,CB,CA增加来决定,这个说的不清楚,麻烦高手能详细指点下)
在进入下一个转换之前是不是数据要自己先处理?
2,在多通道的情况下是每个通道都进行S8C,S4C,S2C,S1C设置的转换次数吗?
3,如果我使用单一通道模式进行采集,但是我要在多个通道之间进行切换,请问这个通道切换是否要考虑硬件延迟(即要几个机器指令周期之后才进入下一个通道的转换),
4,在ATDCTL0里面的WARPx选择环绕通道(在多通道的情况下)是什么概念呢?
万分感谢大家的支持和帮助谢谢!!- /************************************************
- ATD 初始化程序
- ************************************************/
- void ATD_init(void)
- {
- ATD1CTL0=0x00;//未选择AD循环通道
- ATD1CTL1=0x00;//没有外部触发源
- ATD1CTL2=0x80;//AD普通工作模式,不使用中断标志位快速清零(CCF),
- //禁止AD转换完成中断,清零AD转换完成中断标志位
- ATD1CTL3=0x38;//转换队列长度7,在仿真模式下转换完成后冻结
- ATD1CTL4=0x80;//采用8位转换,AD转换时钟分频为32;
- ATD1CTL5=0x00;//左对齐,无符号数,单通道采集,初始选择AN0通道
- //ATDSTAT0状态寄存器 记录转换完毕通道,是否队列转换
- 完成
- }
- void ATD_Sample(void)
- {
- ATD1CTL5=0x84;//右对齐,无符号数,单通道采集,初始选择AN4通道
- Tape_Value=0;
- while(!ATD1STAT0_SCF);
- Tape_Value+=ATD1DR0L;
- Tape_Value+=ATD1DR1L;
- Tape_Value+=ATD1DR2L;
- Tape_Value+=ATD1DR3L;
- Tape_Value+=ATD1DR4L;
- Tape_Value+=ATD1DR5L;
- Tape_Value+=ATD1DR6L;
- Tape_Value=Tape_Value/7;
- }
复制代码--------------------------------------------------------------------------------------------------------
恭喜!本帖已由超级版主[kaduo521]于2010年2月26日在中电网论坛做2级置顶! 此帖可做为大家发求助帖、讨论帖的范例。继续努力噢!
[注]
推荐此信息仅出于传递更多信息之需要,并不代表本网赞同其观点和对其真实性负责。
|
-
1
评分次数
-
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
第一个问题:第一通道采集完成后,是如何进入下一个通道的(通过CC,CB,CA重新设置)?
当MULT=1时,进入多通道采样模式。第一个进行采样的通道由CD、CC、CB和CA的值设定。而下一个通道则是顺序递增的那个通道。比如,第一个采样的通道是AN5,转换完成后则对AN6进行采样。CD~CA位只要设定一次就可以了,除非你需要改变初次采样通道。 |
-
1
评分次数
-
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
第二个问题:在多通道的情况下是每个通道都进行S8C,S4C,S2C,S1C设置的转换次数吗?
不是。在多通道采样模式下,每个通道只进行一次采样和转换,S8C~S1C决定每次要对多少个通道进行转换。
我们把这称为一个序列。一个序列可以指对一个通道进行多少次转换(MULT=0时),也可以指一次对多少个通道进行转换(MULT=1时)。一个序列完成后是否继续重复进行,由ATDCLT5的SCAN位决定。 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
第三个问题:如果我使用单一通道模式进行采集,但是我要在多个通道之间进行切换,请问这个通道切换是否要考虑硬件延迟(即要几个机器指令周期之后才进入下一个通道的转换)?
这时最好检测ATDSTAT0的SCF标志位,当上一个序列转换完成后再切换到下一个通道。 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
第四个问题:在ATDCTL0里面的WARPx选择环绕通道(在多通道的情况下)是什么概念呢?
WRAP AROUND(环绕)的概念是指当MULT=1时,在一个检测序列中,当WARPx位所指定的通道转换完成后,下一个检测通道会变为AN0。举例说明:如果WRAP3~WRAP0的值为11(AN11),S8C~S1C的值为5,即一个序列进行5次转换;而CD~CA的值为9,即从通道AN9开始进行检测,那么第二个进行检测的通道是AN10,第三个是AN11;AN11转换完成后,则第四个采样通道变为AN0,第五个则是AN1。这样一个转换序列就完成了。如果SCAN=1,那么第二次转换序列又从AN9开始采样,其后的顺序与上一次完全相同。 |
|
|
|
|
|
- UID
- 805034
|
[quote]第一个问题:第一通道采集完成后,是如何进入下一个通道的(通过CC,CB,CA重新设置)?
当MULT=1时,进入多通道采样模式。第一个进行采样的通道由CD、CC、CB和CA的值设定。而下一个通道则是顺序递增的那个通道。比如 ...
strongchen 发表于 2010-2-24 10:12 [/quoted]
过了一夜终于有答案了,万分感谢;关于这个问题,版主的列子是连续的通道,假如不是连续的通道是否可行?如第一个通道是AN5,第二是个AN7,第三个是AN11,是否可以进行?还是一定要在单一通道模式下自己切换? |
|
|
|
|
|
- UID
- 805034
|
本帖最后由 mcu2007 于 2010-2-25 09:10 编辑 第二个问题:在多通道的情况下是每个通道都进行S8C,S4C,S2C,S1C设置的转换次数吗?
不是。在多通道采样模式下,每个通道只进行一次采样和转换,S8C~S1C决定每次要对多少个通道进行转换。
我们把这称为一个序列。一 ...
strongchen 发表于 2010-2-24 10:36 这个问题。。如果我设置的序列比实际的转换通道要大会有什么问题吗?
考虑了一天我想如果设置过大估计会导致个别通道采集次数会增加! |
|
|
|
|
|
- UID
- 805034
|
第三个问题:如果我使用单一通道模式进行采集,但是我要在多个通道之间进行切换,请问这个通道切换是否要考虑硬件延迟(即要几个机器指令周期之后才进入下一个通道的转换)?
这时最好检测ATDSTAT0的SCF标志位,当上 ...
strongchen 发表于 2010-2-24 10:41 这个比较明白,但是是否要考虑通道切换硬件操作的时间,还是切换通道后就直接可以开始转换了? |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
关于这个问题,版主的列子是连续的通道,假如不是连续的通道是否可行?如第一个通道是AN5,第二是个AN7,第三个是AN11,是否可以进行?还是一定要在单一通道模式下自己切换?
回答:不连续的通道不能自动进行切换,需要用户程序来进行切换。一般来说,在单片机的设计中,我们会将需要进行连续采样的通道连接到相邻的通道上。另外,即使有些通道的数据暂时是不需要的,也可以进行采样,只是将其转换结果忽略就是了。 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
本帖最后由 strongchen 于 2010-2-25 09:31 编辑
如果我设置的序列比实际的转换通道要大会有什么问题吗?
回答:每个序列的转换数最大为16,而AD的通道数也是16个。不管在实际的硬件设计中你是否用到了所有的通道,但MCU本身的AD通道数是确定的,最多不过是将所有的通道都采样并转换一遍。当然还有另外一种情况。比如你通过WRAPx和CD~CA的设置将转换通道设置为AN0~AN5,而将每个序列的转换数设置为8,这样在每个序列的转换中,AN0和AN1将被转换2次(假设AN0是首次转换通道)。这在有些应用中是很好的功能,因为有些应用需要在一次转换中对某些通道进行多次采样。 |
|
|
|
|
|
- UID
- 104380
- 性别
- 男
|
但是是否要考虑通道切换硬件操作的时间,还是切换通道后就直接可以开始转换了?
回答:当SCF标志置位后,表示上一次的转换已经完成了。切换通道后可以立即开始下一次采样和转换。 |
|
|
|
|
|
- UID
- 805034
|
谢谢,版主的热心回答,万分感谢! |
-
1
评分次数
-
|
|
|
|
|
- UID
- 803001
|
支持一下 |
|
|
|
|
|
- UID
- 805034
|
支持一下
kaduo521 发表于 2010-2-26 09:35 受宠若惊啊,呵呵
个人只是觉的技术大家是迟早要了解和掌握到的,所以没什么好保留的,也只是举手之劳! |
|
|
|
|
|
- UID
- 169050
- 性别
- 男
|
飞思卡尔8/16/32位多功能开发板/下载器:
网站:http://www.lqist.cn,
淘宝店:http://shop36265907.taobao.com |
|
|
|
|
|