您好,欢迎访问三七文档
C8051F120的模拟外设C8051F120的模拟外设包括:2个模拟电压比较器1个电压基准源1个12位逐次比较逼近ADC1个8位逐次比较逼近ADC2个12位DAC可编程模拟电压比较器模拟电压比较器工作原理:可编程模拟电压比较器比较器0原理框图比较器1原理框图两个比较器相似,只学一个即可每个比较器都有专用的输入引脚。每个比较器的输出都可以经I/O交叉开关连到外部引脚。由图可知与比较器0相关有2个SFR。CPT0CN:比较器0控制寄存器上升沿、下降沿中断标志位位一旦被置‘1’,将一直保持‘1’状态直到被软件清除。CPT0CN:比较器0控制寄存器正向回差电压见下页图负向回差电压见下页图CPT0MD:比较器0方式选择寄存器位5:CP0RIE:比较器0上升沿中断使能位。0:比较器0上升沿中断禁止。1:比较器0上升沿中断使能。位4:CP0FIE:比较器0下降沿中断使能位。0:比较器0下降沿中断禁止。1:比较器0下降沿中断使能。CPT0MD:比较器0方式选择寄存器功耗最大最慢注意:比较器0可以被配置成复位源,比较器1不可以。比较器在被使能后有一个上电时间(见表10.1),在此时间后比较器输出才能达到稳定。在比较器上电后,上升沿和下降沿标志位的状态是不确定的,因此应在比较器中断被使能前或比较器被配置为复位源之前将这些标志位用程序手动清0。关注表10-1(比较器电器特性表),尤其注意模拟电压输入范围:输入可以承受-0.25V到(AV+)+0.25V的外部驱动电压而不至损坏或发生工作错误。C8051F120的电压基准C8051F120内部电压基准电路,由一个1.2V、15ppm/℃的带隙电压基准发生器和一个两倍增益的输出缓冲放大器组成。内部基准电压可以通过VREF引脚连到单片机片外(给别的模块和单片机自身提供电压基准),VREF引脚对AGND的负载最大不能超过200μA。建议在VREF引脚与AGND之间接入0.1μF和4.7μF的旁路电容。见下页图见下页图见下页图见下页图注意C8051F120的DAC每个DAC的输出摆幅均为0V到(VREF-1LSB),对应的输入码范围是0x000到0xFFF。DAC0框图DAC1框图两个DA相似,只学一个即可。与DAC0相关的3个SFR(灰色)注意字节地址相邻DAC0CN:DAC0控制寄存器位7:DAC0EN:DAC0使能位0:DAC0禁止。DAC0输出引脚被禁止,DAC0处于低功耗停机方式1:DAC0使能。DAC0输出有效;DAC0处于工作状态。DAC0CN:DAC0控制寄存器位4-3:DAC0MD1-0:DAC0方式位。00:DAC输出更新发生在写DAC0H时。01:DAC输出更新发生在定时器3溢出时。10:DAC输出更新发生在定时器4溢出时。11:DAC输出更新发生在定时器2溢出时。所谓更新就是指DAC寄存器内容(灰色,一级缓存,SFR)进入DAC锁存器(黄色,二级缓存)后在进入DAC中,进行DA转换,并输出模拟量。根据软件命令更新输出(DAC0CN.[4:3]=‘00’)时,要先写DAC0L,再写DAC0H,写完DAC0H后,一级缓存自动进二级缓存,开始DA转换。基于定时器溢出的输出更新时,先写DAC0L、DAC0H,然后等待定时器溢出,溢出时,一级缓存自动进二级缓存,开始DA转换。DAC0CN:DAC0控制寄存器C8051F120的AD2C8051F120的ADC2包括一个8通道的可编程配置的模拟多路开关(AMUX2),一个可编程增益放大器(PGA2)和一个500ksps、8位分辨率的逐次逼近寄存器型ADC,该ADC中集成了跟踪保持电路。原码补码AD2的模拟多路开关AMUX2ADC2有8个模拟量输入,通过模拟多路开关8选1。注意:AD2没有专用输入引脚AMX2SL:AMUX2通道选择寄存器八选一AD2的可编程增益放大器PGA2可编程增益放大器作用:对8选1后的模拟信号放大K倍,K由程序设定。见下页ADC2的工作方式ADC2的最高转换速度为500ksps(最快2微秒完成一次AD转换)。ADC2的转换时钟(SAR2时钟)来源于系统时钟分频。由ADC2CF寄存器的AD2SC位决定。ADC2转换时钟频率最大为6MHz。启动转换条件1.向ADC2CN的AD2BUSY位写‘1’;2.定时器3溢出(即定时的连续转换);3.外部ADC转换启动信号CNVSTR2的上升沿;4.定时器2溢出(即定时的连续转换)。5.向ADC0CN的AD0BUSY位写1(用一个软件命令启动ADC2和ADC0)。ADC2CN:ADC2控制寄存器位7:AD2EN:ADC2使能位0:ADC2禁止。ADC2处于低功耗停机状态。1:ADC2使能。ADC2处于活动状态,并准备转换数据。ADC2CN:ADC2控制寄存器位5:AD2INT:ADC2转换结束中断标志该标志必须用软件清‘0’。0:从最后一次将该位清0后,ADC2还没有完成一次数据转换。1:ADC2完成一次数据转换。位4:AD2BUSY:ADC2忙标志位读0:ADC2转换结束或不在进行数据转换。AD2INT在AD2BUSY的下降沿被置‘1’。1:ADC2正在进行转换。写0:无效1:若AD2CM2-0=000b则启动ADC2转换。AD2BUSY位在转换期间被硬件自动置‘1’,转换结束后被硬件自动复‘0’。AD2BUSY位的下降沿触发一个中断(当被允许时)并将ADC2CN中的中断标志置‘1’。转换结果保存在ADC2的数据字寄存器ADC2CN中。当采用向AD2BUSY位写‘1’这一启动方式时,建议通过查询AD2INT来确定转换何时完成。建议的查询步骤如下:1.向AD2INT写‘0’;2.向AD2BUSY写‘1’;3.查询并等待AD2INT变为‘1’;4.处理ADC2数据。AD2内部的等效采样电路什么时跟踪?当ADC2输入配置发生改变时(即AMUX或PGA的选择发生变化),在进行一次精确的AD转换之前需要有一个很小的时间,用于使采样电容的电压逼近外界的模拟输入电压。跟踪方式两种跟踪方式:连续跟踪方式(缺省情况下)低功耗跟踪方式连续跟踪方式:不进行AD转换时,ADC2输入被连续跟踪,需要AD转换时,直接开始转换。低功耗跟踪方式:不进行AD转换时,不跟踪输入,需要AD转换时,先跟踪一段时间,再进行AD转换。ADC2CN:ADC2控制寄存器位6:AD2TM:ADC2跟踪方式位0:一般跟踪方式。1:低功耗跟踪方式。上升沿启动AD转换连续跟踪低功耗跟踪当在低功耗跟踪方式下用CNVSTR2信号作为转换启动源时,只在CNVSTR2为低电平时跟踪,从CNVSTR2的上升沿开始转换。连续跟踪低功耗跟踪ADC2CN:ADC2控制寄存器位3-1:AD2CM2-0:ADC2转换启动方式选择AD2TM=0:000:向AD2BUSY写1启动ADC2转换。001:定时器3溢出启动ADC2转换。010:外部CNVSTR2上升沿启动ADC2转换。011:定时器2溢出启动ADC2转换。1xx:向AD0BUSY写1启动ADC2转换(与ADC0软件命令转换同步)。AD1TM=1:000:向AD2BUSY写1时启动跟踪并持续3个SAR2时钟,然后进行转换。001:定时器3溢出启动跟踪并持续3个SAR2时钟,然后进行转换。010:只有当CNVSTR2输入为逻辑低电平时才启动ADC2跟踪,在CNVSTR2上升沿开始转换。011:定时器2溢出启动跟踪并持续3个SAR2时钟,然后进行转换。1xx:向AD0BUSY写2启动跟踪并持续3个SAR2时钟,然后进行转换。见上2页图ADC2可编程窗口检测器ADC2可编程窗口检测器不停地自动将ADC2的输出与用户编程的极限值进行比较,并在检测到越限时通知CPU(申请中断)。可编程窗口检测器可以节省代码空间和CPU带宽又能提供快速响应时间。窗口检测器中断标志(ADC2CN中的AD2WINT位)是一个中断源,位于特殊功能寄存器ADC2CN中。AD2WINT置1条件,下限之上,上限之下硬件自动置1ADC2CN:ADC2控制寄存器位0:AD2WINT:ADC2窗口比较中断标志。该位必须用软件清0。0:自该标志被清除后未发生过ADC2窗口比较数据匹配。1:发生了ADC0窗口比较数据匹配。单端方式下(原码)的窗口检测器举例这里假设上限ADC2LT=0x20,下限ADC2GT=0x10,(上限下限)。例子中,如果ADC2转换结果位于由ADC2GT和ADC2LT定义的范围之内(即0x10ADC20x20),则会产生AD2WINT中断。下限之上,上限之下,中断单端方式下(原码)的窗口检测器举例这里假设上限ADC2LT=0x10,下限ADC2GT=0x20,(上限下限)。如果ADC2转换结果位于由ADC2GT和ADC2LT定义的范围之外(即ADC20x10或ADC20x20),则会产生AD2WINT中断。下限之上,上限之下,中断差分方式下(补码)的窗口检测器举例这里假设上限ADC2LT=0x10(+16d),下限ADC2GT=0xFF(-1d),上限下限如果ADC2转换结果位于由ADC2GT和ADC2LT定义的范围之内(即0xFFADC20x0F),则会产生AD2WINT中断。下限之上,上限之下,中断差分方式下(补码)的窗口检测器举例这里假设上限ADC2LT=0xFF(-1d),下限ADC2GT=0x10(+16d),上限下限如果ADC2转换结果位于由ADC2GT和ADC2LT定义的范围之外(即ADC20xFF或ADC20x10),则会产生AD2WINT中断。下限之上,上限之下,中断AD0和AD2类似,要求大家看手册自学,考试要求。第8章模拟外设内容结束谢谢!
本文标题:08_模拟外设
链接地址:https://www.777doc.com/doc-3052770 .html