Lu.Shi 发表于 2014-12-26 16:55:19

Freescale MKV4x系列MCU的ADC寄存器ADC_CLIST疑惑

本帖最后由 Lu.Shi 于 2014-12-26 16:57 编辑

在Freescale MKV4x系列的MCU referenece manual的ADC模块里面有个ADC Channel List Register ADC_CLIST1, ADC_CLIST2, ADC_CLIST3, ADC_CLIST4 的作用是干什么的?文档中几乎没有描述,所以我猜测是不是将硬件的管脚对应的内部的结果寄存器对应,比如配置成如下
ADC_CLIST1 = ADC_CLIST1_SAMPLE0(0) /*ANA0*/
               | ADC_CLIST1_SAMPLE1(1)/*ANA1*/
               | ADC_CLIST1_SAMPLE2(2)/*ANA2*/
               | ADC_CLIST1_SAMPLE3(3);/*ANA3*/
上面是不是就表示ADC_RSLT0寄存器就存放ANA0的采集结果,同样ADC_RSLT1对应ANA1通道,ADC_RSLT2对应ANA2通道,ADC_RSLT3通道 对应ANA3通道呢?
假如配置成:
ADC_CLIST1 = ADC_CLIST1_SAMPLE0(5) /*ANA5*/
               | ADC_CLIST1_SAMPLE1(6)/*ANA6*/
               | ADC_CLIST1_SAMPLE2(7)/*ANA7*/
               | ADC_CLIST1_SAMPLE3(8);/*ANB0*/
上面是不是就表示ADC_RSLT0里面就是ANA5的采集结果,同样ADC_RSLT1对应ANA6通道,ADC_RSLT2对应ANA7通道,ADC_RSLT3通道 对应ANB1通道呢?

子鱼 发表于 2014-12-26 17:04:31

看手册PWM中ADC控制 有这样一段话看看能不能帮上忙:


1. ADC_CTRL1 寄存器中设置ST0P0;
2. 根据需求,在ADC_CTRL1 寄存器中使能最低限制和最高限制中断功能。并根据需要为单个终端或不同会话配置输入。
为循环顺序模式(Loop Sequential Mode)配置SMODE(也可以使用循环同时模式--Loop Parallel Mode);
3. 根据您的应用,在ADC_CTRL2 中设置合适的DIV 和其它控制字段;
4. 设置ADC_CLIST1 寄存器,以便SAMPLE0、SAMPLE1 和 SAMPLE2 能从规定的控制输入信号中获取采样。选中的输入采样将分别保存在ADC_RSLT0、ADC_RSLT1 和ADC_RSLT2 寄存器中。如果要测量其它输入,还需要设置其它SAMPLEn 字段。
5. 设置ADC_SDIS 寄存器,允许每次扫描至少可以使用3 个采样。可以使用数值0x00F8。
6. 将ADC_LOLIM0 – 2 寄存器设置为低阈值,将ADC_HILIM0 – 2 寄存器设置为高阈值。
7. 根据您的应用设置合适的ADC_0FFST0 – 2 寄存器(假设为0X0000)。

Lu.Shi 发表于 2014-12-26 17:17:03

子鱼 发表于 2014-12-26 17:04
看手册PWM中ADC控制 有这样一段话看看能不能帮上忙:

感谢您的回复!我不知道是不是我先入为主的影响,我感觉设置ADC_CLIST1 寄存器,以便SAMPLE0、SAMPLE1 和 SAMPLE2 能从规定的控制输入信号中获取采样。选中的输入采样将分别保存在ADC_RSLT0、ADC_RSLT1 和ADC_RSLT2 寄存器中。如果要测量其它输入,还需要设置其它SAMPLEn 字段。的说法,好像就是我主帖的理解,不知道是否您也同意我的观点呢?

swap2013 发表于 2014-12-26 17:56:19

如果有例程,看看是怎么用的

子鱼 发表于 2014-12-26 19:40:03

Lu.Shi 发表于 2014-12-26 17:17
感谢您的回复!我不知道是不是我先入为主的影响,我感觉设置ADC_CLIST1 寄存器,以便SAMPLE0、SAMPLE1 和 ...

同意你的说法呢

fengyunyu 发表于 2014-12-27 14:47:09

关注下该问题。LZ可以看下ksdk中有没有相关例程或库函数,对照理解。
页: [1]
查看完整版本: Freescale MKV4x系列MCU的ADC寄存器ADC_CLIST疑惑