本帖最后由 anvy178 于 2015-4-11 13:45 编辑
MSP430I23xxx 系列 SD24 功能小分解。 SD24 AD转换功能功能的强大 大家可以看介绍就行了。下面专门针对读者两个比较困惑的问题发表一下。
第一个是 输入通道 跟转换器之间的关系。一看 介绍 ,此 AD有4个独立的AD转换核心 还每个converter都可以通过 SD24INCHx
(x代表1,2,3,4. ,4个converter的输入通道选择寄存器)来选择不同的输入通道。 如下图红色方框圈住的就是输入通道控制寄存器SD24INCTLX
其中的三个位(SD24INCHx)。
。
大家 看到这里 就会想, 哇塞 好多AD口啊 ,4个converter 通过SD24INCTLX 的三个位来切换,就有4X8=32 个模拟输入通道哦(可能还有别的想法,或者4个converter可以随意接到这上面的8个通道的 任何一个)。但是 事实个这个是有50%的误差的 ,为什么是百分之50呢。就是分开模拟输入通道与 温度传感器通道来说的。 对 温度传感器通道来说(温度传感器通道在第六通道),确实是这样子的 ,就是4个converter 都可以分别选择到温度传感器这个通道上。(能不能一起选,没试过,现实使用我估计也没人这么用法)。但是模拟输入通道,就不是这个样子的了,前面6个模拟输入通道选择(实际上这个系列的MCU 根本就没有6对模拟输入 我暂时看的这个系列的所有CPU,最多只有4对),应该是说跟各个converter绑定在一起的 。 举个例子说明下, 比如说你选择了converter0,那么不管你选择那个通道(0,1,2,3,4,5,除了第六个是连接内部温度传感器的外)。你实际的物理模拟输入通道 ,只会是A0.0。 证据在那里呢?看 MSP430i2xx Family user guide的SD24部分的 输入控制寄存器SD24INCTLX(x代表0,1,2,3)中的输入通道控制寄存器位 ,大家看红色圈圈圈住的 是不是都是指向同一个模拟通道啊 ?! 所以 ,在编程之中 ,就只有SD24_INPUT_CH_ANALOG 与SD24_INPUT_CH_TEMPERATURE这两个参数的区分,并不区分输入的 1,2,3,4,5通道。用户选中相对的converter之后,只要确定是模拟输入 还是温度输入就行了。
第二个功能 就是此AD的 分组功能。此功能在通道控制寄存器的第1位上(SD24GRP)。所以,param的第三个成员参数,就是为了设置这个位的。 把4个converter 分组有什么好处呢?正常我们控制AD的时候,都是一个一个的控制 ,就是一个一个通道的分别分时采集。SD24分组后,就可以同时同步的进行不同的通道或者说 不同的converter进行同步的采集。分组就是为了实现这个同步采集的的功能。在分组中 ,只需要对其中一个converter进行转换,那么跟他一组的 converter 也会同步进行转换。这就是所谓的同步数据采集。 举个例子:假如你把4个converter 都弄成了同一组,那么你只需要对第四个converter进行控制转换,其它的三个converter就会同时跟着进行自动转换了,不用对每一个converter都进行一次SD24_startConverterConversion的操作。
|