《第十章 模拟单元.ppt》由会员分享,可在线阅读,更多相关《第十章 模拟单元.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第10章章 模拟单元模拟单元 10.1 10.1 2424位位模数转换器的结构模数转换器的结构 10.2 16 10.2 16位数模转换器位数模转换器 MSC1211作为高集成度的模拟数字混作为高集成度的模拟数字混合信号芯片提供了八通道合信号芯片提供了八通道24位的位的模模数转换器,在数据输出速率为数转换器,在数据输出速率为10Hz时可时可以得到以得到22位的有效分辨率,并且转换噪声位的有效分辨率,并且转换噪声只有只有75nV。MSC1211同时提供了四通道同时提供了四通道具有具有rail-rail的输出能力的输出能力16位的数模转换位的数模转换器。器。10.1 24位位模数转换器的结构模数
2、转换器的结构 MSC1211的的模模数数转转换换器器部部分分由由模模拟拟多多路路开开关关(MUX)、可可选选择择缓缓冲冲器器(BUF)、可可编编程程增增益益放放大大器器(PGA)、基基准准电电压压源源、二二阶阶调调制制器器和和数数字字滤滤波波器器等等组组成成。用用户户通通过过控控制制相相应应的的特特殊殊功功能能寄寄存存器器位位就就可可以以控控制制模模数数转转换换器器的的所所有有功功能能,也也可可以以根根据据需需要要将将其其关关闭闭以以降低功耗。降低功耗。10.1.1 模拟多路开关(模拟多路开关(MUX)MSC1211的模拟多路开关很的模拟多路开关很大的灵活性。它的每一个引脚既可大的灵活性。它的
3、每一个引脚既可以作为同相输入端,也可以作为反以作为同相输入端,也可以作为反相输入端。其可以将任何两路模拟相输入端。其可以将任何两路模拟输入信号组合成为一对差分输入信输入信号组合成为一对差分输入信号。这样,号。这样,MSC1211就可以提供就可以提供8路差分输入通道。路差分输入通道。n交替地改变输入信号的极性,对相交替地改变输入信号的极性,对相邻两次采样值求平均即可消除偏移邻两次采样值求平均即可消除偏移电压的影响,这就是所谓的电压的影响,这就是所谓的“斩波斩波”(chop)方式。斩波方式适合于方式。斩波方式适合于对漂移、噪声抑止等要求高的场合。对漂移、噪声抑止等要求高的场合。n 多路开关的同相输
4、入通道和反多路开关的同相输入通道和反相输入通道的选择是通过相输入通道的选择是通过ADC多路多路开关控制寄存器开关控制寄存器ADMUX来实现来实现的。的。ADMUX的高四位的高四位INP3INP0(ADMUX.7ADMUX.4)用来选择同相输入通道,低四位用来选择同相输入通道,低四位INN3INN0(ADMUX.3ADMUX.0)用来选择反相输入通道。当用来选择反相输入通道。当ADMUX=0FFH时,所有的正、反相输入通道(时,所有的正、反相输入通道(AIN0AIN7,AINCOM)和和ADC的连接断开,的连接断开,ADC的输入端直接连接到两的输入端直接连接到两个片内二极管上。这两个二极管的输出
5、电压随环境温度而变化,个片内二极管上。这两个二极管的输出电压随环境温度而变化,而且近似成简单的线性关系,因此可以用作集成的温度传感器而且近似成简单的线性关系,因此可以用作集成的温度传感器来测量芯片的温度。来测量芯片的温度。D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0复位值复位值INP3INP3INP2INP2INP1INP1INP0INP0INN3INN3INN2INN2INN1INN1INN0INN00101H HINPINP3 3INPINP2 2INPINP1 1INPINP0 0同相输入通道同相输入通道0 00 00 00 0AIN0AIN0(默认)默认)0 00
6、00 01 1AIN1AIN10 00 01 10 0AIN2AIN20 00 01 11 1AIN3AIN30 01 10 00 0AIN4AIN40 01 10 01 1AIN5AIN50 01 11 10 0AIN6AIN60 01 11 11 1AIN7AIN71 10 00 00 0AINCOMAINCOM1 11 11 11 1温度传感器温度传感器(ADMUX=0FFHADMUX=0FFH)ININN3N3INNINN2 2INNINN1 1INNINN0 0反相输入通道反相输入通道0 00 00 00 0AIN0AIN00 00 00 01 1AIN1AIN1(默认)默认)0 0
7、0 01 10 0AIN2AIN20 00 01 11 1AIN3AIN30 01 10 00 0AIN4AIN40 01 10 01 1AIN5AIN50 01 11 10 0AIN6AIN60 01 11 11 1AIN7AIN71 10 00 00 0AINCOMAINCOM1 11 11 11 1温度传感器温度传感器(ADMUX=0FFHADMUX=0FFH)n 在模拟多路开关和输入缓冲器之间,有两个电流源在模拟多路开关和输入缓冲器之间,有两个电流源ISRC和和ISINK。ISRC的电流从的电流从AVDD流向同相输入通道,流向同相输入通道,ISINK的电流从的电流从反相输入通道流向反相
8、输入通道流向AGND。它们是模拟输入通道测试电流源它们是模拟输入通道测试电流源,使用它使用它们可以检测一对输入通道之间是否为开路或短路。其原理如下:们可以检测一对输入通道之间是否为开路或短路。其原理如下:n 如果一对输入通道之间是开路的,两个电流源作用产生的结果如果一对输入通道之间是开路的,两个电流源作用产生的结果等效于这一对输入通道之间的电压接近于等效于这一对输入通道之间的电压接近于AVDDAGND,此时进行此时进行A/D转换,结果近似于转换,结果近似于FFFFFFH,称这一特性为开路效应。当一对称这一特性为开路效应。当一对输入通道之间是短路的,两个电流源作用产生的结果等效于这一对输入通道之
9、间是短路的,两个电流源作用产生的结果等效于这一对输入通道之间的电压接近输入通道之间的电压接近0V,此时进行此时进行A/D转换,结果接近于转换,结果接近于000000H,称这一特性短路效应。称这一特性短路效应。n 用户可以通过用户可以通过ADC控制寄存器控制寄存器0中的中的BOD位(位(ADCON0.6)控控制这两个电流源。当制这两个电流源。当BOD=1时,两个电流源被激活;时,两个电流源被激活;BOD=0时,时,这两个电流源关闭。这两个电流源关闭。10.1.2 输入缓冲器(输入缓冲器(BUF)n MSC1211的模拟多路开关(的模拟多路开关(MUX)与可编程增益放与可编程增益放大器(大器(PG
10、A)之间设有输入缓冲器,它可以提高之间设有输入缓冲器,它可以提高ADC的输的输入阻抗,提高测量精度。输入缓冲器是通过软件控制的。入阻抗,提高测量精度。输入缓冲器是通过软件控制的。用户可以设置缓冲器允许位用户可以设置缓冲器允许位EBUF(ADCON0.3)来允许来允许/禁止缓冲器。该位置禁止缓冲器。该位置“1”时,缓冲器允许,反之,缓冲时,缓冲器允许,反之,缓冲器禁止。当缓冲器允许时,不论器禁止。当缓冲器允许时,不论PGA怎么设置,模拟输入怎么设置,模拟输入的阻抗都很高,因此当输入信号在芯片规定的输入范围内的阻抗都很高,因此当输入信号在芯片规定的输入范围内时,缓冲器的作用很明显。当缓冲器禁止时,
11、时,缓冲器的作用很明显。当缓冲器禁止时,MSC1211的的输入阻抗为输入阻抗为5M/(PGA增益系数)。增益系数)。n 需要注意的是:当缓冲器允许时,模拟输入的电压范需要注意的是:当缓冲器允许时,模拟输入的电压范围和禁止缓冲器时是不同的。缓冲器允许时,其上限电压围和禁止缓冲器时是不同的。缓冲器允许时,其上限电压比缓冲器禁止时低比缓冲器禁止时低1.5V,即即AVDD-1.5V;下限电压都是下限电压都是AGND+50mV。缓冲器禁止时,模拟输入阻抗会随模拟时缓冲器禁止时,模拟输入阻抗会随模拟时钟频率钟频率ACLK和和PGA增益而改变。增益而改变。10.1.3 可编程增益放大器(可编程增益放大器(P
12、GA)可可 编编 程程 增增 益益 放放 大大 器器(Programmable Gain Amplifier,简简称称PGA)。在在自自动动测测控控系系统统和和智智能能仪仪器器中中,如如果果被被测测信信号号的的范范围围比比较较宽宽,为为了了保保证证必必要要的的测测量量精精度度,常常会会采采用用改改变变量量程程的的办办法法。改改变变量量程程时时,测测量量放放大大器器的的增增益益大大小小也也相相应应的的改改变变。另另外外,在在数数据据采采集集系系统统中中,对对于于输输入入的的模模拟拟信信号号一一般般都都需需要要增增加加前前置置放放大大器器,以以使使放放大大器器输输出出的的模模拟拟电电压压适适合合于
13、于模模数数转转换换器器的的电电压压范范围围。但但在在不不同同的的应应用用场场合合,被被测测信信号号的的动动态态范范围围差差异异很很大大,信信号号电电平平可可以以从从微微伏伏级级到到伏伏级级,模模数数转转换换器器不不可可能能在在各各种种情情况况下下都都能能与与之之匹匹配配,如如果果采采用用单单一一的的增增益益放放大大,往往往往使使A/D转转换换器器的的精精度度不不能能最最大大限限度度的的得得到到利利用用,或或致致使使被被测测信信号号削削顶顶饱饱和和,造造成成很很大大的的测测量量误误差差,甚甚至至使使ADC损损坏坏。解解决决这这一一问问题题的的方法就是使用可编程增益放大器(方法就是使用可编程增益放
14、大器(PGA)。)。n MSC1211的的PGA具有很宽具有很宽的增益范围,包括的增益范围,包括1,2,4,8,16,32,64和和128等八种增等八种增益。益。PGA的大小是通过的大小是通过ADC控制控制寄存器寄存器0(ADCON0)来配置的。来配置的。该寄存器的低三位(该寄存器的低三位(ADCON0.2ADCON0.0)用来设置用来设置PGA系数,如表所示。系数,如表所示。n PGA的使用提高了的使用提高了ADC的有的有效分辨率。例如,当效分辨率。例如,当PGA增益为增益为1时,在时,在5V满量程下,满量程下,ADC的分的分辨率可达辨率可达1.5V;当;当PGA增益为增益为128时,满量程
15、为时,满量程为40mV,这种这种情况下情况下ADC的分辨率可达的分辨率可达75nV。因此,可编程增益放大器实现了因此,可编程增益放大器实现了量程的自动切换和全量程的均一量程的自动切换和全量程的均一化,从而显著提高了模数转换的化,从而显著提高了模数转换的有效精度。有效精度。PGA2PGA2PGA1PGA1PGA0PGA0增益增益0 00 00 01 10 00 01 12 20 01 10 04 40 01 11 18 81 10 00 016161 10 01 132321 11 10 064641 11 11 112812810.1.4 偏移偏移DAC(ODAC)n 为了增加输入信号的动态范
16、围,为了增加输入信号的动态范围,MSC1211配置了偏配置了偏移移DAC(Offset DAC,ODAC)。)。从概念上讲,偏移从概念上讲,偏移DAC是是一个可编程的电压源。模拟输入信号首先与偏移一个可编程的电压源。模拟输入信号首先与偏移DAC输出电压输出电压相加,然后经过相加,然后经过PGA放大,最后再送到放大,最后再送到 ADC进行模数转进行模数转换。换。n 偏移偏移DAC寄存器(寄存器(ODAC)有有8位,其中最高位是标志位,位,其中最高位是标志位,用于设置输出电压是正向偏移还是负向偏移。其它用于设置输出电压是正向偏移还是负向偏移。其它7位用于设位用于设置偏移值。偏移值使用满量程输入范围
17、的百分比来表示。正如,置偏移值。偏移值使用满量程输入范围的百分比来表示。正如,当偏移值为当偏移值为0时,不产生偏移。而当偏移值各位都为时,不产生偏移。而当偏移值各位都为“1”时,时,偏移偏移DAC的输出电压值将偏移满量程输入范围的一半。下面的的输出电压值将偏移满量程输入范围的一半。下面的公式给出了偏移电压的计算方法:公式给出了偏移电压的计算方法:n 偏移偏移DAC的工作原理如下:当基准电压为的工作原理如下:当基准电压为2.5V,测量测量050mV的信号时,如果的信号时,如果PGA增益为增益为32时,输入满量程范围为时,输入满量程范围为78mV(2.5V/32),),PGA增益为增益为64时为时
18、为39mV。如果没有偏移如果没有偏移DAC,则则PGA增益必须小于或等于增益必须小于或等于32,否则将超过,否则将超过ADC的信号动态范的信号动态范围。现在使用偏移围。现在使用偏移DAC将输入电压偏移将输入电压偏移20mV,则则ADC的输入范围的输入范围将变为将变为2030mV,显然满足显然满足39mV的限制要求,于是可以将的限制要求,于是可以将PGA增益设置为增益设置为64,从而提高了测量的分辨率,从而提高了测量的分辨率n 由于偏移由于偏移DAC是将偏移电压加到是将偏移电压加到PGA的输入电压上,这是模拟偏的输入电压上,这是模拟偏移而不是单纯的数字量的变化,所以偏移移而不是单纯的数字量的变化
19、,所以偏移DAC不会降低测量结果的精不会降低测量结果的精度。同时,偏移度。同时,偏移DAC也不会降低也不会降低ADC的低噪声性能。的低噪声性能。n 对偏移对偏移DAC的设置要在校准之后进行,因为校准会影响偏移的设置要在校准之后进行,因为校准会影响偏移DAC的输出电压。还应该注意的是,在进行自校准之前,应该先将偏移的输出电压。还应该注意的是,在进行自校准之前,应该先将偏移DAC设置为设置为00H,即关闭偏移即关闭偏移DAC,这时偏移这时偏移DAC的输出电压为零。的输出电压为零。10.1.5 基准电压源基准电压源 n MSC1211的基准电压源可以是内部基准电压源也可以是外部基准电压的基准电压源可
20、以是内部基准电压源也可以是外部基准电压源。器件内部的电压基准是源。器件内部的电压基准是2.5V或或1.25V。内部电压基准可以通过内部电压基内部电压基准可以通过内部电压基准允许位准允许位EVREF(ADCON0.5)来设置。当该位置来设置。当该位置“1”时,表示使用内时,表示使用内部电压基准模式;否则使用外部电压基准模式。部电压基准模式;否则使用外部电压基准模式。n 内部基准电压源为带隙型,其精度为内部基准电压源为带隙型,其精度为0.2,温漂为,温漂为510-6/,具有较,具有较高的稳定性。高的稳定性。n 内部电压基准可以在内部电压基准可以在1.25V(AVDD=2.75.25V)和和2.5V
21、(AVDD=4.55.25)之间选择。用户可以通过电压基准选择位之间选择。用户可以通过电压基准选择位VREFH(ADCON0.4)进行内部电压基准的选择。该位置进行内部电压基准的选择。该位置“1”表示内部电压表示内部电压基准为基准为2.5V;否则表示内部电压基准否则表示内部电压基准1.25V。n 当不使用内部电压基准时,应将内部电压基准关闭,以减少噪声和电源功当不使用内部电压基准时,应将内部电压基准关闭,以减少噪声和电源功耗。这时耗。这时VREFOUT引脚应该通过引脚应该通过0.1F电容接电容接AGND。n 外部电压基准是外部电压基准是REF IN+和和REF IN-引脚之间的电压差值。外部电
22、压基准引脚之间的电压差值。外部电压基准可以在模拟地(可以在模拟地(AGND)和模拟电源(和模拟电源(AVDD)之间变化。之间变化。10.1.6 24位位模数转换器模数转换器 型型A/D转转换换器器能能以以较较低低的的成成本本来来取取得得较较高高的的分分辨辨率率(16 bit以以上上)。同同时时,由由于于型型ADC主主要要使使用用了了数数字字技技术术,除除具具有有数数字字系系统统的的可可靠靠性性高高、稳稳定定性性高高等等优优点点外外,还还具具有有线线性性度度好好、抗抗干干扰扰能能力力强强、成成本本低低廉廉等等优优点点。另另外外,由由于于型型ADC采采用用了了过过采采样样技技术术,不不需需要要抗抗
23、混混叠叠滤滤波波器器,有有的的还还可可以以直直接接接接收收来来自自传传感感器器的的微微弱弱信信号号,具具有有信信号号放放大大和和调调整整电电路路。正正是是由由于于ADC具具有有这这么么多多优优点,因此在高精度测量中得到了广泛应用。点,因此在高精度测量中得到了广泛应用。10.1.7 校准校准 为了降低器件和系统的偏移误差和增益误差,往往需要采用校准的方法。为了降低器件和系统的偏移误差和增益误差,往往需要采用校准的方法。MSC1211的的ADC提供了提供了5种不同的校准模式。用户可以通过种不同的校准模式。用户可以通过ADCON1寄存器的寄存器的CAL20位(位(ADCON1.20)来选择校准模式,
24、如所示来选择校准模式,如所示。自校准包括偏移校准和增益校准。自校准方式为器件的内部校准,其校准电自校准包括偏移校准和增益校准。自校准方式为器件的内部校准,其校准电压由芯片内部提供。当对系统进行校准时,必须在模拟信号输入端施加相应的校准压由芯片内部提供。当对系统进行校准时,必须在模拟信号输入端施加相应的校准电压。电压。系统偏移校准为零点校准,系统增益校准为满量程校准。校准时要求输入的系统偏移校准为零点校准,系统增益校准为满量程校准。校准时要求输入的电压不同,系统偏移校准输入零差分电压,而系统增益输入满量程电压。其校准过电压不同,系统偏移校准输入零差分电压,而系统增益输入满量程电压。其校准过程是:
25、当程是:当ADC对输入电压进行转换,计算出偏移校准系数和增益校准系数,并将它对输入电压进行转换,计算出偏移校准系数和增益校准系数,并将它们分别保存在们分别保存在ADC偏移校准寄存器和偏移校准寄存器和ADC增益校准寄存器中,用来消除系统的偏移增益校准寄存器中,用来消除系统的偏移误差和增益误差。误差和增益误差。为了达到良好的补偿效果,偏移校准和增益校准执行的顺序相当重要。建议为了达到良好的补偿效果,偏移校准和增益校准执行的顺序相当重要。建议在系统增益校准前,先进行系统偏移校准。在抽取因子、温度、在系统增益校准前,先进行系统偏移校准。在抽取因子、温度、PGA增益和电源改增益和电源改变后必须重新进行校
26、准。如果基准电压高于变后必须重新进行校准。如果基准电压高于-1.5V,那么在校准期间应关闭输入缓那么在校准期间应关闭输入缓冲器。还需注意的是:由于校准会改变偏移冲器。还需注意的是:由于校准会改变偏移DAC的效果,因此对偏移的效果,因此对偏移DAC的寄存器的寄存器的修改一定要在校准之后进行。每个校准过程需要的修改一定要在校准之后进行。每个校准过程需要7个个(数据转换时间)周期来完(数据转换时间)周期来完成,因此完成偏移和增益校准需要成,因此完成偏移和增益校准需要14个周期。在校准完成后,当中断允许时,会产个周期。在校准完成后,当中断允许时,会产生生ADC转换中断。用户可以从中断状态寄存器转换中断
27、。用户可以从中断状态寄存器AISTAT中检测到中检测到ADC中断状态标志中断状态标志(AISTAT.5)。)。一个完全的自校准程序应包括偏移和增益的校准。一个完全的自校准程序应包括偏移和增益的校准。示例程序如下所示:示例程序如下所示:ADCON1=0 x01;/初始化增益和偏移自校准初始化增益和偏移自校准 while(!(AISTAT&0X20);/等待中断触发等待中断触发10.1.8 求和求和/移位寄存器移位寄存器 n 通常情况下,由于存在各种干扰,往往降低了通常情况下,由于存在各种干扰,往往降低了ADC的的转换结果和精度。人们经常采用数字滤波的方法对转换结转换结果和精度。人们经常采用数字滤
28、波的方法对转换结果进行处理,如取多次转换结果的平均值作为转换的实际果进行处理,如取多次转换结果的平均值作为转换的实际结果。结果。MSC1211提供了一个求和提供了一个求和/移位寄存器可以自动完移位寄存器可以自动完成多次转换结果的平均,从而减小了软件的开销和成多次转换结果的平均,从而减小了软件的开销和CPU的的负担,提高了数据的处理速度。负担,提高了数据的处理速度。n 实际上,求和寄存器是一个实际上,求和寄存器是一个32位的累加器。用户借助位的累加器。用户借助它可以方便的实现求和、移位它可以方便的实现求和、移位/除法操作,该寄存器包括除法操作,该寄存器包括4个个8位数据寄存器位数据寄存器SUMR
29、0(LSB)、)、SUMR1、SUMR2和和SUMR3(MSB)。)。ADC上电时,该寄存器被激活。上电时,该寄存器被激活。n1求和控制寄存器求和控制寄存器n求和寄存器有如下求和寄存器有如下4种运行模式:种运行模式:n模式模式0程序求和:由程序向求和寄存器写入数据,所程序求和:由程序向求和寄存器写入数据,所写入的数据与求和寄存器中原有数据累加后形成求和寄存器写入的数据与求和寄存器中原有数据累加后形成求和寄存器的新数据。的新数据。n模式模式1ADC自动求和:自动求和:ADC的转换结果与求和寄存器的转换结果与求和寄存器中的结果自动相加。中的结果自动相加。n模式模式2程序移位程序移位/触发:求和寄存
30、器的触发:求和寄存器的32位值除以位值除以(n=1,2,38)。)。除法仅占用除法仅占用4个系统时钟周期。个系统时钟周期。n模式模式3带移位带移位/除法功能的除法功能的ADC自动求和:自动求和:ADC的转换的转换结果与求和寄存器中的结果自动相加,得到设定次数的求和结果与求和寄存器中的结果自动相加,得到设定次数的求和结果后,再被(结果后,再被(n=1,2,38)除。除。求求和和寄寄存存器器的的控控制制是是通通过过SSCON(E1H)来来实实现现的的。除除了了控控制制四四个个操操作作模模式式外外,也也用用于于控控制制参参与与求求和和的的ADC转转换换结结果果的的个个数数和和求求和和结结果果的的除除
31、数数。位位76:SSCON1SSCON0,求求和和/移移位位模模式式控控制制位位。位位5位位3:SCNT2SCNT0,求求和和计计数数位位,用用来来设设定定参参与与求求和和的的ADC转转换换结果的数量。结果的数量。D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0复位值复位值SSCON1SSCON1SSCON0SSCON0SCNT2SCNT2SCNT1SCNT1SCNT0SCNT0SHF2SHF2SHF1SHF1SHF0SHF000H00H数据来数据来源源SSCON1SSCON0模式模式CPU00模式模式0ADC01模式模式1CPU10模式模式2ADC11模式模式3SCNT2SC
32、NT2SCNT1SCNT1SCNT0SCNT0累加次数累加次数0 00 00 02 20 00 01 14 40 01 10 08 80 01 11 116161 10 00 032321 10 01 164641 11 10 01281281 11 11 1256256 位位2位位0:SHF2SHF0,移移位位计计数数位位,用用来来设设定定求求和和结结果果的的除除数数,也也就就是是说说求求和和结结果果将将被被右右移移的的位位数数。SHF为为0,移移位位数数为为1,表表明明求求和和结结果果右右移移一一位位,即即除除以以2;SHF为为4,移位数为,移位数为5,最后结果右移,最后结果右移5位,既除
33、以位,既除以32。SHF2SHF2SHF1SHF1SHF0SHF0移位移位除数除数0 00 00 01 12 20 00 01 12 24 40 01 10 03 38 80 01 11 14 416161 10 00 05 532321 10 01 16 664641 11 10 07 71281281 11 11 18 8256256n2求和模式求和模式 n下面将详细介绍求和寄存器四种运行模式的使用方法。下面将详细介绍求和寄存器四种运行模式的使用方法。n程序求和模式程序求和模式n 程序求和模式可以方便的进行程序求和模式可以方便的进行32位数据快速加法。该模式下,用户只要将需要求和的位数据快
34、速加法。该模式下,用户只要将需要求和的数据写入数据写入SUMR3:0中。注意:在写入数据时,应当从中。注意:在写入数据时,应当从SUMR3开始,依次写入到开始,依次写入到SUMR2、SUMR1、SUMR0中。一旦数据写入中。一旦数据写入SUMR0之后,在芯片硬件逻辑的控制下,之后,在芯片硬件逻辑的控制下,SUMR3:0中的原有数据就会与写入数据累加,并将累加结果回馈到中的原有数据就会与写入数据累加,并将累加结果回馈到SUMR3:0中,此时读取中,此时读取SUMR3:0,就可以获得累加结果。就可以获得累加结果。n 下面的例子是十六进制数下面的例子是十六进制数123456H和和51AB04H的加法
35、。的加法。SSCON=0 x10;/清除求和控制寄存器的值,并设置为程序求和模式清除求和控制寄存器的值,并设置为程序求和模式 SUMR3=0 x00;/写入写入0 x00123456 SUMR2=0 x12;SUMR1=0 x34;SUMR0=0 x56;/完成加法完成加法 SUMR3=0 x00;/写入写入0 x0051AB04 SUMR2=0 x51;SUMR1=0 xAB;SUMR0=0 x04;/完成加法完成加法 SUM=(SUMR324)+(SUMR216)+(SUMR18)+SUMR0;/读读取结果取结果n上面的程序虽然比简单的上面的程序虽然比简单的C语言语句语言语句SUM=0 x
36、001234560 x0051AB04要冗长一些,但要冗长一些,但执行速度要快的多。即使是用汇编语言实现上面的计算,至少需要执行速度要快的多。即使是用汇编语言实现上面的计算,至少需要8条条MOV指令和指令和4条条ADD指令。指令。nADC自动求和模式自动求和模式 n ADC自动求和功能的实现类似于程序求和模式,所不同的是,在自动求和功能的实现类似于程序求和模式,所不同的是,在ADC自动求和模式中,数据由自动求和模式中,数据由ADC结果寄存器自动写入到结果寄存器自动写入到SUMR3:0寄存器中,而不用程序写入。在该模式下,必须设置寄存器中,而不用程序写入。在该模式下,必须设置SSCON的的SCN
37、T位,以决定参与求和的位,以决定参与求和的ADC转换结果的数量或次数。转换结果的数量或次数。如果没有屏蔽求和中断,在完成指定次数的求和运算后,会产生一个如果没有屏蔽求和中断,在完成指定次数的求和运算后,会产生一个求和辅助中断,示例程序如下所示:求和辅助中断,示例程序如下所示:nSSCON=0 x00;/清除求和寄存器的值清除求和寄存器的值nSSCON=0 x50;/ADC求和,将求和,将8个采样值相加个采样值相加nwhile(!(AIE&0X40);/等待等待8个采样值相加个采样值相加nSUM=(SUMR324)+(SUMR216)+(SUMR18)+SUMR0;/读取结果读取结果n 上面的程
38、序中先清除求和寄存器,然后设置上面的程序中先清除求和寄存器,然后设置SSCON为对为对8个个ADC转换结果求和。转换结果求和。while循环检测求和辅助中断标志位的值,若为循环检测求和辅助中断标志位的值,若为1,则,则表明表明8个转换结果求和累加完毕,最后读取结果。个转换结果求和累加完毕,最后读取结果。n程序移位(除法)模式及带移位功能的自动求和模式程序移位(除法)模式及带移位功能的自动求和模式 n 程序移位(除法)模式为程序移位(除法)模式为32位数据的除法运算提供了一个快捷的位数据的除法运算提供了一个快捷的方法。只要在方法。只要在SSCON中设置中设置SHF位(除数)即可。位(除数)即可。
39、例如,如果求和寄存器中存放数据例如,如果求和寄存器中存放数据0 x015661,下面的程序完成该数据除下面的程序完成该数据除以以16的运算。的运算。例:带移位功能的自动求和模式例:带移位功能的自动求和模式 n SSCON=0 x00;/清除求和寄存器的值清除求和寄存器的值n SSCON=0 xDB;/16个个ADC求和,然后除以求和,然后除以16n While(!(AIE&0X40);/等待等待16个采样值相加个采样值相加n SUM=(SUMR324)+(SUMR216)+(SUMR18)+SUMR0;/读取结果读取结果n 需要注意的是,当关闭需要注意的是,当关闭ADC功能模块的电源时,求和寄
40、存器也随功能模块的电源时,求和寄存器也随之关闭。如果将求和寄存器的之关闭。如果将求和寄存器的SUNMR0清零,则清零,则32位的位的SUMR30寄存寄存器就会被清零。器就会被清零。10.1.9 与与ADC有关的特殊功能寄存器有关的特殊功能寄存器 寄存器寄存器功能说明功能说明地址地址OCOC(LMHLMH)ADCADC偏移校准寄存器偏移校准寄存器D1HD1HD3HD3HGCGC(LMHLMH)ADCADC增益校准寄存器增益校准寄存器D4HD4HD6HD6HADMUXADMUX多路开关控制寄存器多路开关控制寄存器D7HD7HADRESADRES(LMHLMH)ADCADC转换结果寄存器转换结果寄存
41、器D9HD9HDBHDBHADCON0ADCON0ADCADC控制寄存器控制寄存器0 0DCHDCHADCON1ADCON1ADCADC控制寄存器控制寄存器1 1DDHDDHADCON2ADCON2ADCADC控制寄存器控制寄存器2 2DEHDEHADCON3ADCON3ADCADC控制寄存器控制寄存器3 3DFHDFHODACODAC偏移偏移DACDAC寄存器寄存器E6HE6HACLKACLKADCADC模拟时钟寄存器模拟时钟寄存器F6HF6HSSCONSSCON求和求和/移位控制寄存器移位控制寄存器E1HE1HSUMR3:0SUMR3:0求和寄存器求和寄存器E2HE2HE5HE5HPDCO
42、NPDCON掉电控制寄存器掉电控制寄存器F1HF1Hn1ADC偏移校准寄存器(偏移校准寄存器(OC)n ADC偏移校准寄存器是一个偏移校准寄存器是一个24位的寄存器,它用来位的寄存器,它用来保存保存ADC偏移校准后的值,包括偏移校准后的值,包括3个个8位寄存器:偏移校准位寄存器:偏移校准低字节(低字节(OCL)、)、偏移校准中字节(偏移校准中字节(OCM)和偏移校准高和偏移校准高字节(字节(OCH)。)。地址地址复位值复位值OCLOCLD1HD1H00H00HOCMOCMD2HD2H00H00HOCHOCHD3HD3H00H00Hn2ADC增益校准寄存器(增益校准寄存器(GC)n ADC增益校
43、准寄存器是一个增益校准寄存器是一个24位的寄存器,它用来保位的寄存器,它用来保存存ADC增益校准后的值,包括增益校准后的值,包括3个个8位寄存器:增益校准低位寄存器:增益校准低字节(字节(GCL)、)、增益校准中字节(增益校准中字节(GCM)和增益移校准高和增益移校准高字节(字节(GCH)。)。地址地址复位值复位值GCLGCLD4HD4H5AH5AHGCMGCMD5HD5HECHECHGCHGCHD6HD6H5FH5FH3ADC多路开关控制寄存器多路开关控制寄存器 D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0复位值复位值INP3INP3INP2INP2INP1INP1INP
44、0INP0INN3INN3INN2INN2INN1INN1INN0INN00101H HINPINP3 3INPINP2 2INPINP1 1INPINP0 0同相输入通道同相输入通道0 00 00 00 0AIN0AIN0(默认)默认)0 00 00 01 1AIN1AIN10 00 01 10 0AIN2AIN20 00 01 11 1AIN3AIN30 01 10 00 0AIN4AIN40 01 10 01 1AIN5AIN50 01 11 10 0AIN6AIN60 01 11 11 1AIN7AIN71 10 00 00 0AINCOMAINCOM1 11 11 11 1温度传感器
45、温度传感器(ADMUX=0FFHADMUX=0FFH)INNINN3 3INNINN2 2INNINN1 1INNINN0 0反相输入通道反相输入通道0 00 00 00 0AIN0AIN00 00 00 01 1AIN1AIN1(默认)默认)0 00 01 10 0AIN2AIN20 00 01 11 1AIN3AIN30 01 10 00 0AIN4AIN40 01 10 01 1AIN5AIN50 01 11 10 0AIN6AIN60 01 11 11 1AIN7AIN71 10 00 00 0AINCOMAINCOM1 11 11 11 1温度传感器温度传感器(ADMUX=0FFHA
46、DMUX=0FFH)n4ADC转换结果寄存器(转换结果寄存器(ADRES)n ADC转换结果寄存器也是一个转换结果寄存器也是一个24位的寄存器。它用位的寄存器。它用来保存来保存ADC的转换结果,它包括的转换结果,它包括3个个8位寄存器:转换结果位寄存器:转换结果低字节(低字节(ADRESL)、)、转换结果中字节(转换结果中字节(ADRESM)和转和转换结果高字节(换结果高字节(ADRESH)。)。地址地址复位值复位值ADRESLADRESLD9HD9H0000H HADRESMADRESMDAHDAH0000H HADRESHADRESHDBHDBH0000H H5ADC控制寄存器控制寄存器0
47、(ADCON0)D7D7D6D6D5D5D4D4D3D3D2D2D1D1D0D0复位复位值值REFCREFCLKLKBODBODEVREEVREF FVREFVREFH HEBUFEBUFPGA2PGA2PGA1PGA1PGA0PGA03030H H位位7:REFCLK 参考时钟源选择参考时钟源选择 0=系统时钟系统时钟/(ACLK+1)*4 1=微秒时钟微秒时钟/4。位位6:BOD,模模拟拟输输入入通通道道检检测测位位。该该位位有有效效时时,电电流流源源正正极极连连接接同同相相输输入入通通道道,电电流流源源负负极极连连接接反反相相输输入入通通道道,如如果果通通道道开开路路,ADC为为满满量量
48、程程。如如果果通通道道短短路路,则则ADC结果近似为零。结果近似为零。0关闭输入通道检测电流源(默认)。关闭输入通道检测电流源(默认)。1打开输入通道检测电流源。打开输入通道检测电流源。位位5:EVREF,内内部部基基准准电电压压允允许许位位。如如果果不不使使用用内内部部基基准准电电压压源源,应应该该将将其其关关闭闭以以降低功耗和减小噪声。降低功耗和减小噪声。0关闭内部基准电压源。关闭内部基准电压源。1打开内部基准电压源(默认)。打开内部基准电压源(默认)。位位4:VREFH,基准电压选择位。内部电压基准可以选为基准电压选择位。内部电压基准可以选为2.5V或者或者1.25V。0内部电压基准为内
49、部电压基准为1.25V。1内部电压基准为内部电压基准为2.5V(默认)。默认)。位位3:EBUF,缓缓冲冲器器允允许许位位。激激活活输输入入缓缓冲冲器器会会提提高高输输入入阻阻抗抗,但但也也会会限限制制输输入入电电压压范围并增加器件功耗。范围并增加器件功耗。0缓冲器无效(默认)。缓冲器无效(默认)。1缓冲器有效。缓冲器有效。位位2位位0:PGA2PGA0可编程增益放大器设置位。可编程增益放大器设置位。PGA2PGA2PGA1PGA1PGA0PGA0增益增益0 00 00 01 10 00 01 12 20 01 10 04 40 01 11 18 81 10 00 016161 10 01 1
50、32321 11 10 064641 11 11 11281286ADC控制寄存器控制寄存器1(ADCON1)D7D6D5D4D3D2D1D0复位复位值值OF_UFPOLSM1SM0-CAL2CAL1CAL000H/80H极性极性模拟输入模拟输入数字输出数字输出0 0+FSRFSR0 0-FSR-FSR0 0 x7FFFFFx7FFFFF0 x0000000 x0000000 x8000000 x8000001 1+FSRFSR0 00 0 xFFFFFFxFFFFFF0 x0000000 x000000SM1SM1SM0SM0稳定模式稳定模式0 00 0自动自动0 01 1快快速速稳稳定定滤