




已阅读5页,还剩86页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章A/D转换模块,10.1A/D转换模块概述,F2407的A/D模数转换模块(ADC):,带内置采样和保持(S/H)的10位ADC。16个的模拟输入通道(ADCIN0ADCIN15)。两个独立的排序器(SEQ1和SEQ2。可单独访问的16个结果寄存器(RESULT0RESULT15)。,注意:F240 xA器件的ADC模块和F24x器件的ADC模块不兼容,ADC的程序代码不能相互移植。,10.2自动排序器的工作原理,ADC的排序器:包括两个独立的最多可选择8个模拟转换通道的排序器(SEQ1和SEQ2)。,这两个排序器可级连成一个可选择16个转换模拟通道的排序器(SEQ)。,在这两种工作方式下,ADC模块都能够序列转换并进行自动排序。,注:在DSP中只有一个A/D变换器,这个变换器由双排序器工作模式下的两个排序器共享。,排序,通过模拟输入通道的多路选择器来选择要转换的通道。转换结束后,转换后的数值结果保存在该通道相应的结果寄存器(RESULTn)中。即第0通道的转换结果保存在RESULT0中,第1通道的转换结果保存在RESULT1中,依此类推。,说明用户可以对同一个通道进行多次采样,即对某一通道实行“过采样”,这样得到的采样结果比传统的采样结果分辨率高。,级连工作方式下自动排序ADC的结构框图,双排序器工作方式下自动排序的ADC的结构框图,双排序器和单排序器工作比较,注意,在双排序器模式下,来自“未被激活”的排序器的A/D启动请求将在“被激活”的排序器完成采样之后自动开始执行。即,假设A/D转换正在忙于处理SEQ2的操作,当SEQ1启动一个SOC信号后,A/D转换器在完成SEQ2的操作之后立即开始响应SEQ1的请求。,最多可选择8个自动转换通道双排序器工作方式和最多可选择16个自动转换通道单排序器工作方式的操作大致相同。,描述排序器的规定,排序器1(SEQ1):CONV00CONV07;排序器2(SEQ2):CONV08CONV15;级连排序器(SEQ):CONV00CONV15。,10.2.1连续的自动排序模式,SEQ1/SEQ2在一次排序过程中对8个通道进行任意排序转换;每次转换结果保存到8个结果寄存器,SEQ1的结果寄存器为RESULT0RESULT7,SEQ2的结果寄存器为RESULT8RESULT15。,排序中的转换个数受MAXCONVn(MAXCONV寄存器中的一个3位段域或4位段域)控制;MAXCONVn段域的值在07范围变化。MAXCONVn在自动排序的转换开始时,被装载到自动排序状态寄存器(AUTO_SEQ_SR)的排序计数器段域(SEQCNTR30)。当排序器从通道CONV00开始有顺序的转换时,SEQCNTRn段域的值从装载值开始向下计数直到SEQCNTRn为0。,一次自动排序完成的转换数为MAXCONVn1。,例1:在双排序器模式下用SEQ1进行A/D转换。,设:用SEQ1完成7个通道的转换排序自动转换:通道2、3、2、3、6、7、12。MAXCONV1的值设为6,CHESELQn寄存器填入值,表中数值为十进制,x为不关心的值。,连续的自动排序方式A/D转换流程图,说明,用户必须保证在下一个转换序列开始之前,读取结果寄存器的值。在ADC模块企图向结果寄存器写入数据,而用户却企图从结果寄存器中读取数时,ADC模块的仲裁逻辑保证在发生这种冲突时不会崩溃。,注意,SEQCNTR为0后:如果位CONTRUN为0,则排序器指针停留在最后状态;如果位CONTRUN为1,则转换自动重新开始(即SEQCNTRn装入最初的MAXCONV1的值,SEQ1的通道指针指向CONV00)。,在SEQCNTRn每次到达0时,中断标志位被置为1,需要时用户可以在中断服务子程序中用ADCTRL2寄存器中的RSTSEQn位将排序器手动复位。复位之后,在下一个A/D启动信号来到时SEQCNTR装入MAXCONVn中的原始值,且SEQ1指针指向CONV00。,10.2.2排序器的启动/停止模式,可实现在时间上单独和多个启动信号触发源同步的功能。CONTRUN位必须设置为0。,在排序器完成第一个转换序列之后,不需要在中断服务程序中复位,即排序器初始指针不需要指到CONV00就可以被重新触发。因此,一个转换序列之后,排序器指针指到当前的通道。,例2排序器工作在启动/停止方式,要求:触发源1(定时器下溢)启动3个自动转换(I1、I2和I3);触发源2(定时器周期)启动3个自动转换(V1、V2和V3)。触发源1和触发源2在时间上是分开的,即间隔25S。,注:触发源1和2可以是来自事件管理器EVA,外部引脚或软件的SOC信号。,MAXCONV1的值置为2。,ADC模块的输入通道选择排序控制寄存器,事件管理器A(EVA)启动排序器,一旦复位和初始化之后,SEQ1就开始等待触发源的到来。第一个触发源到来之后,执行通道选择值为CONV00(I1)、CONV01(I2)和CONV02(I3)的3个转换。转换完成之后,SEQ1等待另一个触发源的到来。25S之后另一个触发源到来,ADC模块开始执行另外3个通道选择值为CONV03(V1)、CONV04(V2)和CONV05(V3)的转换。,在第二个转换序列完成之后,ADC模块的结果寄存器中得到的值,说明,在两种触发源的情况下,MAXCONV1的值被自动装入SEQCNTR1中。如果第二个触发源要求转换的个数和第一个不一样,用户必须在第二个触发源来到之前,通过软件改变MAXCONV1的值;否则ADC模块将重新使用原来的MAXCONV1中的值。用户可以在第一个触发源引起的转换完成之后的中断复位程序中改变MAXCONV1的值,为第二个触发源引起的转换个数作准备。,10.2.3输入触发源,注:,1排序器处于空闲状态:在接收到一个触发源之前,排序器指针指到CONV00或者排序器已经完成一个转换序列(即SEQCNTR为0)。无论何时,只要一个排序器处在空闲状态,一个启动信号触发就可以启动一个自动转换序列。2如果一个新的启动触发信号来到时,当前转换序列正在进行,则将ADCTRL2寄存器中的SOCSEQn位置1(该位在前一个转换开始时被清0)。但,如果此时SOCSEQn位已经为1,则该启动触发信号丢失。,3一旦被触发后,不能在转换中途停止或中断排序器。除非,程序等到了一个序列的停止信号或者对排序器进行了复位。复位使排序器立即返回到空闲的起始状态(SEQ1和级连的排序器指针指到CONV00,SEQ2的排序器指针指到CONV08)。4当SEQ1/2工作在级连方式下,到SEQ2的触发源被忽略,而到SEQ1的触发源仍然有效。级连方式可视为SEQ1有16个转换通道而非8个转换通道。,10.2.4在排序转换时的中断操作,排序器可以在两种工作方式下产生中断,工作方式方式由ADCTRL2寄存器中的中断模式控制位决定。,Case1:第一个序列和第二个序列中采样的个数不一样。,使用中断方式1:在每次EOS到来时,产生中断请求。(1)排序器设置MAXCONVn=1以转换I1和I2。(2)在中断服务子程序a中,软件将MAXCONVn的值改为2以转换V1、V2和V3。(3)在中断服务子程序b中完成以下操作:MAXCONVn改为1,用来转换I1和I2;I1、I2、V1、V2和V3的值从ADC结果寄存器中读出;复位排序器。(4)重复第(2)步和第(3)步。,注意:在每次SEQCNTR到0时将中断标志位置1,且产生两次中断。,Case2:两个序列的采样个数相等。,使用中断方式2:每隔一个EOS信号,产生一次中断请求。(1)排序器设置MAXCONVn=2以转换I1、I2和I3(或者V1、V2和V3)。(2)在中断服务子程序b或d完成以下操作:I1、I2、I3、V1、V2和V3的值从ADC结果寄存器中读出;复位排序器。(3)重复第(2)步和第(3)步。,注意:在每次SEQCNTR到0时将中断标志位置1,即在ADC转换完I1、I2和I3或者V1、V2和V3之后中断标志位置1。但是只有转换完V1、V2和V3之后才产生中断。,Case3:两个序列的采样个数相等(带虚读)。,使用中断方式2:每隔一个EOS信号,产生一次中断请求。(1)排序器设置MAXCONVn=2以转换I1、I2和x。(2)在中断服务子程序b或d完成以下操作:I1、I2、x、V1、V2和V3的值从ADC结果寄存器中读出;复位排序器。(3)重复第(2)步和第(3)步。,注意:第3个x采样为一个假采样,并没有要求采样。但为了使中断服务子程序的开销和CPU的干扰最小,可以利用中断方式2的中断请求特性。,10.3ADC时钟预定标,通过改变ADCTR1寄存器中的ACQPS3-ACQPS0位段域和CPS位,调整F240 xA器件ADC的采样/保持模块来适应信号阻抗的变化。,A/D转换时间,A/D转换可被分成两个时间段。,说明,如果ACQPS3ACQPS0位段域的值全为0,即预定标器的值为1;CPS为0时,PS时钟将和CPU时钟一样。对于预定标器的任何其它值,PS都会增加采样/保持窗口的时间。如果CPS为1,则S/H窗口长度为原来的2倍。即,原来的S/H窗口再加上被预定标器拉长的倍数才是最后的PS。,注意:在CPS为0时,PS和ACLK将和CPU时钟相等。,10.4校准模式,说明在校准方式下,ADCINn引脚未接A/D转换器,因此不能对排序器进行操作。接收A/D转换器输入端的信号为BRGENA位和HI/LO位。,校准模式:计算ADC模块的零点、中点和最大值时的偏移误差。,偏移误差为二进制补码,保存在校准寄存器中(二进制补码操作只适用于误差值为负的情况)。ADC硬件自动将偏移误差量加到转换值上。,校准寄存器(CALIBRATION)地址70B8h,CALIBRATION寄存器中存放校准模式下的最后结果。在正常模式下时,ADC转换结果保存到结果寄存器之前CALIBRATION寄存器中的值会自动加到ADC转换结果的输出。,例1:,如果选择VREFHI作校准操作,则期望的结果是3FFh。如果从CALIBRATION寄存器读出的校准转换结果为3FDh,那么用户应当在离开校准模式之前,将值002h写到CALIBRATION寄存器中。CALIBRATION寄存器中的值(002h)将对以后的转换值进行2个数的调整。,例2:,如果选择VREFLO作校准操作,则期望的结果是000h。如果从CALIBRATION寄存器读出的校准转换结果为003h,那么用户应当在离开校准模式之前,将值003h写到CALIBRATION寄存器中。CALIBRATION寄存器中的值(003h)将对以后的转换值进行3个数的调整。,校准操作,在校准模式下,ADC将转换结果保存在CALIBRATION寄存器中;在校准转换结束之后,INT_FLAG_SEQ1位置1;如果中断被使,则产生中断;用户必须读取CALIBRATION寄存器的值,以判断该值对理想值的偏移量有多大,然后在离开这种校准方式之前,将该偏移量写回CALIBRATION寄存器中;转换值被送到结果寄存器之前,CALIBRATION寄存器中的值将加到转换值上(不是在校准模式)。,注意,为了得到精确的结果,校准操作必须作两次,即在保证已经完成第一个校准操作后,应当立即启动第二个校准操作(这将覆盖第一次校准操作的结果)。,10.5自测式模式,自测试模式只能用来检测ADC引脚的短路或开路。,注意:正常模式和自测试模式不能同时使用。在自测试模式下,采样周期为正常模式的两倍。,10.6ADC模块的寄存器,1ADC控制寄存器1(ADCTRL1)地址70A0h,注:R=可读,W=可写,-0=复位值,位15保留位。位14复位位。ADC模块软件复位位。此位引起一个对整个ADC模块的主动复位。所有的寄存器和排序器指针都复位到器件复位引脚被拉低或者上电复位时的初始状态。0无影响1复位整个ADC模块,注:ADC模块可在系统复位时被复位,但用户可以提供向此位写入1,实现在任何时候对ADC模块的复位。,一个NOP指令后就可以对向ADCTRL1寄存器中写入相应的值。在缺省设置足够时,复位ADC模块之后也可不向ADCTRL1中写数。,位1312SOFT位和FREE位。决定仿真悬挂时ADC模块的工作情况。在自由运行模式下,ADC模块的运行不受仿真影响;在停止模式下,仿真悬挂时,ADC模块可立即停止或者完成当前操作之后停止。SOFTFREE00一旦仿真悬挂,ADC模块立即停止;10仿真悬挂时,ADC模块完成当前转换后停止;x1自由运行,继续运行而不管仿真悬挂。位118采样时间选择位ACQPS3ACQPS0。决定ADC时钟的预定标系数。位7CPS位。转换时钟预定标位。决定ADC转换逻辑时钟的预定标。0FCLKCLK/1;1FCLK=CLK/2。其中CLK为CPU时钟频率。,AD模块的预定标系数,位6连续转换位CONTRUN。决定排序器工作在连续转换模式或者启动/停止模式。用户可以在当前转换序列正被执行时向该位写数,但是只有在当前转换序列完成之后才生效。在连续模式下,用户不用对排序器复位,而在启动/停止模式下,必须复位排序器,使排序器指针指到CONV00。0启动/停止模式;1连续转换模式。位5ADC中断请求优先级位INTPRI。0高优先级;1低优先级。位4级连排序器工作方式位SEQCASC。0双排序器工作模式。SEQ1和SEQ2为可选择8个转换通道的排序器;1级连模式。SEQ1和SEQ2级连起来作为一个可选择16个转换通道的排序器SEQ。,位3偏差校准使能位CALENA。0禁止校准模式;1使能校准模式。位2桥使能位BRGENA。0满的参考电压被接到ADC输入;1参考的中点电压被接到ADC输入。位1VREFHI和VREFLO选择位HI/LO。0VREFLO作为ADC输入的值;1VREFHI作为ADC输入的值。位0自测试使能位STESTENA。0禁止自测试模式;1使能自测试模式。,参考电压位选择定义,2ADC控制寄存器2(ADCTRL2)地址70A1h,位15EVBSOCSEQ。EVB的SOC信号使能级连排序器位。0不起作用;1允许级连的排序器SEQ由事件管理器B的信号启动。位14RSTSEQ1/STRTCAL。复位排序器1/启动校准转换方式位。在校准转换方式被禁止的情况下:0不起作用;1立即复位排序器,使排序器指针指到CONV00。在校准转换方式使能的情况下:0不起作用;1启动校准转换方式。,位13SOCSEQ1。启动SERQ1转换位。以下触发源可以引起此位被置1:S/W软件向这一位写1;EVA事件管理器A;EVB事件管理器B(仅在级连模式下);EXT外部引脚(即ADCSOC引脚)。0清除一个悬挂的SOC请求;1软件触发启动SEQ1。,当一个触发源到来时,有3种情况可能发生:SEQ1处于空闲状态且清0SOC位时,SEQ1立即启动(在判优仲裁控制下);置1SOCSEQ1位后立即清0,允许悬挂后来的触发源。SEQ处于忙状态但SOC位为0时,置1SOCSEQ1位表示正悬挂一个触发源请求;当SEQ1完成当前的转换又重新开始时,清0该SOCSEQ1位。SEQ1处于忙状态且已经置1SOC位时,忽略此时来到的触发源。,注:在同一个指令中设置RSTSEQ1位和SOCSEQ1位时,将复位排序器。正确的操作顺序:先设置RSTSEQ1位,再在下一条指令中设置SOCSEQ1位。保证复位一个排序器之后,再将其重新启动。RSTSEQ2位和SOCSEQ2位的操作亦如此。,位12SEQ1BSY。SEQ1忙状态位。0SEQ1处于空闲状态;1SEQ1处于忙状态,一个转换序列正在进行。位1110对SEQ1的中断方式使能控制位。位9INTFLAGSEQ1位。ADC模块SEQ1的中断标志位。0无中断事件发生;1有中断事件发生。位8EVASOCSEQ1位。事件管理器A对SEQ1产生SOC信号的屏蔽位。0SEQ1不能被EVA的触发源启动;1允许SEQ1/SEQ被EVA的触发源启动。位7EXTSOCSEQ1位。外部信号对SEQ1的启动转换位。0不起作用;1允许一个来自ADCSOC引脚上信号,启动ADC自动转换序列。位6RSTSEQ2。复位排序器2。0不起作用;1立即复位排序器,使排序器指针指到CONV00。,位5SOCSEQ2位。启动SEQ2转换位(仅适用于双排序器模式)。以下触发源可以引起该位置1:S/W软件向这一位写1;EVB事件管理器B。0清除一个悬挂的SOC请求;1软件触发启动SEQ1。,当一个触发源到来时有3种情况可能发生:SEQ2处于空闲状态且SOC位清0时,SEQ2立即启动(在判优仲裁控制下);该位置1后立即被清0,允许后来的触发源被悬挂。SEQ2处于忙状态但SOC位为0时,该位置1以表示正悬挂一个触发源请求;当SEQ2完成当前的转换又重新开始时,该位清0。SEQ2处于忙状态且SOC位已经置1时,忽略此时来到的触发源。,位4SEQ2BSY位。SEQ2忙状态位。0SEQ2处于空闲状态;1SEQ2处于忙状态,一个转换序列正在进行。位32对SEQ2的中断方式使能控制位。位1INTFLAGSEQ2位。ADC模块SEQ2的中断标志位。0无中断事件发生;1发生过中断事件。位0EVASOCSEQ2位。事件管理器B对SEQ2产生SOC信号的屏蔽位。0SEQ2不能被EVB的触发源启动;1允许SEQ2被EVB的触发源启动。,3最大转换通道寄存器(MAXCONV)地址70A2h,位157保留位。表10.11MAXCONV1的位定义和转换个数之间的关系。,位60MAXCONVn位域。该位域决定了一次自动转换最多转换的通道个数。注意:该位域及其操作随着排序器工作模式的变化而变化。,对SEQ1操作,使用位域MAXCONV1_20;对SEQ2操作,使用位域MAXCONV2_20;对SEQ操作,使用位域MAXCONV1_30。,表10.11,MAXCONV1的位定义和转换个数之间的关系,例10.3对MAXCONV寄存器位的编程,如果需要进行5个转换,则MAXCONV设置为4;在双排序器模式下使用SEQ1或者在级连模式下使用SEQ;排序器指针依次从CONV00指到CONV04;5个转换结果依次存放在转换结果寄存器0004中。,在双排序器模式下使用SEQ2时,排序器指针依次从CONV08指到CONV12,且5个转换结果依次存放在转换结果寄存器0812中。,当SEQ1工作在双排序器模式下,且写入MAXCONV1中的值超过7时,SEQCNTRn超过7之后将继续计数,并使排序指针重新指到CONV00继续转换。,4自动排序状态寄存器(AUTO_SEQ_SR)地址70A7h,位1512保留位。位118SEQCNTR3-SEQCNTR0。排序器计数状态位。见表10.12。位7保留位。位64SEQ2-State2SEQ2-State0。反映了SEQ2排序器指针的状态。如果需要,用户可以根据这几位的值,在结束转换EOS信号来到之前,读取中间结果。位30SEQ1-State3SEQ1-State0。反映了SEQ1排序器指针的状态。如果需要,用户可以根据这几位的值,在结束转换EOS信号来到之前,读取中间结果。,每一个4位域都可为自动转换选择16个模拟输入通道中的任意一个。见表10.13。,表10.12SEQCNTRn位定义,表10.13ADC输入通道选择位定义,5ADC输入通道选择排序控制寄存器(CHSELSEQn)地址70A3h70A6h,CHSELSEQ1,CHSELSEQ2,CHSELSEQ3,CHSELSEQ4,6ADC转换结果缓冲寄存器(RESULTn)地址70A8h-70B7h,注:1.缓冲区地址为70A8h70B7h(16个寄存器);2.10位转换结果放在(D9D0)。,10.7ADC转换时钟周期,转换周期可分成5个阶段:,启动时序同步(SOS同步):只在一个转换序列的第一个转换时需要;采样时间(ACQ)转换时间(CONV);结束转换时间(EOC):序列转换完成后,设置标志位时间EOS:该时间仅在一个序列的最后一个转换时需要。,注意:转换时间与一个给定的序列中转换的个数有关。ACQ、CONV和EOC在每个转换中都需要。,ADC转换各个阶段需要的CLKOUT时钟周期,ACQPS=1,2,3时ACQ的值,10.8ADC转换应用举例,程序只作一次A/D采样。用事件管理器B的定时器4,定时时间到来触发A/D采样的启动。采样时采用级连模式,一次作16个转换,转换通道分别是015。转换完成后,在A/D中断服务子程序中将转换结果读出。,1汇编源程序,.includeF2407REGS.H;引用头部文件.def_c_int0;建立中断向量表.sect.vectors;定义主向量段RSVECTB_c_int0;PM0复位向量1INT1BGISR1;PM2中断优先级14INT2BPHANTOM;PM4中断优先级25INT3BPHANTOM;PM6中断优先级36INT4BPHANTOM;PM8中断优先级47INT5BPHANTOM;PMA中断优先级58INT6BPHANTOM;PMC中断优先级69RESERVEDBPHANTOM;PME模拟量输入中断(保留)10SW_INT8BPHANTOM;PM10用户定义软件中断-SW_INT31BPHANTOM;PM3E用户定义软件中断-,;中断子向量入口定义pvecs.sect.pvecs;定义子向量段PVECTORSBPHANTOM;保留向量地址偏移量00HBPHANTOM;保留向量地址偏移量01HBPHANTOM;保留向量地址偏移量02HBPHANTOM;保留向量地址偏移量03HBADCINT_ISR;保留向量地址偏移量04HADC中断BPHANTOM;保留向量地址偏移量05HBPHANTOM;保留向量地址偏移量41H,;主程序:.text_c_int0SETCINTMCLRCSXMCLRCOVMCLRCCNFLDP#0E0HSPLK#81FEH,SCSR1;CLKIN=6M,CLKOUT=24MSPLK#0E8h,WDCR;关看门狗LDP#0SPLK#0001h,IMR;允许INT1中断SPLK#0FFFFh,IFR;清所有中断标志CALLADINIT;初始化ADC程序CLRCINTM;开总中断CALLAD;启动模数转换程序WAIT:NOPBWAIT,;ADC初始化程序ADINIT:LDP#225;设置通用定时器4SPLK#0000H,T4CNTSPLK#170CH,T4CONSPLK#075H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 充电桩建设工程预算控制方案
- 混凝土施工现场环保管理方案
- 颜色类知识竞赛题及答案
- 塔吊基础专项建筑施工组织设计及对策
- 碳复合材材料生产线建设项目施工方案
- 混凝土工程现场安全管理方案
- 离婚协议子女轮流抚养及子女抚养费支付服务合同
- 离婚双方个人隐私保护及子女成长协议
- 离婚双方共同人寿保险合同终止及续保协议
- 离婚房产分割与共同债务清偿协议范本
- 运动性损伤及预防
- IQC基础知识培训课件
- 政府代建项目回购协议书范本
- 《压力容器、压力管道安全管理基本要求及检查要点》知识培训
- 《机械制造装备设计》课程教学大纲
- 《世界奇花异草》课件
- 沟通能力培训课件x
- 半导体物理学全套课件
- 2024年09月2024秋季中国工商银行湖南分行校园招聘620人笔试历年参考题库附带答案详解
- 第一章-发型发展简史
- 智能计算系统:从深度学习到大模型 第2版课件 9、第九章-大模型计算系统
评论
0/150
提交评论