关于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个字节的当地。