首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

高手们来讨论下ATD的MULT使用(更新了程序) [已解决][此贴置顶已久麻烦版主取消置顶]

高手们来讨论下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选择环绕通道(在多通道的情况下)是什么概念呢?

万分感谢大家的支持和帮助谢谢!!
  1. /************************************************
  2. ATD 初始化程序
  3. ************************************************/
  4. void ATD_init(void)
  5. {
  6.      ATD1CTL0=0x00;//未选择AD循环通道
  7.      ATD1CTL1=0x00;//没有外部触发源
  8.      ATD1CTL2=0x80;//AD普通工作模式,不使用中断标志位快速清零(CCF),
  9.                                //禁止AD转换完成中断,清零AD转换完成中断标志位
  10.      ATD1CTL3=0x38;//转换队列长度7,在仿真模式下转换完成后冻结
  11.      ATD1CTL4=0x80;//采用8位转换,AD转换时钟分频为32;
  12.      ATD1CTL5=0x00;//左对齐,无符号数,单通道采集,初始选择AN0通道
  13.                                //ATDSTAT0状态寄存器 记录转换完毕通道,是否队列转换
  14.                                   完成
  15. }

  16. void ATD_Sample(void)
  17. {
  18.      ATD1CTL5=0x84;//右对齐,无符号数,单通道采集,初始选择AN4通道
  19.      Tape_Value=0;
  20.      while(!ATD1STAT0_SCF);
  21.      Tape_Value+=ATD1DR0L;
  22.      Tape_Value+=ATD1DR1L;
  23.      Tape_Value+=ATD1DR2L;
  24.      Tape_Value+=ATD1DR3L;
  25.      Tape_Value+=ATD1DR4L;
  26.      Tape_Value+=ATD1DR5L;
  27.      Tape_Value+=ATD1DR6L;
  28.      Tape_Value=Tape_Value/7;
  29. }
复制代码

--------------------------------------------------------------------------------------------------------
恭喜!本帖已由超级版主[kaduo521]于2010年2月26日在bwin客户端 论坛做2级置顶!

此帖可做为大家发求助帖、讨论帖的范例。继续努力噢!

[注]


推荐此信息仅出于传递更多信息之需要,并不代表本网赞同其观点和对其真实性负责。

1

评分次数

  • yumuzi

第一个问题:第一通道采集完成后,是如何进入下一个通道的(通过CC,CB,CA重新设置)?
当MULT=1时,进入多通道采样模式。第一个进行采样的通道由CD、CC、CB和CA的值设定。而下一个通道则是顺序递增的那个通道。比如,第一个采样的通道是AN5,转换完成后则对AN6进行采样。CD~CA位只要设定一次就可以了,除非你需要改变初次采样通道。
1

评分次数

  • yumuzi

海纳百川  有容乃大
第二个问题:在多通道的情况下是每个通道都进行S8C,S4C,S2C,S1C设置的转换次数吗?
不是。在多通道采样模式下,每个通道只进行一次采样和转换,S8C~S1C决定每次要对多少个通道进行转换。
我们把这称为一个序列。一个序列可以指对一个通道进行多少次转换(MULT=0时),也可以指一次对多少个通道进行转换(MULT=1时)。一个序列完成后是否继续重复进行,由ATDCLT5的SCAN位决定。
海纳百川  有容乃大
第三个问题:如果我使用单一通道模式进行采集,但是我要在多个通道之间进行切换,请问这个通道切换是否要考虑硬件延迟(即要几个机器指令周期之后才进入下一个通道的转换)?
这时最好检测ATDSTAT0的SCF标志位,当上一个序列转换完成后再切换到下一个通道。
海纳百川  有容乃大
第四个问题:在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开始采样,其后的顺序与上一次完全相同。
海纳百川  有容乃大
[quote]第一个问题:第一通道采集完成后,是如何进入下一个通道的(通过CC,CB,CA重新设置)?
当MULT=1时,进入多通道采样模式。第一个进行采样的通道由CD、CC、CB和CA的值设定。而下一个通道则是顺序递增的那个通道。比如 ...
strongchen 发表于 2010-2-24 10:12 [/quoted]
过了一夜终于有答案了,万分感谢;关于这个问题,版主的列子是连续的通道,假如不是连续的通道是否可行?如第一个通道是AN5,第二是个AN7,第三个是AN11,是否可以进行?还是一定要在单一通道模式下自己切换?
本帖最后由 mcu2007 于 2010-2-25 09:10 编辑
第二个问题:在多通道的情况下是每个通道都进行S8C,S4C,S2C,S1C设置的转换次数吗?
不是。在多通道采样模式下,每个通道只进行一次采样和转换,S8C~S1C决定每次要对多少个通道进行转换。
我们把这称为一个序列。一 ...
strongchen 发表于 2010-2-24 10:36
这个问题。。如果我设置的序列比实际的转换通道要大会有什么问题吗?

考虑了一天我想如果设置过大估计会导致个别通道采集次数会增加!
第三个问题:如果我使用单一通道模式进行采集,但是我要在多个通道之间进行切换,请问这个通道切换是否要考虑硬件延迟(即要几个机器指令周期之后才进入下一个通道的转换)?
这时最好检测ATDSTAT0的SCF标志位,当上 ...
strongchen 发表于 2010-2-24 10:41
这个比较明白,但是是否要考虑通道切换硬件操作的时间,还是切换通道后就直接可以开始转换了?
关于这个问题,版主的列子是连续的通道,假如不是连续的通道是否可行?如第一个通道是AN5,第二是个AN7,第三个是AN11,是否可以进行?还是一定要在单一通道模式下自己切换?
回答:不连续的通道不能自动进行切换,需要用户程序来进行切换。一般来说,在单片机的设计中,我们会将需要进行连续采样的通道连接到相邻的通道上。另外,即使有些通道的数据暂时是不需要的,也可以进行采样,只是将其转换结果忽略就是了。
海纳百川  有容乃大
本帖最后由 strongchen 于 2010-2-25 09:31 编辑

如果我设置的序列比实际的转换通道要大会有什么问题吗?
回答:每个序列的转换数最大为16,而AD的通道数也是16个。不管在实际的硬件设计中你是否用到了所有的通道,但MCU本身的AD通道数是确定的,最多不过是将所有的通道都采样并转换一遍。当然还有另外一种情况。比如你通过WRAPx和CD~CA的设置将转换通道设置为AN0~AN5,而将每个序列的转换数设置为8,这样在每个序列的转换中,AN0和AN1将被转换2次(假设AN0是首次转换通道)。这在有些应用中是很好的功能,因为有些应用需要在一次转换中对某些通道进行多次采样。
海纳百川  有容乃大
但是是否要考虑通道切换硬件操作的时间,还是切换通道后就直接可以开始转换了?
回答:当SCF标志置位后,表示上一次的转换已经完成了。切换通道后可以立即开始下一次采样和转换。
海纳百川  有容乃大
谢谢,版主的热心回答,万分感谢!
1

评分次数

  • kaduo521

支持一下
支持一下
kaduo521 发表于 2010-2-26 09:35
受宠若惊啊,呵呵
个人只是觉的技术大家是迟早要了解和掌握到的,所以没什么好保留的,也只是举手之劳!
很详细,支持一下!
飞思卡尔8/16/32位多功能开发板/下载器:
网站:http://www.lqist.cn,
淘宝店:http://shop36265907.taobao.com
返回列表