电气与信息工程学院第10讲281xADC原理2电气与信息工程学院DSP技术及应用281xADC原理10.1281xADC功能特点●12位ADC核,内含采样/保持电路;●同时采样或顺序采样模式;●模拟输入范围0~3V;●25MHZ的ADC时钟频率,转换时间短;●16通道,多路选通输入;●16路自动转换的自动排序能力;●排序器可作为两个独立的8通道排序器或一个16通道排序器;●16个采样结果寄存器保存采样结果,每个可独立寻址;●多个触发源可以启动AD转换;●允许每个排序的结束(EOS)或每两次EOS申请中断一次;●排序器可工作在开始/停止模式,允许多个时间排序的触发源同步转换;●EVA、EVB触发源可以独立工作在双排序器模式;●采样保持(S/H)获取时间窗有单独的预分频时钟。2电气与信息工程学院DSP技术及应用ADC模块的特点通常设计AD端口的嵌位电路用于保护ADC输入端口。ADCModuleBlockDiagram(CascadedMode)12-bitA/DConverterResultSelectResultMUXRESULT0...RESULT1RESULT2RESULT15CHSEL00(state0)CHSEL01(state1)CHSEL02(state2)CHSEL03(state3)CHSEL15(state15)...MAX_CONV1AutosequencerStartSequenceTriggerSOCEOCSoftwareEVAEVBExtPin(ADCSOC)AnalogMUXMUXAADCINA0ADCINA1ADCINA7...MUXBADCINB0ADCINB1ADCINB7...S/HAS/HMUXS/HBADCModuleBlockDiagram(Dual-Sequencermode)12-bitA/DConverterSoftwareEVAExtPin(ADCSOC)ResultSelectResultMUXRESULT0...RESULT1RESULT7ResultSelectRESULT8...RESULT9RESULT15CHSEL00(state0)CHSEL01(state1)CHSEL02(state2)CHSEL07(state7)...MAX_CONV1AutosequencerStartSequenceTriggerSOC1/EOC1SEQ1CHSEL08(state8)CHSEL09(state9)CHSEL10(state10)CHSEL15(state15)...MAX_CONV2AutosequencerStartSequenceTriggerSEQ2SequencerArbiterSOC2/EOC2SoftwareEVBAnalogMUXMUXAADCINA0ADCINA1ADCINA7...MUXBADCINB0ADCINB1ADCINB7...S/HAS/HMUXS/HB2电气与信息工程学院DSP技术及应用281xADC原理•ADC的全部操作都通过ADC寄存器进行。•ADC寄存器映射到外围帧1的地址空间,地址范围是0x0000-7100到0x0000-711F,由ADC控制寄存器、ADC通道选择排序控制寄存器、ADC转换结果寄存器、ADC状态寄存器、ADC最大转换通道数寄存器、ADC自动排序状态寄存器等组成,全部是16位寄存器。•输入模拟电压对应的数字值公式为:2电气与信息工程学院DSP技术及应用281xADC原理10.2自动排序器的工作原理•ADC排序器由两个8路排序器SEQ1和SEQ2组成,也可级联成一个16路排序器SEQ;•两种排序器都有能力对一系列的转换进行自动排序;•ADC可以工作在顺序采样和同时采样模式;•双8路和单16路排序器的操作基本相同,不同之处见下表:2电气与信息工程学院DSP技术及应用281xADC原理10.3ADC工作模式•该模式下,SEQ1/SEQ2一次可以对8个转换进行排序。SEQ1的转换结果放在ADCRESULT0到ADCRESULT7中,SEQ2的转换结果放在ADCRESULT8到ADCRESULT15中;•在ADCMAXCONV寄存器中的MAXCONVn位置存放了每次转换的数量;在每次转换的开始,该值就被自动装载到自动排序状态ADCASEQSR寄存器中(SEQCNTRn位);•MAXCONVn共有3位(或4位,和工作模式有关),变化范围从0到7(或0到15)。ADCASEQSR在载入初始值后,每转换完一路就减一,减到0意味着转换全部完成。2电气与信息工程学院DSP技术及应用281xADC原理例1采用SEQ1的双排序器模式下的转换•假设在SEQ1中有7路转换,即ADCINA2和ADCINA3各两次、ADCINA6、ADCINA7和ADCINB4各一次。则MAXCONV1=6,ADCCHSELSEQn各寄存器中按下表放入各值。在SOC触发信号来后,ADCASEQSR中的SEQCNTRn位自动载入6,转换开始后,每转换完一路就减1。一旦SEQCNTRn=0,就会发生如下情况:1.如果ADCTRL1寄存器中的CONTRUN位为1,转换又自动开始;2.如果CONTRUN位为0,排序器停止在最后的状态CONV06,SEQCNTRn保持0不变。为了在下次SOC时可重复上述采样过程,你必须使用ADCTRL2寄存器中的RSTSEQn位来复位排序器。2电气与信息工程学院DSP技术及应用281xADC原理排序器的启动/停止模式例2排序器的启动/停止操作•要求:在触发1(定时器下溢)来到时开始三个自动转换(I1、I2、I3),触发2(定时器周期匹配)来到时开始另外三个自动转换(V1,V2,V3)。触发事件1、2在时间上是差25μS,由事件管理器A提供。这里仅用到SEQ1。2电气与信息工程学院DSP技术及应用281xADC原理•这里MAXCONV1设成2,ADC输入通道选择排序控制寄存器ADCCHSELSEQn设成:在复位和初始化后,SEQ1等待触发。当第一个触发到来时,通道选择值为CONV00(I1)、CONV01(I2)、CONV02(I3)的三个AD转换先执行完。然后SEQ1在现有状态下等待第二个触发。25微秒后,第二个触发信号到来,通道选择值为CONV03(V1)、CONV04(V2)、CONV05(V3)的三个AD转换接着执行完。2电气与信息工程学院DSP技术及应用281xADC原理ADC结果寄存器中将有如下结果:同步采样模式:ADC有同时采样两路ADCINxx输入的能力,前提是一路输入是ADCINA0-ADCINA7,另一路输入是ADCINB0-ADCINB7,而且两路输入的偏移量是对应的,例如ADCINA0和ADCINB0,而不是ADCINA2和ADCINB3。要使ADC变成同时采样模式,ADCTRL3寄存器中的SMODE_SEL位必须设为1。2电气与信息工程学院DSP技术及应用281xADC原理输入触发信号•每个排序器都有一套触发源,触发源可以被使能或禁止。注意:(1)排序器处于空闲时,SOC可以触发一次自动转换。(2)如果SOC来到时,ADC正进行转换,则ADCTRL2寄存器中的SOCSEQn位被设置(该位在开始一个转换前被清0)。(3)一旦触发,排序器就不能中途停止。(4)当SEQ1/2用于级联模式时,通向SEQ2的触发被忽略,只SEQ1触发有效。2电气与信息工程学院DSP技术及应用281xADC原理10.4排序转换中的中断操作第一种情况:两次采样的采样数不一样。模式1中断操作(即每次EOS都产生中断)•1)排序器被初始化成MAXCONVn=1先转换I1、I2。•2)在ISR“a”中,用户软件将MAXCONVn改成2,转换V1、V2、V3。•3)在ISR“b”中,将MAXCONVn改回1,从ADC结果寄存器中读出I1、I2、V1、V2、V3的值,随后复位排序器。•4)重复2)和3)的过程。注意每次SEQCNTRn计到0时中断标志位都变成1,因而有两次中断响应。排序器可以产生两种中断模式,由ADCTRL2寄存器中的中断模式使能控制位决定。2电气与信息工程学院DSP技术及应用281xADC原理第二种情况:两次采样的采样数一样。模式2中断操作(即每两次EOS产生一个中断)•1)排序器被初始化成MAXCONVn=2以转换I1、I2、I3或V1、V2、V3。•2)在ISR“b”中,从ADC结果寄存器中读出I1、I2、I3、V1、V2、V3的值,随后复位排序器。•3)重复2)的过程第三种情况:两次采样的采样数一样(哑读)。模式2中断操作(即每两次EOS产生一个中断)•1)排序器被初始化成MAXCONVn=2以转换I1、I2、x。•2)在ISR“b”中,从ADC结果寄存器中读出I1、I2、x、V1、V2、V3的值,随后复位排序器。•3)重复2)的过程。注意采样x是一个假采样,并不真要采样这个值,不过是为了减小ISR和CPU的负担,不在ISR中修改MAXCONVn。2电气与信息工程学院DSP技术及应用281xADC原理2电气与信息工程学院DSP技术及应用281xADC原理10.5ADC时钟定标•外围时钟HSPCLK并不是直接被ADC所用,而是先要被ADCTRL3寄存器中的ADCCLKPS[3:0]位分频。•随后经过二分频(当ADCTRL1寄存器中的位CPS=1)或不分频(当CPS=0)就可得ADC的时钟基准ADCCLK。•同时ADCTRL1寄存器中的ACQ_PS位可决定采样窗口的宽度,以适应输入源阻抗的变化。2电气与信息工程学院DSP技术及应用281xADC原理ADC模块有好几级定标用于产生需要的ADC时钟2电气与信息工程学院DSP技术及应用281xADC原理•举例2电气与信息工程学院DSP技术及应用281xADC原理10.6ADC寄存器14RESETADC模块软件复位。•0无影响•1复位整个ADC模块(在置1后ADC逻辑会将该位清0)ADC控制寄存器1ADCTRL1•13-12SUSMOD1-SUSMOD0仿真悬挂模式。这些位决定仿真悬挂发生时发生什么事情,例如调试器遇到一个断点。•00模式0。仿真悬挂忽略。•01模式1。排序器和别的卷绕逻辑在当前排序器完成后停止,最后的结果锁存起来,状态机被刷新。•10模式2。排序器和别的卷绕逻辑在当前转换完成后停止,最后的结果锁存,状态机被刷新。•11模式3。排序器和别的卷绕逻辑在仿真悬挂时立即停止。•11-8ACQ_PS3-ACQ_PS0采样窗长度,用于控制SOC脉冲的宽度,决定什么时间采样开关关闭。SOC脉冲的宽度是ADCLK周期的ADCTRL1[11:8]+1倍。•7CPSADC内核时钟定标器。用于对DSP外围时钟HSPCLK分频。•0Fclk=CLK/1•1Fclk=CLK/2。这里CLK=由ADCLKPS[3-0]分频后的HSPLK。•6CONTRUN连续运行。决定排序器运行于连续转换模式还是启动/停止模式。在连续转换模式下,不需要复位排序器。在启动/停止模式下,排序器需要复位以指到CONV00。•0启动/停止模式。在EOS后排序器停止。下一个SOC时,排序•器从结束的状态重新开始,除非排序器复位。•1连续转换模式。EOS到达后,排序器又从CONV00开始(SEQ1和级联模式)或从CONV08开始(SEQ2)。•6CONTRUN连续运行。决定排序器运行于连续转换模式还是启动/停止模式。在连续转换模式下,不需要复位排序器。在启动/停止模式下,排序器需要复位以指到CONV00。•0启动/停止模式。在EOS后排序器停止。下一个SOC时,排序•器从结束的状态重新开始,除非排序器复位。•1连续转换模式。EOS到达后,排序器又从CONV00开始(SEQ1和级联模式)或从CONV08开始(SEQ2)。•5SEQOVRD排序器失效位。在转换结束时可屏蔽卷绕逻辑,从而额外增加了连续运行模式下的排序器灵活性。仅A和B版之后的硅片才有此功能。•0禁止该位。允许排序器在由MAXCONn决定的转换结束时